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 Jakub Jelinek <jakub@redhat.com> 478 479 PR bootstrap/42369 480 * config/i386/i386.c (ix86_expand_special_args_builtin): Avoid 481 using switch with CODE_FOR_lwp_lwp* cases. 482 483 * config/i386/i386-builtin-types.def (PVOID_FTYPE_VOID): Use 484 DEF_FUNCTION_TYPE (PVOID) instead of DEF_FUNCTION_TYPE (PVOID, VOID). 485 4862009-12-14 Eric Botcazou <ebotcazou@adacore.com> 487 488 * cfgexpand.c (expand_debug_expr) <INDIRECT_REF>: Remove overzealous 489 assertion and useless code. 490 <TARGET_MEM_REF>: Likewise. 491 4922009-12-14 Alexandre Oliva <aoliva@redhat.com> 493 494 PR debug/41473 495 * dwarf2out.c (AT_loc_list_ptr): New. 496 (resolve_addr): Remove unresolved attributes and loc_list entries. 497 498 PR debug/41473 499 * dwarf2out.c (add_var_loc_to_decl): Don't drop initial empty 500 locations. 501 (new_loc_list): Drop gensym arg. Move generation of ll_symbol... 502 (gen_llsym): ... here. New function. 503 (add_loc_descr_to_loc_list): Removed. 504 (loc_descriptor): Infer mode from CONST_DOUBLEs and CONST_VECTORs. 505 (single_element_loc_list): Removed. 506 (dw_loc_list): Don't create entries without a location. Don't 507 special-case the first node of the list, only single nodes. 508 (single_element_loc_list_p): Simplify. 509 (loc_list_from_tree): Don't use DECL_RTL if loc_list is nonempty. 510 (add_location_or_const_value_attribute): Test var loc for NULL. 511 (convert_cfa_to_fb_loc_list): Adjust calls to new new_loc_list, 512 call gen_llsym if needed. 513 5142009-12-14 Jakub Jelinek <jakub@redhat.com> 515 516 * cgraph.h (cgraph_set_nothrow_flag, cgraph_set_readonly_flag, 517 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New 518 prototypes. 519 * cgraph.c (cgraph_set_nothrow_flag, cgraph_set_readonly_flag, 520 cgraph_set_pure_flag, cgraph_set_looping_const_or_pure_flag): New 521 functions. 522 * except.h (set_nothrow_function_flags): Remove prototype. 523 * except.c (set_nothrow_function_flags): Use cgraph_set_nothrow_flag. 524 Make static. 525 * ipa-pure-const.c (propagate): Use cgraph_set_nothrow_flag, 526 cgraph_set_readonly_flag, cgraph_set_pure_flag 527 and cgraph_set_looping_const_or_pure_flag. 528 (local_pure_const): Likewise. 529 5302009-12-14 Jakub Jelinek <jakub@redhat.com> 531 Sebastian Pop <sebastian.pop@amd.com> 532 533 * config/i386/i386-builtin-types.def (PVOID): Declared. 534 (VOID_FTYPE_PVOID): Declared. 535 (PVOID_FTYPE_VOID): Declared. 536 (UCHAR_FTYPE_USHORT_UINT_USHORT): Removed. 537 (VOID_FTYPE_USHORT_UINT_USHORT): Removed. 538 * config/i386/i386.c (IX86_BUILTIN_LLWPCB16, IX86_BUILTIN_LLWPCB32, 539 IX86_BUILTIN_LLWPCB64, IX86_BUILTIN_SLWPCB16, IX86_BUILTIN_SLWPCB32, 540 IX86_BUILTIN_SLWPCB64, IX86_BUILTIN_LWPVAL16, IX86_BUILTIN_LWPINS16): 541 Removed. 542 (IX86_BUILTIN_LLWPCB, IX86_BUILTIN_SLWPCB): New. 543 (bdesc_special_args): Adjust declaration of __builtin_ia32_llwpcb, 544 __builtin_ia32_slwpcb, __builtin_ia32_lwpval32, 545 __builtin_ia32_lwpval64, __builtin_ia32_lwpins32, and 546 __builtin_ia32_lwpins64. 547 (ix86_expand_special_args_builtin): Handle VOID_FTYPE_PVOID. 548 Do not handle VOID_FTYPE_USHORT_UINT_USHORT and 549 UCHAR_FTYPE_USHORT_UINT_USHORT. Warn when the third operand is 550 not an immediate. Also handle builtin functions with 3 arguments. 551 (ix86_expand_builtin): Handle IX86_BUILTIN_LLWPCB and 552 IX86_BUILTIN_SLWPCB. 553 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC, UNSPEC_SLWP_INTRINSIC): 554 Renamed UNSPECV_LLWP_INTRINSIC and UNSPECV_SLWP_INTRINSIC. 555 (memory attribute): Handle lwp. 556 (lwp*): Rewrite all the insn patterns for LWP. 557 * config/i386/lwpintrin.h (__llwpcb16, __llwpcb32, __llwpcb64, 558 __slwpcb16, __slwpcb32, __slwpcb64, __lwpval16, __lwpins16): Removed. 559 (__llwpcb, __slwpcb): New. 560 5612009-12-14 Dmitry Gorbachev <d.g.gorbachev@gmail.com> 562 563 * dominance.c (set_immediate_dominator): Don't mark as inline. 564 5652009-12-14 Eric Botcazou <ebotcazou@adacore.com> 566 567 * doc/tm.texi (STACK_CHECK_PROTECT): Document alternate default. 568 * doc/md.texi (check_stack): Clarify. 569 (probe_stack): Likewise. 570 * config/rs6000/rs6000.md (UNSPEC_PROBE_STACK): New constant. 571 (probe_stack): New insn. 572 5732009-12-14 Ben Elliston <bje@au.ibm.com> 574 575 * lto-streamer-in.c (lto_get_builtin_tree): fclass can only be a 576 BUILT_IN_NORMAL or BUILT_IN_MD. 577 5782009-12-13 Eric Botcazou <ebotcazou@adacore.com> 579 580 * doc/tm.texi (STACK_CHECK_PROBE_LOAD): Delete. 581 * expr.h (STACK_CHECK_PROBE_LOAD): Likewise. 582 * explow.c (emit_stack_probe): Do not test STACK_CHECK_PROBE_LOAD. 583 * system.h (STACK_CHECK_PROBE_LOAD): Poison. 584 5852009-12-13 Michael Matz <matz@suse.de> 586 587 PR tree-optimization/42027 588 * dojump.c (do_jump <TRUTH_AND_EXPR, TRUTH_OR_EXPR>): Go to 589 TRUTH_ANDIF_EXPR resp. TRUTH_ORIF_EXPR expander, instead of 590 falling through. 591 5922009-12-13 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 593 594 PR target/23726 595 * config/avr/predicates.md (pseudo_register_operand): New predicate 596 for pseudos. 597 * config/avr/avr.md (divmodqi4): Replace with define_insn_and_split 598 to allow div/mod optimization. 599 (udivmodqi4): Ditto. 600 (divmodhi4): Ditto. 601 (udivmodhi4): Ditto. 602 (divmodsi4): Ditto. 603 (udivmodsi4): Ditto. 604 6052009-12-13 Richard Guenther <rguenther@suse.de> 606 607 PR tree-optimization/42357 608 * tree-sra.c (sra_modify_assign): Do not tear apart struct copies. 609 6102009-12-12 Richard Guenther <rguenther@suse.de> 611 612 * tree.c (need_assembler_name_p): Abstract decls do not need 613 an assembler name. 614 * dwarf2out.c (dwarf2out_abstract_function): Preserve 615 DECL_ABSTRACT properly. 616 6172009-12-11 Richard Guenther <rguenther@suse.de> 618 619 * lto-streamer-in.c (lto_input_tree_ref): Do not register 620 DEBUG_EXPR_DECLs with the varpool. 621 6222009-12-11 Eric Botcazou <ebotcazou@adacore.com> 623 624 * config/sparc/linux-unwind.h (MD_FROB_UPDATE_CONTEXT, 64-bit): Define. 625 (sparc64_frob_update_context): New function. 626 6272009-12-11 Richard Guenther <rguenther@suse.de> 628 629 PR lto/41658 630 PR lto/41657 631 * lto-streamer-out.c (write_global_stream): Do not make decls 632 weak but resort to TREE_ASM_WRITTEN to avoid multiple definitions. 633 Make sure to mark all decls that we have written. 634 6352009-12-11 Sebastian Andrzej Siewior <bigeasy@linutronix.de> 636 637 PR target/36047 638 639 * config/m68k/linux.h: Remove LABELNO from the mcount statement. It is 640 not used by glibc/uclibc and does not work with large binaries. 641 6422009-12-11 Richard Guenther <rguenther@suse.de> 643 644 PR lto/41662 645 * lto-streamer-in.c (lto_init_eh): Move eh_initialized_p 646 handling here. 647 (input_eh_regions): Adjust. 648 (lto_input_ts_function_decl_tree_pointers): Initialize EH 649 if a non-NULL DECL_FUNCTION_PERSONALITY was read in. 650 6512009-12-11 Duncan Sands <baldrick@free.fr> 652 653 * passes.c (make_pass_instance): Allocate and copy the right amount of 654 memory for ipa passes, which are not the same size as other passes. 655 6562009-12-11 Joern Rennecke <amylaar@spamcop.net> 657 658 * plugin.c (get_named_event_id): Fix hash table rebuild to include 659 dynamically allocated events. 660 6612009-12-11 Richard Guenther <rguenther@suse.de> 662 663 PR lto/42320 664 * lto-symtab.c (lto_symtab_resolve_can_prevail_p): Properly 665 detect non-prevailing decls. 666 6672009-12-10 Jakub Jelinek <jakub@redhat.com> 668 669 PR c++/42317 670 * cgraph.h (struct cgraph_node): Add same_comdat_group field. 671 * cgraph.c (cgraph_remove_node): Unchain node from same_comdat_group 672 circular list. 673 (cgraph_node_can_be_local_p): Return false for DECL_COMDAT with 674 node->same_comdat_group. 675 * ipa.c (cgraph_remove_unreachable_nodes): For any reachable node 676 mark all its same_comdat_group nodes as also reachable. 677 (cgraph_externally_visible_p): Return true even if any of 678 same_comdat_group nodes has address taken. 679 * lto-cgraph.c (lto_output_node): Stream out same_comdat_group. 680 (output_cgraph): Ensure other same_comdat_group nodes are also 681 included. 682 (input_node): Stream in same_comdat_group. 683 (input_cgraph_1): Fix up same_comdat_group fields from references 684 to pointers. 685 * cgraphunit.c (cgraph_analyze_functions): Mark all other 686 same_comdat_group nodes as reachable. 687 (cgraph_mark_functions_to_output): For each node->process process 688 also other same_comdat_group nodes. 689 * ipa-inline.c (cgraph_clone_inlined_nodes): Don't reuse nodes 690 with same_comdat_group non-NULL. 691 (cgraph_mark_inline_edge): Likewise. 692 6932009-12-10 Jan Hubicka <jh@suse.cz> 694 695 PR middle-end/42228 696 PR middle-end/42110 697 * cgraph.c (cgraph_create_edge_including_clones): Add old_stmt 698 parameter; update edge if it already exists. 699 (cgraph_remove_node): Handle correctly cases where we are removing 700 node having clones. 701 * cgraph.h (cgraph_create_edge_including_clones): Declare. 702 (verify_cgraph_node): Add missing error_found = true code. 703 (cgraph_materialize_all_clones): Remove call edges of dead nodes. 704 * ipa.c (cgraph_remove_unreachable_nodes): Correctly look for master 705 clone; fix double linked list removal. 706 * tree-inline.c (copy_bb): Update cgraph_create_edge_including_clones 707 call; fix frequency of newly created edge. 708 7092009-12-10 Bernd Schmidt <bernd.schmidt@analog.com> 710 711 PR rtl-opt/42216 712 * regrename.c: Error out if MAX_RECOG_OPERANDS is larger than 713 HOST_BITS_PER_WIDE_INT. 714 (verify_reg_in_set): New function, broken out of verify_reg_tracked. 715 (verify_reg_tracked): Use it. 716 (scan_rtx_reg): When seeing a use involving a superset of the 717 registers in an existing chain, enlarge that chain. Otherwise, 718 allow subsets and set fail_current_block for all other kinds of 719 overlap. 720 (hide_operands): New argument UNTRACKED_OPERANDS; callers changed. 721 Do not modify operands when the bit with the corresponding number 722 is set in that bitmap. 723 (build_def_use): When we see matching operands with different 724 modes, don't set fail_current_block, but keep track of such 725 operands in a bitmap if their registers aren't already tracked 726 in an open chain. Pass this bitmap to all hide_operands calls. 727 7282009-12-10 Richard Guenther <rguenther@suse.de> 729 730 PR tree-optimization/42337 731 * tree-ssa-pre.c (seen_during_translate): Remove. 732 (phi_translate_1): Collapse into ... 733 (phi_translate): ... this. Remove seen parameter and 734 adjust recursive calls. 735 7362009-12-10 Richard Guenther <rguenther@suse.de> 737 Allan Sandfeld Jensen <linux@carewolf.com> 738 739 * tree-vectorizer.c (vectorize_loops): Properly guard 740 vectorizer verboseness. 741 7422009-12-10 Ben Elliston <bje@au.ibm.com> 743 744 * fwprop.c (free_load_extend): Initialise `use'. 745 7462009-12-09 David Edelsohn <edelsohn@gnu.org> 747 748 * builtins.c (do_mpc_ckconv): Pass the component type to 749 real_from_mpfr(). 750 7512009-12-09 Xinliang David Li <davidxl@google.com> 752 753 PR tree-optimization/42337 754 * tree-ssa-pre.c (phi_translate_1): Push and Pop SEEN set. 755 7562009-12-09 Nathan Froyd <froydnj@codesourcery.com> 757 758 * config/rs6000/vector.md (absv2sf2, negv2sf2, addv2sf3, subv2sf3, 759 mulv2sf3, divv2sf3): New expanders. 760 * config/rs6000/spe.md (spe_evabs, spe_evand, spe_evaddw, spe_evsubfw, 761 spe_evdivws): Rename to use standard GCC names. 762 * config/rs6000/paired.md (negv2sf, absv2sf2, addv2sf3, subv2sf3, 763 mulv2sf3, divv2sf3): Rename to avoid conflict with the new expanders. 764 * config/rs6000/rs6000.c (bdesc_2arg, bdesc_1arg): Use new CODE_FOR_ 765 names for renamed patterns. 766 7672009-12-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 768 769 * config/s390/s390.md ("copysign<mode>3"): Pattern removed. 770 7712009-12-09 Jakub Jelinek <jakub@redhat.com> 772 773 * configure.ac: Compute ld_ver, ld_vers, ld_date, ld_vers_major, 774 ld_vers_minor and ld_vers_path always, not just when gcc_cv_ld_hidden 775 isn't cached. 776 * configure: Regenerated. 777 7782009-12-08 Richard Henderson <rth@redhat.com> 779 780 * combine.c (setup_incoming_promotions): Fix sign-extend of 781 zero-extend case; tidy conditions. 782 7832009-12-08 Michael Matz <matz@suse.de> 784 785 PR middle-end/38474 786 * function.c (free_temp_slots): Only walk the temp slot 787 addresses and combine slots if we actually changes something. 788 (pop_temp_slots): Ditto. 789 7902009-12-08 Olga Golovanevsky <olga@il.ibm.com> 791 792 PR middle-end/41843 793 * ipa-struct-reorg.c (compare_fields): New function. 794 (find_field_in_struct_1): Use compare_fields function. 795 (is_equal_types): Likewise. 796 7972009-12-07 DJ Delorie <dj@redhat.com> 798 799 PR c/42312 800 * config/mep/mep.c (mep_expand_prologue): Set 801 really_need_stack_frame after frame_size is set. 802 8032009-12-07 Richard Henderson <rth@redhat.com> 804 805 PR rtl-opt/42269 806 * combine.c (setup_incoming_promotions): Improve the conditions 807 under which we respect the promotions applied. 808 8092009-12-07 Eric Botcazou <ebotcazou@adacore.com> 810 811 * config/sparc/linux.h (ASM_SPEC): Pass -K PIC if -findirect-dispatch. 812 * config/sparc/linux64.h (ASM_SPEC): Likewise. 813 8142009-12-07 Richard Henderson <rth@redhat.com> 815 816 PR debug/42299 817 PR debug/42166 818 * tree-ssa.c (insert_debug_temp_for_var_def): Skip propagation 819 for ssa names already registered for update. 820 8212009-12-07 Jakub Jelinek <jakub@redhat.com> 822 823 PR debug/42244 824 * ddg.c (add_inter_loop_mem_dep): Use ANTI_DEP if from or to 825 is a DEBUG_INSN. 826 8272009-12-07 Sebastian Pop <sebastian.pop@amd.com> 828 829 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mlwp to the 830 options when bit_LWP is set. 831 8322009-12-07 Sebastian Pop <sebastian.pop@amd.com> 833 834 * config/i386/cpuid.h (bit_ABM): New. 835 * config/i386/driver-i386.c (host_detect_local_cpu): Add -mabm to the 836 options when bit_ABM is set. 837 8382009-12-07 Jakub Jelinek <jakub@redhat.com> 839 840 * config/i386/i386.c (bdesc_special_args): Move __builtin_clzs from 841 this array ... 842 (bdesc_args): ... here. 843 * config.gcc (i[34567]86-*-*): Include abmintrin.h. 844 (x86_64-*-*): Likewise. 845 8462009-12-07 Sebastian Pop <sebastian.pop@amd.com> 847 848 * config.gcc (i[34567]86-*-*, x86_64-*-*): Add popcntintrin.h. 849 * config/i386/abmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved... 850 * config/i386/i386-c.c (__POPCNT__): Defined. 851 * config/i386/popcntintrin.h: ...here. New file. 852 * config/i386/smmintrin.h (_mm_popcnt_u32, _mm_popcnt_u64): Moved... 853 Include popcntintrin.h. 854 * config/i386/x86intrin.h: Include popcntintrin.h when __POPCNT__ 855 is defined. 856 8572009-12-07 Sebastian Pop <sebastian.pop@amd.com> 858 859 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): 860 Removed. 861 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Removed. 862 * config/i386/sse.md: Remove all XOP splitters. 863 Allow the second and fourth operands of XOP multiply-add insns 864 to be nonimmediate. 865 8662009-12-07 Sebastian Pop <sebastian.pop@amd.com> 867 868 * config/i386/sse.md: Remove all FMA4 splitters. 869 Allow the second operand of FMA4 insns to be a nonimmediate. 870 Fix comments punctuation. 871 8722009-12-07 Julian Brown <julian@codesourcery.com> 873 874 * config/arm/constraints.md (Ps, Pt): New constraint letters. 875 * config/arm/thumb2.md (*thumb2_addsi_short): Tighten constraints. 876 8772009-12-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 878 879 PR other/40302 880 * configure.ac (HAVE_mpc): Don't define. 881 * config.in, configure: Regenerate. 882 883 PR other/40302 884 * builtins.c: Remove HAVE_mpc* checks throughout. 885 * fold-const.c: Likewise. 886 * real.h: Likewise. 887 * toplev.c: Likewise. 888 8892009-12-07 Edmar Wienskoski <edmar@freescale.com> 890 891 * config.gcc (cpu_is_64bit): Add new core e500mc64. 892 (powerpc*-*-*): Add new core e500mc64. 893 * config/rs6000/e500mc64.md: New file. 894 * config/rs6000/rs6000.c (processor_costs): Add new costs for 895 e500mc64. 896 (rs6000_override_options): Add e500mc64 case to 897 processor_target_table. Altivec and Spe options not allowed with 898 e500mc64. Disable string instructions for e500mc64. Enable branch 899 targets alignment for both e500mc and e500mc64. Initialize 900 rs6000_cost for e500mc64. 901 (rs6000_emit_sISEL): New function. 902 (rs6000_emit_sCOND): Call rs6000_emit_sISEL for isel targets. 903 (rs6000_emit_int_cmove): Fix mode of 64 bit isel pattern 904 generation. 905 (rs6000_issue_rate): Set issue rate for e500mc64. 906 (rs6000_rtx_costs): Set more accurate cost for mfcr instruction 907 on architectures with isel. 908 * config/rs6000/rs6000-protos.h (rs6000_emit_sISEL): Declare. 909 * config/rs6000/rs6000.h (processor_type): Add 910 PROCESSOR_PPCE500MC64. 911 (ASM_CPU_SPEC): Add e500mc64. 912 * config/rs6000/rs6000.md (define_attr "cpu"): Add ppce500mc64. 913 Include e500mc64.md. 914 (abssi2_isel): Expand pattern to handle DImode. 915 (nabs<mode>2_isel): New pattern. 916 (absdi2): Change pattern to handle 64 bit isel targets. 917 (absdi2_internal): Exclude ISEL targets. 918 (nabsdi2): Exclude ISEL targets. 919 * doc/invoke.texi: Add e500mc64 to list of cpus. 920 9212009-12-07 Uros Bizjak <ubizjak@gmail.com> 922 923 * config/i386/i386.md (any_or): New code iterator. 924 (any_logic): Rename from plogic code iterator. 925 (logicprefix): Rename from plogicprefix code attribute. 926 (<code><mode>3): Macroize expander from {ior,xor}<mode>3 using 927 any_or code iterator. 928 (*<code><mode>_1): Macroize insn from *{ior,xor}<mode>_1 using 929 any_or code iterator. 930 (*<code><mode>_2): Ditto from *{ior,xor}<mode>_2. 931 (*<code><mode>_3): Ditto from *{ior,xor}<mode>_3. 932 (ior and xor splitters): Ditto. 933 * config/i386/mmx.md: Updated for rename. 934 * config/i386/sse.md: Ditto. 935 9362009-12-07 Uros Bizjak <ubizjak@gmail.com> 937 938 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): 939 Remove quotes around condition logic code. 940 9412009-12-06 Richard Henderson <rth@redhat.com> 942 943 PR debug/42234 944 * tree-ssa-dom.c (degenerate_phi_result): Check for NULL phi 945 argument earlier. 946 9472009-12-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 948 949 * doc/install.texi: Document MPC is required. 950 9512009-12-06 Uros Bizjak <ubizjak@gmail.com> 952 953 * config/i386/i386.md (g): Add HImode and QImode. 954 (general_szext_operand): New mode attribute. 955 (*test<mode>_1): Macroize insn from *test{qi,hi,si}_1 using 956 SWI124 mode iterator. 957 (and<mode>3): Macroize expander from and{qi,hi,si,di}3 using 958 SWIM mode iterator. 959 (*and<mode>_2): Macroize insn from *and{qi,hi,si}_2 using 960 SWI124 mode iterator. 961 (ior<mode>3): Macroize expander from ior{qi,hi,si,di}3 using 962 SWIM mode iterator. 963 (*ior<mode>_1): Macroize insn from *ior{hi,si,di}_1 using 964 SWI248 mode iterator. 965 (*ior<mode>_2): Macroize insn from *ior{qi,hi,si,di}_2 using 966 SWI mode iterator. 967 (*ior<mode>_3): Macroize insn from *ior{qi,hi,si,di}_3 using 968 SWI mode iterator. 969 (xor<mode>3): Macroize expander from xor{qi,hi,si,di}3 using 970 SWIM mode iterator. 971 (*xor<mode>_1): Macroize insn from *xor{hi,si,di}_1 using 972 SWI248 mode iterator. 973 (*xor<mode>_2): Macroize insn from *xor{qi,hi,si,di}_2 using 974 SWI mode iterator. 975 (*xor<mode>_3): Macroize insn from *xor{qi,hi,si,di}_3 using 976 SWI mode iterator. 977 9782009-12-05 Sebastian Pop <sebastian.pop@amd.com> 979 980 * config/i386/i386.c (TARGET_DEFAULT_TARGET_FLAGS): Add 981 MASK_FUSED_MADD. 982 * config/i386/i386.h (CC1_CPU_SPEC_1): Remove 983 "'-mfused-madd' was removed". 984 * config/i386/i386.opt (mfused-madd): New. 985 * config/i386/sse.md: Add TARGET_FUSED_MADD to FMA4 insns. 986 * doc/invoke.texi (-mfused-madd, -mno-fused-madd): Document. 987 9882009-12-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 989 990 * pa64-hpux.h (LIB_SPEC): Handle -rdynamic. 991 * pa-hpux10.h (LIB_SPEC): Likewise. 992 * pa-hpux11.h (LIB_SPEC): Likewise. 993 994 PR ada/41912 995 * pa/linux-unwind.h (pa32_fallback_frame_state): Set fs->signal_frame 996 for signal frames. 997 * pa/hpux-unwind.h (pa32_fallback_frame_state): Likewise. 998 9992009-12-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 1000 1001 * configure: Regenerate. 1002 10032009-12-05 Richard Earnshaw <rearnsha@arm.com> 1004 1005 * arm/thumb2.md (thumb2_mulsi_short_compare0): Use a low-register 1006 for the scratch. 1007 10082009-12-04 David Daney <ddaney@caviumnetworks.com> 1009 1010 PR rtl-optimization/42164 1011 * combine.c (combine_simplify_rtx): Handle truncation of integer 1012 constants. 1013 10142009-12-04 Richard Guenther <rguenther@suse.de> 1015 1016 * lto-streamer-out.c (pack_ts_decl_common_value_fields): 1017 Revert previous change. 1018 (lto_output_ts_decl_common_tree_pointers): Stream DECL_VALUE_EXPR. 1019 * lto-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 1020 Likewise. 1021 10222009-12-04 Richard Guenther <rguenther@suse.de> 1023 1024 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Handle 1025 BUILT_IN_MALLOC. 1026 (call_may_clobber_ref_p_1): Likewise. 1027 10282009-12-04 Matthias Klose <doko@ubuntu.com> 1029 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1030 1031 PR target/40134 1032 * config.gcc (hppa*-*-linux*): Use config/t-slibgcc-libgcc. 1033 * config/pa/pa-linux.h (LIB_SPEC): Remove. 1034 10352009-12-03 Sebastian Pop <sebastian.pop@amd.com> 1036 Richard Henderson <rth@redhat.com> 1037 1038 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Remove. 1039 * config/i386/i386.c (ix86_fma4_valid_op_p): Remove. 1040 * config/i386/i386.md: Do not use ix86_fma4_valid_op_p. 1041 * config/i386/sse.md (fma4_*): Remove alternative with operand 1 1042 matching a memory access. Do not use ix86_fma4_valid_op_p. 1043 (xop_*): Same. 1044 Do not use ix86_fma4_valid_op_p in FMA4 and XOP splitters. 1045 10462009-12-03 Richard Henderson <rth@redhat.com> 1047 1048 * config/i386/i386.c (ix86_fixup_binary_operands): For FMA4, force 1049 all operands into registers. 1050 10512009-12-03 Sebastian Pop <sebastian.pop@amd.com> 1052 1053 * config/i386/i386.c (ix86_expand_fma4_multiple_memory): Remove unused 1054 parameter. 1055 * config/i386/i386-protos.h (ix86_expand_fma4_multiple_memory): Same. 1056 * config/i386/sse.md: Same. 1057 10582009-12-03 Richard Guenther <rguenther@suse.de> 1059 1060 * cgraphunit.c (assemble_thunk): Use DECL_ASSEMBLER_NAME 1061 instead of DECL_NAME for the entry point. 1062 10632009-12-03 Richard Earnshaw <rearnsha@arm.com> 1064 1065 * arm/linux-atomic.c (SYNC_LOCK_RELEASE): Place memory barrier 1066 before the lock release. 1067 10682009-12-03 Michael Matz <matz@suse.de> 1069 1070 PR middle-end/38474 1071 * cfgexpand.c (struct stack_var): Add conflicts member. 1072 (stack_vars_conflict, stack_vars_conflict_alloc, 1073 n_stack_vars_conflict): Remove. 1074 (add_stack_var): Initialize conflicts member. 1075 (triangular_index, resize_stack_vars_conflict): Remove. 1076 (add_stack_var_conflict, stack_var_conflict_p): Rewrite in 1077 terms of new member. 1078 (union_stack_vars): Only run over the conflicts. 1079 (partition_stack_vars): Remove special case. 1080 (expand_used_vars_for_block): Don't call resize_stack_vars_conflict, 1081 don't create self-conflicts. 1082 (account_used_vars_for_block): Don't create any conflicts. 1083 (fini_vars_expansion): Free bitmaps, don't free or clear removed 1084 globals. 1085 10862009-12-03 Bernd Schmidt <bernd.schmidt@analog.com> 1087 1088 PR middle-end/42202 1089 * regrename.c (live_in_chains): New variable. 1090 (verify_reg_tracked): New static function. 1091 (scan_rtx_reg): Update live_in_chains. 1092 (scan_rtx): Only promote sets in COND_EXEC to OP_INOUT if 1093 we're already tracking the reg. 1094 (build_def_use): Likewise. Initialize live_in_chains. 1095 10962009-12-03 Ken Werner <ken.werner@de.ibm.com> 1097 1098 * config/spu/spu-elf.h (STARTFILE_SPEC): Add support for gprof 1099 startup files. 1100 * config/spu/spu-protos.h (spu_function_profiler): Add prototype. 1101 * config/spu/spu.c (spu_function_profiler): New function. 1102 * config/spu/spu.h (FUNCTION_PROFILER): Invoke 1103 spu_function_profiler. 1104 (NO_PROFILE_COUNTERS): Define. 1105 (PROFILE_BEFORE_PROLOGUE): Likewise. 1106 11072009-12-03 Dave Korn <dave.korn.cygwin@gmail.com> 1108 1109 * ggc-page.c (struct free_object): Pull definition out ... 1110 (struct globals): .. from here. 1111 11122009-12-02 Richard Guenther <rguenther@suse.de> 1113 1114 * fold-const.c (div_if_zero_remainder): Honor that sizetypes 1115 are sign-extending. Simplify. 1116 11172009-12-02 Richard Henderson <rth@redhat.com> 1118 1119 PR tree-opt/42215 1120 * tree-loop-distribution.c (build_size_arg_loc): Tidy. 1121 (generate_memset_zero): Convert to sizetype properly. Tidy. 1122 11232009-12-02 Richard Guenther <rguenther@suse.de> 1124 1125 * lto-streamer-out.c (pack_ts_decl_common_value_fields): 1126 Do not pretend we have value exprs. 1127 11282009-12-02 Richard Guenther <rguenther@suse.de> 1129 1130 PR middle-end/41491 1131 * fold-const.c (try_move_mult_to_index): Do not leak 1132 domain types into the IL. 1133 11342009-12-02 Richard Guenther <rguenther@suse.de> 1135 1136 PR middle-end/42088 1137 * tree.c (free_lang_data): Disable if not using LTO. 1138 11392009-12-02 Richard Guenther <rguenther@suse.de> 1140 1141 PR middle-end/42229 1142 * cfgloopmanip.c (remove_path): Avoid cancelling loops twice. 1143 11442009-12-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 1145 1146 PR middle-end/42224 1147 * tree.h (int_or_pointer_precision): Remove. 1148 * tree.c (int_or_pointer_precision): Remove. 1149 (integer_pow2p): Use TYPE_PRECISION instead. 1150 (tree_log2): Likewise. 1151 (tree_floor_log2): Likewise. 1152 (signed_or_unsigned_type_for): Likewise. 1153 * fold-const.c (fit_double_type): Likewise. 1154 * varasm.c (initializer_constant_valid_p): Likewise. 1155 11562009-12-02 Ira Rosen <irar@il.ibm.com> 1157 1158 * doc/invoke.texi (-fdump-tree-slp): Document. 1159 (-ftree-vectorizer-verbose): Update. 1160 (-ftree-slp-vectorize): Document. 1161 11622009-12-02 Nick Clifton <nickc@redhat.com> 1163 1164 * config/rx/rx.c (rx_conditional_register_usage): Do not warn if 1165 no fixed registers are available for interrupt handlers. Do not 1166 fix normal registers. 1167 (MUST_SAVE_ACC_REGISTER): New macro. 1168 (rx_get_stack_layout): Create a stack frame for fast interrupt 1169 handlers, if necessary. Push extra registers if needed in order 1170 to save the accumulator. 1171 (rx_expand_prologue): Create a stack frame for fast interrupt 1172 handlers, if necessary. 1173 (rx_expand_builtin_mvfc): Handle the case where there is no target. 1174 11752009-12-01 Sebastian Pop <sebastian.pop@amd.com> 1176 1177 * config/i386/abmintrin.h (__lzcnt16): New. 1178 (__lzcnt): New. 1179 (__lzcnt64): New. 1180 * config/i386/i386-builtin-types.def (UINT16_FTYPE_UINT16): New. 1181 * config/i386/i386.c (IX86_BUILTIN_CLZS): New. 1182 (bdesc_special_args): Add __builtin_clzs. 1183 (ix86_expand_args_builtin): Handle UINT16_FTYPE_UINT16. 1184 11852009-12-01 Sebastian Pop <sebastian.pop@amd.com> 1186 1187 * config/i386/abmintrin.h (_mm_popcnt_u32): New. 1188 (_mm_popcnt_u64): New. 1189 11902009-12-01 Sebastian Pop <sebastian.pop@amd.com> 1191 1192 * config/i386/abmintrin.h: New. 1193 * config/i386/i386-c.c (ix86_target_macros_internal): Defined __ABM__. 1194 * config/i386/x86intrin.h: Include abmintrin.h when __ABM__ is defined. 1195 11962009-12-01 Uros Bizjak <ubizjak@gmail.com> 1197 1198 * config/i386/i386.md (SWI124): Rename from CRC32MODE. 1199 (crc32modesuffix): Remove. 1200 (crc32modeconstraint): Ditto. 1201 (sse4_2_crc32<mode>): Update for renamed mode iterator. Use 1202 imodesuffix instead of crc32modesuffix and <r>m instead of 1203 crc32modeconstraint. 1204 12052009-12-01 Jakub Jelinek <jakub@redhat.com> 1206 1207 PR c++/42234 1208 * tree-cfgcleanup.c (cleanup_omp_return): Don't ICE if control_bb 1209 contains no statements. 1210 12112009-12-01 Grigori Fursin <grigori.fursin@inria.fr> 1212 Joern Rennecke <amylaar@spamcop.net> 1213 1214 * cgraphunit.c (plugin.h): Include. 1215 (ipa_passes): Invoke PLUGIN_ALL_IPA_PASSES_START / 1216 PLUGIN_ALL_IPA_PASSES_END at start / end of processing. 1217 * gcc-plugin.h (highlev-plugin-common.h, hashtab.h): Include. 1218 (enum plugin_event): Define by including plugin.def. 1219 Last enumerator is now called PLUGIN_EVENT_FIRST_DYNAMIC. 1220 (plugin_event_name): Change type to const char **. 1221 (get_event_last, get_named_event_id, unregister_callback): Declare. 1222 (register_callback): Change type of event argument to int. 1223 (highlev-plugin-common.h): New file. 1224 * Makefile.in (GCC_PLUGIN_H): Add highlev-plugin-common.h and 1225 $(HASHTAB_H) 1226 (tree-optimize.o passes.o): Depend on $(PLUGIN_H). 1227 (PLUGIN_HEADERS): Add opts.h, $(PARAMS_H) and plugin.def. 1228 (s-header-vars): New rule. 1229 (install-plugin): Depend on s-header-vars. Install b-header-vars. 1230 * params.c (get_num_compiler_params): New function. 1231 * params.h (get_num_compiler_params): Declare. 1232 * passes.c (plugin.h): Include. 1233 (make_pass_instance): Invoke PLUGIN_NEW_PASS. 1234 (do_per_function_toporder, pass_init_dump_file): No longer static. 1235 (pass_fini_dump_file): Likewise. 1236 (execute_one_pass): Likewise. Invoke PLUGIN_OVERRIDE_GATE and 1237 PLUGIN_PASS_EXECUTION. 1238 (execute_ipa_pass_list): Invoke PLUGIN_EARLY_GIMPLE_PASSES_START and 1239 PLUGIN_EARLY_GIMPLE_PASSES_END. 1240 * plugin.c (plugin_event_name_init): New array, defined by 1241 including plugin.def. 1242 (FMT_FOR_PLUGIN_EVENT): Update. 1243 (plugin_event_name): Change type to const char ** and initialize 1244 to plugin_event_name_init. 1245 (event_tab, event_last, event_horizon): New variable. 1246 (get_event_last): New function. 1247 (plugin_callbacks_init): New array. 1248 (plugin_callbacks: Change type to struct callback_info **. 1249 Initialize to plugin_callbacks_init. 1250 (htab_event_eq, get_named_event_id, unregister_callback): New function. 1251 (invoke_plugin_va_callbacks): Likewise. 1252 (register_callback): Change type of event argument to int. 1253 Handle new events. Allow dynamic events. 1254 (invoke_plugin_callbacks): Likewise. Return success status. 1255 (plugins_active_p): Allow dynamic callbacks. 1256 * plugin.def: New file. 1257 * plugin.h (invoke_plugin_callbacks): Update prototype. 1258 (invoke_plugin_va_callbacks): Declare. 1259 * tree-optimize.c (plugin.h): Include. 1260 (tree_rest_of_compilation): Invoke PLUGIN_ALL_PASSES_START and 1261 PLUGIN_ALL_PASSES_END. 1262 * tree-pass.h (execute_one_pass, pass_init_dump_file): Declare. 1263 (pass_fini_dump_file, do_per_function_toporder): Likewise. 1264 * doc/plugin.texi: Document new event types. 1265 12662009-12-01 Martin Jambor <mjambor@suse.cz> 1267 1268 PR tree-optimization/42237 1269 * tree-sra.c (sra_ipa_modify_assign): Split gimple_reg_type assignments 1270 in between references into two. 1271 12722009-12-01 Richard Guenther <rguenther@suse.de> 1273 1274 * tree-inline.c (copy_tree_body_r): Do not set TREE_BLOCK 1275 to the block of the call when remapping a type. 1276 12772009-12-01 Martin Jambor <mjambor@suse.cz> 1278 1279 * cgraph.h (struct cgraph_edge): Reorder fields. Make loop_nest 1280 unsigned short int. 1281 * ipa-prop.h (struct ipa_param_call_note): Likewise. 1282 * ipa-prop.c (ipa_note_param_call): Initialize note->loop_nest. 1283 12842009-12-01 Richard Guenther <rguenther@suse.de> 1285 1286 * final.c (rest_of_clean_state): If -fcompare-debug is 1287 given dump final insns without UIDs. 1288 * tree-ssa-live.c (remove_unused_scope_block_p): Remove 1289 after_inlining checks. 1290 12912009-11-30 Chao-ying Fu <fu@mips.com> 1292 1293 * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend. 1294 12952009-11-30 Dave Korn <dave.korn.cygwin@gmail.com> 1296 1297 * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect 1298 status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers. 1299 * configure: Regenerate. 1300 * config.in: Regenerate. 1301 1302 * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap 1303 options for Cygwin DLL libstdc++ support wrappers. 1304 (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default 1305 according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS. 1306 (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to 1307 whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not. 1308 (LINK_SPEC): Include CXX_WRAP_SPEC. 1309 * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function. 1310 (i386_find_on_wrapper_list): Check if a function is found on the list 1311 of libstdc++ wrapper options. 1312 (i386_pe_file_end): If we are importing a wrapped function, also emit 1313 an external declaration for the real version. 1314 * config/i386/cygming.opt (muse-libstdc-wrappers): New option for 1315 Cygwin targets. Update copyright year. 1316 13172009-11-30 Steve Ellcey <sje@cup.hp.com> 1318 Jakub Jelinek <jakub@redhat.com> 1319 1320 * function.c (instantiate_virtual_regs_in_insn): Copy to new reg 1321 before forcing mode. 1322 13232009-11-30 Anatoly Sokolov <aesok@post.ru> 1324 1325 * config/sh/sh.c (sh_promote_prototypes): Make static. 1326 (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New 1327 functions. 1328 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 1329 * config/sh/sh.h (FUNCTION_VALUE_REGNO_P): Redefine, use 1330 sh_function_value_regno_p. 1331 (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 1332 * config/sh/sh-protos.h (sh_function_value_regno_p): Declare. 1333 (sh_promote_prototypes) : Remove. 1334 13352009-11-30 Julian Brown <julian@codesourcery.com> 1336 1337 * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2 1338 reloads to LO_REGS. 1339 13402009-11-30 Richard Henderson <rth@redhat.com> 1341 1342 * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New. 1343 (bdesc_special_args): Update insn codes. 1344 (avx_vpermilp_parallel): Correct range check. 1345 (ix86_rtx_costs): Handle vector permutation rtx codes. 1346 (struct expand_vec_perm_d): Move earlier. 1347 (get_mode_wider_vector): New. 1348 (expand_vec_perm_broadcast_1): New. 1349 (ix86_expand_vector_init_duplicate): Use it. Tidy AVX modes. 1350 (expand_vec_perm_broadcast): New. 1351 (ix86_expand_vec_perm_builtin_1): Use it. 1352 * config/i386/i386-protos.h: Update. 1353 * config/i386/predicates.md (avx_vbroadcast_operand): New. 1354 * config/i386/sse.md (AVX256MODE24P): New. 1355 (ssescalarmodesuffix2s): New. 1356 (avxhalfvecmode, avxscalarmode): Fill out to all modes. 1357 (avxmodesuffixf2c): Add V8SI, V4DI. 1358 (vec_dupv4sf): New expander. 1359 (*vec_dupv4sf_avx): Add vbroadcastss alternative. 1360 (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for 1361 V4SF and V4SI. Move C alternatives to front. Add insertps and 1362 pinsrd alternatives. 1363 (*vec_set<mode>_0_sse2): Split out from ... 1364 (vec_set<mode>_0): Macro-ize for V4SF and V4SI. 1365 (vec_interleave_highv2df, vec_interleave_lowv2df): Require register 1366 destination; use ix86_vec_interleave_v2df_operator_ok, instead of 1367 ix86_fixup_binary_operands. 1368 (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup. 1369 (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New. 1370 (*avx_movddup, *sse3_movddup): Remove. New splitter from 1371 vec_select form to vec_duplicate form. 1372 (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use 1373 ix86_vec_interleave_v2df_operator_ok. 1374 (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ... 1375 (*avx_unpcklpd256): ... here. 1376 (*vec_dupv4si_avx): New. 1377 (*vec_dupv2di_avx): Add movddup alternative. 1378 (*vec_dupv2di_sse3): New. 1379 (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and 1380 avx_vbroadcastss256; represent with vec_duplicate instead of 1381 nested vec_concat operations. 1382 (avx_vbroadcastf128_<mode>): Rename from 1383 avx_vbroadcastf128_p<avxmodesuffixf2c>256. 1384 (*avx_vperm_broadcast_v4sf): New. 1385 (*avx_vperm_broadcast_<AVX256MODEF2P>): New. 1386 13872009-11-30 Martin Jambor <mjambor@suse.cz> 1388 1389 PR middle-end/42196 1390 * tree-sra.c (struct access): New field grp_different_types. 1391 (dump_access): Dump grp_different_types. 1392 (compare_access_positions): Prefer scalars and vectors over other 1393 scalar types. 1394 (sort_and_splice_var_accesses): Set grp_different_types if appropriate. 1395 (sra_modify_expr): Use the original also when dealing with a complex 1396 or vector group accessed as multiple types. 1397 13982009-11-30 Richard Henderson <rth@redhat.com> 1399 1400 * config/i386/i386.c (avx_vperm2f128_parallel): New. 1401 * config/i386/i386-protos.h: Declare it. 1402 * config/i386/predicates.md (avx_vperm2f128_v8sf_operand, 1403 avx_vperm2f128_v8si_operand, avx_vperm2f128_v4df_operand): New. 1404 * config/i386/sse.md (avx_vperm2f128<mode>3): Change to expander. 1405 (*avx_vperm2f128<mode>_full): Renamed from avx_vperm2f128<mode>3. 1406 (*avx_vperm2f128<mode>_nozero): New. 1407 14082009-11-30 Richard Henderson <rth@redhat.com> 1409 1410 * config/i386/i386-builtin-types.def (V4DF_FTYPE_V4DF_V4DF_V4DI): New. 1411 (V8SF_FTYPE_V8SF_V8SF_V8SI): New. 1412 * config/i386/i386.c (ix86_vectorize_builtin_vec_perm): Support 1413 V4DF and V8SF for AVX; relax constraint on V4SF to SSE1 from SSE2. 1414 (IX86_BUILTIN_VEC_PERM_V4DF, IX86_BUILTIN_VEC_PERM_V8SF): New. 1415 (bdesc_args): Add them. 1416 (ix86_expand_builtin): Expand them. 1417 (expand_vec_perm_pshufb2): Only operate on 16-byte vectors. 1418 14192009-11-30 Martin Jambor <mjambor@suse.cz> 1420 1421 PR middle-end/42206 1422 * ipa-prop.c (ipa_write_node_info): Initialize note_count to zero. 1423 14242009-11-30 Jakub Jelinek <jakub@redhat.com> 1425 1426 * ipa-reference.c (propagate): Only dump bitmaps if computed. 1427 14282009-11-30 Olga Golovanevsky <olga@il.ibm.com> 1429 1430 PR middle-end/39806 1431 * ipa-struct-reorg.c (new_var_eq): Use DECL_UID to hash new variables. 1432 (new_var_hash): Likewise. 1433 (is_in_new_vars_htab): Likewise. 1434 (add_to_new_vars_htab): Likewise. 1435 14362009-11-30 Ira Rosen <irar@il.ibm.com> 1437 1438 * tree-vect-stmts.c (vectorizable_assignment): Support 1439 multiple types. 1440 14412009-11-30 Richard Guenther <rguenther@suse.de> 1442 1443 * doc/contrib.texi (Contributors): Add myself. 1444 14452009-11-30 Richard Guenther <rguenther@suse.de> 1446 1447 * tree.c (free_lang_data): Do not set debug_info_level to 1448 none if terse. 1449 14502009-11-30 Richard Guenther <rguenther@suse.de> 1451 1452 PR middle-end/42119 1453 PR fortran/38530 1454 * expr.c (expand_expr_addr_expr_1): Properly expand the initializer 1455 of CONST_DECLs. 1456 14572009-11-30 Richard Guenther <rguenther@suse.de> 1458 1459 * tree-into-ssa.c (insert_phi_nodes): Add PHI nodes in 1460 variable UID order. 1461 14622009-11-30 Richard Guenther <rguenther@suse.de> 1463 1464 * tree-dump.c (dump_option_value_in): Add TDF_NOUID. 1465 * tree-pass.h (TDF_NOUID): Likewise. 1466 * print-rtl.c: Include tree-pass.h. 1467 (print_mem_expr): Pass dump_flags. 1468 (print_rtx): Likewise. 1469 * print-tree.c: Include tree-pass.h. 1470 (print_node_brief): Handle TDF_NOUID. 1471 (print_node): Likewise. 1472 * tree-pretty-print.c (dump_decl_name): Likewise. 1473 (dump_generic_node): Likewise. 1474 * Makefile.in (print-rtl.o, print-tree.o): Add $(TREE_PASS_H) 1475 dependency. 1476 14772009-11-30 Nick Clifton <nickc@redhat.com> 1478 1479 * config/stormy16/stormy16-lib2-count-leading-zeros.c: Delete. 1480 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Remove 1481 stormy16-lib2-count-leading-zeros.c. 1482 * config/stormy16/stormy16-lib2.c (__clzhi2): Move code from 1483 __stormy16_count_leading_zeros() into this function. 1484 (__ctzhi2): Use __builtin_clz. 1485 (__ffshi2): Likewise. 1486 14872009-11-30 Eric Botcazou <ebotcazou@adacore.com> 1488 1489 * config/sparc/sparc.c (DF_MODES): Simplify. 1490 (TF_ONLY_MODES, OF_ONLY_MODES): Delete. 1491 (TF_MODES, OF_MODES): Adjust for above change. 1492 (TF_MODES_NO_S, OF_MODES_NO_S): Likewise. 1493 * config/sparc/sparc.h (REGNO_REG_CLASS): Move around. 1494 14952009-11-30 Paolo Bonzini <bonzini@gnu.org> 1496 1497 PR rtl-optimization/41812 1498 * fwprop.c (local_md, local_lr): New globals. 1499 (process_defs, process_uses): Remove local_md argument. Never 1500 consider dead pseudos to have singleton def-use chains. 1501 (single_def_use_enter_block): Perform LR simulation. 1502 (build_single_def_use_links): Remove local_md local variable. 1503 Add DF_NOTE. Allocate local_lr. 1504 (fwprop_done): Do not remove DF_CHAIN, we do not use it anymore. 1505 * df-problems.c (df_md_scratch): New. 1506 (df_md_alloc, df_md_free): Allocate/free it. 1507 (df_md_local_compute): Only include live registers in init. 1508 (df_md_transfer_function): Prune the in-set computed by 1509 the confluence function, and the gen-set too. 1510 15112009-11-30 Hans-Peter Nilsson <hp@axis.com> 1512 1513 PR rtl-optimization/40086 1514 * reorg.c (relax_delay_slots): When looking for redundant insn at 1515 the branch target, use next_real_insn, not next_active_insn. 1516 15172009-11-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 1518 1519 * doc/install.texi: Update minimum MPC version to 0.8. 1520 15212009-09-09 Segher Boessenkool <segher@kernel.crashing.org> 1522 1523 * config/rs6000/rs6000.md (fnmaddsf4_powerpc_1): Remove 1524 HONOR_SIGNED_ZEROS final condition. 1525 (fnmsubsf4_powerpc_1): Same. 1526 (fnmadddf4_fpr_1): Same. 1527 (fnmsubdf4_fpr_1): Same. 1528 15292009-11-29 Ira Rosen <irar@il.ibm.com> 1530 1531 PR tree-optimization/42193 1532 * tree-vect-stmts.c (vectorizable_operation): Set vectorization factor 1533 to 1 in case of basic block SLP. 1534 (vectorizable_load): Likewise. 1535 15362009-11-28 Jan Hubicka <jh@suse.cz> 1537 1538 * cgraph.c (same_body_alias_1): Break out of 1539 (same_body_alias): ... here; remove comdat check; it is handled 1540 in cp already. 1541 (cgraph_add_thunk): New. 1542 (dump_cgraph_node): Dump aliases and thunks. 1543 * cgraph.h (cgraph_thunk_info): New structure. 1544 (struct cgraph_node): Add thunk info. 1545 (cgraph_add_thunk): New. 1546 * cgraphunit.c (cgraph_emit_thunks): Remove. 1547 (cgraph_finalize_compilation_unit): Do not call cgraph_emit_thunks. 1548 (assemble_thunk): New function. 1549 (cgraph_expand_function): Handle thunks. 1550 (thunk_adjust): New. 1551 (init_lowered_empty_function): New. 1552 * cp-objcp-common.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): 1553 Remove. 1554 * lto-cgraph.c (lto_output_node): Stream thunk info. 1555 (input_node): Likewise. 1556 * langhooks.h (lang_hooks_for_callgraph): Remove emit_associated_thunks. 1557 * langhooks-def.h (LANG_HOOKS_CALLGRAPH_EMIT_ASSOCIATED_THUNKS): Remove. 1558 (LANG_HOOKS_CALLGRAPH_INITIALIZER): Update. 1559 * i386.c (x86_output_mi_thunk): Make output prettier. 1560 15612009-11-28 Richard Guenther <rguenther@suse.de> 1562 1563 PR tree-optimization/42183 1564 * tree-nrv.c (tree_nrv): Bail out if the RESULT_DECL has its 1565 address taken. Merge the addressable state of the NRV 1566 variable and the result instead of copying it. 1567 15682009-11-28 Jakub Jelinek <jakub@redhat.com> 1569 1570 * matrix-reorg.c (analyze_matrix_allocation_site): Remove unused 1571 malloc_fname variable. 1572 (check_allocation_function): Remove unused gsi and bb_level_0 1573 variables. 1574 (transform_access_sites): Remove unused d_type_size and d_type_size_k 1575 variables. 1576 * omega.c (resurrect_subs): Remove unused n variable. 1577 (omega_solve_geq): Remove unused neweqns variable. 1578 * lto-streamer-in.c (lto_read_tree): Remove unused end_marker variable. 1579 * tree-inline.c (declare_return_variable): Remove USE_P argument, 1580 return use instead of var. 1581 (remap_decl, remap_block): Remove unused fn variable. 1582 (expand_call_inline): Remove unused retvar variable, adjust 1583 declare_return_variable caller. 1584 (optimize_inline_calls): Remove unused prev_fn variable. 1585 * tree-vect-slp.c (vect_analyze_slp_instance): Remove unused ncopies 1586 variable. 1587 (vect_create_mask_and_perm): Remove unused group_size and dr_chain_size 1588 variables. 1589 * tree-ssa-loop-niter.c (split_to_var_and_offset): Handle MINUS_EXPR 1590 properly. 1591 * tree-vect-loop.c (vect_analyze_loop_form): Remove unused backedge 1592 variable. 1593 (vect_create_epilog_for_reduction): Remove unused bytesize variable. 1594 * omp-low.c (workshare_safe_to_combine_p): Remove par_entry_bb 1595 parameter. Remove unused par_stmt variable. 1596 (determine_parallel_type): Adjust workshare_safe_to_combine_p caller. 1597 (expand_omp_sections): Remove unused l1 variable. 1598 (lower_omp_for): Remove unused ilist variable. 1599 * tree-loop-distribution.c (mark_nodes_having_upstream_mem_writes): 1600 Remove unused has_upstream_mem_write_p variable. 1601 * recog.c (decode_asm_operands): Remove unused noperands variable. 1602 * tree-ssa-alias.c (refs_may_alias_p_1): Remove unused size1 and 1603 size2 variable. 1604 * libgcov.c (__gcov_merge_delta): Remove unused last variable. 1605 * tree-call-cdce.c (gen_conditions_for_pow_int_base): Remove unused 1606 base_nm variable. 1607 (gen_conditions_for_pow): Remove unused ec variable. 1608 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove unused size 1609 variable. 1610 * ipa-struct-reorg.c (program_redefines_malloc_p): Remove unused 1611 fndecl variable. 1612 * tree-ssa-sink.c (statement_sink_location): Remove unused code 1613 variable. 1614 * regmove.c (copy_src_to_dest): Remove unused insn_uid and move_uid 1615 variables. 1616 * tree-complex.c (create_one_component_var): Remove unused inner_type 1617 variable. 1618 * calls.c (emit_call_1): Don't GEN_INT (struct_value_size) 1619 unnecessarily when GEN_*CALL omits that argument. 1620 * regrename.c (regrename_optimize): Remove unused regs_seen variable. 1621 (build_def_use): Remove unused icode variable. 1622 * ipa-pure-const.c (check_call): Remove unused callee and avail 1623 variables. 1624 * tree-dfa.c (add_referenced_var): Remove unused v_ann variable. 1625 * tree-vect-patterns.c (vect_recog_pow_pattern): Remove unused type 1626 variable. 1627 (vect_pattern_recog): Remove unused stmt variable. 1628 * sel-sched-ir.c (make_regions_from_the_rest): Remove unused 1629 new_regions variable. 1630 * postreload.c (reload_cse_simplify_operands): Remove unused mode 1631 variable. 1632 * tree-parloops.c (create_call_for_reduction_1): Remove unused 1633 addr_type variable. 1634 (create_parallel_loop): Remove unused res variable. 1635 (gen_parallel_loop): Remove unused nloop variable. 1636 * tree-vect-loop-manip.c (vect_loop_versioning): Likewise. 1637 * value-prof.c (gimple_mod_subtract_transform, 1638 gimple_stringops_transform): Remove unused value variable. 1639 (gimple_stringops_values_to_profile): Remove unused fcode variable. 1640 * tree-vrp.c (register_new_assert_for): Remove unused found variable. 1641 (vrp_visit_switch_stmt): Remove unused n variable. 1642 * tree-vect-stmts.c (vectorizable_conversion): Remove unused expr 1643 variable. 1644 (vectorizable_operation): Remove unused shift_p variable. 1645 (vectorizable_store): Remove unused first_stmt_vinfo variable. 1646 * tree-ssa-operands.c (add_stmt_operand): Remove unused v_ann variable. 1647 * tree-vect-data-refs.c (vect_analyze_data_refs): Remove unused bb 1648 variable. 1649 (vect_permute_store_chain): Remove unused scalar_dest variable. 1650 (vect_supportable_dr_alignment): Remove unused invariant_in_outerloop 1651 variable. 1652 * tree-ssa-threadupdate.c (thread_single_edge): Remove unused 1653 local_info variable. 1654 * tree-optimize.c (tree_rest_of_compilation): Remove unused node 1655 variable. 1656 * optabs.c (expand_binop): Remove unused equiv_value variable. 1657 (emit_libcall_block): Remove unused prev variable. 1658 (init_optabs): Remove unused int_mode variable. 1659 * tree-ssa-structalias.c (scc_visit): Remove unused have_ref_node 1660 variable. 1661 (do_structure_copy): Remove unused lhsbase and rhsbase variables. 1662 (find_func_aliases): Remove unused rhstype variable. 1663 (ipa_pta_execute): Remove unused varid variable. 1664 16652009-11-28 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 1666 1667 * config/avr/avr.h (ASM_OUTPUT_EXTERNAL): Add. 1668 16692009-11-28 David Binderman <dcb314@hotmail.com> 1670 1671 * ira-color.c (put_allocno_into_bucket): Remove set but not used 1672 local variable hard_regs_num. 1673 * ira-lives.c (process_single_reg_class_operands): Remove cover_class. 1674 * loop-unswitch.c (unswitch_loop): Remove zero_bitmap. 1675 * lower-subreg.c (decompose_multiword_subregs): Remove next. 1676 16772009-11-27 Martin Jambor <mjambor@suse.cz> 1678 1679 PR middle-end/42006 1680 * tree-sra.c (get_replaced_param_substitute): Call create_tmp_var 1681 instead of create_tmp_var. Set DECL_GIMPLE_REG_P to one manually 1682 for vector and complex types. 1683 (get_adjustment_for_base): Describe return value in the comment. 1684 16852009-11-27 Nick Clifton <nickc@redhat.com> 1686 1687 * longlong.h (count_leading_zeros): Define macro for stormy16 target. 1688 (COUNT_LEADING_ZEROS_0): Likewise. 1689 * config/stormy16/stormy16-lib2.c: Arrange for separate 1690 compilation of each function. 1691 (__ffshi2): New function. 1692 (__stormy16_count_leading_zeros): New function. 1693 * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Use stub files to 1694 compile each function into its own object file. 1695 (stormy16-lib2-ashlsi3.c): New stub file. 1696 (stormy16-lib2-ashrsi3.c): New stub file. 1697 (stormy16-lib2-clzhi2.c): New stub file. 1698 (stormy16-lib2-count-leading-zeros.c): New stub file. 1699 (stormy16-lib2-ctzhi2.c): New stub file. 1700 (stormy16-lib2-divsi3.c): New stub file. 1701 (stormy16-lib2-ffshi2.c): New stub file. 1702 (stormy16-lib2-lshrsi3.c): New stub file. 1703 (stormy16-lib2-modsi3.c): New stub file. 1704 (stormy16-lib2-parityhi2.c): New stub file. 1705 (stormy16-lib2-popcounthi2.c): New stub file. 1706 (stormy16-lib2-udivmodsi4.c): New stub file. 1707 (stormy16-lib2-udivsi3.c): New stub file. 1708 (stormy16-lib2-umodsi3.c): New stub file. 1709 17102009-11-27 Richard Henderson <rth@redhat.com> 1711 1712 * config/i386/sse.md (vec_interleave_highv16qi, 1713 vec_interleave_lowv16qi, vec_interleave_highv8hi, 1714 vec_interleave_lowv8hi, vec_interleave_highv4si, 1715 vec_interleave_lowv4si, vec_interleave_highv2di, 1716 vec_interleave_lowv2di, vec_interleave_highv4sf, 1717 vec_interleave_lowv4sf, vec_interleave_highv2df, 1718 vec_interleave_lowv2df): Remove expanders. 1719 (sse_unpcklps, sse_unpckhps, sse2_unpckhpd_exp, sse2_unpcklpd_exp, 1720 sse2_punpckhqdq, sse2_punpcklqdq, sse2_punpckhbw, sse2_punpcklbw, 1721 sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq): 1722 Rename to their proper vec_interleave equivalent. Update all users 1723 to the new name. 1724 * config/i386/i386.c, config/i386/i386.md: Update all users. 1725 17262009-11-27 Michael Matz <matz@suse.de> 1727 1728 PR rtl-optimization/42084 1729 * cfgexpand.c (maybe_cleanup_end_of_block): Add new parameter, 1730 use it to stop walking. 1731 (expand_gimple_cond): Adjust call to above. 1732 17332009-11-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1734 1735 PR target/41810 1736 * gthr-solaris.h (__gthread_mutex_destroy): Remove UNUSED. 1737 [SUPPORTS_WEAK && GTHREAD_USE_WEAK] (__gthread_active_p): Use 1738 __extension__ to allow cast from function pointer to object 1739 pointer in C++. 1740 * doc/install.texi (--enable-threads): Clarify use of Solaris threads. 1741 17422009-11-27 Steven Bosscher <steven@gcc.gnu.org> 1743 1744 * config/ia64/itanium1.md: Remove. 1745 * config/ia64/ia64.md: Do not include it. 1746 * config/ia64/ia64.c (ia64_handle_option): Remove "itanium", 1747 "itanium1", and "merced" from the processor alias table. 1748 (clocks, add_cycles): Remove global variables. 1749 (ia64_sched_reorder2): Don't set/use them. 1750 (ia64_dfa_new_cycle, ia64_h_i_d_extended, ia64_reorg): Likewise. 1751 (bundling): Likewise. Remove extra pass for MMMUL/MMSHF. 1752 17532009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 1754 1755 * config/s390/s390.c (last_scheduled_insn): New variable. 1756 (s390_fpload_toreg, s390_z10_prevent_earlyload_conflicts): New 1757 functions. 1758 (s390_sched_reorder, s390_sched_variable_issue): New functions. 1759 (TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_REORDER): Target hooks 1760 defined. 1761 17622009-11-27 Michael Matz <matz@suse.de> 1763 1764 PR c++/41906 1765 * tree-eh.c (lower_catch): Stop after expanding a catch-all. 1766 17672009-11-27 Richard Guenther <rguenther@suse.de> 1768 1769 * timevar.def (TV_LOOP_MOVE_INVARIANTS, TV_LOOP_UNSWITCH, 1770 TV_LOOP_UNROLL, TV_LOOP_DOLOOP): New timevars. 1771 * loop-init.c (pass_rtl_move_loop_invariants): Use 1772 TV_LOOP_MOVE_INVARIANTS. 1773 (pass_rtl_unswitch): Use TV_LOOP_UNSWITCH. 1774 (pass_rtl_unroll_and_peel): Use TV_LOOP_UNROLL. 1775 (pass_rtl_doloop): Use TV_LOOP_DOLOOP. 1776 17772009-11-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 1778 1779 * emit-rtl.c (next_active_insn, prev_active_insn): Correct comment. 1780 17812009-11-27 Jakub Jelinek <jakub@redhat.com> 1782 1783 * config/i386/i386.c (ix86_emit_restore_sse_regs_using_mov): Remove 1784 unused insn variable. 1785 * genemit.c (output_peephole2_scratches): Only declare and initialize 1786 _regs_allocated if it will be ever used. 1787 * cfgloopmanip.c (create_empty_if_region_on_edge): Remove unused 1788 succ_bb variable. 1789 (create_empty_loop_on_edge): Remove unused freq and cnt variables. 1790 * unwind-c.c (PERSONALITY_FUNCTION): Remove unused action_record 1791 variable. 1792 1793 * opts.c (decode_options): If optimize is bigger than 255, 1794 set it to 255. 1795 17962009-11-26 Richard Henderson <rth@redhat.com> 1797 1798 * config/i386/sse.md (mulv16qi3): Change back from an expander 1799 to an insn-and-split. 1800 (mulv4si): Mention AVX not XOP for AVX exception. 1801 (*sse2_mulv4si3): Likewise. 1802 (mulv2di3): Use vmulld not vpmacsdd for XOP expansion. Tidy. 1803 18042009-11-26 Bernd Schmidt <bernd.schmidt@analog.com> 1805 1806 * cfgexpand (n_stack_vars_conflict): New static variable. 1807 (triangular_index): Reduce likelyhood of overflow by performing 1808 the division before the multiplication. 1809 (resize_stack_vars_conflict): Call fatal_error if overflow 1810 occurred in triangular_index. Update n_stack_vars_conflict. 1811 1812 PR rtl-opt/38582 1813 * regrename.c (struct du_chain): Remove member earlyclobber. 1814 (scan_rtx_reg): Don't set it. Remove argument earlyclobber, 1815 all callers changed. 1816 (scan_rtx): Remove argument earlyclobber, all callers changed. 1817 (hide_operands, restore_operands, record_out_operands): New functions, 1818 broken out of build_def_use. 1819 (build_def_use): Call them as necessary. 1820 1821 * regrename.c (struct du_head): New members id, conflicts, 1822 hard_conflicts and cannot_rename. 1823 (enum scan_actions): Remove terminate_all_read and 1824 terminate_overlapping_read; add mark_all_read. 1825 (scan_actions_name): Likewise. 1826 (du_head_p): New typedef. Define a vector type for it. 1827 (id_to_chain): New static variable. 1828 (note_sets, clear_dead_regs): Delete functions. 1829 (free_chain_data): New function. 1830 (merge_overlapping_regs): Simply walk the conflicts bitmap. 1831 Remove argument B, all callers changed. 1832 (regrename_optimize): Allocate id_to_chain. Ignore chains that have 1833 the cannot_rename bit set. Update regno and nregs of a renamed chain. 1834 Call free_chain_data when done. 1835 (do_replace): Remove death notes when the renamed reg is set in the 1836 last insn; add them if not. 1837 (mark_conflict, note_sets_clobbers): New static function. 1838 (fail_current_block, current_id, open_chains_set, live_hard_regs): New 1839 static variables. 1840 (scan_rtx_reg): Keep track of conflicts between chains, and between 1841 chains and hard regs. Don't terminate chains when we find a read we 1842 can't handle, mark it unrenameable instead. For terminate_write, 1843 terminate chains that are written with an exact match or a superset 1844 of registers. Set fail_current_block if multi-word lifetimes are too 1845 complex to handle. 1846 (scan_rtx_address): Use mark_all_read instead of terminate_all_read. 1847 (build_def_use): Initialize current_id, live_chains and live_hard_regs; 1848 free memory for them when done. 1849 Rearrange the steps so that earlyclobbers are noted before reads 1850 are processed. Add new steps to keep track of hard register lifetimes 1851 outside insn operands. 1852 18532009-11-26 Richard Guenther <rguenther@suse.de> 1854 1855 * tree-ssa-dce.c (nr_walks): New variable. 1856 (mark_aliased_reaching_defs_necessary): Adjust oracle cut-off. 1857 (perform_tree_ssa_dce): Init nr_walks. 1858 18592009-11-26 Michael Matz <matz@suse.de> 1860 1861 PR tree-optimization/41905 1862 * tree-eh.c (lower_eh_constructs_2): Don't add assignments 1863 below statements that can't fall thru. 1864 18652009-11-26 Michael Matz <matz@suse.de> 1866 1867 * builtins.c (expand_builtin_printf, expand_builtin_fprintf, 1868 expand_builtin_sprintf): Remove. 1869 (expand_builtin): Don't call them. 1870 18712009-11-26 Richard Guenther <rguenther@suse.de> 1872 1873 * tree-ssa-dce.c (perform_tree_ssa_dce): Allocate visited bitmap. 1874 18752009-11-26 Nick Clifton <nickc@redhat.com> 1876 1877 * config/rx/rx.c (rx_expand_epilogue): Add checks for sibcalls 1878 being used incorrectly. 1879 (rx_function_ok_for_sibcall): New function. Do not allow indirect 1880 sibcalls, or sibcalls from interrupt functions. 1881 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. 1882 * config/rx/rx.md (sibcall): Convert to a define_expand. Check 1883 for a MEM inside a MEM. 1884 (sibcall_value): Likewise. 1885 (sibcall_internal): New pattern containing old sibcall pattern. 1886 (sibcall_value_internal): Likewise. 1887 18882009-11-25 Richard Henderson <rth@redhat.com> 1889 1890 * config/i386/i386-builtin-types.awk (DEF_VECTOR_TYPE): Allow an 1891 optional 3rd argument to define the mode. 1892 * config/i386/i386-builtin-types.def (UQI, UHI, USI, UDI): New. 1893 (V2UDI, V4USI, V8UHI, V16UQI): New. 1894 (V4SF_FTYPE_V4SF_V4SF_V4SI, V2UDI_FTYPE_V2UDI_V2UDI_V2UDI, 1895 V4USI_FTYPE_V4USI_V4USI_V4USI, V8UHI_FTYPE_V8UHI_V8UHI_V8UHI, 1896 V16UQI_FTYPE_V16UQI_V16UQI_V16UQI): New. 1897 * config/i386/i386-modes.def: Rearrange for double-wide AVX. 1898 * config/i386/i386-protos.h (ix86_expand_vec_extract_even_odd): New. 1899 * config/i386/i386.c (IX86_BUILTIN_VEC_PERM_*): New. 1900 (bdesc_args): Add the builtin definitions to match. 1901 (ix86_expand_builtin): Expand them. 1902 (ix86_builtin_vectorization_cost): Rename from 1903 x86_builtin_vectorization_cost. 1904 (ix86_vectorize_builtin_vec_perm, struct expand_vec_perm_d, 1905 doublesize_vector_mode, expand_vselect, expand_vselect_vconcat, 1906 expand_vec_perm_blend, expand_vec_perm_vpermil, 1907 expand_vec_perm_pshufb, expand_vec_perm_1, 1908 expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr, 1909 expand_vec_perm_interleave2, expand_vec_perm_pshufb2, 1910 expand_vec_perm_even_odd_1, expand_vec_perm_even_odd, 1911 ix86_expand_vec_perm_builtin_1, extract_vec_perm_cst, 1912 ix86_expand_vec_perm_builtin, ix86_vectorize_builtin_vec_perm_ok, 1913 ix86_expand_vec_extract_even_odd, TARGET_VECTORIZE_BUILTIN_VEC_PERM, 1914 TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New. 1915 * sse.md (SSEMODE_EO): New. 1916 (vec_extract_even<mode>): Use SSEMODE_EO and 1917 ix86_expand_vec_extract_even_odd. 1918 (vec_extract_odd<mode>): Likewise. 1919 (mulv16qi3, vec_pack_trunc_v8hi, vec_pack_trunc_v4si, 1920 vec_pack_trunc_v2di): Use ix86_expand_vec_extract_even_odd. 1921 19222009-11-25 Richard Henderson <rth@redhat.com> 1923 1924 * target.h (targetm.vectorize.builtin_vec_perm_ok): New. 1925 * target-def.h (TARGET_VECTORIZE_BUILTIN_VEC_PERM_OK): New. 1926 * hooks.h, hooks.c (hook_bool_tree_tree_true): New. 1927 * tree-vect-slp.c (vect_create_mask_and_perm): Don't create 1928 the vector constant here... 1929 (vect_transform_slp_perm_load): ... do it here instead. Validate 1930 that the permutation vector is implementable by the target. 1931 19322009-11-25 Jakub Jelinek <jakub@redhat.com> 1933 1934 * config/rs6000/sysv4.opt (mregnames): Change Var to rs6000_regnames. 1935 * config/rs6000/sysv4.h (TARGET_REGNAMES): Define. 1936 1937 * print-rtl.c (print_rtx): When printing newline, append 1938 print_rtx_head and indentation after the newline. 1939 1940 PR target/42165 1941 * config/i386/i386.c (print_operand): For 32-byte memory use 1942 YMMWORD in -masm=intel mode. Use TBYTE instead of XWORD. 1943 * config/i386/i386.md (crc32modesuffix): Expand to nothing 1944 in -masm=intel mode. 1945 (sse4_2_crc32di): Print just crc32 instead of crc32q in 1946 -masm=intel mode. 1947 * config/i386/mmx.md (*mmx_pinsrw): Print correct size of 1948 memory operand in -masm=intel mode. 1949 * config/i386/sse.md (*avx_pinsr<ssevecsize>, *sse4_1_pinsrb, 1950 *sse2_pinsrw): Likewise. 1951 (sse_cvtss2siq, sse_cvtss2siq_2, sse_cvttss2siq): Don't print 1952 q suffix in -masm=intel mode. 1953 19542009-11-25 Eric Botcazou <ebotcazou@adacore.com> 1955 1956 PR target/10127 1957 PR ada/20548 1958 PR middle-end/42004 1959 * dwarf2out.c (dwarf2out_args_size_adjust): Rename to... 1960 (dwarf2out_stack_adjust): ...this. Do not adjust the arg size for 1961 ACCUMULATE_OUTGOING_ARGS targets. Rename former version to... 1962 (dwarf2out_notice_stack_adjust): ...this. Adjust for above renaming. 1963 (dwarf2out_frame_debug_expr): Revert previous change and adjust for 1964 above renaming. 1965 (dwarf2out_frame_debug): Add ??? comment. Adjust for above renaming. 1966 19672009-11-25 Uros Bizjak <ubizjak@gmail.com> 1968 1969 * config/i386/predicates.md (emms_operation): New predicate. 1970 (vzeroupper_operation): Ditto. 1971 (vzeroall_operation): Improve pattern recognition. 1972 * config/i386/sse.md (avx_vzeroupper_rex64): Remove insn pattern. 1973 (avx_vzeroupper): Change insn pattern to expander. 1974 (*avx_vzeroupper): New insn pattern. Use vzeroupper_operation 1975 predicate. 1976 (*avx_vzeroall): Remove operands 1 and 2. 1977 * config/i386/mmx.md (mmx_emms): Change insn pattern to expander. 1978 (mmx_femms): Ditto. 1979 (*mmx_emms): New insn pattern. Use emms_operation predicate. 1980 (*mmx_femms): Ditto. 1981 * config/i386/i386.c (enum ix86_builtins) 1982 <IX86_BUILTIN_VZEROUPPER_REX64>: Remove. 1983 (struct builtin_description) <CODE_FOR_avx_vzeroupper_rex64>: 1984 Remove initailization. 1985 <CODE_FOR_avx_vzeroupper>: Unconditionally initialize here. 1986 19872009-11-25 Paul Brook <paul@codesourcery.com> 1988 1989 * config/arm/arm.md (consttable_4): Handle (high ...). 1990 19912009-11-25 Robert Nelson <robert.nelson@digikey.com> 1992 Richard Earnshaw <rearnsha@arm.com> 1993 1994 * arm.h (enum vfp_reg_type): Add VFP_NONE. 1995 * arm.c (all_fpus): Use it for floating point units that aren't based 1996 on the VFP architecture. 1997 (aapcs_vfp_is_call_or_return_candidate): Make base_mode a pointer to 1998 enum machine_mode. 1999 20002009-11-25 H.J. Lu <hongjiu.lu@intel.com> 2001 2002 * alias.c: Remove trailing white spaces. 2003 * alloc-pool.c: Likewise. 2004 * alloc-pool.h: Likewise. 2005 * attribs.c: Likewise. 2006 * auto-inc-dec.c: Likewise. 2007 * basic-block.h: Likewise. 2008 * bb-reorder.c: Likewise. 2009 * bt-load.c: Likewise. 2010 * builtins.c: Likewise. 2011 * builtins.def: Likewise. 2012 * c-common.c: Likewise. 2013 * c-common.h: Likewise. 2014 * c-cppbuiltin.c: Likewise. 2015 * c-decl.c: Likewise. 2016 * c-format.c: Likewise. 2017 * c-lex.c: Likewise. 2018 * c-omp.c: Likewise. 2019 * c-opts.c: Likewise. 2020 * c-parser.c: Likewise. 2021 * c-pretty-print.c: Likewise. 2022 * c-tree.h: Likewise. 2023 * c-typeck.c: Likewise. 2024 * caller-save.c: Likewise. 2025 * calls.c: Likewise. 2026 * cfg.c: Likewise. 2027 * cfganal.c: Likewise. 2028 * cfgexpand.c: Likewise. 2029 * cfghooks.c: Likewise. 2030 * cfghooks.h: Likewise. 2031 * cfglayout.c: Likewise. 2032 * cfgloop.c: Likewise. 2033 * cfgloop.h: Likewise. 2034 * cfgloopmanip.c: Likewise. 2035 * cfgrtl.c: Likewise. 2036 * cgraph.c: Likewise. 2037 * cgraph.h: Likewise. 2038 * cgraphbuild.c: Likewise. 2039 * cgraphunit.c: Likewise. 2040 * cif-code.def: Likewise. 2041 * collect2.c: Likewise. 2042 * combine.c: Likewise. 2043 * convert.c: Likewise. 2044 * coverage.c: Likewise. 2045 * crtstuff.c: Likewise. 2046 * cse.c: Likewise. 2047 * cselib.c: Likewise. 2048 * dbgcnt.c: Likewise. 2049 * dbgcnt.def: Likewise. 2050 * dbgcnt.h: Likewise. 2051 * dbxout.c: Likewise. 2052 * dce.c: Likewise. 2053 * ddg.c: Likewise. 2054 * ddg.h: Likewise. 2055 * defaults.h: Likewise. 2056 * df-byte-scan.c: Likewise. 2057 * df-core.c: Likewise. 2058 * df-problems.c: Likewise. 2059 * df-scan.c: Likewise. 2060 * df.h: Likewise. 2061 * dfp.c: Likewise. 2062 * diagnostic.c: Likewise. 2063 * diagnostic.h: Likewise. 2064 * dominance.c: Likewise. 2065 * domwalk.c: Likewise. 2066 * double-int.c: Likewise. 2067 * double-int.h: Likewise. 2068 * dse.c: Likewise. 2069 * dwarf2asm.c: Likewise. 2070 * dwarf2asm.h: Likewise. 2071 * dwarf2out.c: Likewise. 2072 * ebitmap.c: Likewise. 2073 * ebitmap.h: Likewise. 2074 * emit-rtl.c: Likewise. 2075 * et-forest.c: Likewise. 2076 * except.c: Likewise. 2077 * except.h: Likewise. 2078 * expmed.c: Likewise. 2079 * expr.c: Likewise. 2080 * expr.h: Likewise. 2081 * final.c: Likewise. 2082 * flags.h: Likewise. 2083 * fold-const.c: Likewise. 2084 * function.c: Likewise. 2085 * function.h: Likewise. 2086 * fwprop.c: Likewise. 2087 * gcc.c: Likewise. 2088 * gcov-dump.c: Likewise. 2089 * gcov-io.c: Likewise. 2090 * gcov-io.h: Likewise. 2091 * gcov.c: Likewise. 2092 * gcse.c: Likewise. 2093 * genattr.c: Likewise. 2094 * genattrtab.c: Likewise. 2095 * genautomata.c: Likewise. 2096 * genchecksum.c: Likewise. 2097 * genconfig.c: Likewise. 2098 * genflags.c: Likewise. 2099 * gengtype-parse.c: Likewise. 2100 * gengtype.c: Likewise. 2101 * gengtype.h: Likewise. 2102 * genmddeps.c: Likewise. 2103 * genmodes.c: Likewise. 2104 * genopinit.c: Likewise. 2105 * genpreds.c: Likewise. 2106 * gensupport.c: Likewise. 2107 * ggc-common.c: Likewise. 2108 * ggc-page.c: Likewise. 2109 * ggc-zone.c: Likewise. 2110 * ggc.h: Likewise. 2111 * gimple-iterator.c: Likewise. 2112 * gimple-low.c: Likewise. 2113 * gimple-pretty-print.c: Likewise. 2114 * gimple.c: Likewise. 2115 * gimple.def: Likewise. 2116 * gimple.h: Likewise. 2117 * gimplify.c: Likewise. 2118 * graphds.c: Likewise. 2119 * graphite-clast-to-gimple.c: Likewise. 2120 * gthr-nks.h: Likewise. 2121 * gthr-posix.c: Likewise. 2122 * gthr-posix.h: Likewise. 2123 * gthr-posix95.h: Likewise. 2124 * gthr-single.h: Likewise. 2125 * gthr-tpf.h: Likewise. 2126 * gthr-vxworks.h: Likewise. 2127 * gthr.h: Likewise. 2128 * haifa-sched.c: Likewise. 2129 * hard-reg-set.h: Likewise. 2130 * hooks.c: Likewise. 2131 * hooks.h: Likewise. 2132 * hosthooks.h: Likewise. 2133 * hwint.h: Likewise. 2134 * ifcvt.c: Likewise. 2135 * incpath.c: Likewise. 2136 * init-regs.c: Likewise. 2137 * integrate.c: Likewise. 2138 * ipa-cp.c: Likewise. 2139 * ipa-inline.c: Likewise. 2140 * ipa-prop.c: Likewise. 2141 * ipa-pure-const.c: Likewise. 2142 * ipa-reference.c: Likewise. 2143 * ipa-struct-reorg.c: Likewise. 2144 * ipa-struct-reorg.h: Likewise. 2145 * ipa-type-escape.c: Likewise. 2146 * ipa-type-escape.h: Likewise. 2147 * ipa-utils.c: Likewise. 2148 * ipa-utils.h: Likewise. 2149 * ipa.c: Likewise. 2150 * ira-build.c: Likewise. 2151 * ira-color.c: Likewise. 2152 * ira-conflicts.c: Likewise. 2153 * ira-costs.c: Likewise. 2154 * ira-emit.c: Likewise. 2155 * ira-int.h: Likewise. 2156 * ira-lives.c: Likewise. 2157 * ira.c: Likewise. 2158 * jump.c: Likewise. 2159 * lambda-code.c: Likewise. 2160 * lambda-mat.c: Likewise. 2161 * lambda-trans.c: Likewise. 2162 * lambda.h: Likewise. 2163 * langhooks.c: Likewise. 2164 * lcm.c: Likewise. 2165 * libgcov.c: Likewise. 2166 * lists.c: Likewise. 2167 * loop-doloop.c: Likewise. 2168 * loop-init.c: Likewise. 2169 * loop-invariant.c: Likewise. 2170 * loop-iv.c: Likewise. 2171 * loop-unroll.c: Likewise. 2172 * lower-subreg.c: Likewise. 2173 * lto-cgraph.c: Likewise. 2174 * lto-compress.c: Likewise. 2175 * lto-opts.c: Likewise. 2176 * lto-section-in.c: Likewise. 2177 * lto-section-out.c: Likewise. 2178 * lto-streamer-in.c: Likewise. 2179 * lto-streamer-out.c: Likewise. 2180 * lto-streamer.c: Likewise. 2181 * lto-streamer.h: Likewise. 2182 * lto-symtab.c: Likewise. 2183 * lto-wpa-fixup.c: Likewise. 2184 * matrix-reorg.c: Likewise. 2185 * mcf.c: Likewise. 2186 * mode-switching.c: Likewise. 2187 * modulo-sched.c: Likewise. 2188 * omega.c: Likewise. 2189 * omega.h: Likewise. 2190 * omp-low.c: Likewise. 2191 * optabs.c: Likewise. 2192 * optabs.h: Likewise. 2193 * opts-common.c: Likewise. 2194 * opts.c: Likewise. 2195 * params.def: Likewise. 2196 * params.h: Likewise. 2197 * passes.c: Likewise. 2198 * plugin.c: Likewise. 2199 * postreload-gcse.c: Likewise. 2200 * postreload.c: Likewise. 2201 * predict.c: Likewise. 2202 * predict.def: Likewise. 2203 * pretty-print.c: Likewise. 2204 * pretty-print.h: Likewise. 2205 * print-rtl.c: Likewise. 2206 * print-tree.c: Likewise. 2207 * profile.c: Likewise. 2208 * read-rtl.c: Likewise. 2209 * real.c: Likewise. 2210 * recog.c: Likewise. 2211 * reg-stack.c: Likewise. 2212 * regcprop.c: Likewise. 2213 * reginfo.c: Likewise. 2214 * regmove.c: Likewise. 2215 * regrename.c: Likewise. 2216 * regs.h: Likewise. 2217 * regstat.c: Likewise. 2218 * reload.c: Likewise. 2219 * reload1.c: Likewise. 2220 * resource.c: Likewise. 2221 * rtl.c: Likewise. 2222 * rtl.def: Likewise. 2223 * rtl.h: Likewise. 2224 * rtlanal.c: Likewise. 2225 * sbitmap.c: Likewise. 2226 * sched-deps.c: Likewise. 2227 * sched-ebb.c: Likewise. 2228 * sched-int.h: Likewise. 2229 * sched-rgn.c: Likewise. 2230 * sched-vis.c: Likewise. 2231 * sdbout.c: Likewise. 2232 * sel-sched-dump.c: Likewise. 2233 * sel-sched-dump.h: Likewise. 2234 * sel-sched-ir.c: Likewise. 2235 * sel-sched-ir.h: Likewise. 2236 * sel-sched.c: Likewise. 2237 * sel-sched.h: Likewise. 2238 * sese.c: Likewise. 2239 * sese.h: Likewise. 2240 * simplify-rtx.c: Likewise. 2241 * stack-ptr-mod.c: Likewise. 2242 * stmt.c: Likewise. 2243 * stor-layout.c: Likewise. 2244 * store-motion.c: Likewise. 2245 * stringpool.c: Likewise. 2246 * stub-objc.c: Likewise. 2247 * sync-builtins.def: Likewise. 2248 * target-def.h: Likewise. 2249 * target.h: Likewise. 2250 * targhooks.c: Likewise. 2251 * targhooks.h: Likewise. 2252 * timevar.c: Likewise. 2253 * tlink.c: Likewise. 2254 * toplev.c: Likewise. 2255 * toplev.h: Likewise. 2256 * tracer.c: Likewise. 2257 * tree-affine.c: Likewise. 2258 * tree-affine.h: Likewise. 2259 * tree-browser.def: Likewise. 2260 * tree-call-cdce.c: Likewise. 2261 * tree-cfg.c: Likewise. 2262 * tree-cfgcleanup.c: Likewise. 2263 * tree-chrec.c: Likewise. 2264 * tree-chrec.h: Likewise. 2265 * tree-complex.c: Likewise. 2266 * tree-data-ref.c: Likewise. 2267 * tree-data-ref.h: Likewise. 2268 * tree-dfa.c: Likewise. 2269 * tree-dump.c: Likewise. 2270 * tree-dump.h: Likewise. 2271 * tree-eh.c: Likewise. 2272 * tree-flow-inline.h: Likewise. 2273 * tree-flow.h: Likewise. 2274 * tree-if-conv.c: Likewise. 2275 * tree-inline.c: Likewise. 2276 * tree-into-ssa.c: Likewise. 2277 * tree-loop-distribution.c: Likewise. 2278 * tree-loop-linear.c: Likewise. 2279 * tree-mudflap.c: Likewise. 2280 * tree-nested.c: Likewise. 2281 * tree-nomudflap.c: Likewise. 2282 * tree-nrv.c: Likewise. 2283 * tree-object-size.c: Likewise. 2284 * tree-optimize.c: Likewise. 2285 * tree-outof-ssa.c: Likewise. 2286 * tree-parloops.c: Likewise. 2287 * tree-pass.h: Likewise. 2288 * tree-phinodes.c: Likewise. 2289 * tree-predcom.c: Likewise. 2290 * tree-pretty-print.c: Likewise. 2291 * tree-profile.c: Likewise. 2292 * tree-scalar-evolution.c: Likewise. 2293 * tree-ssa-address.c: Likewise. 2294 * tree-ssa-alias.c: Likewise. 2295 * tree-ssa-ccp.c: Likewise. 2296 * tree-ssa-coalesce.c: Likewise. 2297 * tree-ssa-copy.c: Likewise. 2298 * tree-ssa-copyrename.c: Likewise. 2299 * tree-ssa-dce.c: Likewise. 2300 * tree-ssa-dom.c: Likewise. 2301 * tree-ssa-dse.c: Likewise. 2302 * tree-ssa-forwprop.c: Likewise. 2303 * tree-ssa-ifcombine.c: Likewise. 2304 * tree-ssa-live.c: Likewise. 2305 * tree-ssa-live.h: Likewise. 2306 * tree-ssa-loop-ch.c: Likewise. 2307 * tree-ssa-loop-im.c: Likewise. 2308 * tree-ssa-loop-ivcanon.c: Likewise. 2309 * tree-ssa-loop-ivopts.c: Likewise. 2310 * tree-ssa-loop-manip.c: Likewise. 2311 * tree-ssa-loop-niter.c: Likewise. 2312 * tree-ssa-loop-prefetch.c: Likewise. 2313 * tree-ssa-loop-unswitch.c: Likewise. 2314 * tree-ssa-loop.c: Likewise. 2315 * tree-ssa-math-opts.c: Likewise. 2316 * tree-ssa-operands.c: Likewise. 2317 * tree-ssa-operands.h: Likewise. 2318 * tree-ssa-phiopt.c: Likewise. 2319 * tree-ssa-phiprop.c: Likewise. 2320 * tree-ssa-pre.c: Likewise. 2321 * tree-ssa-propagate.c: Likewise. 2322 * tree-ssa-reassoc.c: Likewise. 2323 * tree-ssa-sccvn.c: Likewise. 2324 * tree-ssa-sink.c: Likewise. 2325 * tree-ssa-structalias.c: Likewise. 2326 * tree-ssa-ter.c: Likewise. 2327 * tree-ssa-threadedge.c: Likewise. 2328 * tree-ssa-threadupdate.c: Likewise. 2329 * tree-ssa-uncprop.c: Likewise. 2330 * tree-ssa.c: Likewise. 2331 * tree-ssanames.c: Likewise. 2332 * tree-switch-conversion.c: Likewise. 2333 * tree-tailcall.c: Likewise. 2334 * tree-vect-data-refs.c: Likewise. 2335 * tree-vect-generic.c: Likewise. 2336 * tree-vect-loop-manip.c: Likewise. 2337 * tree-vect-loop.c: Likewise. 2338 * tree-vect-patterns.c: Likewise. 2339 * tree-vect-slp.c: Likewise. 2340 * tree-vect-stmts.c: Likewise. 2341 * tree-vectorizer.c: Likewise. 2342 * tree-vectorizer.h: Likewise. 2343 * tree-vrp.c: Likewise. 2344 * tree.c: Likewise. 2345 * tree.def: Likewise. 2346 * tree.h: Likewise. 2347 * treestruct.def: Likewise. 2348 * unwind-compat.c: Likewise. 2349 * unwind-dw2-fde-glibc.c: Likewise. 2350 * unwind-dw2.c: Likewise. 2351 * value-prof.c: Likewise. 2352 * value-prof.h: Likewise. 2353 * var-tracking.c: Likewise. 2354 * varasm.c: Likewise. 2355 * varpool.c: Likewise. 2356 * vec.c: Likewise. 2357 * vec.h: Likewise. 2358 * vmsdbgout.c: Likewise. 2359 * web.c: Likewise. 2360 * xcoffout.c: Likewise. 2361 23622009-11-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2363 2364 * pa.c (output_call): Only use sr4 for long interspace calls if 2365 call binds local and generating non PIC code. 2366 (attr_length_call): Adjust length calculation for above. 2367 23682009-11-25 Uros Bizjak <ubizjak@gmail.com> 2369 2370 * config/i386/i386.md (plusminus_carry_mnemonic): New code attribute. 2371 (add<mode>3_carry): Change operand order of plus RTX. 2372 (*add<mode>3_carry): Ditto. 2373 (*addsi3_carry_zext): Ditto. 2374 (*add<dwi>3_doubleword): Update for changed operand order. 2375 (*negti2_1 splitter): Ditto. 2376 (*negdi2_1 splitter): Ditto. 2377 (<plusminus_insn><mode>3_carry): Macroize expander from 2378 {add,sub}<mode>3_carry patterns using plusminus code iterator. 2379 (*<plusminus_insn><mode>3_carry): Macroize insn from 2380 *{add,sub}<mode>3_carry patetrns using plusminus code iterator. 2381 (neg<mode>2): Macroize expander from neg{qi,hi,si,di,ti}2 2382 patterns using SDWIM mode iterator. 2383 (*neg<dwi>2_doubleword): New insn_and_split pattern. Macroize 2384 pattern from *neg{di,ti}2_1 patterns and corresponding splitters 2385 using DWIH mode iterator. 2386 (*neg<mode>2_1): Macroize insn from neg{qi,hi,si,di}2_1 patterns 2387 using SWI mode iterator. 2388 (*neg<mode>2_cmpz): Ditto from neg{qi,hi,si,di}2_cmpz patterns. 2389 (one_cmpl<mode>2): Macroize expander from one_cmpl{qi,hi,si,di}2 2390 patterns using SWIM mode iterator. 2391 (*one_cmpl<mode>2_1): Macroize insn from one_cmpl{hi,si,di}2_1 2392 patterns using SWI248 mode iterator. 2393 (*one_cmpl<mode>2_2): Macroize insn from one_cmpl{qi,hi,si,di}2_2 2394 patterns using SWI mode iterator. 2395 (*one_cmpl<mode>2_2 splitter): Macroize splitter from 2396 one_cmpl{qi,hi,si,di}2_2 splitter patterns using SWI mode iterator. 2397 23982009-11-24 Michael Matz <matz@suse.de> 2399 2400 * expr.c (set_storage_via_libcall): Fix build_call_expr call. 2401 24022009-11-24 David Binderman <dcb314@hotmail.com> 2403 2404 * expr.c (store_field): Remove set but not used local variable 2405 width_mask. 2406 (expand_expr_real_2): Remove treeop2. 2407 * gcse.c (update_ld_motion_stores): Remove new_rtx. 2408 * haifa-sched.c (max_issue): Remove points. 2409 (sched_create_recovery_edges): Remove e. 2410 * ira-costs.c (setup_allocno_cover_class_and_costs): Remove mode. 2411 24122009-11-24 Nick Clifton <nickc@redhat.com> 2413 2414 * config/v850/v850.c (function_arg): Fix handling of zero-length 2415 function arguments. 2416 24172009-11-24 Michael Matz <matz@suse.de> 2418 2419 * tree.h (union tree_ann_d): Don't declare. 2420 (tree_base): Remove ann field. 2421 (struct var_ann_d): Declare forward. 2422 (tree_result_decl, tree_parm_decl, tree_var_decl): Add ann field. 2423 (DECL_VAR_ANN_PTR): New macro. 2424 * tree-dfa.c (create_var_ann): Rewrite in terms of above macro, 2425 accept only VAR, PARM or RESULT decls. 2426 (create_tree_common_ann): Remove. 2427 (remove_referenced_var): Use DECL_VAR_ANN_PTR. 2428 * tree-eh.c (lookup_expr_eh_lp): Remove. 2429 * tree-flow-inline.h (var_ann, get_var_ann): Rewrite in terms of 2430 DECL_VAR_ANN_PTR. 2431 (ann_type, tree_common_ann, get_tree_common_ann): Remove. 2432 * tree-flow.h (enum tree_ann_type): Remove. 2433 (struct tree_ann_common_d): Remove. 2434 (struct var_ann_d): Remove common field. 2435 (union tree_ann_d): Remove. 2436 (tree_ann_t, tree_ann_common_t): Remove typedefs. 2437 (tree_common_ann, get_tree_common_ann, ann_type, 2438 create_tree_common_ann, lookup_expr_eh_lp): Don't declare. 2439 * tree-ssa.c (delete_tree_ssa): Use DECL_VAR_ANN_PTR. 2440 * tree.c (copy_node_stat): Use DECL_VAR_ANN_PTR. 2441 * builtins.c (expand_builtin_memcpy): Use 2442 currently_expanding_gimple_stmt instead of tree annotation. 2443 (expand_builtin_memset_args): Ditto. 2444 * cfgexpand.c (currently_expanding_gimple_stmt): Add global variable. 2445 (expand_call_stmt): Don't set tree annotation. 2446 (expand_gimple_basic_block): Set currently_expanding_gimple_stmt. 2447 * expr.c (expand_expr_real): Don't call lookup_expr_eh_lp. 2448 * gimple.h (currently_expanding_gimple_stmt): Declare. 2449 24502009-11-24 Paolo Carlini <paolo.carlini@oracle.com> 2451 2452 * dwarf2out.c (add_location_or_const_value_attribute): Remove 2453 useless NOTE_VAR_LOCATION_STATUS call. 2454 * cfgrtl.c (commit_one_edge_insertion): Remove useless loop, tidy. 2455 24562009-11-24 Rafael Avila de Espindola <espindola@google.com> 2457 2458 * lto-wrapper.c (lto_wrapper_exit): Don't try to delete files if 2459 being called recursively. 2460 24612009-11-24 Basile Starynkevitch <basile@starynkevitch.net> 2462 2463 * Makefile.in (PLUGIN_HEADERS): Added files: cppdefault.h flags.h 2464 $(MD5_H) params.def params.h prefix.h tree-inline.h. 2465 24662009-11-24 Paul Brook <paul@codesourcery.com> 2467 2468 * gcc/config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Fix comment 2469 typo. 2470 24712009-11-24 Julian Brown <julian@codesourcery.com> 2472 Paul Brook <paul@codesourcery.com> 2473 2474 * config/arm/arm.c (TARGET_DWARF_REGISTER_SPAN): Define. 2475 (arm_dwarf_register_span): New function. 2476 (arm_dbx_register_number): Add VFPv3 dwarf numbering. 2477 24782009-11-24 David Binderman <dcb314@hotmail.com> 2479 2480 * cfgrtl.c (commit_one_edge_insertion): Remove set but not used 2481 local variable bb_note. 2482 * dominance.c (get_dominated_by): Likewise local var n. 2483 (output_file_names): Likewise local var idx. 2484 (add_location_or_const_value_attribute): Likewise local var status. 2485 * dwarf2out.c (gen_variable_die): Likewise local var field. 2486 * emit-rtl.c (no_line_numbers): Remove. 2487 (init_emit_once): Remove line_numbers parameter. 2488 * rtl.h (init_emit_once): Adjust prototype. 2489 * toplev.c (backend_init): Adjust init_emit_once call. 2490 24912009-11-24 Richard Guenther <rguenther@suse.de> 2492 2493 PR tree-optimization/42142 2494 * tree-ssa-dce.c (mark_aliased_reaching_defs_necessary_1): 2495 Handle iv-dependent (non-)kills properly. 2496 (mark_aliased_reaching_defs_necessary): Pass the basic-block 2497 of the reference statement to mark_aliased_reaching_defs_necessary_1. 2498 24992009-11-24 Martin Jambor <mjambor@suse.cz> 2500 2501 PR tree-optimization/42154 2502 * tree-sra.c (struct access): Added comments. 2503 (sra_modify_expr): Build references to the old aggregate with 2504 build_ref_for_offset instead of reusing access->expr. 2505 (load_assign_lhs_subreplacements): Likewise. 2506 25072009-11-24 Uros Bizjak <ubizjak@gmail.com> 2508 2509 * config/i386/i386.md (add<mode>3_carry): Change insn pattern 2510 to expander. 2511 (sub<mode>3_carry): Ditto. 2512 (x86_mov<mode>cc_0_m1): Ditto. 2513 (*add<mode>3_carry): New insn pattern. Use VOIDmode match_operator 2514 for ix86_carry_flag_operator operator predicate. 2515 (*sub<mode>3_carry): Ditto. 2516 (*x86_mov<mode>cc_0_m1): Ditto. 2517 (*addsi3_carry_zext): Use VOIDmode match_operator for 2518 ix86_carry_flag_operator operator predicate. 2519 (*subsi3_carry_zext): Ditto. 2520 (*x86_mov<mode>cc_0_m1_s): Ditto. 2521 (*x86_mov<mode>cc_0_m1_neg): Ditto. 2522 * config/i386/predocates.md (ix86_carry_flag_operator): Do not 2523 check operator sub-expressions for FLAGS_REG and const0_rtx. 2524 * config/i386/i386.c (*ix86_gen_sub3_carry): Update prototype. 2525 (ix86_expand_int_movcc): Update calls to gen_x86_mov{si,di}cc_0_m1. 2526 (ix86_expand_int_addcc): Update calls to 2527 gen_{add,sub}{qi,hi,si,di}3_carry. Do not set mode of compare_op. 2528 (ix86_expand_strlensi_unroll_1): Update calls to ix86_gen_sub3_carry. 2529 Do not set mode of compare operation. 2530 25312009-11-23 Jan Hubicka <jh@suse.cz> 2532 2533 PR middle-end/42151 2534 * ipa-inline.c (inline_transform): Avoid ICE when transform is called 2535 twice. 2536 25372009-11-23 Jan Hubicka <jh@suse.cz> 2538 2539 * ipa-cp.c (ipcp_compute_node_scale): Work around completely 2540 wrong profile updates. 2541 * predict.c (counts_to_freqs): Be expected for ENTRY/EXIT block 2542 having largest frequency. 2543 * ira-live.c (ira_implicitly_set_insn_hard_regs): Silecne 2544 used uninitalized warning. 2545 * tree-optimize.c (execute_fixup_cfg): Rescale entry and exit block 2546 frequencies. 2547 25482009-11-23 Uros Bizjak <ubizjak@gmail.com> 2549 2550 * config/alpha/alpha.md (*cmp_sadd_sidi): Use gen_lowpart instead 2551 of gen_rtx_REG to generate operand 5. 2552 (*cmp_ssub_sidi): Ditto. 2553 25542009-11-23 Richard Henderson <rth@redhat.com> 2555 2556 * config/i386/i386.c (avx_vpermilp_parallel): Fix sign compare 2557 mismatch. 2558 25592009-11-23 Paul Brook <paul@codesourcery.com> 2560 2561 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Add special 2562 case for noreturn functions. 2563 (arm_compute_save_reg_mask): Remove special noreturn handling. 2564 25652009-11-23 Richard Guenther <rguenther@suse.de> 2566 2567 * tree-dfa.c (get_ref_base_and_extent): Adjust maximum access 2568 size for DECL bases. 2569 25702009-11-22 Richard Henderson <rth@redhat.com> 2571 2572 * i386.c (avx_vpermilp_parallel): New function. 2573 * i386-protos.h: Declare it. 2574 * predicates.md (avx_vpermilp_v8sf_operand, avx_vpermilp_v4df_operand, 2575 avx_vpermilp_v4sf_operand, avx_vpermilp_v2df_operand): New. 2576 * sse.md (AVXMODEFDP, AVXMODEFSP): New iterators. 2577 (ssescalarnum, ssedoublesizemode): Add AVX modes. 2578 (vpermilbits): Remove. 2579 (avx_vpermil<mode>): Change insns to expanders. 2580 (*avx_vpermil<mode>): New. Use vec_select. 2581 25822009-11-22 Richard Earnshaw <rearnsha@arm.com> 2583 2584 * opts.c (decode_options): Don't enable flag_schedule_insns 2585 when optimizing for size. 2586 * doc/invoke.texi: Document change. 2587 25882009-11-22 Uros Bizjak <ubizjak@gmail.com> 2589 2590 PR target/42113 2591 * config/alpha/alpha.md (*cmp_sadd_si): Change mode 2592 of scratch register to SImode. 2593 (*cmp_sadd_sidi): Ditto. 2594 (*cmp_ssub_si): Ditto. 2595 (*cmp_ssub_sidi): Ditto. 2596 25972009-11-21 Ian Lance Taylor <iant@google.com> 2598 2599 * Makefile.in (HOST_LIBS): Move higher in file. 2600 (LINKER, LINKER_FLAGS): If ENABLE_BUILD_WITH_CXX, but $(HOST_LIBS) 2601 is not empty, set to $(CC) and $(CFLAGS). 2602 26032009-11-22 Martin Jambor <mjambor@suse.cz> 2604 2605 * tree-cfg.c (verify_types_in_gimple_reference): Error out on 2606 V_C_E of an SSA_NAME or an invariant if lvalue is required. 2607 (verify_gimple_call): Verify LHS also with with 2608 verify_types_in_gimple_reference. 2609 26102009-11-21 Martin Jambor <mjambor@suse.cz> 2611 2612 PR middle-end/42025 2613 * tree-sra.c (access_precludes_ipa_sra_p): New function. 2614 (splice_param_accesses): Check all accesses by calling 2615 access_precludes_ipa_sra_p. 2616 (sra_ipa_modify_expr): Rename argument erite to dont_convert and do 2617 not convert types if it is true. 2618 (sra_ipa_modify_assign): Convert types in case of mismatch. 2619 26202009-11-21 Kaushik Phatak <kaushik.phatak@kpitcummins.com> 2621 2622 * config/sh/sh.md (cmpeqsi_t-1): Use logical_operand predicate 2623 for operand 1. 2624 26252009-11-21 Adam Nemet <adambnemet@gmail.com> 2626 2627 * config/mips/mips-protos.h (mulsidi3_gen_fn): New typedef. 2628 (mips_mulsidi3_gen_fn): Declare new function. 2629 * config/mips/mips.c (mips_mulsidi3_gen_fn): New function. 2630 * config/mips/mips.md (<u>mulsidi3): Change condition to use 2631 mips_mulsidi3_gen_fn. Use mips_mulsidi3_gen_fn to generate the insn. 2632 (<u>mulsidi3_64bit): Don't match for ISA_HAS_DMUL3. 2633 (mulsidi3_64bit_dmul): New define_insn. 2634 26352009-11-21 Ben Elliston <bje@au.ibm.com> 2636 2637 * gengtype-lex.l: Enable noinput flex option. 2638 (YY_NO_INPUT): Remove define. 2639 26402009-11-21 Alexandre Oliva <aoliva@redhat.com> 2641 2642 * tree-ssa.c (find_released_ssa_name): Handle NULL wi. 2643 (insert_debug_temp_for_var_def): Handle degenerate PHI nodes. 2644 (insert_debug_temps_for_defs): Handle PHI nodes. 2645 * tree-ssa-dom.c (degenerate_phi_result): Don't crash on released 2646 SSA names. 2647 26482009-11-21 Alexandre Oliva <aoliva@redhat.com> 2649 2650 * tree-ssa-pre.c (remove_dead_inserted_code): Don't release_defs 2651 after remove_phi_node. 2652 26532009-11-21 Alexandre Oliva <aoliva@redhat.com> 2654 2655 PR tree-optimization/42078 2656 * gimple.h (gimple_replace_lhs): New declaration. 2657 * gimple.c (gimple_replace_lhs): New function. 2658 * tree-ssa-math-opts.c (execute_cse_reciprocals): Call it before 2659 modifying the call. 2660 26612009-11-20 Sebastian Pop <sebastian.pop@amd.com> 2662 2663 * config/i386/sse.md (*xop_pmacsdql_mem): Don't call reg_mentioned_p. 2664 (xop_mulv2div2di3_low): Same. 2665 (*xop_pmacsdqh_mem): Same. 2666 26672009-11-20 Richard Henderson <rth@redhat.com> 2668 2669 * config/i386/i386-builtin-types.awk: New file. 2670 * config/i386/i386-builtin-types.def: New file. 2671 * config/i386/t-i386: Use them to build i386-builtin-types.inc. 2672 * config/i386/i386.c: Include it. 2673 (ix86_builtin_type_tab, ix86_get_builtin_type): New. 2674 (ix86_builtin_func_type_tab, ix86_get_builtin_func_type): New. 2675 (struct builtin_isa): Remove GTY marker. Replace tree type with 2676 ix86_builtin_func_type; add set_and_not_built_p. 2677 (def_builtin): Change type parameter to tcode; use 2678 ix86_get_builtin_func_type; update all callers. Accept zero mask 2679 to mean the builtin is unconditionally available. 2680 (ix86_add_new_builtins): Use set_and_not_built_p instead of type 2681 being set to NULL. 2682 (enum ix86_special_builtin_type, enum ix86_builtin_type): Remove. 2683 Update some users to rationalized enumeration codes from new include. 2684 (enum multi_arg_type): Remove. Replace all enumeration values 2685 with defines to new ix86_builtin_func_type. 2686 (ix86_init_mmx_sse_builtins): Don't build any types here. Defer 2687 all type resolution to def_builtin. 2688 (ix86_init_builtin_types): Split out from ... 2689 (ix86_init_builtins): ... here. Use ix86_get_builtin_func_type. 2690 26912009-11-20 Michael Meissner <meissner@linux.vnet.ibm.com> 2692 2693 PR target/41787 2694 * config/rs6000/rs6000.c (struct machine_function): Revert 2695 2009-10-23 change to set VRSAVE to non-0 if we use VSX. 2696 (rs6000_expand_to_rtl_hook): Ditto. 2697 (rs6000_check_vector_mode): Ditto. 2698 (compute_vrsave_mask): Ditto. 2699 27002009-11-20 Paul Brook <paul@codesourcery.com> 2701 2702 * doc/invoke.texi: Document ARM -mcpu=cortex-a5. 2703 * config/arm/arm-cores.def: Add cortex-a5. 2704 * config/arm/bpabi.h (BE8_LINK_SPEC): Add mcpu=cortex-a5. 2705 * config/arm/arm-tune.md: Regenerate. 2706 27072009-11-20 Olga Golovanevsky <olga@il.ibm.com> 2708 2709 PR middle-end/39960 2710 * ipa-struct-reorg.c (find_pos_in_stmt): New parameter. 2711 (ref_pos): New field in structure. 2712 (insert_new_var_in_stmt): New function. 2713 2714 27152009-11-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2716 2717 * config.gcc (alpha*-dec-osf[45]*): Set use_gcc_stdint. 2718 * config/alpha/osf.h (SIG_ATOMIC_TYPE): Define. 2719 (INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE): Define. 2720 (UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE): Define. 2721 (INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 2722 INT_LEAST64_TYPE): Define. 2723 (UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, UINT_LEAST32_TYPE, 2724 UINT_LEAST64_TYPE): Define. 2725 (INT_FAST8_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE, 2726 INT_FAST64_TYPE): Define. 2727 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 2728 UINT_FAST64_TYPE): Define. 2729 (INTPTR_TYPE, UINTPTR_TYPE): Define. 2730 27312009-11-20 Julian Brown <julian@codesourcery.com> 2732 2733 * config/arm/arm.h (ASM_OUTPUT_REG_PUSH): Handle STATIC_CHAIN_REGNUM 2734 specially for Thumb-1. 2735 (ASM_OUTPUT_REG_POP): Likewise. 2736 27372009-11-19 Jason Merrill <jason@redhat.com> 2738 2739 * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT. 2740 27412009-11-19 Basile Starynkevitch <basile@starynkevitch.net> 2742 Rafael Avila de Espindola <espindola@google.com> 2743 2744 * doc/plugins.texi (Plugin initialization): Added advices for 2745 retrieving the version of GCC at plugin compilation and loading times. 2746 27472009-11-19 Basile Starynkevitch <basile@starynkevitch.net> 2748 2749 * plugin.c (FMT_FOR_PLUGIN_EVENT): added definition. 2750 (dump_active_plugins): output to file everything. Use 2751 internationalized dump & FMT_FOR_PLUGIN_EVENT. 2752 27532009-11-19 Richard Guenther <rguenther@suse.de> 2754 2755 * gimple.c (canonicalize_cond_expr_cond): Strip conversions 2756 around truth-valued expressions. 2757 * tree.c (free_lang_data): Untangle check for LTO frontend. 2758 27592009-11-19 Jakub Jelinek <jakub@redhat.com> 2760 2761 * tree.c (need_assembler_name_p): Use cgraph_get_node instead 2762 of cgraph_node_for_decl. 2763 * cgraph.h (cgraph_node_for_decl): Remove prototype. 2764 * cgraph.c (cgraph_node_for_decl): Remove. 2765 (cgraph_get_node): Just return NULL if !cgraph_hash. 2766 27672009-11-19 Paul Brook <paul@codesourcery.com> 2768 2769 * config.gcc: Add new ARM --with-fpu options. 2770 * doc/invoke.texi: Docuent ARM -mfpu=fpv4-sp-d16. 2771 * config/arm/arm.c (all_fpus): Add fpv4-sp-d16. 2772 27732009-11-18 Richard Guenther <rguenther@suse.de> 2774 2775 * gimple.h (union gimple_statement_d): Add gsmembase member. 2776 (gimple_vuse_op): Use gsmembase for access. 2777 (gimple_vdef_op): Likewise. 2778 (gimple_vuse): Likewise. 2779 (gimple_vdef): Likewise. 2780 (gimple_vuse_ptr): Likewise. 2781 (gimple_vdef_ptr): Likewise. 2782 (gimple_set_vuse): Likewise. 2783 (gimple_set_vdef): Likewise. 2784 * gsstruct.def (GSS_WITH_MEM_OPS_BASE): Add. 2785 27862009-11-18 Daniel Jacobowitz <dan@codesourcery.com> 2787 2788 * doc/arm-neon-intrinsics.texi: Regenerated. 2789 27902009-11-18 Daniel Jacobowitz <dan@codesourcery.com> 2791 2792 * config/arm/neon-docgen.ml (analyze_shape_elt): Handle alternatives. 2793 27942009-11-18 Paul Brook <paul@codesourcery.com> 2795 Daniel Jacobowitz <dan@codesourcery.com> 2796 2797 * config/arm/arm.c (FL_ARCH7EM, FL_FOR_ARCH7EM): Define. 2798 (arm_arch7em): New variable. 2799 (all_architectures): Add armv7e-m. 2800 (arm_override_options): Set arm_arch7em. 2801 * config/arm/arm.h (TARGET_DSP_MULTIPLY, TARGET_INT_SIMD): 2802 Include arm_arch7em. 2803 (arm_arch7em): Declare. 2804 28052009-11-18 Richard Guenther <rguenther@suse.de> 2806 2807 * lto-streamer-in.c (input_gimple_stmt): Assert that we find 2808 a valid field decl if checking is enabled. 2809 28102009-11-18 Martin Jambor <mjambor@suse.cz> 2811 2812 * ipa-prop.h (struct ipa_param_call_note): New field lto_stmt_uid. 2813 (lto_ipa_fixup_call_notes): Declare. 2814 * ipa-prop.c (ipa_note_param_call): Store gimple uid. 2815 (update_call_notes_after_inlining): Copy call stmt uid to the new 2816 edge. 2817 (ipa_write_param_call_note): New function. 2818 (ipa_read_param_call_note): New function 2819 (ipa_write_node_info): Write also param call notes. Removed a bogus 2820 comment, reformatted to fit 80 columns. 2821 (ipa_read_node_info): Read also param call notes. Removed a bogus 2822 comment. Remove ipa_edge_args_vector growth. 2823 (lto_ipa_fixup_call_notes): New function. 2824 * ipa-cp.c (pass_ipa_cp): Add stmt_fixup hook. 2825 * ipa-inline.c (cgraph_mark_inline_edge): Perform indirect 2826 inlining regardless of flag_wpa. 2827 (cgraph_decide_inlining_of_small_functions): Likewise. 2828 (cgraph_decide_inlining): Likewise. 2829 (inline_read_summary): Likewise. 2830 28312009-11-18 Jan Hubicka <jh@suse.cz> 2832 2833 * predict.c (compute_function_frequency): Export. 2834 * predict.h (compute_function_frequency): Declare. 2835 * tree-optimize.c (execute_fixup_cfg): Rescale frequencies. 2836 28372009-11-18 Martin Jambor <mjambor@suse.cz> 2838 2839 * passes.c (ipa_write_summaries): Call renumber_gimple_stmt_uids 2840 on all nodes we write summaries for. 2841 28422009-11-18 Shujing Zhao <pearly.zhao@oracle.com> 2843 2844 PR middle-end/22201 2845 * params.def (PARAM_INLINE_UNIT_GROWTH, PARAM_IPCP_UNIT_GROWTH) 2846 (PARAM_EARLY_INLINING_INSNS, PARAM_IRA_MAX_LOOPS_NUM) 2847 (PARAM_IRA_MAX_CONFLICT_TABLE_SIZE) 2848 (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP) 2849 (PARAM_MIN_INSN_TO_PREFETCH_RATIO) 2850 (PARAM_PREFETCH_MIN_INSN_TO_MEM_RATIO) 2851 (PARAM_IPA_SRA_PTR_GROWTH_FACTOR): Uppercase the first letter of the 2852 description string. 2853 28542009-11-18 Jakub Jelinek <jakub@redhat.com> 2855 2856 * dwarf2out.c (loc_list_from_tree): Don't call rtl_for_decl_location 2857 unnecessarily. 2858 (rtl_for_decl_location): Try harder to get a rtl for TREE_STATIC vars. 2859 2860 PR c++/3187 2861 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias 2862 fields. 2863 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New 2864 prototypes. 2865 * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks, 2866 cgraph_materialize_all_clones): Handle same_body aliases. 2867 * cgraph.c (cgraph_allocate_node): New function. 2868 (cgraph_create_node): Use it. 2869 (cgraph_node_for_decl, cgraph_node, cgraph_get_node, 2870 cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases. 2871 (cgraph_same_body_alias, cgraph_remove_same_body_alias): New 2872 functions. 2873 * lto-cgraph.c (lto_output_node): Stream out same_body aliases. 2874 (input_node): Stream in same_body aliases. 2875 * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers 2876 for same_body aliases. 2877 (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases. 2878 28792009-11-18 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 2880 2881 PR other/39888 2882 * config/darwin.h: Use the extension stub libraries to access 2883 current libgcc_s features. 2884 28852009-11-18 Alexandre Oliva <aoliva@redhat.com> 2886 2887 PR debug/41926 2888 * tree-vect-loop.c (vect_loop_kill_debug_uses): New. 2889 (vect_transform_loop): Call it. 2890 28912009-11-18 Alexandre Oliva <aoliva@redhat.com> 2892 2893 * tree-ssa.c (insert_debug_temp_for_var_def): Fix handling of 2894 released SSA names. 2895 28962009-11-18 Alexandre Oliva <aoliva@redhat.com> 2897 2898 PR debug/41888 2899 PR debug/41886 2900 * graphite-scop-detection.c (stmt_simple_for_scop_p): Debug stmts 2901 are ok. 2902 * graphite-sese-to-poly.c (graphite_stmt_p): Likewise. 2903 (try_generate_gimple_bb): Skip debug stmts when finding data refs. 2904 * sese.c (sese_build_liveouts_bb): Skip debug stmts. 2905 (sese_bad_liveouts_use): New. 2906 (sese_reset_debug_liveouts_bb): New. 2907 (sese_build_liveouts): Use it. 2908 (rename_variables_in_stmt): Reset debug stmts rather than creating 2909 new vars for them. 2910 (expand_scalar_variable_stmt): Likewise. 2911 29122009-11-18 Alexandre Oliva <aoliva@redhat.com> 2913 2914 * df-scan.c (df_ref_create): Don't mark BB as dirty on debug insns. 2915 (df_ref_remove): Likewise. 2916 29172009-11-17 Jan Hubicka <jh@suse.cz> 2918 2919 * ipa-struct-reorg.c (update_cgraph_with_malloc_call): Fix profile 2920 info. 2921 29222009-11-17 Eric Botcazou <ebotcazou@adacore.com> 2923 2924 * toplev.c (process_options): Remove dead code. 2925 * doc/invoke.texi (-frename-registers): Mention -fpeel-loops. 2926 29272009-11-17 Rafael Avila de Espindola <espindola@google.com> 2928 2929 * lto-symtab.c (lto_symtab_resolve_symbols): Always initialize the 2930 nodes. 2931 29322009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2933 2934 PR tree-optimization/41857 2935 * tree-ssa-address.c (move_hint_to_base): Use void pointer to 2936 TYPE's address space instead of pointer to TYPE. 2937 29382009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2939 2940 * reload.c (find_reloads_address): Fix typo. 2941 29422009-11-17 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 2943 2944 * config/spu/spu.c (get_pic_reg): Use LAST_ARG_REGNUM as PIC 2945 registers in leaf functions if possible. 2946 29472009-11-17 Maxim Kuvyrkov <maxim@codesourcery.com> 2948 2949 * config/m68k/m68k-devices.def: Add MCF5441x family. 2950 29512009-11-17 Jan Hubicka <jh@suse.cz> 2952 2953 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Do not access 2954 removed node. 2955 * cgraphunit.c (verify_cgraph_node): Verify frequencies for match. 2956 29572009-11-17 Uros Bizjak <ubizjak@gmail.com> 2958 2959 * config/i386/predicates.md (x86_64_szext_general_operand): Do not 2960 nest ior expressions. 2961 (x86_64_szext_nonmemory_operand): Ditto. 2962 (call_insn_operand): Ditto. 2963 29642009-11-16 Alexandre Oliva <aoliva@redhat.com> 2965 2966 * stmt.c (expand_asm_stmt): Get locus from stmt. 2967 29682009-11-16 Alexandre Oliva <aoliva@redhat.com> 2969 2970 * tree-cfg.c (gimple_redirect_edge_and_branch) <case GIMPLE_ASM>: 2971 Create the decl label for the new dest block on demand. Require 2972 a fallthrough edge if no asm labels were redirected. 2973 29742009-11-16 Uros Bizjak <ubizjak@gmail.com> 2975 2976 * config/i386/i386.md (cbranchsi4): Use nonimmediate_operand for 2977 operand 1 predicate. 2978 (cstoresi4): Ditto for operand 2. 2979 (cbranch<mode>4): Macroize expander from cbranch{qi,hi,si,di,ti}4 2980 patterns using SDWIM mode iterator. 2981 (cstore<mode>4): Macroize expander from cstore{qi,hi,si,di}4 patterns 2982 using SWIM mode iterator. 2983 (cmpdi_1): Rename from cmpdi_1_rex64. 2984 (cmp<mode>_1): Macroize expander from cmp{si,di}_1 patterns using 2985 SWI48 mode iterator. 2986 (*cmp<mode>_1): Macroize insn from *cmp{qi,hi,si,di}_1_insn patterns 2987 using SWI mode iterator. 2988 (*cmp<mode>_ccno_1): Ditto from *cmp{qi,hi,si,di}_ccno_1. 2989 (*cmp<mode>_minus_1): Ditto from *cmp{qi,hi,si,di}_minus_1. 2990 (*cmpqi_ext_3_insn): Make private. 2991 (*cmpqi_ext_3_insn_rex64): Make private. 2992 (cmpstrnsi): Update for renamed cmpdi_1_rex64. 2993 * config/i386/predicates.md (cmpsi_operand): Remove. 2994 29952009-11-16 Paul Brook <paul@codesourcery.com> 2996 2997 * doc/invoke.texi: Document ARM VFPv4 based FPUs. 2998 * config/arm/arm.c (all_fpus): Add VFPv4 entries. 2999 30002009-11-14 Jan Hubicka <jh@suse.cz> 3001 3002 * cgraphbuild.c (compute_call_stmt_bb_frequency): Use proper 3003 ENTRY_BLOCK_PTR. 3004 * cgraph.c (cgraph_clone_edge): Avoid freq_scale 0 to completely 3005 zero out all callees. 3006 * cgraphunit.c (verify_cgraph_node): Verify cgraph nodes for 3007 frequency and count match. 3008 * ipa-inline.c (update_noncloned_frequencies): New function. 3009 (cgraph_clone_inlined_nodes): Use it. 3010 * tree-inline.c (copy_bb): Fix frequency scaling; output 3011 diagnostic on frequency mismatches to dump file. 3012 (initialize_cfun): Do not scale frequency; fix count scaling; 3013 initialize entry and exit block frequencies; copy profile info. 3014 (copy_cfg_body): Use frequency_scale as argument; fix count scaling. 3015 (copy_body): Use frequency_scale as argument. 3016 (expand_call_inline): Compute frequency scale and output diagnostic 3017 to dump file. 3018 (delete_unreachable_blocks_update_callgrah): Remove checking that 3019 has to be done after edge redirection. 3020 (tree_function_versioning): Update initialize_cfun and copy_body call. 3021 30222009-11-14 Jan Hubicka <jh@suse.cz> 3023 3024 * cgraph.c (cgraph_release_function_body): Update use of 3025 ipa_transforms_to_apply. 3026 (cgraph_remove_node): Remove ipa_transforms_to_apply. 3027 * cgraph.h (struct cgraph_node): Add ipa_transforms_to_apply. 3028 * cgraphunit.c (save_inline_function_body): Clear ipa_transforms for 3029 copied body. 3030 (cgraph_materialize_clone): Remove original if dead. 3031 * lto-streamer-in.c (lto_read_body): Remove FIXME and 3032 ipa_transforms_to_apply hack. 3033 * function.h (struct function): Add ipa_transforms_to_apply. 3034 * ipa.c (cgraph_remove_unreachable_nodes): Handle dead clone originals. 3035 * tree-inline.c (copy_bb): Update sanity check. 3036 (initialize_cfun): Do not copy ipa_transforms_to_apply. 3037 (expand_call_inline): remove dead clone originals. 3038 (tree_function_versioning): Merge transformation queues. 3039 * passes.c (add_ipa_transform_pass): Remove. 3040 (execute_one_ipa_transform_pass): Update ipa_transforms_to_apply 3041 tracking. 3042 (execute_all_ipa_transforms): Update. 3043 (execute_one_pass): Update. 3044 30452009-11-14 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 3046 3047 PR target/21078, 21080 3048 * config/avr/avr.c (avr_return_addr_rtx): New function for 3049 builtin_return_address. 3050 (expand_prologue): Calculate stack usage. 3051 (avr_asm_function_end_prologue): Output stack size and offset label. 3052 * config/avr/avr.h (RETURN_ADDR_RTX): Replace. 3053 (machine_function): Add stack_usage. 3054 * config/avr/avr-protos.h (avr_return_addr_rtx): New function. 3055 30562009-11-14 Anatoly Sokolov <aesok@post.ru> 3057 3058 * config/iq2000/iq2000.c (iq2000_function_value): Make static, add 3059 new 'outgoing' argument. 3060 (iq2000_libcall_value, iq2000_function_value_regno_p): New functions. 3061 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 3062 * config/iq2000/iq2000.h (FUNCTION_VALUE_REGNO_P): Redefine, use 3063 iq2000_function_value_regno_p. 3064 (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 3065 * config/iq2000/iq2000-protos.h (iq2000_function_value_regno_p): 3066 Declare. 3067 30682009-11-14 Richard Earnshaw <rearnsha@arm.com> 3069 3070 PR target/42031 3071 * arm.md (adddi_sesidi_di): Place tied contraint first. 3072 (adddi_zesidi_di, subdi_di_zesidi, subdi_di_sesidi): Likewise 3073 (subdi_zesidi_di, subdi_sesidi_di): Likewise. 3074 (mulsi3_compare0, mulsi_compare0_scratch): Likewise. 3075 (mulsi3addsi, mulsi3addsi_compare0): Likewise. 3076 (mulsi3addsi_compare0_scratch, smulsi3_highpart_nov6): Likewise. 3077 (umulsi3_highpart_nov6, anddi_zesidi_di, anddi_sesdi_di): Likewise. 3078 (anddi_notdi_di, iordi_sesidi_di, xordi_sesidi_di): Likewise. 3079 (andsi_iorsi3_notsi, arm_ashldi3_1bit, arm_ashrdi3_1_bit): Likewise. 3080 (arm_lshrdi3_1bit, one_cmpldi2): Likewise. 3081 30822009-11-14 Uros Bizjak <ubizjak@gmail.com> 3083 3084 * config/i386/predicates.md (call_register_no_elim_operand): 3085 New predicate. Reject stack register as valid call operand 3086 for 32bit targets. 3087 (call_insn_operand): Use call_register_no_elim_operand. 3088 30892009-11-13 Richard Henderson <rth@redhat.com> 3090 3091 * function.c (stack_protect_prologue): Don't bypass expand_expr 3092 for stack_protect_guard and guard_decl. 3093 (stack_protect_epilogue): Likewise. 3094 30952009-11-13 Jan Hubicka <jh@suse.cz> 3096 3097 * ipa.c (function_and_variable_visibility): Clear COMDAT on functions 3098 when to PUBLIC is set. 3099 31002009-11-13 Jakub Jelinek <jakub@redhat.com> 3101 3102 PR middle-end/42029 3103 * gimplify.c (gimplify_omp_atomic): Set DECL_GIMPLE_REG_P on 3104 tmp_load if needed. 3105 31062009-11-13 Uros Bizjak <ubizjak@gmail.com> 3107 3108 PR target/41900 3109 * config/i386/i386.md (*call_pop_1, *call_1, *call_value_pop_1, 3110 *call_value_1): Use "lsm" as operand 1 constraint. 3111 * config/i386/predicates.md (call_insn_operand): Depend on 3112 index_register_operand to avoid %esp register. 3113 31142009-11-13 Uros Bizjak <ubizjak@gmail.com> 3115 3116 Revert: 3117 2009-11-03 Uros Bizjak <ubizjak@gmail.com> 3118 3119 PR target/41900 3120 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New. 3121 (TARGET_CALL_ESP): New define. 3122 * config/i386/i386.c (initial_ix86_tune_features): Initialize 3123 X86_ARCH_CALL_ESP. 3124 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp, 3125 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1, 3126 *call_1, *call_value_pop_1 and *call_value_1. Depend on 3127 TARGET_CALL_ESP. 3128 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): 3129 New patterns, use "lsm" as operand 1 constraint. 3130 * config/i386/predicates.md (call_insn_operand): Depend on 3131 index_register_operand for !TARGET_CALL_ESP to avoid %esp register. 3132 31332009-11-13 Jason Merrill <jason@redhat.com> 3134 3135 PR debug/26965 3136 * dwarf2out.c (gen_variable_die): Don't worry about DECL_COMDAT. 3137 Don't emit a second declaration at any scope. 3138 31392009-11-13 Andrey Belevantsev <abel@ispras.ru> 3140 3141 PR rtl-optimization/41697 3142 * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with 3143 a conditional jump has a single successor. 3144 31452009-11-13 Andrey Belevantsev <abel@ispras.ru> 3146 3147 * sched-deps.c (init_deps): New parameter lazy_reg_last. Don't 3148 allocate reg_last when in case lazy_reg_last is true. 3149 (init_deps_reg_last): New. 3150 (free_deps): When max_reg is 0, this context is already freed. 3151 * sched-int.h (init_deps_reg_last): Export. 3152 (init_deps): Update prototype. 3153 * sched-ebb.c (schedule_ebb): Update the call to init_deps. 3154 * sched-rgn.c (sched_rgn_compute_dependencies): Likewise. 3155 * ddg.c (build_intra_loop_deps): Likewise. 3156 * sel-sched-ir.c (copy_deps_context, create_deps_context, 3157 reset_deps_context, deps_init_id): Likewise. 3158 (init_first_time_insn_data): Lazy allocate INSN_DEPS_CONTEXT. 3159 (free_data_for_scheduled_insn): New, break down from ... 3160 (free_first_time_insn_data): ... here. 3161 (has_dependence_p): Allocate reg_last now, when it is needed. 3162 (extend_insn_data): When maximal LUID is big enough, allocate 3163 per-insn data in smaller chunks. 3164 * sel-sched-ir.h (free_data_for_scheduled_insn): Export. 3165 * sel-sched.c (update_seqnos_and_stage): Free INSN_DEPS_CONTEXT 3166 in scheduled insn. 3167 31682009-11-13 Uros Bizjak <ubizjak@gmail.com> 3169 3170 * config/i386/i386.md (call_value): Fix comment. 3171 (sibcall_value): Ditto. 3172 31732009-11-13 Eric Botcazou <ebotcazou@adacore.com> 3174 3175 * config/i386/linux-unwind.h (x86_frob_update_context): New function. 3176 (MD_FROB_UPDATE_CONTEXT): Define. 3177 31782009-11-12 Eric Botcazou <ebotcazou@adacore.com> 3179 Laurent GUERBY <laurent@guerby.net> 3180 3181 * config/sparc/linux-unwind.h (sparc64_fallback_frame_state): Tidy. 3182 Do not schedule an %sp restore. Compensate for RETURN_ADDR_OFFSET. 3183 (sparc_fallback_frame_state): Tidy. Compensate for RETURN_ADDR_OFFSET. 3184 31852009-11-12 Jan Hubicka <jh@suse.cz> 3186 3187 * ipa.c (function_and_variable_visibility): Fix my accidentail commit 3188 and clear DECL_COMMON on localized declarations. 3189 31902009-11-12 Bernd Schmidt <bernd.schmidt@analog.com> 3191 3192 PR rtl-opt/38582 3193 * regrename.c (struct du_head): New structure; some elements moved 3194 from... 3195 (struct du_chain): ... this one. 3196 (open_chains, closed_chains): Now of type struct du_head *. 3197 (do_replace): Accept du_head argument, not du_chain. All callers 3198 changed. Modified code to match new data structures. 3199 (build_def_use): Return a list of du_head structures. Modified code 3200 to match new data structures. 3201 (dump_def_use_chain): Accept du_head argument, not du_chain. All 3202 callers changed. Modified code to match new data structures. 3203 (merge_overlapping_regs): Accept du_head argument, not du_chain. All 3204 callers changed. Modified code to match new data structures. 3205 (scan_rtx_reg): Change type of this_regno and this_nregs to unsigned. 3206 Allocate a du_head structure as well as a du_chain when creating a 3207 new chain. Modified other code to match new data structures. 3208 32092009-11-12 Jan Hubicka <jh@suse.cz> 3210 3211 * cgraph.h (varpool_node_name): Declare. 3212 * cgraphunit.c (process_function_and_variable_attributes): Set 3213 force_output flag on used variables. 3214 * ipa.c (function_and_variable_visibility): Dump externally visible 3215 and needed variables. 3216 * varpool.c (varpool_node_name): Export. 3217 (decide_is_variable_needed): Check COMDAT for externally visible vars; 3218 ignore needed flag. 3219 32202009-11-12 Uros Bizjak <ubizjak@gmail.com> 3221 3222 PR middle-end/41930 3223 * simplify-rtx.c (simplify_replace_fn_rtx) <case 'e'>: Skip 3224 processing if XEXP (x, i) is NULL. 3225 32262009-11-12 Jan Hubicka <jh@suse.cz> 3227 3228 * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON 3229 imply PUBLIC || EXTERNAL. 3230 32312009-11-11 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 3232 3233 PR middle-end/41440 3234 * cfgexpand.c (expand_gimple_basic_block): Append NOP to a fallthru, 3235 single successor block, ending with jump created by RTL expander. 3236 32372009-11-11 Jan Hubicka <jh@suse.cz> 3238 3239 PR middle-end/41729 3240 * ipa.c (function_and_variable_visibility): Do not privatize COMDAT 3241 and WEAK variables at -fwhole-program. 3242 3243 PR middle-end/41735 3244 * ipa.c (whole_program_function_and_variable_visility): COMDAT 3245 functions/variables are not needed even if they are externally visible. 3246 32472009-11-11 Jan Hubicka <jh@suse.cz> 3248 3249 (patch by Richard Guenther) 3250 * lto-streamer-out.c (output_function): Output head of argument list 3251 earlier. 3252 * lto-streamer-in.c (input_function): Re-map arguments into merged 3253 declaration. 3254 32552009-11-11 Jan Hubicka <jh@suse.cz> 3256 3257 * lto-cgraph.c: Include gcov-io.h 3258 (output_profile_summary): New function. 3259 (output_cgraph): Use it. 3260 (input_profile_summary): New function. 3261 (input_cgraph): Use it. 3262 * coverage.c (build_ctr_info_value): Use varpool; initalize 3263 DECL_ASSEMBLER_NAME. 3264 (create_coverage): Likewise. 3265 * tree-profile.c (tree_init_ic_make_global_vars): Likewise. 3266 (tree_init_edge_profiler): Likewise. 3267 * Makefile.in (lto-cgraph.o): Add dependency on gcov-io.h. 3268 32692009-11-11 Kai Tietz <kai.tietz@onevision.com> 3270 3271 * config/i386/cygming.h (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. 3272 * c-pragma.c (def_pragma_macro_value): Likewise. 3273 (def_pragma_macro): Likewise. 3274 (pushed_macro_table): Likewise. 3275 (HANDLE_PRAGMA_PUSH_POP_MACRO): Remove guarded code. 3276 * doc/tm.texi (HANDLE_PRAGMA_PUSH_POP_MACRO): Removed. 3277 32782009-11-11 Basile Starynkevitch <basile@starynkevitch.net> 3279 3280 * doc/plugins.texi (Registering custom attributes): section 3281 renamed as (Registering custom attributes or pragmas). 3282 Mentions custom attributes & pragmas, and c_register_pragma, with 3283 a small example. 3284 * doc/cpp.texi (Pragmas): Mentions that plugins can provide their 3285 pragmas. 3286 * doc/extend.texi (Function Attributes): Mentions that plugin can 3287 provide their attributes. 3288 32892009-11-11 Jon Beniston <jon@beniston.com> 3290 3291 * config.gcc: Add lm32 elf and uclinux targets. 3292 * config/lm32: New directory. 3293 * config/lm32/lm32.c: New file. 3294 * config/lm32/lm32.h: New file. 3295 * config/lm32/lm32.md: New file. 3296 * config/lm32/lm32.opt: New file. 3297 * config/lm32/lm32-protos.h: New file. 3298 * config/lm32/constraints.md: New file. 3299 * config/lm32/predicates.md: New file. 3300 * config/lm32/sfp-machine.h: New file. 3301 * config/lm32/t-fprules-softfp: New file. 3302 * config/lm32/uclinux-elf.h: New file. 3303 * doc/invoke.texi: Document lm32 options. 3304 * doc/contrib.texi: Document lm32 porter. 3305 * doc/install.texi: Document lm32 targets. 3306 33072009-11-11 Martin Jambor <mjambor@suse.cz> 3308 3309 PR lto/41932 3310 * ipa-prop.c (ipa_update_after_lto_read): Call 3311 ipa_check_create_node_params and ipa_check_create_edge_args. Also 3312 call ipa_initialize_node_params instead of ipa_populate_param_decls. 3313 33142009-11-11 Daniel Jacobowitz <dan@codesourcery.com> 3315 3316 * config/arm/arm.c (neon_vdup_constant, neon_make_constant): New. 3317 (neon_expand_vector_init): Use them. Also handle non-constant 3318 vectors with identical elements and vectors with only one 3319 non-constant element. 3320 (arm_print_operand): Handle 'y' modifier. 3321 * config/arm/arm-protos.h (neon_make_constant): Declare. 3322 * config/arm/neon.md (neon_vdup_n<mode>): Split into two 3323 patterns. Use VX instead of VDQW for the first one. Allow 3324 a VFP alternative and V32 modes for the second one. 3325 * config/arm/neon.ml (shape_elt): Add Alternatives. 3326 (ops): Use Alternatives for vdup lane instructions. 3327 * config/arm/neon-testgen.ml (analyze_shape): Handle Alternatives. 3328 * config/arm/vec-common.md (mov<mode>): Use neon_make_constant. 3329 33302009-11-11 Daniel Jacobowitz <dan@codesourcery.com> 3331 3332 * config/arm/neon.md (*neon_mov<mode>): Reject two non-register 3333 operands. 3334 (movti, mov<mode>): Call force_reg on one operand if required. 3335 * config/arm/vec-common.md (mov<mode>): Likewise. 3336 33372009-11-11 Daniel Jacobowitz <dan@codesourcery.com> 3338 3339 * config/arm/arm.c (arm_override_options): Enable scheduling for 3340 Thumb-2. 3341 33422009-11-10 Eric Botcazou <ebotcazou@adacore.com> 3343 3344 PR target/10127 3345 PR ada/20548 3346 * expr.h (anti_adjust_stack_and_probe): Declare. 3347 * explow.c (anti_adjust_stack_and_probe): Make global, add ADJUST_BACK 3348 parameter and rewrite head comment. 3349 (allocate_dynamic_stack_space): Adjust call to above function. 3350 * function.c (expand_function_end): Handle STACK_CHECK_MOVING_SP. 3351 3352 * tree.h (dwarf2out_args_size): Delete. 3353 * dwarf2out.c (dwarf2out_args_size): Make static and move around. 3354 (dwarf2out_args_size_adjust): Delete prototype and move around. 3355 (dwarf2out_frame_debug_expr): Do not record arg size adjustments for 3356 ACCUMULATE_OUTGOING_ARGS targets. 3357 33582009-11-10 Eric Botcazou <ebotcazou@adacore.com> 3359 3360 * config/sparc/sparc.c (print_operand) <')'>: Test for a non-null 3361 DECL_SIZE of DECL_RESULT before evaluating it. 3362 33632009-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 3364 3365 PR tree-optimization/41987 3366 * fold-const.c (const_binop): Avoid using fold_buildN(). 3367 33682009-11-10 Martin Jambor <mjambor@suse.cz> 3369 3370 * tree-pass.h (struct ipa_opt_pass_d): Added stmt_fixup field. 3371 (execute_all_ipa_stmt_fixups): Declare. 3372 * ipa-cp.c (pass_ipa_cp): Added stmt_fixup value. 3373 * ipa-inline.c (pass_ipa_inline): Likewise. 3374 * ipa-pure-const.c (pass_ipa_pure_cons): Likewise. 3375 * ipa-reference.c (pass_ipa_reference): Likewise. 3376 * ipa.c (pass_ipa_whole_program_visibility): Likewise. 3377 * lto-streamer-out.c (pass_ipa_lto_gimple_out): Likewise. 3378 (pass_ipa_lto_finish_out): Likewise. 3379 * lto-wpa-fixup.c (pass_ipa_lto_wpa_fixup): Likewise. 3380 * passes.c (execute_ipa_stmt_fixups): New function. 3381 (execute_all_ipa_stmt_fixups): New function. 3382 * lto-streamer-in.c (input_function): Call execute_all_ipa_stmt_fixups. 3383 33842009-11-10 Eric Botcazou <ebotcazou@adacore.com> 3385 3386 PR ada/20548 3387 * explow.c (probe_stack_range): Fix typo. 3388 * config/sparc/sparc.md (probe_stack): New expander. 3389 33902009-11-09 Dave Korn <dave.korn.cygwin@gmail.com> 3391 3392 * config/i386/cygwin.h (LINK_SPEC): Add -tsaware flag if !mno-cygwin. 3393 33942009-11-09 Jason Merrill <jason@redhat.com> 3395 3396 * gdbinit.in (pgq): New function for printing gimple sequence. 3397 33982009-11-09 Paul Brook <paul@codesourcery.com> 3399 Daniel Jacobowitz <dan@codesourcery.com> 3400 Sandra Loosemore <sandra@codesourcery.com> 3401 3402 * doc/extend.texi (Half-Precision): Update wording to reflect 3403 that there are now multiple -mfpu options that enable fp16 3404 hardware support. 3405 * doc/invoke.texi: Update list of ARM -mfpu= options. 3406 * config.gcc: Update ARM --with-fpu option list. 3407 * config/arm/arm.c (all_fpus): Add vfpv3-fp16, vfpv3-d16-fp16, 3408 vfpv3xd and vfpv3xd-fp16. 3409 (use_vfp_abi): New function. 3410 (aapcs_vfp_is_call_or_return_candidate): Avoid double precision regs 3411 when undesirable. 3412 (aapcs_vfp_is_return_candidate, aapcs_vfp_is_call_candidate, 3413 aapcs_vfp_allocate_return_reg): Use use_vfp_abi. 3414 (arm_rtx_costs_1, arm_size_rtx_costs, arm_fastmul_rtx_costs, 3415 arm_9e_rtx_costs): Only expect double-precision operations if the FPU 3416 provides them. 3417 (coproc_secondary_reload_class): Reload HFmode via GENERAL_REGS if no 3418 NEON. 3419 (arm_print_operand): Handle 'p' modifier. 3420 (arm_hard_regno_mode_ok): : Allow HFmode in VFP registers if 3421 TARGET_FP16. 3422 * config/arm/arm.h (TARGET_VFP_SINGLE, TARGET_VFP_DOUBLE): Define. 3423 (TARGET_FP16): Define. 3424 * config/arm/vfp.md: Disable double-precision patterns if the FPU 3425 does not provide them. 3426 (arm_movdi_vfp, thumb2_movdi_vfp): Use fcpys to move 3427 double-precision values on a single-precision FPU. 3428 (movdf_vfp, thumb2_movdf_vfp): Likewise. Use "Dy" for 3429 double-precision constants. 3430 (movhf_vfp_neon): New pattern (was movhf_vfp). 3431 (movhf_vfp): Remove NEON instructions. 3432 * config/arm/constraints.md: Add new "Dy" constraint for 3433 double-precision constants. Update description of "Dv". 3434 * config/arm/arm.md: Disable double-precision patterns if the FPU 3435 does not provide them 3436 34372009-11-09 Jakub Jelinek <jakub@redhat.com> 3438 3439 * config/i386/i386.c (print_operand) <case 'D'>: Fix formatting. 3440 (print_operand) <case 'Y'>: Likewise. Fix a pasto in operand lossage 3441 diagnostics. 3442 34432009-11-08 H.J. Lu <hongjiu.lu@intel.com> 3444 3445 * collect2.c (main): Search PLUGIN_LD for plugin linker. 3446 3447 * configure.ac (--with-plugin-ld): New. Default to ld. 3448 * configure: Regenerated. 3449 * config.in: Likewise. 3450 3451 * exec-tool.in (ORIGINAL_PLUGIN_LD_FOR_TARGET): New. 3452 (collect-ld): Use ORIGINAL_PLUGIN_LD_FOR_TARGET for -plugin. 3453 34542009-11-08 Jonathan Gray <jsg@openbsd.org> 3455 3456 * config/openbsd-stdint.h: Change to reflect what 3457 c_common_nodes_and_builtins expects. 3458 34592009-11-08 Paolo Carlini <paolo.carlini@oracle.com> 3460 3461 * builtins.c (apply_args_reg_offset): Remove commented out delaration. 3462 34632009-11-08 Jakub Jelinek <jakub@redhat.com> 3464 3465 PR target/41985 3466 * config/i386/i386.c (get_some_local_dynamic_name): Don't assert 3467 function contains at least one local dynamic name. 3468 (print_operand) <case '&'>: Instead output operand lossage diagnostics 3469 here if that happens. 3470 34712009-11-08 Zbigniew Chamski <zbigniew.chamski@gmail.com> 3472 Joern Rennecke <amylaar@spamcop.net> 3473 3474 * cfgrtl.c (pass_free_cfg): Add pass name. 3475 * cgraphbuild.c (pass_build_cgraph_edges): Likewise. 3476 (pass_rebuild_cgraph_edges, pass_remove_cgraph_callee_edges): Likewise. 3477 * dce.c (pass_ud_rtl_dce, pass_fast_rtl_dce): Change pass name. 3478 * df-core.c (pass_df_initialize_no_opt): Likewise. 3479 * except.c (pass_rtl_eh): Likewise. 3480 * function.c (pass_init_function, pass_leaf_regs): Likewise. 3481 * gcse.c (pass_rtl_pre): Change pass name. 3482 * passes.c (pass_postreload): Add pass name. 3483 (make_pass_instance): Don't use duplicate-tracking logic for 3484 names starting with '*'. 3485 (next_pass_1): Assert that pass has a name. 3486 (register_one_dump_file): If there is an space in the name, 3487 skip past it. 3488 * predict.c (pass_strip_predict_hints): Add pass name. 3489 * reg-stack.c (pass_stack_regs): Likewise. 3490 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise. 3491 * tree-cfg.c (pass_warn_function_return, 3492 pass_warn_function_noreturn): Add pass name. 3493 * tree-dfa.c (pass_referenced_vars): Likewise. 3494 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): 3495 Fix whitespace before comment. 3496 (pass_fixup_cfg): Add pass name, fix whitespace before comment. 3497 (pass_init_datastructures): Add pass name. 3498 * tree-ssa-loop.c (pass_record_bounds): Likewise. 3499 * tree-ssa.c (pass_early_warn_uninitialized, 3500 pass_late_warn_uninitialized): Likewise. 3501 * tree.c (pass_ipa_free_lang_data): Likewise. 3502 * doc/passes.texi (pass manager): Document how to disambiguate 3503 pass names. 3504 35052009-11-08 Paolo Bonzini <bonzini@gnu.org> 3506 3507 * df-problems.c: Fix documentation for forward simulation of LR. 3508 (df_simulate_one_insn_forwards): Use df_simulate_find_defs. 3509 (df_simulate_finalize_forwards): Remove. 3510 * df.h (df_simulate_finalize_forwards): Remove. 3511 35122009-11-08 Richard Guenther <rguenther@suse.de> 3513 3514 * tree-ssa-structalias.c (build_succ_graph): Properly make 3515 variables escape if they are stored to anything. 3516 35172009-11-08 Richard Guenther <rguenther@suse.de> 3518 3519 PR rtl-optimization/41928 3520 * loop-invariant.c (free_loop_data): If we didn't allocate 3521 loop data do not try to free it. 3522 35232009-11-07 Jason Merrill <jason@redhat.com> 3524 3525 * tree.c (reconstruct_complex_type): Preserve attributes. 3526 35272009-11-07 Richard Guenther <rguenther@suse.de> 3528 3529 * tree-ssa-structalias.c (build_succ_graph): Feed stores 3530 to anything only to variables that can take pointers. 3531 (get_constraint_for_ssa_var): Properly exclude full 3532 variables from expanding. 3533 (first_vi_for_offset): Avoid overflow in arithmetic. 3534 (first_or_preceding_vi_for_offset): Likewise. 3535 (count_num_arguments): Fix implementation. 3536 (gate_ipa_pta): Do not run when not optimizing. 3537 35382009-11-07 David Binderman <dcb314@hotmail.com> 3539 3540 * builtins.c (apply_args_size, expand_builtin_mathfn, expand_powi, 3541 expand_builtin_expect, maybe_emit_sprintf_chk_warning): Remove some 3542 set but not used variables. 3543 (apply_args_reg_offset): Comment out as unused. 3544 * calls.c (flags_from_decl_or_type): Likewise. 3545 * genautomata.c (check_regexp_units_distribution): Likewise. 3546 35472009-11-07 Uros Bizjak <ubizjak@gmail.com> 3548 3549 * config/i386/sse.md (xop_pmacsww, xop_pmacssww, xop_pmacsdd, 3550 xop_pmacssdd, xop_pmacssdql, xop_pmacssdqh, xop_pmacsdql, 3551 *xop_pmacsdql_mem, xop_pmacsdqh, *xop_pmacsdqh_mem, xop_pmacsswd, 3552 xop_pmacswd, xop_pmadcsswd, xop_pmadcswd, xop_pcmov_<mode>, 3553 xop_pcmov_<mode>256, xop_pperm, xop_pperm_pack_v2di_v4si, 3554 xop_pperm_pack_v4si_v8hi, xop_pperm_pack_v8hi_v16qi): Compress 3555 operand alternatives. 3556 35572009-11-06 Michael Matz <matz@suse.de> 3558 3559 PR middle-end/41963 3560 * tree-ssa-math-opts.c (execute_cse_reciprocals): Check all uses 3561 of a potential reciprocal to really be reciprocals. 3562 35632009-11-06 Jakub Jelinek <jakub@redhat.com> 3564 3565 * config/i386/x86intrin.h: Include fma4intrin.h, xopintrin.h and 3566 lwpintrin.h after immintrin.h. 3567 * config/i386/fma4intrin.h (__v8sf, __v4df, __m256, __m256d): Remove 3568 typedefs. 3569 3570 PR middle-end/41935 3571 * c-common.c (fold_offsetof_1) <case ARRAY_REF>: Don't crash for VLAs 3572 or non-constant index, allow index one past the last element and 3573 allow exceeding array bound in arrays that might be used as flexible 3574 array members. 3575 35762009-11-05 Richard Henderson <rth@redhat.com> 3577 3578 * config/i386/ia32intrin.h: Protect CRC32 builtins with __SSE4_2__. 3579 35802009-11-05 Paul Brook <paul@codesourcery.com> 3581 3582 * config/arm/arm.c (arm_fp_model, arm_fpu_arch, arm_fpu_tune): Remove. 3583 (arm_fpu_desc): New. 3584 (all_fpus): Add FPU details. 3585 (fp_model_for_fpu): Remove. 3586 (arm_override_options): Set and use arm_fpu_desc and arm_fpu_attr. 3587 (arm_output_epilogue, arm_save_coproc_regs): Use TARGET_FPA_EMU2. 3588 (arm_file_start): Use arm_fpu_desc. 3589 * config/arm/arm.h (TARGET_FPA, TARGET_MAVERICK, TARGET_VFP, 3590 TARGET_VFPD32, TARGET_VFP3, TARGET_NEON_FP16, TARGET_NEON): Use 3591 arm_fpu_desc. 3592 (TARGET_FPA_EMU2): Define. 3593 (arm_fp_model, fputype, arm_fpu_tune): Remove. 3594 (vfp_reg_type, arm_fpu_desc): New. 3595 * config/arm/arm.md (attr fpu): Simplify. 3596 * config/arm/fpa.md (movxf_fpa): Use TARGET_FPA_EMU2. 3597 * config/arm/linux-elf.h (FPUTYPE_DEFAULT): Use string value. 3598 * config/arm/bpabi.h (FPUTYPE_DEFAULT): Use string value. 3599 * config/arm/netbsd-elf.h (FPUTYPE_DEFAULT): Use string value. 3600 * config/arm/vxworks.h (FPUTYPE_DEFAULT): Use string value. 3601 36022009-11-05 Michael Matz <matz@suse.de> 3603 3604 * config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency 3605 on TARGET_RECIP. 3606 * doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip 3607 for 1/sqrtf. 3608 36092009-11-04 Jason Merrill <jason@redhat.com> 3610 3611 PR c++/36912 3612 * varasm.c (initializer_constant_valid_p): A PLUS_EXPR 3613 or MINUS_EXPR of REAL_TYPE is not a valid constant initializer. 3614 (output_constant): Avoid crash after error. 3615 36162009-11-05 Martin Jambor <mjambor@suse.cz> 3617 3618 * tree-sra.c (struct access): Changed comment of next_sibling field. 3619 (analyze_modified_params): Loop over accesses of a group rather than 3620 over all with the ame base, pass a common bitmap to 3621 walk_aliased_vdefs. 3622 (unmodified_by_ref_scalar_representative): Build link lists of 3623 accesses of a group. 3624 (splice_param_accesses): Likewise. 3625 36262009-11-04 Kenneth Zadeck <zadeck@naturalbridge.com> 3627 3628 * df-scan.c (df-uses-record): Add case zero_extract of mem. 3629 36302009-11-04 Eric Botcazou <ebotcazou@adacore.com> 3631 3632 PR target/10127 3633 PR ada/20548 3634 * config/i386/i386.md (probe_stack): New expander. 3635 (logical operation peepholes): Do not split stack checking probes. 3636 36372009-11-04 Harsha Jagasia <harsha.jagasia@amd.com> 3638 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 3639 3640 * doc/invoke.texi (-mlwp): Add documentation. 3641 * doc/extend.texi (x86 intrinsics): Add LWP intrinsics. 3642 * config.gcc (i[34567]86-*-*): Include lwpintrin.h. 3643 (x86_64-*-*): Ditto. 3644 * config/i386/lwpintrin.h: New file, provide x86 compiler 3645 intrinisics for LWP. 3646 * config/i386/cpuid.h (bit_LWP): Define LWP bit. 3647 * config/i386/x86intrin.h: Add LWP check and lwpintrin.h. 3648 * config/i386/i386-c.c (ix86_target_macros_internal): Check 3649 ISA_FLAG for LWP. 3650 * config/i386/i386.h (TARGET_LWP): New macro for LWP. 3651 * config/i386/i386.opt (-mlwp): New switch for LWP support. 3652 * config/i386/i386.c (OPTION_MASK_ISA_LWP_SET): New. 3653 (OPTION_MASK_ISA_LWP_UNSET): New. 3654 (ix86_handle_option): Handle -mlwp. 3655 (isa_opts): Handle -mlwp. 3656 (enum pta_flags): Add PTA_LWP. 3657 (override_options): Add LWP support. 3658 (IX86_BUILTIN_LLWPCB16): New for LWP intrinsic. 3659 (IX86_BUILTIN_LLWPCB32): Ditto. 3660 (IX86_BUILTIN_LLWPCB64): Ditto. 3661 (IX86_BUILTIN_SLWPCB16): Ditto. 3662 (IX86_BUILTIN_SLWPCB32): Ditto. 3663 (IX86_BUILTIN_SLWPCB64): Ditto. 3664 (IX86_BUILTIN_LWPVAL16): Ditto. 3665 (IX86_BUILTIN_LWPVAL32): Ditto. 3666 (IX86_BUILTIN_LWPVAL64): Ditto. 3667 (IX86_BUILTIN_LWPINS16): Ditto. 3668 (IX86_BUILTIN_LWPINS32): Ditto. 3669 (IX86_BUILTIN_LWPINS64): Ditto. 3670 (enum ix86_special_builtin_type): Add LWP intrinsic support. 3671 (builtin_description): Ditto. 3672 (ix86_init_mmx_sse_builtins): Ditto. 3673 (ix86_expand_special_args_builtin): Ditto. 3674 * config/i386/i386.md (UNSPEC_LLWP_INTRINSIC): Add new UNSPEC for 3675 LWP support. 3676 (UNSPEC_SLWP_INTRINSIC): Ditto. 3677 (UNSPECV_LWPVAL_INTRINSIC): Ditto. 3678 (UNSPECV_LWPINS_INTRINSIC): Ditto. 3679 (lwp_llwpcbhi1): New lwp pattern. 3680 (lwp_llwpcbsi1): Ditto. 3681 (lwp_llwpcbdi1): Ditto. 3682 (lwp_slwpcbhi1): Ditto. 3683 (lwp_slwpcbsi1): Ditto. 3684 (lwp_slwpcbdi1): Ditto. 3685 (lwp_lwpvalhi3): Ditto. 3686 (lwp_lwpvalsi3): Ditto. 3687 (lwp_lwpvaldi3): Ditto. 3688 (lwp_lwpinshi3): Ditto. 3689 (lwp_lwpinssi3): Ditto. 3690 (lwp_lwpinsdi3): Ditto. 3691 36922009-11-04 Andrew Pinski <andrew_pinski@playstation.sony.com> 3693 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 3694 3695 PR rtl-opt/41833 3696 * simplify-rtx.c (simplify_binary_operation_1): Simplify vec_select of 3697 a vec_duplicate. 3698 36992009-11-04 Richard Guenther <rguenther@suse.de> 3700 Rafael Avila de Espindola <espindola@google.com> 3701 3702 * gcc.c (process_command): Handle arguments name@offset. 3703 37042009-11-04 Harsha Jagasia <harsha.jagasia@amd.com> 3705 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 3706 3707 * config.gcc (i[34567]86-*-*): Include xopintrin.h. 3708 (x86_64-*-*): Ditto. 3709 * config/i386/xopintrin.h: New file, provide common x86 compiler 3710 intrinisics for XOP. 3711 * config/i386/cpuid.h (bit_XOP): Define XOP bit. 3712 * config/i386/x86intrin.h: Add XOP check and xopintrin.h. 3713 * config/i386/i386-c.c(ix86_target_macros_internal): Check 3714 ISA_FLAG for XOP. 3715 * config/i386/i386.h(TARGET_XOP): New macro for XOP. 3716 * config/i386/i386.opt (-mxop): New switch for XOP support. 3717 * config/i386/i386.md (UNSPEC_XOP_UNSIGNED_CMP) 3718 (UNSPEC_XOP_TRUEFALSE) 3719 (UNSPEC_XOP_PERMUTE) 3720 (UNSPEC_FRCZ): Add new UNSPEC for XOP support. 3721 (PPERM_*): New constants for vpperm instruction. 3722 (xop_pcmov_<mode>): Add XOP conditional mov instructions. 3723 * config/i386/i386.c (OPTION_MASK_ISA_XOP_SET): New. 3724 (OPTION_MASK_ISA_XOP_UNSET): New. 3725 (OPTION_MASK_ISA_XOP_UNSET): Change definition to depend on XOP. 3726 (ix86_handle_option): Handle -mxop. 3727 (isa_opts): Handle -mxop. 3728 (enum pta_flags): Add PTA_XOP. 3729 (override_options): Add XOP support. 3730 (print_operand): Add code for XOP compare instructions. 3731 (ix86_expand_sse_movcc): Extend for XOP conditional move instruction. 3732 (ix86_expand_int_vcond): Extend for XOP compare instruction. 3733 3734 (IX86_BUILTIN_VPCMOV): New for XOP intrinsic. 3735 (IX86_BUILTIN_VPCMOV_V2DI): Ditto. 3736 (IX86_BUILTIN_VPCMOV_V4SI): Ditto. 3737 (IX86_BUILTIN_VPCMOV_V8HI): Ditto. 3738 (IX86_BUILTIN_VPCMOV_V16QI): Ditto. 3739 (IX86_BUILTIN_VPCMOV_V4SF): Ditto. 3740 (IX86_BUILTIN_VPCMOV_V2DF): Ditto. 3741 3742 (IX86_BUILTIN_VPCMOV256): Ditto. 3743 (IX86_BUILTIN_VPCMOV_V4DI256): Ditto. 3744 (IX86_BUILTIN_VPCMOV_V8SI256): Ditto. 3745 (IX86_BUILTIN_VPCMOV_V16HI256): Ditto. 3746 (IX86_BUILTIN_VPCMOV_V32QI256): Ditto. 3747 (IX86_BUILTIN_VPCMOV_V8SF256): Ditto. 3748 (IX86_BUILTIN_VPCMOV_V4DF256): Ditto. 3749 3750 (IX86_BUILTIN_VPPERM): Ditto. 3751 3752 (IX86_BUILTIN_VPMACSSWW): Ditto. 3753 (IX86_BUILTIN_VPMACSWW): Ditto. 3754 (IX86_BUILTIN_VPMACSSWD): Ditto. 3755 (IX86_BUILTIN_VPMACSWD): Ditto. 3756 (IX86_BUILTIN_VPMACSSDD): Ditto. 3757 (IX86_BUILTIN_VPMACSDD): Ditto. 3758 (IX86_BUILTIN_VPMACSSDQL): Ditto. 3759 (IX86_BUILTIN_VPMACSSDQH): Ditto. 3760 (IX86_BUILTIN_VPMACSDQL): Ditto. 3761 (IX86_BUILTIN_VPMACSDQH): Ditto. 3762 (IX86_BUILTIN_VPMADCSSWD): Ditto. 3763 (IX86_BUILTIN_VPMADCSWD): Ditto. 3764 3765 (IX86_BUILTIN_VPHADDBW): Ditto. 3766 (IX86_BUILTIN_VPHADDBD): Ditto. 3767 (IX86_BUILTIN_VPHADDBQ): Ditto. 3768 (IX86_BUILTIN_VPHADDWD): Ditto. 3769 (IX86_BUILTIN_VPHADDWQ): Ditto. 3770 (IX86_BUILTIN_VPHADDDQ): Ditto. 3771 (IX86_BUILTIN_VPHADDUBW): Ditto. 3772 (IX86_BUILTIN_VPHADDUBD): Ditto. 3773 (IX86_BUILTIN_VPHADDUBQ): Ditto. 3774 (IX86_BUILTIN_VPHADDUWD): Ditto. 3775 (IX86_BUILTIN_VPHADDUWQ): Ditto. 3776 (IX86_BUILTIN_VPHADDUDQ): Ditto. 3777 (IX86_BUILTIN_VPHSUBBW): Ditto. 3778 (IX86_BUILTIN_VPHSUBWD): Ditto. 3779 (IX86_BUILTIN_VPHSUBDQ): Ditto. 3780 3781 (IX86_BUILTIN_VPROTB): Ditto. 3782 (IX86_BUILTIN_VPROTW): Ditto. 3783 (IX86_BUILTIN_VPROTD): Ditto. 3784 (IX86_BUILTIN_VPROTQ): Ditto. 3785 (IX86_BUILTIN_VPROTB_IMM): Ditto. 3786 (IX86_BUILTIN_VPROTW_IMM): Ditto. 3787 (IX86_BUILTIN_VPROTD_IMM): Ditto. 3788 (IX86_BUILTIN_VPROTQ_IMM): Ditto. 3789 3790 (IX86_BUILTIN_VPSHLB): Ditto. 3791 (IX86_BUILTIN_VPSHLW): Ditto. 3792 (IX86_BUILTIN_VPSHLD): Ditto. 3793 (IX86_BUILTIN_VPSHLQ): Ditto. 3794 (IX86_BUILTIN_VPSHAB): Ditto. 3795 (IX86_BUILTIN_VPSHAW): Ditto. 3796 (IX86_BUILTIN_VPSHAD): Ditto. 3797 (IX86_BUILTIN_VPSHAQ): Ditto. 3798 3799 (IX86_BUILTIN_VFRCZSS): Ditto. 3800 (IX86_BUILTIN_VFRCZSD): Ditto. 3801 (IX86_BUILTIN_VFRCZPS): Ditto. 3802 (IX86_BUILTIN_VFRCZPD): Ditto. 3803 (IX86_BUILTIN_VFRCZPS256): Ditto. 3804 (IX86_BUILTIN_VFRCZPD256): Ditto. 3805 3806 (IX86_BUILTIN_VPCOMEQUB): Ditto. 3807 (IX86_BUILTIN_VPCOMNEUB): Ditto. 3808 (IX86_BUILTIN_VPCOMLTUB): Ditto. 3809 (IX86_BUILTIN_VPCOMLEUB): Ditto. 3810 (IX86_BUILTIN_VPCOMGTUB): Ditto. 3811 (IX86_BUILTIN_VPCOMGEUB): Ditto. 3812 (IX86_BUILTIN_VPCOMFALSEUB): Ditto. 3813 (IX86_BUILTIN_VPCOMTRUEUB): Ditto. 3814 3815 (IX86_BUILTIN_VPCOMEQUW): Ditto. 3816 (IX86_BUILTIN_VPCOMNEUW): Ditto. 3817 (IX86_BUILTIN_VPCOMLTUW): Ditto. 3818 (IX86_BUILTIN_VPCOMLEUW): Ditto. 3819 (IX86_BUILTIN_VPCOMGTUW): Ditto. 3820 (IX86_BUILTIN_VPCOMGEUW): Ditto. 3821 (IX86_BUILTIN_VPCOMFALSEUW): Ditto. 3822 (IX86_BUILTIN_VPCOMTRUEUW): Ditto. 3823 3824 (IX86_BUILTIN_VPCOMEQUD): Ditto. 3825 (IX86_BUILTIN_VPCOMNEUD): Ditto. 3826 (IX86_BUILTIN_VPCOMLTUD): Ditto. 3827 (IX86_BUILTIN_VPCOMLEUD): Ditto. 3828 (IX86_BUILTIN_VPCOMGTUD): Ditto. 3829 (IX86_BUILTIN_VPCOMGEUD): Ditto. 3830 (IX86_BUILTIN_VPCOMFALSEUD): Ditto. 3831 (IX86_BUILTIN_VPCOMTRUEUD): Ditto. 3832 3833 (IX86_BUILTIN_VPCOMEQUQ): Ditto. 3834 (IX86_BUILTIN_VPCOMNEUQ): Ditto. 3835 (IX86_BUILTIN_VPCOMLTUQ): Ditto. 3836 (IX86_BUILTIN_VPCOMLEUQ): Ditto. 3837 (IX86_BUILTIN_VPCOMGTUQ): Ditto. 3838 (IX86_BUILTIN_VPCOMGEUQ): Ditto. 3839 (IX86_BUILTIN_VPCOMFALSEUQ): Ditto. 3840 (IX86_BUILTIN_VPCOMTRUEUQ): Ditto. 3841 3842 (IX86_BUILTIN_VPCOMEQB): Ditto. 3843 (IX86_BUILTIN_VPCOMNEB): Ditto. 3844 (IX86_BUILTIN_VPCOMLTB): Ditto. 3845 (IX86_BUILTIN_VPCOMLEB): Ditto. 3846 (IX86_BUILTIN_VPCOMGTB): Ditto. 3847 (IX86_BUILTIN_VPCOMGEB): Ditto. 3848 (IX86_BUILTIN_VPCOMFALSEB): Ditto. 3849 (IX86_BUILTIN_VPCOMTRUEB): Ditto. 3850 3851 (IX86_BUILTIN_VPCOMEQW): Ditto. 3852 (IX86_BUILTIN_VPCOMNEW): Ditto. 3853 (IX86_BUILTIN_VPCOMLTW): Ditto. 3854 (IX86_BUILTIN_VPCOMLEW): Ditto. 3855 (IX86_BUILTIN_VPCOMGTW): Ditto. 3856 (IX86_BUILTIN_VPCOMGEW): Ditto. 3857 (IX86_BUILTIN_VPCOMFALSEW): Ditto. 3858 (IX86_BUILTIN_VPCOMTRUEW): Ditto. 3859 3860 (IX86_BUILTIN_VPCOMEQD): Ditto. 3861 (IX86_BUILTIN_VPCOMNED): Ditto. 3862 (IX86_BUILTIN_VPCOMLTD): Ditto. 3863 (IX86_BUILTIN_VPCOMLED): Ditto. 3864 (IX86_BUILTIN_VPCOMGTD): Ditto. 3865 (IX86_BUILTIN_VPCOMGED): Ditto. 3866 (IX86_BUILTIN_VPCOMFALSED): Ditto. 3867 (IX86_BUILTIN_VPCOMTRUED): Ditto. 3868 3869 (IX86_BUILTIN_VPCOMEQQ): Ditto. 3870 (IX86_BUILTIN_VPCOMNEQ): Ditto. 3871 (IX86_BUILTIN_VPCOMLTQ): Ditto. 3872 (IX86_BUILTIN_VPCOMLEQ): Ditto. 3873 (IX86_BUILTIN_VPCOMGTQ): Ditto. 3874 (IX86_BUILTIN_VPCOMGEQ): Ditto. 3875 (IX86_BUILTIN_VPCOMFALSEQ): Ditto. 3876 (IX86_BUILTIN_VPCOMTRUEQ): Ditto. 3877 3878 (enum multi_arg_type): New enum for describing the various XOP 3879 intrinsic argument types. 3880 (bdesc_multi_arg): New table for XOP intrinsics. 3881 (ix86_init_mmx_sse_builtins): Add XOP intrinsic support. 3882 (ix86_expand_multi_arg_builtin): New function for creating XOP 3883 intrinsics. 3884 3885 * config/i386/sse.md (sserotatemax): New mode attribute for XOP. 3886 (xop_pmacsww): Ditto. 3887 (xop_pmacssww): Ditto. 3888 (xop_pmacsdd): Ditto. 3889 (xop_pmacssdd): Ditto. 3890 (xop_pmacssdql): Ditto. 3891 (xop_pmacssdqh): Ditto. 3892 (xop_pmacsdql): Ditto. 3893 (xop_pmacsdql_mem): Ditto. 3894 (xop_mulv2div2di3_low): Ditto. 3895 (xop_pmacsdqh): Ditto. 3896 (xop_pmacsdqh_mem): Ditto. 3897 (xop_mulv2div2di3_high): Ditto. 3898 (xop_pmacsswd): Ditto. 3899 (xop_pmacswd): Ditto. 3900 (xop_pmadcsswd): Ditto. 3901 (xop_pmadcswd): Ditto. 3902 (xop_pcmov_<mode>): Ditto. 3903 (xop_pcmov_<mode>256): Ditto. 3904 (xop_phaddbw): Ditto. 3905 (xop_phaddbd): Ditto. 3906 (xop_phaddbq): Ditto. 3907 (xop_phaddwd): Ditto. 3908 (xop_phaddwq): Ditto. 3909 (xop_phadddq): Ditto. 3910 (xop_phaddubw): Ditto. 3911 (xop_phaddubd): Ditto. 3912 (xop_phaddubq): Ditto. 3913 (xop_phadduwd): Ditto. 3914 (xop_phadduwq): Ditto. 3915 (xop_phaddudq): Ditto. 3916 (xop_phsubbw): Ditto. 3917 (xop_phsubwd): Ditto. 3918 (xop_phsubdq): Ditto. 3919 (xop_pperm): Ditto. 3920 (rotl<mode>3): Ditto. 3921 (rotr<mode>3): Ditto. 3922 (xop_rotl<mode>3): Ditto. 3923 (xop_rotr<mode>3): Ditto. 3924 (vrotr<mode>3): Ditto. 3925 (vrotl<mode>3): Ditto. 3926 (xop_vrotl<mode>3): Ditto. 3927 (vlshr<mode>3): Ditto. 3928 (vashr<mode>3): Ditto. 3929 (vashl<mode>3 3930 (xop_ashl<mode>3): Ditto. 3931 (xop_lshl<mode>3): Ditto. 3932 (ashlv16qi3): Ditto. 3933 (lshlv16qi3): Ditto. 3934 (ashrv16qi3): Ditto. 3935 (ashrv2di3): Ditto. 3936 (xop_frcz<mode>2): Ditto. 3937 (xop_vmfrcz<mode>2): Ditto. 3938 (xop_frcz<mode>2256): Ditto. 3939 (xop_maskcmp<mode>3): Ditto. 3940 (xop_maskcmp_uns<mode>3): Ditto. 3941 (xop_maskcmp_uns2<mode>3): Ditto. 3942 (xop_pcom_tf<mode>3): Ditto. 3943 3944 * doc/invoke.texi (-mxop): Add documentation. 3945 * doc/extend.texi (x86 intrinsics): Add XOP intrinsics. 3946 39472009-11-03 Mark Mitchell <mark@codesourcery.com> 3948 3949 PR driver/11810 3950 * gcc.c (SWITCHES_NEED_SPACES): Define to "o". 3951 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Remove here. 3952 * config/mips/iris.h (SWITCHES_NEED_SPACES): Remove here. 3953 39542009-11-04 Richard Earnshaw <rearnsha@arm.com> 3955 3956 PR target/40835 3957 * arm.md (peephole2 patterns for move and compare): New. 3958 39592009-11-04 Nick Clifton <nickc@redhat.com> 3960 3961 * defaults.h (CONSTANT_ADDRESS_P): Provide a default definition. 3962 Make sure that it does not allow CONST_DOUBLEs. 3963 * doc/tm.texi (CONSTANT_ADDRESS_P): Update description. 3964 * config/avr/avr.h (CONSTANT_ADDRESS_P): Delete. 3965 * config/bfin/bfin.h (CONSTANT_ADDRESS_P): Delete. 3966 * config/cris/cris.h (CONSTANT_ADDRESS_P): Delete. 3967 * config/fr30/fr30.h (CONSTANT_ADDRESS_P): Delete. 3968 * config/frv/frv.h (CONSTANT_ADDRESS_P): Delete. 3969 * config/m32c/m32c.h (CONSTANT_ADDRESS_P): Delete. 3970 * config/m68hc11/m68hc11.h (CONSTANT_ADDRESS_P): Delete. 3971 * config/mep/mep.h (CONSTANT_ADDRESS_P): Delete. 3972 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Delete. 3973 * config/moxie/moxie.h (CONSTANT_ADDRESS_P): Delete. 3974 * config/pdp11/pdp11.h (CONSTANT_ADDRESS_P): Delete. 3975 * config/picochip/picochip.h (CONSTANT_ADDRESS_P): Delete. 3976 * config/score/score.h (CONSTANT_ADDRESS_P): Delete. 3977 * config/stormy16/stormy16.h (CONSTANT_ADDRESS_P): Delete. 3978 39792009-11-04 Richard Guenther <rguenther@suse.de> 3980 3981 PR tree-optimization/41919 3982 * tree-vrp.c (test_for_singularity): Properly compare values. 3983 39842009-11-04 Revital Eres <eres@il.ibm.com> 3985 3986 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 3987 Consider peeling for alignment only for stores and remove 3988 redundant assignment. 3989 39902009-11-04 Maxim Kuvyrkov <maxim@codesourcery.com> 3991 3992 PR target/41302 3993 * config/m68k/m68k.c (m68k_reg_present_p): New static function. 3994 (m68k_ok_for_sibcall_p): Handle different result return locations. 3995 39962009-11-04 Richard Guenther <rguenther@suse.de> 3997 3998 * c-opts.c (c_common_post_options): Move LTO option processing 3999 code ... 4000 * opts.c (decode_options): ... here. 4001 40022009-11-04 Jakub Jelinek <jakub@redhat.com> 4003 4004 * c-common.c (fold_offsetof_1): Use %wd instead of 4005 HOST_WIDE_INT_PRINT_DEC. 4006 40072009-11-04 Maciej W. Rozycki <macro@linux-mips.org> 4008 4009 * config/vax/linux.h (TARGET_OS_CPP_BUILTINS): Don't define 4010 __pic__ or __PIC__. 4011 40122009-11-04 Maciej W. Rozycki <macro@linux-mips.org> 4013 4014 * config.gcc (vax-*-linux*): Keep the original contents of 4015 tmake_file while adding vax/t-linux. 4016 40172009-11-03 Eric Botcazou <ebotcazou@adacore.com> 4018 4019 PR target/10127 4020 PR ada/20548 4021 * expr.h (STACK_CHECK_PROBE_INTERVAL): Delete. 4022 (STACK_CHECK_PROBE_INTERVAL_EXP): New macro. 4023 (STACK_CHECK_MOVING_SP): Likewise. 4024 * system.h (STACK_CHECK_PROBE_INTERVAL): Poison it. 4025 * doc/tm.texi (Stack Checking): Delete STACK_CHECK_PROBE_INTERVAL. 4026 Document STACK_CHECK_PROBE_INTERVAL_EXP and STACK_CHECK_MOVING_SP. 4027 * doc/md.texi (Standard Pattern Names): Tweak entry of CHECK_STACK. 4028 Document PROBE_STACK. 4029 * explow.c (anti_adjust_stack_and_probe): New function. 4030 (allocate_dynamic_stack_space): Do not directly allocate space if 4031 STACK_CHECK_MOVING_SP, instead invoke above function. 4032 (emit_stack_probe): Handle probe_stack insn. 4033 (PROBE_INTERVAL): New macro. 4034 (STACK_GROW_OPTAB): Likewise. 4035 (STACK_GROW_OFF): Likewise. 4036 (probe_stack_range): Use Pmode and memory_address consistently. Fix 4037 loop condition in the small constant case. Rewrite in the general 4038 case to be immune to wraparounds. Make sure the address of probes 4039 is valid. Try to use [base + disp] addressing mode if possible. 4040 * ira.c (setup_eliminable_regset): Set frame_pointer_needed if stack 4041 checking is enabled and STACK_CHECK_MOVING_SP. 4042 * rtlanal.c (may_trap_p_1) <MEM>: If stack checking is enabled, 4043 return 1 for volatile references to the stack pointer. 4044 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTHROW on 4045 __builtin_alloca if stack checking is enabled. 4046 * unwind-dw2.c (uw_identify_context): Take into account whether the 4047 context is that of a signal frame or not. 4048 * config/i386/linux.h (STACK_CHECK_MOVING_SP): Define to 1. 4049 * config/i386/linux64.h (STACK_CHECK_MOVING_SP): Likewise. 4050 40512009-11-03 Jakub Jelinek <jakub@redhat.com> 4052 4053 PR rtl-optimization/41917 4054 * rtlanal.c (num_sign_bit_copies1) <case UMOD>: If sign bit of second 4055 operand isn't known to be 0, return 1. 4056 40572009-11-03 Richard Sandiford <rdsandiford@googlemail.com> 4058 4059 * config/mips/mips.md: Fix typos. 4060 40612009-11-03 Richard Sandiford <rdsandiford@googlemail.com> 4062 4063 * doc/invoke.texi: Fix typo. 4064 40652009-11-03 Paul Brook <paul@codesourcery.com> 4066 4067 * config/arm/neon.ml (vectype): Add T_floatSF. 4068 (string_of_vectype): Ditto. 4069 * config/arm/neon-gen.ml (signed_ctype): Add T_floatSF. 4070 (deftypes): Use float for float32_t. 4071 * config/arm/arm_neon.h: Regenerate. 4072 40732009-11-03 Nick Clifton <nickc@redhat.com> 4074 Kevin Buettner <kevinb@redhat.com> 4075 4076 * config/rx/predicates.md (rx_store_multiple_vector): Reverse 4077 order of expected registers. 4078 (rx_load_multiple_vector): Likewise. 4079 (rx_rtsd_vector): Likewise. 4080 * config/rx/rx.c (rx_cpu_type): New variable. 4081 (rx_print_operand): Fix bug printing 64-bit constant values. 4082 (rx_emit_stack_pushm): Reverse order of pushed registers. 4083 (gen_rx_store_vector): Likewise. 4084 (is_fast_interrupt_func): Only accept "fast_interrupt" as the 4085 attribute name. 4086 (is_exception_func): Rename to is_interrupt_func and only accept 4087 "interrupt" as the attribute name. 4088 (rx_get_stack_layout): Use new function name. 4089 (rx_func_attr_inlinable): Likewise. 4090 (rx_attribute_table): Remove "exception". 4091 (rx_expand_prologue): If necessary push the accumulator register 4092 in the prologue of interrupt functions. 4093 (rx_expand_epilogue): If necessary pop the accumulator. 4094 (rx_builtins): Add RX_BUILTIN_MVTIPL. 4095 (rx_expand_builtin_stz): Remove. 4096 (rx_expand_builtin_mvtipl): New function. 4097 (rx_init_builtins): Handle RX_BUILTIN_MVTIPL. 4098 (rx_expand_builtin): Likewise. 4099 (rx_enable_fpu): New variable. 4100 (rx_handle_option): Handle -fpu, -nofpu, -mcpu and -patch. 4101 * config/rx/rx.h (TARGET_CPU_CPP_BUILTINS): Assert machine based 4102 on rx_cpu_type. Define __RX_FPU_INSNS__ if FPU insns are allowed. 4103 (enum rx_cpu_types): Define. 4104 (ASM_SPEC): Pass -m32bit-doubles on to assembler. 4105 (INCOMING_FRAME_SP_OFFSET): Define. 4106 (ARG_POINTER_CFA_OFFSET): Define. 4107 (FRAME_POINTER_CFA_OFFSET): Define. 4108 (OVERRIDE_OPTIONS): Enable fast math if RX FPU insns are enabled. 4109 (ALLOW_RX_FPU_INSNS): Define. 4110 * config/rx/rx.md: Test ALLOW_RX_FPU_INSNS instead of 4111 fast_math_flags_set_p. 4112 (UNSPEC_BUILTIN_MVTIPL): Define. 4113 (revl): Rename to bswapsi2. 4114 (bswaphi2): New pattern. 4115 (mvtachi): Mark as volatile because it uses a register unknown to GCC. 4116 (mvtaclo): Likewise. 4117 (racw): Likewise. 4118 (mvtc): Remove clobber of cc0. 4119 (mvtcp): Delete. 4120 (opecp): Delete. 4121 * config/rx/rx.opt (mieee): Remove. 4122 (fpu): Add. 4123 (nofpu): Add. 4124 (mcpu=): Add. 4125 (patch=): Add. 4126 (msave-acc-in-interrupts): Add. 4127 * config/rx/t-rx (MULTILIB_OPTIONS): Change default to 64bit doubles. 4128 (MULTILIB_DIRS): Likewise. 4129 (MULTILIB_MATCHES): Treat -fpu as an alias for -m32bit-doubles. 4130 * doc/extend.texi: Remove description of "exception" function 4131 attribute. 4132 * doc/invoke.texi: Document -fpu, -nofpu, -mcpu=, -patch= and 4133 -msave-acc-in-interrupts options. 4134 41352009-11-03 Richard Guenther <rguenther@suse.de> 4136 4137 * c-common.c (fold_offsetof_1): Use HOST_WIDE_INT_PRINT_DEC. 4138 41392009-11-03 Dodji Seketeli <dodji@redhat.com> 4140 4141 PR c++/38699 4142 * c-common.c (fold_offsetof_1): Issue errors when the member 4143 designator of the offsetof expression is not legitimate. 4144 41452009-11-03 Uros Bizjak <ubizjak@gmail.com> 4146 4147 * config/i386/i386.md (*call_value_1_rex64_ms_sysv): Use register 4148 names instead of numerical constants. 4149 (sse_prologue_save): Ditto. 4150 (*sse_prologue_save_insn): Ditto. 4151 41522009-11-03 Uros Bizjak <ubizjak@gmail.com> 4153 4154 PR target/41900 4155 * config/i386/i386.h (ix86_arch_indices) <X86_ARCH_CALL_ESP>: New. 4156 (TARGET_CALL_ESP): New define. 4157 * config/i386/i386.c (initial_ix86_tune_features): Initialize 4158 X86_ARCH_CALL_ESP. 4159 * config/i386/i386.md (*call_pop_1_esp, *call_1_esp, 4160 *call_value_pop_1_esp, *call_value_1_esp): Rename from *call_pop_1, 4161 *call_1, *call_value_pop_1 and *call_value_1. Depend on 4162 TARGET_CALL_ESP. 4163 (*call_pop_1, *call_1, *call_value_pop_1, *call_value_1): 4164 New patterns, use "lsm" as operand 1 constraint. 4165 * config/i386/predicates.md (call_insn_operand): Depend on 4166 index_register_operand for !TARGET_CALL_ESP to avoid %esp register. 4167 41682009-11-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 4169 4170 PR tree-optimization/41857 4171 * tree-flow.h (rewrite_use_address): Add BASE_HINT argument. 4172 * tree-ssa-loop-ivopts.c (rewrite_use_address): Pass base hint 4173 to create_mem_ref. 4174 * tree-ssa-address.c (move_hint_to_base): New function. 4175 (most_expensive_mult_to_index): Add TYPE argument. Use mode and 4176 address space associated with TYPE. 4177 (addr_to_parts): Add TYPE and BASE_HINT arguments. Pass TYPE to 4178 most_expensive_mult_to_index. Call move_hint_to_base. 4179 (create_mem_ref): Add BASE_HINT argument. Pass BASE_HINT and 4180 TYPE to addr_to_parts. 4181 41822009-11-02 Martin Jambor <mjambor@suse.cz> 4183 4184 PR tree-optimization/41750 4185 * tree-sra.c (analyze_modified_params): Loop over all 4186 representatives of components of a parameter. 4187 41882009-11-02 Jakub Jelinek <jakub@redhat.com> 4189 4190 PR tree-optimization/41841 4191 * ipa-struct-reorg.c (build_data_structure): Don't attempt to look at 4192 local variables of not yet materialized clones. 4193 4194 PR debug/41893 4195 * cfgexpand.c (expand_debug_expr): Don't attempt to create DECL_RTL 4196 for a VOIDmode variable. 4197 4198 PR c++/41774 4199 * c-pragma.c (visstack): Change into vector of ints rather than 4200 enum symbol_visibility. 4201 (push_visibility): Add kind argument, push default_visibility together 4202 with kind. 4203 (pop_visibility): Add kind argument, return true if successful, fail 4204 if visibility stack is empty or if stack top is of different kind. 4205 (handle_pragma_visibility): Don't check length of visstack, instead 4206 call pop_visibility and issue diagnostics if it failed. Pass 0 4207 as last argument to push_visibility and pop_visibility. 4208 * c-pragma.h (push_visibility): Add kind argument. 4209 (pop_visibility): Likewise. Return bool instead of void. 4210 42112009-11-01 Eric Botcazou <ebotcazou@adacore.com> 4212 4213 * tree.def (TARGET_MEM_REF): Update comment. 4214 * alias.c (get_alias_set): Retrieve the original memory reference for 4215 a TARGET_MEM_REF before proceeding. 4216 42172009-10-31 Anatoly Sokolov <aesok@post.ru> 4218 4219 * config/frv/frv.c (frv_function_value, frv_libcall_value, 4220 frv_function_value_regno_p): New functions. 4221 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 4222 * config/frv/frv.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 4223 (FUNCTION_VALUE_REGNO_P): Redefine, use frv_function_value_regno_p. 4224 * config/frv/frv-protos.h (frv_function_value_regno_p): Declare. 4225 42262009-10-31 Anatoly Sokolov <aesok@post.ru> 4227 4228 * config/mn10300/mn10300.c (mn10300_function_value): Make static, add 4229 new 'outgoing' argument. 4230 (mn10300_libcall_value, mn10300_function_value_regno_p): New functions. 4231 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 4232 * config/mn10300/mn10300.h (FUNCTION_VALUE, FUNCTION_OUTGOING_VALUE, 4233 LIBCALL_VALUE): Remove. 4234 (FUNCTION_VALUE_REGNO_P): Redefine, use mn10300_function_value_regno_p. 4235 * config/mn10300/mn10300-protos.h (mn10300_function_value): Remove. 4236 (mh10300_function_value_regno_p): Declare. 4237 42382009-10-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4239 4240 * config/arm/cortex-a9.md: New - integer pipeline description. 4241 42422009-10-31 Eric Botcazou <ebotcazou@adacore.com> 4243 4244 * tree-ssa-sccvn.c (vn_reference_lookup_3): Bail out instead of 4245 aborting if the sizes of the two references don't match. 4246 42472009-10-31 Toon Moene <toon@moene.org> 4248 4249 * ipa-inline.c (cgraph_decide_inlining): 4250 Include reason for not inlining called-once functions in dump file. 4251 42522009-10-30 Daniel Gutson <dgutson@codesourcery.com> 4253 4254 * config/arm/linux-eabi.h (LINK_SPEC): BE8_LINK_SPEC added. 4255 * config/arm/bpapi.h (BE8_LINK_SPEC): New define. 4256 (LINK_SPEC): BE_LINK_SPEC added. 4257 42582009-10-30 Richard Guenther <rguenther@suse.de> 4259 4260 PR lto/41858 4261 * lto-streamer.h (struct lto_file_decl_data): Remove fd member. 4262 42632009-10-30 Nathan Sidwell <nathan@codesourcery.com> 4264 4265 * target-def.h (TARGET_ASM_TTYPE): Correct typo of TARGET_ARM_TTYPE. 4266 * config/arm/unwind-arm.c (__gnu_Unwind_Backtrace): Remove unused 4267 label. 4268 42692009-10-30 Martin Jambor <mjambor@suse.cz> 4270 4271 * tree-sra.c (build_ref_for_offset_1): Remove a comment. 4272 42732009-10-30 H.J. Lu <hongjiu.lu@intel.com> 4274 4275 PR target/40838 4276 * cfgexpand.c (expand_stack_alignment): Call update_stack_boundary 4277 first. Move assert on stack_alignment_estimated just before 4278 setting stack_realign_needed. 4279 (gimple_expand_cfg): Initialize stack_alignment_estimated to 0. 4280 Don't call update_stack_boundary. 4281 4282 * config/i386/i386.c (ix86_minimum_incoming_stack_boundary): New. 4283 (verride_options): Don't check ix86_force_align_arg_pointer here. 4284 (ix86_function_ok_for_sibcall): Use it. 4285 (ix86_update_stack_boundary): Likewise. 4286 4287 * config/i386/i386.h (STACK_REALIGN_DEFAULT): Update comments. 4288 42892009-10-30 Richard Earnshaw <rearnsha@arm.com> 4290 4291 * arm.md (QHSI): New mode iterator. 4292 (movqi): If generating for thumb, then truncate any immediate to 4293 8 bits. 4294 * thumb2.md (thumb2_movsi_shortim and peephole2 generator): Replace 4295 with... 4296 (thumb2_mov<mode>_shortim and peephole2 generator): ... iterator based 4297 version. 4298 42992009-10-29 Cary Coutant <ccoutant@google.com> 4300 4301 PR debug/41700 4302 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hook (two 4303 locations in the source). 4304 (store_vcall_insn): New function. 4305 (lookup_vcall_insn): New function. 4306 (dwarf2out_virtual_call_token): Use store_vcall_insn. 4307 (dwarf2out_copy_call_info): New function. 4308 (dwarf2out_virtual_call): Use lookup_vcall_insn. 4309 * emit-rtl.c (try_split): Call copy_call_info debug hook. 4310 * debug.h (struct gcc_debug_hooks): Add copy_call_info hook. 4311 * debug.c (do_nothing_debug_hooks): Add dummy entry for new hook. 4312 (debug_nothing_rtx_rtx): New dummy hook. 4313 * dbxout.c (dbx_debug_hooks): Add dummy entry for new hook. 4314 (xcoff_debug_hooks): Likewise. 4315 * sdbout.c (sdb_debug_hooks): Likewise. 4316 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 4317 43182009-10-29 David Daney <ddaney@caviumnetworks.com> 4319 4320 * doc/invoke.texi (mmcount-ra-address): Document new command line 4321 option. 4322 * config/mips/mips.opt (mmcount-ra-address): New option. 4323 * config/mips/mips-protos.h (mips_function_profiler): Declare new 4324 function. 4325 * config/mips/mips.c (struct mips_frame_info): Add ra_fp_offset 4326 member. 4327 (mips_for_each_saved_gpr_and_fpr): Set ra_fp_offset. 4328 (mips_function_profiler): Moved from FUNCTION_PROFILER, and 4329 rewritten. 4330 * config/mips/mips.h (FUNCTION_PROFILER): Body of macro moved to 4331 mips_function_profiler. 4332 43332009-10-29 Steve Ellcey <sje@cup.hp.com> 4334 4335 PR middle-end/37565 4336 PR target/38018 4337 * doc/tm.texi (OVERRIDE_OPTIONS): Update. 4338 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New. 4339 * optc-gen.awk (cl_target_option_restore): Include call to 4340 targetm.override_options_after_change. 4341 * target-def.h (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New. 4342 * target.h (override_options_after_change): New. 4343 * c-common.c (parse_optimize_options): Call 4344 targetm.override_options_after_change. 4345 * config/ia64/ia64.c (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): New. 4346 (ia64_override_options_after_change): New. 4347 (ia64_override_options) Add call to above. 4348 43492009-10-29 Michael Matz <matz@suse.de> 4350 4351 * tree-ssa-math-opts.c (execute_convert_to_rsqrt): Remove. 4352 (gate_convert_to_rsqrt): Ditto. 4353 (pass_convert_to_rsqrt): Ditto. 4354 * tree-pass.h (pass_convert_to_rsqrt): Don't declare. 4355 * passes.c (init_optimization_passes): Don't add pass_convert_to_rsqrt 4356 to pass list. 4357 4358 * config/i386/i386.c (ix86_emit_swdivsf): Change evaluation order. 4359 43602009-10-29 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 4361 4362 * config/arm/arm.c (find_best_start): Fix type of remainder to be 4363 unsigned. 4364 43652009-10-29 Martin Jambor <mjambor@suse.cz> 4366 4367 PR tree-optimization/41775 4368 * tree-sra.c (build_ref_for_offset): Unshare *expr if not NULL. 4369 (generate_subtree_copies): Do not unshare agg. 4370 (load_assign_lhs_subreplacements): Do not unshare rhs. 4371 (sra_modify_assign): Do not unshare exprs. 4372 (propagate_subacesses_accross_link): Renamed to 4373 propagate_subaccesses_across_link. 4374 43752009-10-29 Richard Earnshaw <rearnsha@arm.com> 4376 4377 * arm.c (count_insns_for_constant): Rework to support counting for 4378 thumb2 immediates as well. 4379 (find_best_start): Split out from arm_gen_constant. 4380 (arm_gen_constant): Rework to support XOR with immediate. 4381 43822009-10-29 Chao-ying Fu <fu@mips.com> 4383 4384 * config/mips/mips.c (mips_emit_unary, mips_force_unary): New 4385 functions. 4386 (mips_expand_synci_loop): Use the length rtx to control the 4387 synci loop from the begin rtx that points to the first byte of 4388 the cache line. 4389 43902009-10-28 Rafael Avila de Espindola <espindola@google.com> 4391 4392 * doc/invoke.texi: Rename -use-linker-plugin -fuse-linker-plugin. 4393 43942009-10-28 Rafael Avila de Espindola <espindola@google.com> 4395 4396 * dbxout.c (dbxout_common_check): Accept non public trees. 4397 * dwarf2out.c (fortran_common): Accept non public trees. 4398 43992009-10-28 Rafael Avila de Espindola <espindola@google.com> 4400 4401 * common.opt (fuse-linker-plugin): New option. 4402 * gcc.c (LINK_COMMAND_SPEC, main): Rename use-linker-plugin to 4403 fuse-linker-plugin. 4404 * opts.c (common_handle_option): Ignore OPT_fuse_linker_plugin. 4405 44062009-10-28 Paolo Bonzini <bonzini@gnu.org> 4407 4408 PR rtl-optimization/39715 4409 * config/arm/arm.md (cstoresi4): Use gen_cstoresi_ltu_thumb1. 4410 (gen_cstoresi_ltu_thumb1): New splitter. 4411 44122009-10-28 Richard Guenther <rguenther@suse.de> 4413 4414 PR lto/41808 4415 PR lto/41839 4416 * tree-ssa.c (useless_type_conversion_p): Do not treat 4417 conversions to pointers to incomplete types as useless. 4418 * gimple.c (gimple_types_compatible_p): Compare struct tags, 4419 not typedef names. 4420 44212009-10-28 Jakub Jelinek <jakub@redhat.com> 4422 4423 * var-tracking.c (emit_note_insn_var_location): Don't call the second 4424 vt_expand_loc unnecessarily when location is not a register nor 4425 memory. 4426 4427 PR middle-end/41837 4428 * ipa-struct-reorg.c (find_field_in_struct_1): Return NULL if 4429 fields don't have DECL_NAME. 4430 4431 PR debug/41801 4432 * builtins.c (get_builtin_sync_mem): Expand loc in ptr_mode, 4433 call convert_memory_address on addr. 4434 4435 PR target/41762 4436 * config/i386/i386.c (ix86_pic_register_p): Don't call 4437 rtx_equal_for_cselib_p for VALUEs discarded as useless. 4438 44392009-10-28 Richard Sandiford <rdsandiford@googlemail.com> 4440 4441 * var-tracking.c (emit_note_insn_var_location): Get the mode of 4442 a variable part from its REG, MEM or VALUE. 4443 44442009-10-28 Richard Guenther <rguenther@suse.de> 4445 4446 * gimple.c (gimple_get_alias_set): Fix comment typo. 4447 44482009-10-28 Richard Guenther <rguenther@suse.de> 4449 4450 * tree.c (free_lang_data_in_type): Do not call get_alias_set. 4451 (free_lang_data): Unconditionally compute alias sets for all 4452 standard integer types. Bail out if gate bailed out previously. 4453 Do not reset the types_compatible_p langhook. 4454 (gate_free_lang_data): Remove. 4455 (struct pass_ipa_free_lang_data): Enable unconditionally. 4456 * gimple.c (gimple_get_alias_set): Use the same alias-set for 4457 all pointer types. 4458 44592009-10-28 Richard Guenther <rguenther@suse.de> 4460 4461 PR middle-end/41855 4462 * tree-ssa-alias.c (refs_may_alias_p_1): Deal with CONST_DECLs 4463 (ref_maybe_used_by_call_p_1): Fix bcopy handling. 4464 (call_may_clobber_ref_p_1): Likewise. 4465 * tree-ssa-structalias.c (find_func_aliases): Likewise. 4466 * alias.c (nonoverlapping_memrefs_p): Deal with CONST_DECLs. 4467 44682009-10-28 Paolo Bonzini <bonzini@gnu.org> 4469 4470 PR rtl-optimization/41812 4471 4472 Revert: 4473 2009-06-27 Paolo Bonzini <bonzini@gnu.org> 4474 4475 * df-problems.c (df_md_scratch): New. 4476 (df_md_alloc, df_md_free): Allocate/free it. 4477 (df_md_local_compute): Only include live registers in init. 4478 (df_md_transfer_function): Prune the in-set computed by 4479 the confluence function, and the gen-set too. 4480 44812009-10-28 Paolo Bonzini <bonzini@gnu.org> 4482 4483 PR rtl-optimization/39715 4484 * combine.c (simplify_comparison): Use extensions to 4485 widen comparisons. Try an ANDing first. 4486 44872009-10-28 Paolo Bonzini <bonzini@gnu.org> 4488 4489 PR rtl-optimization/40741 4490 * config/arm/arm.c (thumb1_rtx_costs): IOR or XOR with 4491 a small constant is cheap. 4492 * config/arm/arm.md (andsi3, iorsi3): Try to place the result of 4493 force_reg on the LHS. 4494 (xorsi3): Likewise, and split the XOR if the constant is complex 4495 and not in Thumb mode. 4496 44972009-10-28 Paolo Bonzini <bonzini@gnu.org> 4498 4499 * expmed.c (emit_store_flag): Check costs before 4500 transforming to the opposite representation. 4501 45022009-10-28 Paolo Bonzini <bonzini@gnu.org> 4503 4504 * config/sh/sh.md (cbranchfp4_media): Remove hack extending 4505 cstore result to DImode. 4506 45072009-10-28 Kaz Kojima <kkojima@gcc.gnu.org> 4508 4509 * config/sh/sh.md (stuff_delay_slot): Move const_int pattern 4510 inside the unspec vector. 4511 45122009-10-27 Richard Henderson <rth@redhat.com> 4513 4514 * cgraphunit.c (cgraph_optimize): Maintain timevar stack properly. 4515 45162009-10-27 Richard Henderson <rth@redhat.com> 4517 4518 PR c++/41819 4519 * tree-eh.c (eh_region_may_contain_throw_map): Rename from 4520 eh_region_may_contain_throw; update users. 4521 (eh_region_may_contain_throw): New function. 4522 (lower_catch): Check flag_exceptions before creating exception region. 4523 (lower_eh_filter, lower_eh_must_not_throw): Likewise. 4524 (lower_cleanup): Tidy existing flag_exceptions check to match. 4525 45262009-10-27 Kai Tietz <kai.tietz@onevision.com> 4527 4528 PR/41799 4529 * config/i386/mingw32.h (CHECK_EXECUTE_STACK_ENABLED): New macro. 4530 * config/i386/mingw.opt: Add fset-stack-executable. 4531 * config/i386/i386.c (ix86_trampoline_init): Make call to 4532 emit_library_call conditional, if CHECK_EXECUTE_STACK_ENABLED is 4533 defined and its value is not zero. 4534 * doc/invoke.texi 4535 45362009-10-27 Richard Guenther <rguenther@suse.de> 4537 4538 * tree-ssa-structalias.c (find_func_aliases): In IPA mode 4539 handle calls to externally visible functions like in regular mode. 4540 (create_variable_info_for): Do not create function infos here. 4541 (have_alias_info): Remove write-only variable. 4542 (solve_constraints): New function split out from common code 4543 in compute_points_to_sets and ipa_pta_execute. 4544 (compute_points_to_sets): Adjust. 4545 (ipa_pta_execute): Likewise. Handle clones and externally visible 4546 functions like in non-IPA mode. 4547 45482009-10-27 Jakub Jelinek <jakub@redhat.com> 4549 4550 PR c/41842 4551 * c-typeck.c (convert_arguments): Return -1 if any of the arguments is 4552 error_mark_node. 4553 45542009-10-27 Richard Guenther <rguenther@suse.de> 4555 4556 * tree-complex.c (expand_complex_div_wide): Check for 4557 INTEGER_CST, not TREE_CONSTANT on comparison folding result. 4558 45592009-10-27 Revital Eres <eres@il.ibm.com> 4560 4561 PR tree-optimization/40648 4562 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 4563 Change decision of when to peel for alignment. 4564 45652009-10-27 Richard Guenther <rguenther@suse.de> 4566 4567 PR lto/41821 4568 * gimple.c (gimple_types_compatible_p): Handle OFFSET_TYPE. 4569 45702009-10-27 Aldy Hernandez <aldyh@redhat.com> 4571 4572 PR bootstrap/41451 4573 * fold-const.c (fold_binary_loc): Do not call 4574 protected_set_expr_location. 4575 45762009-10-27 Wei Guozhi <carrot@google.com> 4577 4578 PR target/41705 4579 * target.h (have_conditional_execution): Add a new target hook 4580 function. 4581 * target-def.h (TARGET_HAVE_CONDITIONAL_EXECUTION): Likewise. 4582 * targhooks.h (default_have_conditional_execution): Likewise. 4583 * targhooks.c (default_have_conditional_execution): Likewise. 4584 * doc/tm.texi (TARGET_HAVE_CONDITIONAL_EXECUTION): Document it. 4585 * config/arm/arm.c (TARGET_HAVE_CONDITIONAL_EXECUTION): Define it. 4586 (arm_have_conditional_execution): New function. 4587 * ifcvt.c (noce_process_if_block, find_if_header, 4588 cond_exec_find_if_block, dead_or_predicable): Change the usage of 4589 macro HAVE_conditional_execution to a target hook call. 4590 * recog.c (peephole2_optimize): Likewise. 4591 * sched-rgn.c (add_branch_dependences): Likewise. 4592 * final.c (asm_insn_count, final_scan_insn): Likewise. 4593 * bb-reorder.c (HAVE_conditional_execution): Remove it. 4594 45952009-10-26 Ben Elliston <bje@au.ibm.com> 4596 Michael Meissner <meissner@linux.vnet.ibm.com> 4597 Ulrich Weigand <uweigand@de.ibm.com> 4598 4599 * config.gcc (spu-*-elf*): Add spu_cache.h to extra_headers. 4600 * config/spu/spu_cache.h: New file. 4601 4602 * config/spu/cachemgr.c: New file. 4603 * config/spu/cache.S: New file. 4604 4605 * config/spu/spu.h (ASM_OUTPUT_SYMBOL_REF): Define. 4606 (ADDR_SPACE_EA): Define. 4607 (TARGET_ADDR_SPACE_KEYWORDS): Define. 4608 * config/spu/spu.c (EAmode): New macro. 4609 (TARGET_ADDR_SPACE_POINTER_MODE): Define. 4610 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise. 4611 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise. 4612 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise. 4613 (TARGET_ADDR_SPACE_SUBSET_P): Likewise. 4614 (TARGET_ADDR_SPACE_CONVERT): Likewise. 4615 (TARGET_ASM_SELECT_SECTION): Likewise. 4616 (TARGET_ASM_UNIQUE_SECTION): Likewise. 4617 (TARGET_ASM_UNALIGNED_SI_OP): Likewise. 4618 (TARGET_ASM_ALIGNED_DI_OP): Likewise. 4619 (ea_symbol_ref): New function. 4620 (spu_legitimate_constant_p): Handle __ea qualified addresses. 4621 (spu_addr_space_legitimate_address_p): New function. 4622 (spu_addr_space_legitimize_address): Likewise. 4623 (cache_fetch): New global. 4624 (cache_fetch_dirty): Likewise. 4625 (ea_alias_set): Likewise. 4626 (ea_load_store): New function. 4627 (ea_load_store_inline): Likewise. 4628 (expand_ea_mem): Likewise. 4629 (spu_expand_mov): Handle __ea qualified memory references. 4630 (spu_addr_space_pointer_mode): New function. 4631 (spu_addr_space_address_mode): Likewise. 4632 (spu_addr_space_subset_p): Likewise. 4633 (spu_addr_space_convert): Likewise. 4634 (spu_section_type_flags): Handle "._ea" section. 4635 (spu_select_section): New function. 4636 (spu_unique_section): Likewise. 4637 * config/spu/spu-c.c (spu_cpu_cpp_builtins): Support __EA32__ 4638 and __EA64__ predefined macros. 4639 * config/spu/spu-elf.h (LIB_SPEC): Handle -mcache-size= and 4640 -matomic-updates switches. 4641 4642 * config/spu/t-spu-elf (MULTILIB_OPTIONS): Define. 4643 (EXTRA_MULTILIB_PARTS): Add libgcc_cachemgr.a, 4644 libgcc_cachemgr_nonatomic.a, libgcc_cache8k.a, libgcc_cache16k.a, 4645 libgcc_cache32k.a, libgcc_cache64k.a, libgcc_cache128k.a. 4646 ($(T)cachemgr.o, $(T)cachemgr_nonatomic.o): New target. 4647 ($(T)cache8k.o, $(T)cache16k.o, $(T)cache32k.o, $(T)cache64k.o, 4648 $(T)cache128k.o): Likewise. 4649 ($(T)libgcc_%.a): Likewise. 4650 4651 * config/spu/spu.h (TARGET_DEFAULT): Add MASK_ADDRESS_SPACE_CONVERSION. 4652 * config/spu/spu.opt (-mea32/-mea64): Add switches. 4653 (-maddress-space-conversion): Likewise. 4654 (-mcache-size=): Likewise. 4655 (-matomic-updates): Likewise. 4656 * doc/invoke.texi (-mea32/-mea64): Document. 4657 (-maddress-space-conversion): Likewise. 4658 (-mcache-size=): Likewise. 4659 (-matomic-updates): Likewise. 4660 46612009-10-26 Ben Elliston <bje@au.ibm.com> 4662 Michael Meissner <meissner@linux.vnet.ibm.com> 4663 Ulrich Weigand <uweigand@de.ibm.com> 4664 4665 * doc/tm.texi (TARGET_ADDR_SPACE_KEYWORDS): Document. 4666 4667 * c-common.c (c_common_reswords): If TARGET_ADDR_SPACE_KEYWORDS is 4668 defined, add the named address space keywords. 4669 (c_addr_space_name): New function. 4670 (complete_array_type): Preserve named address space. 4671 (handle_mode_attribute): Use targetm.addr_space.valid_pointer_mode 4672 instead of targetm.valid_pointer_mode. 4673 4674 * c-common.h (enum rid): Add RID_ADDR_SPACE_0 .. RID_ADDR_SPACE_15, 4675 RID_FIRST_ADDR_SPACE and RID_LAST_ADDR_SPACE. 4676 (ADDR_SPACE_KEYWORD): New macro. 4677 (c_addr_space_name): Add prototype. 4678 4679 * c-tree.h (struct c_declspecs): Add address_space member. 4680 (declspecs_add_addrspace): Add prototype. 4681 4682 * c-pretty-print.c (pp_c_type_qualifier_list): Handle address spaces. 4683 4684 * c-parser.c (c_parse_init): Add assertion. 4685 (typedef enum c_id_kind): Add C_ID_ADDRSPACE. 4686 (c_lex_one_token): Handle address space keywords. 4687 (c_token_starts_typename): Likewise. 4688 (c_token_starts_declspecs): Likewise. 4689 (c_parser_declspecs): Likewise. 4690 (c_parser_postfix_expression_after_paren_type): Diagnose compound 4691 literal within function qualified with named address space. 4692 4693 * c-decl.c (diagnose_mismatched_decls): Diagnose conflicting named 4694 address space qualifiers. 4695 (shadow_tag_warned): Warn about useless address space qualifiers. 4696 (quals_from_declspecs): Handle address space qualifiers. 4697 (grokdeclarator): Likewise. 4698 (build_null_declspecs): Likewise. 4699 (declspecs_add_addrspace): New function. 4700 4701 * c-typeck.c (addr_space_superset): New function. 4702 (qualify_type): Handle named address spaces. 4703 (composite_type): Likewise. 4704 (common_pointer_type): Likewise. 4705 (comp_target_types): Likewise. 4706 (build_conditional_expr): Likewise. 4707 (handle_warn_cast_qual): Likewise. 4708 (build_c_cast): Likewise. 4709 (convert_for_assignment): Likewise. 4710 (build_binary_op): Likewise. 4711 (pointer_diff): Handle named address spaces. Use intermediate 4712 integer type of sufficient size if required. 4713 47142009-10-26 Ben Elliston <bje@au.ibm.com> 4715 Michael Meissner <meissner@linux.vnet.ibm.com> 4716 Ulrich Weigand <uweigand@de.ibm.com> 4717 4718 * doc/tm.texi (TARGET_ADDR_SPACE_POINTER_MODE): Document. 4719 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise. 4720 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise. 4721 4722 * target.h (struct target_def): Add pointer_mode, address_mode, 4723 and valid_pointer_mode to addr_space substructure. 4724 * target-def.h (TARGET_ADDR_SPACE_POINTER_MODE): Define. 4725 (TARGET_ADDR_SPACE_ADDRESS_MODE): Likewise. 4726 (TARGET_ADDR_SPACE_VALID_POINTER_MODE): Likewise. 4727 (TARGET_ADDR_SPACE_HOOKS): Add them. 4728 * targhooks.c (target_default_pointer_address_modes_p): New function. 4729 * target.h (target_default_pointer_address_modes_p): Add prototype. 4730 * targhooks.c (default_addr_space_pointer_mode): New function. 4731 (default_addr_space_address_mode): Likewise. 4732 (default_addr_space_valid_pointer_mode): Likewise. 4733 * targhooks.h (default_addr_space_pointer_mode): Add prototype. 4734 (default_addr_space_address_mode): Likewise. 4735 (default_addr_space_valid_pointer_mode): Likewise. 4736 * output.h (default_valid_pointer_mode): Move to ... 4737 * targhooks.h (default_valid_pointer_mode): ... here. 4738 * varasm.c (default_valid_pointer_mode): Move to ... 4739 * targhooks.c (default_valid_pointer_mode): ... here. 4740 4741 * varasm.c (output_constant): Use targetm.addr_space.valid_pointer_mode 4742 instead of targetm.valid_pointer_mode. 4743 4744 * fold-const.c (fit_double_type): Use int_or_pointer_precision. 4745 * tree.c (integer_pow2p): Likewise. 4746 (tree_log2): Likewise. 4747 (tree_floor_log2): Likewise. 4748 (signed_or_unsigned_type_for): Support pointer type of different size. 4749 (int_or_pointer_precision): New function. 4750 * tree.h (int_or_pointer_precision): Add prototype. 4751 * stor-layout.c (layout_type): Set TYPE_PRECISION for offset types. 4752 * varasm.c (initializer_constant_valid_p): Use TYPE_PRECISION of 4753 incoming pointer type instead of POINTER_SIZE. 4754 4755 * tree.c (build_pointer_type): Use appropriate pointer mode 4756 instead of ptr_mode. 4757 (build_reference_type): Likewise. 4758 * expr.c (store_expr): Likewise. 4759 (expand_expr_addr_expr): Likewise. 4760 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. 4761 * cfgexpand.c (expand_debug_expr): Likewise. 4762 4763 * auto-inc-dec.c: Include "target.h". 4764 (try_merge): Use appropriate address mode instead of Pmode. 4765 (find_inc): Likewise. 4766 * combine.c (find_split_point): Likewise. 4767 * cselib.c (cselib_record_sets): Likewise. 4768 * dse.c (replace_inc_dec): Likewise. 4769 (canon_address): Likewise. 4770 * var-tracking.c (replace_expr_with_values): Likewise. 4771 (count_uses): Likewise. 4772 (add_uses): Likewise. 4773 (add_stores): Likewise. 4774 * emit-rtl.c: Include "target.h". 4775 (adjust_address_1): Use appropriate address mode instead of Pmode. 4776 (offset_address): Likewise. 4777 * explow.c (break_out_memory_refs): Likewise. 4778 (memory_address_addr_space): Likewise. 4779 (promote_mode): Likewise. 4780 * expr.c (move_by_pieces): Likewise. 4781 (emit_block_move_via_loop): Likewise. 4782 (store_by_pieces): Likewise. 4783 (store_by_pieces_1): Likewise. 4784 (expand_assignment): Likewise. 4785 (store_constructor): Likewise. 4786 (expand_expr_addr_expr): Likewise. 4787 (expand_expr_real_1): Likewise. 4788 * cfgexpand.c (expand_debug_expr): Likewise. 4789 * ifcvt.c (noce_try_cmove_arith): Likewise. 4790 * regcprop.c (kill_autoinc_value): Likewise. 4791 * regmove.c (try_auto_increment): Likewise. 4792 * reload.c (find_reloads): Likewise. 4793 (find_reloads_address): Likewise. 4794 (find_reloads_address_1): Likewise. 4795 * sched-deps.c: Include "target.h". 4796 (sched_analyze_1): Use appropriate address mode instead of Pmode. 4797 (sched_analyze_2): Likewise. 4798 * sel-sched-dump.c: Include "target.h". 4799 (debug_mem_addr_value): Use appropriate address mode instead of Pmode. 4800 * stor-layout.c (layout_type): Likewise. 4801 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise. 4802 (multiplier_allowed_in_address_p): Likewise. 4803 (get_address_cost): Likewise. 4804 * varasm.c (make_decl_rtl): Likewise. 4805 4806 * expr.c (expand_assignment): Always convert offsets to appropriate 4807 address mode. 4808 (store_expr): Likewise. 4809 (store_constructor): Likewise. 4810 (expand_expr_real_1): Likewise. 4811 4812 * reload.h (form_sum): Add MODE argument. 4813 * reload.c (form_sum): Add MODE argument, use it instead of Pmode. 4814 Update recursive calls. 4815 (subst_indexed_address): Update calls to form_sum. 4816 4817 * tree-flow.h (addr_for_mem_ref): Add ADDRSPACE argument. 4818 * tree-ssa-address.c: Include "target.h". 4819 (templates): Replace by ... 4820 (mem_addr_template_list): ... this new vector. 4821 (TEMPL_IDX): Handle address space numbers. 4822 (gen_addr_rtx): Add address mode argument, use it instead of Pmode. 4823 (addr_for_mem_ref): Add ADDRSPACE argument. Use per-address-space 4824 instead of global cache. Update call to gen_addr_rtx. 4825 (valid_mem_ref_p): Update call to addr_for_mem_ref. 4826 * expr.c (expand_expr_real_1): Update call to addr_for_mem_ref. 4827 4828 * rtl.h (convert_memory_address_addr_space): Add prototype. 4829 (convert_memory_address): Define as macro. 4830 * explow.c (convert_memory_address): Rename to ... 4831 (convert_memory_address_addr_space): ... this. Add ADDRSPACE argument. 4832 Use appropriate pointer and address modes instead of ptr_mode / Pmode. 4833 Update recursive calls. 4834 (memory_address_addr_space): Call convert_memory_address_addr_space. 4835 * expmed.c (make_tree): Likewise. 4836 * expr.c (expand_assignment): Likewise. 4837 (expand_expr_addr_expr_1): Likewise. Also, add ADDRSPACE argument. 4838 (expand_expr_addr_expr): Likewise. Also, update call. 4839 4840 * alias.c (find_base_value): Guard pointer size optimizations. 4841 (find_base_term): Likewise. 4842 * rtlanal.c (nonzero_bits1): Likewise. 4843 (num_sign_bit_copies1): Likewise. 4844 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 4845 4846 * Makefile.in (tree-ssa-address.o): Add $(TARGET_H) dependency. 4847 (emit-rtl.o): Likewise. 4848 (auto-inc-dec.o): Likewise. 4849 (sched-deps.o): Likewise. 4850 48512009-10-26 Ben Elliston <bje@au.ibm.com> 4852 Michael Meissner <meissner@linux.vnet.ibm.com> 4853 Ulrich Weigand <uweigand@de.ibm.com> 4854 4855 * doc/extend.texi (Named Address Spaces): New section. 4856 * coretypes.h (addr_space_t): New type. 4857 (ADDR_SPACE_GENERIC): New define. 4858 (ADDR_SPACE_GENERIC_P): New macro. 4859 4860 * doc/tm.texi (Named Address Spaces): New section. 4861 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Document. 4862 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Document. 4863 (TARGET_ADDR_SPACE_SUBSET_P): Document. 4864 (TARGET_ADDR_SPACE_CONVERT): Document. 4865 * target.h (struct gcc_target): Add addr_space substructure. 4866 * target-def.h (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Define. 4867 (TARGET_ADDR_SPACE_LEGITIMIZE_ADDRESS): Likewise. 4868 (TARGET_ADDR_SPACE_SUBSET_P): Likewise. 4869 (TARGET_ADDR_SPACE_CONVERT): Likewise. 4870 (TARGET_ADDR_SPACE_HOOKS): Likewise. 4871 (TARGET_INITIALIZER): Initialize addr_space hooks. 4872 * targhooks.c (default_addr_space_legitimate_address_p): New function. 4873 (default_addr_space_legitimize_address): Likewise. 4874 (default_addr_space_subset_p): Likewise. 4875 (default_addr_space_convert): Likewise. 4876 * targhooks.h (default_addr_space_legitimate_address_p): Add prototype. 4877 (default_addr_space_legitimize_address): Likewise. 4878 (default_addr_space_subset_p): Likewise. 4879 (default_addr_space_convert): Likewise. 4880 4881 * doc/rtl.texi (MEM_ADDR_SPACE): Document. 4882 * rtl.h (mem_attrs): Add ADDRSPACE memory attribute. 4883 (MEM_ADDR_SPACE): New macro. 4884 * emit-rtl.c (get_mem_attrs): Add ADDRSPACE argument and set 4885 address space memory attribute. 4886 (mem_attrs_htab_hash): Handle address space memory attribute. 4887 (mem_attrs_htab_eq): Likewise. 4888 (set_mem_attributes_minus_bitpos): Likewise. 4889 (set_mem_alias_set): Likewise. 4890 (set_mem_align): Likewise. 4891 (set_mem_expr): Likewise. 4892 (set_mem_offset): Likewise. 4893 (set_mem_size): Likewise. 4894 (adjust_address_1): Likewise. 4895 (offset_address): Likewise. 4896 (widen_memoy_address): Likewise. 4897 (get_spill_slot_decl): Likewise. 4898 (set_mem_attrs_for_spill): Likewise. 4899 (set_mem_addr_space): New function. 4900 * emit-rtl.h (set_mem_addr_space): Add prototype. 4901 * print-rtl.c (print_rtx): Print address space memory attribute. 4902 * expr.c (expand_assignment): Set address space memory attribute 4903 of generated MEM RTXes as appropriate. 4904 (expand_expr_real_1): Likewise. 4905 * cfgexpand.c (expand_debug_expr): Likewise. 4906 * tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise. 4907 4908 * tree.h (struct tree_base): Add address_space bitfield. Reduce 4909 size of "spare" bitfield. 4910 (TYPE_ADDR_SPACE): New macro. 4911 (ENCODE_QUAL_ADDR_SPACE): Likewise. 4912 (DECODE_QUAL_ADDR_SPACE): Likewise. 4913 (CLEAR_QUAL_ADDR_SPACE): Likewise. 4914 (KEEP_QUAL_ADDR_SPACE): Likewise. 4915 (TYPE_QUALS): Encode type address space. 4916 (TYPE_QUALS_NO_ADDR_SPACE): New macro. 4917 * tree.c (set_type_quals): Set type address space. 4918 (build_array_type): Inherit array address space from element type. 4919 * print-tree.c (print_node_brief): Print type address space. 4920 (print_node): Likewise. 4921 * tree-pretty-print.c (dump_generic_node): Likewise. 4922 4923 * explow.c (memory_address): Rename to ... 4924 (memory_address_addr_space): ... this. Add ADDRSPACE argument. 4925 Use address-space aware variants of memory address routines. 4926 * recog.c (memory_address_p): Rename to ... 4927 (memory_address_addr_space_p): ... this. Add ADDSPACE argument. 4928 Use address-space aware variants of memory address routines. 4929 (offsettable_address_p): Rename to ... 4930 (offsettable_address_addr_space_p): ... this. Add ADDRSPACE argument. 4931 Use address-space aware variants of memory address routines. 4932 * reload.c (strict_memory_address_p): Rename to ... 4933 (strict_memory_address_addr_space_p): ... this. Add ADDSPACE argument. 4934 Use address-space aware variants of memory address routines. 4935 (maybe_memory_address_p): Rename to ... 4936 (maybe_memory_address_addr_space_p): ... this. Add ADDSPACE argument. 4937 Use address-space aware variants of memory address routines. 4938 * expr.h (memory_address_addr_space): Add prototype. 4939 (memory_address): Define as macro. 4940 * recog.h (memory_address_addr_space_p): Add prototype. 4941 (memory_address_p): Define as macro. 4942 (offsettable_address_addr_space_p): Add prototype. 4943 (offsettable_address_p): Define as macro. 4944 (strict_memory_address_addr_space_p): Add prototype. 4945 (strict_memory_address_p): Define as macro. 4946 4947 * combine.c (find_split_point): Use address-space aware variants 4948 of memory address routines. 4949 * emit-rtl.c (operand_subword): Likewise. 4950 (change_address_1): Likewise. 4951 (adjust_address_1): Likewise. 4952 (offset_address): Likewise. 4953 * expr.c (emit_move_insn): Likewise. 4954 (expand_assignment): Likewise. 4955 (expand_expr_real_1): Likewise. 4956 * recog.c (verify_changes): Likewise. 4957 (general_operand): Likewise. 4958 (offsettable_memref_p): Likewise. 4959 (offsettable_nonstrict_memref_p): Likewise. 4960 (constrain_operands): Likewise. 4961 * reload.c (get_secondary_mem): Likewise. 4962 (find_reloads_toplev): Likewise. 4963 (find_reloads_address): Likewise. 4964 (find_reloads_subreg_address): Likewise. 4965 * reload1.c (reload): Likewise. 4966 * rtlhooks.c (gen_lowpart_if_possible): Likewise. 4967 * rtl.h (address_cost): Add ADDRSPACE argument. 4968 * rtlanal.c (address_cost): Add ADDRSPACE argument. Use address-space 4969 aware variant of memory address routines. 4970 * loop-invariant.c (create_new_invariant): Update address_cost call. 4971 * tree-ssa-loop-ivopts.c (computation_cost): Likewise. 4972 * fwprop.c (should_replace_address): Add ADDRSPACE argument. 4973 Use address-space aware variant of memory address routines. 4974 (propagate_rtx_1): Update call to should_replace_address. 4975 * tree-flow.h (multiplier_allowed_in_address_p): Add ADDRSPACE 4976 argument. 4977 * tree-ssa-loop-ivopts.c (multiplier_allowed_in_address_p): Add 4978 ADDRSPACE argument. Use per-address-space instead of global cache. 4979 Use address-space aware variant of memory address routines. 4980 (get_address_cost): Likewise. 4981 (get_computation_cost_at): Update calls. 4982 * tree-ssa-address.c (valid_mem_ref_p): Add ADDRSPACE argument. 4983 Use address-space aware variant of memory address routines. 4984 (create_mem_ref_raw): Update call to valid_mem_ref_p. 4985 (most_expensive_mult_to_index): Update call to 4986 multiplier_allowed_in_address_p. 4987 4988 * dwarf2out.c (modified_type_die): Output DW_AT_address_class 4989 attribute to indicate named address spaces. 4990 4991 * varasm.c (get_variable_section): DECLs in named address spaces 4992 cannot be "common". 4993 4994 * reload.c (find_reloads_address): Do not use LEGITIMIZE_RELOAD_ADDRESS 4995 for addresses in a non-generic address space. 4996 4997 * expr.c (emit_block_move_hints): Do not use libcalls for 4998 memory in non-generic address spaces. 4999 (clear_storage_hints): Likewise. 5000 (expand_assignment): Likewise. 5001 5002 * fold-const.c (operand_equal_p): Expressions refering to different 5003 address spaces are not equivalent. 5004 5005 * rtl.c (rtx_equal_p_cb): MEMs refering to different address 5006 spaces are not equivalent. 5007 (rtx_equal_p): Likewise. 5008 * cse.c (exp_equiv_p): Likewise. 5009 * jump.c (rtx_renumbered_equal_p): Likewise. 5010 * reload.c (operands_match_p): Likewise. 5011 5012 * alias.c (nonoverlapping_memrefs_p): MEMs refering to different 5013 address spaces may alias. 5014 (true_dependence): Likewise. 5015 (canon_true_dependence): Likewise. 5016 (write_dependence_p): Likewise. 5017 5018 * dse.c (canon_address): Handle named address spaces. 5019 * ifcvt.c (noce_try_cmove_arith): Likewise. 5020 5021 * tree.def (ADDR_SPACE_CONVERT_EXPR): New tree code. 5022 * expr.c (expand_expr_real_2): Expand ADDR_SPACE_CONVERT_EXPR. 5023 * convert.c (convert_to_pointer): Generate ADDR_SPACE_CONVERT_EXPR 5024 to handle conversions between different address spaces. 5025 * fold-const.c (fold_convert_loc): Likewise. 5026 (fold_unary_loc): Handle ADDR_SPACE_CONVERT_EXPR. 5027 * tree-pretty-print.c (dump_generic_node): Likewise. 5028 * gimple-pretty-print.c (dump_unary_rhs): Likewise. 5029 * tree-cfg.c (verify_gimple_assign_unary): Likewise. 5030 * tree-inline.c (estimate_operator_cost): Likewise. 5031 * tree-ssa.c (useless_type_conversion_p): Conversions between pointers 5032 to different address spaces are not useless. 5033 50342009-10-26 Jakub Jelinek <jakub@redhat.com> 5035 5036 PR bootstrap/41345 5037 * cfgcleanup.c (trivially_empty_bb_p): New function. 5038 (try_optimize_bb): Use it instead of checking BB_HEAD == BB_END. 5039 5040 PR debug/41828 5041 * dwarf2out.c (add_pubname, add_pubtype, generic_parameter_die, 5042 add_name_and_src_coords_attributes, gen_namespace_die, 5043 dwarf2out_set_name): Handle dwarf2_name returning NULL. 5044 50452009-10-26 Nick Clifton <nickc@redhat.com> 5046 5047 * config.gcc: Add support for RX target. 5048 * config/rx: New directory. 5049 * config/rx/constraints.md: New file. 5050 * config/rx/predicates.md: New file. 5051 * config/rx/rx.c: New file. 5052 * config/rx/rx.h: New file. 5053 * config/rx/rx.md: New file. 5054 * config/rx/rx.opt: New file. 5055 * config/rx/rx-protos.h: New file. 5056 * config/rx/t-rx: New file. 5057 * doc/extend.texi: Document RX function attributes. 5058 * doc/invoke.texi: Document RX specific command line options. 5059 * doc/contrib.texi: Document RX contribution. 5060 * doc/md.texi: Document RX constraints. 5061 * doc/install.texi: Document RX support. 5062 50632009-10-26 Michael Matz <matz@suse.de> 5064 5065 PR tree-optimization/41783 5066 * tree-ssa-alias.c (get_continuation_for_phi): Export, add a special 5067 case for simple diamonds. 5068 * tree-ssa-alias.h (get_continuation_for_phi): Declare. 5069 * tree-ssa-pre.c (translate_vuse_through_block): Add same_valid 5070 argument, use alias oracle to skip some vdefs. 5071 (phi_translate_1): Change call to above, don't allocate new 5072 value ids if they can stay the same. 5073 (compute_avail): Allow vuse walking when looking up references. 5074 50752009-10-26 Richard Guenther <rguenther@suse.de> 5076 5077 PR tree-optimization/41826 5078 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): Avoid 5079 access to re-allocated vector fields. 5080 50812009-10-26 Richard Guenther <rguenther@suse.de> 5082 5083 * graphite-sese-to-poly.c (check_poly_representation): Fix 5084 compile without checking. 5085 50862009-10-26 Janus Weil <janus@gcc.gnu.org> 5087 5088 PR fortran/41714 5089 * gimple.h (tree_annotate_all_with_location): Remove prototype. 5090 * gimplify.c (tree_should_carry_location_p, 5091 tree_annotate_one_with_location,tree_annotate_all_with_location): 5092 Remove obsolete functions. 5093 50942009-10-25 Kaz Kojima <kkojima@gcc.gnu.org> 5095 5096 PR target/41813 5097 * config/sh/sh.md (stuff_delay_slot): Don't set T_REG in pattern. 5098 50992009-10-25 Richard Guenther <rguenther@suse.de> 5100 5101 * lto-streamer-in.c (unpack_ts_decl_common_value_fields): 5102 Stream DECL_RESTRICTED_P. 5103 * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 5104 51052009-10-25 Richard Sandiford <rdsandiford@googlemail.com> 5106 5107 * config/mips/mips.c (mips_restore_gp_from_cprestore_slot): Emit 5108 a note when expanding to nothing. 5109 51102009-10-25 Richard Guenther <rguenther@suse.de> 5111 5112 PR middle-end/41814 5113 * tree.c (find_decls_types_r): Deal with Java overloading 5114 BINFO_VIRTUALS for its own purpose. 5115 51162009-10-24 Adam Nemet <anemet@caviumnetworks.com> 5117 5118 * config/mips/predicates.md (hilo_operand): New predicate. 5119 * config/mips/mips.md (<u>mulsidi3_64bit): Change it to a 5120 define_insn. Correct !ISA_HAS_EXT_INS length from 24 to 28. Move 5121 splitter part from here ...: 5122 (<u>mulsidi3_64bit splitter for !ISA_HAS_EXT_INS): ... to here. Swap 5123 op0 and op4 to match the DINS case. 5124 (<u>mulsidi3_64bit splitter for ISA_HAS_EXT_INS): New splitter. 5125 51262009-10-24 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 5127 5128 PR middle-end/19154 5129 * avr.md (QIDI): Add new mode iterator. 5130 (sbrx_branch<mode>): Create new zero extract bit, test and jump 5131 patterns for all QI thru DI modes combinations. 5132 (sbrx_and_branch<mode>): Create new and based bit test and jump 5133 patterns for QI thru SI modes. 5134 avr.c (avr_out_sbxx_branch): Use only bit number. 5135 51362009-10-24 Jan Hubicka <jh@suse.cz> 5137 5138 * ipa-reference.c (check_call): Noreturn notrhow calls do not write 5139 to memory. 5140 (analyze_function): When analyzing noreturn nothrow call, do not 5141 compute written stats; free bitmaps of vars early if possible. 5142 (generate_summary): Only update bitmaps if computed. 5143 (propagate): Only dump bitmaps if computed. 5144 (ipa_reference_read_summary): Fix pasto. 5145 51462009-10-24 Eric Botcazou <ebotcazou@adacore.com> 5147 5148 * tree-ssa-alias.c (nonaliasing_component_refs_p): Rename into... 5149 (aliasing_component_refs_p): ...this. Return true if there is no 5150 common base and the base access types have the same alias set. 5151 (indirect_ref_may_alias_decl_p): Adjust for above renaming. 5152 (indirect_refs_may_alias_p): Likewise. 5153 51542009-10-23 Joseph Myers <joseph@codesourcery.com> 5155 5156 PR c/40033 5157 * c-typeck.c (c_finish_stmt_expr): Do not wrap error_mark_node in 5158 a C_MAYBE_CONST_EXPR. 5159 51602009-10-23 Michael Meissner <meissner@linux.vnet.ibm.com> 5161 5162 PR target/41787 5163 * config/rs6000/rs6000.c (struct machine_function): Add 5164 vsx_or_altivec_used_p to record if vector types are used. 5165 (rs6000_expand_to_rtl_hook): Rename from 5166 rs6000_alloc_sdmode_stack_slot. If VSX, check to see if there are 5167 any vector operations, so if there are, we can set VRSAVE to 5168 non-zero when only floating point vector registers are used. 5169 (TARGET_EXPAND_TO_RTL_HOOK): Use rs6000_expand_to_rtl_hook. 5170 (rs6000_check_vector_mode): Inner function to check if vector 5171 types are used in the code. 5172 (compute_vrsave_mask): If VSX, make sure VRSAVE is non-zero if 5173 vector instructions are used. 5174 5175 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): 5176 Indicate that VSX registers which overlap floating point 5177 registers, can't be used across a call, since the ABI only states 5178 the scalar part of the register will be saved and restored. 5179 51802009-10-23 Joseph Myers <joseph@codesourcery.com> 5181 5182 PR c/41673 5183 * alias.c (get_alias_set): Call langhook before returning 0 for 5184 types with structural equality. 5185 * c-common.c (c_common_get_alias_set): Use alias set of element 5186 type for arrays with structural comparison. 5187 51882009-10-23 Richard Guenther <rguenther@suse.de> 5189 5190 PR middle-end/41805 5191 * cfgexpand.c (expand_call_stmt): Use gimple_has_side_effects and 5192 gimple_call_nothrow_p. 5193 51942009-10-23 Richard Guenther <rguenther@suse.de> 5195 5196 PR tree-optimization/41778 5197 * tree-ssa-pre.c (do_regular_insertion): Only insert if a 5198 redundancy along a path in the CFG we want to optimize for speed 5199 is going to be removed. 5200 (execute_pre): Do partial-PRE only if the function is to be 5201 optimized for speed. 5202 (gate_pre): Do not turn off all of PRE when not optimizing a 5203 function for speed. 5204 52052009-10-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5206 5207 * builtins.c (fold_builtin_cabs): Use validate_arg(). 5208 (fold_builtin_cexp): Fix if-logic. 5209 (fold_builtin_1): Check subtype for BUILT_IN_CIMAG. 5210 52112009-10-22 Jeff Law <law@redhat.com> 5212 5213 * ira-lives.c (process_single_reg_class_operands): Update the 5214 hard reg costs for all the hard registers desired by the 5215 single reg class operand. 5216 52172009-10-22 Richard Sandiford <rdsandiford@googlemail.com> 5218 5219 * simplify-rtx.c (simplify_replace_fn_rtx): Add a fallback case 5220 for rtxes that aren't handled specially. 5221 52222009-10-22 Richard Sandiford <rdsandiford@googlemail.com> 5223 5224 * rtl.h (shallow_copy_rtvec): Declare. 5225 * rtl.c (shallow_copy_rtvec): New function. 5226 * cselib.c (cselib_subst_to_values): Use it. Only modify an 5227 rtx field if the subrtx has changed. 5228 52292009-10-22 Anatoly Sokolov <aesok@post.ru> 5230 5231 * config/m32c/m32c.c (m32c_function_value_regno_p): New function. 5232 (m32c_function_value): Make static, add new 'outgoing' argument. 5233 (m32c_libcall_value): Make static, add new 'fun' argument. 5234 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 5235 * config/m32c/m32c.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 5236 (FUNCTION_VALUE_REGNO_P): Redefine, use m32c_function_value_regno_p. 5237 * config/m32c/m32c-protos.h (m32c_function_value_regno_p): Declare. 5238 (m32c_function_value, m32c_libcall_value): Delete declaration. 5239 52402009-10-22 Diego Novillo <dnovillo@google.com> 5241 5242 * Makefile.in (PLUGIN_HEADERS): Add output.h and IPA_UTILS_H. 5243 52442009-10-22 Razya Ladelsky <razya@il.ibm.com> 5245 5246 * tree-cfg.c (gimple_duplicate_sese_tail): Fix typos/indentation/white 5247 space. 5248 52492009-10-22 Richard Guenther <rguenther@suse.de> 5250 5251 * lto-streamer.h (lto_symtab_merge_cgraph_nodes): Declare. 5252 * lto-symtab.c (struct lto_symtab_entry_def): Add node member. 5253 (lto_symtab_merge): Do not merge cgraph nodes here. 5254 (lto_symtab_resolve_can_prevail_p): Simplify. 5255 (lto_symtab_resolve_symbols): Store cgraph node. 5256 (lto_symtab_merge_decls_1): Simplify. Do not drop non-prevailing 5257 functions from the symtab. 5258 (lto_symtab_merge_cgraph_nodes_1): New function. 5259 (lto_symtab_merge_cgraph_nodes): Likewise. 5260 52612009-10-22 Richard Guenther <rguenther@suse.de> 5262 5263 PR lto/41791 5264 * lto-streamer-out.c (lto_output_location): Stream the 5265 system header flag. 5266 * lto-streamer-in.c (lto_input_location): Likewise. 5267 52682009-10-22 Razya Ladelsky <razya@il.ibm.com> 5269 5270 * cfgloopmanip.c (duplicate_subloops): Export. 5271 * tree-parloops.c (loop_parallel_p): Dump if loop is innermost. 5272 (transform_to_exit_first_loop): Duplicate bbs starting from 5273 header up to loop->latch instead of exit->src. 5274 Initialize control variable to the correct number of iterations. 5275 (gather_scalar_reductions): Do not register double reductions. 5276 (parallelize_loops): Dump which loop is tested. 5277 Indicate whether the parallelized loop is inner or not. 5278 Remove the innermost-loop requirement. 5279 * cfgloop.h (duplicate_subloops): Export. 5280 * tree-cfg.c (add_phi_args_after_redirect): New function. 5281 (gimple_duplicate_sese_tail): Remove the no-subloops constraint. 5282 Call duplicate_subloops. 5283 Update number of iterations at the exit condition. 5284 Don't redirect nexits always to the loop exit. 5285 Redirect copied edges from latch to the loop exit. 5286 52872009-10-22 Jan Hubicka <jh@suse.cz> 5288 5289 * ipa-cp.c (ipcp_read_summary): Remove now invalid FIXME and 5290 flag_ltrans check. 5291 * ipa-inline.c (cgraph_mark_inline_edge, 5292 cgraph_decide_inlining_of_small_function, 5293 cgraph_decide_inlining, inline_read_summary): Disable indirect 5294 inlining for WPA for time being. 5295 5296 PR tree-optimize/40556 5297 * ipa-inline.c (cgraph_early_inlining): Fix iterations condition. 5298 52992009-10-22 Richard Guenther <rguenther@suse.de> 5300 5301 * lto-streamer.h (lto_symtab_clear_resolution): Remove. 5302 * lto-symtab.c (lto_symtab_clear_resolution): Likewise. 5303 53042009-10-22 Jan Hubicka <jh@suse.cz> 5305 5306 PR lto/41730 5307 * ipa-reference.c (has_proper_scope_for_analysis): Add fixme about 5308 global vars. 5309 (check_call): Handle only indirect calls. 5310 (propagate_bits): Update comment. 5311 (write_node_summary_p): Turn bogus check to assert. 5312 (ipa_reference_write_summary): Stream calls_read_all properly. 5313 (ipa_reference_read_summary): Stream in calls_read_all properly. 5314 (read_write_all_from_decl): New function. 5315 (propagate): Handle OVERWRITABLE nodes and external calls here. 5316 * ipa-pre-const.c (check_call): In IPA mode handle indirect 5317 calls only. 5318 (analyze_function): Do not check visibility here. 5319 (add_new_function): We summary OVERWRITABLE too. 5320 (generate_summary): Stream OVERWRITABLE nodes too. 5321 (propagate): Handle external calls and OVERWRITABLE nodes here. 5322 (local_pure_const): Check visibility here. 5323 53242009-10-22 Jan Hubicka <jh@suse.cz> 5325 5326 * ipa-cp.c (ipcp_write_summary, ipcp_read_summary): New functions. 5327 (pass_ipa_cp): Register them. 5328 (ipcp_init_stage): Analyze all functions for whopr/lto. 5329 (ipcp_propagate_stage): Skip external calls. 5330 (ipcp_iterate_stage): Call ipa_update_after_lto_read if needed. 5331 * ipa-reference.c (write_node_summary_p): Fix thinko about 5332 availability. 5333 * cgraphunit.c (ipa_passes): When in lto, ne er produce new summaries; 5334 when in ltrans, skip executing of ipa passes since everything 5335 should've been done. 5336 * ipa-inline.c (cgraph_decide_inlining): Remove FIXMEs. 5337 (inline_generate_summary): Likewise. 5338 (inline_read_summary): New function. 5339 (inline_write_summary): New function. 5340 (pass_ipa_inline): Register new hooks. 5341 * ipa-prop.c: Inlcude lto-streamer.h 5342 (ipa_edge_args_vector): Update declaration. 5343 (ipa_count_arguments, ipa_compute_jump_functions, 5344 ipa_free_edge_args_substructures): Move ipa_edge_args_vector into ggc. 5345 (ipa_write_jump_function, ipa_read_jump_function, ipa_write_node_info, 5346 ipa_read_node_info): New static functions. 5347 (ipa_prop_write_jump_functions, ipa_prop_read_jump_functions): Update. 5348 (duplicate_array): Use xmalloc. 5349 (duplicate_ggc_array): New. 5350 (ipa_edge_duplication_hook): Use it. 5351 (ipa_update_after_lto_read): New function. 5352 * ipa-prop.h (ipa_prop_write_jump_functions, 5353 ipa_prop_read_jump_functions): Declare. 5354 (ipa_pass_through_data, ipa_ancestor_jf_data, ipa_member_ptr_cst, 5355 jump_func_value, ipa_member_ptr_cst, ipa_edge_args): Add GTY markers. 5356 (ipa_edge_args_vector): Move into GGC. 5357 (ipa_check_create_edge_args): Update. 5358 (ipa_update_after_lto_read): New. 5359 * passes.c (ipa_write_summaries_1): When in wpa, do not write 5360 summaries. 5361 (ipa_read_summaries): When in ltrans, so not read summaries. 5362 * lto-streamer.c (lto_get_section_name): Add 5363 LTO_section_jump_functions. 5364 * lto-streamer.h (LTO_section_jump_functions): New section. 5365 (produce_asm): Declare. 5366 * lto-cgraph.c (output_cgraph): Output edges in reverse order. 5367 * lto-streamer-out.c (produce_asm): Export. 5368 * lto-streamer-in.c: Include tree-pass.h 5369 (input_function): Free dominance info when done. 5370 (lto_read_body): Push ipa_inline in ltrans stage. 5371 * gengtype.c (open_base_files): Add ipa-prop.h into includes. 5372 * Makefile.in (GTFILES): Add ipa-prop.h 5373 53742009-10-22 Matthias Klose <doko@ubuntu.com> 5375 5376 * doc/install.texi: Document --enable-browser-plugin. 5377 53782009-10-21 Vladimir Makarov <vmakarov@redhat.com> 5379 5380 * doc/invoke.texi (fira-loop-pressure): Update default value. 5381 * opts.c (decode_options): Remove default value setting for 5382 flag_ira_loop_pressure. 5383 * config/ia64/ia64.c (ia64_override_options): Set 5384 flag_ira_loop_pressure up for -O3. 5385 * config/rs6000/rs6000.c (rs6000_override_options): Ditto. 5386 53872009-10-21 Sebastian Pop <sebastian.pop@amd.com> 5388 5389 PR tree-optimization/41497 5390 * tree-scalar-evolution.c (analyze_evolution_in_loop): Return 5391 chrec_dont_know if the evolution function returned by follow_ssa_edge 5392 is constant in the analyzed loop and is not compatible with the 5393 initial value before the loop. 5394 * tree-chrec.h (no_evolution_in_loop_p): Call STRIP_NOPS. 5395 53962009-10-21 Joseph Myers <joseph@codesourcery.com> 5397 5398 * config/sh/sh.c (nonpic_symbol_mentioned_p): Allow UNSPEC_TPOFF. 5399 54002009-10-21 Jakub Jelinek <jakub@redhat.com> 5401 5402 PR other/25507 5403 * doc/invoke.texi: Document -print-multi-os-directory. 5404 54052009-10-21 Jack Howarth <howarth@bromo.med.uc.edu> 5406 5407 PR c++/41313 5408 * gcc/config/darwin10.h: Use default_emit_unwind_label. 5409 * gcc/config/darwin.c: Disable -freorder-blocks-and-partition 5410 when darwin_emit_unwind_label is used. 5411 54122009-10-21 Eric Botcazou <ebotcazou@adacore.com> 5413 5414 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Tweak 5415 order of checks. 5416 54172009-10-20 Richard Henderson <rth@redhat.com> 5418 5419 * tree-eh.c (lower_try_finally_copy): Do lower_eh_constructs_1 5420 before emit_post_landing_pad. 5421 54222009-10-20 Adam Nemet <anemet@caviumnetworks.com> 5423 5424 * config/mips/mips.c (mips_binary_cost): Add new argument speed. 5425 Use when calling rtx_costs. 5426 (mips_rtx_costs): Fix formatting. Use argument speed rather than the 5427 global optimize_size. Pass speed to mips_binary_cost. 5428 54292009-10-20 Jakub Jelinek <jakub@redhat.com> 5430 5431 * config/rs6000/rs6000.c (def_builtin): Set TREE_READONLY instead 5432 of TREE_CONSTANT. 5433 54342009-10-20 Richard Sandiford <rdsandiford@googlemail.com> 5435 5436 * rtl.h (simplify_replace_fn_rtx): Declare. 5437 (wrap_constant, unwrap_constant): Delete. 5438 * cfgexpand.c (unwrap_constant, wrap_constant): Delete. 5439 (expand_debug_expr): Don't call wrap_constant. 5440 * combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC. 5441 (auto_adjust_pair): Fold into... 5442 (propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC. 5443 Just return a new value. 5444 (propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC, 5445 otherwise use simplify_replace_rtx. 5446 * cselib.c (wrap_constant): Reinstate old definition. 5447 (cselib_expand_value_rtx_1): Don't wrap constants. 5448 * gcse.c (try_replace_reg): Don't use copy_rtx in the call to 5449 simplify_replace_rtx. 5450 (bypass_block): Fix formatting in calls to simplify_replace_rtx. 5451 * reload1.c (reload): Skip all uses for an insn before adjusting it. 5452 Use simplify_replace_rtx. 5453 * simplify-rtx.c (simplify_replace_fn_rtx): New function, 5454 adapted from... 5455 (simplify_replace_rtx): ...here. Turn into a wrapper for 5456 simplify_replace_fn_rtx. 5457 (simplify_unary_operation): Don't unwrap CONSTs. 5458 * var-tracking.c (check_wrap_constant): Delete. 5459 (vt_expand_loc_callback): Don't call it. 5460 (vt_expand_loc): Likewise. 5461 54622009-10-20 Pascal Obry <obry@adacore.com> 5463 Eric Botcazou <ebotcazou@adacore.com> 5464 5465 * config/i386/cygming.h (DWARF_FRAME_REGNUM): Add enclosing parens. 5466 54672009-10-20 Michael Matz <matz@suse.de> 5468 5469 * loop-invariant.c (create_new_invariant): Use different magic number. 5470 54712009-10-20 Richard Earnshaw <rearnsha@arm.com> 5472 5473 PR target/39247 5474 * arm.c (arm_override_options): Forcibly disable hot/cold block 5475 partitioning. 5476 54772009-10-20 Alexandre Oliva <aoliva@redhat.com> 5478 5479 PR debug/41739 5480 * haifa-sched.c (try_ready): Skip debug deps updating speculation 5481 status. 5482 54832009-10-20 Richard Guenther <rguenther@suse.de> 5484 5485 * ggc-page.c: Include cfgloop.h. 5486 (struct max_alignment): Drop long double, add void *. 5487 (extra_order_size_table): Add low non-power-of-two multiples 5488 of MAX_ALIGNMENT. Drop small type-based entries, add 5489 tree_type, cgraph_node and loop. 5490 * alloc-pool.c (struct allocation_object_def): Drop long double 5491 aligning element. 5492 54932009-10-20 Jakub Jelinek <jakub@redhat.com> 5494 5495 PR debug/41340 5496 * loop-invariant.c (calculate_loop_reg_pressure): Don't count regs 5497 referenced just in DEBUG_INSNs. 5498 54992009-10-20 Richard Guenther <rguenther@suse.de> 5500 5501 PR lto/41761 5502 * gimple.c (gimple_register_type): Make sure we register 5503 the types main variant first. 5504 55052009-10-20 Richard Guenther <rguenther@suse.de> 5506 5507 * gimple.c (gimple_types_compatible_p): Simplify. Move 5508 cheap checks before hashtable queries. Add checks for 5509 TYPE_NONALIASED_COMPONENT and DECL_NONADDRESSABLE_P. 5510 55112009-10-20 Eric Botcazou <ebotcazou@adacore.com> 5512 5513 * tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields 5514 without size or with size that can't be represented as a host integer. 5515 55162009-10-20 Alexandre Oliva <aoliva@redhat.com> 5517 5518 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't regard 5519 the removal of a debug stmt as a significant change. 5520 55212009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com> 5522 5523 * config/s390/s390.md: Added agen condition to operand 5524 forwarding bypasses. Added bypass for early address generation 5525 use of int results. Updated comments. 5526 55272009-10-20 Stefan Dösinger <stefan@codeweavers.com> 5528 5529 * config/i386/i386.c: Remove signal.h #include. 5530 55312009-10-20 Jie Zhang <jie.zhang@analog.com> 5532 5533 * simplify-rtx.c (simplify_const_unary_operation): Handle SS_ABS. 5534 * doc/rtl.texi: Document ss_abs. 5535 55362009-10-19 Jakub Jelinek <jakub@redhat.com> 5537 5538 * c-common.c (c_parse_error): Handle CPP_UTF8STRING. 5539 * c-lex.c (c_lex_with_flags): Likewise. Test C_LEX_STRING_NO_JOIN 5540 instead of C_LEX_RAW_STRINGS. 5541 (lex_string): Handle CPP_UTF8STRING. 5542 * c-parser.c (c_parser_postfix_expression): Likewise. 5543 * c-pragma.h (C_LEX_RAW_STRINGS): Rename to ... 5544 (C_LEX_STRING_NO_JOIN): ... this. 5545 55462009-10-19 Anatoly Sokolov <aesok@post.ru> 5547 5548 * config/cris/cris.c (cris_function_value, cris_libcall_value, 5549 cris_function_value_regno_p): New functions. 5550 (cris_promote_function_mode): Update comment. 5551 (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare. 5552 * config/cris/cris.h (FUNCTION_VALUE, LIBCALL_VALUE): Remove. 5553 (FUNCTION_VALUE_REGNO_P): Redefine, use cris_function_value_regno_p. 5554 * config/cris/cris-protos.h (cris_function_value_regno_p): Declare. 5555 55562009-10-19 Jakub Jelinek <jakub@redhat.com> 5557 5558 * unwind-dw2.c (execute_stack_op): Fix operand order for 5559 DW_OP_le, DW_OP_ge, DW_OP_lt and DW_OP_gt. 5560 55612009-10-19 Eric Botcazou <ebotcazou@adacore.com> 5562 5563 * gimple-low.c (struct lower_data): Add cannot_fallthru field. 5564 (lower_stmt) <GIMPLE_BIND>: Add comment. 5565 <GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true 5566 and return. 5567 <GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set. 5568 Otherwise lower it and set cannot_fallthru to true. 5569 <GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return. 5570 <GIMPLE_CATCH, GIMPLE_EH_FILTER>: Set cannot_fallthru to false. 5571 <GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and 5572 to true for a noreturn call. Do not remove statements. 5573 <GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false. 5574 Set cannot_fallthru to false on function exit. 5575 (gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false. 5576 <GIMPLE_ASSIGN>: Remove. 5577 55782009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5579 5580 * config/s390/s390.c (s390_z10_optimize_cmp): Don't touch FP compares. 5581 55822009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5583 5584 * config/s390/s390.c (s390_z10_optimize_cmp): Use 5585 next/prev_active_insn to skip DEBUG_INSNs as well. 5586 55872009-10-19 Joseph Myers <joseph@codesourcery.com> 5588 5589 * config/arm/arm.c (output_move_neon): Use DImode in call to 5590 adjust_address. 5591 55922009-10-19 Matthias Klose <doko@ubuntu.com> 5593 5594 PR target/40134 5595 * config.gcc (arm*-*-linux-*eabi): Use config/t-slibgcc-libgcc. 5596 55972009-10-19 Jakub Jelinek <jakub@redhat.com> 5598 5599 * cfgexpand.c (expand_debug_expr): Fail if bitpos < 0 for non-MEM op0. 5600 56012009-10-17 Andy Hutchinson <hutchinsonandy@gcc.gnu.org> 5602 5603 PR middle-end/41738 5604 * optabs.c (expand_binop): Make mode of shift count expression mode 5605 of shift count not target. 5606 Remove indent nit. 5607 56082009-10-17 Eric Botcazou <ebotcazou@adacore.com> 5609 5610 * tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New 5611 case. Force using values to replace references within the statement. 5612 (convert_local_reference_stmt): Likewise. 5613 56142009-10-17 Eric Botcazou <ebotcazou@adacore.com> 5615 5616 * gimple-low.c (lower_stmt) <GIMPLE_CALL>: If the call is noreturn, 5617 remove a subsequent GOTO or RETURN statement. 5618 56192009-10-17 Andy Hutchinson <hutchinsonandy@aim.com> 5620 5621 * config/avr.md (*movqi): Add zero as equally preferable constraint 5622 as general register. 5623 (*movhi): Ditto. 5624 56252009-10-17 Eric Botcazou <ebotcazou@adacore.com> 5626 5627 * print-tree.c (print_node): Fix string for DECL_STRUCT_FUNCTION. 5628 56292009-10-17 Richard Guenther <rguenther@suse.de> 5630 5631 * lto-streamer-in.c (lto_input_location): Try to reuse previous maps. 5632 56332009-10-17 Richard Guenther <rguenther@suse.de> 5634 5635 * lto-streamer-in.c (input_gimple_stmt): Fixup FIELD_DECL 5636 operands in COMPONENT_REFs. 5637 56382009-10-17 Anatoly Sokolov <aesok@post.ru> 5639 5640 * targhooks.c (default_libcall_value): Don't use LIBCALL_VALUE macro 5641 if not defined. Change type of second argument to const_rtx. 5642 (default_function_value): Call gcc_unreachable if FUNCTION_VALUE 5643 macro not defined. 5644 * targhooks.h (default_libcall_value): Update prototype. 5645 * target.h (struct gcc_target): Change type of second argument of 5646 libcall_value to const_rtx. 5647 * config/arm/arm.c (arm_libcall_value): Change type of second argument 5648 to const_rtx. 5649 (arm_libcall_uses_aapcs_base): Change type of argument to const_rtx. 5650 * doc/tm.texi (TARGET_LIBCALL_VALUE): Revise documentation. 5651 56522009-10-17 Jakub Jelinek <jakub@redhat.com> 5653 5654 PR debug/40521 5655 * debug.h (struct gcc_debug_hooks): Add assembly_start hook. 5656 * cgraphunit.c (cgraph_optimize): Call it. 5657 * dwarf2out.c (dwarf2out_init): Move .cfi_sections printing into... 5658 (dwarf2out_assembly_start): ... here. New hook. 5659 (dwarf2out_debug_hooks): Add dwarf2out_assembly_start. 5660 * debug.c (do_nothing_debug_hooks): Do nothing for assembly_start 5661 hook. 5662 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Likewise. 5663 * sdbout.c (sdb_debug_hooks): Likewise. 5664 * vmsdbgout.c (vmsdbg_debug_hooks): Add vmsdbgout_assembly_start. 5665 (vmsdbgout_assembly_start): New hook. 5666 56672009-10-17 Alexandre Oliva <aoliva@redhat.com> 5668 5669 * rtl.h (RTL_LOCATION): Fix typo. 5670 56712009-10-17 Alexandre Oliva <aoliva@redhat.com> 5672 5673 * print-rtl.c (print_rtx): Print locators in asm_operands 5674 and asm_input. 5675 56762009-10-17 Alexandre Oliva <aoliva@redhat.com> 5677 5678 PR debug/41535 5679 * sched-deps.c (depl_on_debug_p): New. 5680 (attach_dep_link): Reject debug deps before nondebug deps. 5681 (add_to_deps_list): Insert debug deps after nondebug deps. 5682 (sd_lists_empty_p): Stop at first nonempty list. Disregard debug 5683 deps. 5684 (sd_add_dep): Do not reject debug deps. 5685 (add_insn_mem_dependence): Don't count debug deps. 5686 (remove_from_deps): Likewise. 5687 (sched_analyze_2): Set up mem deps on debug insns. 5688 (sched_analyze_insn): Record reg uses for deps on debug insns. 5689 * haifa-sched.c (schedule_insn): Reset deferred debug insn. Don't 5690 try_ready nondebug insn after debug insn. 5691 * ddg.c (create_ddg_dep_from_intra_loop_link, 5692 create_ddg_dep_no_link): Don't reject debug deps. 5693 56942009-10-16 Richard Guenther <rguenther@suse.de> 5695 5696 * lto-symtab.c (merge_incomplete_and_complete_type): Remove. 5697 (maybe_merge_incomplete_and_complete_type): Likewise. 5698 (lto_symtab_merge): Do not call them. Do not warn for 5699 complete vs. incomplete compatible types. 5700 (lto_symtab_merge_decls_2): Simplify. 5701 * gimple.c (gimple_force_type_merge): Remove. 5702 (gimple_types_compatible_p): Make it static. 5703 * gimple.h (gimple_force_type_merge): Remove. 5704 (gimple_types_compatible_p): Likewise. 5705 57062009-10-16 Jakub Jelinek <jakub@redhat.com> 5707 5708 * dwarf2out.c (mem_loc_descriptor) <case ZERO_EXTRACT>: Cast 5709 DWARF2_ADDR_SIZE to int to avoid signed vs. unsigned warnings. 5710 57112009-10-16 Richard Guenther <rguenther@suse.de> 5712 5713 PR tree-optimization/41728 5714 * tree-ssa-dom.c (optimize_stmt): Mark the stmt modified 5715 if fold_stmt did anything. 5716 57172009-10-16 Richard Guenther <rguenther@suse.de> 5718 5719 PR lto/41715 5720 * lto-streamer-in.c (lto_input_tree_ref): Revert last change. 5721 (maybe_fixup_handled_component): New function. 5722 (input_gimple_stmt): Fixup mismatched decl replacements. 5723 57242009-10-16 Richard Guenther <rguenther@suse.de> 5725 5726 PR lto/41713 5727 * lto-streamer-out.c (lto_output_tree_ref): Handle DEBUG_EXPR_DECL 5728 the same as VAR_DECL. 5729 57302009-10-16 Richard Guenther <rguenther@suse.de> 5731 5732 * gimple.c (iterative_hash_gimple_type): For integer types 5733 also hash their minimum and maximum values and the string flag. 5734 For array types hash their domain and the string flag. 5735 57362009-10-16 Richard Guenther <rguenther@suse.de> 5737 5738 * gimple.c (gimple_types_compatible_p): Restrict completing 5739 types to record or unions. Simplify completion. 5740 Do not merge records or unions with different 5741 TYPE_STRUCTURAL_EQUALITY_P tag. 5742 (iterative_hash_gimple_type): Restrict non-recursing into 5743 pointer targets for records and unions. 5744 57452009-10-15 Jakub Jelinek <jakub@redhat.com> 5746 5747 PR debug/41717 5748 * cfgexpand.c (expand_debug_expr): Handle CONJ_EXPR. 5749 * dwarf2out.c (mem_loc_descriptor): Don't handle 5750 POST_INT/POST_DEC/POST_MODIFY like SUBREG. For SUBREG 5751 punt if it is not lowpart subreg or if inner mode isn't 5752 MODE_INT. 5753 57542009-10-16 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 5755 5756 * config/s390/s390.c (s390_z10_optimize_cmp): Skip notes when 5757 investigating previous or next insns. 5758 57592009-10-16 Eric Botcazou <ebotcazou@adacore.com> 5760 5761 * tree-sra.c (build_ref_for_offset_1): Update comment. 5762 57632009-10-16 Wolfgang Gellerich <gellerich@de.ibm.com> 5764 5765 * config/s390/s390.md (atype): Added missing values. 5766 57672009-10-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 5768 5769 PR target/41702 5770 * pa.md (casesi): Use sign extended index in call to gen_casesi64p. 5771 (casesi64p): Update pattern to reflect above. 5772 57732009-10-15 Steve Ellcey <sje@cup.hp.com> 5774 5775 PR rtl-optimization/41697 5776 * sel-sched-ir.h (_eligible_successor_edge_p): Check successor count. 5777 57782009-10-15 Michael Meissner <meissner@linux.vnet.ibm.com> 5779 5780 PR target/23983 5781 * config/rs6000/predicates.md: Update copyright year. 5782 * config/rs6000/altivec.md: Ditto. 5783 5784 * config/rs6000/t-rs6000 (TM_H): Add rs6000-builtin.def. 5785 (MD_INCLUDES): Add a2.md. 5786 5787 * config/rs6000/rs6000.c (rs6000_builtin_decls): Change 5788 RS6000_BUILTIN_COUNT to MAX_RS6000_BUILTINS. 5789 (builtin_classify): New static vector to classify various builtins 5790 to get the tree attributes correct. 5791 (def_builtin): Set the attributes of builtins based on what the 5792 builtin does (i.e. memory operation, floating point, saturation 5793 need special attributes, others are pure functions). 5794 5795 * config/rs6000/rs6000.h (enum rs6000_btc): New enum to classify 5796 the builtins. 5797 (enum rs6000_builtins): Include rs6000-builtin.def to define the 5798 builtins. Change the end marker to MAX_RS6000_BUILTINS from 5799 RS6000_BUILTIN_COUNT. 5800 (rs6000_builtin_decls): Change RS6000_BUILTIN_COUNT to 5801 MAX_RS6000_BUILTINS. 5802 5803 * config/rs6000/rs6000-builtin.def: New file that combines the 5804 builtin enumeration name and attributes. 5805 58062009-10-15 H.J. Lu <hongjiu.lu@intel.com> 5807 5808 * config/i386/linux.h (ASM_SPEC): Add --32. 5809 58102009-10-15 Jakub Jelinek <jakub@redhat.com> 5811 5812 * dwarf2out.c (dwarf_tag_name): Handle DW_TAG_rvalue_reference_type 5813 and DW_TAG_template_alias. 5814 (dwarf_attr_name): Handle DW_AT_main_subprogram, 5815 DW_AT_data_bit_offset, DW_AT_const_expr, DW_AT_enum_class, 5816 DW_AT_linkage_name, DW_AT_GNU_guarded_by, DW_AT_GNU_pt_guarded_by, 5817 DW_AT_GNU_guarded, DW_AT_GNU_pt_guarded, DW_AT_GNU_locks_excluded, 5818 DW_AT_GNU_exclusive_locks_required, DW_AT_GNU_shared_locks_required 5819 and DW_AT_GNU_odr_signature. 5820 (dwarf_form_name): Handle DW_FORM_sec_offset, DW_FORM_exprloc, 5821 DW_FORM_flag_present and DW_FORM_ref_sig8. 5822 (output_signature): Only print name on the first byte. 5823 (output_die): Likewise for dw_val_class_data8. 5824 58252009-10-15 Alexander Monakov <amonakov@ispras.ru> 5826 5827 * doc/invoke.texi: Clarify that most optimizations are not enabled 5828 without -O. 5829 58302009-10-15 Richard Guenther <rguenther@suse.de> 5831 5832 PR lto/41668 5833 * gimple.c (compare_type_names_p): Handle anonymous names 5834 differently based on new mode argument. 5835 (gimple_types_compatible_p): For structs also compare the tags. 5836 (iterative_hash_type_name): Rename to ... 5837 (iterative_hash_name): ... this. Hash all names. 5838 (iterative_hash_gimple_type): Fix hashing the struct tag of 5839 pointer targets. Hash field decl names. 5840 58412009-10-15 Richard Guenther <rguenther@suse.de> 5842 5843 PR lto/41669 5844 * gimple.c (gimple_get_alias_set): Avoid recursing on 5845 invalid type topology. 5846 58472009-10-15 Andrew Pinski <andrew_pinski@playstation.sony.com> 5848 5849 * config/spu/spu.c (get_branch_target): Use extract_asm_operands. 5850 58512009-10-15 Richard Guenther <rguenther@suse.de> 5852 5853 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT. 5854 58552009-10-15 Jakub Jelinek <jakub@redhat.com> 5856 5857 * config/rs6000/option-defaults.h (OPTION_DEFAULT_SPECS): Don't 5858 add --with-tune{,-32,-64} configured default for -mtune if explicit 5859 -mcpu is used. 5860 58612009-10-14 Daniel Gutson <dgutson@codesourcery.com> 5862 5863 * config/arm/neon.md (neon_vshll_n<mode>): Checking Bounds fixed. 5864 58652009-10-14 DJ Delorie <dj@redhat.com> 5866 5867 * config/h8300/h8300.c (F): New. 5868 (Fpa): New. 5869 (h8300_emit_stack_adjustment): Call them. 5870 (push): Likewise. 5871 (h8300_push_pop): Likewise. 5872 (h8300_expand_prologue): Likewise. 5873 * config/h8300/h8300.h (DWARF2_DEBUGGING_INFO): Define. 5874 (MUST_USE_SJLJ_EXCEPTIONS): Define. 5875 (INCOMING_RETURN_ADDR_RTX): Define. 5876 (INCOMING_FRAME_SP_OFFSET): Define. 5877 (DWARF_CIE_DATA_ALIGNMENT): Define. 5878 58792009-10-14 Jakub Jelinek <jakub@redhat.com> 5880 5881 * stor-layout.c (place_field): Don't emit -Wpadded warnings for 5882 fields in builtin structs. 5883 (finalize_record_size): Likewise. 5884 58852009-10-14 Richard Guenther <rguenther@suse.de> 5886 5887 * gimple.c (gtc_ob): New global. 5888 (struct type_pair_d): Replace pointers with type UIDs. 5889 (type_pair_hash): Adjust. 5890 (type_pair_eq): Likewise. 5891 (lookup_type_pair): Likewise. Allocate from an obstack. 5892 (gimple_force_type_merge): Adjust. 5893 (gimple_types_compatible_p): Likewise. 5894 (free_gimple_type_tables): Free the obstack. 5895 58962009-10-14 Jakub Jelinek <jakub@redhat.com> 5897 5898 * tree-parloops.c (separate_decls_in_region_debug_bind): Drop debug 5899 stmts setting DEBUG_EXPR_DECLs. 5900 5901 * cfgexpand.c (expand_debug_expr): Ignore zero-length bitfields. 5902 Don't crash if mode1 is VOIDmode. 5903 59042009-09-26 Vladimir Makarov <vmakarov@redhat.com> 5905 5906 * params.def (PARAM_IRA_LOOP_RESERVED_REGS): New. 5907 * params.h (IRA_LOOP_RESERVED_REGS): New. 5908 * tree-pass.h (pass_subregs_of_mode_init, 5909 pass_subregs_of_mode_finish): Remove. 5910 * passes.c (pass_subregs_of_mode_init, 5911 pass_subregs_of_mode_finish): Remove. 5912 (pass_reginfo_init): Move before loop optimizations. 5913 * config/i386/i386.h (STACK_REG_COVER_CLASS): Define. 5914 * common.opt (fira-loop-pressure): New. 5915 * toplev.h (flag_ira_loop_pressure): New. 5916 * rtl.h (init_subregs_of_mode, finish_subregs_of_mode): New externals. 5917 * reginfo.c (init_subregs_of_mode, finish_subregs_of_mode): 5918 Make external and void type functions. 5919 (gate_subregs_of_mode_init, pass_subregs_of_mode_init, 5920 pass_subregs_of_mode_finish): Remove. 5921 * ira-costs.c (init_costs): Call init_subregs_of_mode. 5922 * regmove.c: Include ira.h. 5923 (regmove_optimize): Call ira_set_pseudo_classes after IRA based 5924 register pressure calculation in loops. 5925 * loop-invariant.c: Include REGS_H and ira.h. 5926 (struct loop_data): New members max_reg_pressure, regs_ref, and 5927 regs_live. 5928 (struct invariant): New member orig_regno. 5929 (curr_loop): New variable. 5930 (find_exits): Initialize regs_ref and regs_live. 5931 (create_new_invariant): Initialize orig_regno. 5932 (get_cover_class_and_nregs): New. 5933 (get_inv_cost): Make aregs_needed an array. Use regs_needed as an 5934 array. Add code for flag_ira_loop_pressure. 5935 (gain_for_invariant): Make new_regs an array. Add code for 5936 flag_ira_loop_pressure. 5937 (best_gain_for_invariant): Ditto. 5938 (set_move_mark): New parameter gain. Use it for debugging output. 5939 (find_invariants_to_move): Make regs_needed and new_regs an array. 5940 Add code for flag_ira_loop_pressure. 5941 (move_invariant_reg): Set up orig_regno. 5942 (move_invariants): Set up reg classes for pseudos for 5943 flag_ira_loop_pressure. 5944 (free_loop_data): Clear regs_ref and regs_live. 5945 (curr_regs_live, curr_reg_pressure, regs_set, n_regs_set, 5946 get_regno_cover_class, change_pressure, mark_regno_live, 5947 mark_regno_death, mark_reg_store, mark_reg_clobber, 5948 mark_reg_death, mark_ref_regs, calculate_loop_reg_pressure): New. 5949 (move_loop_invariants): Calculate pressure. Initialize curr_loop. 5950 * ira.c (ira): Call ira_set_pseudo_classes after IRA based 5951 register pressure calculation in loops if new regs were added. 5952 Call finish_subregs_of_mode. 5953 * opts.c (decode_options): Set up flag_ira_loop_pressure. 5954 * Makefile.in (loop-invariant.o): Add ira.h. 5955 (regmove.o): Ditto. 5956 * doc/invoke.texi (-fira-loop-pressure, ira-loop-reserved-regs): 5957 Describe. 5958 * doc/tm.texi (STACK_REG_COVER_CLASS): Describe. 5959 59602009-10-14 Richard Guenther <rguenther@suse.de> 5961 5962 * lto-symtab.c (lto_symtab_compatible): Fold in ... 5963 (lto_symtab_merge): ... here. Rewrite both to take the 5964 prevailing and a to-be-merged entry and to queue diagnostics properly. 5965 (lto_symtab_resolve_replaceable_p): New predicate for 5966 symbol resolution. 5967 (lto_symtab_resolve_can_prevail_p): Likewise. 5968 (lto_symtab_resolve_symbols): Rewrite. Fold in code that 5969 handles merging commons by choosing the largest decl. Fold 5970 in code that gives ODR errors. 5971 (lto_symtab_merge_decls_2): Simplify a lot. Emit queued 5972 diagnostics here. 5973 (lto_symtab_merge_decls_1): Re-structure. Deal with the 5974 case of no prevailing decl here. Diagnose mismatches 5975 in object types here. Drop all but the prevailing decls. 5976 (lto_symtab_prevailing_decl): Return the single prevailing decl. 5977 * lto-streamer-in.c (lto_input_tree_ref): Deal with 5978 VIEW_CONVERT_EXPRs in decl slots. Unshare the tree in this case. 5979 59802009-10-14 Richard Guenther <rguenther@suse.de> 5981 5982 PR lto/41521 5983 * lto-streamer-in.c (input_bb): Replace debug stmts with 5984 nops instead of dropping them. 5985 59862009-10-14 Nick Clifton <nickc@redhat.com> 5987 5988 * gcc/doc/extended.texi: Replace the dash character with @minus{} 5989 in situations where it is being used as a minus symbol. 5990 * gcc/doc/tm.texi: Likewise. 5991 * gcc/doc/md.texi: Likewise. 5992 59932009-10-14 Jakub Jelinek <jakub@redhat.com> 5994 5995 PR preprocessor/41543 5996 * input.h (BUILTINS_LOCATION): Change to 1 from 2. 5997 Assert BUILTINS_LOCATION < RESERVED_LOCATION_COUNT. 5998 * tree.c: Include intl.h. 5999 (expand_location): Handle BUILTINS_LOCATION. 6000 * Makefile.in (tree.o): Depend on intl.h. 6001 6002 PR debug/41695 6003 * dwarf2out.c (dwarf2out_var_location): Always clear 6004 last_postcall_label when changing last_label. 6005 60062009-10-14 Pascal Obry <obry@adacore.com> 6007 6008 * gcc.c (DEFAULT_SWITCH_CURTAILS_COMPILATION): Add -E. 6009 (process_command): Handle -E as done with -c and -S. Do not add 6010 the target executable suffix to the output file when -E is used. 6011 (main): Adjust error message accordingly. 6012 60132009-10-14 Alexandre Oliva <aoliva@redhat.com> 6014 6015 PR debug/41343 6016 PR debug/41447 6017 PR debug/41264 6018 PR debug/41338 6019 * tree.c (tree_node_structure_for_code): DEBUG_EXPR_DECL uses 6020 decl with rtl. 6021 (tree_code_size): Likewise. 6022 60232009-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6024 6025 * builtins.c (fold_builtin_1): Support complex "arc" functions. 6026 * real.h (HAVE_mpc_arc): Define. 6027 60282009-10-14 Kaz Kojima <kkojima@gcc.gnu.org> 6029 6030 * config/sh/sh.c (TARGET_BUILTIN_DECL): Define. 6031 (struct builtin_description): Add fndecl field. 6032 (bdesc): Remove const qualifier. Update initializer. 6033 (sh_media_init_builtins): Remove const qualifier for d. Record 6034 the result of add_builtin_function to the fndecl field. 6035 (sh_builtin_decl): New. 6036 (sh_media_builtin_decl): New. 6037 60382009-10-14 Hans-Peter Nilsson <hp@axis.com> 6039 6040 PR target/38948 6041 * config/cris/cris.h (SECONDARY_RELOAD_CLASS): Handle reload 6042 requests between special registers. 6043 60442009-10-13 Eric Botcazou <ebotcazou@adacore.com> 6045 6046 * dwarf2out.c (mem_loc_descriptor): Accept UNGT as well. 6047 60482009-10-13 Richard Henderson <rth@redhat.com> 6049 6050 PR tree-optimization/41377 6051 * tree-eh.c (unsplit_eh): Propagate degenerate PHIs. 6052 (cleanup_empty_eh_merge_phis): New change_region parameter; 6053 pass it on to redirect_eh_edge_1. Update callers. 6054 (cleanup_empty_eh_unsplit): Don't require an existing EH label 6055 at the destination block. 6056 60572009-10-13 Basile Starynkevitch <basile@starynkevitch.net> 6058 6059 * passes.c (register_pass): Replaced gcc_unreachable by 6060 fatal_error on failure. Mentions plugins in comments & messages. 6061 60622009-10-13 Jakub Jelinek <jakub@redhat.com> 6063 6064 PR target/41693 6065 * rtl.h (DEBUG_EXPR_TREE_DECL): Define. 6066 * sched-vis.c (print_value): Use it. 6067 * cselib.c (cselib_hash_rtx): Likewise. 6068 * print-rtl.c (print_rtx): Likewise. 6069 * cfgexpand.c (expand_debug_rtx): Likewise. 6070 * var-tracking.c (vt_expand_loc_callback): Likewise. 6071 60722009-10-13 Richard Guenther <rguenther@suse.de> 6073 6074 PR lto/41565 6075 * opts.c (handle_option): Split out code to handle setting 6076 the options flag var ... 6077 (set_option): ... here. 6078 * opts.h (set_option): Declare. 6079 * lto-opts.c (register_user_option_p): Include -fexceptions 6080 and all position independent code variants. 6081 (handle_common_option): Remove. 6082 (lto_reissue_options): Use set_option. 6083 60842009-10-13 Martin Jambor <mjambor@suse.cz> 6085 6086 PR tree-optimization/41661 6087 * ipa-prop.c (compute_complex_pass_through): Allow only operations 6088 that are tcc_comparisons or do not change the type in any 6089 un-usleless way. 6090 * ipa-cp.c (ipcp_lattice_from_jfunc): Request boolean type when 6091 folding tcc_comparison operations. 6092 60932009-10-13 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6094 6095 * config/s390/s390.c (s390_encode_section_info): Handle BLKmode 6096 properly. 6097 60982009-10-12 Alexandre Oliva <aoliva@redhat.com> 6099 6100 PR debug/41343 6101 PR debug/41447 6102 PR debug/41264 6103 PR debug/41338 6104 * tree.def (DEBUG_EXPR_DECL): New. 6105 * rtl.def (DEBUG_EXPR): New. 6106 * gengtype.c (adjust_field_rtx_def): Handle it. 6107 * tree-ssa.c (propagate_var_def_into_debug_stmts): Rename to... 6108 (insert_debug_temp_for_var_def): ... this. Drop support for 6109 moving. Take iterator for def stmt; insert debug stmt before it. 6110 Scan early for use count and kind in debug stmts. 6111 (propagate_defs_into_debug_stmts): Rename to... 6112 (insert_debug_temps_for_defs): ... this. Likewise. 6113 * tree.h (DEBUG_TEMP_UID): New. 6114 * tree.c (next_debug_decl_uid): New. 6115 (make_node_stat): Count debug decls separately. 6116 (copy_node_stat): Likewise. 6117 * cfgexpand.c (expand_debug_expr): Handle DEBUG_EXPR_DECL. 6118 * var-tracking.c (dv_is_decl_p): Recognize it. 6119 (VALUE_RECURSED_INTO): Apply to DEBUG_EXPRs too. 6120 (track_expr_p): Track expanded DEBUG_EXPR_DECLs. 6121 (vt_expand_loc_callback): Expand DEBUG_EXPRs. 6122 (emit_note_insn_var_location): Don't emit notes for DEBUG_EXPR_DECLs. 6123 * cselib.c (rtx_equal_for_cselib_p): Handle DEBUG_EXPR. 6124 (cselib_hash_rtx): Likewise. 6125 (cselib_expand_value_rtx_1): Use callback for DEBUG_EXPR. 6126 * tree-ssa-operands.c (get_expr_operands): Skip DEBUG_EXPR_DECLs in 6127 debug bind stmts. 6128 * emit-rtl.c (verify_rtx_sharing): Handle DEBUG_EXPR and VALUE. 6129 (copy_rtx_if_shared_1, reset_used_flags, set_used_flags): Likewise. 6130 * rtl.c (copy_rtx): Likewise. 6131 (rtx_equal_p_cb, rtx_equal_p): Handle DEBUG_EXPR. 6132 * print-rtl.c (print_rtx): Likewise. 6133 * sched-vis.c (print_value): Likewise. 6134 (print_insn): Handle DEBUG_EXPR_DECL. 6135 * tree-dump.c (dequeue_and_dump): Likewise. 6136 * tree-pretty-print.c (dump_decl_name, dump_generic_node): Likewise. 6137 * gimple-iterator (gsi_replace): Check for same lhs. 6138 (gsi_remove): Insert debug temps. 6139 * tree-ssa-loop-im.c (rewrite_reciprocal): Replace with same lhs. 6140 (move_computations_stmt): Drop explicit propagation into debug stmts. 6141 (rewrite_bittest): Likewise. Use gsi_remove for propagation. 6142 * tree-ssa-reassoc.c (rewrite_expr_tree, linearize_expr): Likewise. 6143 * tree-ssa-sink.c (statement_sink_location): Likewise. 6144 * tree-ssa-forwprop (forward_propagate_addr_expr): Likewise. 6145 * tree-ssanames.c (release_ssa_name): Adjust for rename. 6146 * tree-flow.h: Likewise. 6147 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Don't mark 6148 debug temps without values. 6149 (eliminate_unnecessary_stmts): Don't discard just-inserted 6150 debug stmts. 6151 61522009-10-12 Hans-Peter Nilsson <hp@axis.com> 6153 6154 PR target/26515 6155 * config/cris/cris.md (andu): Check that operand 1 is one of the 6156 general registers. Fix typo in head comment. 6157 61582009-10-12 Stefan Dösinger <stefan@codeweavers.com> 6159 6160 * config/i386/i386.md (vswapmov): New. 6161 * config/i386/i386.c (ix86_handle_fndecl_attribute): New. 6162 (ix86_function_ms_hook_prologue): New. 6163 (ix86_expand_prologue): Handle ms_hook_prologue attribute. 6164 * configure.ac: Test for swap suffix support in as. 6165 * configure: Rebuild. 6166 61672009-10-12 Jakub Jelinek <jakub@redhat.com> 6168 6169 PR target/41680 6170 * config/i386/i386.md (split after *testqi_ext_3_rex64): Only narrow 6171 paradoxical subregs to prevent partial register stalls if the inner 6172 mode is integer mode. 6173 61742009-10-12 Uros Bizjak <ubizjak@gmail.com> 6175 6176 * config/i386/i386.md (*setcc_<mode>_2): Remove insn pattern. 6177 61782009-10-12 Dodji Seketeli <dodji@redhat.com> 6179 6180 PR c++/41570 6181 * gcc/dwarf2out.c (template_parameter_pack_die, 6182 gen_formal_parameter_pack_die): Use add_name_and_src_coords_attributes. 6183 61842009-10-12 Alexandre Oliva <aoliva@redhat.com> 6185 6186 PR debug/41616 6187 * tree-into-ssa.c (insert_phi_nodes_for): Build debug bind stmts 6188 on updates too. 6189 (maybe_register_def): Likewise. Take stmt iterator. 6190 (rewrite_update_stmt): Take stmt iterator and pass it on. 6191 (rewrite_update_enter_block): Pass stmt iterator. 6192 61932009-10-11 Andrew Pinski <andrew_pinski@playstation.sony.com> 6194 6195 * config/spu/spu.c (TARGET_BUILTIN_DECL): Define. 6196 (spu_builtin_decl): New function. 6197 61982009-10-12 Uros Bizjak <ubizjak@gmail.com> 6199 6200 * config/i386/i386.md (SWIM): New mode iterator. 6201 (mov<mode>cc): Macroize expander from mov{qi,hi,si,di}cc patterns 6202 using SWIM mode iterator. 6203 (x86_mov<mode>cc_0_m1): Macroize insn from x86_mov{si,di}cc_0_m1 6204 patterns using SWI48 mode iterator. 6205 (*x86_mov<mode>cc_0_m1_se): Macroize insn from 6206 *x86_mov{si,di}cc_0_m1_se patterns using SWI48 mode iterator. 6207 (*x86_mov<mode>cc_0_m1_neg): New insn pattern. 6208 (*mov<mode>cc_noc): Macroize insn from *mov{hi,si,di}cc_noc 6209 patterns using SWI248 mode iterator. 6210 * config/i386/i386.c (ix86_expand_int_movcc): Update the call to 6211 gen_x86_movdicc_0_m1_rex64 for renamed function 6212 62132009-10-11 Jose Ruiz <ruiz@adacore.com> 6214 Eric Botcazou <ebotcazou@adacore.com> 6215 6216 PR target/33743 6217 * config/sparc/sol2.h (MD_UNWIND_SUPPORT): Define. 6218 * config/sparc/sol2-unwind.h: New file. 6219 62202009-10-11 Olivier Hainque <hainque@adacore.com> 6221 Eric Botcazou <ebotcazou@adacore.com> 6222 6223 PR target/33743 6224 * config/i386/sol2.h (MD_UNWIND_SUPPORT): Define. 6225 * config/i386/sol2-unwind.h: New file. 6226 62272009-10-11 H.J. Lu <hongjiu.lu@intel.com> 6228 6229 PR target/41665 6230 * config/i386/i386.md (addsi_1_zext): Get the proper second 6231 operand for lea. 6232 62332009-10-11 Richard Sandiford <rdsandiford@googlemail.com> 6234 6235 * simplify-rtx.c (simplify_replace_rtx): Use rtx_equal_p for 6236 all OLD_RTXes, not just REGs. Use copy_rtx to create the 6237 replacement value. 6238 62392009-10-11 Richard Guenther <rguenther@suse.de> 6240 6241 * gimple.c (iterative_hash_type_name): Do not handle special 6242 anonymous names. 6243 62442009-10-11 Uros Bizjak <ubizjak@gmail.com> 6245 6246 * config/i386/i386.md (*setcc_di_1): New insn_and_split pattern. 6247 (*setcc_si_1_and): Ditto. 6248 (*setcc_si_1_movzbl): Ditto. 6249 (*setcc_<mode>_2): Ditto. 6250 (*setcc_qi): Rename from *setcc_1. 6251 (*setcc_qi_slp): Rename from *setcc_2. 6252 6253 (*zero_extendqihi2_movzbw_and splitter): Use ix86_expand_clear. 6254 (*zero_extendqisi2_movzbw_and splitter): Ditto. 6255 6256 * config/i386/i386.c (ix86_expand_clear): Remove reload_completed from 6257 "if" condition, there is already assert with reload_completed present. 6258 62592009-10-11 Gerald Pfeifer <gerald@pfeifer.com> 6260 6261 * plugin.c (try_init_one_plugin): Improve constness of variable err. 6262 62632009-10-10 Gerald Pfeifer <gerald@pfeifer.com> 6264 6265 * doc/install.texi (Final install): Refer to 6266 http://gcc.gnu.org/bugs/ for bug reporting. 6267 62682009-10-10 Peter Bergner <bergner@vnet.ibm.com> 6269 6270 * configure.ac: Add test for dci instruction. 6271 * configure: Regenerate. 6272 * config.in: Likewise. 6273 * config.gcc: Handle --with-cpu=476 and --with-cpu=476fp. 6274 * doc/invoke.texi: Add cpu_type 476 and 476fp. 6275 (-mmulhw): Add 476 to description. 6276 (-mdlmzb): Likewise. 6277 * config/rs6000/t-fprules (MULTILIB_MATCHES_FLOAT): Include -mcpu=476. 6278 * config/rs6000/rs6000.c (processor_costs): Add ppc476_cost. 6279 (processor_target_table): Add 476 and 476fp entries. 6280 (rs6000_override_options): Use ppc476_cost for PROCESSOR_PPC476. 6281 (rs6000_issue_rate): Add CPU_PPC476. 6282 * config/rs6000/rs6000.h (ASM_CPU_476_SPEC): Define. 6283 (ASM_CPU_SPEC): Pass %(asm_cpu_476) for -mcpu=476 and -mcpu=476fp. 6284 (processor_type): Add PROCESSOR_PPC476. 6285 (EXTRA_SPECS): Add asm_cpu_476 string. 6286 * config/rs6000/rs6000.md (define_attr "type"): Add isel attribute. 6287 (define_attr "cpu"): Add ppc476. 6288 Include 476.md. 6289 Update comments for 476. 6290 (isel_signed, isel_unsigned): Change to use "isel" type attribute. 6291 * config/rs6000/vxworks.h (CPP_SPEC): Handle 464 and 476. 6292 Update copyright year. 6293 * config/rs6000/476.md: New file. 6294 * config/rs6000/40x.md: Add description for "isel" attribute. 6295 Update copyright year. 6296 * config/rs6000/440.md: Likewise. 6297 * config/rs6000/603.md: Likewise. 6298 * config/rs6000/6xx.md: Likewise. 6299 * config/rs6000/7450.md: Likewise. 6300 * config/rs6000/7xx.md: Likewise. 6301 * config/rs6000/8540.md: Likewise. 6302 * config/rs6000/cell.md: Likewise. 6303 * config/rs6000/e300c2c3.md: Likewise. 6304 * config/rs6000/e500mc.md: Likewise. 6305 * config/rs6000/mpc.md: Likewise. 6306 * config/rs6000/power4.md: Likewise. 6307 * config/rs6000/power5.md: Likewise. 6308 * config/rs6000/power6.md: Likewise. 6309 * config/rs6000/power7.md: Likewise. 6310 * config/rs6000/rios1.md: Likewise. 6311 * config/rs6000/rios2.md: Likewise. 6312 * config/rs6000/rs64.md: Likewise. 6313 63142009-10-10 Richard Guenther <rguenther@suse.de> 6315 6316 PR tree-optimization/41654 6317 * tree-ssa-ifcombine.c (ifcombine_ifandif): Properly canonicalize 6318 a cond expr before calling gimple_cond_set_condition_from_tree. 6319 (ifcombine_iforif): Likewise. 6320 63212009-10-09 Ian Lance Taylor <iant@google.com> 6322 6323 * configure.ac: Use AC_SEARCH_LIBS to find dlopen. 6324 * configure: Rebuild. 6325 63262009-10-09 Neil Vachharajani <nvachhar@google.com> 6327 6328 * doc/cpp.texi (Other Directives): Do not list #ident and #sccs as 6329 deprecated. 6330 63312009-10-09 Richard Guenther <rguenther@suse.de> 6332 6333 PR lto/41638 6334 * target-def.h (TARGET_BUILTIN_DECL): Define. 6335 (TARGET_INITIALIZER): Add TARGET_BUILTIN_DECL. 6336 * target.h (struct gcc_target): Add builtin_decl target hook. 6337 * doc/tm.texi (TARGET_BUILTIN_DECL): Document. 6338 * lto-streamer-in.c (lto_get_builtin_tree): Fix handling of 6339 target builtins. 6340 * lto-streamer-out.c (lto_output_tree_pointers): Use sorry, 6341 not gcc_unreachable. 6342 (lto_output_builtin_tree): Sorry if the target does not support 6343 streaming target builtins. 6344 * config/rs6000/rs6000.c (TARGET_BUILTIN_DECL): Define. 6345 (rs6000_builtin_decl): New function. 6346 * config/i386/i386.c (TARGET_BUILTIN_DECL): Define. 6347 (ix86_builtin_decl): New function. 6348 63492009-10-09 Jakub Jelinek <jakub@redhat.com> 6350 6351 PR preprocessor/41445 6352 * c-ppoutput.c (do_line_change): New function. 6353 (cb_line_change): Use it. 6354 (scan_translation_unit): Call do_line_change if 6355 avoid_paste or PREV_WHITE and token location is on a different line 6356 than print.src_line. 6357 6358 PR debug/40521 6359 * dwarf2out.c (dwarf2out_init): Test whether 6360 HAVE_GAS_CFI_SECTIONS_DIRECTIVE is non-zero instead of checking 6361 it is defined. 6362 6363 PR rtl-optimization/41646 6364 * calls.c (expand_call): For BLKmode types returned in registers 6365 avoid likely spilled hard regs in copy_blkmode_from_reg generated 6366 insns. 6367 63682009-10-09 Richard Guenther <rguenther@suse.de> 6369 6370 PR tree-optimization/41634 6371 * tree-ssa-dom.c (remove_local_expressions_from_table): Assert 6372 we remove the correct elements. 6373 (optimize_stmt): Make sure to update stmt operands before 6374 optimizing redundancies. 6375 63762009-10-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6377 6378 * config/s390/s390.md ("prefetch"): Remove stcmh for prefetching. 6379 63802009-10-09 Richard Guenther <rguenther@suse.de> 6381 6382 PR driver/41637 6383 * lto-wrapper.c (ltrans_output_file, flto_out, args_name): New 6384 globals. 6385 (lto_wrapper_exit): New function. 6386 (fatal): Use it. 6387 (fatal_perror): Likewise. 6388 (fork_execute): Use global args_name, do not free it. 6389 (run_gcc): Use global ltrans_output_file, flto_out, do not free them. 6390 * lto-streamer.h: Remove duplicate prototypes. 6391 63922009-10-09 Richard Guenther <rguenther@suse.de> 6393 6394 * cgraph.c (cgraph_create_edge): Check for NULL call_stmt 6395 before calling stmt_can_throw_external. 6396 63972009-10-09 Eric Botcazou <ebotcazou@adacore.com> 6398 6399 PR tree-optimization/40071 6400 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Build a ref-all 6401 pointer if the original data reference doesn't conflict with the 6402 created vector data reference. Fix long line. 6403 64042009-10-09 Uros Bizjak <ubizjak@gmail.com> 6405 6406 * config/i386/i386.md (any_div): New code iterator. 6407 (u): Handle div and udiv. 6408 (sgnprefix): Ditto. 6409 (<u>divqi3): Macroize insn from {,u}divqi3 using any_div 6410 code iterator. 6411 (lfloor<MODEF:mode><SWI48:mode>2): Macroize insn from 6412 lfloor<mode>{si,di}2 patterns using SWI48 mode iterator. 6413 (lceil<MODEF:mode><SWI48:mode>2): Macroize insn from 6414 lceil<mode>{si,di}2 patterns using SWI48 mode iterator. 6415 64162009-10-08 Joseph Myers <joseph@codesourcery.com> 6417 6418 * gcc.c (main): Remove trailing "." from diagnostics. 6419 64202009-10-08 Cary Coutant <ccoutant@google.com> 6421 6422 Add support for debugging with ICF (Identical Code Folding). 6423 * calls.c (debug.h): New #include. 6424 (emit_call_1): Call virtual_call_token debug hook. 6425 * common.opt (-fenable-icf-debug): New option. 6426 * dwarf2out.c (dwarf2_debug_hooks): Add entries for new hooks (two 6427 locations in the source). 6428 (poc_label_num): New variable. 6429 (dcall_entry, vcall_entry): New typedefs. 6430 (dcall_table, vcall_table): New variables. 6431 (struct vcall_insn): New type. 6432 (vcall_insn_table): New variable. 6433 (DEBUG_DCALL_SECTION, DEBUG_VCALL_SECTION): New macros. 6434 (size_of_dcall_table): New function. 6435 (output_dcall_table): New function. 6436 (size_of_vcall_table): New function. 6437 (output_vcall_table): New function. 6438 (dwarf2out_direct_call): New function. 6439 (vcall_insn_table_hash): New function. 6440 (vcall_insn_table_eq): New function. 6441 (dwarf2out_virtual_call_token): New function. 6442 (dwarf2out_virtual_call): New function. 6443 (dwarf2out_init): Allocate new tables and sections. 6444 (prune_unused_types): Mark DIEs referenced from direct call table. 6445 (dwarf2out_finish): Output direct and virtual call tables. 6446 * final.c (final_scan_insn): Call direct_call and virtual_call 6447 debug hooks. 6448 * debug.h (struct gcc_debug_hooks): Add direct_call, 6449 virtual_call_token, virtual_call hooks. 6450 (debug_nothing_uid): New function. 6451 * debug.c (do_nothing_debug_hooks): Add dummy entries for new hooks. 6452 (debug_nothing_uid): New function. 6453 * dbxout.c (dbx_debug_hooks): Add dummy entries for new hooks. 6454 (xcoff_debug_hooks): Likewise. 6455 * sdbout.c (sdb_debug_hooks): Likewise. 6456 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 6457 * doc/invoke.texi (-fenable-icf-debug): New option. 6458 64592009-10-08 Alexandre Oliva <aoliva@redhat.com> 6460 6461 PR debug/41353 6462 * regmove.c (regmove_backward_pass): Replace src with dst in the 6463 debug insn, and check for dst before rather than after. 6464 64652009-10-08 Janis Johnson <janis187@us.ibm.com> 6466 6467 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Remove. 6468 (TARGET_DELEGITIMIZE_ADDRESS): Likewise. 6469 64702009-10-08 Jan Hubicka <jh@suse.cz> 6471 6472 PR middle-end/41626 6473 * cgraphbuild.c (record_reference): When parameter DATA is NULL, 6474 do not mark cgraph nodes as needed. 6475 (record_references_in_initializer): Add new only_vars parameter. 6476 * cgraph.h (record_references_in_initializer): New parameter. 6477 * varasm.c (assemble_variable): Update call. 6478 * varpool.c (varpool_analyze_pending_decls): Always look for 6479 referenced vars. 6480 64812009-10-08 Anatoly Sokolov <aesok@post.ru> 6482 6483 * config/avr/avr.c (last_insn_address) Remove variable. 6484 (expand_prologue): Don't initialise last_insn_address variable. 6485 (final_prescan_insn): Don't output insn size. 6486 * config/avr/avr.opt (msize): Remove switch. 6487 * doc/invoke.texi (AVR Options): Remove documentation of -msize 6488 switch. 6489 64902009-10-08 Adam Nemet <anemet@caviumnetworks.com> 6491 6492 * combine.c (label_tick_ebb_start): Fix comment. 6493 (combine_instructions): Set label_tick and label_tick_ebb_start before 6494 calling setup_incoming_promotions. Start them from 1. Increment 6495 label_tick instead of deriving it from the BB index. Rather than 6496 comparing ticks use the block from the previous iteration to decide 6497 whether to start a new EBB. Remove empty lines before function. 6498 64992009-10-08 Michael Matz <matz@suse.de> 6500 6501 PR middle-end/41573 6502 * builtins.c (fold_builtin_isascii): Use fold_build2. 6503 (fold_builtin_isdigit): Ditto. 6504 * except.c (duplicate_eh_regions_1): Tolerate NULL labels. 6505 * tree-cfg.c (struct rus_data, remove_useless_stmts_warn_notreached, 6506 remove_useless_stmts_cond, remove_useless_stmts_tf, 6507 remove_useless_stmts_tc, remove_useless_stmts_bind, 6508 remove_useless_stmts_goto, remove_useless_stmts_label, 6509 remove_useless_stmts_1, remove_useless_stmts, 6510 pass_remove_useless_stmts): Remove. 6511 * tree-pass.h (pass_remove_useless_stmts): Don't declare. 6512 * passes.c (init_optimization_passes): Don't add 6513 pass_remove_useless_stmts. 6514 * tree-eh.c (lower_eh_constructs_2): Handle empty cleanups. 6515 * tree.c (free_lang_data_in_decl): Don't clear DECL_INITIAL of 6516 static constants. 6517 * lto-symtab.c (lto_symtab_register_decl): Accepts DECL_INITIAL 6518 for static constants. 6519 * lto-streamer-out.c (output_gimple_stmt): Handle GIMPLE_NOP. 6520 * lto-streamer-in.c (input_gimple_stmt): Handle GIMPLE_NOP. 6521 65222009-10-08 Richard Guenther <rguenther@suse.de> 6523 6524 * gimple.c (free_gimple_type_tables): New function. 6525 * gimple.h (free_gimple_type_tables): Declare. 6526 65272009-10-07 Mark Heffernan <meheff@google.com> 6528 6529 * ipa-prop.c (ipa_print_node_params) Only print 6530 names of named arguments. 6531 65322009-10-08 Rafael Avila de Espindola <espindola@google.com> 6533 6534 * gcc.c (LINK_COMMAND_SPEC): Pass libc with -pass-through if it is 6535 being statically linked. 6536 65372009-10-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6538 6539 * collect2.c (add_lto_object): Only define if OBJECT_FORMAT_NONE. 6540 65412009-10-08 Jan Hubicka <jh@suse.cz> 6542 6543 PR bootstrap/41620 6544 * ipa.c (cgraph_externally_visible_p, 6545 function_and_variable_visibility, 6546 whole_program_function_and_variable_visibility): Skip non-finalized 6547 nodes. 6548 65492009-10-08 Nick Clifton <nickc@redhat.com> 6550 6551 * config/mn10300/mn10300.h (CONSTANT_ADDRESS_P): Do not allow 6552 CONST_DOUBLEs. 6553 65542009-10-08 Andreas Tobler <a.tobler@schweiz.org> 6555 6556 PR bootstrap/37739 6557 * config.host: Use config/x-cflags-O1 for powerpc FreeBSD. 6558 65592009-10-07 Joseph Myers <joseph@codesourcery.com> 6560 6561 PR c/41182 6562 * c-common.c (c_fully_fold_internal): Strip nops from the result 6563 of recursive calls to c_fully_fold_internal. 6564 (c_wrap_maybe_const): New. 6565 (c_save_expr): Use c_wrap_maybe_const. 6566 * c-common.h (c_wrap_maybe_const): Declare. 6567 * c-typeck.c (build_conditional_expr, c_finish_stmt_expr, 6568 build_binary_op): Use c_wrap_maybe_const. 6569 65702009-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 6571 6572 * real.c: Fix comment to reflect actual exponent size. 6573 65742009-10-08 Ben Elliston <bje@au.ibm.com> 6575 6576 * config/rs6000/a2.md: Add FSF comment header. 6577 65782009-10-07 Uros Bizjak <ubizjak@gmail.com> 6579 6580 * config/i386/i386.md (any_extend): New code iterator. 6581 (u, s): New code attributes. 6582 (sgnprefix): Ditto. 6583 (DWIH): Rewrite as code iterator for SI and DI modes. 6584 (DWI): Rewrite as mode attribute. 6585 (dwi): New mode attribute. 6586 (di): Depend on SI mode and DI mode. 6587 (doubleint_general_operand): Remove mode attribute. 6588 6589 (*lea_1): Macroize insn from *lea_1_rex64 and *lea_1 patterns using 6590 DWIH mode iterator. 6591 6592 (*add<mode>3_doubleword): Use DWIH as the base mode iterator. 6593 (*sub<mode>3_doubleword): Ditto. 6594 6595 (mul<mode>3): Macroize expander from mul{hi,si,di}3 patterns 6596 using SWIM248 mode iterator. 6597 (*mul<mode>3_1): Macroize insn from mul{si,di}3_1 patterns 6598 using SWI48 mode iterator. 6599 (<u>mul<mode><dwi>3): Macroize expander from {,u}mul{sidi,diti}3 6600 patterns using DWIH mode iterator and any_extend code iterator. 6601 (<u>mulqihi3): Macroize expander from {,u}mulqihi3 patterns 6602 using any_extend code iterator. 6603 (*<u>mul<mode><dwi>3_1): Macroize insn from {,u}mul{sidi,diti}3_1 6604 patterns using DWIH mode iterator and any_extend code iterator. 6605 (*<u>mulqihi3_1): Macroize insn from {,u}mulqihi3_1 patterns 6606 using any_extend code iterator. 6607 (<s>mul<mode>3_highpart): Macroize expander from 6608 {s,u}mul{si,di}3_highpart patterns using DWIH mode iterator 6609 and any_extend code iterator. 6610 (*<s>muldi3_highpart_1): Macroize insn from 6611 *{s,u}muldi3_highpart_rex64 patterns using any_extend code iterator. 6612 (*<s>mulsi3_highpart_1): Macroize insn from *{s,u}mulsi3_highpart_1 6613 patterns using any_extend code iterator. 6614 (*<s>mulsi3_highpart_zext): Macroize insn from 6615 *{s,u}mulsi3_highpart_zext patterns using any_extend code iterator. 6616 66172009-10-07 Jakub Jelinek <jakub@redhat.com> 6618 6619 * dwarf2out.c (tree_add_const_value_attribute_for_decl): Don't add 6620 DW_AT_const_value if VAR_DIE already has DW_AT_abstract_origin 6621 refering to a DIE with DW_AT_const_value. 6622 66232009-10-07 Vladimir Makarov <vmakarov@redhat.com> 6624 6625 PR middle-end/22072 6626 * ira-lives.c (check_and_make_def_conflict): Process all operands. 6627 66282009-10-06 Jan Hubicka <jh@suse.cz> 6629 6630 * cgraph.c (cgraph_node_can_be_local): Handle externally visible nodes 6631 correctly. 6632 66332009-10-06 Uros Bizjak <ubizjak@gmail.com> 6634 6635 * config/i386/i386.md (*lea_1_rex64, *lea_1, *lea_1_zext, 6636 *lea_2_rex64): Move before *add<mode>_1 pattern. 6637 66382009-10-07 Jan Hubicka <jh@suse.cz> 6639 6640 * collect2.c (main): Add -fno-whole-program. 6641 * gcc.c (set_collect_gcc_options): Do not remove whole program here. 6642 66432009-10-07 Jan Hubicka <jh@suse.cz> 6644 6645 * lto-symtab.c (lto_cgraph_replace_node): Assert that inline clones 6646 has no address taken. 6647 * cgraph.c (cgraph_mark_needed_node): Assert that inline clones are 6648 never needed. 6649 (cgraph_clone_node): Clear externally_visible flag for clones. 6650 * cgraph.h (cgraph_only_called_directly_p, 6651 cgraph_can_remove_if_no_direct_calls_p): New predicates. 6652 * tree-pass.h (pass_ipa_whole_program_visibility): Declare. 6653 * ipa-cp.c (ipcp_cloning_candidate_p): Use new predicate. 6654 (ipcp_initialize_node_lattices, ipcp_estimate_growth, 6655 ipcp_insert_stage): Likwise. 6656 * cgraphunit.c (cgraph_decide_is_function_needed): Do not compute 6657 externally_visible flag. 6658 (verify_cgraph_node): Verify that inline clones look right. 6659 (process_function_and_variable_attributes): Do not set 6660 externally_visible flags. 6661 (ipa_passes): Avoid executing small_ipa_passes at LTO stage; they've 6662 been already run. 6663 * lto-cgraph.c (lto_output_node): Assert that inline clones are not 6664 boundaries. 6665 * ipa-inline.c (cgraph_clone_inlined_nodes): Use new predicates; 6666 clear externally_visible when turning into inline clones 6667 (cgraph_mark_inline_edge): Use new predicates. 6668 (cgraph_estimate_growth): Likewise. 6669 (cgraph_decide_inlining): Likewise. 6670 * ipa.c (cgraph_postorder): Likewise. 6671 (cgraph_remove_unreachable_nodes): Likewise; sanity check 6672 that inline clones are not needed. 6673 (cgraph_externally_visible_p): New predicate. 6674 (function_and_variable_visibility): Add whole_program parameter; 6675 always set externally_visible flag; handle COMDAT function 6676 privatization. 6677 (local_function_and_variable_visibility): New function. 6678 (gate_whole_program_function_and_variable_visibility): New function. 6679 (whole_program_function_and_variable_visibility): New function. 6680 (pass_ipa_whole_program_visibility): New function. 6681 * passes.c (init_optimization_passes): Add whole program visibility 6682 pass. 6683 (do_per_function_toporder, function_called_by_processed_nodes_p): Do 6684 not care about needed/reachable flags. 6685 * varpool.c: Include flags.h 6686 (decide_is_variable_needed): When doing LTO assume whole-program mode. 6687 (varpool_finalize_decl): When we are in LTO read-back, all variables 6688 are analyzed. 6689 (varpool_analyze_pending_decls): Skip analyzis of analyzed vars. 6690 66912009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6692 6693 * config/s390/tpf.h (TARGET_DEFAULT): Remove MASK_HARD_FLOAT and 6694 add MASK_HARD_DFP. 6695 66962009-10-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 6697 6698 * config.gcc: Don't include the makefile fragments intended for 6699 libgcc. 6700 * config/s390/fixdfdi.h: File removed. 6701 * config/s390/libgcc-glibc.ver: File removed. 6702 * config/s390/s390.h: Remove the fixdfdi.h hack. 6703 * config/s390/t-crtstuff: File moved to libgcc dir. 6704 * config/s390/t-linux: Likewise. 6705 * config/s390/t-tpf: libgcc specific parts removed. 6706 * config/s390/t-linux64: Likewise. 6707 67082009-10-06 Jerry Quinn <jlquinn@optonline.net> 6709 6710 * Makefile.in (lto-wrapper): Use COMPILER and ALL_COMPILERFLAGS. 6711 (lto-compress.o): Likewise. 6712 67132009-10-07 Danny Smith <dannysmith@users.sourceforge.net> 6714 6715 PR target/41512 6716 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't propagate 6717 dllexport to class members here. 6718 (i386_pe_determine_dllimport_p): Only check static class data for 6719 definition. 6720 (i386_pe_encode_section_info): Don't recheck DECL_DLLIMPORT_P. 6721 * config/i386/winnt-cxx.c (i386_pe_type_dllimport_p): Only check 6722 functions for vague linkage. 6723 (i386_pe_type_dllexport_p): Fix formatting. 6724 (maybe_add_dllexport) New function. 6725 (i386_pe_adjust_class_at_definition): Use it to propagate dllexport 6726 to class members. 6727 67282009-10-07 Ben Elliston <bje@au.ibm.com> 6729 6730 * config/rs6000/a2.md: Remove duplicated lines. 6731 67322009-10-07 Ben Elliston <bje@au.ibm.com> 6733 6734 * config.gcc (powerpc*-*-*): Handle a2. 6735 * config/rs6000/rs6000.md (cpu): Add ppca2. Include "a2.md". 6736 * config/rs6000/a2.md: New file. 6737 * config/rs6000/rs6000.opt (mno-update): New. 6738 (mupdate): Return to using a mask, not a var. 6739 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for a2. 6740 (enum processor_type): Add PROCESSOR_PPCA2. 6741 * config/rs6000/rs6000.c (ppca2_cost): New costs. 6742 (rs6000_override_options): Add "a2" to processor_target_table. 6743 Update rs6000_always_hint logic. Correctly set rs6000_cost for a2. 6744 * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=a2. 6745 67462009-10-06 Uros Bizjak <ubizjak@gmail.com> 6747 6748 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): 6749 Use explicit gen_truncxfsf2 and gen_truncxfdf2 references to avoid 6750 reference to nonexistent gen_truncxfxf2 function. 6751 67522009-10-06 Uros Bizjak <ubizjak@gmail.com> 6753 6754 * config/i386/i386.md (SWI48, SDWIM, DWI): New mode iterators. 6755 (DWIH, g, di, doubleint_general_operand): New mode attributes. 6756 (general_operand): Handle TI mode. 6757 (add<mode>3): Macroize expander from add{qi,hi,si,di,ti}3 patterns 6758 using SDWIM mode iterator. 6759 (*add<mode>3_doubleword): New insn_and_split pattern. Macroize 6760 pattern from *add{di,ti}3_1 patterns and corresponding splitters 6761 using DWI mode iterator. 6762 (add<mode>3_carry): Macroize insn from add{qi,hi,si,di}3_carry 6763 patterns using SWI mode iterator. 6764 (*add<mode>3_cc): Macroize insn from add{si,di}3_cc patterns 6765 using SWI48 mode iterator. 6766 (*add<mode>_1): Ditto from add{si,di}_1 patterns. 6767 (*add<mode>_2): Ditto from add{si,di}_2 patterns. 6768 (*add<mode>_3): Ditto from add{si,di}_3 patterns. 6769 (*add<mode>_5): Ditto from add{si,di}_5 patterns. 6770 (sub<mode>3): Macroize expander from sub{qi,hi,si,di,ti}3 patterns 6771 using SDWIM mode iterator. 6772 (*sub<mode>3_doubleword): New insn_and_split pattern. Macroize 6773 pattern from *sub{di,ti}3_1 patterns and corresponding splitters 6774 using DWI mode iterator. 6775 (sub<mode>3_carry): Macroize insn from sub{qi,hi,si,di}3_carry 6776 patterns using SWI mode iterator. 6777 (*sub<mode>_1): Ditto from from sub{qi,hi,si,di}_1 patterns. 6778 (*sub<mode>_2): Ditto from sub{qi,hi,si,di}_2 patterns. 6779 (*sub<mode>_3): Ditto from sub{qi,hi,si,di}_3 patterns. 6780 (<plusminus_insn>xf3): Macroize expander from addxf3 and subxf3 6781 patterns using plusminus code iterator. 6782 (<plusminus_insn><mode>3): Macroize expander from add<mode>3 and 6783 sub<mode>3 patterns using plusminus code iterator. 6784 * config/i386/i386.c (override_options): Update the call to 6785 gen_subdi_carry_rex64 for renamed function. 6786 (ix86_expand_int_addcc): Update calls to gen_subdi3_carry_rex64 6787 and gen_adddi3_carry_rex64 for renamed functions. Use indirect 6788 calls to instruction expanders. 6789 67902009-10-06 Martin Jambor <mjambor@suse.cz> 6791 6792 PR bootstrap/41395 6793 * opts.c (decode_options): Run IPA-SRA at -O2. 6794 67952009-10-06 Richard Guenther <rguenther@suse.de> 6796 6797 * lto-symtab.c (lto_symtab_entry_hash): Hash strings, not pointers. 6798 67992009-10-06 Tobias Burnus <burnus@net-b.de> 6800 6801 PR lto/41591 6802 * doc/invoke.texi (-flto,-fwhole-program): Make clear that the 6803 -flto and -fwhole-program flags can be combined. 6804 68052009-10-06 Ryan Mansfield <rmansfield@qnx.com> 6806 6807 PR driver/41217 6808 * gcc.c (process_command): Check that -o argument was specified. 6809 68102009-10-06 Jerry Quinn <jlquinn@optonline.net> 6811 6812 * gimple.c (gimple_type_hash): Use CONST_CAST_TREE to fix compilation. 6813 68142009-10-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 6815 6816 * c.opt (Wjump-misses-init): Fix typo to enable for ObjC. 6817 * doc/invoke.texi (Warning Options): Annotate allowed languages 6818 for -Wunsuffixed-float-constants. 6819 68202009-10-05 Jakub Jelinek <jakub@redhat.com> 6821 6822 * dwarf2out.c (modified_type_die): Don't add DW_AT_name to 6823 DW_TAG_{const,volatile}_type if its DW_AT_type already has the 6824 same name and isn't the main variant. 6825 6826 PR debug/41558 6827 * dwarf2out.c (loc_by_reference): Removed. 6828 (dw_loc_list_1): New function. 6829 (dw_loc_list): Remove toplev argument, add want_address argument. 6830 Don't look at decl_by_reference_p at all. Use dw_loc_list_1. 6831 (loc_list_from_tree) <case VAR_DECL>: Pass want_address rather than 6832 want_address == 2 to dw_loc_list. For successful dw_loc_list 6833 set have_address to 1 only if want_address is not 0. 6834 68352009-10-05 Richard Sandiford <rdsandiford@googlemail.com> 6836 6837 * config/mips/mips-protos.h (mips_trampoline_code_size): Declare. 6838 * config/mips/mips.h (TRAMPOLINE_SIZE): Redefine as the size of 6839 a code block followed by two pointers. 6840 (TRAMPOLINE_ALIGNMENT): Define to 64 for 32-bit targets too. 6841 * config/mips/mips.c (MIPS_LOAD_PTR): New macro. 6842 (MIPS_MOVE): Likewise. 6843 (MIPS_LUI): Likewise. 6844 (MIPS_JR): Likewise. 6845 (MIPS_BAL): Likewise. 6846 (MIPS_NOP): Likewise. 6847 (mips_asm_trampoline_template): Delete. 6848 (mips_trampoline_code_size): New function. 6849 (mips_trampoline_init): Add shorter sequences for all cases 6850 except Pmode == DImoe && !TARGET_USE_PIC_FN_ADDR_REG. 6851 Calculate the opcodes directly, rather than copying from a template. 6852 Only flush the code part of the trampoline. 6853 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Delete. 6854 68552009-10-05 Richard Sandiford <rdsandiford@googlemail.com> 6856 6857 * config/mips/mips.h (DWARF_FRAME_RETURN_COLUMN): Replace 6858 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM. 6859 (INCOMING_RETURN_ADDR_RTX): Likewise. 6860 (FUNCTION_PROFILER): Likewise. Replace GP_REG_FIRST + 1 6861 with AT_REGNUM. 6862 * config/mips/sdemtk.h (FUNCTION_PROFILER): Replace GP_REG_FIRST + 31 6863 with RETURN_ADDR_REGNUM. 6864 (MIPS_SAVE_REG_FOR_PROFILING_P): Likewise. 6865 * config/mips/mips.c (mips16_build_call_stub): Replace 6866 GP_REG_FIRST + 31 with RETURN_ADDR_REGNUM, GP_REG_FIRST + 1 6867 with AT_REGNUM and 31 with RETURN_ADDR_REGNUM. 6868 (mips_print_operand_punctuation): Likewise. 6869 (mips_frame_set): Likewise. 6870 (mips16e_output_save_restore): Likewise. 6871 (mips_cfun_might_clobber_call_saved_reg_p): Likewise. 6872 (mips_save_reg_p): Likewise. 6873 (mips_return_addr): Likewise. 6874 (mips_set_return_address): Likewise. 6875 (mips_direct_save_slot_move_p): Likewise. 6876 (mips_output_function_prologue): Likewise. 6877 (mips_restore_reg): Likewise. 6878 (mips_expand_epilogue): Likewise. 6879 (mips_epilogue_uses): Likewise. 6880 * config/mips/mips.md (RETURN_ADD_REGNUM): Define. 6881 (*mov<mode>_ra): Use it instead of a hard-coded 31. 6882 (clear_hazard_<mode>): Likewise. 6883 (call_internal): Likewise. 6884 (call_internal_direct): Likewise. 6885 (call_direct_split): Likewise. 6886 (call_value_internal): Likewise. 6887 (call_value_split): Likewise. 6888 (call_value_internal_direct): Likewise. 6889 (call_value_direct_split): Likewise. 6890 (call_value_multiple_internal): Likewise. 6891 (call_value_multiple_split): Likewise. 6892 68932009-10-05 Eric Botcazou <ebotcazou@adacore.com> 6894 Jakub Jelinek <jakub@redhat.com> 6895 6896 PR rtl-optimization/41511 6897 * combine.c (record_value_for_reg): Pass explicit values as argument 6898 to get_last_value_validate. 6899 (get_last_value_validate): Document INSN parameter. 6900 For non-readonly MEMs, assume they might have been modified if INSN 6901 was in another basic block. 6902 (get_last_value): Minor reformatting. 6903 69042009-10-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 6905 6906 PR tree-opt/40992 6907 * final.c (asm_str_count): Split out from asm_insn_count. 6908 * rtl.h (asm_str_count): New prototype. 6909 * tree-inline (estimate_num_insns) <case GIMPLE_ASM>: Call 6910 asm_str_count. 6911 69122009-10-05 Sriraman Tallam <tmsriram@google.com> 6913 6914 * doc/plugins.texi: Change plugin_pass to register_pass_info. 6915 69162009-10-05 Basile Starynkevitch <basile@starynkevitch.net> 6917 Rafael Espindola <espindola@google.com> 6918 6919 * gengtype.c (write_types): Moved call to write_func_for_structure 6920 into seperate loops. 6921 69222009-10-05 Richard Guenther <rguenther@suse.de> 6923 6924 PR lto/41281 6925 * lto-cgraph.c (output_cgraph): Output toplevel asms. 6926 (input_cgraph_1): Input toplevel asms. 6927 69282009-10-05 Richard Guenther <rguenther@suse.de> 6929 6930 PR lto/40902 6931 * lto-symtab.c (lto_compatible_attributes_p): Remove. 6932 (external_aggregate_decl_p): Likewise. 6933 (lto_symtab_compatible): Re-structure. Remove dead code. 6934 For variables ignore toplevel qualifiers when comparing types. 6935 Issue warnings, not errors for mismatched user-alignment. 6936 69372009-10-05 Richard Guenther <rguenther@suse.de> 6938 6939 PR lto/41552 6940 PR lto/41487 6941 * lto-symtab.c (struct lto_symtab_base_def): Remove. 6942 (struct lto_symtab_identifier_def): Likewise. 6943 (struct lto_symtab_decl_def): Likewise. 6944 (struct lto_symtab_entry_def): New. 6945 (lto_symtab_identifier_t): Rename to ... 6946 (lto_symtab_entry_t): ... this. 6947 (lto_symtab_decls): Remove. 6948 (lto_symtab_base_hash): Rename to ... 6949 (lto_symtab_entry_hash): ... this. 6950 (lto_symtab_base_eq): Rename to ... 6951 (lto_symtab_entry_eq): ... this. 6952 (lto_symtab_base_marked_p): Rename to ... 6953 (lto_symtab_entry_marked_p): ... this. 6954 (lto_symtab_identifier_marked_p): Remove. 6955 (lto_symtab_decl_marked_p): Likewise. 6956 (lto_symtab_maybe_init_hash_tables): Rename to ... 6957 (lto_symtab_maybe_init_hash_table): ... this. 6958 (lto_symtab_set_resolution_and_file_data): Remove. 6959 (lto_symtab_register_decl): New function. 6960 (lto_symtab_get_identifier): Remove. 6961 (lto_symtab_get): New function. 6962 (lto_symtab_get_resolution): Adjust. 6963 (lto_symtab_get_identifier_decl): Remove. 6964 (lto_symtab_set_identifier_decl): Likewise. 6965 (lto_symtab_merge_decl): Rename to ... 6966 (lto_symtab_merge): ... this. Rewrite. 6967 (lto_symtab_merge_var): Remove. 6968 (lto_symtab_merge_fn): Likewise. 6969 (lto_symtab_prevailing_decl): Adjust. 6970 (lto_cgraph_replace_node): New function. 6971 (lto_symtab_merge_decls_2): Likewise. 6972 (lto_symtab_merge_decls_1): Likewise. 6973 (lto_symtab_fixup_var_decls): Likewise. 6974 (lto_symtab_resolve_symbols): Likewise. 6975 (lto_symtab_merge_decls): Likewise. 6976 (lto_symtab_prevailing_decl): Adjust. 6977 (lto_symtab_get_symtab_def): Remove. 6978 (lto_symtab_get_file_data): Likewise. 6979 (lto_symtab_clear_resolution): Adjust. 6980 (lto_symtab_clear_resolution): Likewise. 6981 * lto-cgraph.c (input_edge): Do not merge cgraph nodes here. 6982 (input_cgraph_1): Likewise. 6983 * lto-streamer-in.c (get_resolution): Do not provide fake 6984 symbol resolutions here. 6985 (deferred_global_decls): Remove. 6986 (lto_register_deferred_decls_in_symtab): Likewise. 6987 (lto_register_var_decl_in_symtab): Change signature, register 6988 variable via lto_symtab_register_decl. 6989 (lto_register_function_decl_in_symtab): Likewise. 6990 (lto_read_tree): Adjust. 6991 * lto-streamer.h (lto_register_deferred_decls_in_symtab): Remove. 6992 (lto_symtab_merge_var): Likewise. 6993 (lto_symtab_merge_fn): Likewise. 6994 (lto_symtab_register_decl): Declare. 6995 (lto_symtab_merge_decls): Likewise. 6996 69972009-10-05 Richard Guenther <rguenther@suse.de> 6998 6999 PR tree-optimization/23821 7000 * tree-vrp.c (vrp_finalize): Do not perform copy propagation. 7001 * tree-ssa-dom.c (cprop_operand): Do not propagate copies into 7002 simple IV increments. 7003 70042009-10-05 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7005 7006 * config/arm/arm.c (arm_override_options): Really initialize 7007 flag_dwarf2_cfi_asm to 0. 7008 70092009-10-05 Doug Kwan <dougkwan@google.com> 7010 7011 PR rtl-optimization/41574 7012 * combine.c (distribute_and_simplify_rtx): Quit if RTX mode is 7013 floating point and we are not doing unsafe math optimizations. 7014 70152009-10-03 Simon Baldwin <simonb@google.com> 7016 Cary Coutant <ccoutant@google.com> 7017 Rafael Espindola <espindola@google.com> 7018 Richard Guenther <rguenther@suse.de> 7019 Jan Hubicka <jh@suse.cz> 7020 Doug Kwan <dougkwan@google.com> 7021 H.J. Lu <hongjiu.lu@intel.com> 7022 Bill Maddox <maddox@google.com> 7023 Ryan Mansfield <rmansfield@qnx.com> 7024 Diego Novillo <dnovillo@google.com> 7025 Ollie Wild <aaw@google.com> 7026 Kenneth Zadeck <zadeck@naturalbridge.com> 7027 7028 * lto-cgraph.c: New file. 7029 * lto-compress.c: New file. 7030 * lto-compress.h: New file. 7031 * lto-opts.c: New file. 7032 * lto-section-in.c: New file. 7033 * lto-section-out.c: New file. 7034 * lto-streamer-in.c: New file. 7035 * lto-streamer-out.c: New file. 7036 * lto-streamer.c: New file. 7037 * lto-streamer.h: New file. 7038 * lto-symtab.c: New file. 7039 * lto-wpa-fixup.c: New file. 7040 * lto-wrapper.c: New file. 7041 70422009-10-03 Simon Baldwin <baldwin@google.com> 7043 Ben Elliston <bje@au.ibm.com> 7044 Rafael Espindola <espindola@google.com> 7045 Nathan Froyd <froydnj@codesourcery.com> 7046 Jan Hubicka <jh@suse.cz> 7047 Doug Kwan <dougkwan@google.com> 7048 Diego Novillo <dnovillo@google.com> 7049 Kenneth Zadeck <zadeck@naturalbridge.com> 7050 7051 * Makefile.in (enable_lto): New. 7052 (site.exp): If @enable_lto@ is set to 'yes' define ENABLE_LTO. 7053 (LINKER_PLUGIN_API_H): Define. 7054 (LTO_SYMTAB_H): Define. 7055 (LTO_STREAMER_H): Define. 7056 (TREE_VECTORIZER_H): Define. 7057 (INCLUDES): Add LIBELFINC. 7058 (OBJS-common): Add lto-cgraph.o, lto-streamer-in.o, 7059 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, lto-symtab.o, 7060 lto-opts.o, lto-streamer.o, lto-wpa-fixup.o, lto-compress.o. 7061 (MOSTLYCLEANFILES): Add lto-wrapper$(exeext) 7062 (native): Add lto-wrapper$(exeext) 7063 (lto-compress.o, lto-cgraph.o, lto-streamer-in.o, 7064 lto-streamer-out.o, lto-section-in.o, lto-section-out.o, 7065 lto-symtab.o, lto-opts.o, lto-streamer.o, lto-wpa-fixup.o): New rules. 7066 (gimple.o): Add dependency on LTO_HEADER_H and LTO_SECTION_OUT_H. 7067 (varasm.o): Add dependency on tree-iterator.h. 7068 (cgraph.o): Add dependency on cif-code.def. 7069 (ipa-reference.o): Add dependency on LTO_STREAMER_H. 7070 (ipa-pure-const.o): Likewise. 7071 (GTFILES): Add lto-symtab.c. 7072 (install-lto-wrapper): New. 7073 * configure.ac: If 'lto' is in enable_languages, define ENABLE_LTO 7074 and enable_lto. If LIBELFLIBS is set, define HAVE_libelf. 7075 * config.in: Regenerate. 7076 70772009-10-03 Rafael Espindola <espindola@google.com> 7078 Diego Novillo <dnovillo@google.com> 7079 7080 * cgraphunit.c (ipa_passes): Prevent lto1 from calling 7081 ipa_write_summaries. 7082 Call execute_ipa_summary_passes for all_regular_ipa_passes and 7083 all_lto_gen_passes. 7084 (cgraph_optimize): Make extern. 7085 70862009-10-03 Nathan Froyd <froydnj@codesourcery.com> 7087 Kenneth Zadeck <zadeck@naturalbridge.com> 7088 7089 * toplev.c (in_lto_p): Declare. 7090 * collect2.c (scan_prog_file): Read all the output when reading 7091 information for LTO. 7092 (enum lto_mode_d): Declare. 7093 70942009-10-03 Richard Guenther <rguenther@suse.de> 7095 Diego Novillo <dnovillo@google.com> 7096 7097 * gimple.c: Include target.h and alias.h. 7098 (gimple_types): Declare. 7099 (type_hash_cache): Declare. 7100 (gimple_alloc_stat): Make extern. 7101 (gimple_build_eh_must_not_throw): Call 7102 gimple_eh_must_not_throw_set_fndecl. 7103 (struct type_pair_d): Declare. 7104 (type_pair_t): Declare. 7105 (type_pair_hash): New. 7106 (type_pair_eq): New. 7107 (lookup_type_pair): New. 7108 (gimple_force_type_merge): New. 7109 (compare_type_names_p): New. 7110 (compare_field_offset): New. 7111 (gimple_types_compatible_p): New. 7112 (struct sccs): Declare. 7113 (next_dfs_num): Declare. 7114 (iterative_hash_gimple_type): New. 7115 (visit): New. 7116 (iterative_hash_type_name): New. 7117 (iterative_hash_gimple_type): New. 7118 (gimple_type_hash): New. 7119 (gimple_type_eq): New. 7120 (gimple_register_type): New. 7121 (print_gimple_types_stats): New. 7122 (gimple_signed_or_unsigned_type): New. 7123 (gimple_unsigned_type): New. 7124 (gimple_signed_type): New. 7125 (gimple_get_alias_set): New. 7126 (gimple_decl_printable_name): Do not use DMGL_TYPES. 7127 * gimple.h (gimple_alloc, gimple_alloc_stat): Declare. 7128 (gimple_force_type_merge): Declare. 7129 (gimple_types_compatible_p): Declare. 7130 (gimple_register_type): Declare. 7131 (print_gimple_types_stats): Declare. 7132 (gimple_unsigned_type): Declare. 7133 (gimple_signed_type): Declare. 7134 (gimple_get_alias_set): Declare. 7135 (gimple_eh_must_not_throw_set_fndecl): New. 7136 71372009-10-03 Jan Hubicka <jh@suse.cz> 7138 Kenneth Zadeck <zadeck@naturalbridge.com> 7139 7140 * ipa-pure-const.c: Include lto-streamer.h. 7141 (register_hooks): Factor out of ... 7142 (generate_summary): ... here. 7143 (pure_const_write_summary): New. 7144 (pure_const_read_summary): New. 7145 (pass_ipa_pure_const): Add pure_const_write_summary and 7146 pure_const_read_summary. 7147 * ipa-reference.c: Include lto-streamer.h. 7148 (add_new_function): New. 7149 (remove_node_data): New. 7150 (duplicate_node_data): New. 7151 (ipa_init): Guard against multiple calls. 7152 Move hook setup from analyze_function. 7153 (write_node_summary_p): New. 7154 (ipa_reference_write_summary): New. 7155 (ipa_reference_read_summary): New. 7156 (pass_ipa_reference): Add ipa_reference_write_summary and 7157 ipa_reference_read_summary. 7158 * cgraph.h (cgraph_local_info): Add field lto_file_data. 7159 (struct cgraph_edge): Add fields lto_stmt_uid and 7160 call_stmt_cannot_inline_p. 7161 (cgraph_optimize): Declare. 7162 (cgraph_decide_is_function_needed): Declare. 7163 (reset_inline_failed): Declare. 7164 (enum LTO_cgraph_tags): Declare. 7165 (LTO_cgraph_tag_names): Declare. 7166 (LCC_NOT_FOUND): Define. 7167 71682009-10-03 Doug Kwan <dougkwan@google.com> 7169 Rafael Espindola <espindola@google.com> 7170 Jan Hubicka <jh@suse.cz> 7171 Diego Novillo <dnovillo@google.com> 7172 Kenneth Zadeck <zadeck@naturalbridge.com> 7173 7174 * passes.c (all_regular_ipa_passes): New. 7175 (all_ipa_passes): Rename to all_small_ipa_passes. 7176 (init_optimization_passes): Init all_regular_ipa_passes. 7177 * tree-pass.h (all_regular_ipa_passes): New. 7178 (all_ipa_passes): Rename to all_small_ipa_passes. 7179 * passes.c (all_lto_gen_passes): New. 7180 (init_optimization_passes): Initialize all_lto_gen_passes. 7181 (execute_ipa_summary_passes): Make non-static. 7182 (ipa_write_summaries_1): New. 7183 (ipa_write_summaries_2): New. 7184 (ipa_write_summaries): New. 7185 (ipa_write_summaries_of_cgraph_node_set): New. 7186 (ipa_read_summaries_1): New. 7187 (ipa_read_summaries): New. 7188 (execute_ipa_pass_list): Call cgraph_process_new_functions. 7189 (execute_regular_ipa_pass_list): Remove. 7190 (init_optimization_passes): Schedule 7191 pass_rebuild_cgraph_edges and pass_early_inline outside 7192 of pass_all_early_optimizations. Document reason. 7193 (pass_ipa_lto_gimple_out, pass_ipa_lto_wpa_fixup, 7194 pass_ipa_lto_finish_out): New pass. 7195 (pass_ipa_summary_passes): Start and stop timers if the pass has them. 7196 (execute_all_ipa_transforms): New. 7197 (execute_one_pass): Don't call execute_one_ipa_transform_pass. 7198 (dump_properties, debug_properties): New. 7199 * tree-optimize.c (gate_all_early_local_passes): Return 7200 false if we are in lto1. 7201 (tree_rest_of_compilation): Call execute_all_ipa_transforms. 7202 * tree-pass.h (execute_all_ipa_transforms): Declare. 7203 (pass_ipa_function_and_variable_visibility): Declare. 7204 (pass_ipa_early_inline): Declare. 7205 (pass_ipa_lto_gimple_out): Declare. 7206 (pass_ipa_lto_wpa_fixup): Declare. 7207 (pass_ipa_lto_finish_out): Declare. 7208 (all_small_ipa_passes, all_regular_ipa_passes, 7209 all_lto_gen_passes): Declare. 7210 (execute_ipa_summary_passes): Declare. 7211 (execute_all_ipa_transforms): Declare. 7212 (ipa_write_summaries): Declare 7213 (ipa_write_summaries_of_cgraph_node_set): Declare. 7214 (ipa_read_summaries): Declare. 7215 72162009-10-03 Doug Kwan <dougkwan@google.com> 7217 Ollie Wild <aaw@google.com> 7218 7219 * ipa-prop.c (ipa_propagate_indirect_call_infos): Do nothing in WPA. 7220 7221 * collect2.c (LTO_MODE_NONE, LTO_MODE_LTO, LTO_MODE_WPA): New enums. 7222 (lto_mode): New variable. 7223 (maybe_run_lto_and_relink): Handle the -fwpa option. 7224 (main): Handle the -fwpa option. 7225 (maybe_unlink_list): New function. 7226 * gcc.c (link_lto_options): Replace -flto with -fwpa. 7227 * common.opt (flto): New flag. 7228 * toplev.c (flag_generate_lto): Declare. 7229 72302009-10-03 Simon Baldwin <simonb@google.com> 7231 7232 * common.opt (flto-compression-level): New flag. 7233 7234 * opts.c: Include lto-opts.h. 7235 (handle_option): Call lto_register_user_option for each 7236 valid option handled. 7237 (decode_options): Clear registered options before the options 7238 handling loop. 7239 72402009-10-03 Cary Coutant <ccoutant@google.com> 7241 7242 * collect2.c (is_elf): New function. 7243 (scan_prog_file): Require LTO object to be in ELF format. 7244 72452009-10-03 Rafael Espindola <espindola@google.com> 7246 7247 * gcc.c (LINK_COMMAND_SPEC): Use the -pass-through option to pass 7248 libgcc to the linker. 7249 7250 * ipa-cp.c (cgraph_gate_cp): Return false if LTRANS is running. 7251 7252 * collect2.c (maybe_run_lto_and_relink): Execute lto-wrapper. 7253 (collect_execute): Add flags argument. Pass flags to pex_run. Update 7254 all callers. 7255 * collect2.h (collect_execute): Add flags argument. 7256 * tlink.c (tlink_execute): Update call to collect_execute. 7257 * gcc.c (main): Set the COLLECT_LTO_WRAPPER environment variable. 7258 (use_linker_plugin): New. 7259 (use_linker_plugin_spec_function): New. 7260 (LINK_COMMAND_SPEC): Pass plugin options to the linker. 7261 (linker_plugin_file_spec): New. 7262 (lto_wrapper_spec): New. 7263 (lto_gcc_spec): New. 7264 (static_specs): Add linker_plugin_file, lto_wrapper and lto_gcc. 7265 (static_spec_functions): Add use-linker-plugin. 7266 (process_command): Handle -use-linker-plugin. 7267 (main): Use lto_wrapper_spec instead of lto_wrapper. Set 7268 linker_plugin_file_spec and lto_gcc_spec. 7269 (use_linker_plugin_spec_function): New. 7270 72712009-10-03 Richard Guenther <rguenther@suse.de> 7272 7273 PR lto/41547 7274 PR lto/41548 7275 * tree.h (is_lang_specific): Include LANG_TYPE. 7276 * tree.c (find_decls_types_r): Manually add interesting parts 7277 of TYPE_FIELDS. Walk BINFO_VIRTUALS. Do not walk TYPE_METHODS. 7278 7279 * gimple.c (type_pair_hash): Make symmetric. 7280 (type_pair_eq): Likewise. 7281 (lookup_type_pair): Increase initial hashtable size. 7282 (gimple_force_type_merge): Rely on type-pair symmetry. 7283 (visit): Remove excessive checking code. 7284 (iterative_hash_type_name): Do not hash TYPE_NAME of anonymous unions. 7285 (gimple_register_type): Remove getenv calls, shrink initial 7286 hashtable size. 7287 7288 PR middle-end/41502 7289 * cgraphunit.c (ipa_passes): Do not remove bodies of extern 7290 inline functions if not generating lto output. 7291 7292 PR lto/41379 7293 * toplev.c (finalize): In WPA mode remove the asm file. 7294 72952009-10-03 Doug Kwan <dougkwan@google.com> 7296 7297 * ipa-inline.c (cgraph_mark_inline): Check 7298 edge->call_stmt_cannot_inline_p instead of calling 7299 gimple_call_cannot_inline_p. 7300 (cgraph_decide_inlining): Do nothing in WPA and LTRANS. 7301 (cgraph_gate_ipa_early_inlining): Return false if in_lto_p is set. 7302 (inline_generate_summary): Do nothing in LTRANS. 7303 * cgraph.c (initialize_inline_failed): Make sure e->call_stmt 7304 exists before calling gimple_call_cannot_inline_p. 7305 (cgraph_create_edge): Set edge->call_stmt_cannot_inline_p. 7306 (cgraph_clone_edge): Add argument STMT_UID. Modify all callers. 7307 Update new_edge->lto_stmt_uid. 7308 * cgraphbuild.c (reset_inline_failed): New. 7309 7310 * common.opt (fwpa): New flag. 7311 (fltrans): New option. 7312 * gcc.c (gcc_lto_option_t): New type. 7313 (current_lto_option): New variable. 7314 (lto_single_spec_function): Remove and is replaced by .. 7315 (lto_option_spec_function): New function. 7316 (LINK_COMMAND_SPEC): Use link_lto_option spec instead of just 7317 passing the -flto flag. 7318 (cc1_options): Separate non-LTO related parts into .. 7319 (cc1_non_lto_options): Non-LTO related options shared by all FEs. 7320 (lto1_options): New spec for lto FE. 7321 (link_lto_options): New spec for handling LTO flags in linker. 7322 (invoke_lto_single): Re-format to fit in 80 column. Replace 7323 lto-single with lto-option. 7324 (static_specs): Add cc1_non_lto_options, lto1_options and 7325 link_lto_options. 7326 (static_spec_function): Replace lto-single with lto-option. 7327 (process_command): Handle -flto, -fwpa and -fltran by setting 7328 current_lto_option and not passing it to subprocess unconditionally. 7329 73302009-10-03 Bill Maddox <maddox@google.com> 7331 7332 Add `gcc' driver support for link-time code generation (LTO). 7333 7334 * collect2.c (enum pass): Add new literal PASS_LTOINFO. 7335 (lto_flag, lto_objects, lto_o_file): New variables. 7336 (struct lto_object, struct lto_object_list): New structures. 7337 (collect_exit, handler): Remove LTO temporary output file on exit. 7338 (add_lto_object): New function. 7339 (maybe_run_lto_and_relink): New function. Perform link time code 7340 generation and relinking for object files containing LTO information. 7341 (main): Invoke maybe_run_lto_and_relink(). 7342 (dump_argv): New function. For debugging, currently disabled. 7343 (scan_prog_file): Add LTO information pass. 7344 * gcc.c (LINK_COMMAND_SPEC): Pass `-flto' switch to linker, i.e., 7345 collect2. 7346 * toplev.c (compile_file): Emit assembler directive to create 7347 the `gnu_lto_v1' marker symbol when compiling with `-flto'. 7348 73492009-10-03 Diego Novillo <dnovillo@google.com> 7350 7351 * c.opt: Add LTO to warn_abi and warn_psabi. 7352 7353 * tree.c (fld_worklist_push): Rename from PUSH. Convert to static 7354 inline function. Ignore language-specific nodes. Update all users. 7355 (find_decls_types_r): Do not traverse the subtrees of 7356 language-specific nodes. Do not traverse DECL_INITIAL for TYPE_DECLs. 7357 * tree.h (is_lang_specific): New. 7358 * langhooks.h (struct lang_hooks_for_decls): Remove 7359 may_need_assembler_name_p. Update all users. 7360 7361 * c-common.c (set_builtin_user_assembler_name): Move ... 7362 * builtins.c (set_builtin_user_assembler_name): ... here. 7363 (is_builtin_name): Add comment 7364 (is_builtin_fn): New. 7365 * except.c (output_ttype): Only call 7366 lookup_type_for_runtime if TYPE is not a runtime type. 7367 7368 * passes.c (register_pass): Call position_pass on 7369 all_small_ipa_passes, all_regular_ipa_passes and all_lto_gen_passes. 7370 * timevar.def (TV_IPA_LTO_GIMPLE_IO): Define. 7371 (TV_IPA_LTO_DECL_IO): Define. 7372 (TV_IPA_LTO_CGRAPH_IO): Define. 7373 (TV_LTO): Define. 7374 (TV_WHOPR_WPA): Define. 7375 (TV_WHOPR_WPA_IO): Define. 7376 (TV_WHOPR_LTRANS): Define. 7377 (TV_WHOPR_WPA_FIXUP): Define. 7378 (TV_WHOPR_WPA_LTRANS_EXEC): Define. 7379 * tree-cfg.c (tree_node_can_be_shared): Make extern. 7380 * tree-flow.h (tree_node_can_be_shared): Declare. 7381 * tree-inline.c (tree_can_inline_p): Check that E has a 7382 statement associated with it. 7383 * tree.c (free_lang_data_in_binf): Factor out of ... 7384 (free_lang_data_in_type): ... here. 7385 Call RECORD_OR_UNION_TYPE_P. 7386 (need_assembler_name_p): Ignore DECL if it does not have TREE_PUBLIC 7387 set. Call lang_hooks.decls.may_need_assembler_name_p if set. 7388 (free_lang_data_in_decl): Do not clear DECL_CONTEXT for CONST_DECLs. 7389 (free_lang_data): Set debug_info_level to DINFO_LEVEL_NONE. Set 7390 write_symbols to NO_DEBUG. Set debug_hooks to do_nothing_debug_hooks. 7391 (gate_free_lang_data): Return true if flag_generate_lto is set. 7392 (walk_tree_1): Call RECORD_OR_UNION_TYPE_P. 7393 * c-common.h (set_builtin_user_assembler_name): Move ... 7394 * tree.h (set_builtin_user_assembler_name): ... here. 7395 7396 * common.opt (flto-report): New flag. 7397 * opts.c (complain_wrong_lang): Do not complain if running lto1. 7398 * collect2.c (scan_prog_file): Send the error output of 7399 'nm' to HOST_BIT_BUCKET. 7400 74012009-10-03 Ollie Wild <aaw@google.com> 7402 7403 * langhooks-def.h (lhd_begin_section): New function declaration. 7404 (lhd_write_section): New function declaration. 7405 (lhd_end_section): New function declaration. 7406 (LANG_HOOKS_BEGIN_SECTION): New macro. 7407 (LANG_HOOKS_WRITE_SECTION_DATA): New macro. 7408 (LANG_HOOKS_END_SECTION): New macro. 7409 (LANG_HOOKS_LTO): New macro. 7410 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_LTO. 7411 * langhooks.c (output.h): Add include. 7412 (saved_section): New static variable. 7413 (lhd_begin_section): New function. 7414 (lhd_write_section_data): New function. 7415 (lhd_end_section): New function. 7416 * langhooks.h (struct lang_hooks_for_lto): New structure. 7417 (struct lang_hooks): Add member lto. 7418 * Makefile.in (langhooks.o): Add dependency on output.h. 7419 7420 * c-opts.c (c_common_post_options): Handle -flto and -fwhopr. 7421 74222009-10-03 Richard Guenther <rguenther@suse.de> 7423 7424 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): 7425 Handle LTO. 7426 74272009-10-03 Simon Baldwin <simonb@google.com> 7428 Richard Guenther <rguenther@suse.de> 7429 Janis Johnson <janis187@us.ibm.com> 7430 Doug Kwan <dougkwan@google.com> 7431 Diego Novillo <dnovillo@google.com> 7432 Ramana Radhakrishnan <ramana.r@gmail.com> 7433 Ollie Wild <aaw@google.com> 7434 7435 * doc/install.texi: Add documentation for libelf and --enable-lto. 7436 * doc/invoke.texi: Document -fwpa, -flto, -fwhopr, -fltrans, 7437 -flto-report, -flto-compression-level and -use-linker-plugin. 7438 * doc/sourcebuild.texi: Document use of zlib. Document lto-plugin. 7439 Add section for LTO Testing. 7440 74412009-10-02 Cary Coutant <ccoutant@google.com> 7442 7443 Add support for comdat type sections for DWARF v4. 7444 Merge from dwarf4 branch. 7445 7446 * dwarf2out.c (DWARF_TYPE_SIGNATURE_SIZE): New constant. 7447 (dw_die_ref): Define vector type. 7448 (enum dw_val_class): Add dw_val_class_data8. 7449 (struct dw_val_struct): Add v.val_data8. 7450 (comdat_type_node_ref): New type. 7451 (struct die_struct): Move die_symbol into a union; add new field 7452 die_type_node. Change all uses. 7453 (comdat_type_node): New type. 7454 (skeleton_chain_node): New type. 7455 (DWARF_COMDAT_TYPE_UNIT_HEADER_SIZE): New constant. 7456 (comdat_type_list): New variable. 7457 (dwarf_tag_name): Add DW_TAG_type_unit. 7458 (dwarf_attr_name): Add DW_AT_signature. 7459 (add_AT_data8): New function. 7460 (replace_child): New function. 7461 (move_all_children): New function. 7462 (print_signature): New function. 7463 (print_die): Print signature information; add dw_val_class_data8. 7464 (attr_checksum): Support dw_val_class_data8. 7465 (CHECKSUM_STRING): Redefine for DWARF-4 to include trailing NULL byte. 7466 (CHECKSUM_SLEB128, CHECKSUM_ULEB128): New macros. 7467 (checksum_sleb128, checksum_uleb128): New functions. 7468 (checksum_die_context): New function. 7469 (loc_checksum_ordered): New function. 7470 (attr_checksum_ordered): New function. 7471 (struct checksum_attributes): New structure. 7472 (collect_checksum_attributes): New function. 7473 (die_checksum_ordered): New function. 7474 (generate_type_signature): New function. 7475 (same_dw_val_p): Add dw_val_class_data8. 7476 (is_symbol_die): Use new is_declaration_die function. 7477 (is_declaration_die): New function. 7478 (should_move_die_to_comdat): New function. 7479 (clone_die): New function. 7480 (clone_tree): New function. 7481 (clone_as_declaration): New function. 7482 (copy_declaration_context): New function. 7483 (generate_skeleton_ancestor_tree): New function. 7484 (generate_skeleton_bottom_up): New function. 7485 (generate_skeleton): New function. 7486 (remove_child_or_replace_with_skeleton): New function. 7487 (break_out_comdat_types): New function. 7488 (struct decl_table_entry): New type. 7489 (htab_decl_hash): New function. 7490 (htab_decl_eq): New function. 7491 (htab_decl_del): New function. 7492 (copy_ancestor_tree): New function. 7493 (copy_decls_walk): New function. 7494 (copy_decls_for_unworthy_types): New function. 7495 (build_abbrev_table): Don't assert on missing die_symbol when doing 7496 comdat type sections. 7497 (size_of_die): Use DW_FORM_sig8 for external references. Add 7498 dw_val_class_data8. 7499 (unmark_dies): Don't assert for unmarked dies when doing comdat 7500 type sections. 7501 (value_format): Support DW_FORM_sig8 and dw_val_class_data8. 7502 (output_signature): New function. 7503 (output_die): Likewise. 7504 (output_compilation_unit_header): Mark output as DWARF version 3 7505 even if generating DWARF 4. 7506 (output_comdat_type_unit): New function. 7507 (output_line_info): Mark output as DWARF version 3 even if generating 7508 DWARF 4. 7509 (dwarf2out_start_source_file): Don't do eliminate_dwarf2_dups with 7510 DWARF-4. 7511 (dwarf2out_end_source_file): Likewise. 7512 (prune_unused_types_walk_attribs): Don't follow references into 7513 comdat type sections. 7514 (prune_unused_types_mark): When generating type units, do not mark 7515 children of non-defining declarations of types; do mark children of 7516 type entries. 7517 (prune_unused_types): Process comdat type sections. 7518 (htab_ct_hash): New function. 7519 (htab_ct_eq): New function. 7520 (dwarf2out_finish): Move types to comdat sections when using DWARF-4. 7521 Add a pointer to the line table from type unit entries so 7522 DW_AT_decl_file has meaning. 7523 * varasm.c (default_elf_asm_named_section): Use identifier name as 7524 comdat key instead of lang hook. 7525 75262009-10-02 Neil Vachharajani <nvachhar@google.com> 7527 7528 * gcov-io.c (gcov_open): Open files read-only when MODE < 0. 7529 75302009-10-02 Uros Bizjak <ubizjak@gmail.com> 7531 7532 * config/i386/i386.md (SWIM248): New mode iterator. 7533 (divmod<mode>4) Macroize expander from divmoddi4, divmodsi4 and 7534 divmodhi4 patterns using SWIM248 macro. 7535 (*divmod<mode>4): Macroize insn_and_split pattern from 7536 *divmoddi4_cltd_rex64, *divmodsi4_cltd and divmodhi4 insn patterns 7537 and their corresponding splitters usign SWIM248 macro. Split SImode 7538 insn to generate cltd and DImode insn to generate cqto instead of 7539 move+shift when optimizing for size or TARGET_USE_CLTD is in effect. 7540 (*divmoddi4_nocltd_rex64, *divmodsi4_nocltd): Remove insn patterns. 7541 (*divmod<mode>4_noext): Macroize insn from *divmoddi_noext_rex64 and 7542 *divmodsi_noext patterns using SWIM248 macro. 7543 (udivmod<mode>4): Macroize expander from udivmoddi4, udivmodsi4 and 7544 udivmodhi4 patterns using SWIM248 macro. 7545 (*udivmod<mode>4): Macroize insn_and_split pattern from 7546 *udivmoddi4, udivmodsi4 and udivmodhi4 patterns and their 7547 corresponding splitters using SWIM248 macro. 7548 (*udivmod<mode>4_noext): Macroize insn from *udivmoddi4_noext, 7549 *udivmodsi4_noext and *udivmodhi_noext patterns using SWIM248 macro. 7550 75512009-10-02 Eric Botcazou <ebotcazou@adacore.com> 7552 7553 * stor-layout.c (layout_type) <ARRAY_TYPE>: Make sure that an array 7554 of zero-sized element is zero-sized regardless of its extent. 7555 75562009-10-02 Jakub Jelinek <jakub@redhat.com> 7557 7558 PR debug/40521 7559 * configure.ac (HAVE_GAS_CFI_SECTIONS_DIRECTIVE): New test. 7560 * configure: Regenerated. 7561 * config.in: Regenerated. 7562 * dwarf2out.c (dwarf2out_do_cfi_asm): Return false if 7563 !HAVE_GAS_CFI_SECTIONS_DIRECTIVE and not emitting .eh_frame. 7564 (dwarf2out_init): If HAVE_GAS_CFI_SECTIONS_DIRECTIVE and 7565 not emitting .eh_frame, emit .cfi_sections .debug_frame 7566 directive. 7567 7568 PR debug/41404 7569 PR debug/41353 7570 * cfgexpand.c (expand_debug_expr) <case STRING_CST>: Don't create 7571 CONST_STRING if STRING_CST contains embedded '\0's or doesn't end 7572 with '\0'. 7573 (expand_debug_expr) <case VAR_DECL>: For TREE_STATIC !DECL_EXTERNAL 7574 vars use DECL_RTL with resetting it back to NULL afterwards. 7575 * dwarf2out.c (same_dw_val_p): For dw_val_class_addr compare with 7576 rtx_equal_p instead of asserting it is a SYMBOL_REF. 7577 (value_format): For dw_val_class_addr only use DW_FORM_addr if 7578 the attribute type allows it, otherwise use DW_FORM_dataN. 7579 (mem_loc_descriptor): Handle CONST_STRING. 7580 (add_const_value_attribute): Handle CONST_STRING using add_AT_addr. 7581 Handle MEM with CONST_STRING address using add_AT_string. 7582 (rtl_for_decl_init): Return MEM with CONST_STRING address instead of 7583 CONST_STRING for const arrays initialized with a string literal. 7584 (resolve_one_addr, resolve_addr_in_expr, resolve_addr): New functions. 7585 (dwarf2out_finish): Call resolve_addr. 7586 75872009-10-02 Andreas Schwab <schwab@linux-m68k.org> 7588 Maxim Kuvyrkov <maxim@codesourcery.com> 7589 7590 * config/m68k/lb1sf68.asm (PICCALL): Use variable sized branch. 7591 75922009-10-02 Nick Clifton <nickc@redhat.com> 7593 7594 * config/mn10300/mn10300.h (USER_LABEL_PREFIX): Define. 7595 (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. 7596 75972009-10-01 Jan Hubicka <jh@suse.cz> 7598 7599 * cgraph.c (cgraph_clone_node): Add redirect_callers parameter. 7600 (cgraph_create_virtual_clone): Just pass redirect_callers 7601 around. 7602 * cgraph.h (cgraph_clone_node): Update prototype. 7603 * ipa-pure-const.c (self_recursive_p): New function. 7604 (propagate): Use it. 7605 * ipa-inline.c (cgraph_clone_inlined_nodes, 7606 cgraph_decide_recursive_inlining): Update. 7607 76082009-10-01 David Daney <ddaney@caviumnetworks.com> 7609 7610 * gcc/config/mips/mips.c (mips_process_sync_loop) Emit syncw 7611 instructions for TARGET_OCTEON. 7612 76132009-10-01 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 7614 7615 * config/arm/arm.c (arm_override_options): Turn off 7616 flag_dwarf2_cfi_asm for AAPCS variants. 7617 76182009-10-01 Martin Jambor <mjambor@suse.cz> 7619 7620 PR middle-end/12392 7621 * tree-sra.c (convert_callers): Do not call 7622 compute_inline_parameters on one caller more than once. 7623 76242009-10-01 Nick Clifton <nickc@redhat.com> 7625 7626 * config/vax/netbsd-elf.h (NETBSD_CC1_AND_CC1PLUS_SPEC): Define as 7627 an empty string if not already defined. 7628 76292009-10-01 Martin Jambor <mjambor@suse.cz> 7630 7631 PR bootstrap/41395 7632 * tree-sra.c (is_va_list_type): New function. 7633 (find_var_candidates): Call is_va_list_type. 7634 (find_param_candidates): Check that the type or the type pointed 7635 to are not va_list types. 7636 76372009-10-01 Martin Jambor <mjambor@suse.cz> 7638 7639 PR c++/41503 7640 * cp/pt.c (function_parameter_expanded_from_pack_p): Return false if 7641 DECL_ARTIFICIAL (param_decl) is true. 7642 76432009-09-30 Gabriel Dos Reis <gdr@cs.tamu.edu> 7644 7645 * tree.h (tree_decl_common::lang_flag_8): New. 7646 * c-common.c (c_common_reswords): Include "constexpr" as C++0x 7647 keyword. 7648 * c-common.h (RID_CONSTEXPR): New. 7649 76502009-09-30 Uros Bizjak <ubizjak@gmail.com> 7651 7652 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): 7653 Use ref-all pointers. 7654 (alpha_gimplify_va_arg): Ditto. 7655 76562009-09-30 Jakub Jelinek <jakub@redhat.com> 7657 7658 PR target/41279 7659 * cfgloopanal.c (num_loop_insns): Don't increment ninsns for each bb 7660 before insn counting loop now that BB_END (bb) is counted. Ensure 7661 the return value isn't zero. 7662 76632009-09-30 Nick Clifton <nickc@redhat.com> 7664 7665 * config.gcc (sh-symbianelf): Replace definition of extra_objs 7666 with separate definitions of c_target_objs and cxx_target_objs. 7667 * config/sh/t-sh: Add rules to build symbian-cxx.o, symbian-c.o 7668 and symbian-base.o. 7669 * config/sh/sh.c (TARGET_CXX_INPUT_EXPORT_CLASS): Use 7670 sh_symbian_import_export_class. 7671 * config/sh/sh-protos.h: Fix names of exported symbian functions. 7672 * config/sh/symbian.c: Delete, moving code into... 7673 * config/sh/symbian-base.c: ... here 7674 * config/sh/symbian-c.c: ... and here 7675 * config/sh/symbian-cxx.c: ... and here. 7676 76772009-09-30 Uros Bizjak <ubizjak@gmail.com> 7678 7679 PR target/22093 7680 * config/alpha/alpha.md (unaligned_storehi_be): Force operand 7681 of plus RTX into register. 7682 76832009-09-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 7684 7685 * doc/install.texi: Linguistic and markup fixes. 7686 (Configuration) <--disable-cpp>: Remove description. 7687 <--enable-maintainer-mode>: Autotools files are affected, too. 7688 <--with-sysroot>: Improve description. 7689 (Building): Bump required GNU make version. 7690 76912009-09-29 Harsha Jagasia <harsha.jagasia@amd.com> 7692 7693 * config.gcc (i[34567]86-*-*): Include fma4intrin.h. 7694 (x86_64-*-*): Ditto. 7695 7696 * config/i386/fma4intrin.h: New file, provide common x86 compiler 7697 intrinisics for FMA4. 7698 * config/i386/cpuid.h (bit_FMA4): Define FMA4 bit. 7699 * config/i386/x86intrin.h: Fix typo to SSE4A instead of SSE4a. 7700 Add FMA4 check and fma4intrin.h. 7701 * config/i386/i386-c.c(ix86_target_macros_internal): Check 7702 ISA_FLAG for FMA4. 7703 * config/i386/i386.h(TARGET_FMA4): New macro for FMA4. 7704 * config/i386/i386.md (UNSPEC_FMA4_INTRINSIC): Add new UNSPEC 7705 constant for FMA4 support. 7706 (UNSPEC_FMA4_FMADDSUB): Ditto. 7707 (UNSPEC_FMA4_FMSUBADD): Ditto. 7708 * config/i386/i386.opt (-mfma4): New switch for FMA4 support. 7709 * config/i386/i386-protos.h (ix86_fma4_valid_op_p): Add declaration. 7710 (ix86_expand_fma4_multiple_memory): Ditto. 7711 * config/i386/i386.c (OPTION_MASK_ISA_FMA4_SET): New. 7712 (OPTION_MASK_ISA_FMA4_UNSET): New. 7713 (OPTION_MASK_ISA_SSE4A_UNSET): Change definition to depend on FMA4. 7714 (OPTION_MASK_ISA_AVX_UNSET): Change definition to depend on FMA4. 7715 (ix86_handle_option): Handle -mfma4. 7716 (isa_opts): Handle -mfma4. 7717 (enum pta_flags): Add PTA_FMA4. 7718 (override_options): Add FMA4 support. 7719 (IX86_BUILTIN_VFMADDSS): New for FMA4 intrinsic. 7720 (IX86_BUILTIN_VFMADDSD): Ditto. 7721 (IX86_BUILTIN_VFMADDPS): Ditto. 7722 (IX86_BUILTIN_VFMADDPD): Ditto. 7723 (IX86_BUILTIN_VFMSUBSS): Ditto. 7724 (IX86_BUILTIN_VFMSUBSD): Ditto. 7725 (IX86_BUILTIN_VFMSUBPS): Ditto. 7726 (IX86_BUILTIN_VFMSUBPD): Ditto. 7727 (IX86_BUILTIN_VFMADDSUBPS): Ditto. 7728 (IX86_BUILTIN_VFMADDSUBPD): Ditto. 7729 (IX86_BUILTIN_VFMSUBADDPS): Ditto. 7730 (IX86_BUILTIN_VFMSUBADDPD): Ditto. 7731 (IX86_BUILTIN_VFNMADDSS): Ditto. 7732 (IX86_BUILTIN_VFNMADDSD): Ditto. 7733 (IX86_BUILTIN_VFNMADDPS): Ditto. 7734 (IX86_BUILTIN_VFNMADDPD): Ditto. 7735 (IX86_BUILTIN_VFNMSUBSS): Ditto. 7736 (IX86_BUILTIN_VFNMSUBSD): Ditto. 7737 (IX86_BUILTIN_VFNMSUBPS): Ditto. 7738 (IX86_BUILTIN_VFNMSUBPD): Ditto. 7739 (IX86_BUILTIN_VFMADDPS256): Ditto. 7740 (IX86_BUILTIN_VFMADDPD256): Ditto. 7741 (IX86_BUILTIN_VFMSUBPS256): Ditto. 7742 (IX86_BUILTIN_VFMSUBPD256): Ditto. 7743 (IX86_BUILTIN_VFMADDSUBPS256): Ditto. 7744 (IX86_BUILTIN_VFMADDSUBPD256): Ditto. 7745 (IX86_BUILTIN_VFMSUBADDPS256): Ditto. 7746 (IX86_BUILTIN_VFMSUBADDPD256): Ditto. 7747 (IX86_BUILTIN_VFNMADDPS256): Ditto. 7748 (IX86_BUILTIN_VFNMADDPD256): Ditto. 7749 (IX86_BUILTIN_VFNMSUBPS256): Ditto. 7750 (IX86_BUILTIN_VFNMSUBPD256): Ditto. 7751 (enum multi_arg_type): New enum for describing the various FMA4 7752 intrinsic argument types. 7753 (bdesc_multi_arg): New table for FMA4 intrinsics. 7754 (ix86_init_mmx_sse_builtins): Add FMA4 intrinsic support. 7755 (ix86_expand_multi_arg_builtin): New function for creating FMA4 7756 intrinsics. 7757 (ix86_expand_builtin): Add FMA4 intrinsic support. 7758 (ix86_fma4_valid_op_p): New function to validate FMA4 3 and 4 7759 operand instructions. 7760 (ix86_expand_fma4_multiple_memory): New function to split the 7761 second memory reference from FMA4 instructions. 7762 * config/i386/sse.md (ssemodesuffixf4): New mode attribute for FMA4. 7763 (ssemodesuffixf2s): Ditto. 7764 (fma4_fmadd<mode>4): Add FMA4 floating point multiply/add 7765 instructions. 7766 (fma4_fmsub<mode>4): Ditto. 7767 (fma4_fnmadd<mode>4): Ditto. 7768 (fma4_fnmsub<mode>4): Ditto. 7769 (fma4_vmfmadd<mode>4): Ditto. 7770 (fma4_vmfmsub<mode>4): Ditto. 7771 (fma4_vmfnmadd<mode>4): Ditto. 7772 (fma4_vmfnmsub<mode>4): Ditto. 7773 (fma4_fmadd<mode>4256): Ditto. 7774 (fma4_fmsub<mode>4256): Ditto. 7775 (fma4_fnmadd<mode>4256): Ditto. 7776 (fma4_fnmsub<mode>4256): Ditto. 7777 (fma4_fmaddsubv8sf4): Ditto. 7778 (fma4_fmaddsubv4sf4): Ditto. 7779 (fma4_fmaddsubv4df4): Ditto. 7780 (fma4_fmaddsubv2df4): Ditto. 7781 (fma4_fmsubaddv8sf4): Ditto. 7782 (fma4_fmsubaddv4sf4): Ditto. 7783 (fma4_fmsubaddv4df4): Ditto. 7784 (fma4_fmsubaddv2df4): Ditto. 7785 (fma4i_fmadd<mode>4): Add FMA4 floating point multiply/add 7786 instructions for intrinsics. 7787 (fma4i_fmsub<mode>4): Ditto. 7788 (fma4i_fnmadd<mode>4): Ditto. 7789 (fma4i_fnmsub<mode>4): Ditto. 7790 (fma4i_vmfmadd<mode>4): Ditto. 7791 (fma4i_vmfmsub<mode>4): Ditto. 7792 (fma4i_vmfnmadd<mode>4): Ditto. 7793 (fma4i_vmfnmsub<mode>4): Ditto. 7794 (fma4i_fmadd<mode>4256): Ditto. 7795 (fma4i_fmsub<mode>4256): Ditto. 7796 (fma4i_fnmadd<mode>4256): Ditto. 7797 (fma4i_fnmsub<mode>4256): Ditto. 7798 (fma4i_fmaddsubv8sf4): Ditto. 7799 (fma4i_fmaddsubv4sf4): Ditto. 7800 (fma4i_fmaddsubv4df4): Ditto. 7801 (fma4i_fmaddsubv2df4): Ditto. 7802 (fma4i_fmsubaddv8sf4): Ditto. 7803 (fma4i_fmsubaddv4sf4): Ditto. 7804 (fma4i_fmsubaddv4df4): Ditto. 7805 (fma4i_fmsubaddv2df4): Ditto. 7806 7807 * doc/invoke.texi (-mfma4): Add documentation. 7808 * doc/extend.texi (x86 intrinsics): Add FMA4 intrinsics. 7809 78102009-09-29 Richard Henderson <rth@redhat.com> 7811 7812 * tree-eh.c (unsplit_eh): Do not unsplit if there's already 7813 an edge to the new destination block. 7814 78152009-09-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7816 7817 PR target/41393 7818 * pa.c (hppa_profile_hook): Use 7819 make_reg_eh_region_note_nothrow_nononlocal to add REG_EH_REGION note. 7820 78212009-09-29 Steve Ellcey <sje@cup.hp.com> 7822 Alexander Monakov <amonakov@ispras.ru> 7823 7824 PR target/41365 7825 * config/ia64/predicates.md (not_postinc_destination_operand): New. 7826 (not_postinc_memory_operand): New. 7827 (not_postinc_move_operand): New. 7828 * config/ia64/ia64.md (*cmovdi_internal): Disallow autoincrement. 7829 (*cmovsi_internal): Ditto. 7830 78312009-09-29 Pat Haugen <pthaugen@us.ibm.com> 7832 7833 * config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially 7834 restrict issue_rate in first pass when scheduling for register 7835 pressure. 7836 78372009-09-29 Basile Starynkevitch <basile@starynkevitch.net> 7838 Rafael Avila de Espindola <espindola@google.com> 7839 7840 * gengtype.c (plugin_output): New. 7841 (get_output_file_with_visibility): Return plugin_output for plugins. 7842 (main): Parse and use the -P option. 7843 * gty.texi: Update the command line format. 7844 78452009-09-29 Jakub Jelinek <jakub@redhat.com> 7846 7847 PR debug/41438 7848 * dwarf2out.c (const_ok_for_output_1, const_ok_for_output): New 7849 functions. 7850 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): Bail 7851 out if !const_ok_for_output. 7852 7853 PR debug/41474 7854 * dwarf2out.c (mem_loc_descriptor) <case CONCAT, case CONCATN, 7855 case VAR_LOCATION>: Remove gcc_unreachable (). 7856 78572009-09-29 Harsha Jagasia <harsha.jagasia@amd.com> 7858 7859 * config.gcc (i[34567]86-*-*): Remove mmintrin-common.h. 7860 (x86_64-*-*): Ditto. 7861 * config/i386/smmintrin.h: Move instructions in mmintrin-common.h 7862 back to smmintrin.h. 7863 * config/i386/cpuid.h (bit_SSE5): Remove SSE5 bit. 7864 * config/i386/x86intrin.h: Remove SSE5. 7865 * config/i386/mmintrin-common.h: Delete file. 7866 * doc/extend.texi (x86 intrinsics): Remove SSE5 flags and builtins. 7867 78682009-09-29 Richard Guenther <rguenther@suse.de> 7869 7870 * alias.c (ao_ref_from_mem): Properly deal with off decl accesses 7871 resulting from stack temporaries on STRICT_ALIGNMENT targets. 7872 78732009-09-29 Nick Clifton <nickc@redhat.com> 7874 7875 * function.c (current_function_name): If there is no current 7876 function just return "<none>". 7877 78782009-09-28 Sriraman Tallam <tmsriram@google.com> 7879 7880 * tree-pass.h (register_pass_info): New structure. 7881 (pass_positioning_ops): Move enum from gcc-plugin.h. 7882 (register_pass): New function. 7883 * gcc-plugin.h (plugin_pass): Delete structure. 7884 (pass_positioning_ops): Delete enum. 7885 * plugin.c (regsiter_pass): Delete function. 7886 (position_pass): Delete function. 7887 (added_pass_nodes): Delete variable. 7888 (prev_added_pass_nodes): Delete variable. 7889 (pass_list_node): Delete structure. 7890 * passes.c (make_pass_instance): New function. 7891 (next_pass_1): Change to call make_pass_instance. 7892 (pass_list_node): Move structure from gcc-plugin.h. 7893 (added_pass_nodes): Move variable from plugin.c. 7894 (prev_added_pass_nodes): Move variable from plugin.c. 7895 (position_pass): New function. 7896 (register_pass): New function. 7897 78982009-09-28 Easwaran Raman <eraman@google.com> 7899 7900 * ifcvt.c (noce_try_abs): Recognize pattern and call 7901 expand_one_cmpl_abs_nojump. 7902 * optabs.c (expand_one_cmpl_abs_nojump): New function. 7903 * optabs.h (expand_one_cmpl_abs_nojump): Declare. 7904 79052009-09-28 Ian Lance Taylor <iant@google.com> 7906 7907 PR middle-end/40500 7908 * c-opts.c (c_common_handle_option): Don't set 7909 warn_jump_misses_init for -Wall. 7910 * doc/invoke.texi (Warning Options): Update documentation. 7911 79122009-09-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 7913 7914 * Makefile.in ($(out_object_file)): Depend on 7915 gt-$(basename $(notdir $(out_file))).h. 7916 79172009-09-28 Richard Henderson <rth@redhat.com> 7918 7919 * except.h (struct eh_region_d): Add use_cxa_end_cleanup. 7920 * except.c (gen_eh_region): Set it. 7921 (duplicate_eh_regions_1): Copy it. 7922 * tree-eh.c (lower_resx): Use it to determine which function 7923 to call to resume. 7924 7925 * langhooks.h (struct lang_hooks): Add eh_use_cxa_end_cleanup. 7926 * langhooks-def.h (LANG_HOOKS_EH_USE_CXA_END_CLEANUP): New. 7927 * builtins.def (BUILT_IN_CXA_END_CLEANUP): New. 7928 * tree.c (build_common_builtin_nodes): Remove parameter. Build 7929 BUILT_IN_CXA_END_CLEANUP if necessary. 7930 7931 * c-common.c (c_define_builtins): Update call to 7932 build_common_builtin_nodes. 7933 79342009-09-28 Andrew Pinski <andrew_pinski@playstation.sony.com> 7935 7936 * spu.c (get_branch_target): Return NULL for ASM_OPERANDS patterns. 7937 79382009-09-28 Michael Matz <matz@suse.de> 7939 7940 * builtins.c (interclass_mathfn_icode): New helper. 7941 (expand_builtin_interclass_mathfn): Use it here, and split folding 7942 into ... 7943 (fold_builtin_interclass_mathfn): ... this new folder. 7944 (build_call_nofold_loc): New static helper. 7945 (build_call_nofold): New wrapper macro for above. 7946 (expand_builtin_int_roundingfn): Use it instead of build_call_expr. 7947 (expand_builtin_pow): Ditto. 7948 (expand_builtin_memset_args): Ditto. 7949 (expand_builtin_printf): Ditto. 7950 (expand_builtin_fprintf): Ditto. 7951 (expand_builtin_sprintf): Ditto. 7952 (expand_builtin_memory_chk): Ditto. 7953 (expand_builtin_mempcpy_args): Ditto and don't call folders. 7954 (expand_builtin_stpcpy): Ditto. 7955 (expand_builtin_strcmp): Ditto. 7956 (expand_builtin_strncmp): Ditto. 7957 (expand_builtin_strcpy): Remove FNDECL and MODE arguments. 7958 (expand_builtin_strcpy_args): Don't call folders. 7959 (expand_builtin_memcmp): Ditto. 7960 (expand_builtin_strncpy): Ditto, and use target. 7961 (expand_builtin_memcpy): Ditto. 7962 (expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr, 7963 expand_builtin_strpbrk, expand_builtin_memmove, 7964 expand_builtin_memmove_args, expand_builtin_bcopy, 7965 expand_builtin_memchr, expand_builtin_strcat, expand_builtin_strncat, 7966 expand_builtin_strspn, expand_builtin_strcspn, 7967 expand_builtin_fputs): Remove these. 7968 (expand_builtin): Don't call the above, change calls to other 7969 expanders that changed prototype. 7970 (fold_builtin_stpcpy): New folder split out from expand_builtin_stpcpy. 7971 (fold_builtin_1 <ISFINITE, ISINF, ISNORMAL>): Call 7972 fold_builtin_interclass_mathfn. 7973 (fold_builtin_2 <STPCPY>): Call fold_builtin_stpcpy. 7974 (fold_builtin_strcat): Add folding split from expand_builtin_strcat. 7975 7976 * fold-const.c (fold_binary_loc <NE_EXPR>): Add !exp != 0 -> !exp. 7977 * passes.c (init_optimization_passes): Move pass_fold_builtins 7978 after last phiopt pass. 7979 * tree-inline.c (fold_marked_statements): When folding builtins 7980 iterate over all instruction potentially generated. 7981 * tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Declare 7982 earlier. 7983 (fold_gimple_call): Use it to always fold calls (into potentially 7984 multiple instructions). 7985 * tree-ssa-dom.c (optimize_stmt): Resolve __builtin_constant_p 7986 calls into zero at this time. 7987 * tree-ssa-propagate.c (substitute_and_fold): Ignore multiple 7988 statements generated by builtin folding. 7989 79902009-09-28 Nick Clifton <nickc@redhat.com> 7991 7992 * config/m32r/m32r.c (m32r_is_insn): Return false for debugging insns. 7993 79942009-09-28 Duncan Sands <baldrick@free.fr> 7995 7996 * gcc-plugin.h (PLUGIN_REGISTER_GGC_CACHES): New event. 7997 * plugin.c (plugin_event_name): Add PLUGIN_REGISTER_GGC_CACHES. 7998 (register_callback): Dispatch it. 7999 (invoke_plugin_callbacks): Incorporate in sanity check. 8000 * ggc.h (ggc_register_cache_tab): Add declaration. 8001 * ggc-common.c (ggc_register_root_tab): Simplify. 8002 (const_ggc_cache_tab_t): New typedef. 8003 (extra_cache_vec): New vector of dynamically added cache tables. 8004 (ggc_register_cache_tab): New function. 8005 (ggc_scan_cache_tab): New function. 8006 (ggc_mark_roots): Simplify dynamic roots. Handle dynamic caches. 8007 * doc/plugins.texi: Document PLUGIN_REGISTER_GGC_CACHES. 8008 80092009-09-27 Richard Henderson <rth@redhat.com> 8010 8011 * tree-ssa-ccp.c (optimize_stack_restore): Relax the conditions under 8012 which we remove __builtin_stack_restore. 8013 80142009-09-27 Bernd Schmidt <bernd.schmidt@analog.com> 8015 8016 * loop-iv.c (iv_analyze_op): Use function_invariant_p, not CONSTANT_P, 8017 to test for GRD_INVARIANT. 8018 (simple_rhs_p): Anything that's function_invariant_p is fine. 8019 80202009-09-27 Rafael Avila de Espindola <espindola@google.com> 8021 8022 * gengtype.c (main): Use plunge_files instead of plugin_output. 8023 80242009-09-27 Basile Starynkevitch <basile@starynkevitch.net> 8025 Rafael Avila de Espindola <espindola@google.com> 8026 8027 * gengtype.c (write_root, write_roots): Add a emit_pch argument. 8028 Don't print pch related info if it is false. 8029 (main): Don't print pch info in plugin mode. 8030 80312009-09-27 Eric Botcazou <ebotcazou@adacore.com> 8032 8033 * dwarf2out.c (enum dw_val_class): Replace dw_val_class_long_long 8034 with dw_val_class_const_double. 8035 (struct dw_val_struct): Replace val_long_long with val_double and 8036 adjust for above change. 8037 (output_loc_operands): Likewise. 8038 (add_AT_long_long): Rename into... 8039 (add_AT_double): ...this. 8040 (print_die): Replace dw_val_class_long_long with 8041 dw_val_class_const_double and adjust. 8042 (attr_checksum): Likewise. 8043 (same_dw_val_p): Likewise. 8044 (size_of_die): Likewise. 8045 (value_format): Likewise. 8046 (output_die): Likewise. 8047 (loc_descriptor) <CONST_DOUBLE>: Likewise. 8048 (add_const_value_attribute) <CONST_DOUBLE>: Call add_AT_double 8049 instead of add_AT_long_long. 8050 (add_bound_info) <INTEGER_CST>: Generate the bound as an unsigned 8051 value with the precision of its type. 8052 80532009-09-27 Andreas Schwab <schwab@linux-m68k.org> 8054 8055 PR c/41476 8056 * c-typeck.c (build_conditional_expr): Use the readonly and 8057 volatile flags of the operand types, not of the operands itself. 8058 80592009-09-27 Peter O'Gorman <pogma@thewrittenword.com> 8060 8061 * collect2.c (main): Look for -brtl before adding libraries. 8062 80632009-09-27 Jonathan Gray <jsg@openbsd.org> 8064 8065 * config.gcc: Update OpenBSD targets. 8066 * config/openbsd-stdint.h: New file. 8067 * config/openbsd-libpthread.h: New file. 8068 * config/openbsd.h: Update and break out LIB_SPEC definition. 8069 * config/alpha/openbsd.h: Overhaul to reflect ELF migration. 8070 * config/i386/openbsdelf.h: Correct types. 8071 * config/m68k/openbsd.h: Likewise. 8072 * config/mips/openbsd.h: Likewise. 8073 * config/vax/openbsd.h: Likewise. 8074 80752009-09-27 Eric Botcazou <ebotcazou@adacore.com> 8076 8077 * fold-const.c (maybe_lvalue_p): Return false for M(IN|AX)_EXPR. 8078 (extract_muldiv_1) <MINUS_EXPR>: Swap operands if necessary. 8079 * stor-layout.c (layout_type) <ARRAY_TYPE>: Do not take the maximum 8080 of the length and zero. 8081 80822009-09-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 8083 8084 * Makefile.in (TOPLEV_H): Use $(INPUT_H) not input.h. 8085 (FLAGS_H): Add options.h $(REAL_H). 8086 (SEL_SCHED_IR_H): Add $(BITMAP_H) vecprim.h $(CFGLOOP_H). 8087 (TREE_VECTORIZER_H): New. 8088 (EBITMAP_H): Renamed from EBIMAP_H. 8089 (c-decl.o, c-objc-common.o, c-pretty-print.o, attribs.o, c-omp.o) 8090 (gtype-desc.o, ggc-common.o, ggc-page.o, ggc-zone.o, langhooks.o) 8091 (tree.o, tree-ssa-structalias.o, tree-ssa-ter.o, tree-ssanames.o) 8092 (tree-phinodes.o, tree-ssa-loop.o, tree-ssa-math-opts.o) 8093 (gimple-low.o, omp-low.o, sese.o, graphite-blocking.o) 8094 (graphite-clast-to-gimple.o, graphite-dependences.o) 8095 (graphite-interchange.o, graphite-poly.o, graphite-scop-detection.o) 8096 (graphite-sese-to-poly.o, tree-vect-loop.o, tree-vect-loop-manip.o) 8097 (tree-vect-patterns.o, tree-vect-slp.o, tree-vect-stmts.o) 8098 (tree-vect-data-refs.o, tree-vectorizer.o, gimple.o, tree-mudflap.o) 8099 (targhooks.o, stmt.o, emit-rtl.o, ipa.o, matrix-reorg.o, ipa-inline.o) 8100 (gcse.o, tree-ssa-ccp.o, df-byte-scan.o, vec.o, caller-save.o) 8101 (ira-build.o, ira-costs.o, ira-color.o, ira-emit.o, ira.o) 8102 (haifa-sched.o, sched-rgn.o, sel-sched.o, sel-sched-dump.o) 8103 (sel-sched-ir.o, final.o, $(out_object_file)): Dependencies 8104 updated and fixed as per above changes and per 8105 check_makefile_deps.sh output. 8106 8107 PR bootstrap/40928 8108 * configure.ac: Use $LIBS for '-ldl', not $LDFLAGS. 8109 * configure: Regenerate. 8110 81112009-09-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8112 8113 * doc/install.texi: Update minimum MPC version to 0.7. 8114 81152009-09-26 Gerald Pfeifer <gerald@pfeifer.com> 8116 8117 * doc/install.texi (Binaries): Remove reference to the binary 8118 distribution CD-ROM from the FSF. 8119 81202009-09-26 Michael Matz <matz@suse.de> 8121 8122 PR lto/40758 8123 PR middle-end/41470 8124 * tree-ssa-coalesce.c (coalesce_ssa_name): Add only SSA names 8125 that are mentioned in the body. 8126 81272009-09-26 Michael Matz <matz@suse.de> 8128 8129 PR tree-optimization/41454 8130 * tree-ssa-dom (stmts_to_rescan): Remove variable. 8131 (tree_ssa_dominator_optimize): Don't allocate and free it. 8132 (dom_opt_leave_block): Don't iterate over it. 8133 (eliminate_redundant_computations): Don't return a value. 8134 (cprop_operand, cprop_into_stmt): Ditto. 8135 (optimize_stmt): Don't defer updating stmts. 8136 81372009-09-25 Dodji Seketeli <dodji@redhat.com> 8138 8139 * dwarf2out.c (dwarf_tag_name, gen_generic_params_dies, 8140 generic_parameter_die, template_parameter_pack_die, 8141 gen_formal_parameter_die, gen_subprogram_die): Adjust after 8142 renaming DW_TAG_formal_parameter_pack and 8143 DW_TAG_template_parameter_pack into DW_TAG_GNU_formal_parameter_pack 8144 and DW_TAG_GNU_template_parameter_pack. 8145 81462009-09-25 Anatoly Sokolov <aesok@post.ru> 8147 8148 * config/v850/v850.h (FUNCTION_VALUE): Remove. 8149 * config/v850/v850.c (v850_function_value): New function. 8150 (TARGET_FUNCTION_VALUE): Define. 8151 81522009-09-25 Jakub Jelinek <jakub@redhat.com> 8153 8154 * tree-vect-stmts.c (vectorizable_call): Call 8155 mark_symbols_for_renaming after vect_finish_stmt_generation. 8156 8157 * dwarf2out.c (tls_mem_loc_descriptor): Pass 1 instead of 2 8158 to loc_descriptor_from_tree. 8159 (add_location_or_const_value_attribute): Pass 0 instead of 2 8160 for decl_by_reference_p decls. 8161 81622009-09-25 Richard Guenther <rguenther@suse.de> 8163 8164 PR middle-end/41463 8165 * tree-dfa.c (get_ref_base_and_extent): Fix issue with trailing 8166 arrays again. 8167 81682009-09-25 Ben Elliston <bje@au.ibm.com> 8169 8170 * doc/invoke.texi (RS/6000 and PowerPC Options): Add missing comma 8171 after `power7'. 8172 81732009-09-25 Alan Modra <amodra@bigpond.net.au> 8174 8175 * config/rs6000/rs6000.md (load_toc_v4_PIC_3c): Correct POWER 8176 form of instruction. 8177 81782009-09-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8179 8180 PR middle-end/41435 8181 * fold-const.c (const_binop): Handle complex int division. 8182 * tree-complex.c (expand_complex_div_straight, 8183 expand_complex_div_wide): Update comments. 8184 81852009-09-24 DJ Delorie <dj@redhat.com> 8186 8187 PR target/41456 8188 * config/m32c/m32c.h (REG_CLASS_CONTENTS): Add R13. 8189 (reg_class): Likewise. 8190 (REG_CLASS_NAMES): Likewise. 8191 * config/m32c/m32c.c (m32c_reg_class_from_constraint): Likewise. 8192 (m32c_override_options): Disable -fivopts for M32C. 8193 81942009-09-24 Michael Meissner <meissner@linux.vnet.ibm.com> 8195 8196 * config/rs6000/predicates.md (indexed_or_indirect_operand): 8197 Delete VSX load/store with update support. 8198 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Ditto. 8199 * config/rs6000/vsx.md (vsx_mov<mode>): Ditto. 8200 (vsx_movti): Ditto. 8201 (VSX_U): Delete. 8202 (VSbit): Ditto. 8203 (VStype_load_update): Ditto. 8204 (VStype_store_update): Ditto. 8205 (vsx_load<VSX_U:mode>_update_<P:mptrsize>): Ditto. 8206 (vsx_store<VSX_U:mode>_update_<P:mptrsize>): Ditto. 8207 8208 * config/rs6000/rs6000.h (enum rs6000_builtins): Delete VSX 8209 load/store with update builtins. 8210 82112009-09-24 Kai Tietz <kai.tietz@onevision.com> 8212 8213 * libgcc2.c (L_trampoline): Prototype for getpagesize 8214 and mprotect in WINNT case. 8215 82162009-09-24 Anatoly Sokolov <aesok@post.ru> 8217 8218 * config/rs6000/rs6000.h (FUNCTION_VALUE): Remove macro. 8219 * config/rs6000/rs6000-protos.h (rs6000_function_value): Remove. 8220 * config/rs6000/rs6000.c (rs6000_function_value): Make static, add 8221 'outgoing' argument. 8222 (TARGET_FUNCTION_VALUE): Define. 8223 82242009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 8225 8226 * config/darwin.h (DWARF2_DEBUGGING_INFO): Define as 1. 8227 82282009-09-24 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 8229 8230 PR bootstrap/41405 8231 * common.opt: Initialize dwarf_strict to -1. 8232 * toplev.c (process_options): Catch unset dwarf_strict 8233 and set to 0 for all targets not overriding. 8234 * config/darwin.c (darwin_override_options): Catch unset 8235 dwarf_strict and override to 1. 8236 82372009-09-24 Jeff Law <law@redhat.com> 8238 8239 * tree-into-ssa.c (rewrite_into_ssa): Free interesting_blocks. 8240 82412009-09-24 Richard Guenther <rguenther@suse.de> 8242 8243 PR tree-optimization/36143 8244 PR tree-optimization/38747 8245 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only 8246 create VIEW_CONVERT_EXPRs for TBAA compatible accesses. 8247 82482009-09-24 Jakub Jelinek <jakub@redhat.com> 8249 8250 PR bootstrap/41457 8251 * dwarf2out.c (add_const_value_attribute): For HIGH and CONST_FIXED, 8252 return false instead of gcc_unreachable (). For CONST return the 8253 value returned by recursive call instead of always returning true. 8254 (tree_add_const_value_attribute): Return the value returned by 8255 add_const_value_attribute instead of always returning true if rtl 8256 is non-NULL. 8257 82582009-09-23 Justin Seyster <jrseys@gmail.com> 8259 8260 * Makefile.in (PLUGIN_HEADERS): Include real.h. 8261 82622009-09-24 Jakub Jelinek <jakub@redhat.com> 8263 8264 * cgraphunit.c (cgraph_lower_function): Revert last change. 8265 * targhooks.c (default_static_chain): Use !DECL_STATIC_CHAIN 8266 instead of DECL_NO_STATIC_CHAIN. 8267 * tree-cfg.c (verify_gimple_call): Likewise. 8268 * tree-nested.c (get_chain_decl, get_chain_field, 8269 convert_tramp_reference_op, convert_gimple_call): Likewise. 8270 (convert_all_function_calls): Likewise. Always set or clear 8271 DECL_STATIC_CHAIN initially, for !n->outer clear it. 8272 (lower_nested_functions): Remove DECL_NO_STATIC_CHAIN checking code. 8273 * c-parser.c (c_parser_declaration_or_fndef): Set DECL_STATIC_CHAIN 8274 if nested. 8275 * print-tree.c (print_node): Handle DECL_STATIC_CHAIN instead of 8276 DECL_NO_STATIC_CHAIN. 8277 * config/i386/i386.c (ix86_static_chain): Use !DECL_STATIC_CHAIN 8278 instead of DECL_NO_STATIC_CHAIN. 8279 (ix86_function_regparm, find_drap_reg): Likewise. Don't test 8280 decl_function_context. 8281 * varasm.c (initializer_constant_valid_p): Likewise. 8282 * tree.h (DECL_NO_STATIC_CHAIN): Renamed to ... 8283 (DECL_STATIC_CHAIN): ... this. 8284 * config/moxie/moxie.c (moxie_static_chain): Use !DECL_STATIC_CHAIN 8285 instead of DECL_NO_STATIC_CHAIN. 8286 82872009-09-23 Basile Starynkevitch <basile@starynkevitch.net> 8288 Rafael Avila de Espindola <espindola@google.com> 8289 8290 * gengtype.c (nb_plugin_files): Make it unsigned to match 8291 num_gt_files. Adjust other variables to avoid warnings. 8292 (main): Allocate an all zero lang_bitmap before each plugin file name 8293 to match regular file names. 8294 82952009-09-23 Richard Henderson <rth@redhat.com> 8296 8297 * doc/tm.texi (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove. 8298 (TARGET_STATIC_CHAIN): Mention that this hook must be used for 8299 static chain passed in memory. 8300 * system.h (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Poison. 8301 * targhooks.c (default_static_chain): Don't handle STATIC_CHAIN, 8302 STATIC_CHAIN_INCOMING. Issue a sorry if there's no 8303 STATIC_CHAIN_REGNUM defined. 8304 8305 * config/picochip/picochip-protos.h: s/class/klass/. 8306 * config/picochip/picochip.c (TARGET_STATIC_CHAIN): New. 8307 (picochip_static_chain): New. 8308 * config/picochip/picochip.h (STATIC_CHAIN): Remove. 8309 (STATIC_CHAIN_INCOMING): Remove. 8310 8311 * config/xtensa/xtensa.c (TARGET_STATIC_CHAIN): New. 8312 (xtensa_static_chain): New. 8313 * config/xtensa/xtensa.h (STATIC_CHAIN): Remove. 8314 (STATIC_CHAIN_INCOMING): Remove. 8315 83162009-09-23 Anatoly Sokolov <aesok@post.ru> 8317 8318 * config/pa/pa.h (FUNCTION_VALUE): Remove macro. 8319 * config/pa/pa-protos.h (function_value): Remove. 8320 * config/pa/pa.c (pa_function_value): Rename from function_value. 8321 Make static, add 'outgoing' argument. 8322 (TARGET_FUNCTION_VALUE): Define. 8323 83242009-09-23 Anatoly Sokolov <aesok@post.ru> 8325 8326 * config/avr/avr.c (avr_regs_to_save): Use current_function_is_leaf 8327 instead of cfun->machine->is_leaf. 8328 * config/avr/avr.h (machine_function): Remove is_leaf field. 8329 83302009-09-23 Jakub Jelinek <jakub@redhat.com> 8331 8332 PR debug/41439 8333 * dwarf2out.c (address_of_int_loc_descriptor): Don't emit 8334 DW_OP_piece after DW_OP_stack_value, adjust size calculations 8335 for it, when DW_OP_stack_value and DW_OP_implicit_value has 8336 the same size, prefer DW_OP_stack_value. 8337 (loc_descriptor, loc_list_for_address_of_addr_expr_of_indirect_ref, 8338 loc_list_from_tree): Don't emit DW_OP_piece after DW_OP_stack_value. 8339 83402009-09-23 Alexandre Oliva <aoliva@redhat.com> 8341 8342 PR debug/41353 8343 * var-tracking.c (add_with_sets): Sort MO_VAL_LOC last among uses. 8344 83452009-09-23 Alexandre Oliva <aoliva@redhat.com> 8346 8347 PR debug/41248 8348 * cfgexpand.c (convert_debug_memory_address): New. 8349 (expand_debug_expr): Convert base address and offset to the same 8350 mode. Use it to convert addresses to other modes. Accept 8351 ptr_mode addresses. 8352 83532009-09-23 Dodji Seketeli <dodji@redhat.com> 8354 8355 PR debug/41065 8356 * function.h (types_used_by_vars_hash): Declare new hash table. 8357 (types_used_by_vars_eq, types_used_by_var_decl_insert): Declare 8358 equality and hash function for the hash table. 8359 (types_used_by_cur_var_decl): Declare a new global chained list. 8360 (types_used_by_var_decl_insert): Declare new function. 8361 * function.c (types_used_by_vars_hash): Define the hashtable ... 8362 (types_used_by_vars_eq, types_used_by_vars_do_hash): ... as well as 8363 its equality and hash functions. 8364 (hash_types_used_by_vars_entry): New hash helper. 8365 (types_used_by_cur_var_decl): Define the global chained list. 8366 (used_types_insert): Update the list of types used by the global 8367 variable being parsed. 8368 (types_used_by_var_decl_insert): Define new function. 8369 * c-common.h (record_types_used_by_current_var_decl): Declare ... 8370 * c-common.c (record_types_used_by_current_var_decl): ... new 8371 function. 8372 * c-decl.c (finish_decl): Record the types used by the global 8373 variable declaration we've just parsed. 8374 * dwarf2out.c (premark_used_types): Insert a new line between 8375 comment and function. 8376 (premark_used_types_helper): Fix comment. 8377 (premark_types_used_by_global_vars_helper, 8378 premark_types_used_by_global_vars): New functions. 8379 (prune_unused_types): Do not prune types used by global variables. 8380 83812009-09-23 Richard Guenther <rguenther@suse.de> 8382 8383 * alias.c (ao_ref_from_mem): Correct for negative MEM_OFFSET 8384 produced for bigendian targets with promoted subregs. 8385 83862009-09-23 Richard Guenther <rguenther@suse.de> 8387 8388 * value-prof.c (gimple_ic): Purge old EH edges only after building 8389 the new ones. 8390 83912009-09-23 Nick Clifton <nickc@redhat.com> 8392 8393 * config/arc/arc.c (arc_trampoline_init): Fix typo. 8394 83952009-09-23 Jakub Jelinek <jakub@redhat.com> 8396 8397 PR bootstrap/41405 8398 * doc/invoke.texi: Document -gstrict-dwarf and -gno-strict-dwarf. 8399 8400 PR bootstrap/41436 8401 * cgraphunit.c (cgraph_lower_function): Set DECL_NO_STATIC_CHAIN 8402 on non-nested functions. 8403 84042009-09-23 Jakub Jelinek <jakub@redhat.com> 8405 Jan Hubicka <jh@suse.cz> 8406 8407 * dwarf2out.c (loc_list_plus_const): Only define if 8408 DWARF2_DEBUGGING_INFO. 8409 (address_of_int_loc_descriptor): Likewise. 8410 8411 PR debug/41411 8412 * dwarf2out.c (mem_loc_descriptor): Handle HIGH. 8413 84142009-09-23 Uros Bizjak <ubizjak@gmail.com> 8415 8416 PR c/39779 8417 * c-typeck.c (build_binary_op) <short_shift>: Check that integer 8418 constant is more than zero. 8419 84202009-09-23 Alan Modra <amodra@bigpond.net.au> 8421 8422 PR target/40473 8423 * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't 8424 call final to emit non-scheduled prologue, instead insert at entry. 8425 84262009-09-22 Loren J. Rittle <ljrittle@acm.org> 8427 Joseph S. Myers <joseph@codesourcery.com> 8428 8429 * doc/install.texi (*-*-freebsd*): Add proper format codes. 8430 84312009-09-22 Basile Starynkevitch <basile@starynkevitch.net> 8432 Rafael Avila de Espindola <espindola@google.com> 8433 8434 * gengtype.c (is_file_equal): New function. 8435 (close_output_files): Use is_file_equal. Free of->buf. 8436 84372009-09-22 Basile Starynkevitch <basile@starynkevitch.net> 8438 Rafael Avila de Espindola <espindola@google.com> 8439 8440 * gengtype.c (write_types, write_local): Add the output_header 8441 argument. Update all callers. 8442 84432009-09-22 Dodji Seketeli <dodji@redhat.com> 8444 8445 * dwarf2out.c (template_parameter_pack_die, 8446 gen_formal_parameter_pack_die ): New functions. 8447 (make_ith_pack_parameter_name): Remove this function. 8448 (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and 8449 DW_TAG_formal_parameter_pack. 8450 (gen_generic_params_dies): Represent each template parameter pack 8451 by a DW_TAG_template_parameter_pack DIE. Argument pack elements are 8452 represented by usual DW_TAG_template_*_parameter DIEs that are 8453 children of the DW_TAG_template_parameter_pack element DIE. 8454 (generic_parameter_die): This doesn't deal with parameter pack 8455 names anymore. Don't generate DW_AT_name for some DIEs, e.g. children 8456 of parameter pack DIEs. 8457 (gen_formal_parameter_die): Add a flag to not emit DW_AT_name 8458 in certain cases, e.g. for pack elements. 8459 (gen_formal_types_die, gen_decl_die): Adjust usage of 8460 gen_formal_parameter_die. 8461 (gen_subprogram_die): Represent each function parameter pack by a 8462 DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are 8463 represented by usual DW_TAG_formal_parameter DIEs that are children 8464 of the DW_TAG_formal_parameter_pack DIE. Remove references to 8465 ____builtin_va_alist decls as no part of the compiler uses those 8466 anymore. 8467 * langhooks.h (struct lang_hooks_for_decls): Add 8468 function_parm_expanded_from_pack_p, get_generic_function_decl 8469 and function_parameter_pack_p hooks. Fix comment for 8470 get_innermost_generic_parms hook. 8471 * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P, 8472 LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook 8473 macros and use them to initialize lang_hook. 8474 84752009-09-22 Richard Henderson <rth@redhat.com> 8476 8477 * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison. 8478 (TRAMPOLINE_ADJUST_ADDRESS): Poison. 8479 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize 8480 on TRAMPOLINE_TEMPLATE. 8481 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on 8482 TRAMPOLINE_ADJUST_ADDRESS. 8483 * targhooks.c (default_asm_trampoline_template): Remove. 8484 (default_trampoline_adjust_address): Remove. 8485 (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE. 8486 * targhooks.h: Update decls. 8487 84882009-09-22 Dave Korn <dave.korn.cygwin@gmail.com> 8489 8490 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable. 8491 * config/i386/cygwin.h (LIBGCJ_SONAME): Define. 8492 * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise. 8493 84942009-09-22 Alexandre Oliva <aoliva@redhat.com> 8495 8496 PR debug/41295 8497 * reload1.c (reload): Reset debug insns with pseudos without 8498 equivalences. 8499 85002009-09-22 Janis Johnson <janis187@us.ibm.com> 8501 8502 * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return 8503 unconditional true for decimal float modes. 8504 * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto. 8505 * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto. 8506 85072009-09-22 Loren J. Rittle <ljrittle@acm.org> 8508 8509 * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME. 8510 Enable a new case for __FreeBSD__ >= 7. 8511 * crtstuff.c: Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7. 8512 * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP. 8513 * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC 8514 and USE_LD_AS_NEEDED. 8515 8516 * doc/install.texi (*-*-freebsd*): Update target information. 8517 85182009-09-22 Richard Guenther <rguenther@suse.de> 8519 8520 PR middle-end/41395 8521 * tree-dfa.c (get_ref_base_and_extent): Handle trailing 8522 arrays really properly. 8523 85242009-09-22 Richard Henderson <rth@redhat.com> 8525 8526 PR target/41246 8527 * target.h (struct gcc_target): Add asm_out.trampoline_template, 8528 calls.static_chain, calls.trampoline_init, 8529 calls.trampoline_adjust_address. 8530 * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8531 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New. 8532 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New. 8533 * builtins.c (expand_builtin_setjmp_receiver): Use 8534 targetm.calls.static_chain; only clobber registers. 8535 (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init; 8536 set up memory attributes properly for the trampoline block. 8537 (expand_builtin_adjust_trampoline): Use 8538 targetm.calls.trampoline_adjust_address. 8539 * calls.c (prepare_call_address): Add fndecl argument. Use 8540 targetm.calls.static_chain. 8541 * df-scan.c (df_need_static_chain_reg): Remove. 8542 (df_get_entry_block_def_set): Use targetm.calls.static_chain; 8543 consolodate static chain handling. 8544 * doc/tm.texi: Document new hooks. 8545 * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove. 8546 (init_emit_regs): Don't initialize them. 8547 * expr.h (prepare_call_address): Update decl. 8548 * final.c (profile_function): Use targetm.calls.static_chain. 8549 * function.c (expand_function_start): Likewise. 8550 * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove. 8551 * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain; 8552 only clobber registers. 8553 * targhooks.c (default_static_chain): New. 8554 (default_asm_trampoline_template, default_trampoline_init): New. 8555 (default_trampoline_adjust_address): New. 8556 * targhooks.h: Declare them. 8557 * varasm.c (assemble_trampoline_template): Use 8558 targetm.asm_out.trampoline_template. Make the memory block const 8559 and set its size. 8560 8561 * config/alpha/alpha.c (alpha_trampoline_init): Rename from 8562 alpha_initialize_trampoline. Make static. Merge VMS parameter 8563 differences into the TARGET_ABI_OPEN_VMS code block. 8564 (TARGET_TRAMPOLINE_INIT): New. 8565 * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove. 8566 (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove. 8567 * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove. 8568 (INITIALIZE_TRAMPOLINE): Remove. 8569 8570 * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New. 8571 (TRAMPOLINE_TEMPLATE): Merge with ... 8572 (INITIALIZE_TRAMPOLINE): ... this and move ... 8573 * config/arc/arc.c (arc_trampoline_init): ... here. 8574 (TARGET_TRAMPOLINE_INIT): New. 8575 8576 * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8577 (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New. 8578 (arm_asm_trampoline_template): New. 8579 (arm_trampoline_init, arm_trampoline_adjust_address): New. 8580 * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE, 8581 THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all 8582 code to arm_asm_trampoline_template. 8583 (TRAMPOLINE_ADJUST_ADDRESS): Move code to 8584 arm_trampoline_adjust_address. 8585 (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init; 8586 adjust for target hook parameters. 8587 8588 * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): 8589 Remove. 8590 8591 * config/bfin/bfin-protos.h (initialize_trampoline): Remove. 8592 * config/bfin/bfin.c (bfin_asm_trampoline_template): New. 8593 (bfin_trampoline_init): Rename from initialize_trampoline; 8594 make static; update for target hook parameters. 8595 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New. 8596 * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to 8597 bfin_asm_trampoline_template. 8598 (INITIALIZE_TRAMPOLINE): Remove. 8599 8600 * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8601 TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template, 8602 cris_trampoline_init): New. 8603 * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to 8604 cris_asm_trampoline_template. 8605 (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init; 8606 adjust for target hook parameters. 8607 8608 * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove. 8609 8610 * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8611 TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template, 8612 fr30_trampoline_init): New. 8613 * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to 8614 fr30_asm_trampoline_template. 8615 (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init; 8616 adjust for target hook parameters. 8617 8618 * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New. 8619 (frv_trampoline_init): Rename from frv_initialize_trampoline; 8620 make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook. 8621 * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove. 8622 * config/frv/frv-protos.h (frv_initialize_trampoline): Remove. 8623 8624 * config/h8300/h8300.c (h8300_trampoline_init): New. 8625 (TARGET_TRAMPOLINE_INIT): New. 8626 * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code 8627 to h8300_trampoline_init and adjust for hook parameters. 8628 8629 * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove. 8630 * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New. 8631 (ia64_trampoline_init): Rename from ia64_initialize_trampoline; 8632 make static; adjust for hook parameters. 8633 * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove. 8634 8635 * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8636 (TARGET_TRAMPOLINE_INIT): New. 8637 (iq2000_asm_trampoline_template, iq2000_trampoline_init): New. 8638 * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to 8639 iq2000_asm_trampoline_template. 8640 (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init. 8641 (TRAMPOLINE_CODE_SIZE): New. 8642 (TRAMPOLINE_SIZE): Use it. 8643 (TRAMPOLINE_ALIGNMENT): Follow Pmode. 8644 8645 * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove. 8646 * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New. 8647 (m32c_trampoline_init): Rename from m32c_initialize_trampoline; 8648 adjust for hook parameters. 8649 * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove. 8650 8651 * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New. 8652 (m32r_trampoline_init): New. 8653 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to 8654 m32r_trampoline_init. 8655 8656 * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New. 8657 (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline; 8658 make static; update for hook parameters. 8659 * config/m68hc11/m68hc11-protos.h: Update. 8660 * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove. 8661 8662 * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8663 (TARGET_TRAMPOLINE_INIT): New. 8664 (mcore_function_value): Fix typo. 8665 (mcore_asm_trampoline_template, mcore_trampoline_init): New. 8666 * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code 8667 to mcore_asm_trampoline_template. 8668 (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init. 8669 8670 * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove. 8671 * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New. 8672 (mep_trampoline_init): Rename from mep_init_trampoline; make static; 8673 update for hook parameters. 8674 * config/mep/mep-protos.h (mep_init_trampoline): Remove. 8675 8676 * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8677 mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT, 8678 mips_trampoline_init): New. 8679 * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to 8680 mips_asm_trampoline_template. 8681 (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init; 8682 update for hook parameters. 8683 8684 * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8685 (TARGET_TRAMPOLINE_INIT): New. 8686 (mmix_trampoline_size): Remove. 8687 (mmix_asm_trampoline_template): Rename from mmix_trampoline_template; 8688 make static. Remove out-of-date tetra vs octa comment. 8689 (mmix_trampoline_init): Rename from mmix_initialize_trampoline; 8690 make static; update for hook parameters. 8691 * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove. 8692 (INITIALIZE_TRAMPOLINE): Remove. 8693 (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size. 8694 (TRAMPOLINE_ALIGNMENT): New. 8695 * gcc/config/mmix/mmix-protos.h: Update. 8696 8697 * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8698 mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT, 8699 mn10300_trampoline_init): New. 8700 * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to 8701 mn10300_asm_trampoline_template. 8702 (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init. 8703 8704 * config/moxie/moxie.c (moxie_static_chain, 8705 moxie_asm_trampoline_template, moxie_trampoline_init, 8706 TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE, 8707 TARGET_TRAMPOLINE_INIT): New. 8708 * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to 8709 moxie_trampoline_init. 8710 (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template. 8711 (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove. 8712 8713 * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE, 8714 pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT, 8715 pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS, 8716 pa_trampoline_adjust_address): New. 8717 * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to 8718 pa_asm_trampoline_template. 8719 (TRAMPOLINE_ALIGNMENT): New. 8720 (TRAMPOLINE_CODE_SIZE): Move to pa.c. 8721 (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init; 8722 adjust for hook parameters. 8723 (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address. 8724 8725 * config/pdp11/pdp11.c (pdp11_trampoline_init): New. 8726 (TARGET_TRAMPOLINE_INIT): New. 8727 * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove. 8728 (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init. 8729 8730 * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove. 8731 8732 * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove. 8733 * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New. 8734 (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline; 8735 make static; adjust parameters for the hook. 8736 * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove. 8737 8738 * config/s390/s390.c (s390_asm_trampoline_template): Rename from 8739 s390_trampoline_template; make static. 8740 (s390_trampoline_init): Rename from s390_initialize_trampoline; 8741 make static; adjust for target hook. 8742 (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New. 8743 * config/s390/s390-protos.h: Remove trampoline decls. 8744 * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove. 8745 (TRAMPOLINE_TEMPLATE): Remove. 8746 (TRAMPOLINE_ALIGNMENT): New. 8747 8748 * config/score/score-protos.h (score_initialize_trampoline): Remove. 8749 * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8750 (TARGET_TRAMPOLINE_INIT): New. 8751 (score_asm_trampoline_template): New. 8752 (score_trampoline_init): Rename from score_initialize_trampoline; 8753 make static; adjust for hook parameters. 8754 * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to 8755 score[37]_asm_trampoline_template. 8756 (INITIALIZE_TRAMPOLINE): Remove. 8757 * config/score/score3.c (score3_asm_trampoline_template): New. 8758 (score3_trampoline_init): Rename from score3_initialize_trampoline; 8759 adjust for target hook. 8760 * config/score/score7.c (score7_asm_trampoline_template): New. 8761 (score7_trampoline_init): Rename from score7_initialize_trampoline; 8762 adjust for target hook. 8763 * config/score/score3.h, config/score/score7.h: Update. 8764 8765 * config/sh/sh-protos.h (sh_initialize_trampoline): Remove. 8766 * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New. 8767 (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New. 8768 (sh_trampoline_init): Rename from sh_initialize_trampoline; 8769 make static; adjust for target hook parameters. 8770 (sh_trampoline_adjust_address): New. 8771 * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New. 8772 (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address. 8773 8774 * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New. 8775 (sparc32_initialize_trampoline): Rename from 8776 sparc_initialize_trampoline; make static; replace tramp parameter 8777 with m_tramp and update memory accesses. 8778 (sparc64_initialize_trampoline): Similarly. 8779 (sparc_trampoline_init): New. 8780 * config/sparc/sparc-protos.h: Remove trampoline decls. 8781 * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove. 8782 * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx. 8783 8784 * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New. 8785 (array_to_constant): Make ARR parameter const. 8786 (spu_trampoline_init): Rename from spu_initialize_trampoline; 8787 make static; update for hook parameters. 8788 * config/spu/spu-protos.h: Update decls. 8789 * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove. 8790 8791 * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename 8792 from xstormy16_initialize_trampoline; make static; update for 8793 hook parameters. 8794 (TARGET_TRAMPOLINE_INIT): New. 8795 * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove. 8796 8797 * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8798 (TARGET_TRAMPOLINE_INIT): New. 8799 (v850_can_eliminate): Make static. 8800 (v850_asm_trampoline_template, v850_trampoline_init): New. 8801 * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to 8802 v850_asm_trampoline_template. 8803 (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init 8804 and adjust for target hook parameters. 8805 8806 * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8807 (TARGET_TRAMPOLINE_INIT): New. 8808 (vax_asm_trampoline_template, vax_trampoline_init): New. 8809 * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to 8810 vax_asm_trampoline_template. 8811 (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init. 8812 8813 * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New. 8814 (TARGET_TRAMPOLINE_INIT): New. 8815 (xtensa_asm_trampoline_template): Rename from 8816 xtensa_trampoline_template; make static. 8817 (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline; 8818 make static; update for hook parameters. 8819 * config/xtensa/xtensa-protos.h: Remove trampoline decls. 8820 * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove. 8821 (INITIALIZE_TRAMPOLINE): Remove. 8822 8823 * config/i386/i386.c (ix86_function_regparm): Do not issue an 8824 error for nested functions with regparm=3. 8825 (ix86_compute_frame_layout): Adjust frame pointer offset for 8826 ix86_static_chain_on_stack. 8827 (ix86_expand_prologue): Handle ix86_static_chain_on_stack. 8828 (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset, 8829 don't reset to UNITS_PER_WORD. 8830 (ix86_emit_leave): Adjust ix86_cfa_state. 8831 (ix86_expand_epilogue): Handle ix86_static_chain_on_stack. 8832 (ix86_static_chain): New. 8833 (ix86_trampoline_init): Rename from x86_initialize_trampoline; 8834 make static; update for target hook parameters; use ix86_static_chain. 8835 (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New. 8836 * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove. 8837 (INITIALIZE_TRAMPOLINE): Remove. 8838 (TRAMPOLINE_SIZE): Use 24 for 64-bit. 8839 (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields 8840 to the end. Add static_chain_on_stack. 8841 (ix86_static_chain_on_stack): New. 8842 8843 * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New. 8844 (m68k_output_mi_thunk): Don't use static_chain_rtx. 8845 (m68k_trampoline_init): New. 8846 * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to 8847 m68k_trampoline_init and adjust for hook parameters. 8848 * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove. 8849 (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove. 8850 88512009-09-22 Jakub Jelinek <jakub@redhat.com> 8852 8853 * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes 8854 for __builtin_altivec_vcmpgt{sb,uh,sh,uw}. 8855 8856 * reload1.c (reload): Call wrap_constant when substituting 8857 reg for equiv inside of DEBUG_INSNs. 8858 8859 PR bootstrap/41405 8860 * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die, 8861 add_call_src_coords_attributes, add_high_low_attributes, 8862 gen_compile_unit_die, gen_type_die_with_usage force_decl_die, 8863 gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish, 8864 dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions 8865 when -gdwarf-2 -gstrict-dwarf. 8866 (loc_list_from_tree): Likewise. Avoid using DWARF4 additions when 8867 -gdwarf-[23] -gstrict-dwarf. 8868 (address_of_int_loc_descriptor, loc_descriptor, 8869 loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using 8870 DWARF4 additions when -gdwarf-[23] -gstrict-dwarf. 8871 * common.opt (gno-strict-dwarf, gstrict-dwarf): New options. 8872 88732009-09-22 Richard Guenther <rguenther@suse.de> 8874 8875 PR tree-optimization/41428 8876 * tree-ssa-ccp.c (ccp_fold_stmt): New function. 8877 (ccp_finalize): Pass it to substitute_and_fold. 8878 88792009-09-22 Richard Guenther <rguenther@suse.de> 8880 8881 * tree-ssa-propagate.h (ssa_prop_fold_stmt_fn): Declare. 8882 (substitute_and_fold): Adjust prototype. 8883 * tree-vrp.c (vrp_evaluate_conditional): Make static. 8884 (simplify_stmt_using_ranges): Likewise. 8885 (fold_predicate_in): Move here from tree-ssa-propagate.c. 8886 (vrp_fold_stmt): New function. 8887 (vrp_finalize): Pass it to substitute_and_fold. 8888 * tree-flow.h (vrp_evaluate_conditional): Remove. 8889 (simplify_stmt_using_ranges): Likewise. 8890 * tree-ssa-ccp.c (ccp_finalize): Adjust call to substitute_and_fold. 8891 * tree-ssa-copy.c (fini_copy_prop): Likewise. 8892 * tree-ssa-propagate.c (struct prop_stats_d): Rename num_pred_folded 8893 member. 8894 (fold_predicate_in): Move to tree-vrp.c. 8895 (substitute_and_fold): Use the callback instead of calling into 8896 tree-vrp.c functions directly. 8897 88982009-09-22 Jakub Jelinek <jakub@redhat.com> 8899 8900 * dwarf2out.c (address_of_int_loc_descriptor): Avoid signed/unsigned 8901 comparison warning on rs6000. 8902 8903 PR middle-end/41429 8904 * tree-cfg.c (remove_useless_stmts_tc): Call gsi_next (gsi) even for 8905 GIMPLE_EH_MUST_NOT_THROW cleanup. 8906 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_MUST_NOT_THROW. 8907 89082009-09-22 Jack Howarth <howarth@bromo.med.uc.edu> 8909 8910 PR middle-end/41260 8911 * gcc/config.gcc: Use darwin9.h and darwin10.h on darwin10 and later. 8912 * gcc/config/darwin10.h: Add file to pass -no_compact_unwind on 8913 LIB_SPEC for darwin10 and later since it always uses the unwinder in 8914 libSystem which is derived from the gcc 4.2.1 unwinder. 8915 89162009-09-22 Dave Korn <dave.korn.cygwin@gmail.com> 8917 8918 PR middle-end/41357 8919 * varasm.c (default_encode_section_info): Copy TLS model into 8920 sym_ref flags regardless of backend support for TLS, for all 8921 model types except TLS_MODEL_EMULATED. 8922 89232009-09-22 Dave Korn <dave.korn.cygwin@gmail.com> 8924 8925 PR bootstrap/41404 8926 * dwarf2out.c (mem_loc_descriptor): Punt on CONST_STRING until 8927 we can handle it correctly. 8928 89292009-09-21 Gerald Pfeifer <gerald@pfeifer.com> 8930 8931 * doc/install.texi (os2): Remove section. 8932 89332009-09-21 Gerald Pfeifer <gerald@pfeifer.com> 8934 8935 * doc/standards.texi (Objective-C): Adjust two URLs. 8936 89372009-09-21 Giuseppe Scrivano <gscrivano@gnu.org> 8938 8939 * tree-tailcall.c (process_assignment): Don't check if a 8940 multiplication or an addition are already present. 8941 (find_tail_calls): Combine multiple additions and multiplications. 8942 (adjust_accumulator_values): Emit accumulators. 8943 89442009-09-21 Kai Tietz <kai.tietz@onevision.com> 8945 8946 * config/i386/i386.c (ix86_expand_epilogue): Adjust offset for 8947 xmm register restore. 8948 89492009-09-21 Jan Hubicka <jh@suse.cz> 8950 8951 * dwarf2out.c (decl_loc_table_eq): Allow decl_loc_table to be NULL. 8952 (dwarf2out_abstract_function): NULLify decl_loc_table at begginig and 8953 restore at the end. 8954 89552009-09-21 Eric Botcazou <ebotcazou@adacore.com> 8956 8957 * stor-layout.c (layout_type): Remove obsolete code. 8958 89592009-09-20 H.J. Lu <hongjiu.lu@intel.com> 8960 8961 PR middle-end/41395 8962 * opts.c (decode_options): Don't turn on flag_ipa_sra for opt2. 8963 89642009-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8965 8966 PR middle-end/30789 8967 * builtins.c (do_mpc_arg2): Accept DO_NONFINITE parameter. 8968 (do_mpc_ckconv): Accept FORCE_CONVERT parameter. 8969 (fold_builtin_2, do_mpc_arg1): Update accordingly. 8970 * fold-const.c (const_binop): Likewise. 8971 * real.h (do_mpc_arg2): Update prototype. 8972 89732009-09-20 Jan Hubicka <jh@suse.cz> 8974 8975 * dwarf2out.c (add_const_value_attribute): Return true if successful. 8976 (add_location_or_const_value_attribute): Rewrite using 8977 loc_list_from_tree. 8978 (tree_add_const_value_attribute): Return true if successful. 8979 (tree_add_const_value_attribute_for_decl): Likewise. 8980 8981 * dwarf2out.c (address_of_int_loc_descriptor): Break out from ... 8982 (loc_descriptor): ... here; 8983 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function. 8984 (cst_pool_loc_descr): Break out from ...; do not reffer constant 8985 pool items that was not marked for output. 8986 (loc_list_from_tree): ... here; handle special cases of ADDR_EXPR; 8987 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function. 8988 (loc_list_for_address_of_addr_expr_of_indirect_ref): New function. 8989 handle ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, REALPART_EXPR, 8990 IMAGPART_EXPR; handle address of INTEGER_CST; improve handling of 8991 CONSTRUCTOR; handle REAL_CST, STRING_CST, COMPLEX_CST; use 8992 DW_OP_stack_value to get address of items that are not available 8993 as addresses. 8994 (dw_loc_list): Handle single element lists correctly. 8995 89962009-09-20 Kai Tietz <kai.tietz@onevision.com> 8997 Pascal Obry <obry@adacore.com> 8998 8999 * unwind-dw2-fde.c (classify_object_over_fdes): 9000 Cast the constant 1 to _Unwind_Ptr. 9001 (add_fdes): Likewise. 9002 (linear_search_fdes): Likewise. 9003 90042009-09-20 Eric Botcazou <ebotcazou@adacore.com> 9005 9006 * stor-layout.c (set_sizetype): Avoid useless type copy. 9007 90082009-09-20 Richard Sandiford <rdsandiford@googlemail.com> 9009 9010 * configure.ac (gcc_cv_ld_mips_personality_relaxation): New 9011 feature check. 9012 (HAVE_LD_PERSONALITY_RELAXATION): New macro definition. 9013 * configure, config.in: Regenerate. 9014 * dwarf2asm.c (eh_data_format_name): Handle DW_EH_PE_indirect | 9015 DW_EH_PE_absptr. 9016 * config/mips/mips.h (TARGET_WRITABLE_EH_FRAME): New macro. 9017 (ASM_PREFERRED_EH_DATA_FORMAT): Define. Use MIPS_EH_INDIRECT 9018 for global data if the output could be used in a shared library. 9019 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm 9020 to 0 if TARGET_WRITABLE_EH_FRAME. 9021 90222009-09-20 Paolo Bonzini <bonzini@gnu.org> 9023 9024 PR rtl-optimization/39886 9025 * combine.c (update_cfg_for_uncondjump): Set EDGE_FALLTHRU 9026 just when insn is equal to BB_END (bb). 9027 90282009-09-19 Adam Nemet <anemet@caviumnetworks.com> 9029 9030 * config/mips/mips.opt (mrelax-pic-calls): New option. 9031 * config/mips/mips.c (mips_strip_unspec_address): Move it up in 9032 the file. 9033 (mips_unspec_call): Change "unspec_call" expander into this. 9034 (mips_strip_unspec_call): New function. 9035 (mips_got_load): Call mips_unspec_call instead of 9036 gen_unspec_call<mode>. 9037 (mips16_build_call_stub): Fix comment for fp_code. Adjust call to 9038 MIPS_CALL. 9039 (mips_cfg_in_reorg): New function. 9040 (mips16_lay_out_constants): Use it to decide whether to call 9041 CFG-aware insn splitting. 9042 (r10k_insert_cache_barriers): Move CFG set-up code from here to 9043 mips_reorg. Move DF set-up code from here ... 9044 (mips_df_reorg): ... to here. Call r10k_insert_cache_barriers 9045 from here. 9046 (mips_reorg): Call mips_df_reorg instead of 9047 r10k_insert_cache_barriers. Move CFG set-up code here from 9048 r10k_insert_cache_barriers. 9049 (mips_call_expr_from_insn): New function. 9050 (mips_pic_call_symbol_from_set): Likewise. 9051 (mips_find_pic_call_symbol): Likewise. 9052 (mips_annotate_pic_call_expr): Likewise. 9053 (mips_get_pic_call_symbol): Likewise. 9054 (mips_annotate_pic_calls): Likewise. 9055 (mips_override_options): Disable -mrelax-pic-calls unless PIC 9056 calls are used. 9057 (mips_set_mips16_mode): Disable -mrelax-pic-calls for MIPS16. 9058 * config/mips/mips-protos.h (mips_get_pic_call_symbol): Declare it. 9059 * config/mips/mips.h (MIPS_CALL): Use it to print the .reloc 9060 directive. 9061 * config/mips/mips.md (UNSPEC_CALL_ATTR): New unspec. 9062 (unspec_call<mode>): Remove it. 9063 (sibcall_internal, sibcall_value_internal, 9064 sibcall_value_multiple_internal, call_internal, call_split, 9065 call_value_internal, call_value_split, 9066 call_value_multiple_internal, call_value_multiple_split): Pass 9067 SIZE_OPNO to MIPS_CALL. 9068 (call_internal_direct, call_direct_split, 9069 call_value_internal_direct, call_value_direct_split): Pass -1 as 9070 SIZE_OPNO to MIPS_CALL. 9071 * configure.ac <mips*-*-*>: Add test for .reloc R_MIPS_JALR. 9072 * configure: Regenerate. 9073 * doc/invoke.texi (Option Summary): Add -mrelax-pic-calls 9074 and -mno-relax-pic-calls. 9075 (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls. 9076 90772009-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 9078 9079 PR bootstrap/35619 9080 * Makefile.in (stmp-fixinc): Ensure `include-fixed' is created 9081 in the directory this rule is called from, rather than the 9082 toplevel 'gcc' directory, to fix in-tree build. 9083 90842009-09-19 Chris Demetriou <cgd@google.com> 9085 9086 PR preprocessor/28435: 9087 * c-opts.c (c_common_handle_option): For -MD and -MMD, indicate 9088 to cpplib that the preprocessor output is needed. 9089 90902009-09-19 Jakub Jelinek <jakub@redhat.com> 9091 9092 * config/rs6000/rs6000.md (*save_gpregs_<mode>, *save_fpregs_<mode>, 9093 *restore_gpregs_<mode>, *return_and_restore_gpregs_<mode>, 9094 *return_and_restore_fpregs_<mode>, 9095 *return_and_restore_fpregs_aix_<mode>): Remove 'z' operand modifier. 9096 9097 PR bootstrap/41397 9098 * dwarf2out.c (mem_loc_descriptor) <case SUBREG>: Recurse 9099 instead of assuming it has always a REG inside of it. 9100 91012009-09-18 Gerald Pfeifer <gerald@pfeifer.com> 9102 9103 * config/freebsd.h: Update comment on types. 9104 (WINT_TYPE): Define. 9105 91062009-09-18 Jason Merrill <jason@redhat.com> 9107 9108 * c.opt: Add -fno-deduce-init-list. 9109 91102009-09-18 Neil Vachharajani <nvachhar@google.com> 9111 9112 * value-prof.c (interesting_stringop_to_profile_p): Added output 9113 argument to indicate which parameter is the size parameter. 9114 * value-prof.c (gimple_stringop_fixed_value): Use 9115 INTERESTING_STRINGOP_TO_PROFILE_P to find size argument. 9116 * value-prof.c (gimple_stringops_transform): Update call sites to 9117 INTERESTING_STRINGOP_TO_PROFILE_P to reflect parameter change. 9118 91192009-09-18 Uros Bizjak <ubizjak@gmail.com> 9120 9121 PR target/38288 9122 From David Binderman <dcb314@hotmail.com>: 9123 * gcc/config/i386/i386.c (ix86_function_regparm): Remove useless 9124 local variable f. Remove stale comments. 9125 (ix86_compute_frame_layout): Remove useless local variable total_size. 9126 Remove #if 0'd code. 9127 (legitimate_address_p): Remove useless local variables 9128 reason_rtx and reason. 9129 (ix86_split_copysign_const): Remove useless local variable op1. 9130 (scale_counter): Remove useless local variable piece_size_mask. 9131 91322009-09-18 Jakub Jelinek <jakub@redhat.com> 9133 9134 * stmt.c (expand_asm_operands): Set REG_ATTRS on the temporary from 9135 output decl. 9136 91372009-09-17 Michael Haubenwallner <michael.haubenwallner@salomon.at> 9138 9139 PR target/40913 9140 * config/pa/t-hpux-shlib: Set soname in libgcc_s.sl. 9141 91422009-09-17 Jakub Jelinek <jakub@redhat.com> 9143 9144 * c-decl.c (finish_struct): Adjust DECL_SOURCE_LOCATION of 9145 TYPE_STUB_DECL. 9146 91472009-09-17 Alexandre Oliva <aoliva@redhat.com> 9148 9149 * dwarf2out.c (loc_descriptor): Emit DW_OP_stack_value and 9150 DW_OP_implicit_value even without dwarf_version 4. 9151 91522009-09-17 Jan Hubicka <jh@suse.cz> 9153 9154 * dwarf2out.c: Include tree-pass.h and gimple.h. 9155 (loc_list_plus_const): New function. 9156 (loc_descriptor_from_tree_1): Rename to ... 9157 (loc_descriptor_from_tree): ... remove original. 9158 (loc_list_from_tree): New function. 9159 (add_AT_location_description): Accept location list. 9160 (tls_mem_loc_descriptor): Update call of loc_descriptor_from_tree. 9161 (concatn_mem_loc_descriptor): Remove. 9162 (mem_loc_descriptor): Handle CONCAT/CONCATN and VAR_LOCATION by 9163 returning NULL. 9164 (secname_for_decl): Move up. 9165 (hidden_reference_p): New function; break out from ... 9166 (loc_by_refernece): ... here; move up. 9167 (dw_loc_list): New function. 9168 (single_element_loc_list): New function. 9169 (single_element_loc_list_p): New function. 9170 (add_loc_descr_to_each): New function. 9171 (add_loc_list): New function. 9172 (loc_descr_from_tree): Make wraper of loc_list_from_tree. 9173 (loc_list_from_tree): Reroganized from loc_descr_from_tree; 9174 add diagnostics why expansion failed. 9175 (add_location_or_const_value_attribute): Support location lists. 9176 (add_bound_info): Likewise. 9177 (descr_info_loc): Update call of loc_descriptor_from_tree. 9178 (gen_variable_die): Work on location lists. 9179 * final.c (pass_final): Add dump file. 9180 * Makefile.in (dwarf2out.o): Add new dependencies. 9181 91822009-09-17 Janis Johnson <janis187@us.ibm.com> 9183 9184 PR c/41049 9185 * real.c decimal_from_integer, decimal_integer_string): New. 9186 (real_from_integer): Use them as special case for decimal float. 9187 * config/dfp-bit.c (_si_to_sd, _usi_to_sd): Use default rounding. 9188 (_di_to_sd, _di_to_dd, _di_to_td, _udi_to_sd, _udi_to_dd, _udi_to_td): 9189 Do not append zero after the decimal point in string to convert. 9190 91912009-09-17 Alexander Monakov <amonakov@ispras.ru> 9192 9193 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Add bounds only 9194 for ARRAY_REFs. Use array_ref_{low,up}_bound to determine bounds. 9195 91962009-09-17 Martin Jambor <mjambor@suse.cz> 9197 9198 * common.opt (fipa-sra): New switch. 9199 * opts.c (decode_options): Turn flag_ipa_sra on for opt2. 9200 * timevar.def (TV_IPA_SRA): New timevar. 9201 * params.def (ipa-sra-ptr-growth-factor): New parameter. 9202 * doc/invoke.texi: Document -fipa-sra and ipa-sra-ptr-growth-factor. 9203 * tree-sra.c: Include cgraph.c. 9204 (enum sra_mode): Added SRA_MODE_EARLY_IPA. 9205 (struct access): Added fields stmt, grp_maybe_modified, grp_scalar_ptr 9206 and grp_not_necessarilly_dereferenced. 9207 (func_param_count): New variable. 9208 (encountered_apply_args): New variable. 9209 (bb_dereferences): New variable. 9210 (final_bbs): New variable. 9211 (no_accesses_representant): New variable. 9212 (no_accesses_p): New function. 9213 (dump_access): Dump the new fields. 9214 (sra_initialize): Set encountered_apply_args to false. 9215 (get_ssa_base_param): New function. 9216 (mark_parm_dereference): New function. 9217 (create_access): Caring for INIDRECT_REFs and different handling of 9218 varialble length accesses in early IPA SRA. Store the stmt - a new 9219 parameter - to the new access. 9220 (build_access_from_expr_1): New parameter stmt, passed to 9221 create_access. Handle INDIRECT_REFs. 9222 (build_access_from_expr): Pass the current statement to 9223 build_access_from_expr_1. 9224 (disqualify_ops_if_throwing_stmt): Trigger only in intraprocedural 9225 passes. 9226 (build_accesses_from_assign): Pass the current statement to 9227 build_access_from_expr_1. Do not create assign links in IPA-SRA. 9228 (scan_function): Call handle_ssa_defs on phi nodes. Set bits in 9229 final_bbs when necessary. Check for calls to __builtin_apply_args. 9230 Fixup EH info if anythng was changed. 9231 (is_unused_scalar_param): New function. 9232 (ptr_parm_has_direct_uses): New function. 9233 (find_param_candidates): New function. 9234 (mark_maybe_modified): New function. 9235 (analyze_modified_params): New function. 9236 (propagate_dereference_distances): New function. 9237 (dump_dereferences_table): New function. 9238 (analyze_caller_dereference_legality): New function. 9239 (unmodified_by_ref_scalar_representative): New function. 9240 (splice_param_accesses): New function. 9241 (decide_one_param_reduction): New function. 9242 (enum ipa_splicing_result): New type. 9243 (splice_all_param_accesses): New function. 9244 (get_param_index): New function. 9245 (turn_representatives_into_adjustments): New function. 9246 (analyze_all_param_acesses): New function. 9247 (get_replaced_param_substitute): New function. 9248 (get_adjustment_for_base): New function. 9249 (replace_removed_params_ssa_names): New function. 9250 (sra_ipa_reset_debug_stmts): New function. 9251 (sra_ipa_modify_expr): New function. 9252 (sra_ipa_modify_assign): New function. 9253 (convert_callers): New function. 9254 (modify_function): New function. 9255 (ipa_sra_preliminary_function_checks): New function. 9256 (ipa_early_sra): New function. 9257 (ipa_early_sra_gate): New function. 9258 (pass_early_ipa_sra): New variable. 9259 * Makefile.in (tree-sra.o): Add cgraph.h to dependencies. 9260 92612009-09-17 Michael Matz <matz@suse.de> 9262 9263 PR middle-end/41347 9264 * tree.c (build_type_attribute_qual_variant): Export. 9265 * tree.h (build_type_attribute_qual_variant): Declare. 9266 * tree-inline.c (remap_type_1): Use it to build variants with 9267 the original qualifiers and attributes. 9268 92692009-09-17 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 9270 9271 * cfglayout.c (fixup_reorder_chain): Accept conditional jumps 9272 without a fallthrough edge. 9273 92742009-09-16 DJ Delorie <dj@redhat.com> 9275 9276 * config/m32c/m32c.c (m32c_emit_epilogue): Check for R8C or M16C 9277 chip and ignore the "fast_interrupt" attribute if so. 9278 92792009-09-16 Richard Henderson <rth@redhat.com> 9280 9281 PR middle-end/41360 9282 * cfgbuild.c (find_bb_boundaries): Really re-instate 2009-09-02 9283 barrier fix. 9284 92852009-09-16 Richard Henderson <rth@redhat.com> 9286 9287 PR target/41246 9288 * tree-cfg.c (verify_gimple_call): Validate that gimple_call_chain 9289 is set only if DECL_NO_STATIC_CHAIN is unset. 9290 * tree-nested.c (iter_nestinfo_start, iter_nestinfo_next): New. 9291 (FOR_EACH_NEST_INFO): New. 9292 (walk_all_functions): Use it. 9293 (finalize_nesting_tree): Likewise. 9294 (unnest_nesting_tree): Likewise. 9295 (free_nesting_tree): Use iter_nestinfo_start, iter_nestinfo_next. 9296 (get_chain_decl, get_chain_field): Reset DECL_NO_STATIC_CHAIN. 9297 (convert_gimple_call): Early out if gimple_call_chain already set. 9298 (convert_all_function_calls): Iterate until no new functions 9299 require a static chain. 9300 (finalize_nesting_tree_1): Assert DECL_NO_STATIC_CHAIN is unset 9301 when building a trampoline. Use dump_function_to_file instead 9302 of dump_function. 9303 (lower_nested_functions): Open dump_file. Validate that decls 9304 that have DECL_NO_STATIC_CHAIN from the front end don't have that 9305 bit reset by this pass. 9306 93072009-09-16 Michael Matz <matz@suse.de> 9308 9309 PR fortran/41212 9310 * tree.h (struct tree_decl_common): Add decl_restricted_flag, 9311 shorten decl_common_unused. 9312 (DECL_RESTRICTED_P): New accessor. 9313 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Use it 9314 to disambiguate marked decls and restrict pointers. 9315 93162009-09-16 Richard Henderson <rth@redhat.com> 9317 9318 PR middle-end/41360 9319 * cfgbuild.c (find_bb_boundaries): Re-instate 2009-09-02 barrier fix. 9320 93212009-09-16 Jakub Jelinek <jakub@redhat.com> 9322 9323 * integrate.c (set_block_abstract_flags): Call 9324 set_decl_abstract_flags also on BLOCK_NONLOCALIZED_VARs. 9325 93262009-09-16 Richard Guenther <rguenther@suse.de> 9327 9328 PR middle-end/34011 9329 * tree-flow-inline.h (may_be_aliased): Compute readonly variables 9330 as non-aliased. 9331 93322009-09-16 DJ Delorie <dj@redhat.com> 9333 Kaz Kojima <kkojima@gcc.gnu.org> 9334 9335 * config/sh/sh.c (output_stack_adjust): Add new argument frame_p. 9336 (sh_expand_prologue): Update calls to output_stack_adjust. 9337 (sh_expand_epilogue): Likewise. 9338 93392009-09-15 Adam Nemet <anemet@caviumnetworks.com> 9340 9341 PR bootstrap/41349 9342 * reorg.c (redundant_insn): Don't count notes or DEBUG_INSNs when 9343 trying to limit the extent of searches in the insn stream. 9344 93452009-09-15 Nathan Froyd <froydnj@codesourcery.com> 9346 Jakub Jelinek <jakub@redhat.com> 9347 9348 PR target/41175 9349 PR target/40677 9350 * config/rs6000/rs6000.c (no_global_regs_above): Fix precedence 9351 problem. 9352 (SAVRES_NOINLINE_GPRS_SAVES_LR, SAVRES_NOINLINE_FPRS_SAVES_LR, 9353 SAVRES_NOINLINE_FPRS_DOESNT_RESTORE_LR): New strategy bits. 9354 (rs6000_savres_strategy): Always save FP registers inline if the 9355 target doesn't support hardware double-precision. Set the above 9356 bits in return value when needed. 9357 (rs6000_savres_routine_sym): Fix computation for cache selector. 9358 Mark the generated symbol as a function. Rename exitp argument to 9359 lr. Move code for determining the name of the symbol... 9360 (rs6000_savres_routine_name): ...here. New function. Add cases for 9361 getting the names right on AIX and 64-bit Linux. 9362 (savres_routine_name): New variable. 9363 (rs6000_make_savres_rtx): Rename exitp argument to lr. Don't assert 9364 lr isn't set when savep. Use r12 resp. r1 instead of r11 depending 9365 on what the target routine uses as a base register. If savep && lr 9366 describe saving of r0 into memory slot. 9367 (rs6000_emit_prologue): Correct use of call_used_regs. Fix out of 9368 line calls for AIX ABI. 9369 (rs6000_output_function_prologue): Use rs6000_savres_routine_name to 9370 determine FP save/restore functions. 9371 (rs6000_emit_stack_reset): Handle savres if sp_offset != 0 and 9372 frame_reg_rtx != sp_reg_rtx. Use gen_add3_insn instead of 9373 gen_addsi3. 9374 (rs6000_emit_epilogue): Adjust computation of restore_lr. 9375 Duplicate restoration of LR and execute the appropriate one 9376 depending on whether GPRs are being restored inline. Set r11 from 9377 offsetted frame_reg_rtx instead of sp_reg_rtx; if frame_reg_rtx is 9378 r11, adjust sp_offset. Use gen_add3_insn instead of gen_addsi3. 9379 Fix out of line calls for AIX ABI. 9380 * config/rs6000/rs6000.md (*return_and_restore_fpregs_aix_<mode>): 9381 New insn. 9382 * config/rs6000/spe.md (*save_gpregs_spe): Use explicit match for 9383 register 11. 9384 (*restore_gpregs_spe): Likewise. 9385 (*return_and_restore_gpregs_spe): Likewise. 9386 * config/rs6000/linux64.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): 9387 Define to empty string unconditionally. 9388 * config/rs6000/sysv4.h (SAVE_FP_SUFFIX, RESTORE_FP_SUFFIX): 9389 Define to empty string unconditionally. 9390 (GP_SAVE_INLINE, FP_SAVE_INLINE): Handle TARGET_64BIT the same as 9391 !TARGET_64BIT. 9392 93932009-09-15 Jan Hubicka <jh@suse.cz> 9394 9395 * doc/invoke.texi (inline-insns-auto): Drop from 60 to 50. 9396 * params.def (inline-insns-auto): Likewise. 9397 93982009-09-15 Martin Jambor <mjambor@suse.cz> 9399 9400 * ipa-inline.c (estimate_function_body_sizes): Dump info about 9401 individual statements only at TDF_DETAILS dump level. Format 9402 source for 80 characters per line. 9403 94042009-09-15 Christian Bruel <christian.bruel@st.com> 9405 9406 * regrename.c (do_replace): Update REG_DEAD notes. 9407 94082009-09-15 Revital Eres <eres@il.ibm.com> 9409 9410 * doc/tm.texi (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Document. 9411 * targhooks.c (default_builtin_support_vector_misalignment): 9412 New builtin function. 9413 * targhooks.h (default_builtin_support_vector_misalignment): 9414 Declare. 9415 * target.h (builtin_support_vector_misalignment): 9416 New field in struct gcc_target. 9417 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Call 9418 new builtin function. 9419 * target-def.h (TARGET_SUPPORT_VECTOR_MISALIGNMENT): 9420 Define. 9421 * config/rs6000/rs6000.c 9422 (rs6000_builtin_support_vector_misalignment): New function. 9423 (TARGET_SUPPORT_VECTOR_MISALIGNMENT): Define. 9424 94252009-09-15 Jie Zhang <jie.zhang@analog.com> 9426 9427 * config/bfin/bfin.c (length_for_loop): Use NONDEBUG_INSN_P 9428 instead of INSN_P. 9429 (bfin_optimize_loop): Likewise. 9430 (bfin_gen_bundles): Likewise. 9431 (workaround_speculation): Likewise. 9432 (find_load): Return NULL_RTX for debug_insn. 9433 94342009-09-15 Uros Bizjak <ubizjak@gmail.com> 9435 9436 * config/alpha/alpha.md (smaxsf3): Disable for IEEE mode. 9437 (sminsf3): Ditto. 9438 94392009-09-14 DJ Delorie <dj@redhat.com> 9440 9441 * config/mep/mep.h (JUMP_TABLES_IN_TEXT_SECTION): Define. 9442 * config/mep/mep.c (mep_emit_cbranch): Don't use BEQZ/BNEI in 9443 VLIW mode. 9444 94452009-09-14 Richard Henderson <rth@redhat.com> 9446 Jakub Jelinek <jakub@redhat.com> 9447 9448 * builtins.c (expand_builtin_synchronize): Use gimple_build_asm_vec. 9449 * cfgbuild.c (make_edges): Handle asm goto. 9450 * cfglayout.c (fixup_reorder_chain): Likewise. 9451 * cfgrtl.c (patch_jump_insn): Likewise. 9452 * gimple-pretty-print.c (dump_gimple_asm): Likewise. 9453 * gimple.c (gimple_build_asm_1): Add and use nlabels parameter. 9454 (gimple_build_asm_vec): Add and use labels parameter. 9455 (gimple_build_asm): Remove. 9456 (walk_gimple_asm): Walk labels too. 9457 * gimple.def (GIMPLE_ASM): Update docs. 9458 * gimple.h: Update decls. 9459 (struct gimple_statement_asm): Change nc to use unsigned char; 9460 add nl member. 9461 (gimple_asm_nlabels): New. 9462 (gimple_asm_label_op, gimple_asm_set_label_op): New. 9463 * gimplify.c (gimplify_asm_expr): Copy labels from ASM_EXPR 9464 into gimple_build_asm_vec. 9465 * jump.c (mark_jump_label_asm): New. 9466 (mark_jump_label): Use it. 9467 (redirect_jump_1): Handle asm goto. 9468 (invert_jump_1): Soft fail if X is null. 9469 * recog.c (extract_asm_operands): New. 9470 (asm_noperands): Use it; handle asm labels. 9471 (decode_asm_operands): Use extract_asm_operands. 9472 (asm_operand_ok): Properly handle empty string. 9473 * reg-stack.c (get_asm_operands_in_out): Rename from 9474 get_asm_operand_n_inputs; use extract_asm_operands; return both 9475 inputs and outputs by reference; update all callers. 9476 * rtl.def (ASM_OPERANDS): Add label vector as operand 6. 9477 * rtl.h (ASM_OPERANDS_LABEL_VEC): New. 9478 (ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_LABEL): New. 9479 (ASM_OPERANDS_SOURCE_LOCATION): Renumber. 9480 (extract_asm_operands): Declare. 9481 * stmt.c (expand_asm_operands): Add and use labels parameter. 9482 (check_unique_operand_names): Likewise. 9483 (resolve_asm_operand_names, resolve_operand_name_1): Likewise. 9484 (expand_asm_stmt): Handle asm labels. 9485 * tree-cfg.c (make_gimple_asm_edges): New. 9486 (make_edges): Use it. 9487 (cleanup_dead_labels): Handle asm labels. 9488 (is_ctrl_altering_stmt): Likewise. 9489 (gimple_redirect_edge_and_branch): Likewise. 9490 * tree.def (ASM_EXPR): Add 5th operand. 9491 * tree.h (ASM_LABELS): New. 9492 (resolve_asm_operand_names): Update decl. 9493 9494 * c-parser.c (c_parser_asm_statement): Parse asm goto. 9495 (c_parser_asm_goto_operands): New. 9496 * c-tree.h (build_asm_expr): Update decl. 9497 * c-typeck.c (build_asm_expr): Add and use labels parameter. 9498 * doc/extend.texi: Document asm goto. 9499 95002009-09-14 Richard Henderson <rth@redhat.com> 9501 9502 * except.h: Update declarations. 9503 (struct pointer_map_t): Forward declare. 9504 (ERT_UNKNOWN, ERT_THROW, ERT_CATCH): Remove. 9505 (struct eh_landing_pad_d, eh_landing_pad): New. 9506 (struct eh_catch_d, eh_catch): New. 9507 (struct eh_region_d): Remove next_region_sharing_label, aka, 9508 label, tree_label, landing_pad, post_landing_pad, resume, 9509 may_contain_throw. Rename region_number to index. Remove 9510 u.eh_catch, u.eh_throw. Rename u.eh_try.eh_catch to first_catch. 9511 Add u.must_not_throw, landing_pads, exc_ptr_reg, filter_reg. 9512 (VEC(eh_landing_pad,gc)): New. 9513 (struct eh_status): Remove last_region_number. Add lp_array, 9514 throw_stmt_table, ttype_data, ehspec_data. 9515 (ehr_next, FOR_ALL_EH_REGION_AT): New. 9516 (FOR_ALL_EH_REGION_FN, FOR_ALL_EH_REGION): New. 9517 * except.c (lang_protect_cleanup_actions): Return tree. 9518 (struct ehl_map_entry): Remove. 9519 (init_eh_for_function): Push zero entries for region and lp_array. 9520 (gen_eh_region): Add to region_array immediately. 9521 (gen_eh_region_catch): Operate on eh_catch objects. 9522 (gen_eh_landing_pad): New. 9523 (get_eh_region_may_contain_throw, get_eh_region_tree_label): Remove. 9524 (get_eh_region_no_tree_label, set_eh_region_tree_label): Remove. 9525 (get_eh_region_from_number, get_eh_region_from_number_fn): New. 9526 (get_eh_landing_pad_from_number_fn): New. 9527 (get_eh_landing_pad_from_number): New. 9528 (get_eh_region_from_lp_number_fn): New. 9529 (get_eh_region_from_lp_number): New. 9530 (expand_resx_stmt, note_eh_region_may_contain_throw): Remove. 9531 (get_exception_pointer, get_exception_filter): Remove. 9532 (collect_eh_region_array, can_be_reached_by_runtime): Remove. 9533 (current_function_has_exception_handlers): Simplify. 9534 (bring_to_root, eh_region_replaceable_by_p): Remove. 9535 (replace_region, hash_type_list, hash_eh_region): Remove. 9536 (eh_regions_equal_p, merge_peers, remove_unreachable_regions): Remove. 9537 (label_to_region_map, num_eh_regions): Remove. 9538 (get_next_region_sharing_label, must_not_throw_labels): Remove. 9539 (find_exception_handler_labels): Remove. 9540 (duplicate_eh_regions_0, find_prev_try): Remove. 9541 (struct duplicate_eh_regions_data): New. 9542 (duplicate_eh_regions_1): Rewrite. 9543 (duplicate_eh_regions): Return a pointer map instead of an 9544 integer offset. 9545 (copy_eh_region_1, copy_eh_region, push_reachable_handler): Remove. 9546 (redirect_eh_edge_to_label): Remove. 9547 (eh_region_outermost): Rewrite using eh_region pointers 9548 instead of integers. 9549 (add_ttypes_entry): Update for ttype_data move to eh_status. 9550 (add_ehspec_entry): Rewrite with VEC instead of varray. 9551 (assign_filter_values): Likewise. Export. 9552 (build_post_landing_pads, connect_post_landing_pads): Remove. 9553 (dw2_build_landing_pads): Rewrite to use lp_array. 9554 (struct sjlj_lp_info, sjlj_find_directly_reachable_regions): Remove. 9555 (sjlj_assign_call_site_values): Rewrite to use lp_array. 9556 (sjlj_emit_dispatch_table, sjlj_build_landing_pads): Likewise. 9557 (sjlj_mark_call_sites): Update for landing pad numbers. 9558 (finish_eh_generation): Rewrite. 9559 (gate_handle_eh): Do nothing for no eh tree. 9560 (pass_rtl_eh): Move up near finish_eh_generation. 9561 (remove_eh_landing_pad): New. 9562 (remove_eh_handler): Export. 9563 (remove_eh_region, remove_eh_handler_and_replace): Remove. 9564 (for_each_eh_label): Rewrite to use lp_array. 9565 (make_reg_eh_region_note): New. 9566 (make_reg_eh_region_note_nothrow_nononlocal): New. 9567 (insn_could_throw_p): New. 9568 (copy_reg_eh_region_note_forward): New. 9569 (copy_reg_eh_region_note_backward): New. 9570 (check_handled, add_reachable_handler): Remove. 9571 (reachable_next_level, foreach_reachable_handler): Remove. 9572 (arh_to_landing_pad, arh_to_label, reachable_handlers): Remove. 9573 (get_eh_region_and_lp_from_rtx): New. 9574 (get_eh_region_from_rtx): New. 9575 (can_throw_internal_1, can_throw_external_1): Remove. 9576 (can_throw_internal): Use get_eh_region_from_rtx. 9577 (can_throw_external): Use get_eh_region_and_lp_from_rtx. 9578 (insn_nothrow_p, can_nonlocal_goto): New. 9579 (expand_builtin_eh_common, expand_builtin_eh_pointer): New. 9580 (expand_builtin_eh_filter, expand_builtin_eh_copy_values): New. 9581 (add_action_record): Use VEC not varray. 9582 (collect_one_action_chain): Update for eh_region changes. 9583 (convert_to_eh_region_ranges): Make static. Use VEC not varray. 9584 Use get_eh_region_and_lp_from_rtx. 9585 (gate_convert_to_eh_region_ranges): New. 9586 (pass_convert_to_eh_region_ranges): Use it. 9587 (push_uleb128, push_sleb128): Use VEC not varray. 9588 (output_one_function_exception_table): Likewise. 9589 (dump_eh_tree): Update for eh_region changes. 9590 (verify_eh_tree): Likewise. 9591 (verify_eh_region, default_init_unwind_resume_libfunc): Remove. 9592 * tree-eh.c: Include target.h. 9593 (add_stmt_to_eh_lp_fn): Rename from add_stmt_to_eh_region_fn. 9594 Don't disallow GIMPLE_RESX; adjust argument check. 9595 (add_stmt_to_eh_lp): Rename from add_stmt_to_eh_region. 9596 (record_stmt_eh_region): Update for landing pad numbers; 9597 generate a landing pad if necessary. 9598 (remove_stmt_from_eh_lp): Rename from remove_stmt_from_eh_region. 9599 (remove_stmt_from_eh_lp_fn): Similarly. 9600 (lookup_stmt_eh_lp_fn): Rename from lookup_stmt_eh_region_fn. 9601 Update for lp numbers; don't special case missing throw_stmt_table. 9602 (lookup_expr_eh_lp): Similarly. 9603 (lookup_stmt_eh_lp): Rename from lookup_stmt_eh_region. 9604 (eh_seq, eh_region_may_contain_throw): New. 9605 (struct leh_state): Add ehp_region. 9606 (struct leh_tf_state): Remove eh_label. 9607 (emit_post_landing_pad): New. 9608 (emit_resx, emit_eh_dispatch): New. 9609 (note_eh_region_may_contain_throw): New. 9610 (frob_into_branch_around): Take eh_region not eh label; 9611 emit eh code into eh_seq. 9612 (honor_protect_cleanup_actions): Early exit for no actions. Don't 9613 handle EXC_PTR_EXPR, FILTER_EXPR. Use gimple_build_eh_must_not_throw, 9614 lower_eh_must_not_throw. Emit code to eh_seq. 9615 (lower_try_finally_nofallthru): Emit eh code to eh_seq. 9616 (lower_try_finally_onedest): Likewise. 9617 (lower_try_finally_copy): Likewise. 9618 (lower_try_finally_switch): Likewise. 9619 (lower_try_finally): Initialize ehp_region. 9620 (lower_catch): Update for eh_catch objects. 9621 (lower_eh_filter): Don't handle must_not_throw. 9622 (lower_eh_must_not_throw): New. 9623 (lower_cleanup): Don't set eh_label. 9624 (lower_eh_constructs_2): Resolve eh builtins. 9625 Handle GIMPLE_EH_MUST_NOT_THROW. 9626 (lower_eh_constructs): Initialize eh_region_may_contain_throw. 9627 Add eh_seq to the end of the function body. 9628 (make_eh_dispatch_edges): New. 9629 (make_eh_edge): Remove. 9630 (make_eh_edges): Simplify for landing pads. 9631 (redirect_eh_edge_1): New. 9632 (redirect_eh_edge): Use it. 9633 (redirect_eh_dispatch_edge): New. 9634 (stmt_could_throw_p): Use a switch. Allow RESX. 9635 (stmt_can_throw_external): Use lookup_stmt_eh_lp. 9636 (stmt_can_throw_internal): Likewise. 9637 (maybe_clean_eh_stmt_fn, maybe_clean_eh_stmt): New. 9638 (maybe_clean_or_replace_eh_stmt): Update for landing pads. 9639 (maybe_duplicate_eh_stmt_fn, maybe_duplicate_eh_stmt): New. 9640 (gate_refactor_eh): New. 9641 (pass_refactor_eh): Use it. 9642 (lower_resx, execute_lower_resx, pass_lower_resx): New. 9643 (lower_eh_dispatch, execute_lower_eh_dispatch): New. 9644 (gate_lower_ehcontrol, pass_lower_eh_dispatch): New. 9645 (remove_unreachable_handlers): Rename from 9646 tree_remove_unreachable_handlers; rewrite for landing pads; 9647 call remove_eh_handler directly. 9648 (remove_unreachable_handlers_no_lp): New. 9649 (unsplit_eh, unsplit_all_eh): New. 9650 (tree_empty_eh_handler_p, all_phis_safe_to_merge): Remove. 9651 (cleanup_empty_eh_merge_phis, cleanup_empty_eh_move_lp): New. 9652 (cleanup_empty_eh_unsplit): New. 9653 (cleanup_empty_eh): Rewrite. 9654 (cleanup_all_empty_eh): New. 9655 (execute_cleanup_eh): Rename from cleanup_eh. Remove unreachable 9656 handlers first. Use unsplit_all_eh, cleanup_all_empty_eh. 9657 (gate_cleanup_eh): New. 9658 (pass_cleanup_eh): Use it. 9659 (verify_eh_edges): Move later in file. Expect one EH edge. 9660 (verify_eh_dispatch_edge): New. 9661 9662 * Makefile.in (FUNCTION_H): Use vecprim.h, not varray.h. 9663 (gtype-desc.o): Add TARGET_H. 9664 (tree.o): Use EXCEPT_H, not except.h. 9665 (cfgbuild.o): Add EXPR_H. 9666 (GTFILES): Add vecprim.h. 9667 * builtins.c (expand_builtin): Handle BUILT_IN_EH_POINTER, 9668 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES. 9669 * builtins.def (BUILT_IN_UNWIND_RESUME, BUILT_IN_EH_POINTER, 9670 BUILT_IN_EH_FILTER, BUILT_IN_EH_COPY_VALUES): New. 9671 * calls.c (emit_call_1): Use make_reg_eh_region_note. 9672 * cfgbuild.c (control_flow_insn_p): Use can_nonlocal_goto; tidy 9673 calls to can_throw_internal. 9674 (rtl_make_eh_edge): Use get_eh_landing_pad_from_rtx. 9675 (make_edges): Don't handle RESX; use can_nonlocal_goto. 9676 * cfgexpand.c (expand_gimple_stmt_1): Don't handle RESX. 9677 (expand_gimple_stmt): Use make_reg_eh_region_note. 9678 (expand_debug_expr): Don't handle EXC_PTR_EXPR and FILTER_EXPR. 9679 (gimple_expand_cfg): Don't call convert_from_eh_region_ranges, 9680 or find_exception_handler_labels. 9681 * cfgrtl.c (rtl_verify_flow_info_1): Don't handle RESX. Assert 9682 there is exacly one EH edge. Use can_nonlocal_goto and 9683 can_throw_internal. 9684 * cgraphunit.c (update_call_expr): Use maybe_clean_eh_stmt_fn. 9685 (cgraph_materialize_all_clones): Use maybe_clean_or_replace_eh_stmt. 9686 * combine.c (can_combine_p, try_combine): Use insn_nothrow_p. 9687 * cse.c (count_reg_usage, insn_live_p): Use insn_could_throw_p. 9688 * dce.c (deletable_insn_p_1): Don't test may_trap_p. 9689 (deletable_insn_p): Use insn_nothrow_p; reorder nonjump insn test. 9690 * dse.c (scan_insn): Use insn_could_throw_p. 9691 * emit-rtl.c (try_split): Use copy_reg_eh_region_note_backward. 9692 * expr.c (expand_expr_real): Use make_reg_eh_region_note. 9693 (expand_expr_real_1): Don't handle RESX, EXC_PTR, or FILTER_EXPR. 9694 * fold-const.c (tree_expr_nonnegative_warnv_p): Don't handle 9695 EXC_PTR_EXPR or FILTER_EXPR. 9696 (tree_expr_nonzero_warnv_p): Likewise. 9697 * function.h: Include vecprim.h, not varray.h 9698 (struct rtl_eh): Remove filter, exc_ptr, built_landing_pad members; 9699 move ttype_data and ehspec_data members to struct eh_status; change 9700 action_record_data member to a VEC. 9701 * gcse.c (hash_scan_set): Use can_throw_internal. 9702 * gengtype.c (open_base_files): Add target.h to gtype-desc.c. 9703 * gimple-iterator.c (gsi_replace): Use maybe_clean_or_replace_eh_stmt. 9704 * gimple-low.c (lower_stmt): Handle GIMPLE_EH_MUST_NOT_THROW. 9705 (block_may_fallthru): Don't handle RESX_EXPR. 9706 * gimple-pretty-print.c (dump_gimple_label): Dump EH_LANDING_PAD_NR. 9707 (dump_gimple_eh_must_not_throw, dump_gimple_eh_dispatch): New. 9708 (dump_gimple_stmt): Dump landing pad information with TDF_EH; 9709 handle GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH. 9710 * gimple.c (gss_for_code): Handle GIMPLE_EH_MUST_NOT_THROW, 9711 GIMPLE_EH_DISPATCH, GIMPLE_RESX. 9712 (gimple_size): Likewise. 9713 (gimple_build_eh_dispatch, gimple_build_eh_must_not_throw): New. 9714 (gimple_build_resx): Use gimple_build_with_ops. 9715 (DEFTREECODE): Don't handle EXC_PTR_EXPR, FILTER_EXPR. 9716 (is_gimple_val): Likewise. 9717 (is_gimple_stmt): Remove RESX_EXPR. 9718 * gimple.def (GIMPLE_EH_MUST_NOT_THROW, GIMPLE_EH_DISPATCH): New. 9719 (GIMPLE_RESX): Reorder with other EH constructs. 9720 * gimple.h (struct gimple_statement_eh_mnt): New. 9721 (struct gimple_statement_eh_ctrl): Rename from gimple_statement_resx. 9722 (gimple_eh_filter_must_not_throw): Remove. 9723 (gimple_eh_filter_set_must_not_throw): Remove. 9724 (gimple_eh_must_not_throw_fndecl): New. 9725 (gimple_eh_dispatch_region, gimple_eh_dispatch_set_region): New. 9726 (is_gimple_resx): New. 9727 * gimplify.c (gimplify_expr): Don't handle EXC_PTR_EXPR, RESX_EXPR. 9728 Don't copy EH_FILTER_MUST_NOT_THROW. 9729 * gsstruct.def (GSS_EH_MNT, GSS_EHCONTROL): New. 9730 * ipa-inline.c (estimate_function_body_sizes): Don't try to 9731 handle must_not_throw_labels specially. 9732 * ipa-pure-const.c (check_call): Update debug statement for LP. 9733 * ipa-type-escape.c (check_operand): Don't handle EXC_PTR or FILTER. 9734 * ipa-utils.c (get_base_var): Likewise. 9735 * libfunc.h (LTI_unwind_resume, unwind_resume_libfunc): Remove. 9736 * lower-subreg.c (move_eh_region_note): Remove. 9737 (resolve_simple_move): Use copy_reg_eh_region_note_forward. 9738 * omp-low.c (new_omp_context): Update for eh_lp_nr. 9739 (create_task_copyfn): Likewise. 9740 (maybe_catch_exception): Use gimple_build_eh_filter. 9741 * optabs.c (emit_libcall_block): Update test for no-nonlocal-goto 9742 REG_EH_REGION. Use make_reg_eh_region_note_nothrow_nononlocal. 9743 * passes.c (init_optimization_passes): Add pass_lower_eh_dispatch 9744 and pass_lower_resx. 9745 * print-tree.c (print_node): Dump EH_LANDING_PAD_NR. 9746 * recog.c (peephole2_optimize): Use copy_reg_eh_region_note_backward, 9747 can_throw_internal, can_nonlocal_goto. 9748 * reload1.c (fixup_eh_region_note): Use insn_could_throw_p, 9749 copy_reg_eh_region_note_forward. 9750 (emit_input_reload_insns): Use copy_reg_eh_region_note_forward. 9751 (emit_output_reload_insns): Likewise. 9752 (copy_eh_notes): Remove. 9753 * rtl.def (RESX): Remove. 9754 * rtl.h: Update declarations. 9755 * sese.c (graphite_copy_stmts_from_block): Use maybe_duplicate_eh_stmt. 9756 * tree-cfg.c (make_edges): Handle GIMPLE_EH_DISPATCH. 9757 (update_eh_label): Remove. 9758 (cleanup_dead_labels_eh): New. 9759 (cleanup_deal_labels): Use it instead of update_eh_label. 9760 (gimple_merge_blocks): Update landing pad data structure when 9761 removing a landing pad label. 9762 (remove_useless_stmts_tc): Remove gimple_eh_filter_must_not_throw 9763 test; handle GIMPLE_EH_MUST_NOT_THROW. 9764 (is_ctrl_altering_stmt): Handle GIMPLE_EH_DISPATCH. 9765 (verify_gimple_assign_single): Don't handle EXC_PTR or FILTER_EXPR. 9766 (verify_types_in_gimple_stmt): Handle GIMPLE_EH_DISPATCH. 9767 (verify_stmt): Likewise. Verify landing pads. 9768 (gimple_redirect_edge_and_branch): Handle GIMPLE_EH_DISPATCH. 9769 (gimple_duplicate_bb): Use maybe_duplicate_eh_stmt. 9770 (struct move_stmt_d): Add eh_map. 9771 (move_stmt_eh_region_nr, move_stmt_eh_region_tree_nr): New. 9772 (move_stmt_r): Remap eh region numbers in builtin calls, 9773 resx and eh_dispatch. 9774 (move_block_to_fn): Remove eh_offset parameter. Use 9775 maybe_duplicate_eh_stmt_fn. 9776 (find_outermost_region_in_block): Operate on eh_region pointers 9777 instead of region numbers. 9778 (move_sese_region_to_fn): Expect eh_map instead of eh_offset from 9779 duplicate_eh_regions. 9780 * tree-cfgcleanup.c (tree_forwarder_block_p): Move entry block edge 9781 test earlier. Disallow EH landing pads. 9782 * tree-cfa.c (create_tree_common_ann): Don't set ann->rn. 9783 * tree-flow.h: Update declarations. 9784 (struct tree_ann_common_d): Replace rn with lp_nr. 9785 * tree-inline.c (copy_tree_body_r): Don't handle RESX_EXPR. 9786 (remap_eh_region_nr, remap_eh_region_tree_nr): New. 9787 (remap_gimple_stmt): Remap eh region numbers in builtin calls, 9788 resx and eh_dispatch. 9789 (copy_bb): Use maybe_duplicate_eh_stmt_fn. 9790 (copy_edges_for_bb): Use make_eh_dispatch_edges. 9791 (copy_cfg_body): Expect eh_map instead of eh_region_offset 9792 from duplicate_eh_regions. 9793 (estimate_num_insns): Don't handle EXC_PTR_EXPR or FILTER_EXPR; 9794 update RESX; handle EH_DISPATCH. 9795 (expand_call_inline): Set eh_lp_nr, not eh_region. 9796 (maybe_inline_call_in_expr): Likewise. 9797 * tree-inline.h (struct copy_body_data): Replace eh_region with 9798 eh_lp_nr, eh_region_offset with eh_map. 9799 * tree-optimize.c (execute_fixup_cfg): Use maybe_clean_eh_stmt. 9800 * tree-pass.h (pass_lower_eh_dispatch, pass_lower_resx): New. 9801 * tree-pretty-print.c (dump_generic_node): Don't handle 9802 EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR. 9803 * tree-sra.c (scan_function): Use maybe_clean_eh_stmt. 9804 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Don't handle 9805 EXC_PTR_EXPR, FILTER_EXPR. 9806 * tree-ssa-operands.c (get_expr_operands): Likewise. 9807 * tree-ssa-propagate.c (valid_gimple_rhs_p): Likewise. 9808 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise. 9809 (ao_ref_init_from_vn_reference): Likewise. 9810 * tree-ssa-sink.c (statement_sink_location): Likewise. 9811 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 9812 (mark_virtual_phi_result_for_renaming): Export. Tidy. 9813 * tree-ssa-pre.c (get_or_alloc_expr_for): Don't handle 9814 EXC_PTR_EXPR, FILTER_EXPR. 9815 (is_exception_related): Remove. 9816 (compute_avail): Don't call it. 9817 * tree-ssa-structalias.c: Remove VEC definitions for int and unsigned. 9818 * tree.c (find_decls_types_in_eh_region): Update for eh_region changes. 9819 (find_decls_types_in_node): Use FOR_ALL_EH_REGION_FN. 9820 (build_common_builtin_nodes): Add enable_cxa_end_cleanup parameter. 9821 Build EH builtins. 9822 (build_resx): Remove. 9823 * tree.def (EXC_PTR_EXPR, FILTER_EXPR, RESX_EXPR): Remove. 9824 * tree.h: Update declarations. 9825 (EH_FILTER_MUST_NOT_THROW): Remove. 9826 (struct tree_label_decl): Add eh_landing_pad_nr. 9827 (EH_LANDING_PAD_NR): New. 9828 * value-prof.c (gimple_ic): Tidy variable names. Update for 9829 landing pad numbers. 9830 (gimple_stringop_fixed_value): Tidy variable names. Assert 9831 that neither call stmt can throw. 9832 * vecprim.h (uchar): New. 9833 (VEC(uchar,heap), VEC(uchar,gc)): New. 9834 9835 * c-common.c (c_define_builtins): Update call to 9836 build_common_builtin_nodes. 9837 * c-parser.c (c_parse_file): Don't call 9838 default_init_unwind_resume_libfunc. 9839 98402009-09-14 Richard Sandiford <rdsandiford@googlemail.com> 9841 9842 * config/mips/mips-protos.h (mips_cfun_has_cprestore_slot_p): Declare. 9843 (mips_cprestore_address_p): Likewise. 9844 (mips_save_gp_to_cprestore_slot): Likewise. 9845 (mips_restore_gp): Rename to... 9846 (mips_restore_gp_from_cprestore_slot): ...this. 9847 (mips_must_initialize_gp_p): Declare. 9848 (mips_emit_save_slot_move): Likewise. 9849 (mips_output_load_label): Return nothing. 9850 (mips_eh_uses): Declare. 9851 * config/mips/mips.h (TARGET_SPLIT_CALLS): Require epilogue_completed. 9852 (TARGET_CPRESTORE_DIRECTIVE): New macro. 9853 (TARGET_ABSOLUTE_JUMPS): Likewise. 9854 (EH_USES): Likewise. 9855 (FIRST_PSEUDO_REGISTER): Update comment. 9856 (MIPS_ABSOLUTE_JUMP): New macro, extracted from... 9857 (MIPS_CALL): ...here. 9858 (REGISTER_NAMES): Add $cprestore. 9859 * config/mips/mips.c (machine_function): Remove has_gp_insn_p. 9860 Add load_label_length, has_inflexible_gp_insn_p, 9861 has_flexible_gp_insn_p, must_initialize_gp_p and 9862 must_restore_gp_when_clobbered_p. 9863 (mips_expand_call): Don't generate split instructions here. 9864 (mips_split_call): Update the call to mips_restore_gp after 9865 the above name change. 9866 (mips16_cfun_returns_in_fpr_p): Move earlier in file. 9867 (mips_find_gp_ref): New function. 9868 (mips_insn_has_inflexible_gp_ref_p): Likewise. 9869 (mips_cfun_has_inflexible_gp_ref_p): Likewise. 9870 (mips_insn_has_flexible_gp_ref_p): Likewise. 9871 (mips_cfun_has_flexible_gp_ref_p): Likewise. 9872 (mips_function_has_gp_insn): Delete. 9873 (mips_global_pointer): Drop the df_regs_ever_live_p check. 9874 Use the new functions above. Only return INVALID_REGNUM 9875 for TARGET_ABSOLUTE_JUMPS. 9876 (mips_must_initialize_gp_p): New function. 9877 (mips_get_cprestore_base_and_offset): New function, extracted from... 9878 (mips_cprestore_slot): ...here. Take a bool parameter. 9879 (mips_cfun_has_cprestore_slot_p): New function. 9880 (mips_cprestore_address_p): Likewise. 9881 (mips_save_gp_to_cprestore_slot): Likewise. 9882 (mips_restore_gp): Rename to... 9883 (mips_restore_gp_from_cprestore_slot): ...this. Assert 9884 epilogue_completed. Update the call to mips_cprestore_slot. 9885 Test cfun->machine->must_restore_gp_when_clobbered_p. 9886 (mips_direct_save_slot_move_p): New function. 9887 (mips_emit_save_slot_move): Likewise. 9888 (mips_output_cplocal): Test mips_must_initialize_gp_p () instead 9889 of cfun->machine->global_pointer. 9890 (mips_output_function_prologue): Check mips_must_initialize_gp_p (). 9891 (mips_save_reg): Use mips_emit_save_slot_move. 9892 (mips_expand_prologue): Set must_initialize_gp_p. 9893 Use mips_cfun_has_cprestore_slot_p. Use gen_potential_cprestore 9894 for all cprestore saves. Emit a use_cprestore instruction after 9895 setting up the cprestore slot. 9896 (mips_restore_reg): Use mips_emit_save_slot_move. 9897 (mips_process_load_label): New function. 9898 (mips_load_label_length): Likewise. 9899 (mips_output_load_label): Don't return asm: output it here instead. 9900 Use mips_process_load_label. 9901 (mips_adjust_insn_length): Adjust the length of branch instructions 9902 that have length MAX_PIC_BRANCH_LENGTH. 9903 (mips_output_conditional_branch): Update the call to 9904 mips_output_load_label. Assume the branch target is OPERANDS[0] 9905 rather than OPERANDS[1]. Use MIPS_ABSOLUTE_JUMP for absolute jumps. 9906 (mips_output_order_conditional_branch): Swap the meaning of 9907 OPERANDS[0] and OPERANDS[1]. 9908 (mips_variable_issue): Don't count ghost instructions. 9909 (mips_expand_ghost_gp_insns): New function. 9910 (mips_reorg): Rerun mips_reorg_process_insns if it returns true. 9911 (mips_output_mi_thunk): Set must_initialize_gp_p. 9912 (mips_eh_uses): New function. 9913 * config/mips/predicates.md (cprestore_save_slot_operand) 9914 (cprestore_load_slot_operand): New predicates. 9915 * config/mips/mips.md (UNSPEC_POTENTIAL_CPRESTORE): New unspec. 9916 (UNSPEC_MOVE_GP): Likewise. 9917 (UNSPEC_CPRESTORE, UNSPEC_RESTORE_GP, UNSPEC_EH_RETURN) 9918 (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT): Bump to make room. 9919 (CPRESTORE_SLOT_REGNUM): New register. 9920 (MAX_PIC_BRANCH_LENGTH): New constant. 9921 (jal_macro): Use MIPS_ABSOLUTE_JUMPS. 9922 (length): Use MAX_PIC_BRANCH_LENGTH as a placeholder for PIC long 9923 branches. Fix commentary. 9924 (loadgp_newabi_<mode>): Change from unspec_volatile to unspec. 9925 Only split if mips_must_initialize_gp_p; expand to nothing otherwise. 9926 Change type to "ghost". 9927 (loadgp_absolute_<mode>): Likewise. 9928 (loadgp_rtp_<mode>): Likewise. 9929 (copygp_mips16): Likewise. 9930 (loadgp_blockage): Remove redundant mode attribute. 9931 (potential_cprestore): New instruction. 9932 (cprestore): Turn into an unspec set. 9933 (use_cprestore): New instruction. 9934 (*branch_fp): Swap operands 0 and 1. Remove redundant mode attribute. 9935 (*branch_fp_inverted): Likewise. 9936 (*branch_order<mode>): Likewise. 9937 (*branch_order<mode>_inverted): Likewise. 9938 (*branch_equality<mode>): Likewise. 9939 (*branch_equality<mode>_inverted): Likewise. 9940 (*branch_bit<bbv><mode>): Likewise. 9941 (*branch_bit<bbv><mode>_inverted): Likewise. 9942 (*branch_equality<mode>_mips16): Remove redundant mode. 9943 (jump): Turn into a define_expand. 9944 (*jump_absolute): New instruction. 9945 (*jump_pic): Likewise. 9946 (*jump_mips16): Rename previously-unnamed pattern. Remove 9947 redundant mode attribute. 9948 (restore_gp): Split on epilogue_completed rather than 9949 reload_completed. Change type to "ghost". 9950 (move_gp<mode>): New instruction. 9951 * config/mips/mips-dsp.md (mips_bposge): Swap operands 0 and 1. 9952 Remove redundant mode attribute. 9953 * config/mips/mips-ps-3d.md (bc1any4t): Likewise. 9954 (bc1any4f, bc1any2t, bc1any2f): Likewise. 9955 (*branch_upper_lower, *branch_upper_lower_inverted): Likewise. 9956 99572009-09-14 Michael Meissner <meissner@linux.vnet.ibm.com> 9958 9959 PR target/41210 9960 * config/rs6000/rs6000.c (rs6000_function_value): V2DF and V2DI 9961 are returned in the same register (vs34 or v2) that Altivec vector 9962 types are returned in. 9963 (rs6000_libcall_value): Ditto. 9964 9965 PR target/41331 9966 * config/rs6000/rs6000.c (rs6000_emit_move): Use gen_add3_insn 9967 instead of explicit addsi3/adddi3 calls. 9968 (rs6000_split_multireg_move): Ditto. 9969 (rs6000_emit_allocate_stack): Ditto. 9970 (rs6000_emit_prologue): Ditto. 9971 (rs6000_output_mi_thunk): Ditto. 9972 9973 * config/rs6000/rs6000.md (bswapdi*): Don't assume the pointer 9974 size is 64 bits if we can use 64-bit registers. 9975 99762009-09-14 Bernd Schmidt <bernd.schmidt@analog.com> 9977 9978 * config/bfin/bfin.c (bfin_longcall_p): Don't use short calls for weak 9979 symbols. 9980 9981 From Jie Zhang <jie.zhang@analog.com>: 9982 * config/bfin/bfin.c (bfin_expand_prologue): Ask do_link to 9983 save FP and RETS with saveall attribute. 9984 (bfin_expand_epilogue): Ask do_unlink to restore FP and RETS 9985 with saveall attribute. 9986 9987 * config/bfin/bfin.c (bfin_expand_builtin, 9988 case BFIN_BUILTIN_MULT_1X32X32): Force constants to registers for the 9989 operands. 9990 9991 From Jie Zhang <jie.zhang@analog.com>: 9992 * config/bfin/bfin.c (bfin_expand_builtin): Initialize icodes 9993 before use in two places. 9994 * config/bfin/bfin.md (AREG): Define mode iterator. 9995 (reload_in, reload_out): Use mode iterator AREG. 9996 99972009-09-14 Richard Guenther <rguenther@suse.de> 9998 9999 PR middle-end/41350 10000 * dwarf2out.c (dwarf2out_begin_prologue): Adjust non-CFI asm 10001 EH personality path. 10002 100032009-09-13 Richard Guenther <rguenther@suse.de> 10004 Rafael Avila de Espindola <espindola@google.com> 10005 10006 * langhooks-def.h (LANG_HOOKS_EH_RUNTIME_TYPE): Define. 10007 (LANG_HOOKS_EH_PERSONALITY): Likewise. 10008 (LANG_HOOKS_INITIALIZER): Adjust. 10009 (lhd_pass_through_t): Declare. 10010 * langhooks.h (struct lang_hooks): Add eh_runtime_type and 10011 eh_personality. 10012 * langhooks.c (lhd_pass_through_t): New function. 10013 * dwarf2out.c (output_call_frame_info, dwarf2out_do_cfi_startproc, 10014 dwarf2out_begin_prologue): Use personality from current_function_decl. 10015 * expr.h (get_personality_function): Declare. 10016 * expr.c (get_personality_function): New function. 10017 (build_personality_function): Likewise. 10018 * libfuncs.h (libfunc_index): Remove LTI_eh_personality. 10019 (eh_personality_libfunc): Remove. 10020 * optabs.c (build_libfunc_function): New function split out from ... 10021 (init_one_libfunc): ... here. 10022 * tree.h (DECL_FUNCTION_PERSONALITY): New. 10023 (tree_function_decl): Add personality. 10024 (lhd_gcc_personality): Declare. 10025 (build_personality_function): Likewise. 10026 * tree.c (gcc_eh_personality_decl): New. 10027 (lhd_gcc_personality): New function. 10028 * except.h (lang_eh_runtime_type): Remove. 10029 (enum eh_personality_kind): New. 10030 (build_personality_function): Declare. 10031 (function_needs_eh_personality): Declare. 10032 * except.c (lang_eh_runtime_type): Remove. 10033 (function_needs_eh_personality): New function. 10034 (add_type_for_runtime): Call lang_hooks.type_for_runtime instead. 10035 (sjlj_emit_function_enter, output_function_exception_table): 10036 Use personality from current_function_decl. 10037 * tree-eh.c (lower_eh_constructs): Set DECL_FUNCTION_PERSONALITY. 10038 * tree-inline.c (tree_can_inline_p): Do not inline across different 10039 EH personalities. 10040 (expand_call_inline): Likewise. Adjust the callers EH personality. 10041 (tree_function_versioning): Copy DECL_FUNCTION_PERSONALITY. 10042 * cgraph.c (cgraph_add_new_function): Set DECL_FUNCTION_PERSONALITY. 10043 * Makefile.in (cgraph.o): Add $(EXCEPT_H) dependency. 10044 (c-parser.o): Likewise 10045 * c-tree.h (c_eh_initialized_p): Remove. 10046 (c_maybe_initialize_eh): Likewise. 10047 * c-decl.c (finish_decl): Don't call c_maybe_initialize_eh. 10048 (finish_decl): Don't call c_maybe_initialize_eh. 10049 (c_eh_initialized_p): Remove. 10050 (c_maybe_initialize_eh): Likewise. 10051 * c-parser.c (c_parser_omp_construct): Likewise. 10052 (c_parse_file): Initialize exception handling. 10053 100542009-09-13 Kai Tietz <kai.tietz@onevision.com> 10055 10056 * config.gcc (tm_file): Remove i386/biarch32.h 10057 for i?86-w64-mingw* case. 10058 (i?86-*-mingw* andx86_64-*-mingw*): Add multilib 10059 support. 10060 * config.host: Set for x64 mingw the option 10061 use_long_long_for_widest_fast_int to yes. 10062 100632009-09-13 Eric Botcazou <ebotcazou@adacore.com> 10064 10065 * tree.h (DECL_IGNORED_P): Document further effect for FUNCTION_DECL. 10066 * dbxout.c (dbxout_function_end): Do not test DECL_IGNORED_P. 10067 (dbxout_begin_function): Likewise. 10068 * final.c (dwarf2_debug_info_emitted_p): New predicate. 10069 (final_start_function): Do not emit debug info if DECL_IGNORED_P is 10070 set on the function. 10071 (final_end_function): Likewise. 10072 (final_scan_insn): Likewise. 10073 (rest_of_handle_final): Likewise. 10074 * varasm.c (assemble_start_function): Likewise. 10075 * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Likewise. 10076 100772009-09-12 Jason Merrill <jason@redhat.com> 10078 10079 * dbgcnt.c (dbg_cnt_process_single_pair): constify. 10080 * opts.c (common_handle_option): constify. 10081 100822009-09-12 Gerald Pfeifer <gerald@pfeifer.com> 10083 10084 * doc/install.texi (avr): Remove obsolete reference site. 10085 100862009-09-12 Gerald Pfeifer <gerald@pfeifer.com> 10087 10088 * doc/install.texi (Binaries): Adjust AIX link. 10089 100902009-09-12 Akim Demaille <demaille@gostai.com> 10091 10092 * doc/invoke.texi (-fstrict-aliasing): Correct two examples. 10093 Use an imperative sentence. 10094 100952009-09-11 Richard Henderson <rth@redhat.com> 10096 10097 * gsstruct.def (DEFGSSTRUCT): Remove printable-name argument; add 10098 structure-name and has-tree-operands arguments; update all entries. 10099 * gimple.def (DEFGSCODE): Replace 3rd argument with GSS_symbol; 10100 update all entries. 10101 * gimple.c (gimple_ops_offset_): Use HAS_TREE_OP argument. 10102 (gsstruct_code_size): New. 10103 (gss_for_code_): New. 10104 (gss_for_code): Remove. 10105 (gimple_size): Rewrite using gsstruct_code_size. 10106 (gimple_statement_structure): Move to gimple.h. 10107 * gimple.h (gimple_ops_offset_, gss_for_code_): Declare. 10108 (gss_for_code, gimple_statement_structure): New. 10109 (gimple_ops): Use new arrays; tidy. 10110 101112009-09-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 10112 10113 * config/pa/predicates.md (symbolic_operand): Require a CONST symbolic 10114 operand to be a PLUS expression. 10115 * config/pa/pa.c (pa_secondary_reload): Likewise. 10116 101172009-09-11 Jakub Jelinek <jakub@redhat.com> 10118 10119 * combine.c (propagate_for_debug_subst): Call wrap_constant on top. 10120 10121 * print-rtl.c (print_rtx): Use JUMP_LABEL (in_rtx) instead of 10122 XEXP (in_rtx, 8). 10123 101242009-09-11 Bernd Schmidt <bernd.schmidt@analog.com> 10125 10126 From Jie Zhang <jie.zhang@analog.com>: 10127 * doc/extend.texi (node Function Attributes): Document l2 10128 function attribute. 10129 (node Blackfin Variable Attributes): Document l2 variable attributes. 10130 101312009-09-11 Loren J. Rittle <ljrittle@acm.org> 10132 10133 * config.gcc (*-*-freebsd*): Enable default_use_cxa_atexit 10134 to match the system compiler's configuration at inflection point. 10135 Add comment to remark a remaining difference with system compiler. 10136 10137 * configure.ac (*-*-freebsd*): Enable check for __stack_chk_fail. 10138 * configure: Regenerate. 10139 101402009-09-11 Bernd Schmidt <bernd.schmidt@analog.com> 10141 10142 From Jie Zhang <jie.zhang@analog.com>: 10143 * config/bfin/bfin.c (bfin_expand_call): Handle L2 functions. 10144 (bfin_handle_l2_attribute): New. 10145 (bfin_attribute_table): Add l2 attribute. 10146 101472009-09-11 Michael Matz <matz@suse.de> 10148 10149 PR middle-end/41275 10150 * tree-inline.c (remap_decls): Don't put DECL_EXTERNAL decls 10151 on the local_decls list. 10152 101532009-09-11 Alexandre Oliva <aoliva@redhat.com> 10154 10155 PR debug/41276 10156 PR debug/41307 10157 * cselib.c (cselib_expand_value_rtx_cb): Document callback 10158 interface. 10159 (cselib_expand_value_rtx_1): Use callback for SUBREGs. Adjust 10160 for VALUEs, to implement the documented interface. 10161 * var-tracking.c (vt_expand_loc_callback): Handle SUBREGs. 10162 Adjust for VALUEs and anything else, to implement the 10163 documented interface. 10164 101652009-09-10 Nathan Froyd <froydnj@codesourcery.com> 10166 10167 * config/rs6000/rs6000.h (DATA_ALIGNMENT): Check that we are dealing 10168 with actual SPE/paired vector modes before using 64-bit alignment. 10169 Check that TYPE is a REAL_TYPE for TARGET_E500_DOUBLE. 10170 101712009-09-10 DJ Delorie <dj@redhat.com> 10172 10173 * config/mep/mep.md (eh_epilogue): Defer until after epilogue is 10174 emitted. 10175 10176 * config/mep/mep.h (LEGITIMATE_CONSTANT_P): New. 10177 * config/mep/mep.c (mep_legitimate_constant_p): New. 10178 * config/mep/mep-protos.h: Prototype it. 10179 101802009-09-10 Richard Henderson <rth@redhat.com> 10181 10182 * print-rtl.c (print_rtx): Fix JUMP_LABEL index. 10183 101842009-09-10 Jason Merrill <jason@redhat.com> 10185 10186 * tree.c (chain_index): New fn. 10187 * tree.h: Declare it. 10188 101892009-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 10190 10191 * config/sol2-c.c (cmn_err_length_specs): Initialize 10192 scalar_identity_flag. 10193 101942009-09-10 Richard Henderson <rth@redhat.com> 10195 10196 * tree.h (struct tree_decl_common): Move align member earlier; 10197 move label_decl_uid member ... 10198 (struct tree_label_decl): ... here. 10199 (LABEL_DECL_UID): Update to match. 10200 10201 * tree-cfg.c (dump_function_to_file): Dump eh tree with TDF_EH, 10202 not TDF_DETAILS. 10203 10204 * tree-cfg.c (gimple_redirect_edge_and_branch): Do 10205 gimple_try_redirect_by_replacing_jump test after no-op and EH tests. 10206 10207 * tree-cfg.c (split_edge_bb_loc): Don't disallow placement at 10208 dest_prev if the edge is complex. 10209 10210 * tree-cfg.c (is_ctrl_stmt): Use a switch. 10211 10212 * tree-cfg.c (gimple_can_merge_blocks_p): Move label and 10213 loop latch tests earlier. 10214 10215 * gimple-iterator.c (gimple_find_edge_insert_loc): Insert 10216 before GIMPLE_RETURN, not after its predecessor; insert 10217 before GIMPLE_RESX. 10218 10219 * gimple-iterator.c (gimple_find_edge_insert_loc): Use 10220 gimple_seq_empty_p to test for no PHI nodes. 10221 * tree-cfg.c (split_critical_edges): Likewise. 10222 10223 * c-common.h (c_dialect_cxx, c_dialect_objc): Boolify. 10224 102252009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com> 10226 10227 * final.c (shorten_branches) : Ignore DEBUG_INSN_P instructions 10228 introduced by the VTA branch merge. 10229 102302009-09-10 Uros Bizjak <ubizjak@gmail.com> 10231 10232 * ira-conflicts.c: Use fputs or putc instead of fprintf 10233 where appropriate. 10234 * cfg.c: Ditto. 10235 * toplev.c: Ditto. 10236 * tree-switch-conversion.c: Ditto. 10237 102382009-09-10 Hariharan Sandanagobalane <hariharan@picochip.com> 10239 10240 * config/picochip/picochip.c : Ignore DEBUG_INSN_P instructions 10241 introduced by the VTA branch merge. 10242 102432009-09-10 Uros Bizjak <ubizjak@gmail.com> 10244 10245 Revert: 10246 2009-09-09 Uros Bizjak <ubizjak@gmail.com> 10247 10248 PR rtl-optimization/39779 10249 * expr.c (convert_modes): Return when mode == oldmode after 10250 CONST_INTs are processed. 10251 102522009-09-10 Nick Clifton <nickc@redhat.com> 10253 10254 * config/mep/mep.c (mep_encode_section_info): Copy weakness 10255 attribute and referring decl when creating renamed symbol. 10256 102572009-09-10 Richard Guenther <rguenther@suse.de> 10258 10259 PR middle-end/41257 10260 * cgraphunit.c (cgraph_emit_thunks): Emit thunks only for 10261 reachable nodes. 10262 (cgraph_finalize_compilation_unit): Compute reachability 10263 before emitting thunks. Properly process aliases before 10264 possibly removing unreachable nodes. 10265 102662009-09-10 Richard Guenther <rguenther@suse.de> 10267 10268 PR middle-end/41254 10269 * tree.c (struct free_lang_data_d): Add worklist member. 10270 (find_decls_types_r): Push onto the worklist instead of recursing. 10271 Handle TREE_BINFOs properly. 10272 (find_decls_types): New function wrapped around find_decls_types_r 10273 to process the worklist. 10274 (find_decls_types_in_eh_region): Use it. 10275 (find_decls_types_in_node): Likewise. 10276 (find_decls_types_in_var): Likewise. 10277 (free_lang_data_in_cgraph): Likewise. Free the worklist. 10278 * tree.h (RECORD_OR_UNION_TYPE_P): New. 10279 (AGGREGATE_TYPE_P): Adjust. 10280 102812009-09-09 Jason Merrill <jason@redhat.com> 10282 10283 * configure.ac: Check glibc version even if we have an in-tree 10284 assembler. 10285 102862009-09-09 Anthony Green <green@moxielogic.com> 10287 10288 * config/moxie/moxie.md (*movsi, *movhi, *movqi): Use xor to load 10289 the constant 0 when appropriate. 10290 * config/moxie/constraints.md: Add constraint O. 10291 10292 * config/moxie/moxie.c (moxie_setup_incoming_varargs): Adjust 10293 to pass up to 6 32-bit argument values in registers. 10294 (moxie_function_arg): Ditto. 10295 (moxie_arg_partial_bytes): Ditto. 10296 * config/moxie/moxie.h (FUNCTION_ARG_ADVANCE): Ditto. 10297 (REG_PARM_STACK_SPACE): Ditto. 10298 (FUNCTION_ARG_REGNO_P): Ditto. 10299 10300 * config/moxie/moxie.c (moxie_expand_prologue): Use dec 10301 instruction to allocate stack space. 10302 103032009-09-09 Segher Boessenkool <segher@kernel.crashing.org> 10304 10305 * config/rs6000/rs6000.md (bswapdi2_64bit): Fix 10306 unnecessarily stringent constraints. Fix address 10307 calculation in the splitters. 10308 103092009-09-09 Uros Bizjak <ubizjak@gmail.com> 10310 10311 PR rtl-optimization/39779 10312 * expr.c (convert_modes): Return when mode == oldmode after 10313 CONST_INTs are processed. 10314 103152009-09-09 Kai Tietz <kai.tietz@onevision.com> 10316 10317 PR/41315 10318 * config/i386.c (ix86_can_use_return_insn_p): Check for padding0, too. 10319 (ix86_expand_prologue): Take frame.padding0 into logic of 10320 to_allocate checks. 10321 (ix86_expand_epilogue): Likewise. 10322 103232009-09-09 Jakub Jelinek <jakub@redhat.com> 10324 10325 * config/t-slibgcc-elf-ver (SHLIB_MAKE_SOLINK, SHLIB_INSTALL_SOLINK): 10326 New variables. 10327 (SHLIB_LINK, SHLIB_INSTALL): Use them. 10328 * config/t-slibgcc-libgcc: New file. 10329 * config.gcc (powerpc*-*-linux*, powerpc*-*-gnu*): Use it. 10330 103312009-09-09 Martin Jambor <mjambor@suse.cz> 10332 10333 PR tree-optimization/41089 10334 * tree-sra.c (find_var_candidates): Do not consider va_lists in 10335 early SRA. 10336 103372009-09-09 Richard Henderson <rth@redhat.com> 10338 10339 * gimple.h (CASE_GIMPLE_OMP): New. 10340 (is_gimple_omp): Use it. 10341 * tree-cfg.c (is_ctrl_altering_stmt): Likewise. 10342 (verify_gimple_debug): Likewise. 10343 103442009-09-09 Richard Guenther <rguenther@suse.de> 10345 10346 PR tree-optimization/41101 10347 * tree-ssa-pre.c (maximal_set): Remove. 10348 (compute_antic_aux): Treat the maximal set as implicitly all ones. 10349 Defer all blocks we didn't visit at least one successor. 10350 (add_to_exp_gen): Do not add to the maximal set. 10351 (make_values_for_phi): Likewise. 10352 (compute_avail): Likewise. 10353 (init_pre): Do not allocate the maximal set. 10354 (execute_pre): Do not dump it. 10355 103562009-09-09 Martin Jambor <mjambor@suse.cz> 10357 10358 * tree-cfg.c (verify_gimple_phi): Check that gimple_phi_result is 10359 an SSA_NAME rather than a is_gimple_variable. 10360 103612009-09-09 Richard Guenther <rguenther@suse.de> 10362 10363 PR middle-end/41317 10364 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Remove 10365 code dealing with plain pointer bases. 10366 (maybe_fold_offset_to_reference): Likewise. 10367 (maybe_fold_stmt_addition): Adjust. 10368 103692009-09-09 Richard Guenther <rguenther@suse.de> 10370 10371 * tree.c (free_lang_data_in_type): Do not free the type variant 10372 chains. 10373 (free_lang_data): Merge char_type_node with its properly signed 10374 variant. 10375 (pass_ipa_free): Collect after freeing language specific data. 10376 103772009-09-09 Michael Matz <matz@suse.de> 10378 10379 PR middle-end/41268 10380 * cfgexpand.c (expand_gimple_stmt_1): Use an int for storing 10381 SUBREG_PROMOTED_UNSIGNED_P, instead of a bool. 10382 * rtl.h (struct rtx, SUBREG_PROMOTED_UNSIGNED_P): Update comments 10383 to reflect reality. 10384 103852009-09-08 DJ Delorie <dj@redhat.com> 10386 10387 * config/mep/mep.c (conversions[]): Add "ml" pattern. 10388 103892009-09-04 Jason Merrill <jason@redhat.com> 10390 10391 * tree.c (tree_find_value): Remove. 10392 * tree.h: Remove prototype. 10393 * varasm.c (assemble_external): Use value_member instead. 10394 103952009-09-08 Alexandre Oliva <aoliva@redhat.com> 10396 10397 * toplev.c (process_options): Choose default debugging type when 10398 gtoggle enables debug info and type is unset. 10399 104002009-09-08 Alexandre Oliva <aoliva@redhat.com> 10401 10402 PR debug/41276 10403 PR debug/41307 10404 * cselib.c (cselib_expand_value_rtx_1): Don't return copy of 10405 invalid subreg. 10406 104072009-09-08 Alexandre Oliva <aoliva@redhat.com> 10408 10409 * configure: Rebuilt with modified libtool.m4. 10410 104112009-09-08 Alexandre Oliva <aoliva@redhat.com> 10412 10413 PR debug/41229 10414 PR debug/41291 10415 PR debug/41300 10416 * tree-ssa.c (execute_update_addresses_taken): Update debug insns. 10417 104182009-09-08 Alexandre Oliva <aoliva@redhat.com> 10419 10420 * tree-ssa-loop-ivopts.c (get_phi_with_result): Remove. 10421 (remove_statement): Likewise. 10422 (rewrite_use_nonlinear_expr): Adjust. 10423 (remove_unused_ivs): Collect SSA NAMEs to remove and call... 10424 * tree-ssa.c (release_defs_bitset): ... this. New. 10425 * tree-flow.h (release_defs_bitset): Declare. 10426 104272009-09-08 Alexandre Oliva <aoliva@redhat.com> 10428 10429 PR debug/41232 10430 * tree-ssa-phiopt.c (minmax_replacement): Skip debug stmts 10431 in the middle block. 10432 104332009-09-08 Kai Tietz <kai.tietz@onevision.com> 10434 10435 * tree-ssa-reassoc.c (find_operand_rank): Cast pointer 10436 via intptr_t to long type. 10437 (insert_operand_rank): Cast long type via intptr_t to 10438 pointer type. 10439 * genattrtab.c (RTL_HASH): Use intptr_t to cast from 10440 pointer to scalar. 10441 * c-pretty-print.c (pp_c_tree_decl_identifier): Cast 10442 from pointer to unsigned via uintptr_t. 10443 10444 * configure.ac (GCC_STDINT_TYPES): Initialize intptr_t, 10445 uintptr_t, HAVE_INTTYPES_H, HAVE_STDINT_H, HAVE_UINTPTR_T, 10446 and HAVE_INTPTR_T. 10447 * configure: Regenerated. 10448 * config.in: Regenerated 10449 * system.h (stdint.h): Add include. 10450 (inttypes.h): Likewise. 10451 * Makefile.in (aclocal): Add config/stdint.m4. 10452 * aclocal.m4: Regenerated. 10453 104542009-09-08 Bernd Schmidt <bernd.schmidt@analog.com> 10455 10456 * config/bfin/bfin.c (np_check_regno, np_after_branch): New static 10457 variables. 10458 (note_np_check_stores): New function. 10459 (harmless_null_pointer_p): New function. 10460 (trapping_loads_p): New args NP_REG and AFTER_NP_BRANCH. Callers 10461 changed. Take into account whether we're in the shadow of a condjump 10462 that tested NP_REG for NULL. 10463 Lose all code that tested for SEQUENCEs. 10464 (workaround_speculation): Avoid inserting NOPs for loads that are 10465 either always executed or a NULL pointer. 10466 104672009-09-08 Jan Hubicka <jh@suse.cz> 10468 10469 * doc/invoke.texi (early-inlining-insns): Reduce from 12 to 8. 10470 * params.def (early-inlining-insns): Likewise. 10471 104722009-09-08 Jakub Jelinek <jakub@redhat.com> 10473 10474 PR rtl-optimization/41239 10475 * sched-int.h (struct deps): Add last_function_call_may_noreturn field. 10476 * sched-rgn.c (deps_join): Join also last_function_call_may_noreturn 10477 lists. 10478 * sched-deps.c (sched_analyze_insn): Prevent moving trapping insns 10479 across calls, as the calls might not always return normally. 10480 (call_may_noreturn_p): New function. 10481 (deps_analyze_insn): Update last_function_call_may_noreturn list. 10482 (init_deps): Initialize it. 10483 (remove_from_deps): Also remove calls from 10484 last_function_call_may_noreturn list. 10485 104862009-09-07 Richard Henderson <rth@redhat.com> 10487 10488 * tree-ssa-sccvn.c (vn_reference_lookup_3): Don't assume there are 10489 more VR->OPERANDS than LHS operands. Free LHS before returning. 10490 104912009-09-07 Bernd Schmidt <bernd.schmidt@analog.com> 10492 10493 * config/bfin/bfin.md (UNSPEC_VOLATILE_STALL): New constant. 10494 (attr "addrtype"): New member "spreg". 10495 Use it if mem_spfp_address_operand is true for the address. 10496 (attr "type"): New entry "stall". 10497 (cpu_unit "load"): New. 10498 (insn_reservations "load32", "loadp", "loadi"): Add reservation of 10499 "load". 10500 (insn_reservation "loadsp"): New. 10501 (insn_reservation "load_stall1"): New. 10502 (insn_reservation "load_stall3"): New. 10503 (stall): New insn. 10504 * config/bfin/predicates.md (const1_operand, const3_operand): New. 10505 (mem_p_address_operand): Exclude stack and frame pointer based 10506 addresses. 10507 (mem_spfp_address_operand): New; match them here. 10508 * config/bfin/bfin.c (add_sched_insns_for_speculation): New function. 10509 (bfin_reorg): Call it if scheduling insns. 10510 (bfin_gen_bundles): Remove dummy insns created by 10511 add_sched_insns_for_speculation. 10512 10513 From Jie Zhang <jie.zhang@analog.com>: 10514 * config/bfin/bfin-protos.h (enum bfin_cpu_type, bfin_cpu_type, 10515 bfin_si_revision, bfin_workarounds): Move these ... 10516 * config/bfin/bfin.h: ... here. 10517 10518 From Mike Frysinger <michael.frysinger@analog.com> 10519 * config/bfin/bfin-protos.h (bfin_cpu_type): Add BFIN_CPU_BF542M, 10520 BFIN_CPU_BF544M, BFIN_CPU_BF547M, BFIN_CPU_BF548M, and BFIN_CPU_BF549M. 10521 * config/bfin/bfin.c (bfin_cpus[]): Add 0.3 for bf542m, bf544m, 10522 bf547m, bf548m, and bf549m. 10523 * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __ADSPBF542M__ 10524 for BFIN_CPU_BF542M, __ADSPBF544M__ for BFIN_CPU_BF544M, 10525 __ADSPBF547M__ for BFIN_CPU_BF547M, __ADSPBF548M__ for 10526 BFIN_CPU_BF548M, and __ADSPBF549M__ for BFIN_CPU_BF549M. 10527 * config/bfin/t-bfin-elf (MULTILIB_MATCHES): Select bf532-none for 10528 bf542m-none, bf544m-none, bf547m-none, bf548m-none, and bf549m-none. 10529 * config/bfin/t-bfin-linux (MULTILIB_MATCHES): Likewise. 10530 * config/bfin/t-bfin-uclinux (MULTILIB_MATCHES): Likewise. 10531 * doc/invoke.texi (Blackfin Options): Document that -mcpu now accepts 10532 bf542m, bf544m, bf547m, bf548m, and bf549m. 10533 10534 From Jie Zhang <jie.zhang@analog.com>: 10535 * config/bfin/predicates.md (p_register_operand): New predicate. 10536 (dp_register_operand): New predicate. 10537 * config/bfin/bfin-protos.h (WA_05000074): Define. 10538 (ENABLE_WA_05000074): Define. 10539 * config/bfin/bfin.c (bfin_cpus[]): Add WA_05000074 for all cpus. 10540 (bfin_gen_bundles): Put dsp32shiftimm instruction in slot[0]. 10541 * config/bfin/bfin.md (define_attr type): Add dsp32shiftimm. 10542 (define_attr addrtype): Allow load/store register to be P register. 10543 (define_attr storereg): New. 10544 (define_cpu_unit anomaly_05000074): New. 10545 (define_insn_reservation dsp32shiftimm): New. 10546 (define_insn_reservation dsp32shiftimm_anomaly_05000074): New. 10547 (define_insn_reservation loadp): Cannot use slot2. 10548 (define_insn_reservation loadsp): Cannot use slot2. 10549 (define_insn_reservation storep): Cannot use slot2. Does not 10550 apply when working around 05000074. 10551 (define_insn_reservation storep_anomaly_05000074): New. 10552 (define_insn_reservation storei): Does not apply when working 10553 around 05000074. 10554 (define_insn_reservation storei_anomaly_05000074): New. 10555 (define_attr length): Add dsp32shiftimm case. 10556 (define_insn movsi_insn32, movsi_insv, ashlsi3_insn, ashrsi3, 10557 ror_one, rol_one, lshrsi3, lshrpdi3, ashrpdi3, movhiv2hi_low, 10558 movhiv2hi_high, composev2hi, packv2hi, movv2hi_hi, 10559 ssashiftv2hi3, ssashifthi3, ssashiftsi3, lshiftv2hi3, lshifthi3): 10560 Set type as dsp32shiftimm for dsp32shiftimm alternatives. 10561 105622009-09-07 Martin Jambor <mjambor@suse.cz> 10563 10564 PR middle-end/41282 10565 * tree-sra.c (create_artificial_child_access): Return NULL if 10566 build_ref_for_offset fails. 10567 (propagate_subacesses_accross_link): Allow build_ref_for_offset 10568 and create_artificial_child_access to fail. 10569 105702009-09-06 Dmitry Gorbachev <d.g.gorbachev@gmail.com> 10571 10572 PR c++/41214 10573 * unwind-dw2.c (uw_init_context_1): Mark noinline. 10574 * config/ia64/unwind-ia64.c (uw_init_context_1): Likewise. 10575 * config/xtensa/unwind-dw2-xtensa.c (uw_init_context_1): Likewise. 10576 105772009-09-07 Bernd Schmidt <bernd.schmidt@analog.com> 10578 10579 * config/bfin/bfin.c (bfin_optimize_loop): When creating a new basic 10580 block, ensure it has an exit edge. Emit a barrier after a jump. 10581 105822009-09-07 Nick Clifton <nickc@redhat.com> 10583 10584 * gcc.c (this_is_linker_script): New variable. Like 10585 this_is_library_file but for the %T constructor. 10586 (end_going_arg): If this_is_linker_script is set then locate the 10587 script and insert a --script switch before it 10588 (do_spec_2): Initialise this_is_linker_script. 10589 (do_spec_1): Likewise. Handle %T construct. 10590 (eval_spec_function): Preserve this_is_linker_script. 10591 * doc/invoke.texi: Document %T construct in spec files. 10592 * config/m32c/m32c.h (LIB_SPEC): Use it. 10593 105942009-09-07 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 10595 10596 * rtl.h (PREFETCH_SCHEDULE_BARRIER_P): New macro. 10597 * sched-deps.c (sched_analyze_2): Make prefetches a hard barrier 10598 when volatile flag is set. 10599 * doc/rtl.texi (PREFETCH_SCHEDULE_BARRIER_P): Add documentation pieces. 10600 106012009-09-06 Eric Botcazou <ebotcazou@adacore.com> 10602 10603 PR bootstrap/41241 10604 * combine-stack-adj.c (try_apply_stack_adjustment): Handle stores. 10605 (combine_stack_adjustments_for_block): Allow insns between stack 10606 adjustments and stores with corresponding pre-(dec|inc)rement or 10607 pre-modify operation. 10608 106092009-09-06 Jakub Jelinek <jakub@redhat.com> 10610 10611 PR bootstrap/41241 10612 * combine-stack-adj.c (struct csa_memlist): Rename to... 10613 (struct csa_reflist): ... this. Rename mem field to ref. 10614 (free_csa_memlist): Rename to... 10615 (free_csa_reflist): ... this. 10616 (record_one_stack_memref): Rename to... 10617 (record_one_stack_ref): ... this. Handle also REG_P. 10618 (try_apply_stack_adjustment): Handle also REG_P. 10619 (struct record_stack_memrefs_data): Rename to... 10620 (struct record_stack_refs_data): ... this. Rename memlist field to 10621 reflist. 10622 (record_stack_memrefs): Rename to... 10623 (record_stack_refs): ... this. For DEBUG_INSNs keep traversing 10624 subexpressions instead of failing when a MEM contains SP references. 10625 For SP itself in DEBUG_INSNs queue it also onto reflist chain. 10626 (combine_stack_adjustments_for_block): Adjust for mem to ref renaming. 10627 106282009-09-06 Richard Guenther <rguenther@suse.de> 10629 10630 PR middle-end/41144 10631 * tree.c (build_array_type): Do not record types marked 10632 with structural equality in the canonical type hashtable. 10633 106342009-09-06 Richard Guenther <rguenther@suse.de> 10635 10636 PR middle-end/41261 10637 * tree-ssa-alias.c (refs_may_alias_p_1): Bail out for function decls. 10638 106392009-09-05 Richard Guenther <rguenther@suse.de> 10640 10641 PR middle-end/41181 10642 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Use the correct type. 10643 106442009-09-05 Richard Guenther <rguenther@suse.de> 10645 10646 PR debug/41273 10647 * tree-ssa-operands.c (get_tmr_operands): Pass through opf_no_vops. 10648 106492009-09-05 Richard Guenther <rguenther@suse.de> 10650 10651 PR middle-end/41271 10652 * tree-ssa.c (useless_type_conversion_p): Drop qualifiers 10653 before comparing function argument types. 10654 106552009-09-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 10656 10657 PR target/41024 10658 * config/i386/mingw-w64.h (ASM_SPEC): Pass -v instead of -V to 10659 the assembler. 10660 106612009-09-04 Uros Bizjak <ubizjak@gmail.com> 10662 10663 Revert: 10664 2009-08-18 Uros Bizjak <ubizjak@gmail.com> 10665 10666 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn 10667 locators before emit_insn is called. 10668 106692009-09-04 Vladimir Makarov <vmakarov@redhat.com> 10670 10671 PR bootstrap/41241 10672 * ira.c (update_equiv_reg): Revert my previous patch for the PR. 10673 * reginfo.c (resize_reg_info): Call allocate_reg_info if necessary. 10674 (reginfo_init): Don't call allocate_reg_info. 10675 106762009-09-04 Uros Bizjak <ubizjak@gmail.com> 10677 10678 PR target/41262 10679 * config/alpha/alpha.c (alpha_does_function_need_gp): Use 10680 NONDEBUG_INSN_P instead of INSN_P. 10681 106822009-09-04 Alexandre Oliva <aoliva@redhat.com> 10683 10684 PR debug/41225 10685 * tree-vect-stmts.c (vect_stmt_relevant_p): Skip debug uses. 10686 106872009-09-04 Alexandre Oliva <aoliva@redhat.com> 10688 10689 PR target/41252 10690 * config/arm/vfp.md (*cmpdf_split_vfp): Fix src mode in the second 10691 pattern of the split. 10692 106932009-09-04 Alexandre Oliva <aoliva@redhat.com> 10694 10695 * toplev.c (process_options): Move setter of flag_var_tracking 10696 before other tests that depend on it. Move down setter of 10697 flag_rename_registers. Don't enable var-tracking-assignments 10698 by default if selective scheduling is enabled. Warn if both 10699 are enabled. 10700 107012009-09-04 Alexandre Oliva <aoliva@redhat.com> 10702 10703 * var-tracking.c (dv_is_decl_p): Adjust NULL behavior to match 10704 comment. Use switch statement to catch overlaps between rtx 10705 and tree codes. Accept FUNCTION_DECLs in addition to those in... 10706 (IS_DECL_CODE): ... here. Remove. 10707 (check_value_is_not_decl): Remove. 10708 (dv_from_decl, dv_from_value): Check after conversion. 10709 107102009-09-04 Richard Guenther <rguenther@suse.de> 10711 10712 PR middle-end/41257 10713 * (cgraph_finalize_compilation_unit): Move finalizing aliases 10714 after emitting tunks. Move emitting thunks and ctors from ... 10715 (cgraph_optimize): ... here. Remove redundant 10716 cgraph_analyze_functions. 10717 * varasm.c (find_decl_and_mark_needed): Remove no longer 10718 necessary check. 10719 (finish_aliases_1): Adjust check for thunk aliases. 10720 107212009-09-04 Daniel Gutson <dgutson@codesourcery.com> 10722 10723 * config/arm/arm.md (ctzsi2): Added braces 10724 to avoid warning that broke booststrap. 10725 107262009-09-04 Martin Jambor <mjambor@suse.cz> 10727 10728 PR tree-optimization/41112 10729 * tree-sra.c (build_ref_for_offset_1): Signal that we cannot 10730 handle variable-bounded arrays. 10731 (expr_with_var_bounded_array_refs_p): New function. 10732 (analyze_access_subtree): Call expr_with_var_bounded_array_refs_p. 10733 107342009-09-04 Wolfgang Gellerich <gellerich@de.ibm.com> 10735 10736 * config/s390/2097.md: Removed two incorrect bypasses. 10737 (z10_fsimpdf): Fixed latency. 10738 (z10_fhex): New insn_reservation. 10739 (z10_floaddf): Fixed latency. 10740 (z10_floadsf): Fixed latency. 10741 (z10_ftrunctf): Fixed latency. 10742 (z10_ftruncdf): Fixed latency. 10743 * config/s390/s390.c (z10_cost): Fixed values. 10744 (s390_adjust_priority): Added z10 path. 10745 * config/s390/s390.md (type): Added fhex. 10746 (*mov<mode>_64dfp): Updated type attribute. 10747 (*mov<mode>_64): Updated type attribute. 10748 (*mov<mode>_31): Updated type attribute. 10749 (*mov<mode>"): Likewise. 10750 * config/s390/2084.md (x_fsimpdf): Updated condition. 10751 107522009-09-04 Andreas Krebbel <krebbel1@de.ibm.com> 10753 10754 * config/s390/s390.md ("*fmadd<mode>", "*fmsub<mode>"): Enable mem 10755 RTXs in the predicate for operand 1. 10756 107572009-09-03 Daniel Gutson <dgutson@codesourcery.com> 10758 10759 * config/arm/arm.md (UNSPEC_RBIT): New constant. 10760 (rbitsi2): New insn. 10761 (ctzsi2): New expand. 10762 * config/arm/arm.h (CTZ_DEFINED_VALUE_AT_ZERO): New macro. 10763 107642009-09-03 Martin Jambor <mjambor@suse.cz> 10765 10766 * tree-sra.c (duplicate_expr_for_different_base): Removed. 10767 (create_artificial_child_access): Use build_ref_for_offset instead 10768 of duplicate_expr_for_different_base. 10769 (propagate_subacesses_accross_link): Likewise. 10770 107712009-09-03 Richard Sandiford <rdsandiford@googlemail.com> 10772 10773 * config/mips/mips.c (USEFUL_INSN_P): Use NONDEBUG_INSN_P instead 10774 of INSN_P. 10775 (mips16e_collect_argument_saves): Skip debug instructions. 10776 (mips_74k_agen_init): Use CALL_P || JUMP_P instead of !NONJUMP_INSN_P. 10777 (mips16_lay_out_constants): Use USEFUL_INSN_P instead of INSN_P. 10778 (r10k_insert_cache_barriers): Likewise. 10779 (mips_reorg_process_insns): Likewise. 10780 107812009-09-03 Vladimir Makarov <vmakarov@redhat.com> 10782 10783 PR bootstrap/41241 10784 * ira.c (update_equiv_reg): Remove check on class likely spill. 10785 107862009-09-03 Jakub Jelinek <jakub@redhat.com> 10787 10788 PR debug/41236 10789 * dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on 10790 SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of 10791 it or SUBREG. 10792 10793 PR debug/41238 10794 * function.c (assign_parm_find_stack_rtl): Don't set mem attributes on 10795 the stack slot if it is passed by invisible reference. 10796 * var-tracking.c (vt_add_function_parameters): Handle arguments passed 10797 by invisible reference. 10798 107992009-09-03 Bernd Schmidt <bernd.schmidt@analog.com> 10800 10801 * config/bfin/linux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1. 10802 * config/bfin/uclinux.h (TARGET_SUPPORTS_SYNC_CALLS): Define to 1. 10803 * config/bfin/bfin.h (TARGET_SUPPORTS_SYNC_CALLS): Provide default of 10804 0. 10805 * config/bfin/sync.md: New file. 10806 * config/bfin/bfin.md: Include it. 10807 (UNSPEC_ATOMIC): New. 10808 (UNSPEC_ONES): Provide a unique number. 10809 10810 From Jie Zhang <jie.zhang@analog.com>: 10811 * config/bfin/bfin.c (ret_regs): New. 10812 (must_save_fp_p): Don't return true because of frame_pointer_needed. 10813 (must_save_rets_p): New. 10814 (n_regs_saved_by_prologue): Use must_save_rets_p instead of 10815 current_function_is_leaf. 10816 (do_link): Likewise. 10817 (do_unlink): Likewise. 10818 (expand_interrupt_handler_prologue): Use ret_regs array. 10819 (expand_interrupt_handler_epilogue): Use ret_regs array and 10820 pass return register to gen_return_internal. 10821 (bfin_expand_epilogue): Pass return register to 10822 gen_return_internal. 10823 (bfin_expand_call): Explicitly clobber RETS. 10824 * config/bfin/bfin.h (FUNCTION_RETURN_REGISTERS): Define. 10825 * config/bfin/bfin.md (call_symbol_fdpic, call_value_symbol_fdpic, 10826 call_insn_fdpic, call_value_insn_fdpic, call_symbol, 10827 call_value_symbol, call_insn, call_value_insn): Explicitly clobber 10828 RETS. 10829 (return_internal): Take a reg rtx rather than the register number. 10830 108312009-09-03 H.J. Lu <hongjiu.lu@intel.com> 10832 10833 * tree-parloops.c (parallelize_loops): Cast to HOST_WIDE_INT 10834 when comparing against estimated_loop_iterations_int return. 10835 108362009-09-03 Richard Guenther <rguenther@suse.de> 10837 10838 * dwarf2out.c (dwarf2out_do_cfi_asm): Remove check of 10839 eh_personality_libfunc. 10840 108412009-09-03 Razya Ladelsky <razya@il.ibm.com> 10842 10843 * tree-parloops.c (separate_decls_in_region): Add space. 10844 108452009-09-03 Razya Ladelsky <razya@il.ibm.com> 10846 10847 * tree-parloops.c (separate_decls_in_region): Change the condition 10848 checking if there are reductions in the loop. 10849 108502009-09-03 Razya Ladelsky <razya@il.ibm.com> 10851 10852 PR tree-optimization/38275 10853 * tree-parloops.c (parallelize_loops): Replace profitability condition 10854 for expected number of iterations. 10855 108562009-09-03 Alexandre Oliva <aoliva@redhat.com> 10857 10858 * doc/invoke.texi (BUILD_CONFIG): Document --with-build-config. 10859 (bootstrap-debug): Explain conditions in which it becomes default. 10860 (bootstrap-debug-big): Rather than duplicate bootstrap-debug, 10861 make it add to it. 10862 108632009-09-03 Namhyung Kim <namhyung@gmail.com> 10864 10865 * doc/invoke.texi (Optimize Options): Move 10866 -finline-small-functions to the -O2 list. 10867 108682009-09-03 Alexandre Oliva <aoliva@redhat.com> 10869 10870 * toplev.c (process_options): Enable var-tracking-assignments 10871 by default if var-tracking is enabled. 10872 108732009-09-02 David Daney <ddaney@caviumnetworks.com> 10874 10875 * cfgbuild.c (find_bb_boundaries): Split blocks containing a 10876 barrier. 10877 * emit-rtl.c (prev_nonnote_insn_bb): New function. 10878 * rtl.h (prev_nonnote_insn_bb): Declare it. 10879 108802009-09-03 Diego Novillo <dnovillo@google.com> 10881 10882 * cgraph.c (cgraph_node_for_decl): New. 10883 * cgraph.h (cgraph_node_for_decl): Declare. 10884 * tree.c (host_integerp): Return 0 if T is NULL. 10885 108862009-09-03 Diego Novillo <dnovillo@google.com> 10887 10888 * tree.h (struct alias_pair): Move from varasm.c. 10889 (alias_pairs): Likewise. 10890 (TYPE_MAXVAL): Define. 10891 (TYPE_MINVAL): Define. 10892 (iterative_hash_host_wide_int): Declare. 10893 (remove_unreachable_alias_pairs): Declare. 10894 * tree-pass.h (pass_ipa_free_lang_data): Declare. 10895 * diagnostic.c (default_diagnostic_starter): Make extern. 10896 (default_diagnostic_finalizer): Make extern. 10897 * diagnostic.h (default_diagnostic_starter): Declare. 10898 (default_diagnostic_finalizer): Declare. 10899 (default_tree_printer): Declare. 10900 * toplev.c (default_tree_printer): Make extern. 10901 109022009-09-03 Richard Guenther <rguenther@suse.de> 10903 Diego Novillo <dnovillo@google.com> 10904 10905 * cgraph.c (cgraph_add_new_function): Remove gimplification. 10906 * cgraphunit.c (cgraph_expand_function): Do not emit 10907 associated thunks from here. 10908 (cgraph_emit_thunks): New. 10909 (cgraph_optimize): Call it. 10910 Return if any IPA pass finds an error. 10911 * varasm.c (finish_aliases_1): Ignore errorneous aliases used 10912 by thunks. 10913 109142009-09-03 Simon Baldwin <simonb@google.com> 10915 Rafael Espindola <espindola@google.com> 10916 Richard Guenther <rguenther@suse.de> 10917 Doug Kwan <dougkwan@google.com> 10918 Diego Novillo <dnovillo@google.com> 10919 10920 * tree.c: Include tree-pass.h, langhooks-def.h, 10921 diagnostic.h, cgraph.h, timevar.h, except.h and debug.h. 10922 (free_lang_data_in_type): New. 10923 (need_assembler_name_p): New. 10924 (free_lang_data_in_block): New. 10925 (free_lang_data_in_decl): New. 10926 (struct free_lang_data_d): New. 10927 (add_tree_to_fld_list): New. 10928 (find_decls_types_r): New. 10929 (get_eh_types_for_runtime): New. 10930 (find_decls_types_in_eh_region): New. 10931 (find_decls_types_in_node): New. 10932 (find_decls_types_in_var): New. 10933 (free_lang_data_in_cgraph): New. 10934 (free_lang_data): New. 10935 (gate_free_lang_data): New. 10936 (pass_ipa_free_lang_data): New. 10937 109382009-09-03 Diego Novillo <dnovillo@google.com> 10939 10940 * timevar.def (TV_IPA_FREE_LANG_DATA): Define. 10941 * langhooks.h (struct lang_hooks): Add field free_lang_data. 10942 (lang_hooks): Remove const qualifier. 10943 * ipa.c (cgraph_remove_unreachable_nodes): Call 10944 remove_unreachable_alias_pairs. 10945 * except.c (add_type_for_runtime): Check if TYPE has 10946 already been converted. 10947 (lookup_type_for_runtime): Likewise. 10948 (check_handled): Handle converted types. 10949 * varasm.c (remove_unreachable_alias_pairs): New. 10950 * gimple.c: Include demangle.h. 10951 (gimple_decl_printable_name): New. 10952 (gimple_fold_obj_type_ref): New. 10953 * gimple.h (gimple_decl_printable_name): Declare. 10954 (gimple_fold_obj_type_ref): Declare. 10955 * passes.c (init_optimization_passes): Add pass 10956 pass_ipa_free_lang_data. 10957 * langhooks-def.h (LANG_HOOKS_FREE_LANG_DATA): Define. 10958 (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_FREE_LANG_DATA. 10959 109602009-09-03 Diego Novillo <dnovillo@google.com> 10961 10962 * c-lang.c (lang_hooks): Remove const qualifier. 10963 109642009-09-02 Loren James Rittle <ljrittle@acm.org> 10965 10966 * doc/install.texi (*-*-freebsd*): Update target information. 10967 109682009-09-02 Anatoly Sokolov <aesok@post.ru> 10969 10970 * hard-reg-set.h (call_fixed_regs): Remove. 10971 * reginfo.c (call_fixed_regs): Remove. 10972 (init_reg_sets_1): Remove initialization of call_fixed_regs. 10973 (globalize_reg): Don't use call_fixed_regs. 10974 * caller-save.c (init_caller_save): Use call_fixed_reg_set instead of 10975 call_fixed_regs. 10976 109772009-09-01 Michael Matz <matz@suse.de> 10978 10979 * expr.h (emit_storent_insn, expand_expr_real_1, 10980 expand_expr_real_2): Declare. 10981 * expr.c (emit_storent_insn, expand_expr_real_1, 10982 expand_expr_real_2): Export. 10983 (store_expr): Setting and evaluating dont_return_target is useless. 10984 (expand_expr_real_1, <case GOTO_EXPR, RETURN_EXPR, SWITCH_EXPR, 10985 LABEL_EXPR and ASM_EXPR>): Move to gcc_unreachable. 10986 * except.c (expand_resx_expr): Rename to ... 10987 (expand_resx_stmt): ... this. Rewrite to take gimple statement. 10988 * except.h (expand_resx_stmt): Declare. 10989 * stmt.c: Add include gimple.h 10990 (expand_asm_expr): Rename to ... 10991 (expand_asm_stmt): ... this. Rewrite to take gimple statement. 10992 (expand_case): Rewrite to take gimple statement. 10993 * tree.h (expand_asm_stmt): Declare. 10994 (expand_case): Change prototype. 10995 * Makefile.in (stmt.o): Depend on gimple.h. 10996 * builtins.c (expand_builtin_synchronize): Build gimple asm 10997 statement, not an ASM_EXPR. 10998 * cfgexpand.c (gimple_cond_pred_to_tree, set_expr_location_r, 10999 gimple_to_tree, release_stmt_tree): Remove. 11000 (expand_gimple_cond): Don't call gimple_cond_pred_to_tree or 11001 ggc_free, but hold comparison code and operands separately. 11002 Call jumpif_1 and jumpifnot_1 instead of jumpif and jumpifnot. 11003 (expand_call_stmt, expand_gimple_stmt_1, 11004 expand_gimple_stmt): New helpers. 11005 (expand_gimple_tailcall): Don't call gimple_to_tree, expand_expr_stmt, 11006 release_stmt_tree. Call expand_gimple_stmt instead. 11007 (expand_gimple_basic_block): Ditto. 11008 11009 * calls.c (emit_call_1): Don't look at EH regions here, make 11010 fntree parameter useless. 11011 (expand_call): New local rettype for TREE_TYPE(exp), use it 11012 throughout. Remove local p, use addr instead. 11013 Don't look at EH regions here. 11014 110152009-09-02 Vladimir Makarov <vmakarov@redhat.com> 11016 11017 * doc/invoke.texi (-fsched-pressure): Document it. 11018 (-fsched-reg-pressure-heuristic): Remove it. 11019 11020 * reload.c (ira.h): Include. 11021 (find_reloads): Add choosing reload on number of small spilled 11022 classes. 11023 11024 * haifa-sched.c (ira.h): Include. 11025 (sched_pressure_p, sched_regno_cover_class, curr_reg_pressure, 11026 saved_reg_pressure, curr_reg_live, saved_reg_live, 11027 region_ref_regs): New variables. 11028 (sched_init_region_reg_pressure_info, mark_regno_birth_or_death, 11029 initiate_reg_pressure_info, setup_ref_regs, 11030 initiate_bb_reg_pressure_info, save_reg_pressure, 11031 restore_reg_pressure, dying_use_p, print_curr_reg_pressure): New 11032 functions. 11033 (setup_insn_reg_pressure_info): New function. 11034 (rank_for_schedule): Add pressure checking and insn issue time. 11035 Remove comparison of insn reg weights. 11036 (ready_sort): Set insn reg pressure info. 11037 (update_register_pressure, setup_insn_max_reg_pressure, 11038 update_reg_and_insn_max_reg_pressure, 11039 sched_setup_bb_reg_pressure_info): New functions. 11040 (schedule_insn): Add code for printing and updating reg pressure info. 11041 (find_set_reg_weight, find_insn_reg_weight): Remove. 11042 (ok_for_early_queue_removal): Do nothing if pressure_only_p. 11043 (debug_ready_list): Print reg pressure info. 11044 (schedule_block): Ditto. Check insn issue time. 11045 (sched_init): Set up sched_pressure_p. Allocate and set up some 11046 reg pressure related info. 11047 (sched_finish): Free some reg pressure related info. 11048 (fix_tick_ready): Make insn always ready if pressure_p. 11049 (init_h_i_d): Don't call find_insn_reg_weight. 11050 (haifa_finish_h_i_d): Free insn reg pressure info. 11051 11052 * ira-int.h (ira_hard_regno_cover_class, ira_reg_class_nregs, 11053 ira_memory_move_cost, ira_class_hard_regs, 11054 ira_class_hard_regs_num, ira_no_alloc_regs, 11055 ira_available_class_regs, ira_reg_class_cover_size, 11056 ira_reg_class_cover, ira_class_translate): Move to ira.h. 11057 11058 * ira-lives.c (single_reg_class): Check mode to find how many 11059 registers are necessary for operand. 11060 (ira_implicitly_set_insn_hard_regs): New. 11061 11062 * common.opt (fsched-pressure): New options. 11063 (fsched-reg-pressure-heuristic): Remove. 11064 11065 * ira.c (setup_eliminable_regset): Rename to 11066 ira_setup_eliminable_regset. Make it external. 11067 (expand_reg_info): Pass cover class to setup_reg_classes. 11068 (ira): Call resize_reg_info instead of allocate_reg_info. 11069 11070 * sched-deps.c: Include ira.h. 11071 (implicit_reg_pending_clobbers, implicit_reg_pending_uses): New. 11072 (create_insn_reg_use, create_insn_reg_set, setup_insn_reg_uses, 11073 reg_pressure_info, insn_use_p, mark_insn_pseudo_birth, 11074 mark_insn_hard_regno_birth, mark_insn_reg_birth, 11075 mark_pseudo_death, mark_hard_regno_death, mark_reg_death, 11076 mark_insn_reg_store, mark_insn_reg_clobber, 11077 setup_insn_reg_pressure_info): New. 11078 (sched_analyze_1): Update implicit_reg_pending_uses. 11079 (sched_analyze_insn): Find implicit sets, uses, clobbers of regs. 11080 Use them to create dependencies. Set insn reg uses and pressure 11081 info. Process reg_pending_uses in one place. 11082 (free_deps): Free implicit sets. 11083 (remove_from_deps): Remove implicit sets if necessary. Check 11084 implicit sets when clearing reg_last_in_use. 11085 (init_deps_global): Clear implicit_reg_pending_clobbers and 11086 implicit_reg_pending_uses. 11087 11088 * ira.h (ira_hard_regno_cover_class, ira_reg_class_nregs, 11089 ira_memory_move_cost, ira_class_hard_regs, 11090 ira_class_hard_regs_num, ira_no_alloc_regs, 11091 ira_available_class_regs, ira_reg_class_cover_size, 11092 ira_reg_class_cover, ira_class_translate): Move from ira-int.h. 11093 (ira_setup_eliminable_regset, ira_set_pseudo_classes, 11094 ira_implicitly_set_insn_hard_regs): New prototypes. 11095 11096 * ira-costs.c (pseudo_classes_defined_p, allocno_p, 11097 cost_elements_num): New variables. 11098 (allocno_costs, total_costs): Rename to costs and 11099 total_allocno_costs. 11100 (COSTS_OF_ALLOCNO): Rename to COSTS. 11101 (allocno_pref): Rename to pref. 11102 (allocno_pref_buffer): Rename to pref_buffer. 11103 (common_classes): Rename to regno_cover_class. 11104 (COST_INDEX): New. 11105 (record_reg_classes): Set allocno attributes only if allocno_p. 11106 (record_address_regs): Ditto. Use COST_INDEX instead of ALLOCNO_NUM. 11107 (scan_one_insn): Use COST_INDEX and COSTS instead of ALLOCNO_NUM 11108 and COSTS_OF_ALLOCNO. 11109 (print_costs): Rename to print_allocno_costs. 11110 (print_pseudo_costs): New. 11111 (process_bb_node_for_costs): Split into 2 functions with new 11112 function process_bb_for_costs. Pass BB to process_bb_for_costs. 11113 (find_allocno_class_costs): Rename to find_costs_and_classes. Add 11114 new parameter dump_file. Use cost_elements_num instead of 11115 ira_allocnos_num. Make one iteration if preferred classes were 11116 already calculated for scheduler. Make 2 versions of code 11117 depending on allocno_p. 11118 (setup_allocno_cover_class_and_costs): Check allocno_p. Use 11119 regno_cover_class and COSTS instead of common_classes and 11120 COSTS_OF_ALLOCNO. 11121 (init_costs, finish_costs): New. 11122 (ira_costs): Set up allocno_p and cost_elements_num. Call 11123 init_costs and finish_costs. 11124 (ira_set_pseudo_classes): New. 11125 11126 * rtl.h (allocate_reg_info): Remove. 11127 (resize_reg_info): Change return type. 11128 (reg_cover_class): New. 11129 (setup_reg_classes): Add new parameter. 11130 11131 * sched-int.h (struct deps_reg): New member implicit_sets. 11132 (sched_pressure_p, sched_regno_cover_class): New external definitions. 11133 (INCREASE_BITS): New macro. 11134 (struct reg_pressure_data, struct reg_use_data): New. 11135 (struct _haifa_insn_data): Remove reg_weight. Add members 11136 reg_pressure, reg_use_list, reg_set_list, and 11137 reg_pressure_excess_cost_change. 11138 (struct deps): New member implicit_sets. 11139 (pressure_p): New variable. 11140 (COVER_CLASS_BITS, INCREASE_BITS): New macros. 11141 (struct reg_pressure_data, struct reg_use_data): New. 11142 (INSN_REG_WEIGHT): Remove. 11143 (INSN_REG_PRESSURE, INSN_MAX_REG_PRESSURE, INSN_REG_USE_LIST, 11144 INSN_REG_SET_LIST, INSN_REG_PRESSURE_EXCESS_COST_CHANGE): New macros. 11145 (sched_init_region_reg_pressure_info, 11146 sched_setup_bb_reg_pressure_info): New prototypes. 11147 11148 * reginfo.c (struct reg_pref): New member coverclass. 11149 (reg_cover_class): New function. 11150 (reginfo_init, pass_reginfo_init): Move after free_reg_info. 11151 (reg_info_size): New variable. 11152 (allocate_reg_info): Make static. Setup reg_info_size. 11153 (resize_reg_info): Use reg_info_size. Return flag of resizing. 11154 (setup_reg_classes): Add a new parameter. Setup cover class too. 11155 11156 * Makefile.in (reload.o, haifa-sched.o, sched-deps.o): Add ira.h to 11157 the dependencies. 11158 11159 * sched-rgn.c (deps_join): Set up implicit_sets. 11160 (schedule_region): Set up region and basic blocks pressure 11161 relative info. 11162 11163 * passes.c (init_optimization_passes): Move 11164 pass_subregs_of_mode_init before pass_sched. 11165 111662009-09-02 Martin Jambor <mjambor@suse.cz> 11167 11168 * tree-sra.c (struct access): New field grp_hint. 11169 (dump_access): Dump grp_hint. 11170 (sort_and_splice_var_accesses): Set grp_hint if a group is read 11171 multiple times. 11172 (analyze_access_subtree): Only scalarize accesses with grp_hint set or 11173 those which have been specifically read and somehow written to. 11174 (propagate_subacesses_accross_link): Set grp_hint of right child and 11175 also possibly of the left child. 11176 111772009-09-02 Jakub Jelinek <jakub@redhat.com> 11178 11179 * tree-object-size.c (addr_object_size): Always use object_size_type 11180 0 or 2 when determining the pointer pointed object size. 11181 111822009-09-02 Richard Guenther <rguenther@suse.de> 11183 11184 Revert 11185 2009-08-31 Richard Guenther <rguenther@suse.de> 11186 11187 * builtins.c (fold_builtin_memory_op): Use the alias oracle 11188 to query if the memory regions for memmove overlap. 11189 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the 11190 asserts on pointers, instead deal with odd trees. 11191 (ptr_derefs_may_alias_p): Likewise. 11192 (refs_may_alias_p_1): Constructor bases also never alias. 11193 111942009-08-01 Christian Bruel <christian.bruel@st.com> 11195 11196 Revert: 11197 2009-07-31 Christian Bruel <christian.bruel@st.com> 11198 * gcc/config.gcc (sh*-*-elf): test with_libgloss. 11199 112002009-09-01 Alexandre Oliva <aoliva@redhat.com> 11201 11202 * doc/invoke.texi (-fvar-tracking-assignments): New. 11203 (-fvar-tracking-assignments-toggle): New. 11204 (-fdump-final-insns=file): Mark filename as optional. 11205 (--param min-nondebug-insn-uid): New. 11206 (-gdwarf-@{version}): Mention version 4. 11207 * opts.c (common_handle_option): Accept it. 11208 * tree-vrp.c (find_assert_locations_1): Skip debug stmts. 11209 * regrename.c (regrename_optimize): Drop last. Don't count debug 11210 insns as uses. Don't reject change because of debug insn. 11211 (do_replace): Reject DEBUG_INSN as chain starter. Take base_regno 11212 from the chain starter, and check for inexact matches in DEBUG_INSNS. 11213 (scan_rtx_reg): Accept inexact matches in DEBUG_INSNs. 11214 (build_def_use): Simplify and fix the marking of DEBUG_INSNs. 11215 * sched-ebb.c (schedule_ebbs): Skip boundary debug insns. 11216 * fwprop.c (forward_propagate_and_simplify): ...into debug insns. 11217 * doc/gimple.texi (is_gimple_debug): New. 11218 (gimple_debug_bind_p): New. 11219 (is_gimple_call, gimple_assign_cast_p): End sentence with period. 11220 * doc/install.texi (bootstrap-debug): More details. 11221 (bootstrap-debug-big, bootstrap-debug-lean): Document. 11222 (bootstrap-debug-lib): More details. 11223 (bootstrap-debug-ckovw): Update. 11224 (bootstrap-time): New. 11225 * tree-into-ssa.c (mark_def_sites): Skip debug stmts. 11226 (insert_phi_nodes_for): Insert debug stmts. 11227 (rewrite_stmt): Take iterator. Insert debug stmts. 11228 (rewrite_enter_block): Adjust. 11229 (maybe_replace_use_in_debug_stmt): New. 11230 (rewrite_update_stmt): Use it. 11231 (mark_use_interesting): Return early for debug stmts. 11232 * tree-ssa-loop-im.c (rewrite_bittest): Propagate DEFs into debug 11233 stmts before replacing stmt. 11234 (move_computations_stmt): Likewise. 11235 * ira-conflicts.c (add_copies): Skip debug insns. 11236 * regstat.c (regstat_init_n_sets_and_refs): Discount debug insns. 11237 (regstat_bb_compute_ri): Skip debug insns. 11238 * tree-ssa-threadupdate.c (redirection_block_p): Skip debug stmts. 11239 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, 11240 check_loop_closed_ssa_stmt): Skip debug stmts. 11241 * tree-tailcall.c (find_tail_calls): Likewise. 11242 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. 11243 * tree.h (MAY_HAVE_DEBUG_STMTS): New. 11244 (build_var_debug_value_stat): Declare. 11245 (build_var_debug_value): Define. 11246 (target_for_debug_bind): Declare. 11247 * reload.c (find_equiv_reg): Skip debug insns. 11248 * rtlanal.c (reg_used_between_p): Skip debug insns. 11249 (side_effects_p): Likewise. 11250 (canonicalize_condition): Likewise. 11251 * ddg.c (create_ddg_dep_from_intra_loop_link): Check that non-debug 11252 insns never depend on debug insns. 11253 (create_ddg_dep_no_link): Likewise. 11254 (add_cross_iteration_register_deps): Use ANTI_DEP for debug insns. 11255 Don't add inter-loop dependencies for debug insns. 11256 (build_intra_loop_deps): Likewise. 11257 (create_ddg): Count debug insns. 11258 * ddg.h (struct ddg::num_debug): New. 11259 (num_backargs): Pair up with previous int field. 11260 * diagnostic.c (diagnostic_report_diagnostic): Skip notes on 11261 -fcompare-debug-second. 11262 * final.c (get_attr_length_1): Skip debug insns. 11263 (rest_of_clean-state): Don't dump CFA_RESTORE_STATE. 11264 * gcc.c (invoke_as): Call compare-debug-dump-opt. 11265 (driver_self_specs): Map -fdump-final-insns to 11266 -fdump-final-insns=.. 11267 (get_local_tick): New. 11268 (compare_debug_dump_opt_spec_function): Test for . argument and 11269 compute output name. Compute temp output spec without flag name. 11270 Compute -frandom-seed. 11271 (OPT): Undef after use. 11272 * cfgloopanal.c (num_loop_insns): Skip debug insns. 11273 (average_num_loop_insns): Likewise. 11274 * params.h (MIN_NONDEBUG_INSN_UID): New. 11275 * gimple.def (GIMPLE_DEBUG): New. 11276 * ipa-reference.c (scan_stmt_for_static_refs): Skip debug stmts. 11277 * auto-inc-dec.c (merge_in_block): Skip debug insns. 11278 (merge_in_block): Fix whitespace. 11279 * toplev.c (flag_var_tracking): Update comment. 11280 (flag_var_tracking_assignments): New. 11281 (flag_var_tracking_assignments_toggle): New. 11282 (process_options): Don't open final insns dump file if we're not 11283 going to write to it. Compute defaults for var_tracking. 11284 * df-scan.c (df_insn_rescan_debug_internal): New. 11285 (df_uses_record): Handle debug insns. 11286 * haifa-sched.c (ready): Initialize n_debug. 11287 (contributes_to_priority): Skip debug insns. 11288 (dep_list_size): New. 11289 (priority): Use it. 11290 (rank_for_schedule): Likewise. Schedule debug insns as soon as 11291 they're ready. Disregard previous debug insns to make decisions. 11292 (queue_insn): Never queue debug insns. 11293 (ready_add, ready_remove_first, ready_remove): Count debug insns. 11294 (schedule_insn): Don't reject debug insns because of issue rate. 11295 (get_ebb_head_tail, no_real_insns_p): Skip boundary debug insns. 11296 (queue_to_ready): Skip and discount debug insns. 11297 (choose_ready): Let debug insns through. 11298 (schedule_block): Check boundary debug insns. Discount debug 11299 insns, schedule them early. Adjust whitespace. 11300 (set_priorities): Check for boundary debug insns. 11301 (add_jump_dependencies): Use dep_list_size. 11302 (prev_non_location_insn): New. 11303 (check_cfg): Use it. 11304 * tree-ssa-loop-ivopts.c (find-interesting_users): Skip debug 11305 stmts. 11306 (remove_unused_ivs): Reset debug stmts. 11307 * modulo-sched.c (const_iteration_count): Skip debug insns. 11308 (res_MII): Discount debug insns. 11309 (loop_single_full_bb_p): Skip debug insns. 11310 (sms_schedule): Likewise. 11311 (sms_schedule_by_order): Likewise. 11312 (ps_has_conflicts): Likewise. 11313 * caller-save.c (refmarker_fn): New. 11314 (save_call_clobbered_regs): Replace regs with saved mem in 11315 debug insns. 11316 (mark_referenced_regs): Take pointer, mark and arg. Adjust. 11317 Call refmarker_fn mark for hardregnos. 11318 (mark_reg_as_referenced): New. 11319 (replace_reg_with_saved_mem): New. 11320 * ipa-pure-const.c (check_stmt): Skip debug stmts. 11321 * cse.c (cse_insn): Canonicalize debug insns. Skip them when 11322 searching back. 11323 (cse_extended_basic_block): Skip debug insns. 11324 (count_reg_usage): Likewise. 11325 (is_dead_reg): New, split out of... 11326 (set_live_p): ... here. 11327 (insn_live_p): Use it for debug insns. 11328 * tree-stdarg.c (check_all_va_list_escapes): Skip debug stmts. 11329 (execute_optimize_stdarg): Likewise. 11330 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. 11331 * tree-ssa-propagate.c (substitute_and_fold): Don't regard 11332 changes in debug stmts as changes. 11333 * sel-sched.c (moving_insn_creates_bookkeeping_block_p): New. 11334 (moveup_expr): Don't move across debug insns. Don't move 11335 debug insn if it would create a bookkeeping block. 11336 (moveup_expr_cached): Don't use cache for debug insns that 11337 are heads of blocks. 11338 (compute_av_set_inside_bb): Skip debug insns. 11339 (sel_rank_for_schedule): Schedule debug insns first. Remove 11340 dead code. 11341 (block_valid_for_bookkeeping_p); Support lax searches. 11342 (create_block_for_bookkeeping): Adjust block numbers when 11343 encountering debug-only blocks. 11344 (find_place_for_bookkeeping): Deal with debug-only blocks. 11345 (generate_bookkeeping_insn): Accept no place to insert. 11346 (remove_temp_moveop_nops): New argument full_tidying. 11347 (prepare_place_to_insert): Deal with debug insns. 11348 (advance_state_on_fence): Debug insns don't start cycles. 11349 (update_boundaries): Take fence as argument. Deal with 11350 debug insns. 11351 (schedule_expr_on_boundary): No full_tidying on debug insns. 11352 (fill_insns): Deal with debug insns. 11353 (track_scheduled_insns_and_blocks): Don't count debug insns. 11354 (need_nop_to_preserve_insn_bb): New, split out of... 11355 (remove_insn_from_stream): ... this. 11356 (fur_orig_expr_not_found): Skip debug insns. 11357 * rtl.def (VALUE): Move up. 11358 (DEBUG_INSN): New. 11359 * tree-ssa-sink.c (all_immediate_uses_same_place): Skip debug stmts. 11360 (nearest_common_dominator_of_uses): Take debug_stmts argument. 11361 Set it if debug stmts are found. 11362 (statement_sink_location): Skip debug stmts. Propagate 11363 moving defs into debug stmts. 11364 * ifcvt.c (first_active_insn): Skip debug insns. 11365 (last_active_insns): Likewise. 11366 (cond_exec_process_insns): Likewise. 11367 (noce_process_if_block): Likewise. 11368 (check_cond_move_block): Likewise. 11369 (cond_move_convert_if_block): Likewise. 11370 (block_jumps_and_fallthru_p): Likewise. 11371 (dead_or_predicable): Likewise. 11372 * dwarf2out.c (debug_str_hash_forced): New. 11373 (find_AT_string): Add comment. 11374 (gen_label_for_indirect_string): New. 11375 (get_debug_string_label): New. 11376 (AT_string_form): Use it. 11377 (mem_loc_descriptor): Handle non-TLS symbols. Handle MINUS , DIV, 11378 MOD, AND, IOR, XOR, NOT, ABS, NEG, and CONST_STRING. Accept but 11379 discard COMPARE, IF_THEN_ELSE, ROTATE, ROTATERT, TRUNCATE and 11380 several operations that cannot be represented with DWARF opcodes. 11381 (loc_descriptor): Ignore SIGN_EXTEND and ZERO_EXTEND. Require 11382 dwarf_version 4 for DW_OP_implicit_value and DW_OP_stack_value. 11383 (dwarf2out_var_location): Take during-call mark into account. 11384 (output_indirect_string): Update comment. Output if there are 11385 label and references. 11386 (prune_indirect_string): New. 11387 (prune_unused_types): Call it if debug_str_hash_forced. 11388 More in dwarf2out.c, from Jakub Jelinek <jakub@redhat.com>: 11389 (dw_long_long_const): Remove. 11390 (struct dw_val_struct): Change val_long_long type to rtx. 11391 (print_die, attr_checksum, same_dw_val_p, loc_descriptor): Adjust for 11392 val_long_long change to CONST_DOUBLE rtx from a long hi/lo pair. 11393 (output_die): Likewise. Use HOST_BITS_PER_WIDE_INT size of each 11394 component instead of HOST_BITS_PER_LONG. 11395 (output_loc_operands): Likewise. For const8* assert 11396 HOST_BITS_PER_WIDE_INT rather than HOST_BITS_PER_LONG is >= 64. 11397 (output_loc_operands_raw): For const8* assert HOST_BITS_PER_WIDE_INT 11398 rather than HOST_BITS_PER_LONG is >= 64. 11399 (add_AT_long_long): Remove val_hi and val_lo arguments, add 11400 val_const_double. 11401 (size_of_die): Use HOST_BITS_PER_WIDE_INT size multiplier instead of 11402 HOST_BITS_PER_LONG for dw_val_class_long_long. 11403 (add_const_value_attribute): Adjust add_AT_long_long caller. Don't 11404 handle TLS SYMBOL_REFs. If CONST wraps a constant, tail recurse. 11405 (dwarf_stack_op_name): Handle DW_OP_implicit_value and 11406 DW_OP_stack_value. 11407 (size_of_loc_descr, output_loc_operands, output_loc_operands_raw): 11408 Handle DW_OP_implicit_value. 11409 (extract_int): Move prototype earlier. 11410 (mem_loc_descriptor): For SUBREG punt if inner 11411 mode size is wider than DWARF2_ADDR_SIZE. Handle SIGN_EXTEND 11412 and ZERO_EXTEND by DW_OP_shl and DW_OP_shr{a,}. Handle 11413 EQ, NE, GT, GE, LT, LE, GTU, GEU, LTU, LEU, SMIN, SMAX, UMIN, 11414 UMAX, SIGN_EXTRACT, ZERO_EXTRACT. 11415 (loc_descriptor): Compare mode size with DWARF2_ADDR_SIZE 11416 instead of Pmode size. 11417 (loc_descriptor): Add MODE argument. Handle CONST_INT, CONST_DOUBLE, 11418 CONST_VECTOR, CONST, LABEL_REF and SYMBOL_REF if mode != VOIDmode, 11419 attempt to handle other expressions. Don't handle TLS SYMBOL_REFs. 11420 (concat_loc_descriptor, concatn_loc_descriptor, 11421 loc_descriptor_from_tree_1): Adjust loc_descriptor callers. 11422 (add_location_or_const_value_attribute): Likewise. For single 11423 location loc_lists attempt to use add_const_value_attribute 11424 for constant decls. Add DW_AT_const_value even if 11425 NOTE_VAR_LOCATION is VAR_LOCATION with CONSTANT_P or CONST_STRING 11426 in its expression. 11427 * cfgbuild.c (inside_basic_block_p): Handle debug insns. 11428 (control_flow_insn_p): Likewise. 11429 * tree-parloops.c (eliminate_local_variables_stmt): Handle debug stmt. 11430 (separate_decls_in_region_debug_bind): New. 11431 (separate_decls_in_region): Process debug bind stmts afterwards. 11432 * recog.c (verify_changes): Handle debug insns. 11433 (extract_insn): Likewise. 11434 (peephole2_optimize): Skip debug insns. 11435 * dse.c (scan_insn): Skip debug insns. 11436 * sel-sched-ir.c (return_nop_to_pool): Take full_tidying argument. 11437 Pass it on. 11438 (setup_id_for_insn): Handle debug insns. 11439 (maybe_tidy_empty_bb): Adjust whitespace. 11440 (tidy_control_flow): Skip debug insns. 11441 (sel_remove_insn): Adjust for debug insns. 11442 (sel_estimate_number_of_insns): Skip debug insns. 11443 (create_insn_rtx_from_pattern): Handle debug insns. 11444 (create_copy_of_insn_rtx): Likewise. 11445 * sel-sched-.h (sel_bb_end): Declare. 11446 (sel_bb_empty_or_nop_p): New. 11447 (get_all_loop_exits): Use it. 11448 (_eligible_successor_edge_p): Likewise. 11449 (return_nop_to_pool): Adjust. 11450 * tree-eh.c (tre_empty_eh_handler_p): Skip debug stmts. 11451 * ira-lives.c (process_bb_node_lives): Skip debug insns. 11452 * gimple-pretty-print.c (dump_gimple_debug): New. 11453 (dump_gimple_stmt): Use it. 11454 (dump_bb_header): Skip gimple debug stmts. 11455 * regmove.c (optimize_reg_copy_1): Discount debug insns. 11456 (fixup_match_2): Likewise. 11457 (regmove_backward_pass): Likewise. Simplify combined 11458 replacement. Handle debug insns. 11459 * function.c (instantiate_virtual_regs): Handle debug insns. 11460 * function.h (struct emit_status): Add x_cur_debug_insn_uid. 11461 * print-rtl.h: Include cselib.h. 11462 (print_rtx): Print VALUEs. Split out and recurse for VAR_LOCATIONs. 11463 * df.h (df_inns_rescan_debug_internal): Declare. 11464 * gcse.c (alloc_hash_table): Estimate n_insns. 11465 (cprop_insn): Don't regard debug insns as changes. 11466 (bypass_conditional_jumps): Skip debug insns. 11467 (one_pre_gcse_pass): Adjust. 11468 (one_code_hoisting_pass): Likewise. 11469 (compute_ld_motion_mems): Skip debug insns. 11470 (one_cprop_pass): Adjust. 11471 * tree-if-conv.c (tree_if_convert_stmt): Reset debug stmts. 11472 (if_convertible_stmt_p): Handle debug stmts. 11473 * init-regs.c (initialize_uninitialized_regs): Skip debug insns. 11474 * tree-vect-loop.c (vect_is_simple_reduction): Skip debug stmts. 11475 * ira-build.c (create_bb_allocnos): Skip debug insns. 11476 * tree-flow-inline.h (has_zero_uses): Discount debug stmts. 11477 (has_single_use): Likewise. 11478 (single_imm_use): Likewise. 11479 (num_imm_uses): Likewise. 11480 * tree-ssa-phiopt.c (empty_block_p): Skip debug stmts. 11481 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Skip debug stmts. 11482 (create_outofssa_var_map): Likewise. 11483 * lower-subreg.c (adjust_decomposed_uses): New. 11484 (resolve_debug): New. 11485 (decompose_multiword_subregs): Use it. 11486 * tree-dfa.c (find_referenced_vars): Skip debug stmts. 11487 * emit-rtl.c: Include params.h. 11488 (cur_debug_insn_uid): Define. 11489 (set_new_first_and_last_insn): Set cur_debug_insn_uid too. 11490 (copy_rtx_if_shared_1): Handle debug insns. 11491 (reset_used_flags): Likewise. 11492 (set_used_flags): LIkewise. 11493 (get_max_insn_count): New. 11494 (next_nondebug_insn): New. 11495 (prev_nondebug_insn): New. 11496 (make_debug_insn_raw): New. 11497 (emit_insn_before_noloc): Handle debug insns. 11498 (emit_jump_insn_before_noloc): Likewise. 11499 (emit_call_insn_before_noloc): Likewise. 11500 (emit_debug_insn_before_noloc): New. 11501 (emit_insn_after_noloc): Handle debug insns. 11502 (emit_jump_insn_after_noloc): Likewise. 11503 (emit_call_insn_after_noloc): Likewise. 11504 (emit_debug_insn_after_noloc): Likewise. 11505 (emit_insn_after): Take loc from earlier non-debug insn. 11506 (emit_jump_insn_after): Likewise. 11507 (emit_call_insn_after): Likewise. 11508 (emit_debug_insn_after_setloc): New. 11509 (emit_debug_insn_after): New. 11510 (emit_insn_before): Take loc from later non-debug insn. 11511 (emit_jump_insn_before): Likewise. 11512 (emit_call_insn_before): Likewise. 11513 (emit_debug_insn_before_setloc): New. 11514 (emit_debug_insn_before): New. 11515 (emit_insn): Handle debug insns. 11516 (emit_debug_insn): New. 11517 (emit_jump_insn): Handle debug insns. 11518 (emit_call_insn): Likewise. 11519 (emit): Likewise. 11520 (init_emit): Take min-nondebug-insn-uid into account. 11521 Initialize cur_debug_insn_uid. 11522 (emit_copy_of_insn_after): Handle debug insns. 11523 * cfgexpand.c (gimple_assign_rhs_to_tree): Do not overwrite 11524 location of single rhs in place. 11525 (maybe_dump_rtl_for_gimple_stmt): Dump lineno. 11526 (floor_sdiv_adjust): New. 11527 (cell_sdiv_adjust): New. 11528 (cell_udiv_adjust): New. 11529 (round_sdiv_adjust): New. 11530 (round_udiv_adjust): New. 11531 (wrap_constant): Moved from cselib. 11532 (unwrap_constant): New. 11533 (expand_debug_expr): New. 11534 (expand_debug_locations): New. 11535 (expand_gimple_basic_block): Drop hiding redeclaration. Expand 11536 debug bind stmts. 11537 (gimple_expand_cfg): Expand debug locations. 11538 * cselib.c: Include tree-pass.h. 11539 (struct expand_value_data): New. 11540 (cselib_record_sets_hook): New. 11541 (PRESERVED_VALUE_P, LONG_TERM_PRESERVED_VALUE_P): New. 11542 (cselib_clear_table): Move, and implemnet in terms of... 11543 (cselib_reset_table_with_next_value): ... this. 11544 (cselib_get_next_unknown_value): New. 11545 (discard_useless_locs): Don't discard preserved values. 11546 (cselib_preserve_value): New. 11547 (cselib_preserved_value_p): New. 11548 (cselib_preserve_definitely): New. 11549 (cselib_clear_preserve): New. 11550 (cselib_preserve_only_values): New. 11551 (new_cselib_val): Take rtx argument. Dump it in details. 11552 (cselib_lookup_mem): Adjust. 11553 (expand_loc): Take regs_active in struct. Adjust. Silence 11554 dumps unless details are requested. 11555 (cselib_expand_value_rtx_cb): New. 11556 (cselib_expand_value_rtx): Rename and reimplment in terms of... 11557 (cselib_expand_value_rtx_1): ... this. Adjust. Silence dumps 11558 without details. Copy more subregs. Try to resolve values 11559 using a callback. Wrap constants. 11560 (cselib_subst_to_values): Adjust. 11561 (cselib_log_lookup): New. 11562 (cselib_lookup): Call it. 11563 (cselib_invalidate_regno): Don't count preserved values as useless. 11564 (cselib_invalidate_mem): Likewise. 11565 (cselib_record_set): Likewise. 11566 (struct set): Renamed to cselib_set, moved to cselib.h. 11567 (cselib_record_sets): Adjust. Call hook. 11568 (cselib_process_insn): Reset table when it would be cleared. 11569 (dump_cselib_val): New. 11570 (dump_cselib_table): New. 11571 * tree-cfgcleanup.c (tree_forwarded_block_p): Skip debug stmts. 11572 (remove_forwarder_block): Support moving debug stmts. 11573 * cselib.h (cselib_record_sets_hook): Declare. 11574 (cselib_expand_callback): New type. 11575 (cselib_expand_value_rtx_cb): Declare. 11576 (cselib_reset_table_with_next_value): Declare. 11577 (cselib_get_next_unknown_value): Declare. 11578 (cselib_preserve_value): Declare. 11579 (cselib_preserved_value_p): Declare. 11580 (cselib_preserve_only_values): Declare. 11581 (dump_cselib_table): Declare. 11582 * cfgcleanup.c (flow_find_cross_jump): Skip debug insns. 11583 (try_crossjump_to_edge): Likewise. 11584 (delete_unreachable_blocks): Remove dominant GIMPLE blocks after 11585 dominated blocks when debug stmts are present. 11586 * simplify-rtx.c (delegitimize_mem_from_attrs): New. 11587 * tree-ssa-live.c (remove_unused_locals): Skip debug stmts. 11588 (set_var_live_on_entry): Likewise. 11589 * loop-invariant.c (find_invariants_bb): Skip debug insns. 11590 * cfglayout.c (curr_location, last_location): Make static. 11591 (set_curr_insn_source_location): Don't avoid bouncing. 11592 (get_curr_insn_source_location): New. 11593 (get_curr_insn_block): New. 11594 (duplicate_insn_chain): Handle debug insns. 11595 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Propagate 11596 into debug stmts. 11597 * common.opt (fcompare-debug): Move to sort order. 11598 (fdump-unnumbered-links): Likewise. 11599 (fvar-tracking-assignments): New. 11600 (fvar-tracking-assignments-toggle): New. 11601 * tree-ssa-dce.c (mark_stmt_necessary): Don't mark blocks 11602 because of debug stmts. 11603 (mark_stmt_if_obviously_necessary): Mark debug stmts. 11604 (eliminate_unnecessary_stmts): Walk dominated blocks before 11605 dominators. 11606 * tree-ssa-ter.c (find_replaceable_in_bb): Skip debug stmts. 11607 * ira.c (memref_used_between_p): Skip debug insns. 11608 (update_equiv_regs): Likewise. 11609 * sched-deps.c (sd_lists_size): Accept empty list. 11610 (sd_init_insn): Mark debug insns. 11611 (sd_finish_insn): Unmark them. 11612 (sd_add_dep): Reject non-debug deps on debug insns. 11613 (fixup_sched_groups): Give debug insns group treatment. 11614 Skip debug insns. 11615 (sched_analyze_reg): Don't mark debug insns for sched before call. 11616 (sched_analyze_2): Handle debug insns. 11617 (sched_analyze_insn): Compute next non-debug insn. Handle debug 11618 insns. 11619 (deps_analyze_insn): Handle debug insns. 11620 (deps_start_bb): Skip debug insns. 11621 (init_deps): Initialize last_debug_insn. 11622 * tree-ssa.c (target_for_debug_bind): New. 11623 (find_released_ssa_name): New. 11624 (propagate_var_def_into_debug_stmts): New. 11625 (propagate_defs_into_debug_stmts): New. 11626 (verify_ssa): Skip debug bind stmts without values. 11627 (warn_uninialized_vars): Skip debug stmts. 11628 * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Set default. 11629 * rtl.c (rtx_equal_p_cb): Handle VALUEs. 11630 (rtx_equal_p): Likewise. 11631 * ira-costs.c (scan_one_insn): Skip debug insns. 11632 (process_bb_node_for_hard_reg_moves): Likewise. 11633 * rtl.h (DEBUG_INSN_P): New. 11634 (NONDEBUG_INSN_P): New. 11635 (MAY_HAVE_DEBUG_INSNS): New. 11636 (INSN_P): Accept debug insns. 11637 (RTX_FRAME_RELATED_P): Likewise. 11638 (INSN_DELETED_P): Likewise 11639 (PAT_VAR_LOCATION_DECL): New. 11640 (PAT_VAR_LOCATION_LOC): New. 11641 (PAT_VAR_OCATION_STATUS): New. 11642 (NOTE_VAR_LOCATION_DECL): Reimplement. 11643 (NOTE_VAR_LOCATION_LOC): Likewise. 11644 (NOTE_VAR_LOCATION_STATUS): Likewise. 11645 (INSN_VAR_LOCATION): New. 11646 (INSN_VAR_LOCATION_DECL): New. 11647 (INSN_VAR_LOCATION_LOC): New. 11648 (INSN_VAR_LOCATION_STATUS): New. 11649 (gen_rtx_UNKNOWN_VAR_LOC): New. 11650 (VAR_LOC_UNKNOWN_P): New. 11651 (NOTE_DURING_CALL_P): New. 11652 (SCHED_GROUP_P): Accept debug insns. 11653 (emit_debug_insn_before): Declare. 11654 (emit_debug_insn_before_noloc): Declare. 11655 (emit_debug_insn_beore_setloc): Declare. 11656 (emit_debug_insn_after): Declare. 11657 (emit_debug_insn_after_noloc): Declare. 11658 (emit_debug_insn_after_setloc): Declare. 11659 (emit_debug_insn): Declare. 11660 (make_debug_insn_raw): Declare. 11661 (prev_nondebug_insn): Declare. 11662 (next_nondebug_insn): Declare. 11663 (delegitimize_mem_from_attrs): Declare. 11664 (get_max_insn_count): Declare. 11665 (wrap_constant): Declare. 11666 (unwrap_constant): Declare. 11667 (get_curr_insn_source_location): Declare. 11668 (get_curr_insn_block): Declare. 11669 * tree-inline.c (insert_debug_decl_map): New. 11670 (processing_debug_stmt): New. 11671 (remap_decl): Don't create new mappings in debug stmts. 11672 (remap_gimple_op_r): Don't add references in debug stmts. 11673 (copy_tree_body_r): Likewise. 11674 (remap_gimple_stmt): Handle debug bind stmts. 11675 (copy_bb): Skip debug stmts. 11676 (copy_edges_for_bb): Likewise. 11677 (copy_debug_stmt): New. 11678 (copy_debug_stmts): New. 11679 (copy_body): Copy debug stmts at the end. 11680 (insert_init_debug_bind): New. 11681 (insert_init_stmt): Take id. Skip and emit debug stmts. 11682 (setup_one_parameter): Remap variable earlier, register debug mapping. 11683 (estimate_num_insns): Skip debug stmts. 11684 (expand_call_inline): Preserve debug_map. 11685 (optimize_inline_calls): Check for no debug_stmts left-overs. 11686 (unsave_expr_now): Preserve debug_map. 11687 (copy_gimple_seq_and_replace_locals): Likewise. 11688 (tree_function_versioning): Check for no debug_stmts left-overs. 11689 Init and destroy debug_map as needed. Split edges unconditionally. 11690 (build_duplicate_type): Init and destroy debug_map as needed. 11691 * tree-inline.h: Include gimple.h instead of pointer-set.h. 11692 (struct copy_body_data): Add debug_stmts and debug_map. 11693 * sched-int.h (struct ready_list): Add n_debug. 11694 (struct deps): Add last_debug_insn. 11695 (DEBUG_INSN_SCHED_P): New. 11696 (BOUNDARY_DEBUG_INSN_P): New. 11697 (SCHEDULE_DEBUG_INSN_P): New. 11698 (sd_iterator_cond): Accept empty list. 11699 * combine.c (create_log_links): Skip debug insns. 11700 (combine_instructions): Likewise. 11701 (cleanup_auto_inc_dec): New. From Jakub Jelinek: Make sure the 11702 return value is always unshared. 11703 (struct rtx_subst_pair): New. 11704 (auto_adjust_pair): New. 11705 (propagate_for_debug_subst): New. 11706 (propagate_for_debug): New. 11707 (try_combine): Skip debug insns. Propagate removed defs into 11708 debug insns. 11709 (next_nonnote_nondebug_insn): New. 11710 (distribute_notes): Use it. Skip debug insns. 11711 (distribute_links): Skip debug insns. 11712 * tree-outof-ssa.c (set_location_for_edge): Likewise. 11713 * resource.c (mark_target_live_regs): Likewise. 11714 * var-tracking.c: Include cselib.h and target.h. 11715 (enum micro_operation_type): Add MO_VAL_USE, MO_VAL_LOC, and 11716 MO_VAL_SET. 11717 (micro_operation_type_name): New. 11718 (enum emit_note_where): Add EMIT_NOTE_AFTER_CALL_INSN. 11719 (struct micro_operation_def): Update comments. 11720 (decl_or_value): New type. Use instead of decls. 11721 (struct emit_note_data_def): Add vars. 11722 (struct attrs_def): Use decl_or_value. 11723 (struct variable_tracking_info_def): Add permp, flooded. 11724 (struct location_chain_def): Update comment. 11725 (struct variable_part_def): Use decl_or_value. 11726 (struct variable_def): Make var_part a variable length array. 11727 (valvar_pool): New. 11728 (scratch_regs): New. 11729 (cselib_hook_called): New. 11730 (dv_is_decl_p): New. 11731 (dv_is_value_p): New. 11732 (dv_as_decl): New. 11733 (dv_as_value): New. 11734 (dv_as_opaque): New. 11735 (dv_onepart_p): New. 11736 (dv_pool): New. 11737 (IS_DECL_CODE): New. 11738 (check_value_is_not_decl): New. 11739 (dv_from_decl): New. 11740 (dv_from_value): New. 11741 (dv_htab_hash): New. 11742 (variable_htab_hash): Use it. 11743 (variable_htab_eq): Support values. 11744 (variable_htab_free): Free from the right pool. 11745 (attrs_list_member, attrs_list_insert): Use decl_or_value. 11746 (attrs_list_union): Adjust. 11747 (attrs_list_mpdv_union): New. 11748 (tie_break_pointers): New. 11749 (canon_value_cmp): New. 11750 (unshare_variable): Return possibly-modified slot. 11751 (vars_copy_1): Adjust. 11752 (var_reg_decl_set): Adjust. Split out of... 11753 (var_reg_set): ... this. 11754 (get_init_value): Adjust. 11755 (var_reg_delete_and_set): Adjust. 11756 (var_reg_delete): Adjust. 11757 (var_regno_delete): Adjust. 11758 (var_mem_decl_set): Split out of... 11759 (var_mem_set): ... this. 11760 (var_mem_delete_and_set): Adjust. 11761 (var_mem_delete): Adjust. 11762 (val_store): New. 11763 (val_reset): New. 11764 (val_resolve): New. 11765 (variable_union): Adjust. Speed up merge of 1-part vars. 11766 (variable_canonicalize): Use unshared slot. 11767 (VALUED_RECURSED_INTO): New. 11768 (find_loc_in_1pdv): New. 11769 (struct dfset_merge): New. 11770 (insert_into_intersection): New. 11771 (intersect_loc_chains): New. 11772 (loc_cmp): New. 11773 (canonicalize_loc_order_check): New. 11774 (canonicalize_values_mark): New. 11775 (canonicalize_values_star): New. 11776 (variable_merge_over_cur): New. 11777 (variable_merge_over_src): New. 11778 (dataflow_set_merge): New. 11779 (dataflow_set_equiv_regs): New. 11780 (remove_duplicate_values): New. 11781 (struct dfset_post_merge): New. 11782 (variable_post_merge_new_vals): New. 11783 (variable_post_merge_perm_vals): New. 11784 (dataflow_post_merge_adjust): New. 11785 (find_mem_expr_in_1pdv): New. 11786 (dataflow_set_preserve_mem_locs): New. 11787 (dataflow_set_remove_mem_locs): New. 11788 (dataflow_set_clear_at_call): New. 11789 (onepart_variable_different_p): New. 11790 (variable_different_p): Use it. 11791 (dataflow_set_different_1): Adjust. Make detailed dump more verbose. 11792 (track_expr_p): Add need_rtl parameter. Don't generate rtl 11793 if not needed. 11794 (track_loc_p): Pass it true. 11795 (struct count_use_info): New. 11796 (find_use_val): New. 11797 (replace_expr_with_values): New. 11798 (log_op_type): New. 11799 (use_type): New, partially split out of... 11800 (count_uses): ... this. Count new micro-ops. 11801 (count_uses_1): Adjust. 11802 (count_stores): Adjust. 11803 (count_with_sets): New. 11804 (VAL_NEEDS_RESOLUTION): New. 11805 (VAL_HOLDS_TRACK_EXPR): New. 11806 (VAL_EXPR_IS_COPIED): New. 11807 (VAL_EXPR_IS_CLOBBERED): New. 11808 (add_uses): Adjust. Generate new micro-ops. 11809 (add_uses_1): Adjust. 11810 (add_stores): Generate new micro-ops. 11811 (add_with_sets): New. 11812 (find_src_status): Adjust. 11813 (find_src_set_src): Adjust. 11814 (compute_bb_dataflow): Use dataflow_set_clear_at_call. 11815 Handle new micro-ops. Canonicalize value equivalances. 11816 (vt_find_locations): Compute total size of hash tables for 11817 dumping. Perform merge for var-tracking-assignments. Don't 11818 disregard single-block loops. 11819 (dump_attrs_list): Handle decl_or_value. 11820 (dump_variable): Take variable. Deal with decl_or_value. 11821 (dump_variable_slot): New. 11822 (dump_vars): Use it. 11823 (dump_dataflow_sets): Adjust. 11824 (set_slot_part): New, extended to support one-part variables 11825 after splitting out of... 11826 (set_variable_part): ... this. 11827 (clobber_slot_part): New, split out of... 11828 (clobber_variable_part): ... this. 11829 (delete_slot_part): New, split out of... 11830 (delete_variable_part): .... this. 11831 (check_wrap_constant): New. 11832 (vt_expand_loc_callback): New. 11833 (vt_expand_loc): New. 11834 (emit_note_insn_var_location): Adjust. Handle values. Handle 11835 EMIT_NOTE_AFTER_CALL_INSN. 11836 (emit_notes_for_differences_1): Adjust. Handle values. 11837 (emit_notes_for_differences_2): Likewise. 11838 (emit_notes_for_differences): Adjust. 11839 (emit_notes_in_bb): Take pointer to set. Emit AFTER_CALL_INSN notes. 11840 Adjust. Handle new micro-ops. 11841 (vt_add_function_parameters): Adjust. Create and bind values. 11842 (vt_initialize): Adjust. Initialize scratch_regs and 11843 valvar_pool, flooded and perm.. Initialize and use cselib. Log 11844 operations. Move some code to count_with_sets and add_with_sets. 11845 (delete_debug_insns): New. 11846 (vt_debug_insns_local): New. 11847 (vt_finalize): Release permp, valvar_pool, scratch_regs. Finish 11848 cselib. 11849 (var_tracking_main): If var-tracking-assignments is enabled 11850 but var-tracking isn't, delete debug insns and leave. Likewise 11851 if we exceed limits or fail the stack adjustments tests, and 11852 after all var-tracking processing. 11853 More in var-tracking, from Jakub Jelinek <jakub@redhat.com>: 11854 (dataflow_set): Add traversed_vars. 11855 (value_chain, const_value_chain): New typedefs. 11856 (value_chain_pool, value_chains): New variables. 11857 (value_chain_htab_hash, value_chain_htab_eq, add_value_chain, 11858 add_value_chains, add_cselib_value_chains, remove_value_chain, 11859 remove_value_chains, remove_cselib_value_chains): New functions. 11860 (shared_hash_find_slot_unshare_1, shared_hash_find_slot_1, 11861 shared_hash_find_slot_noinsert_1, shared_hash_find_1): New 11862 static inlines. 11863 (shared_hash_find_slot_unshare, shared_hash_find_slot, 11864 shared_hash_find_slot_noinsert, shared_hash_find): Update. 11865 (dst_can_be_shared): New variable. 11866 (unshare_variable): Unshare set->vars if shared, use shared_hash_*. 11867 Clear dst_can_be_shared. If set->traversed_vars is non-NULL and 11868 different from set->vars, look up slot again instead of using the 11869 passed in slot. 11870 (dataflow_set_init): Initialize traversed_vars. 11871 (variable_union): Use shared_hash_*. Use initially NO_INSERT 11872 lookup if set->vars is shared. Don't keep slot cleared before 11873 calling unshare_variable. Unshare set->vars if needed. Adjust 11874 unshare_variable callers. Clear dst_can_be_shared if needed. 11875 Even ->refcount == 1 vars must be unshared if set->vars is shared 11876 and var needs to be modified. 11877 (dataflow_set_union): Set traversed_vars during canonicalization. 11878 (VALUE_CHANGED, DECL_CHANGED): Define. 11879 (set_dv_changed, dv_changed_p): New static inlines. 11880 (track_expr_p): Clear DECL_CHANGED. 11881 (dump_dataflow_sets): Set it. 11882 (variable_was_changed): Call set_dv_changed. 11883 (emit_note_insn_var_location): Likewise. 11884 (changed_variables_stack): New variable. 11885 (check_changed_vars_1, check_changed_vars_2): New functions. 11886 (emit_notes_for_changes): Do nothing if changed_variables is 11887 empty. Traverse changed_variables with check_changed_vars_1, 11888 call check_changed_vars_2 on each changed_variables_stack entry. 11889 (emit_notes_in_bb): Add SET argument. Just clear it at the 11890 beginning, use it instead of local &set, don't destroy it at the end. 11891 (vt_emit_notes): Call dataflow_set_clear early on all 11892 VTI(bb)->out sets, never use them, instead use emit_notes_in_bb 11893 computed set, dataflow_set_clear also VTI(bb)->in when we are 11894 done with the basic block. Initialize changed_variables_stack, 11895 free it afterwards. If ENABLE_CHECKING verify that after noting 11896 differences to an empty set value_chains hash table is empty. 11897 (vt_initialize): Initialize value_chains and value_chain_pool. 11898 (vt_finalize): Delete value_chains htab, free value_chain_pool. 11899 (variable_tracking_main): Call dump_dataflow_sets before calling 11900 vt_emit_notes, not after it. 11901 * tree-flow.h (propagate_defs_into_debug_stmts): Declare. 11902 (propagate_var_def_into_debug_stmts): Declare. 11903 * df-problems.c (df_lr_bb_local_compute): Skip debug insns. 11904 (df_set_note): Reject debug insns. 11905 (df_whole_mw_reg_dead_p): Take added_notes_p argument. Don't 11906 add notes to debug insns. 11907 (df_note_bb_compute): Adjust. Likewise. 11908 (df_simulate_uses): Skip debug insns. 11909 (df_simulate_initialize_backwards): Likewise. 11910 * reg-stack.c (subst_stack_regs_in_debug_insn): New. 11911 (subst_stack_regs_pat): Reject debug insns. 11912 (convert_regs_1): Handle debug insns. 11913 * Makefile.in (TREE_INLINE_H): Take pointer-set.h from GIMPLE_H. 11914 (print-rtl.o): Depend on cselib.h. 11915 (cselib.o): Depend on TREE_PASS_H. 11916 (var-tracking.o): Depend on cselib.h and TARGET_H. 11917 * sched-rgn.c (rgn_estimate_number_of_insns): Discount debug insns. 11918 (init_ready_list): Skip boundary debug insns. 11919 (add_branch_dependences): Skip debug insns. 11920 (free_block_dependencies): Check for blocks with only debug insns. 11921 (compute_priorities): Likewise. 11922 * gimple.c (gss_for_code): Handle GIMPLE_DEBUG. 11923 (gimple_build_with_ops_stat): Take subcode as unsigned. Adjust 11924 all callers. 11925 (gimple_build_debug_bind_stat): New. 11926 (empty_body_p): Skip debug stmts. 11927 (gimple_has_side_effects): Likewise. 11928 (gimple_rhs_has_side_effects): Likewise. 11929 * gimple.h (enum gimple_debug_subcode, GIMPLE_DEBUG_BIND): New. 11930 (gimple_build_debug_bind_stat): Declare. 11931 (gimple_build_debug_bind): Define. 11932 (is_gimple_debug): New. 11933 (gimple_debug_bind_p): New. 11934 (gimple_debug_bind_get_var): New. 11935 (gimple_debug_bind_get_value): New. 11936 (gimple_debug_bind_get_value_ptr): New. 11937 (gimple_debug_bind_set_var): New. 11938 (gimple_debug_bind_set_value): New. 11939 (GIMPLE_DEBUG_BIND_NOVALUE): New internal temporary macro. 11940 (gimple_debug_bind_reset_value): New. 11941 (gimple_debug_bind_has_value_p): New. 11942 (gsi_next_nondebug): New. 11943 (gsi_prev_nondebug): New. 11944 (gsi_start_nondebug_bb): New. 11945 (gsi_last_nondebug_bb): New. 11946 * sched-vis.c (print_pattern): Handle VAR_LOCATION. 11947 (print_insn): Handle DEBUG_INSN. 11948 * tree-cfg.c (remove_bb): Walk stmts backwards. Let loc 11949 of first insn prevail. 11950 (first_stmt): Skip debug stmts. 11951 (first_non_label_stmt): Likewise. 11952 (last_stmt): Likewise. 11953 (has_zero_uses_1): New. 11954 (single_imm_use_1): New. 11955 (verify_gimple_debug): New. 11956 (verify_types_in_gimple_stmt): Handle debug stmts. 11957 (verify_stmt): Likewise. 11958 (debug_loop_num): Skip debug stmts. 11959 (remove_edge_and_dominated_blocks): Remove dominators last. 11960 * tree-ssa-reasssoc.c (rewrite_expr_tree): Propagate into debug stmts. 11961 (linearize_expr): Likewise. 11962 * config/i386/i386.c (ix86_delegitimize_address): Call 11963 default implementation. 11964 * config/ia64/ia64.c (ia64_safe_itanium_class): Handle debug insns. 11965 (group_barrier_needed): Skip debug insns. 11966 (emit_insn_group_barriers): Likewise. 11967 (emit_all_insn_group_barriers): Likewise. 11968 (ia64_variable_issue): Handle debug insns. 11969 (ia64_dfa_new_cycle): Likewise. 11970 (final_emit_insn_group_barriers): Skip debug insns. 11971 (ia64_dwarf2out_def_steady_cfa): Take frame argument. Don't 11972 def cfa without frame. 11973 (process_set): Likewise. 11974 (process_for_unwind_directive): Pass frame on. 11975 * config/rs6000/rs6000.c (TARGET_DELEGITIMIZE_ADDRESS): Define. 11976 (rs6000_delegitimize_address): New. 11977 (rs6000_debug_adjust_cost): Handle debug insns. 11978 (is_microcoded_insn): Likewise. 11979 (is_cracked_insn): Likewise. 11980 (is_nonpipeline_insn): Likewise. 11981 (insn_must_be_first_in_group): Likewise. 11982 (insn_must_be_last_in_group): Likewise. 11983 (force_new_group): Likewise. 11984 * cfgrtl.c (rtl_split_block): Emit INSN_DELETED note if block 11985 contains only debug insns. 11986 (rtl_merge_blocks): Skip debug insns. 11987 (purge_dead_edges): Likewise. 11988 (rtl_block_ends_with_call_p): Skip debug insns. 11989 * dce.c (deletable_insn_p): Handle VAR_LOCATION. 11990 (mark_reg_dependencies): Skip debug insns. 11991 * params.def (PARAM_MIN_NONDEBUG_INSN_UID): New. 11992 * tree-ssanames.c (release_ssa_name): Propagate def into debug stmts. 11993 * tree-ssa-threadedge.c 11994 (record_temporary_equivalences_from_stmts): Skip debug stmts. 11995 * regcprop.c (replace_oldest_value_addr): Skip debug insns. 11996 (replace_oldest_value_mem): Use ALL_REGS for debug insns. 11997 (copyprop_hardreg_forward_1): Handle debug insns. 11998 * reload1.c (reload): Skip debug insns. Replace unassigned 11999 pseudos in debug insns with their equivalences. 12000 (eliminate_regs_in_insn): Skip debug insns. 12001 (emit_input_reload_insns): Skip debug insns at first, adjust 12002 them later. 12003 * tree-ssa-operands.c (add_virtual_operand): Reject debug stmts. 12004 (get_indirect_ref_operands): Pass opf_no_vops on. 12005 (get_expr_operands): Likewise. Skip debug stmts. 12006 (parse_ssa_operands): Scan debug insns with opf_no_vops. 12007 120082009-09-01 Richard Henderson <rth@redhat.com> 12009 12010 * tree-ssa-ccp.c (ccp_initialize): Make sure to simulate 12011 stmt_ends_pp_p statements at least once. 12012 * tree-vrp.c (vrp_initialize): Likewise. 12013 (vrp_visit_stmt): Be prepared for non-interesting stmts. 12014 120152009-09-01 Dodji Seketeli <dodji@redhat.com> 12016 12017 PR bootstrap/41205 12018 Fix AIX bootstrap after PR debug/30161 12019 * dwarf2out.c (make_ith_pack_parameter_name): Don't used strnlen 12020 that is a GNU extension. 12021 (tmpl_value_parm_die_table): Move the definition of this global 12022 outside #ifdef DWARF2_DEBUGGING_INFO region. 12023 120242009-09-01 Richard Guenther <rguenther@suse.de> 12025 12026 * tree.c (tree_expr_size): New function. 12027 * tree.h (tree_expr_size): Declare. 12028 * rtlanal.c (rtx_addr_can_trap_p_1): Adjust comment. 12029 * builtins.c (fold_builtin_memory_op): Use tree_expr_size. 12030 * langhooks.c (lhd_expr_size): Remove. 12031 * langhooks.h (struct lang_hooks): Remove expr_size. 12032 * explow.c (expr_size): Use tree_expr_size. 12033 (int_expr_size): Likewise. 12034 * langhooks-def.h (lhd_expr_size): Remove. 12035 (LANG_HOOKS_EXPR_SIZE): Likewise. 12036 (LANG_HOOKS_INITIALIZER): Adjust. 12037 120382009-09-01 Richard Guenther <rguenther@suse.de> 12039 12040 * tree-flow.h (mark_addressable): Move declaration ... 12041 * tree.h (mark_addressable): ... here. 12042 * stmt.c (expand_asm_operands): Use mark_addressable, not 12043 lang_hooks.mark_addressable. 12044 * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove 12045 LANG_HOOKS_MARK_ADDRESSABLE. 12046 * langhooks.h (struct lang_hooks): Remove mark_addressable langhook. 12047 * c-objc-common.h (LANG_HOOKS_MARK_ADDRESSABLE): Remove. 12048 120492009-08-31 Chris Demetriou <cgd@google.com> 12050 12051 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Never 12052 vectorize if not TARGET_SSE2. 12053 120542009-08-31 DJ Delorie <dj@redhat.com> 12055 12056 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Exclude coprocessor 12057 registers if no coprocessor is enabled. 12058 120592009-08-31 Dodji Seketeli <dodji@redhat.com> 12060 12061 PR debug/30161 12062 * cgraph.h (cgraph_get_node): Declare ... 12063 * cgraph.c (cgraph_get_node): ... new function. 12064 * dwarf2out.c (gen_generic_params_dies, 12065 generic_parameter_die, tree_add_const_value_attribute_for_decl, 12066 make_ith_pack_parameter_name, 12067 append_entry_to_tmpl_value_parm_die_table, 12068 gen_remaining_tmpl_value_param_die_attribute): New functions. 12069 (gen_subprogram_die): Generate debug info for template parameters 12070 if debug info level is higher than DINFO_LEVEL_TERSE. 12071 Use tree_add_const_value_attribute_for_decl instead of 12072 tree_add_const_value_attribute. 12073 (gen_const_die): Use tree_add_const_value_attribute_for_decl 12074 instead of tree_add_const_value_attribute. 12075 (gen_struct_or_union_type_die): Generate debug 12076 info for template parameters if debug info level is higher than 12077 DINFO_LEVEL_TERSE. 12078 (tree_add_const_value_attribute): Handle integral and pointer 12079 constants. Update comment. 12080 (dwarf_tag_name): Support DW_TAG_GNU_template_template_param. 12081 (dwarf_attr_name): Support DW_AT_GNU_template_name. 12082 (reference_to_unused): Fix thinko. Remove redundant predicates from 12083 tests. 12084 (tree_add_const_value_attribute): Make this work for constant 12085 expressions only. 12086 tree_add_const_value_attribute_for_decl is to be used for variable 12087 DECLs now. 12088 (add_location_or_const_value_attribute): Use 12089 tree_add_const_value_attribute_for_decl now. 12090 (dwarf2out_finish): Emit the DW_AT_const_value attribute of 12091 DW_TAG_template_value_param DIEs after function DIEs have been 12092 emitted. 12093 * langhooks.h (lang_hooks_for_types): Add 12094 get_argument_pack_elems. 12095 (lang_hooks_for_decls): Add generic_generic_parameter_decl_p. 12096 (lang_hooks): Added get_innermost_generic_parms, 12097 get_innermost_generic_args. 12098 * langhooks-def.h (LANG_HOOKS_GET_INNERMOST_GENERIC_PARMS, 12099 LANG_HOOKS_GET_INNERMOST_GENERIC_ARGS, 12100 LANG_HOOKS_GET_ARGUMENT_PACK_ELEMS, 12101 LANG_HOOKS_GENERIC_GENERIC_PARAMETER_DECL_P): New language hooks. 12102 121032009-08-31 DJ Delorie <dj@redhat.com> 12104 12105 * config/mep/mep.c (machine_function): Add frame_locked flag. Set 12106 it once we start generating the prologue or epilogue. 12107 (mep_call_saves_register): If the frame is locked, re-use 12108 cached values. 12109 (mep_assign_save_slots): New, broken out from mep_expand_prologue. 12110 (mep_expand_prologue): Call it. 12111 (mep_expand_epilogue): Likewise. 12112 (mep_start_function): Use the same logic as mep_expand_prologue. 12113 (mep_pass_by_reference): Make logic more readable. 12114 (mep_return_in_memory): Zero-sized objects are passed in memory. 12115 (mep_reorg_noframe): Make sure we have accurate REG_DEAD notes. 12116 121172009-08-31 Richard Guenther <rguenther@suse.de> 12118 12119 * builtins.c (fold_builtin_memory_op): Use the alias oracle 12120 to query if the memory regions for memmove overlap. 12121 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Relax the 12122 asserts on pointers, instead deal with odd trees. 12123 (ptr_derefs_may_alias_p): Likewise. 12124 (refs_may_alias_p_1): Constructor bases also never alias. 12125 121262009-08-31 Gerald Pfeifer <gerald@pfeifer.com> 12127 12128 * doc/install.texi (Final install): Adjust reference on where to 12129 order printed manuals. 12130 121312009-08-30 Olivier Hainque <hainque@adacore.com> 12132 12133 * dwarf2out.c (switch_to_frame_table_section): Move 12134 definition prior to first use. 12135 121362009-08-30 Richard Guenther <rguenther@suse.de> 12137 12138 PR tree-optimization/41186 12139 * tree-ssa-alias.c (ptr_deref_may_alias_ref_p): Remove. 12140 (ao_ref_init_from_ptr_and_size): New function. 12141 (ref_maybe_used_by_call_p_1): Be more precise tracking 12142 used ranges for builtin functions. 12143 (ref_maybe_used_by_call_p): Adjust. 12144 (call_may_clobber_ref_p_1): Be more precise tracking clobbered 12145 ranges for builtin functions. 12146 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_size): Declare. 12147 121482009-08-30 Alan Modra <amodra@bigpond.net.au> 12149 12150 PR target/41081 12151 * fwprop.c (get_reg_use_in): Delete. 12152 (free_load_extend): New function. 12153 (forward_propagate_subreg): Use it. 12154 121552009-08-29 Kaz Kojima <kkojima@gcc.gnu.org> 12156 12157 * config.gcc (sh*-*-elf): Add superh stuff only for sh*-superh-elf. 12158 121592009-08-29 Kai Tietz<kai.tietz@onevision.com> 12160 12161 PR/41184 12162 * config/i386.c (ix86_expand_epilogue): Correct stack adjustment for 12163 padding. 12164 121652009-08-29 Douglas B Rupp <rupp@gnat.com> 12166 12167 * crtstuff.c (__do_global_dtors_aux): Use atexit if no 12168 fini or fini_array section. 12169 121702009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12171 12172 * graphite-dependences.c (graphite_legal_transform_bb): Call 12173 pbb_remove_duplicate_pdrs. 12174 * graphite-poly.c (can_collapse_pdr): Removed. 12175 (pdr_find_duplicate): Removed. 12176 (can_collapse_pdrs): New. 12177 (pbb_remove_duplicate_pdrs): New. 12178 (new_poly_dr): Do not look for duplicates. 12179 * graphite-poly.h (struct poly_bb): New field pdr_duplicates_removed. 12180 (PBB_PDR_DUPLICATES_REMOVED): New. 12181 (pbb_remove_duplicate_pdrs): Declared. 12182 121832009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12184 12185 * graphite-interchange.c (pbb_interchange_profitable_p): Adjust 12186 the strides by multiplying by PDR_NB_REFS. 12187 * graphite-poly.c (can_collapse_pdr): New. 12188 (pdr_find_duplicate): New. 12189 (new_poly_dr): Call pdr_find_duplicate. Collapse duplicate PDRs. 12190 Initialize PDR_NB_REFS. 12191 * graphite-poly.h (struct poly_dr): Add field nb_refs. 12192 (PDR_NB_REFS): New. 12193 (new_poly_dr): Number of subscripts is a graphite_dim_t. 12194 121952009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12196 12197 PR middle-end/40965 12198 * graphite-poly.c (apply_poly_transforms): Remove legality test before 12199 any transform. 12200 122012009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12202 12203 * graphite-dependences.c (pddr_original_scattering): Return NULL 12204 for read-read dependence relations. 12205 * graphite-poly.h (enum poly_dr_type): Fix comment. 12206 (pdr_read_p): New. 12207 (pdr_write_p): New. 12208 (pdr_may_write_p): New. 12209 122102009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12211 12212 * graphite-poly.h (enum POLY_DR_TYPE): Renamed poly_dr_type. 12213 (struct poly_dr): Same. 12214 (new_poly_dr): Same. 12215 * graphite-poly.c (new_poly_dr): Same. 12216 * graphite-dependences.c (dot_deps): Disable call to system. 12217 122182009-08-28 Cary Coutant <ccoutant@google.com> 12219 12220 PR debug/41063 12221 * dwarf2out.c (gen_type_die_with_usage): Use proper context for 12222 struct/union/enum types local to a function. 12223 122242009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> 12225 Sebastian Pop <sebastian.pop@amd.com> 12226 12227 * graphite-blocking.c (pbb_strip_mine_loop_depth): Renamed 12228 pbb_strip_mine_time_depth. Changed the implementation so that 12229 transformation is expressed as a transformation on 12230 time (scatttering) dimensions. Also, ensures that the 2d+1 12231 scheduling format is preserved. 12232 (pbb_strip_mine_profitable_p): Profitability is based on the 12233 iteration number of a given time (scattering) dimension, 12234 and not on a original loop depth dimension. 12235 (pbb_strip_mine): Call pbb_number_of_iterations_at_time. 12236 (pbb_do_strip_mine): Call psct_dynamic_dim. 12237 * graphite-poly.c (pbb_number_of_iterations_at_time): New. 12238 * graphite-poly.h (pbb_number_of_iterations_at_time): Declared. 12239 (pbb_nb_dynamic_scattering_transform): New. 12240 (psct_dynamic_dim): New. 12241 122422009-08-28 Konrad Trifunovic <konrad.trifunovic@gmail.com> 12243 12244 * graphite-ppl.c (ppl_max_for_le): Renamed ppl_max_for_le_pointset. 12245 * graphite-ppl.h (ppl_max_for_le): Renamed ppl_max_for_le_pointset. 12246 * graphite-poly.c (pbb_number_of_iterations): Rename ppl_max_for_le. 12247 * graphite-interchange.c (build_linearized_memory_access): Same. 12248 (memory_stride_in_loop): Same. 12249 122502009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12251 12252 * graphite-dependences.c (pddr_original_scattering): New. 12253 (graphite_legal_transform_dr): Call pddr_original_scattering. 12254 (dot_deps_1): New. 12255 (dot_deps): New. 12256 * graphite-dependences.h (dot_deps): Declared. 12257 * graphite-poly.c (new_poly_dr): Initialize PDR_ID. 12258 (print_pdr): Print PDR_ID. 12259 * graphite-poly.h (struct poly_dr): Add field id. 12260 (PDR_ID): New. 12261 (pbb_index): New. 12262 * graphite-scop-detection.c (dot_all_scops_1): Cleanup comment. 12263 122642009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12265 12266 * graphite-dependences.c (graphite_carried_dependence_level_k): Do 12267 not delete the original dependence relation. 12268 122692009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12270 12271 * graphite-dependences.c (new_poly_dr_pair): Renamed new_poly_ddr. 12272 (eq_poly_dr_pair_p): Renamed eq_poly_ddr_p. 12273 (hash_poly_dr_pair_p): Renamed hash_poly_ddr_p. 12274 (free_poly_ddr): New. 12275 (pddr_is_empty): New. 12276 (dependence_polyhedron_1): Now returns a poly_ddr_p. 12277 (dependence_polyhedron): Same. Remove useless gcc_assert. 12278 Remove fprintfs. 12279 (graphite_legal_transform_dr): Call pddr_is_empty and free_poly_ddr. 12280 (graphite_carried_dependence_level_k): Call pddr_is_empty. 12281 * graphite-dependences.h (enum poly_dependence_kind): New. 12282 (poly_dr_pair): Renamed poly_ddr. Added a field kind. 12283 (PDRP_SOURCE): Renamed PDDR_SOURCE. 12284 (PDRP_SINK): Renamed PDDR_SINK. 12285 (PDRP_DDP): Renamed PDDR_DDP. 12286 (PDDR_KIND): New. 12287 (free_poly_ddr): Declared. 12288 * graphite-poly.c (new_scop): Use the new hash function names. 12289 * graphite-poly.h (struct scop): Renamed field original_pdr_pairs 12290 into original_pddrs. 12291 (SCOP_ORIGINAL_PDR_PAIRS): Renamed SCOP_ORIGINAL_PDDRS. 12292 122932009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12294 12295 * cfgloopmanip.c (create_empty_loop_on_edge): Generate upper 12296 bounds with LT_EXPR to make niter analysis more precise on code 12297 generated by Graphite. 12298 122992009-08-28 Sebastian Pop <sebastian.pop@amd.com> 12300 12301 * graphite-dependences.c (graphite_legal_transform_dr): Fix formatting. 12302 (graphite_legal_transform_bb): Same. 12303 (poly_drs_may_alias_p): Same. 12304 123052009-08-28 Richard Guenther <rguenther@suse.de> 12306 12307 * tree.def: Remove note about obsolete TYPE_NONCOPIED_PARTS. 12308 123092009-08-28 Jan Beulich <jbeulich@novell.com> 12310 12311 * config/i386/netware.c: Include langhooks.h. 12312 (i386_nlm_encode_section_info): Simplify. 12313 (netware_override_options): Delete. 12314 * config/i386/netware.h (netware_override_options): Delete 12315 declaration. 12316 (OVERRIDE_OPTIONS): Delete definition. 12317 (SUBTARGET_OVERRIDE_OPTIONS): Define. 12318 (ASM_COMMENT_START): Define. 12319 * config/i386/nwld.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Define. 12320 123212009-08-28 Jan Beulich <jbeulich@novell.com> 12322 12323 * configure.ac: For in-tree ld, do a plain version check to 12324 determine whether comdat groups are supported. 12325 * configure: Regenerate. 12326 123272009-08-28 Olivier Hainque <hainque@adacore.com> 12328 12329 * collect2.c (DO_COLLECT_EXPORT_LIST): New internal macro, 12330 always defined. Reflect definition or absence of such for 12331 COLLECT_EXPORT_LIST. Readability helper. 12332 (scanfilter): New enum, to help control what symbols 12333 are to be considered or ignored by scan_prog_file. 12334 (enum pass): Rename as "scanpass", moved together with scanfilter 12335 prior to scan_prog_file's prototype. 12336 (scan_prog_file): Accept and honor scanpass and scanfilter arguments. 12337 Group prototype with the scanpass/scanfilter definitions, factorize 12338 head comments for the several implementations at the prototype. 12339 (main): Reorganize the first pass link control to let AIX 12340 drag only the needed frame tables in executables. Prevent 12341 frame tables collection during the scan aimed at static ctors. 12342 Pre-link and scan for frame tables later to compensate. 12343 * doc/tm.texi (ASM_OUTPUT_DWARF_TABLE_REF): New macro. 12344 A C statement to issue assembly directives that create a reference 12345 to the given DWARF table identifier label from the current function 12346 section. 12347 * dwarf2out.c (switch_to_eh_frame_section): Add a BACK argument 12348 to differentiate first time section entry. Only emit a .data 12349 tables start identifier label the first time around. 12350 (switch_to_frame_table_section): New function. Helper for 12351 output_call_frame_info to switch possibly BACK into the eh_frame 12352 or the debug_frame section depending on FOR_EH. 12353 (output_call_frame_info): Use helper to first enter the proper 12354 frame section. 12355 (output_fde): Use ASM_OUTPUT_DWARF_TABLE_REF when defined to 12356 emit a link to the frame table start label from each function 12357 section. 12358 * config/rs6000/rs6000.c (rs6000_aix_asm_output_dwarf_table_ref): 12359 New function. Implementation of ASM_OUTPUT_DWARF_TABLE_REF. 12360 * config/rs6000/rs6000-protos.h: Declare it. 12361 * config/rs6000/aix.h (ASM_OUTPUT_DWARF_TABLE_REF): Define. 12362 123632009-08-27 Kaz Kojima <kkojima@gcc.gnu.org> 12364 12365 * config/sh/sh.c (split_branches): Check the result of 12366 next_active_insn. 12367 123682009-08-27 Steve Ellcey <sje@cup.hp.com> 12369 12370 * config/ia64/hpux.h (LIB_SPEC): Add -lrt for when 12371 using -pthread -fopenmp 12372 123732009-08-27 Gerald Pfeifer <gerald@pfeifer.com> 12374 12375 * doc/service.texi (service directory): Update URL. 12376 123772009-08-27 Uros Bizjak <ubizjak@gmail.com> 12378 12379 PR rtl-optimization/40861 12380 * simplify-rtx.c (simplify_subreg): Do not call simplify_gen_subreg to 12381 extract word from a multi-word subreg for negative byte positions. 12382 123832009-08-27 Tristan Gingold <gingold@adacore.com> 12384 Douglas B Rupp <rupp@gnat.com> 12385 12386 * config/ia64/ia64.c (ia64_attribute_table): Add "common_object" entry. 12387 (SECTION_VMS_OVERLAY): Define. 12388 (ia64_vms_common_object_attribute): Added. Handle the "common_object" 12389 attribute. 12390 (ia64_vms_elf_asm_named_section): Added. Generate .section pseudo-op 12391 for common_object. 12392 (ia64_vms_output_aligned_decl_common): Added. Generate pseudo-op for 12393 common_object declarations. 12394 (ia64_section_type_flags): Set section flag for common_object. 12395 * config/ia64/ia64-protos.h 12396 (ia64_vms_output_aligned_decl_common): Declare. 12397 (ia64_vms_elf_asm_named_section): Declare. 12398 123992009-08-27 Michael Matz <matz@suse.de> 12400 12401 * expr.c (expand_expr_real_2): New function taking exploded 12402 unary or binary expression, split out from ... 12403 (expand_expr_real_1): ... here. Move over all unary/binary 12404 switch parts to above function, in particular these codes: 12405 PAREN_EXPR, NOP_EXPR, CONVERT_EXPR, POINTER_PLUS_EXPR, PLUS_EXPR, 12406 MINUS_EXPR, MULT_EXPR, TRUNC_DIV_EXPR, FLOOR_DIV_EXPR, CEIL_DIV_EXPR, 12407 ROUND_DIV_EXPR, EXACT_DIV_EXPR, RDIV_EXPR, TRUNC_MOD_EXPR, 12408 FLOOR_MOD_EXPR, CEIL_MOD_EXPR, ROUND_MOD_EXPR, FIXED_CONVERT_EXPR, 12409 FIX_TRUNC_EXPR, FLOAT_EXPR, NEGATE_EXPR, ABS_EXPR, MAX_EXPR, MIN_EXPR, 12410 BIT_NOT_EXPR, TRUTH_AND_EXPR, BIT_AND_EXPR, TRUTH_OR_EXPR, 12411 BIT_IOR_EXPR, TRUTH_XOR_EXPR, BIT_XOR_EXPR, LROTATE_EXPR, RROTATE_EXPR, 12412 LSHIFT_EXPR, RSHIFT_EXPR, LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, 12413 NE_EXPR, UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, 12414 UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_NOT_EXPR, COMPLEX_EXPR, 12415 WIDEN_SUM_EXPR, REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR, 12416 VEC_EXTRACT_EVEN_EXPR, VEC_EXTRACT_ODD_EXPR, VEC_INTERLEAVE_HIGH_EXPR, 12417 VEC_INTERLEAVE_LOW_EXPR, VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR, 12418 VEC_UNPACK_HI_EXPR, VEC_UNPACK_LO_EXPR, VEC_UNPACK_FLOAT_HI_EXPR, 12419 VEC_UNPACK_FLOAT_LO_EXPR, VEC_WIDEN_MULT_HI_EXPR, 12420 VEC_WIDEN_MULT_LO_EXPR, VEC_PACK_TRUNC_EXPR, VEC_PACK_SAT_EXPR, 12421 VEC_PACK_FIX_TRUNC_EXPR. 12422 (<case PAREN_EXPR>): Call set_mem_attributes() with type, not the 12423 full expression. 12424 124252009-08-27 Richard Guenther <rguenther@suse.de> 12426 12427 * gengtype.c (main): Handle uint64_t. 12428 * ipa-utils.c (get_base_var): Indent properly. 12429 * tree-ssa-live.c (debug_scope_block): New function. 12430 * tree-flow.h (debug_scope_block): Declare. 12431 * tree-ssa-copy.c (replace_exp_1): Add vertical space. 12432 * basic-block.h (enum profile_status): Rename to 12433 enum profile_status_d. 12434 (x_profile_status): Adjust type. 12435 124362009-08-27 Dodji Seketeli <dodji@redhat.com> 12437 12438 PR debug/41170 12439 * dwarf2out.c (get_context_die): Declare this static function. 12440 (gen_type_die_with_usage): Make sure a DIE is a generated for 12441 the context of a typedef. 12442 124432009-08-26 Anatoly Sokolov <aesok@post.ru> 12444 12445 * doc/invoke.texi (AVR Options): Remove documentation of -minit-stack 12446 switch. 12447 124482009-08-26 Richard Sandiford <rdsandiford@googlemail.com> 12449 12450 * config/mips/mips-protos.h (mips_output_sync): Declare. 12451 (mips_sync_loop_insns): Likewise. 12452 (mips_output_sync_loop): Replace first two parameters with an rtx. 12453 * config/mips/mips.c (mips_multi_member): New structure. 12454 (mips_multi_members): New variable. 12455 (mips_multi_start): New function. 12456 (mips_multi_add): Likewise. 12457 (mips_multi_add_insn): Likewise. 12458 (mips_multi_add_label): Likewise. 12459 (mips_multi_last_index): Likewise. 12460 (mips_multi_copy_insn): Likewise. 12461 (mips_multi_set_operand): Likewise. 12462 (mips_multi_write): Likewise. 12463 (mips_print_operand_punctuation): Remove '%|' and '%-'. 12464 (mips_init_print_operand_punct): Update accordingly. 12465 (mips_start_ll_sc_sync_block): New function. 12466 (mips_end_ll_sc_sync_block): Likewise. 12467 (mips_output_sync): Likewise. 12468 (mips_sync_insn1_template): Likewise. 12469 (mips_sync_insn2_template): Likewise. 12470 (mips_get_sync_operand): Likewise. 12471 (mips_process_sync_loop): Likewise. 12472 (mips_output_sync_loop): Use mips_process_sync_loop. 12473 (mips_sync_loop_insns): New function. 12474 * config/mips/mips.h (MIPS_COMPARE_AND_SWAP): Delete. 12475 (MIPS_COMPARE_AND_SWAP_12): Likewise. 12476 (MIPS_COMPARE_AND_SWAP_12_ZERO_OP): Likewise. 12477 (MIPS_COMPARE_AND_SWAP_12_NONZERO_OP): Likewise. 12478 (MIPS_SYNC_OP, MIPS_SYNC_OP_12): Likewise. 12479 (MIPS_SYNC_OP_12_AND, MIPS_SYNC_OP_12_XOR): Likewise. 12480 (MIPS_SYNC_OLD_OP_12): Likewise. 12481 (MIPS_SYNC_OLD_OP_12_AND, MIPS_SYNC_OLD_OP_12_XOR): Likewise. 12482 (MIPS_SYNC_NEW_OP_12): Likewise. 12483 (MIPS_SYNC_NEW_OP_12_AND, MIPS_SYNC_NEW_OP_12_XOR): Likewise. 12484 (MIPS_SYNC_OLD_OP, MIPS_SYNC_NEW_OP): Likewise. 12485 (MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, MIPS_SYNC_NEW_NAND): Likewise. 12486 (MIPS_SYNC_EXCHANGE, MIPS_SYNC_EXCHANGE_12): Likewise. 12487 (MIPS_SYNC_EXCHANGE_12_ZERO_OP): Likewise. 12488 (MIPS_SYNC_EXCHANGE_12_NONZER_OP): Likewise. 12489 * config/mips/mips.md (sync_mem): New attribute. 12490 (sync_oldval, sync_newval, sync_inclusive_mask): Likewise. 12491 (sync_exclusive_mask, sync_required_oldval): Likewise. 12492 (sync_insn1_op2, sync_insn1, sync_insn2): Likewise. 12493 (sync_release_barrier): Likewise. 12494 (length): Handle sync loops. 12495 (sync): Use mips_output_sync. 12496 * config/mips/sync.md (*memory_barrier): Use mips_output_sync. 12497 (sync_compare_and_swap<mode>): Set the new sync_* attributes 12498 and use mips_output_sync_loop. 12499 (compare_and_swap_12, sync_add<mode>, sync_<optab>_12): Likewise. 12500 (sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12): Likewise. 12501 (sync_old_nand_12, sync_new_nand_12, sync_sub<mode>): Likewise. 12502 (sync_old_add<mode>, sync_old_sub<mode>): Likewise. 12503 (sync_new_add<mode>, sync_new_sub<mode>): Likewise. 12504 (sync_<optab><mode>, sync_old_<optab><mode>): Likewise. 12505 (sync_new_<optab><mode>, sync_nand<mode>): Likewise. 12506 (sync_old_nand<mode>, sync_new_nand<mode>): Likewise. 12507 (sync_lock_test_and_set<mode>, test_and_set_12): Likewise. 12508 125092009-08-26 Richard Guenther <rguenther@suse.de> 12510 12511 PR middle-end/41163 12512 * gimplify.c (gimplify_addr_expr): Canonicalize ADDR_EXPRs if 12513 the types to not match. 12514 * tree-cfg.c (verify_gimple_assign_single): Adjust ADDR_EXPR 12515 verification. 12516 * tree-ssa.c (useless_type_conversion_p): Conversions to 12517 pointers to unprototyped functions are useless. 12518 125192009-08-26 Richard Guenther <rguenther@suse.de> 12520 12521 * tree-ssa-structalias.c (create_variable_info_for): Remove strange 12522 whole-program condition, prepare to be called for non-globals. 12523 (intra_create_variable_infos): For restrict qualified DECL_BY_REFERENCE 12524 params build a representative with known type and track its fields. 12525 125262009-08-26 Uros Bizjak <ubizjak@gmail.com> 12527 12528 * config/alpha/sync.md: Update comment about unpredictable LL/SC lock 12529 clearing by a taken branch. 12530 (sync_<fetchop_name><mode>): Split when epilogue_completed is set, 12531 effectively after bbro pass. 12532 (sync_nand<mode>): Ditto. 12533 (sync_old_<fetchop_name><mode>): Ditto. 12534 (sync_old_nand<mode>): Ditto. 12535 (sync_new_<fetchop_name><mode>): Dito. 12536 (sync_new_nand<mode>): Ditto. 12537 (sync_compare_and_swap<mode>_1): Ditto. 12538 (*sync_compare_and_swap<mode>): Ditto. 12539 (sync_lock_test_and_set<mode>_1): Ditto. 12540 ("sync_lock_test_and_set<mode>): Ditto. 12541 125422009-08-25 Douglas B Rupp <rupp@gnat.com> 12543 12544 * hwint.h (HOST_LONG_FORMAT): New macro 12545 * bitmap.c, c-decl.c, mips-tfile.c, print-rtl.c, print-tree.c: 12546 Use HOST_PTR_PRINTF. 12547 * system.h (HOST_PTR_PRINTF): Resurrect old macro 12548 * doc/hostconfig.texi (HOST_LONG_FORMAT): Document. 12549 (HOST_PTR_PRINTF): Document. 12550 125512009-08-25 Jan Hubicka <jh@suse.cz> 12552 12553 * config/i386/bmmintrin.h: Replace by #error. 12554 12555 Revert: 12556 Michael Meissner <michael.meissner@amd.com> 12557 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 12558 Tony Linthicum <tony.linthicum@amd.com> 12559 12560 * config/i386/i386.h (TARGET_SSE5): New macro for SSE5. 12561 (TARGET_ROUND): New macro for the round/ptest instructions which 12562 are shared between SSE4.1 and SSE5. 12563 (OPTION_MASK_ISA_ROUND): Ditto. 12564 (OPTION_ISA_ROUND): Ditto. 12565 (TARGET_FUSED_MADD): New macro for -mfused-madd swtich. 12566 (TARGET_CPU_CPP_BUILTINS): Add SSE5 support. 12567 12568 * config/i386/i386.opt (-msse5): New switch for SSE5 support. 12569 (-mfused-madd): New switch to give users control over whether the 12570 compiler optimizes to use the multiply/add SSE5 instructions. 12571 12572 * config/i386/i386.c (enum pta_flags): Add PTA_SSE5. 12573 (ix86_handle_option): Turn off 3dnow if -msse5. 12574 (override_options): Add SSE5 support. 12575 (print_operand): %Y prints comparison codes for SSE5 com/pcom 12576 instructions. 12577 (ix86_expand_sse_movcc): Add SSE5 support. 12578 (ix86_expand_sse5_unpack): New function to use pperm to unpack a 12579 vector type to the next largest size. 12580 (ix86_expand_sse5_pack): New function to use pperm to pack a 12581 vector type to the next smallest size. 12582 (IX86_BUILTIN_FMADDSS): New for SSE5 intrinsic. 12583 (IX86_BUILTIN_FMADDSD): Ditto. 12584 (IX86_BUILTIN_FMADDPS): Ditto. 12585 (IX86_BUILTIN_FMADDPD): Ditto. 12586 (IX86_BUILTIN_FMSUBSS): Ditto. 12587 (IX86_BUILTIN_FMSUBSD): Ditto. 12588 (IX86_BUILTIN_FMSUBPS): Ditto. 12589 (IX86_BUILTIN_FMSUBPD): Ditto. 12590 (IX86_BUILTIN_FNMADDSS): Ditto. 12591 (IX86_BUILTIN_FNMADDSD): Ditto. 12592 (IX86_BUILTIN_FNMADDPS): Ditto. 12593 (IX86_BUILTIN_FNMADDPD): Ditto. 12594 (IX86_BUILTIN_FNMSUBSS): Ditto. 12595 (IX86_BUILTIN_FNMSUBSD): Ditto. 12596 (IX86_BUILTIN_FNMSUBPS): Ditto. 12597 (IX86_BUILTIN_FNMSUBPD): Ditto. 12598 (IX86_BUILTIN_PCMOV_V2DI): Ditto. 12599 (IX86_BUILTIN_PCMOV_V4SI): Ditto. 12600 (IX86_BUILTIN_PCMOV_V8HI): Ditto. 12601 (IX86_BUILTIN_PCMOV_V16QI): Ditto. 12602 (IX86_BUILTIN_PCMOV_V4SF): Ditto. 12603 (IX86_BUILTIN_PCMOV_V2DF): Ditto. 12604 (IX86_BUILTIN_PPERM): Ditto. 12605 (IX86_BUILTIN_PERMPS): Ditto. 12606 (IX86_BUILTIN_PERMPD): Ditto. 12607 (IX86_BUILTIN_PMACSSWW): Ditto. 12608 (IX86_BUILTIN_PMACSWW): Ditto. 12609 (IX86_BUILTIN_PMACSSWD): Ditto. 12610 (IX86_BUILTIN_PMACSWD): Ditto. 12611 (IX86_BUILTIN_PMACSSDD): Ditto. 12612 (IX86_BUILTIN_PMACSDD): Ditto. 12613 (IX86_BUILTIN_PMACSSDQL): Ditto. 12614 (IX86_BUILTIN_PMACSSDQH): Ditto. 12615 (IX86_BUILTIN_PMACSDQL): Ditto. 12616 (IX86_BUILTIN_PMACSDQH): Ditto. 12617 (IX86_BUILTIN_PMADCSSWD): Ditto. 12618 (IX86_BUILTIN_PMADCSWD): Ditto. 12619 (IX86_BUILTIN_PHADDBW): Ditto. 12620 (IX86_BUILTIN_PHADDBD): Ditto. 12621 (IX86_BUILTIN_PHADDBQ): Ditto. 12622 (IX86_BUILTIN_PHADDWD): Ditto. 12623 (IX86_BUILTIN_PHADDWQ): Ditto. 12624 (IX86_BUILTIN_PHADDDQ): Ditto. 12625 (IX86_BUILTIN_PHADDUBW): Ditto. 12626 (IX86_BUILTIN_PHADDUBD): Ditto. 12627 (IX86_BUILTIN_PHADDUBQ): Ditto. 12628 (IX86_BUILTIN_PHADDUWD): Ditto. 12629 (IX86_BUILTIN_PHADDUWQ): Ditto. 12630 (IX86_BUILTIN_PHADDUDQ): Ditto. 12631 (IX86_BUILTIN_PHSUBBW): Ditto. 12632 (IX86_BUILTIN_PHSUBWD): Ditto. 12633 (IX86_BUILTIN_PHSUBDQ): Ditto. 12634 (IX86_BUILTIN_PROTB): Ditto. 12635 (IX86_BUILTIN_PROTW): Ditto. 12636 (IX86_BUILTIN_PROTD): Ditto. 12637 (IX86_BUILTIN_PROTQ): Ditto. 12638 (IX86_BUILTIN_PROTB_IMM): Ditto. 12639 (IX86_BUILTIN_PROTW_IMM): Ditto. 12640 (IX86_BUILTIN_PROTD_IMM): Ditto. 12641 (IX86_BUILTIN_PROTQ_IMM): Ditto. 12642 (IX86_BUILTIN_PSHLB): Ditto. 12643 (IX86_BUILTIN_PSHLW): Ditto. 12644 (IX86_BUILTIN_PSHLD): Ditto. 12645 (IX86_BUILTIN_PSHLQ): Ditto. 12646 (IX86_BUILTIN_PSHAB): Ditto. 12647 (IX86_BUILTIN_PSHAW): Ditto. 12648 (IX86_BUILTIN_PSHAD): Ditto. 12649 (IX86_BUILTIN_PSHAQ): Ditto. 12650 (IX86_BUILTIN_FRCZSS): Ditto. 12651 (IX86_BUILTIN_FRCZSD): Ditto. 12652 (IX86_BUILTIN_FRCZPS): Ditto. 12653 (IX86_BUILTIN_FRCZPD): Ditto. 12654 (IX86_BUILTIN_CVTPH2PS): Ditto. 12655 (IX86_BUILTIN_CVTPS2PH): Ditto. 12656 (IX86_BUILTIN_COMEQSS): Ditto. 12657 (IX86_BUILTIN_COMNESS): Ditto. 12658 (IX86_BUILTIN_COMLTSS): Ditto. 12659 (IX86_BUILTIN_COMLESS): Ditto. 12660 (IX86_BUILTIN_COMGTSS): Ditto. 12661 (IX86_BUILTIN_COMGESS): Ditto. 12662 (IX86_BUILTIN_COMUEQSS): Ditto. 12663 (IX86_BUILTIN_COMUNESS): Ditto. 12664 (IX86_BUILTIN_COMULTSS): Ditto. 12665 (IX86_BUILTIN_COMULESS): Ditto. 12666 (IX86_BUILTIN_COMUGTSS): Ditto. 12667 (IX86_BUILTIN_COMUGESS): Ditto. 12668 (IX86_BUILTIN_COMORDSS): Ditto. 12669 (IX86_BUILTIN_COMUNORDSS): Ditto. 12670 (IX86_BUILTIN_COMFALSESS): Ditto. 12671 (IX86_BUILTIN_COMTRUESS): Ditto. 12672 (IX86_BUILTIN_COMEQSD): Ditto. 12673 (IX86_BUILTIN_COMNESD): Ditto. 12674 (IX86_BUILTIN_COMLTSD): Ditto. 12675 (IX86_BUILTIN_COMLESD): Ditto. 12676 (IX86_BUILTIN_COMGTSD): Ditto. 12677 (IX86_BUILTIN_COMGESD): Ditto. 12678 (IX86_BUILTIN_COMUEQSD): Ditto. 12679 (IX86_BUILTIN_COMUNESD): Ditto. 12680 (IX86_BUILTIN_COMULTSD): Ditto. 12681 (IX86_BUILTIN_COMULESD): Ditto. 12682 (IX86_BUILTIN_COMUGTSD): Ditto. 12683 (IX86_BUILTIN_COMUGESD): Ditto. 12684 (IX86_BUILTIN_COMORDSD): Ditto. 12685 (IX86_BUILTIN_COMUNORDSD): Ditto. 12686 (IX86_BUILTIN_COMFALSESD): Ditto. 12687 (IX86_BUILTIN_COMTRUESD): Ditto. 12688 (IX86_BUILTIN_COMEQPS): Ditto. 12689 (IX86_BUILTIN_COMNEPS): Ditto. 12690 (IX86_BUILTIN_COMLTPS): Ditto. 12691 (IX86_BUILTIN_COMLEPS): Ditto. 12692 (IX86_BUILTIN_COMGTPS): Ditto. 12693 (IX86_BUILTIN_COMGEPS): Ditto. 12694 (IX86_BUILTIN_COMUEQPS): Ditto. 12695 (IX86_BUILTIN_COMUNEPS): Ditto. 12696 (IX86_BUILTIN_COMULTPS): Ditto. 12697 (IX86_BUILTIN_COMULEPS): Ditto. 12698 (IX86_BUILTIN_COMUGTPS): Ditto. 12699 (IX86_BUILTIN_COMUGEPS): Ditto. 12700 (IX86_BUILTIN_COMORDPS): Ditto. 12701 (IX86_BUILTIN_COMUNORDPS): Ditto. 12702 (IX86_BUILTIN_COMFALSEPS): Ditto. 12703 (IX86_BUILTIN_COMTRUEPS): Ditto. 12704 (IX86_BUILTIN_COMEQPD): Ditto. 12705 (IX86_BUILTIN_COMNEPD): Ditto. 12706 (IX86_BUILTIN_COMLTPD): Ditto. 12707 (IX86_BUILTIN_COMLEPD): Ditto. 12708 (IX86_BUILTIN_COMGTPD): Ditto. 12709 (IX86_BUILTIN_COMGEPD): Ditto. 12710 (IX86_BUILTIN_COMUEQPD): Ditto. 12711 (IX86_BUILTIN_COMUNEPD): Ditto. 12712 (IX86_BUILTIN_COMULTPD): Ditto. 12713 (IX86_BUILTIN_COMULEPD): Ditto. 12714 (IX86_BUILTIN_COMUGTPD): Ditto. 12715 (IX86_BUILTIN_COMUGEPD): Ditto. 12716 (IX86_BUILTIN_COMORDPD): Ditto. 12717 (IX86_BUILTIN_COMUNORDPD): Ditto. 12718 (IX86_BUILTIN_COMFALSEPD): Ditto. 12719 (IX86_BUILTIN_COMTRUEPD): Ditto. 12720 (IX86_BUILTIN_PCOMEQUB): Ditto. 12721 (IX86_BUILTIN_PCOMNEUB): Ditto. 12722 (IX86_BUILTIN_PCOMLTUB): Ditto. 12723 (IX86_BUILTIN_PCOMLEUB): Ditto. 12724 (IX86_BUILTIN_PCOMGTUB): Ditto. 12725 (IX86_BUILTIN_PCOMGEUB): Ditto. 12726 (IX86_BUILTIN_PCOMFALSEUB): Ditto. 12727 (IX86_BUILTIN_PCOMTRUEUB): Ditto. 12728 (IX86_BUILTIN_PCOMEQUW): Ditto. 12729 (IX86_BUILTIN_PCOMNEUW): Ditto. 12730 (IX86_BUILTIN_PCOMLTUW): Ditto. 12731 (IX86_BUILTIN_PCOMLEUW): Ditto. 12732 (IX86_BUILTIN_PCOMGTUW): Ditto. 12733 (IX86_BUILTIN_PCOMGEUW): Ditto. 12734 (IX86_BUILTIN_PCOMFALSEUW): Ditto. 12735 (IX86_BUILTIN_PCOMTRUEUW): Ditto. 12736 (IX86_BUILTIN_PCOMEQUD): Ditto. 12737 (IX86_BUILTIN_PCOMNEUD): Ditto. 12738 (IX86_BUILTIN_PCOMLTUD): Ditto. 12739 (IX86_BUILTIN_PCOMLEUD): Ditto. 12740 (IX86_BUILTIN_PCOMGTUD): Ditto. 12741 (IX86_BUILTIN_PCOMGEUD): Ditto. 12742 (IX86_BUILTIN_PCOMFALSEUD): Ditto. 12743 (IX86_BUILTIN_PCOMTRUEUD): Ditto. 12744 (IX86_BUILTIN_PCOMEQUQ): Ditto. 12745 (IX86_BUILTIN_PCOMNEUQ): Ditto. 12746 (IX86_BUILTIN_PCOMLTUQ): Ditto. 12747 (IX86_BUILTIN_PCOMLEUQ): Ditto. 12748 (IX86_BUILTIN_PCOMGTUQ): Ditto. 12749 (IX86_BUILTIN_PCOMGEUQ): Ditto. 12750 (IX86_BUILTIN_PCOMFALSEUQ): Ditto. 12751 (IX86_BUILTIN_PCOMTRUEUQ): Ditto. 12752 (IX86_BUILTIN_PCOMEQB): Ditto. 12753 (IX86_BUILTIN_PCOMNEB): Ditto. 12754 (IX86_BUILTIN_PCOMLTB): Ditto. 12755 (IX86_BUILTIN_PCOMLEB): Ditto. 12756 (IX86_BUILTIN_PCOMGTB): Ditto. 12757 (IX86_BUILTIN_PCOMGEB): Ditto. 12758 (IX86_BUILTIN_PCOMFALSEB): Ditto. 12759 (IX86_BUILTIN_PCOMTRUEB): Ditto. 12760 (IX86_BUILTIN_PCOMEQW): Ditto. 12761 (IX86_BUILTIN_PCOMNEW): Ditto. 12762 (IX86_BUILTIN_PCOMLTW): Ditto. 12763 (IX86_BUILTIN_PCOMLEW): Ditto. 12764 (IX86_BUILTIN_PCOMGTW): Ditto. 12765 (IX86_BUILTIN_PCOMGEW): Ditto. 12766 (IX86_BUILTIN_PCOMFALSEW): Ditto. 12767 (IX86_BUILTIN_PCOMTRUEW): Ditto. 12768 (IX86_BUILTIN_PCOMEQD): Ditto. 12769 (IX86_BUILTIN_PCOMNED): Ditto. 12770 (IX86_BUILTIN_PCOMLTD): Ditto. 12771 (IX86_BUILTIN_PCOMLED): Ditto. 12772 (IX86_BUILTIN_PCOMGTD): Ditto. 12773 (IX86_BUILTIN_PCOMGED): Ditto. 12774 (IX86_BUILTIN_PCOMFALSED): Ditto. 12775 (IX86_BUILTIN_PCOMTRUED): Ditto. 12776 (IX86_BUILTIN_PCOMEQQ): Ditto. 12777 (IX86_BUILTIN_PCOMNEQ): Ditto. 12778 (IX86_BUILTIN_PCOMLTQ): Ditto. 12779 (IX86_BUILTIN_PCOMLEQ): Ditto. 12780 (IX86_BUILTIN_PCOMGTQ): Ditto. 12781 (IX86_BUILTIN_PCOMGEQ): Ditto. 12782 (IX86_BUILTIN_PCOMFALSEQ): Ditto. 12783 (IX86_BUILTIN_PCOMTRUEQ): Ditto. 12784 (enum multi_arg_type): New enum for describing the various SSE5 12785 intrinsic argument types. 12786 (bdesc_multi_arg): New table for SSE5 intrinsics. 12787 (ix86_init_mmx_sse_builtins): Add SSE5 intrinsic support. 12788 (ix86_expand_multi_arg_builtin): New function for creating SSE5 12789 intrinsics. 12790 (ix86_expand_builtin): Add SSE5 intrinsic support. 12791 (ix86_sse5_valid_op_p): New function to validate SSE5 3 and 4 12792 operand instructions. 12793 (ix86_expand_sse5_multiple_memory): New function to split the 12794 second memory reference from SSE5 instructions. 12795 (type_has_variadic_args_p): Delete in favor of stdarg_p. 12796 (ix86_return_pops_args): Use stdarg_p to determine if the function 12797 has variable arguments. 12798 (ix86_setup_incoming_varargs): Ditto. 12799 (x86_this_parameter): Ditto. 12800 12801 * config/i386/i386-protos.h (ix86_expand_sse5_unpack): Add 12802 declaration. 12803 (ix86_expand_sse5_pack): Ditto. 12804 (ix86_sse5_valid_op_p): Ditto. 12805 (ix86_expand_sse5_multiple_memory): Ditto. 12806 12807 * config/i386/i386.md (UNSPEC_SSE5_INTRINSIC): Add new UNSPEC 12808 constant for SSE5 support. 12809 (UNSPEC_SSE5_UNSIGNED_CMP): Ditto. 12810 (UNSPEC_SSE5_TRUEFALSE): Ditto. 12811 (UNSPEC_SSE5_PERMUTE): Ditto. 12812 (UNSPEC_SSE5_ASHIFT): Ditto. 12813 (UNSPEC_SSE5_LSHIFT): Ditto. 12814 (UNSPEC_FRCZ): Ditto. 12815 (UNSPEC_CVTPH2PS): Ditto. 12816 (UNSPEC_CVTPS2PH): Ditto. 12817 (PCOM_FALSE): Add new constant for true/false SSE5 comparisons. 12818 (PCOM_TRUE): Ditto. 12819 (COM_FALSE_S): Ditto. 12820 (COM_FALSE_P): Ditto. 12821 (COM_TRUE_S): Ditto. 12822 (COM_TRUE_P): Ditto. 12823 (type attribute): Add ssemuladd, sseiadd1, ssecvt1, sse4arg types. 12824 (unit attribute): Add support for ssemuladd, ssecvt1, sseiadd1 sse4arg 12825 types. 12826 (memory attribute): Ditto. 12827 (sse4_1_round<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. 12828 Use SSE4_1_ROUND_* constants instead of hard coded numbers. 12829 (rint<mode>2): Use TARGET_ROUND instead of TARGET_SSE4_1. 12830 (floor<mode>2): Ditto. 12831 (ceil<mode>2): Ditto. 12832 (btrunc<mode>2): Ditto. 12833 (nearbyintdf2): Ditto. 12834 (nearbyintsf2): Ditto. 12835 (sse_setccsf): Disable if SSE5. 12836 (sse_setccdf): Ditto. 12837 (sse5_setcc<mode>): New support for SSE5 conditional move. 12838 (sse5_pcmov_<mode>): Ditto. 12839 12840 * config/i386/sse.md (SSEMODE1248): New mode iterator for SSE5. 12841 (SSEMODEF4): Ditto. 12842 (SSEMODEF2P): Ditto. 12843 (ssemodesuffixf4): New mode attribute for SSE5. 12844 (ssemodesuffixf2s): Ditto. 12845 (ssemodesuffixf2c): Ditto. 12846 (sserotatemax): Ditto. 12847 (ssescalarmode): Ditto. 12848 (sse_maskcmpv4sf3): Disable if SSE5. 12849 (sse_maskcmpv2df3): Ditto. 12850 (sse_vmmaskcmpv4sf3): Ditto. 12851 (sse5_fmadd<mode>4): Add SSE5 floating point multiply/add instructions. 12852 (sse5_vmfmadd<mode>4): Ditto. 12853 (sse5_fmsub<mode>4): Ditto. 12854 (sse5_vmfmsub<mode>4): Ditto. 12855 (sse5_fnmadd<mode>4): Ditto. 12856 (sse5_vmfnmadd<mode>4): Ditto. 12857 (sse5_fnmsub<mode>4): Ditto. 12858 (sse5_vmfnmsub<mode>4): Ditto. 12859 (sse5i_fmadd<mode>4): Ditto. 12860 (sse5i_fmsub<mode>4): Ditto. 12861 (sse5i_fnmadd<mode>4): Ditto. 12862 (sse5i_fnmsub<mode>4): Ditto. 12863 (sse5i_vmfmadd<mode>4): Ditto. 12864 (sse5i_vmfmsub<mode>4): Ditto. 12865 (sse5i_vmfnmadd<mode>4): Ditto. 12866 (sse5i_vmfnmsub<mode>4): Ditto. 12867 (mulv16qi3): Add SSE5 support. 12868 (mulv4si3): Ditto. 12869 (sse5_mulv4si3): New insn for 32-bit multiply support on SSE5. 12870 (sse2_mulv4si3): Disable if SSE5. 12871 (sse4_1_roundpd): Use TARGET_ROUND instead of TARGET_SSE4_1. 12872 (sse4_1_roundps): Ditto. 12873 (sse4_1_roundsd): Ditto. 12874 (sse4_1_roundss): Ditto. 12875 (sse_maskcmpv4sf3): Disable if SSE5 so the SSE5 instruction will 12876 be generated. 12877 (sse_maskcmpsf3): Ditto. 12878 (sse_vmmaskcmpv4sf3): Ditto. 12879 (sse2_maskcmpv2df3): Ditto. 12880 (sse2_maskcmpdf3): Ditto. 12881 (sse2_vmmaskcmpv2df3): Ditto. 12882 (sse2_eq<mode>3): Ditto. 12883 (sse2_gt<mode>3): Ditto. 12884 (sse5_pcmov_<mode>): Add SSE5 support. 12885 (vec_unpacku_hi_v16qi): Ditto. 12886 (vec_unpacks_hi_v16qi): Ditto. 12887 (vec_unpacku_lo_v16qi): Ditto. 12888 (vec_unpacks_lo_v16qi): Ditto. 12889 (vec_unpacku_hi_v8hi): Ditto. 12890 (vec_unpacks_hi_v8hi): Ditto. 12891 (vec_unpacku_lo_v8hi): Ditto. 12892 (vec_unpacks_lo_v8hi): Ditto. 12893 (vec_unpacku_hi_v4si): Ditto. 12894 (vec_unpacks_hi_v4si): Ditto. 12895 (vec_unpacku_lo_v4si): Ditto. 12896 (vec_unpacks_lo_v4si): Ditto. 12897 (sse5_pmacsww): New SSE5 intrinsic insn. 12898 (sse5_pmacssww): Ditto. 12899 (sse5_pmacsdd): Ditto. 12900 (sse5_pmacssdd): Ditto. 12901 (sse5_pmacssdql): Ditto. 12902 (sse5_pmacssdqh): Ditto. 12903 (sse5_pmacsdqh): Ditto. 12904 (sse5_pmacsswd): Ditto. 12905 (sse5_pmacswd): Ditto. 12906 (sse5_pmadcsswd): Ditto. 12907 (sse5_pmadcswd): Ditto. 12908 (sse5_pcmov_<move>): Conditional move support on SSE5. 12909 (sse5_phaddbw): New SSE5 intrinsic insn. 12910 (sse5_phaddbd): Ditto. 12911 (sse5_phaddbq): Ditto. 12912 (sse5_phaddwd): Ditto. 12913 (sse5_phaddwq): Ditto. 12914 (sse5_phadddq): Ditto. 12915 (sse5_phaddubw): Ditto. 12916 (sse5_phaddubd): Ditto. 12917 (sse5_phaddubq): Ditto. 12918 (sse5_phadduwd): Ditto. 12919 (sse5_phadduwq): Ditto. 12920 (sse5_phaddudq): Ditto. 12921 (sse5_phsubbw): Ditto. 12922 (sse5_phsubwd): Ditto. 12923 (sse5_phsubdq): Ditto. 12924 (sse5_pperm): Ditto. 12925 (sse5_pperm_sign_v16qi_v8hi): New insns for pack/unpack with SSE5. 12926 (sse5_pperm_zero_v16qi_v8hi): Ditto. 12927 (sse5_pperm_sign_v8hi_v4si): Ditto. 12928 (sse5_pperm_zero_v8hi_v4si): Ditto. 12929 (sse5_pperm_sign_v4si_v2di): Ditto. 12930 (sse5_pperm_sign_v4si_v2di): Ditto. 12931 (sse5_pperm_pack_v2di_v4si): Ditto. 12932 (sse5_pperm_pack_v4si_v8hi): Ditto. 12933 (sse5_pperm_pack_v8hi_v16qi): Ditto. 12934 (sse5_perm<mode>): New SSE5 intrinsic insn. 12935 (rotl<mode>3): Ditto. 12936 (sse5_rotl<mode>3): Ditto. 12937 (sse5_ashl<mode>3): Ditto. 12938 (sse5_lshl<mode>3): Ditto. 12939 (sse5_frcz<mode>2): Ditto. 12940 (sse5s_frcz<mode>2): Ditto. 12941 (sse5_cvtph2ps): Ditto. 12942 (sse5_cvtps2ph): Ditto. 12943 (sse5_vmmaskcmp<mode>3): Ditto. 12944 (sse5_com_tf<mode>3): Ditto. 12945 (sse5_maskcmp<mode>3): Ditto. 12946 (sse5_maskcmp_uns<mode>3): Ditto. 12947 (sse5_maskcmp_uns2<mode>3): Ditto. 12948 (sse5_pcom_tf<mode>3): Ditto. 12949 12950 * config/i386/predicates.md (sse5_comparison_float_operator): 12951 New predicate to match the comparison operators supported by 12952 the SSE5 com instruction. 12953 (ix86_comparison_int_operator): New predicate to match just the 12954 signed int comparisons. 12955 (ix86_comparison_uns_operator): New predicate to match just the 12956 unsigned int comparisons. 12957 12958 * doc/invoke.texi (-msse5): Add documentation. 12959 (-mfused-madd): Ditto. 12960 12961 * doc/extend.texi (x86 intrinsics): Document new SSE5 intrinsics. 12962 12963 * config.gcc (i[34567]86-*-*): Include bmmintrin.h and 12964 mmintrin-common.h. 12965 (x86_64-*-*): Ditto. 12966 12967 * config/i386/cpuid.h (bit_SSE5): Define SSE5 bit. 12968 12969 * config/i386/bmmintrin.h: New file, provide common x86 compiler 12970 intrinisics for SSE5. 12971 12972 * config/i386/smmintrin.h: Move instructions shared with SSE5 to 12973 mmintrin-common.h. 12974 12975 * config/i386/mmintrin-common.h: New file, to contain common 12976 instructions between SSE4.1 and SSE5. 12977 12978 * config/i386/netware.c (gen_stdcall_or_fastcall_decoration): Use 12979 FOREACH_FUNCTION_ARGS to iterate over the argument list. 12980 (gen_regparm_prefix): Ditto. 12981 12982 * config/i386/winnt.c (gen_stdcall_or_fastcall_suffix): Use 12983 FOREACH_FUNCTION_ARGS to iterate over the argument list. Use 12984 prototype_p to determine if a function is prototyped. 12985 129862009-08-25 Ville Voutilainen <ville.voutilainen@gmail.com> 12987 12988 * c-common.c (c_common_reswords) add the alignof keyword, 12989 with same RID as __alignof and __alignof__ 12990 129912009-08-25 Anatoly Sokolov <aesok@post.ru> 12992 12993 * hooks.h (hook_bool_const_int_const_int_true): Declare. 12994 * hooks.c (hook_bool_const_int_const_int_true): New function. 12995 * target.h (struct gcc_target): Add can_eliminate field. 12996 * target-def.h (TARGET_CAN_ELIMINATE): Define. 12997 (TARGET_INITIALIZER): Use TARGET_CAN_ELIMINATE. 12998 * ira.c (setup_eliminable_regset): Use can_eliminate target hook. 12999 * reload1.c (update_eliminables, init_elim_table): (Ditto.). 13000 (elim_table): Revise comment. 13001 * system.h (CAN_ELIMINATE): Poison. 13002 * defaults.h (CAN_ELIMINATE): Remove. 13003 * doc/tm.texi (CAN_ELIMINATE): Revise documentation. 13004 13005 * config/alpha/vms.h (CAN_ELIMINATE): Remove macro. 13006 * config/alpha/alpha.c (TARGET_CAN_ELIMINATE) [TARGET_ABI_OPEN_VMS]: 13007 Define macro. 13008 (alpha_vms_can_eliminate): Declare as static, change return type to 13009 bool. 13010 * config/alpha/alpha-protos.h (alpha_vms_can_eliminate): Remove. 13011 13012 * config/arm/arm.h (CAN_ELIMINATE): Remove macro. 13013 * config/arm/arm.c (TARGET_CAN_ELIMINATE): Define macro. 13014 (arm_can_eliminate): New function. 13015 13016 * config/avr/avr.h (CAN_ELIMINATE): Remove macro. 13017 * config/avr/avr.c (TARGET_CAN_ELIMINATE): Define macro. 13018 (avr_can_eliminate): Declare as static. 13019 * config/avr/avr-protos.h (avr_can_eliminate): Remove. 13020 13021 * config/bfin/bfin.h (CAN_ELIMINATE): Remove macro. 13022 * config/bfin/bfin.c (TARGET_CAN_ELIMINATE): Define macro. 13023 (bfin_can_eliminate): New function. 13024 13025 * config/crx/crx.h (CAN_ELIMINATE): Remove macro. 13026 * config/crx/crx.c (TARGET_CAN_ELIMINATE): Define macro. 13027 (crx_can_eliminate): New function. 13028 13029 * config/fr30/fr30.h (CAN_ELIMINATE): Remove macro. 13030 * config/fr30/fr30.c (TARGET_CAN_ELIMINATE): Define macro. 13031 (fr30_can_eliminate): New function. 13032 13033 * config/frv/frv.h (CAN_ELIMINATE): Remove macro. 13034 * config/frv/frv.c (TARGET_CAN_ELIMINATE): Define macro. 13035 (frv_can_eliminate): New function. 13036 13037 * config/h8300/h8300.h (CAN_ELIMINATE): Remove macro. 13038 * config/h8300/h8300.c (TARGET_CAN_ELIMINATE): Define macro. 13039 (h8300_can_eliminate): New function. 13040 13041 * config/i386/i386.h (CAN_ELIMINATE): Remove macro. 13042 * config/i386/i386.c (TARGET_CAN_ELIMINATE): Define macro. 13043 (i386_can_eliminate): Declare as static, change return type to bool. 13044 * config/i386/i386-protos.h (i386_can_eliminate): Remove. 13045 13046 * config/ia64/ia64.h (CAN_ELIMINATE): Remove macro. 13047 * config/ia64/ia64.c (TARGET_CAN_ELIMINATE): Define macro. 13048 (ia64_can_eliminate): New function. 13049 13050 * config/iq2000/iq2000.h (CAN_ELIMINATE): Remove macro. 13051 * config/iq2000/iq2000.c (TARGET_CAN_ELIMINATE): Define macro. 13052 (iq2000_can_eliminate): New function. 13053 13054 * config/m32r/m32r.h (CAN_ELIMINATE): Remove macro. 13055 * config/m32r/m32r.c (TARGET_CAN_ELIMINATE): Define macro. 13056 (m32r_can_eliminate): New function. 13057 13058 * config/m68hc11/m68hc11.h (CAN_ELIMINATE): Remove macro. 13059 * config/m68hc11/m68hc11.c (TARGET_CAN_ELIMINATE): Define macro. 13060 (m68hc11_can_eliminate): New function. 13061 13062 * config/m68k/m68k.h (CAN_ELIMINATE): Remove macro. 13063 * config/m68k/m68k.c (TARGET_CAN_ELIMINATE): Define macro. 13064 (m68k_can_eliminate): New function. 13065 13066 * config/mep/mep.h (CAN_ELIMINATE): Remove macro. 13067 * config/mep/mep.c (TARGET_CAN_ELIMINATE): Define macro. 13068 (mep_can_eliminate): New function. 13069 13070 * config/mips/mips.h (CAN_ELIMINATE): Remove macro. 13071 * config/mips/mips.c (TARGET_CAN_ELIMINATE): Define macro. 13072 (mips_can_eliminate): New function. 13073 13074 * config/rs6000/rs6000.h (CAN_ELIMINATE): Remove macro. 13075 * config/rs6000/rs6000.c (TARGET_CAN_ELIMINATE): Define macro. 13076 (rs6000_can_eliminate): New function. 13077 13078 * config/s390/s390.h (CAN_ELIMINATE): Remove macro. 13079 * config/s390/s390.c (TARGET_CAN_ELIMINATE): Define macro. 13080 (s390_can_eliminate): Declare as static. 13081 * config/s390/s390-protos.h (sparc_can_eliminate): Remove. 13082 13083 * config/score/score.h (CAN_ELIMINATE): Remove macro. 13084 * config/score/score.c (TARGET_CAN_ELIMINATE): Define macro. 13085 (score_can_eliminate): New function. 13086 13087 * config/sparc/sparc.h (CAN_ELIMINATE): Remove macro. 13088 * config/sparc/sparc.c (TARGET_CAN_ELIMINATE): Define macro. 13089 (sparc_can_eliminate): Declare as static. 13090 * config/sparc/sparc-protos.h (sparc_can_eliminate): Remove. 13091 13092 * config/stormy16/stormy16.h (CAN_ELIMINATE): Remove macro. 13093 * config/stormy16/stormy16.c (TARGET_CAN_ELIMINATE): Define macro. 13094 (xstormy16_can_eliminate): New function. 13095 13096 * config/v850/v850.h (CAN_ELIMINATE): Remove macro. 13097 * config/v850/v850.c (TARGET_CAN_ELIMINATE): Define macro. 13098 (v850_can_eliminate): New function. 13099 131002009-08-25 Uros Bizjak <ubizjak@gmail.com> 13101 13102 * config/alpha/alpha.md (*cmpdf_ieee_ext[123]): Remove. 13103 (*cmpdf_internal): Enable for all ALPHA_FPTM levels. 13104 (*movdfcc_ext[1234]): Disable for IEEE mode. 13105 131062009-08-25 Eric Botcazou <ebotcazou@adacore.com> 13107 13108 * gimplify.c (prepare_gimple_addressable): New static function. 13109 (gimplify_modify_expr_to_memcpy): Invoke it on the RHS before marking 13110 it addressable. 13111 (gimplify_addr_expr): Invoke it similarly on the operand instead of 13112 manually fiddling with it. 13113 131142009-08-25 Michael Matz <matz@suse.de> 13115 13116 * expr.h (jumpifnot_1, jumpif_1, do_jump_1): Declare. 13117 * dojump.c (do_jump_by_parts_greater): Take two operands instead of 13118 full expression. 13119 (do_jump_by_parts_equality, do_compare_and_jump): Ditto. 13120 (jumpifnot_1, jumpif_1): New wrappers for do_jump_1. 13121 (do_jump): Split out code for simple binary comparisons into ... 13122 (do_jump_1): ... this, taking the individual operands and code. 13123 Change callers to helper function above accordingly. 13124 * expr.c (expand_expr_real_1): Use jumpifnot_1 for simple binary 13125 comparisons. 13126 131272009-08-25 Michael Matz <matz@suse.de> 13128 13129 * expr.h (struct separate_ops, sepops): New type for passing 13130 around an exploded simple expression. 13131 * optabs.c (expand_widen_pattern_expr, expand_vec_shift_expr): 13132 Use this structure instead of expression tree. 13133 (get_vcond_icode, expand_vec_cond_expr_p): Don't take whole 13134 expression, only its type. 13135 (expand_vec_cond_expr): Take type and individual operands instead 13136 of full expression. 13137 * optabs.h (expand_widen_pattern_expr, expand_vec_cond_expr, 13138 expand_vec_shift_expr): Change prototype accordingly. 13139 * tree-vect-stmts.c (vectorizable_condition): Change call of 13140 expand_vec_cond_expr_p to pass only type. 13141 * expr.c (do_store_flags): Change prototype and implementation 13142 to take an exploded expression. 13143 (expand_expr_real_1): New local ops initialized with details 13144 of the full expression. Use it instead of full 13145 expression in calls to do_store_flags, expand_vec_cond_expr, 13146 expand_widen_pattern_expr and expand_vec_shift_expr. 13147 131482009-08-25 Michael Matz <matz@suse.de> 13149 13150 * expr.c (expand_expr_real_1): New local treeop0, treeop1, 13151 treeop2 initialized with first three operands of the full expression. 13152 Substitute all TREE_OPERAND (exp, [012]) calls with them. 13153 131542009-08-25 Kai Tietz <kai.tietz@onevision.com> 13155 13156 * gcc/gthr-win32.h (__UNUSED_PARAM): Define, if not already present. 13157 (__gthread_objc_condition_allocate): Mark arguments as unused. 13158 (__gthread_objc_condition_deallocate): Likewise. 13159 (__gthread_objc_condition_wait): Likewise. 13160 (__gthread_objc_condition_broadcast): Likewise. 13161 (__gthread_objc_condition_signal): Likewise. 13162 (__gthread_objc_thread_detach): Cast via INT_PTR to pointer. 13163 (__gthread_objc_thread_id): Likewise. 13164 131652009-08-25 Janus Weil <janus@gcc.gnu.org> 13166 13167 PR middle-end/41149 13168 * tree-pretty-print.c (print_call_name): Print the correct call name 13169 for procedure pointer components. 13170 131712009-08-24 Steve Ellcey <sje@cup.hp.com> 13172 13173 * config/ia64/ia64.c (ia64_promote_function_mode): Call 13174 default_promote_function_mode when not VMS. 13175 131762009-08-24 Olivier Hainque <hainque@adacore.com> 13177 13178 * convert.c (convert_to_integer): Don't assume an input pointer is 13179 POINTER_SIZE wide. Fetch from the type instead. 13180 131812009-08-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 13182 13183 * configure.ac (AC_PREREQ): Bump to 2.64. 13184 131852009-08-24 Rafael Avila de Espindola <espindola@google.com> 13186 13187 * gcc.c (standard_exec_prefix_1,standard_exec_prefix_2): Remove. 13188 (process_command): Don't search standard_exec_prefix_1 and 13189 standard_exec_prefix_2. 13190 131912009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13192 13193 * config/arm/arm.c (output_return_instruction): Handle for 13194 unified syntax. 13195 131962009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13197 13198 * config/arm/arm.c (arm_select_cc_mode): Handle subreg. 13199 132002009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13201 13202 * config/arm/vfp.md (*arm_movdi_vfp): Mark as predicable. 13203 (*arm_movdf_vfp): Likewise. 13204 132052009-08-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13206 13207 * config/arm/neon.md (vashl<mode>3): Rename from ashl<mode>3. 13208 (vashr<mode>3): Rename from ashr<mode>3. 13209 (vlshr<mode>3): Rename from lshr<mode>3. 13210 132112009-08-24 Kai Tietz <kai.tietz@onevision.com> 13212 13213 PR/40786 13214 * c-format.c (format_wanted_type): Add new member scalar_identity_flag. 13215 (check_format_info_main): Use scalar_identify_flag. 13216 (check_format_types): Check for scalar size identity if 13217 scalar_identify_flag is set. 13218 (printf_length_specs): Extend by new field. 13219 (asm_fprintf_length_specs): Likewise. 13220 (gcc_diag_length_specs): Likewise. 13221 (scanf_length_specs): Likewise. 13222 (strfmon_length_specs): Likewise. 13223 (gcc_gfc_length_specs): Likewise. 13224 * config/i386/msformat-c.c (ms_printf_length_specs): Likewise. 13225 (ms_printf_flag_specs): Likewise. 13226 * c-format.h (format_length_info): Add new member scalar_identity_flag. 13227 132282009-08-23 Uros Bizjak <ubizjak@gmail.com> 13229 13230 PR target/40718 13231 * config/i386/i386.c (*call_pop_1): Disable for sibling calls. 13232 (*call_value_pop_1): Ditto. 13233 (*sibcall_pop_1): New insn pattern. 13234 (*sibcall_value_pop_1): Ditto. 13235 132362009-08-23 Alan Modra <amodra@bigpond.net.au> 13237 13238 PR target/41081 13239 * config/rs6000/rs6000.md (rotlsi3_64, ashlsi3_64, lshrsi3_64, 13240 ashrsi3_64): New. 13241 132422009-08-23 Alan Modra <amodra@bigpond.net.au> 13243 13244 PR target/41081 13245 * fwprop.c (try_fwprop_subst): Allow multiple sets. 13246 (get_reg_use_in): New function. 13247 (forward_propagate_subreg): Propagate through subreg of zero_extend 13248 or sign_extend. 13249 132502009-08-22 Kaz Kojima <kkojima@gcc.gnu.org> 13251 13252 * config/sh/t-sh (TARGET_LIBGCC2_CFLAGS): Define. 13253 * config/sh/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -mieee. 13254 132552009-08-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 13256 13257 * configure.ac: Remove --with-datarootdir, --with-docdir, 13258 --with-htmldir switches. No need to call AC_SUBST for 13259 datarootdir, docdir, htmldir any more. 13260 * configure: Regenerate. 13261 * doc/install.texi (Configuration): Document --datarootdir, 13262 --docdir, --htmldir, --pdfdir; update documentation for 13263 --infodir, --mandir. 13264 (Prerequisites): Bump Autoconf version to 2.64, Automake to 1.11, 13265 M4 to 1.4.6. 13266 13267 * aclocal.m4: Regenerate. 13268 * config.in: Regenerate. 13269 * configure: Regenerate. 13270 132712009-08-21 Douglas B Rupp <rupp@gnat.com> 13272 Olivier Hainque <hainque@adacore.com> 13273 13274 * config/ia64/ia64.c: Include libfuncs.h. 13275 (TARGET_PROMOTE_FUNCITON_MODE): Define target macro. 13276 (ia64_expand_call): Use reg 25 on VMS. 13277 (ia64_initialize_trampoline): Fix for VMS ABI. 13278 (ia64_function_arg_offset): Always returns 0 when TARGET_ABI_OPEN_VMS. 13279 (ia64_function_arg): Initialize reg 25 on VMS. 13280 Fix OpenVMS ABI issues for varargs. 13281 For OpenVMS, emit the Argument Information register set in the 13282 incoming/sibcall case as well. 13283 (ia64_arg_type): New function. 13284 (ia64_function_arg_advance): Keep track of cum->words. 13285 Fix OpenVMS ABI issues for varargs. 13286 (ia64_function_value): On VMS, promote mode of non-aggregate types. 13287 (ia64_override_options): Set flag_no_common on VMS. 13288 (ia64_init_builtins): Disable FWRITE builtin. 13289 (ia64_asm_output_external): Call DO_CRTL_NAMES. 13290 (ia64_vms_init_libfuncs): Add decc$ routines. 13291 (ia64_vms_valid_pointer_mode): New function. 13292 (ia64_struct_value_rtx): Allways NULL_RTX on VMS. 13293 (ia64_promote_function_mode): New function 13294 * config/ia64/ia64.h (TARGET_ABI_OPEN_VMS): Define as 0 for default. 13295 (LONG_DOUBLE_TYPE_SIZE): Force to 64 on VMS. 13296 (LIBCGC2_LONG_DOUBLE_TYPE_SIZE): Likewise. 13297 (INIT_CUMULATIVE_ARGS): Add atypes for VMS. 13298 (INIT_CUMULATIVE_INCOMING_ARGS): Likewise. 13299 (ASM_OUTPUT_DEF): Use ISDIGIT instead of isdigit. 13300 Suppress trailing '#' if VALUE is numeric. 13301 * config/ia64/vms.h (PROMOTE_FUNCTION_MODE): Remove, code moved to 13302 ia64_promote_function_mode. 13303 (TARGET_VALID_POINTER_MODE): Define. 13304 133052009-08-21 Michael Meissner <meissner@linux.vnet.ibm.com> 13306 13307 PR target/40671 13308 * config/rs6000/rs6000.c (rs6000_override_options): Use 13309 TARGET_64BIT instead of TARGET_POWERPC64 to set the size of pointers. 13310 13311 PR target/41145 13312 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): Fix 13313 reporting of vector + decimal/boolean/complex error. 13314 133152009-08-21 Jakub Jelinek <jakub@redhat.com> 13316 13317 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix type of 13318 __vector double TYPE_DECL. 13319 133202009-08-21 Richard Earnshaw <rearnsha@arm.com> 13321 13322 * arm.h (MACHMODE): New define. Include insn-modes.h if available. 13323 (CUMULATIVE_ARGS): Use MACHMODE for declaration of aapcs_vfp_mode. 13324 * arm.c (aapcs_vfp_is_call_or_return_candidate): Change base_mode 13325 to pointer to enum machine_mode. Update all callers as needed. 13326 133272009-08-21 Uros Bizjak <ubizjak@gmail.com> 13328 13329 * config/alpha/alpha.md (exception_receiver): Emit alternative 13330 GP load sequence if flag_reorder_blocks_and_partition is set. 13331 (*exception_receiver_2): Also enable when 13332 flag_reorder_blocks_and_partition is set. 13333 133342009-08-20 Matt Rice <ratmice@gmail.com> 13335 Diego Novillo <dnovillo@google.com> 13336 13337 * Makefile.in (PLUGIN_HEADERS): Include incpath.h and 13338 tree-ssa-sccvn.h. 13339 133402009-08-20 Richard Guenther <rguenther@suse.de> 13341 13342 * c-objc-common.h (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Do not define. 13343 * c-tree.h (c_dup_lang_specific_decl): Remove. 13344 (struct lang_decl, struct lang_type): Move definitions ... 13345 * c-lang.h: ... here. New file. 13346 * c-decl.c: Include c-lang.h. 13347 (c_dup_lang_specific_decl): Remove. 13348 * c-typeck.c: Include c-lang.h. 13349 * Makefile.in (c-decl.o): Add c-lang.h dependency. 13350 (c-typeck.o): Likewise. 13351 * c-config-lang.in (gtfiles): Add c-lang.h. 13352 * gengtype.c (get_output_file_with_visibility): Handle c-lang.h 13353 like c-tree.h. 13354 133552009-08-20 Uros Bizjak <ubizjak@gmail.com> 13356 13357 * config/alpha/alpha.c (alpha_end_function): Do not clear 13358 crtl->emit structure and free insn locators if cfun->is_thunk is true, 13359 this is now handled in generic code. 13360 133612009-08-20 Andreas Krebbel <krebbel1@de.ibm.com> 13362 13363 * config/s390/s390.c (Z10_PREDICT_DISTANCE): New macro. 13364 (s390_z10_fix_long_loop_prediction): New function. 13365 (s390_z10_optimize_cmp): INSN walk moved to callee - s390_reorg. 13366 (s390_reorg): Walk over the INSNs and invoke 13367 s390_z10_fix_long_loop_prediction and s390_z10_optimize_cmp. 13368 133692009-08-20 Andreas Krebbel <krebbel1@de.ibm.com> 13370 13371 * config/s390/s390.md ("*brx_stage1_<GPR:mode>", "*brxg_64bit", 13372 "*brx_64bit", "*brx_31bit"): New patterns. 13373 * config/s390/s390.c ('E'): New output modifier. 13374 133752009-08-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13376 Richard Earnshaw <richard.earnshaw@arm.com> 13377 13378 * config/arm/arm.c (arm_emit_movpair): Handle CONST_INT. 13379 * config/arm/arm.md (*arm_movtas_ze): New pattern for movt. 13380 133812009-08-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 13382 13383 * pa.md (reload_inhi, reload_outhi, reload_inqi, reload_outqi): New 13384 patterns. 13385 * pa.c (emit_move_sequence): Check if address of operand1 is valid 13386 for mode mode of operand0 when doing secondary reload for SAR. 13387 133882009-08-19 Jakub Jelinek <jakub@redhat.com> 13389 13390 PR middle-end/41123 13391 * expr.c (expand_expr_real_1) <normal_inner_ref>: Handle all kinds 13392 of CONCAT, not just bitpos 0 bitsize size of the whole CONCAT. 13393 133942009-08-19 Jason Merrill <jason@redhat.com> 13395 13396 * doc/invoke.texi (C++ Dialect Options): Note change of minimum 13397 supported template depth in C++0x. 13398 133992009-08-19 Jakub Jelinek <jakub@redhat.com> 13400 13401 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Don't call 13402 free_after_compilation. 13403 * config/score/score7.c (score7_output_mi_thunk): Likewise. 13404 * config/score/score3.c (score3_output_mi_thunk): Likewise. 13405 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. 13406 * config/mips/mips.c (mips_output_mi_thunk): Likewise. 13407 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 13408 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. 13409 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. 13410 134112009-08-19 Ian Lance Taylor <iant@google.com> 13412 13413 * doc/md.texi (Insn Canonicalizations): Correct canonicalization 13414 of (plus (mult (neg B) C) A). 13415 134162009-08-18 Michael Matz <matz@suse.de> 13417 13418 * omp-low.c (optimize_omp_library_calls): Use types_compatible_p 13419 instead of comparing TYPE_MAIN_VARIANT for equality. 13420 * tree-vect-patterns.c (vect_recog_dot_prod_pattern, 13421 vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern): Ditto. 13422 * tree-vect-loop.c (vect_is_simple_reduction): Ditto. 13423 * gimplify.c (goa_lhs_expr_p): Ditto and use 13424 STRIP_USELESS_TYPE_CONVERSION. 13425 134262009-08-18 Michael Matz <matz@suse.de> 13427 13428 * tree-ssa-structalias.c (create_variable_info_for): Also mark 13429 first field in a struct. 13430 (intra_create_variable_infos): Don't deal with flag_argument_noalias. 13431 134322009-08-18 Uros Bizjak <ubizjak@gmail.com> 13433 13434 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Allocate insn 13435 locators before emit_insn is called. Remove assert that 13436 cfun->is_thunk. 13437 (alpha_end_function): Clear crtl->emit structure and free insn 13438 locators if cfun->is_thunk is true. 13439 134402009-08-18 Jason Merrill <jason@redhat.com> 13441 13442 * config/elfos.h (ASM_DECLARE_OBJECT_NAME): Use gnu_unique_object 13443 type if available. 13444 * configure.ac: Test for it. 13445 * configure, config.in: Regenerate. 13446 * doc/install.texi: Document --enable-gnu-unique-object. 13447 134482009-08-18 Richard Guenther <rguenther@suse.de> 13449 13450 PR middle-end/41094 13451 * builtins.c (fold_builtin_pow): Fold pow(pow(x,y),z) to 13452 pow(x,y*z) only if x is nonnegative. 13453 134542009-08-18 Jakub Jelinek <jakub@redhat.com> 13455 13456 * bb-reorder.c (fix_up_fall_thru_edges): Only call invert_jump 13457 on jumps. 13458 13459 PR target/40971 13460 * config/rs6000/rs6000.c (rs6000_legitimize_address): For 13461 [DT][FDI]mode ensure the offset isn't 4/8/12 bytes below 0x8000. 13462 134632009-08-17 DJ Delorie <dj@redhat.com> 13464 13465 * config/m32c/m32c.md (UNS_FSETB, UNS_FREIT): New. 13466 * config/m32c/prologue.md (epilogue_freit): New. 13467 (fset_b): New. 13468 * config/m32c/m32c.c (m32c_function_needs_enter): Add prototype. 13469 (bank_switch_p): Likewise. 13470 (fast_interrupt_p): Likewise. 13471 (interrupt_p): Likewise. 13472 (m32c_conditional_register_usage): Round memregs size up. 13473 (need_to_save): We only need to save $a0 when we use ENTER. 13474 (interrupt_p): Check for fast_interrupt too. 13475 (bank_switch_p): New. 13476 (fast_interrupt_p): New. 13477 (m32c_attribute_table): Add bank_switch and fast_interrupt. 13478 (m32c_emit_prolog): Support bank switching and fast interrupts. 13479 * doc/extend.texi (Function Attributes): Add bank_switch and 13480 fast_interrupt. 13481 134822009-08-17 Douglas B Rupp <rupp@gnat.com> 13483 13484 * config/alpha/alpha.c (vms_valid_pointer_mode): New function. 13485 * config/alpha/vms.h (TARGET_VALID_POINTER_MODE): Define. 13486 134872009-08-16 Douglas B Rupp <rupp@gnat.com> 13488 13489 * doc/invoke.texi (Target options): Add new option list for IA-64/VMS. 13490 (menu): Add IA-64/VMS Options. 13491 (IA-64/VMS Options): Likewise. 13492 134932009-08-16 Richard Sandiford <rdsandiford@googlemail.com> 13494 13495 PR target/38599 13496 * config/mips/mips.md (*lwxs): Use :P for pointer values. 13497 134982009-08-16 Richard Sandiford <rdsandiford@googlemail.com> 13499 13500 * config/mips/mips-protos.h (mips_push_asm_switch): New function. 13501 (mips_pop_asm_switch): Likewise. 13502 * config/mips/mips.c (set_noreorder, set_nomacro, set_noat): Replace 13503 with... 13504 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables. 13505 (mips_push_asm_switch_1, mips_pop_asm_switch_1): New functions. 13506 (mips_push_asm_switch, mips_pop_asm_switch): Likewise. 13507 (mips_print_operand_punctuation): Use them. Check mips_noreorder 13508 instead of set_noreorder. 13509 (mips_output_function_prologue): Use the new functions. 13510 (mips_output_function_epilogue): Likewise. 13511 (mips_need_noat_wrapper_p): New function, split out from... 13512 (mips_final_prescan_insn, mips_final_postscan_insn): ...here. 13513 Use mips_push_asm_switch and mips_pop_asm_switch. 13514 * config/mips/mips.h (FUNCTION_PROFILER): Use mips_push_asm_switch 13515 and mips_pop_asm_switch. 13516 (ASM_OUTPUT_REG_POP): Likewise. 13517 (DBR_OUTPUT_SEQEND): Remove boilerplate comment. 13518 Use mips_pop_asm_switch. 13519 (mips_asm_switch): New structure. 13520 (set_noreorder, set_nomacro): Replace with... 13521 (mips_noreorder, mips_nomacro, mips_noat): ...these new variables. 13522 * config/mips/mips.md (fix_truncdfsi2_macro): Use mips_nomacro 13523 instead of set_nomacro. 13524 (fix_truncsfsi2_macro): Likewise. 13525 (cprestore): Likewise. 13526 (hazard): Use mips_noreorder instead of set_noreorder. 13527 * config/mips/sdemtk.h (FUNCTION_PROFILER): As for mips.h. 13528 135292009-08-16 Uros Bizjak <ubizjak@gmail.com> 13530 13531 * config/alpha/alpha.c (alpha_end_function): Handle NULL_RTX returned 13532 from prev_active_insn. 13533 135342009-08-16 Anatoly Sokolov <aesok@post.ru> 13535 13536 * config/avr/avr.h (AVR_HAVE_8BIT_SP): New macros. 13537 * config/avr/avr.c (avr_override_options): Initialize 13538 avr_current_arch variable. 13539 (avr_cpu_cpp_builtins): Define __AVR_HAVE_8BIT_SP__ or 13540 __AVR_HAVE_16BIT_SP__ according to the device type. 13541 (expand_prologue, output_movhi): Use AVR_HAVE_8BIT_SP instead of 13542 TARGET_TINY_STACK. 13543 (expand_epilogue): Use correct QI mode frame pointer for tiny stack. 13544 Use AVR_HAVE_8BIT_SP instead of TARGET_TINY_STACK. 13545 135462009-08-16 Dodji Seketeli <dodji@redhat.com> 13547 13548 PR debug/37801 13549 * gcc/dwarf2out.c (gen_inlined_subroutine_die): Concentrate on 13550 generating inlined subroutine die only. We shouldn't be 13551 called for anything else. 13552 (gen_block_die): Don't generate inline subroutine debug info for 13553 abstract blocks. 13554 135552009-08-15 Sebastian Pop <sebastian.pop@amd.com> 13556 13557 * graphite-poly.c (print_pbb): Print PBB index. 13558 135592009-08-15 Sebastian Pop <sebastian.pop@amd.com> 13560 13561 PR middle-end/40981 13562 * graphite-interchange.c (ppl_max_for_le): Moved... 13563 * graphite-poly.c (pbb_number_of_iterations): Call ppl_max_for_le. 13564 * graphite-ppl.c (ppl_max_for_le): ... here. Correct the use of 13565 ppl_Pointset_Powerset_C_Polyhedron_maximize. 13566 * graphite-ppl.h (ppl_max_for_le): Declared. 13567 135682009-08-14 Olatunji Ruwase <tjruwase@google.com> 13569 13570 * doc/extend.texi (Symbol-Renaming Pragmas): redefine_extname is 13571 supported on all platforms. 13572 * target.h (struct gcc_target): Remove handle_pragma_redefine_extname. 13573 * c-cppbuiltin.c: Remove use of targetm.handle_pragma_redefine_extname. 13574 * c-pragma.c: Likewise. 13575 * target-def.h (TARGET_INITIALIZER): Remove 13576 TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME. 13577 * config/sol2.h: Remove use of TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME. 13578 135792009-08-14 Douglas B Rupp <rupp@gnat.com> 13580 13581 * config/ia64/fde-vms.c: New file. 13582 * config/ia64/fde-glibc.c (_Unwind_FindTableEntry): Add dummy arg. 13583 * config/ia64/unwind-ia64.c (UNW_ accessors): Move to unwind-ia64.h 13584 (MD_UNW_COMPATIBLE_PERSONALITY_P): Provide default. 13585 (uw_frame_state_for): Only register a personality routine if it is 13586 known to be compatible with our expectations. 13587 (_Unwind_FindEnclosingFunction, uw_frame_state_for): 13588 Declare unw_table_entry stack variable and 13589 mod all calls to _Unwind_FindTableEntry to add arg. 13590 * config/ia64/unwind-ia64.h (UNW_ accessors): Move here. 13591 (_Unwind_FindTableEntry): Add arg to prototype. 13592 135932009-08-14 Eric Botcazou <ebotcazou@adacore.com> 13594 13595 * config/ia64/unwind-ia64.c (struct _Unwind_Context): Add new 13596 field 'signal_pfs_loc'. 13597 (uw_frame_state_for): Remove duplicate code dealing with leaf 13598 procedures without unwind info. 13599 If in the frame after unwinding through a signal handler, restore 13600 the AR.PFS register instead of the CFM if AR.PFS has not been saved. 13601 * config/ia64/linux-unwind.h (ia64_fallback_frame_state): Do not set 13602 'pfs_loc' to the AR.PFS location in the signal context; instead 13603 set 'signal_pfs_loc'. 13604 Manually generate the unwind info for the AR.PFS register. 13605 (ABI_MARKER_OLD_LINUX_SIGTRAMP, ABI_MARKER_OLD_LINUX_INTERRUPT, 13606 ABI_MARKER_LINUX_SIGTRAMP, ABI_MARKER_LINUX_INTERRUPT): Define. 13607 (ia64_handle_unwabi): Test 'fs->unwabi' against them. 13608 Do not set 'pfs_loc' to the AR.PFS location in the signal context; 13609 instead set 'signal_pfs_loc'. 13610 Remove code preventing the AR.PFS register from being restored 13611 from the signal context. 13612 136132009-08-14 Douglas B Rupp <rupp@gnat.com> 13614 Tristan Gingold <gingold@adacore.com> 13615 13616 * config.gcc (ia64-hp-*vms*): Insert ia64/t-ia64 in tmake_file. 13617 * config/ia64/t-vms: New file. 13618 * config/ia64/vms64.h: New file. 13619 * config/ia64/vms.h: New file. 13620 * config/ia64/vms-crtinit.asm: New file. 13621 * config/ia64/vms_symvec_libgcc_s.opt: New file. 13622 * config/ia64/vms-unwind.h: New file. 13623 136242009-08-14 Uros Bizjak <ubizjak@gmail.com> 13625 13626 * config/alpha/alpha.c (alpha_emit_conditional_move): Handle 13627 TFmode compares. 13628 136292009-08-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 13630 13631 PR middle-end/30789 13632 * builtins.c (do_mpc_arg2): Make extern, define for any MPC version. 13633 Move declaration... 13634 * real.h (do_mpc_arg2): ... here. 13635 * fold-const.c (const_binop): Use MPC for complex MULT_EXPR 13636 and RDIV_EXPR. 13637 136382009-08-14 Rafael Avila de Espindola <espindola@google.com> 13639 13640 * final.c (add_debug_prefix_map): Don't use GC memory for 13641 old_prefix and new_prefix. 13642 136432009-08-14 Richard Guenther <rguenther@suse.de> 13644 13645 * ipa-prop.c (compute_complex_pass_through): If we cannot 13646 compute a non-varying offset for IPA_JF_ANCESTOR punt. 13647 136482009-08-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 13649 13650 * c-lex.c (c_lex_with_flags): Increase size of local variable 13651 to avoid memory clobber. 13652 136532009-08-14 Paolo Bonzini <bonzini@gnu.org> 13654 13655 PR target/40934 13656 * config/i386/i386.c (ix86_fp_comparison_strategy): 13657 Only enable/disable sahf at function granularity. 13658 136592009-08-14 Hans-Peter Nilsson <hp@axis.com> 13660 13661 PR rtl-optimization/41064 13662 * reload1.c (reload_as_needed): Don't call extract_insn 13663 for known invalid replacements after calling 13664 validate_replace_rtx_group and verify_changes. 13665 136662009-08-14 Uros Bizjak <ubizjak@gmail.com> 13667 13668 PR target/41019 13669 * config/i386/sse.md (SSEMODE124C8): New mode iterator. 13670 (vcond<SSEMODEF2P:mode>): Assert that operation is supported by 13671 ix86_expand_fp_vcond. 13672 (vcond<SSEMODE124C8:mode>): Use SSEMODE124C8 instead of SSEMODE124. 13673 Assert that operation is supported by ix86_expand_int_vcond. 13674 (vcondu<SSEMODE124C8:mode>): Ditto. 13675 136762009-08-13 DJ Delorie <dj@redhat.com> 13677 13678 * config/i386/djgpp-stdint.h: New. 13679 * config.gcc (djgpp): Use it. 13680 136812009-08-13 Kaz Kojima <kkojima@gcc.gnu.org> 13682 13683 * config/sh/sh.c (sh_override_options): When flag_exceptions or 13684 flag_unwind_tables is on, turn flag_reorder_blocks_and_partition off. 13685 136862009-08-13 Ghassan Shobaki <ghassan.shobaki@amd.com> 13687 13688 * tree-ssa-loop-prefetch.c 13689 (prune_ref_by_group_reuse): Enhance probabilistic analysis 13690 for long-stride pruning. 13691 (compute_miss_rate): New function to compute the probability 13692 that two memory references access different cache lines. 13693 136942009-08-13 Dave Korn <dave.korn.cygwin@gmail.com> 13695 13696 * gcc/config/i386/cygwin.h (LINK_SPEC): Add --enable-auto-image-base. 13697 136982009-08-13 Richard Guenther <rguenther@suse.de> 13699 13700 PR middle-end/41047 13701 * tree-ssa-ccp.c (ccp_fold): When folding pointer additions 13702 use the constant pointer type. 13703 * gimplify.c (canonicalize_addr_expr): Canonicalize independent 13704 of CV qualifiers on the target pointer type. 13705 * tree-ssa.c (useless_type_conversion_p): Move incomplete pointer 13706 conversion check before restrict check. 13707 137082009-08-12 Kaz Kojima <kkojima@gcc.gnu.org> 13709 13710 PR target/41029 13711 * config/sh/sh.md (reload_outdf__RnFRm+4): Fix thinko. 13712 137132009-08-12 Kaz Kojima <kkojima@gcc.gnu.org> 13714 13715 * config/sh/sh.c (sh_promote_function_mode): Add ATTRIBUTE_UNUSED. 13716 137172009-08-12 Richard Guenther <rguenther@suse.de> 13718 13719 PR tree-optimization/41011 13720 * ipa-cp.c (ipcp_lattice_from_jfunc): Deal with failing fold 13721 and reference constructing. 13722 137232009-08-12 Xinliang David Li <davidxl@google.com> 13724 13725 PR tree-optimization/41012 13726 * tree-flow.h : New external interface. 13727 * gimple-low.c (check_call_arg): Change to public function. 13728 Remove argument mismatch check in lowering. 13729 * tree-inline.h (tree_can_inline_p): Interface change. 13730 * tree-inline.c (tree_can_inline_p): Fold argument mismatch check 13731 into this function. 13732 * ipa-inline.c (cgraph_decide_inlining_of_small_functions): 13733 Call change to tree_can_inline_p function. 13734 (cgraph_decide_inlining_incrementally): Ditto. 13735 137362009-08-12 Richard Sandiford <rdsandiford@googlemail.com> 13737 13738 PR tree-optimization/41031 13739 * tree-outof-ssa.c (insert_value_copy_on_edge): Use promote_decl_mode 13740 on the partition variable rather than promote_mode on the source 13741 type. Assert that the partition variable's type has the same 13742 mode as the source value's. 13743 137442009-08-12 Paolo Bonzini <bonzini@gnu.org> 13745 13746 * doc/tm.texi (TARGET_PROMOTE_FUNCTION_MODE): Add documentation 13747 for for_return == 2. 13748 * function.c (assign_parm_setup_reg): Use for_return == 2, improve 13749 comments. 13750 * calls.c (expand_call): Fix typo. 13751 * explow.c (promote_decl_mode): Use for_return == 2 for RESULT_DECL 13752 and PARM_DECL. 13753 * stmt.c (expand_value_return): Use promote_function_mode to copy out 13754 of pseudo. 13755 * targhooks.c (default_promote_function_mode): Handle for_return == 2. 13756 * config/cris/cris.c (cris_promote_function_mode): Likewise. 13757 * config/mmix/mmix.c (mmix_promote_function_mode): Likewise. 13758 * config/pa/pa.c (pa_promote_function_mode): Likewise. 13759 137602009-08-12 Andrew Haley <aph@redhat.com> 13761 13762 * config/arm/arm.c (arm_init_libfuncs): Add __sync_synchronize. 13763 137642009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13765 13766 PR bootstrap/40103 13767 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat". 13768 137692009-08-12 Richard Guenther <rguenther@suse.de> 13770 13771 * alias.c (get_alias_set): Honor TYPE_STRUCTURAL_EQUALITY_P. 13772 * gimplify.c (gimplify_modify_expr): Do not use 13773 lang_hooks.types_compatible_p. 13774 * tree-ssa.c (useless_type_conversion_p): For aggregates 13775 just return false if the canonical types differ. 13776 137772009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13778 13779 PR middle-end/40980 13780 * sese.c (convert_for_phi_arg): New. 13781 (add_guard_exit_phis): Use convert_for_phi_arg. 13782 137832009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13784 13785 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Dont add 13786 unknown subscript upper bounds. 13787 137882009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13789 Pranav Garg <pranav.garg2107@gmail.com> 13790 13791 * graphite-interchange.c (gather_access_strides): Removed. 13792 (ppl_max_for_le): New. 13793 (build_linearized_memory_access): New. 13794 (memory_stride_in_loop): New. 13795 (pbb_interchange_profitable_p): Reimplemented. 13796 * graphite-ppl.h (ppl_new_id_map): New. 13797 (ppl_interchange): New. 13798 137992009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13800 13801 * graphite-interchange.c (compute_subscript): Removed. 13802 (compute_array_size_cstr): Removed. 13803 (compute_array_size_poly): Removed. 13804 (compute_array_size): Removed. 13805 (gather_access_strides_poly): Removed. 13806 (gather_access_strides): Empty. 13807 138082009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13809 13810 * graphite-dependences.c (dependence_polyhedron_1): Replace 13811 pdr_nb_subscripts with PDR_NB_SUBSCRIPTS. 13812 (graphite_legal_transform_dr): Same. 13813 (graphite_carried_dependence_level_k): Same. 13814 * graphite-poly.c (new_poly_dr): Add a parameter nb_subscripts. 13815 Initialize PDR_NB_SUBSCRIPTS. 13816 (print_pdr_access_layout): Replace pdr_nb_subscripts with 13817 PDR_NB_SUBSCRIPTS. 13818 * graphite-poly.h (struct poly_dr): Add nb_subscripts field. 13819 (PDR_NB_SUBSCRIPTS): New. 13820 (pdr_nb_subscripts): Removed. 13821 (pdr_dim): Simplified. 13822 * graphite-sese-to-poly.c (build_poly_dr): Replace pdr_nb_subscripts 13823 with PDR_NB_SUBSCRIPTS. 13824 138252009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13826 13827 * graphite-interchange.c (compute_array_size): Remove use of 13828 PDR_DATA_CONTAINER. 13829 * graphite-poly.c (new_poly_dr): Remove argument data_container. 13830 Do not initialize PDR_DATA_CONTAINER. 13831 (print_pdr): Do not print PDR_DATA_CONTAINER. 13832 * graphite-poly.h (struct poly_dr): Remove data_container field. 13833 (PDR_DATA_CONTAINER): Removed. 13834 * graphite-sese-to-poly.c (pdr_add_data_dimensions): Remove use of 13835 PDR_DATA_CONTAINER. 13836 (build_poly_dr): Same. 13837 138382009-08-12 Konrad Trifunovic <konrad.trifunovic@gmail.com> 13839 Sebastian Pop <sebastian.pop@amd.com> 13840 13841 * graphite-dependences.c (graphite_legal_transform_dr): Work on a 13842 copy of the dependence polyhedron. Free the temporary objects. 13843 (graphite_carried_dependence_level_k): Free unused objects before 13844 returning. 13845 138462009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13847 13848 * graphite-blocking.c (scop_do_strip_mine): Call store_scattering. 13849 Early return without analyzing the data dependences if no 13850 transform has been done. Call restore_scattering if the transform 13851 is not legal. 13852 (graphite-interchange.c): Same. 13853 * graphite-poly.c (print_scattering_function): Test for 13854 PBB_TRANSFORMED. 13855 (graphite_read_transforms): Initialize PBB_TRANSFORMED. 13856 (apply_poly_transforms): Do not gcc_assert that 13857 the transform is legal. 13858 (new_poly_bb): Initialize PBB_TRANSFORMED, PBB_SAVED and PBB_ORIGINAL. 13859 Do not initialize PBB_NB_SCATTERING_TRANSFORM, PBB_NB_LOCAL_VARIABLES, 13860 PBB_TRANSFORMED_SCATTERING, and PBB_ORIGINAL_SCATTERING. 13861 (free_poly_dr): Free PBB_TRANSFORMED, PBB_SAVED, and PBB_ORIGINAL. 13862 * graphite-poly.h (struct poly_scattering): New. 13863 (struct poly_bb): Add original, transformed, and saved fields. 13864 Remove transformed_scattering, original_scattering, 13865 nb_local_variables and nb_scattering_transform fields. 13866 (PBB_ORIGINAL, PBB_TRANSFORMED, PBB_SAVED): New. 13867 (poly_scattering_new): New. 13868 (poly_scattering_free): New. 13869 (poly_scattering_copy): New. 13870 (store_scattering_pbb): New. 13871 (store_scattering): New. 13872 (restore_scattering_pbb): New. 13873 (restore_scattering): New. 13874 * graphite-sese-to-poly.c (build_pbb_scattering_polyhedrons): 13875 Initialize PBB_TRANSFORMED and PBB_ORIGINAL. 13876 138772009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13878 13879 * graphite-poly.c (print_pbb): Add parentheses in the pretty print. 13880 (print_scop): Same. 13881 138822009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13883 13884 * Makefile.in (graphite.o): Depends on PREDICT_H. 13885 * graphite.c: Include predict.h. 13886 (graphite_finalize): Call tree_estimate_probability. 13887 * predict.c (predict_loops): Do not call scev_initialize and 13888 scev_finalize. 13889 (tree_estimate_probability_bb): New. 13890 (tree_estimate_probability): Do not initialize loops: move that 13891 code to the driver. Call tree_estimate_probability_bb. 13892 (tree_estimate_probability_driver): New. 13893 (pass_profile): Use tree_estimate_probability_driver. 13894 * predict.h (tree_estimate_probability): Declared. 13895 138962009-08-12 Sebastian Pop <sebastian.pop@amd.com> 13897 13898 * graphite-clast-to-gimple.c (gloog): Add time to TV_GRAPHITE_CODE_GEN. 13899 * graphite-dependences.c (graphite_legal_transform): Add time to 13900 TV_GRAPHITE_DATA_DEPS. 13901 (dependency_between_pbbs_p): Same. 13902 * timevar.def (TV_GRAPHITE_DATA_DEPS, TV_GRAPHITE_CODE_GEN): New. 13903 139042009-08-12 Andrey Belevantsev <abel@ispras.ru> 13905 13906 PR rtl-optimization/41033 13907 * alias.c (nonoverlapping_component_refs_p): Punt when strict 13908 aliasing is disabled. 13909 139102009-08-11 Adam Nemet <anemet@caviumnetworks.com> 13911 13912 * config/mips/predicates.md (qi_mask_operand, hi_mask_operand, 13913 si_mask_operand, and_load_operand, low_bitmask_operand, 13914 and_reg_operand, and_operand): New predicates. 13915 * config/mips/constraints.md (Yb, Yh, Yw, Yz): New constraints. 13916 * config/mips/mips.c (and_operands_ok): New function. 13917 * config/mips/mips-protos.h (and_operands_ok): Declare it. 13918 * config/mips/mips.md (move_type): Add ext_ins and logical. 13919 (type): Handle them. 13920 (and<mode>3): Use and_reg_operand as the second operand's predicate. 13921 (*and<mode>3): Add alternatives for lbu, lhu, lwu, <d>ext and 13922 shift_shift. Remove commutative constraint modifier. 13923 (*and<mode>3_mips16): Add alternatives for lbu, lhu, lwu and 13924 shift_shift. 13925 (*clear_upper32_dext): Remove define_insn_and_split. 13926 (*clear_upper32): Turn this define_insn_and_split ... 13927 (splitter for ANDing register with 0xffff_ffff): .. into this. 13928 139292009-08-11 Adam Nemet <anemet@caviumnetworks.com> 13930 13931 * combine.c (try_widen_shift_mode): Factor out code to check if an 13932 integer constant is a low-order bitmask from here ... 13933 * rtlanal.c (low_bitmask_len): ... to here. 13934 * rtl.h (low_bitmask_len): Declare. 13935 139362009-08-11 Uros Bizjak <ubizjak@gmail.com> 13937 13938 PR target/8603 13939 * config/alpha/alpha.md (addsi3): Remove expander. 13940 (addsi3): Rename from *addsi3_internal insn pattern. 13941 (subsi3): Remove expander. 13942 (subsi3): Rename from *subsi3_internal insn pattern. 13943 139442009-08-11 Douglas B Rupp <rupp@gnat.com> 13945 13946 * config/alpha/alpha.c (alpha_init_builtins): Nullify FWRITE and 13947 FWRITE_UNLOCKED. 13948 139492009-08-11 Vasiliy Fofanov <fofanov@adacore.com> 13950 Eric Botcazou <botcazou@adacore.com> 13951 Douglas B Rupp <rupp@gnat.com> 13952 13953 * config/alpha/alpha.c (alpha_return_in_memory): On VMS, ensure 13954 that records that fit in 64 bits are returned by immediate value, 13955 as required by OpenVMS Calling Standard. 13956 (function_value): Adjust for above modification. 13957 (alpha_va_start) <TARGET_ABI_OPEN_VMS>: Use 13958 virtual_incoming_args_rtx as base object, not next_arg. 13959 * config/alpha/vms.h (DEFAULT_PCC_STRUCT_RETURN): Define as 0. 13960 139612009-08-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 13962 13963 * reload.c (find_reloads_subreg_address): Check the original 13964 req_equiv_mem address to detect the case where an address is 13965 not valid in the outer mode. 13966 139672009-08-11 Richard Guenther <rguenther@suse.de> 13968 13969 PR bootstrap/40788 13970 * builtins.c (gimplify_va_arg_expr): Do not call SET_EXPR_LOCATION. 13971 139722009-08-10 Douglas B Rupp <rupp@gnat.com> 13973 13974 * config/alpha/vms.h (OPTIMIZATION_OPTIONS): Remove 13975 (OVERRIDE_OPTIONS): Incorporate removed OPTIMIZATION_OPTIONS. 13976 139772009-08-10 Olivier Hainque <hainqueu@adacore.com> 13978 Douglas B Rupp <rupp@gnat.com> 13979 13980 * config/alpha/alpha.c (alpha_sa_size): Force procedure type to 13981 PT_STACK when frame_pointer_needed on OpenVMS. 13982 (alpha_pv_save_size, alpha_using_fp): Remove. 13983 (alpha_vms_can_eliminate): New function. Support for CAN_ELIMINATE 13984 with proper processing for PT_NULL. 13985 (alpha_vms_initial_elimination_offset): New function. Support for 13986 INITIAL_ELIMINATION_OFFSET with proper processing for PT_NULL. 13987 (alpha_sa_size): Force procedure type to PT_STACK when 13988 frame_pointer_needed on OpenVMS. 13989 * config/alpha/alpha-protos.h (alpha_pv_save_size): Remove prototype. 13990 (alpha_using_fp): Likewise. 13991 (alpha_vms_can_eliminate): Add prototype. 13992 (alpha_vms_initial_elimination_offset): Likewise. 13993 * config/alpha/vms.h (CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): 13994 Call alpha_vms_can_eliminate and alpha_vms_initial_elimination_offset. 13995 139962009-08-10 Eric Botcazou <botcazou@adacore.com> 13997 Douglas B Rupp <rupp@gnat.com> 13998 13999 * config/alpha/alpha.c (common_object_handler): New function. 14000 (vms_attribute_table): Declare a single attribute "common_object". 14001 (vms_output_aligned_decl_common): New global function. 14002 (SECTION_VMS_OVERLAY): Delete. 14003 (SECTION_VMS_GLOBAL): Likewise. 14004 (SECTION_VMS_INITIALIZE): Likewise. 14005 (vms_asm_named_section): Remove support for above flags. 14006 (vms_section_type_flags): Delete. 14007 (TARGET_SECTION_TYPE_FLAGS): Likewise. 14008 * config/alpha/alpha-protos.h (vms_output_aligned_decl_common): New. 14009 * config/alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Delete. 14010 (ASM_OUTPUT_ALIGNED_DECL_COMMON): New macro. 14011 140122009-08-10 SUGIOKA Toshinobu <sugioka@itonet.co.jp> 14013 14014 PR target/41015 14015 * longlong.h [__sh__] (udiv_qrnnd): Add T register to clobber list. 14016 (sub_ddmmss): Likewise. 14017 140182009-08-10 Andreas Tobler <a.tobler@schweiz.org> 14019 14020 PR bootstrap/41018 14021 * config/rs6000/freebsd.h: Define SVR4_ASM_SPEC. Adjust copyright 14022 year. 14023 140242009-08-10 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 14025 14026 PR target/37053 14027 * reload1.c (reload_as_needed): Use cancel_changes to completely 14028 undo a failed replacement attempt. 14029 140302009-08-10 Richard Guenther <rguenther@suse.de> 14031 14032 PR middle-end/41006 14033 * tree-ssa.c (useless_type_conversion_p_1): Fold into ... 14034 (useless_type_conversion_p): ... here. Require pointer targets 14035 to be compatible. 14036 140372009-08-10 Dodji Seketeli <dodji@redhat.com> 14038 14039 PR c++/40866 14040 * tree-inline.c (copy_statement_list): The resulting copy shouldn't 14041 loose the original type of the statement list. 14042 140432009-08-09 Douglas B Rupp <rupp@gnat.com> 14044 14045 * config/alpha/alpha.c: Include libfuncs.h 14046 (avms_asm_output_extern): New function. 14047 (alpha_init_libfuncs): Init some decc libfuncs. 14048 * config/alpha/alpha-protos.h (avms_asm_output_external): Declare. 14049 * config/alpha/vms.h (ASM_OUTPUT_EXTERNAL): Define. 14050 (DO_CRTL_NAMES): Define. 14051 (LIB_SPEC): Remove. 14052 * config/alpha/vms64.h (POINTERS_EXTEND_UNSIGNED): Remove undef. 14053 (LONG_TYPE_SIZE): Define. 14054 (TARGET_OS_CPP_BUILTINS): Define with __LONG_POINTERS=1 14055 (SUBTARGET_SWITCHES): Define malloc64 switch. 14056 (TARGET_DEFAULT): Default MASK_MALLOC64 set. 14057 (MASK_RETURN_ADDR): Define. 14058 doc/invoke.texi (mmalloc64): Document switch. 14059 140602009-08-09 Olivier Hainque <hainque@adacore.com> 14061 Douglas B Rupp <rupp@gnat.com> 14062 14063 * config/alpha/alpha.c (struct machine_function): New flag for VMS, 14064 uses_condition_handler. 14065 (alpha_expand_builtin_establish_vms_condition_handler): New expander. 14066 (alpha_expand_builtin_revert_vms_condition_handler): New expander. 14067 (enum alpha_builtin): New ALPHA_BUILTIN_REVERT_VMS_CONDITION_HANDLER 14068 and ALPHA_BUILTIN_ESTABLISH_VMS_CONDITION_HANDLER values. 14069 (code_for_builtin): New insn codes for the new alpha_builtins. 14070 (alpha_init_builtins): Register the new functions as BUILT_IN_MD. 14071 (alpha_sa_size): Account for uses_condition_handler. 14072 (alpha_expand_prologue): Likewise. 14073 (alpha_start_function): Likewise. 14074 (alpha_expand_epilogue): Likewise. 14075 * config/alpha/alpha-protos.h: Prototype the new alpha.c builtin 14076 establish/revert expanders. 14077 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Define. 14078 * config/alpha/alpha.md (builtin_establish_vms_condition_handler): 14079 New expander, resorting to the alpha.c associated function. 14080 (builtin_revert_vms_condition_handler): Likewise. 14081 * config/alpha/vms-gcc_shell_handler.c: New file. Implements 14082 __gcc_shell_handler, the static VMS condition handler used as 14083 an indirection wrapper to the current dynamically established 14084 handler. 14085 * config/alpha/vms-unwind.h: Complete rewrite. 14086 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms-gcc_shell_handler.c 14087 * config/alpha/vms.h (MD_UNWIND_SUPPORT): 14088 140892009-08-09 Eric Botcazou <botcazou@adacore.com> 14090 Douglas B Rupp <rupp@gnat.com> 14091 14092 * config/alpha/alpha.c (alpha_links): Add 'target' field. 14093 (alpha_need_linkage): Handle aliases. Return function symbol. 14094 (alpha_use_linkage): Rename 'linkage' argument to 'func'. 14095 Use ultimate alias target for the linkage name. 14096 * config/alpha/alpha.md (movmemdi): Use the symbol returned 14097 by alpha_need_linkage for the function symbol. 14098 (setmemdi): Likewise. 14099 141002009-08-09 Douglas B Rupp <rupp@gnat.com> 14101 14102 * config/alpha/alpha.c (TARGET_ASM_UNALIGNED_*_OP): Define if on VMS. 14103 * config/alpha/vms.h (OBJECT_FORMAT_ELF): Define. 14104 (ASM_WEAKEN_LABEL): Define. 14105 (CRT_CALL_STATIC_FUNCTION): Define. 14106 (STARTFILE_SPEC): Add crtbegin.o crtbeginS.o. 14107 (ENDFILE_SPEC): Define. 14108 (INIT_SECTION_ASM_OP): Define. 14109 * config/alpha/vms-dwarf2eh.asm (__EH_FRAME_BEGIN__): Remove. 14110 * config/alpha/t-vms (EXTRA_PARTS): Add crtbegin.o crtbeginS.o 14111 crtend.o crtendS.o. 14112 (MULTILIB_OSDIRNAMES): Define. 14113 (shlib_version): Define. 14114 (SHLIB_EXT): Define. 14115 (SHLIB_OBJS): Define. 14116 (SHLIB_NAME): Define. 14117 (SHLIB_MULTILIB): Define. 14118 (SHLIB_INSTALL): Define. 14119 (SHLIB_SYMVEC): Define. 14120 (SHLIB_SYMVECX2): Define. 14121 (SHLIB_LINK): Define. 14122 141232009-08-09 Douglas B Rupp <rupp@gnat.com> 14124 14125 * config/alpha/alpha.c (alpha_initialize_trampoline): 14126 Initialize VMS trampoline IAW ABI for bounded procedure calls. 14127 (alpha_start_function): Emit transfer address on nested functions 14128 for VMS trampoline call. 14129 * config/alpha/t-vms (LIB2FUNCS_EXTRA): Remove vms_tramp.asm 14130 since no longer used. 14131 * config/alpha/vms-tramp.asm: Remove. 14132 * config/alpha/vms.h (TRAMPOLINE_TEMPLATE): Leave undefined 14133 since now only data initialized at runtime. 14134 141352009-08-09 Douglas B Rupp <rupp@gnat.com> 14136 14137 * config/alpha/vms.h (HANDLE_SYSV_PRAGMA): Define. 14138 (LINK_GCC_C_SEQUENCE_SPEC): Define. 14139 (MD_EXEC_PREFIX): Remove, no longer used. 14140 (MD_STARTFILE_PREFIX): Likewise. 14141 (INCLUDE_DEFAULTS): Likewise. 14142 * config/alpha/t-vms: 14143 (vms-dwarf2.o, vms-dwarf2eh.o): Use GCC_FOR_TARGET to compile. 14144 141452009-08-09 Richard Guenther <rguenther@suse.de> 14146 14147 PR tree-optimization/41016 14148 * tree-ssa-ifcombine.c (get_name_for_bit_test): Fix tuplification bug. 14149 (operand_precision): Remove. 14150 (integral_operand_p): Likewise. 14151 (recognize_single_bit_test): Adjust. 14152 141532009-08-09 Richard Sandiford <rdsandiford@googlemail.com> 14154 14155 * c-common.c (c_fully_fold_internal): Issue a warning if a binary 14156 operation overflows. Likewise non-cast unary arithmetic. 14157 If one arm of a conditional expression is always taken, 14158 inhibit evaluation warnings for the other arm. Likewise inhibit 14159 evaluation warnings for the second && or || operand if the first 14160 operand is enough to determine the result. 14161 * c-typeck.c (build_conditional_expr): Apply the same inhibition 14162 rules here. 14163 (build_binary_op): Prevent duplicate evaluation warnings. 14164 141652009-08-09 Richard Sandiford <rdsandiford@googlemail.com> 14166 14167 * tree-out-of-ssa.c (insert_value_copy_on_edge): If the source 14168 and destination have different modes, Use promote_mode to 14169 determine the signedness of the conversion. Assert that the 14170 promoted source mode matches the destination mode. Don't pass 14171 the destination and destination mode to expand_expr if the source 14172 mode is different. Simplify conversion logic. 14173 141742009-08-09 Ira Rosen <irar@il.ibm.com> 14175 14176 PR tree-optimization/41008 14177 * tree-vect-loop.c (vect_is_simple_reduction): Get operands 14178 from condition only in case it's a comparison. Adjust checks. 14179 141802009-08-09 Bernd Schmidt <bernd.schmidt@analog.com> 14181 14182 * tree-dfa.c (renumber_gimple_stmt_uids_in_blocks): New function. 14183 * tree-flow.h (renumber_gimple_stmt_uids_in_blocks): Declare it. 14184 * tree-ssa-loop-ivopts.c (comp_cost): Make COST an integer. 14185 (enum iv_position): Add IP_AFTER_USE and IP_BEFORE_USE. 14186 (dump_cand): Handle them. 14187 (struct iv_cand): New members COST_STEP and AINC_USE. 14188 (stmt_after_increment): Likewise. 14189 (stmt_after_inc_pos): Renamed from stmt_after_ip_original_pos. All 14190 callers changed. Use gimple_uid comparison instead of scanning. 14191 (add_candidate_1): When looking for identical candidates, take 14192 AINC_USE into account. Set it for new candidates. 14193 (force_expr_to_var_cost): Cast target_spill_cost to int. 14194 (get_address_cost): New arguments STMT_AFTER_INC and MAY_AUTOINC. 14195 All callers changed. Check for availability of autoinc addressing 14196 modes, both in general for a given mode, and in the specific use case. 14197 (get_computation_cost_at): New argument CAN_AUTOINC. All callers 14198 changed. 14199 (get_computation_cost): Likewise. 14200 (autoinc_possible_for_pair, set_autoinc_for_original_candidates, 14201 add_autoinc_candidates): New static functions. 14202 (add_candidate): Call add_autoinc_candidates for candidates based on 14203 a USE_ADDRESS use. 14204 (find_iv_candidates): Call set_autoinc_for_original_candidates. 14205 (determine_use_iv_cost_address): If we have an autoinc candidate at 14206 the matching use, verify autoinc is possible and subtract the cost 14207 of the candidate's step from the cost. 14208 (determine_iv_cost): Record the cost of the increment in the COST_STEP 14209 member of the candidate. 14210 (tree_ssa_iv_optimize_loop): Swap the calls to determine_iv_costs and 14211 determine_use_iv_costs. Call renumber_gimple_stmt_uids_in_blocks. 14212 142132009-08-09 Douglas B Rupp <rupp@gnat.com> 14214 14215 * config.build (ia64-hp-*vms*): New target. 14216 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify 14217 with ia64-hp-*vms*. 14218 * config.gcc (ia64-hp-*vms*): New target. 14219 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify 14220 with ia64-hp-*vms*. 14221 * config.host (ia64-hp-*vms*): New target. 14222 (alpha64-dec-*vms*,alpha*-dec-*vms*): Fix for config/vms and unify 14223 with ia64-hp-*vms*. 14224 142252009-08-08 Richard Guenther <rguenther@suse.de> 14226 14227 PR tree-optimization/40991 14228 * tree-ssa-pre.c (eliminate): Delay purging EH edges. 14229 142302009-08-08 Richard Sandiford <rdsandiford@googlemail.com> 14231 14232 * combine.c (gen_lowpart_or_truncate): Exclude CONST_INTs from 14233 mode check. Do truncations in an integer mode. 14234 (force_to_mode): Handle subregs for all mode types. Only do 14235 arithmetic simplifications on integer modes. 14236 142372009-08-07 Richard Guenther <rguenther@suse.de> 14238 14239 PR tree-optimization/40999 14240 * tree-ssa-ccp.c (get_symbol_constant_value): Handle CONST_DECLs. 14241 (maybe_fold_reference): Lookup constant initializers. 14242 (fold_gimple_assign): Likewise. 14243 142442009-08-07 Richard Guenther <rguenther@suse.de> 14245 14246 * tree-ssa.c (useless_type_conversion_p_1): Only for types 14247 that require structural equality defer to the langhook. 14248 142492009-08-07 Martin Jambor <mjambor@suse.cz> 14250 14251 * ipa-prop.h (enum jump_func_type): New value IPA_JF_ANCESTOR, changed 14252 comments. 14253 (struct ipa_pass_through_data): New type. 14254 (struct ipa_ancestor_jf_data): New type. 14255 (union jump_func_value): Removed field formal_id, added fields 14256 pass_through and ancestor. 14257 (struct ipa_param_call_note): Changed type of formal_id to int from 14258 unsigned. 14259 * ipa-prop.c (ipa_print_node_jump_functions): Print pass through with 14260 operations jump functions and ancestor jump functions. 14261 (compute_complex_pass_through): New function. 14262 (compute_scalar_jump_functions): Call compute_complex_pass_through, 14263 reflect changes in the jump function strucutre. 14264 (update_jump_functions_after_inlining): Ignore complex pass-through 14265 and ancestor jump functions. 14266 * ipa-cp.c (ipcp_lattice_from_jfunc): Added support for ancestor and 14267 polynomial pass-through with operation jump functions. 14268 142692009-08-07 Jakub Jelinek <jakub@redhat.com> 14270 14271 * dwarf2out.c (output_fde): When doing hot/cold partitioning, use 14272 fde->dw_fde_begin as begin label instead of hot/cold label. 14273 Use LLSDAC label instead of LLSDA for second section lsda. 14274 (dwarf2out_do_cfi_startproc): Add SECOND argument. Use LLSDAC 14275 label instead of LLSDA if it is true. 14276 (dwarf2out_begin_prologue, dwarf2out_switch_text_section): Adjust 14277 callers. 14278 * except.c (add_call_site, dw2_size_of_call_site_table): Add 14279 SECTION argument. Use it as index into crtl->eh.call_site_record 14280 array. 14281 (dw2_output_call_site_table): Likewise. Add CS_FORMAT argument, 14282 use it to determine how to print table entries instead of using 14283 #ifdef HAVE_AS_LEB128. For SECTION > 0 use hot resp. cold 14284 label instead of normal begin label as base. 14285 (sjlj_assign_call_site_values): Adjust add_call_site caller. 14286 (convert_to_eh_region_ranges): When doing hot/cold partitioning, 14287 ensure no EH range spans between sections and that landing pads 14288 are always in the corresponding section. 14289 (sjlj_size_of_call_site_table, sjlj_output_call_site_table): Adjust 14290 for crtl->eh.call_site_record being an array rather than scalar. 14291 (output_one_function_exception_table): New function, copied 14292 from output_function_exception_table. Adjust 14293 dw2_size_of_call_site_table, dw2_output_call_site_table 14294 callers. For SECOND section use *C suffixed labels. 14295 (output_function_exception_table): Call 14296 output_one_function_exception_table and, when doing hot/cold 14297 partitioning, also another time for the second section. 14298 * opts.c: Include except.h. 14299 (decode_options): Allow -freorder-blocks-and-partition with 14300 exceptions, unless SJLJ or TARGET_UNWIND_INFO. 14301 * Makefile.in (opts.o): Depend on $(EXCEPT_H). 14302 * function.h (struct rtl_eh): Change call_site_record from 14303 scalar into array of 2 elements. 14304 143052009-08-07 Martin Jambor <mjambor@suse.cz> 14306 14307 * ipa-prop.c (count_formal_params_1): New function. 14308 (ipa_get_vector_of_formal_parms): New function. 14309 (get_vector_of_formal_parm_types): New function. 14310 (ipa_modify_formal_parameters): New function. 14311 (ipa_modify_call_arguments): New function. 14312 (index_in_adjustments_multiple_times_p): New function. 14313 (ipa_combine_adjustments): New function. 14314 (ipa_dump_param_adjustments): New function. 14315 * ipa-prop.h (struct ipa_parm_adjustment): New type. 14316 (ipa_get_vector_of_formal_parms): Declare. 14317 (ipa_modify_formal_parameters): Declare. 14318 (ipa_modify_call_arguments): Declare. 14319 (ipa_combine_adjustments): Declare. 14320 (ipa_dump_param_adjustments): Declare. 14321 (build_ref_for_offset): Declare. 14322 * Makefile.in (tree-sra.o): Add ipa-prop.h to dependencies. 14323 * tree-sra.c: Include ipa-prop.c. 14324 (build_ref_for_offset): Make public. 14325 143262009-08-06 Neil Vachharajani <nvachhar@gmail.com> 14327 14328 * value-prof.c (init_pid_map): Replace xmalloc with XCNEWVEC. 14329 143302009-08-06 Thomas Schwinge <tschwinge@gnu.org> 14331 14332 * gcc/doc/extend.texi (__builtin_extract_return_address) 14333 (__builtin_frob_return_address): Document. 14334 143352009-08-06 Paul Brook <paul@codesourcery.com> 14336 14337 * config/arm/lib1funcs.asm (ARM_DIV_BODY): Add Thumb-2 implementation. 14338 (udivsi3, aeabi_uidivmod, divsi3, aeabi_idivmod): Only use Thumb-1 14339 implementation on ARMv6-M. 14340 143412009-08-06 Richard Earnshaw <rearnsha@arm.com> 14342 14343 * doc/extend.texi (pcs): Document new attribute for ARM. 14344 143452009-08-06 Richard Earnshaw <rearnsha@arm.com> 14346 14347 * arm.c (pcs_attribute_args): Comment out unsupported attribute 14348 variants. 14349 143502009-08-06 Richard Earnshaw <rearnsha@arm.com> 14351 14352 * arm.c (arm_handle_pcs_attribute): Pass the entire name object to 14353 warning (). 14354 143552009-08-06 Richard Earnshaw <rearnsha@arm.com> 14356 14357 * arm.c (arm_handle_pcs_attribute): Use %qE in warning. 14358 143592009-08-06 Richard Earnshaw <rearnsha@arm.com> 14360 14361 Merge ARM/hard_vfp_branch to trunk. 14362 14363 2009-08-04 Richard Earnshaw <rearnsha@arm.com> 14364 14365 * arm.c (libcall_eq): New function. 14366 (libcall_hash): New function. 14367 (add_libcall): New function. 14368 (arm_libcall_uses_aapcs_base): New function. 14369 (arm_libcall_value): Use arm_libcall_uses_aapcs_base to check for 14370 libcalls using the base PCS. 14371 (arm_init_cumulative_args): Likewise. 14372 14373 2009-07-20 Joseph Myers <joseph@codesourcery.com> 14374 14375 * config/arm/arm.c (arm_libcall_value, arm_init_cumulative_args): 14376 Use base ABI for conversion libfuncs between HFmode and SFmode. 14377 14378 2009-05-12 Joseph Myers <joseph@codesourcery.com> 14379 14380 * config/arm/arm.c (aapcs_vfp_sub_candidate): Use V2SImode and 14381 V4SImode as representatives of all 64-bit and 128-bit vector 14382 types. Allow vector types without vector modes. 14383 (aapcs_vfp_is_call_or_return_candidate): Handle vector types 14384 without vector modes like BLKmode. 14385 (aapcs_vfp_allocate): Handle TImode for non-TARGET_NEON like 14386 BLKmode. Avoid unsupported vector modes or TImode moves for 14387 non-TARGET_NEON. 14388 (aapcs_vfp_allocate_return_reg): Likewise. 14389 (arm_vector_mode_supported_p): Only support V2SImode, V4HImode and 14390 V8QImode if TARGET_NEON || TARGET_IWMMXT. 14391 14392 2009-05-12 Joseph Myers <joseph@codesourcery.com> 14393 14394 * config/arm/arm.c (arm_handle_pcs_attribute): New. 14395 (arm_get_pcs_model): Pass attribute arguments to 14396 arm_pcs_from_attribute. 14397 (arm_init_cumulative_args): Use base AAPCS for conversions from 14398 floating-point types to DImode. 14399 (arm_attribute_table): Add pcs attribute. 14400 (arm_handle_pcs_attribute): New. 14401 * config/arm/bpabi.h (DECLARE_LIBRARY_RENAMES): When renaming 14402 conversions from floating-point types to DImode, also declare them 14403 to use base AAPCS and declare functions they call to use base 14404 AAPCS and their RTABI names. 14405 14406 2009-05-12 Joseph Myers <joseph@codesourcery.com> 14407 14408 * doc/invoke.texi (-mfloat-abi=@var{name}): Remove statement about 14409 -mfloat-abi=hard not being supported for VFP. 14410 14411 2009-05-11 Kazu Hirata <kazu@codesourcery.com> 14412 14413 * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Pass a libcall 14414 SYMBOL_REF to hard_libcall_value. 14415 14416 2009-03-05 Joseph Myers <joseph@codesourcery.com> 14417 Richard Earnshaw <rearnsha@arm.com> 14418 14419 * config/arm/arm.c (aapcs_layout_arg): Once a co-processor argument 14420 has been put on the stack, all remaining co-processory arguments for 14421 that co-processor also go on the stack. 14422 14423 2009-03-05 Joseph Myers <joseph@codesourcery.com> 14424 14425 * config/arm/arm.c (arm_return_in_memory): Handle returning 14426 vectors of suitable size in registers also for AAPCS case. 14427 14428 2009-01-13 Richard Earnshaw <rearnsha@arm.com> 14429 14430 * doc/tm.texi (TARGET_LIBCALL_VALUE): Add missing end statement. 14431 14432 2008-12-09 Richard Earnshaw <rearnsha@arm.com> 14433 14434 ARM Hard-VFP calling convention 14435 * target-def.h (TARGET_LIBCALL_VALUE): New hook. 14436 * target.h (gcc_target): Add libcall_value to table of call hooks. 14437 * targhooks.h (default_libcall_value): Default implementation. 14438 * targhooks.c (default_libcall_value): Likewise. 14439 * doc/tm.texi (TARGET_LIBCALL_VALUE): Document it. 14440 * optabs.c (expand_unop): Use it. 14441 * expr.h (hard_libcall_value): Pass the function RTX through. 14442 * calls.c (emit_library_call_value_1): Update call to 14443 hard_libcall_value. 14444 * explow.c (hard_libcall_value): Use new target hook. 14445 * config/arm/arm.c: Include cgraph.h 14446 (TARGET_FUNCTION_VALUE): Override default hook. 14447 (arm_pcs_default): New variable. 14448 (arm_override_options): Don't fault hard calling convention with VFP. 14449 Add support for AAPCS variants. 14450 (arm_function_value): Make static. Handle AAPCS variants. 14451 (arm_libcall_value): New function. 14452 (arm_apply_result_size): Handle VFP registers in results. 14453 (arm_return_in_memory): Rework all AAPCS variants; handle hard-vfp 14454 conventions. 14455 (pcs_attribute_args): New variable. 14456 (arm_pcs_from_attribute): New function. 14457 (arm_get_pcs_model): New function. 14458 (aapcs_vfp_cum_init): New function. 14459 (aapcs_vfp_sub_candidate): New function. 14460 (aapcs_vfp_is_return_candidate): New function. 14461 (aapcs_vfp_is_call_candidate): New function. 14462 (aapcs_vfp_allocate): New function. 14463 (aapcs_vfp_allocate_return_reg): New function. 14464 (aapcs_vfp_advance): New function. 14465 (aapcs_cp_arg_layout): New variable. 14466 (aapcs_select_call_coproc): New function. 14467 (aapcs_select_return_coproc): New function. 14468 (aapcs_allocate_return_reg): New function. 14469 (aapcs_libcall_value): New function. 14470 (aapcs_layout_arg): New function. 14471 (arm_init_cumulative_args): Initialize AAPCS args data. 14472 (arm_function_arg): Handle AAPCS variants using new interface. 14473 (arm_arg_parital_bytes): Likewise. 14474 (arm_function_arg_advance): New function. 14475 (arm_function_ok_for_sibcall): Ensure that sibling calls agree on 14476 calling conventions. 14477 (arm_setup_incoming_varargs): Handle new AAPCS args data. 14478 * arm.h (NUM_VFP_ARG_REGS): Define. 14479 (LIBCALL_VALUE): Update. 14480 (FUNCTION_VALUE): Delete. 14481 (FUNCTION_VALUE_REGNO_P): Add VFP regs. 14482 (arm_pcs): New enum. 14483 (CUMULATIVE_ARGS): New data to support AAPCS argument marshalling. 14484 (FUNCTION_ARG_ADVANCE): Call arm_function_arg_advance. 14485 (FUNCTION_ARG_REGNO_P): Add VFP regs. 14486 * arm-protos.h (arm_function_arg_advance): Add. 14487 (aapcs_libcall_value): Add. 14488 (arm_function_value): Delete. 14489 144902009-08-06 Uros Bizjak <ubizjak@gmail.com> 14491 H.J. Lu <hongjiu.lu@intel.com> 14492 14493 PR target/40957 14494 * config/i386/i386.c (standard_sse_mode_p): Remove. 14495 (standard_sse_constant_p): Return 2 for integer mode 14496 vector_all_ones_operand when SSE2 is enabled. 14497 (standard_sse_constant_opcode)<case 2>: Always return [v]pcmpeqd. 14498 (ix86_expand_vector_move): Do not check for negative values from 14499 standard_sse_constant_p. 14500 145012009-08-06 Richard Guenther <rguenther@suse.de> 14502 14503 * tree-ssa.c (useless_type_conversion_p_1): Make function and 14504 array type comparisons frontend independent. 14505 * Makefile.in (tree-ssa.o): Add $(TARGET_H) dependency. 14506 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Always fill 14507 out array reference lower bound and element size operands. 14508 (ao_ref_init_from_vn_reference): Properly compute the offset 14509 for ARRAY_RANGE_REF. 14510 (vn_reference_fold_indirect): Fill out array reference lower 14511 bound and element size operands. 14512 * tree-ssa-pre.c (phi_translate_1): Fail if we have to translate 14513 a non gimple valued reference operand which can happen for 14514 array reference lower bound or element size. 14515 (create_component_ref_by_pieces_1): Properly generate the 14516 element size operand for array references. 14517 145182009-08-06 Richard Guenther <rguenther@suse.de> 14519 14520 PR tree-optimization/40964 14521 * tree.c (iterative_hash_host_wide_int): Export. 14522 * tree.h (iterative_hash_host_wide_int): Declare. 14523 * tree-ssa-structalias.c (heapvar_map): New struct. 14524 (heapvar_map_eq): New function. 14525 (heapvar_map_hash): Likewise. 14526 (heapvar_lookup): Adjust. 14527 (heapvar_insert): Likewise. 14528 (make_constraint_from_heapvar): Allow multiple heap variables 14529 per decl at different offsets. 14530 (init_alias_heapvars): Adjust. 14531 145322009-08-04 David Daney <ddaney@caviumnetworks.com> 14533 14534 * config/mips/mips.h (TARGET_SYNC_AFTER_SC): New macro. 14535 * mips_output_sync_loop (mips_output_sync_loop): Only emit 14536 trailing sync if TARGET_SYNC_AFTER_SC. 14537 145382009-08-05 David Daney <ddaney@caviumnetworks.com> 14539 14540 * gcc/config/mips/sync.md (sync_compare_and_swap<mode>, 14541 compare_and_swap_12, sync_add<mode>, sync_<optab>_12, 14542 sync_old_<optab>_12, sync_new_<optab>_12, sync_nand_12, 14543 sync_old_nand_12, sync_new_nand_12, sync_sub<mode>, 14544 sync_old_add<mode>, sync_old_sub<mode>, sync_new_add<mode>, 14545 sync_new_sub<mode>, sync_<optab><mode>, sync_old_<optab><mode>, 14546 sync_new_<optab><mode>, sync_nand<mode>, sync_old_nand<mode>, 14547 sync_new_nand<mode>, sync_lock_test_and_set<mode>, 14548 test_and_set_12): Rewrite calls to mips_output_sync_loop. 14549 * gcc/config/mips/mips-protos.h (mips_output_sync_loop): Make 14550 the prototype declaration match the definition. 14551 * gcc/config/mips/mips.c (mips_output_sync_loop): Emit sync 14552 instructions explicitly. Add barrier_before and operands 14553 parameters. 14554 * gcc/config/mips/mips.h (MIPS_COMPARE_AND_SWAP, 14555 MIPS_COMPARE_AND_SWAP_12, MIPS_SYNC_OP, MIPS_SYNC_OP_12, 14556 MIPS_SYNC_OLD_OP_12, MIPS_SYNC_NEW_OP_12, MIPS_SYNC_OLD_OP, 14557 MIPS_SYNC_NEW_OP, MIPS_SYNC_NAND, MIPS_SYNC_OLD_NAND, 14558 MIPS_SYNC_NEW_NAND, MIPS_SYNC_EXCHANGE, 14559 MIPS_SYNC_EXCHANGE_12): Remove sync instructions. 14560 145612009-08-05 Andrew Pinski <pinskia@gmail.com> 14562 14563 * tree-ssa-alias.c: Fix intervals to use [) syntax. 14564 145652009-08-05 Uros Bizjak <ubizjak@gmail.com> 14566 Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz> 14567 14568 PR target/40906 14569 * config/i386/i386.c (ix86_split_long_move): Fix push of multi-part 14570 source operand. 14571 145722009-08-05 Jakub Jelinek <jakub@redhat.com> 14573 14574 PR rtl-optimization/40924 14575 * dse.c (canon_address): Before calling cselib_expand_value_rtx 14576 make sure canon_rtx (mem_address) isn't simpler than 14577 canon_rtx (expanded_mem_address). 14578 145792009-08-05 Li Feng <nemokingdom@gmail.com> 14580 14581 * graphite-sese-to-poly.c (build_pbb_drs): Remove build alias set 14582 for each poly_bb_p. 14583 (build_scop_drs): Build alias set for each SCoP. 14584 145852009-08-04 Sandra Loosemore <sandra@codesourcery.com> 14586 14587 * doc/invoke.texi (MIPS Options): Document new 1004K -march options. 14588 * config/mips/mips.c (mips_cpu_info_table): Add 1004K cores. 14589 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Add pattern for 1004K. 14590 (MIPS_ARCH_FLOAT_SPEC): Likewise. 14591 (BASE_DRIVER_SELF_SPECS): Likewise. 14592 145932009-08-04 Andrew Pinski <pinskia@gmail.com> 14594 14595 * tree-ssa-alias.c: Fix some comment typos. 14596 145972009-08-04 Kaz Kojima <kkojima@gcc.gnu.org> 14598 14599 * config/sh/linux-atomic.asm (ATOMIC_BOOL_COMPARE_AND_SWAP, 14600 ATOMIC_OP_AND_FETCH, ATOMIC_COMBOP_AND_FETCH): Define. 14601 146022009-08-03 Janis Johnson <janis187@us.ibm.com> 14603 14604 PR c/39902 14605 * simplify-rtx.c (simplify_binary_operation_1): Disable 14606 simplifications for decimal float operations. 14607 146082009-08-03 Jakub Jelinek <jakub@redhat.com> 14609 14610 PR middle-end/40943 14611 * tree-ssa.c (warn_uninitialized_var): Even on LHS warn for 14612 operand of INDIRECT_REF. 14613 146142009-08-03 Uros Bizjak <ubizjak@gmail.com> 14615 14616 * config/alpha/alpha.c (alpha_legitimate_constant_p): Reject CONST 14617 constants referencing TLS symbols. 14618 146192009-08-03 SUGIOKA Toshinobu <sugioka@itonet.co.jp> 14620 14621 * config/sh/linux-atomic.asm (ATOMIC_COMPARE_AND_SWAP): Rename 14622 __sync_compare_and_swap_* to __sync_val_compare_and_swap_*. 14623 146242009-08-03 Richard Guenther <rguenther@suse.de> 14625 14626 * tree.c (make_vector_type): Build a main variant first, 14627 get the canonical one and then build the variant. 14628 * tree-ssa.c (useless_type_conversion_p_1): Handle 14629 fixed-point types. 14630 (useless_type_conversion_p): Conversions to pointers to 14631 incomplete record types are useless. 14632 146332009-08-03 Richard Guenther <rguenther@suse.de> 14634 14635 * tree-cfg.c (pass_warn_unused_result): Mark name that no dump 14636 file will be created. 14637 * omp-low.c (pass_diagnose_omp_blocks): Likewise. 14638 * toplev.c (compile_file): Adjust comment. 14639 146402009-08-03 Kaz Kojima <kkojima@gcc.gnu.org> 14641 14642 * config/sh/sh-protos.h (sh_promote_function_mode): Remove. 14643 * config/sh/sh.c (sh_promote_function_mode): Wrap long lines. 14644 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14645 (TARGET_PROMOTE_FUNCTION_ARGS): Remove. 14646 (sh_promote_function_mode): Fix typo. 14647 146482009-08-03 Andreas Krebbel <krebbel1@de.ibm.com> 14649 14650 * explow.c (promote_mode): Mark TYPE and PUNSIGNEDP as possibly unused. 14651 146522009-08-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 14653 14654 * pa.c (pa_promote_function_mode): Remove ATTRIBUTE_UNUSED from 14655 declaration arguments. 14656 146572009-08-02 Uros Bizjak <ubizjak@gmail.com> 14658 14659 * config/i386/i386.c (ix86_expand_fp_compare): Use const0_rtx instead 14660 of GEN_INT (0x00) and const1_rtx instead of GEN_INT (0x01). 14661 (ix86_split_ashl): Ditto. 14662 (ix86_expand_vector_init_one_nonzero): Ditto. 14663 (ix86_expand_vector_set): Ditto. 14664 (ix86_expand_reduc_v4sf): Ditto. 14665 146662009-08-02 Paolo Bonzini <bonzini@gnu.org> 14667 14668 * explow.c (promote_function_mode): Remove assert. 14669 * config/sh/sh.c (sh_promote_function_mode): Declare. 14670 146712009-08-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 14672 14673 * config/pa/pa.c (pa_promote_function_mode): Declare. 14674 Change to static. Fix promote_mode call. 14675 14676 * gthr-dce.h (CONST_CAST2): Define if not defined. 14677 (__gthread_setspecific): Use CONST_CAST2 to fix warning. 14678 14679 * config.gcc (hppa[12]*-*-hpux10*): Add stdint support. 14680 146812009-08-01 Paolo Bonzini <bonzini@gnu.org> 14682 14683 * expr.c (store_constructor): Use promote_decl_mode. Remove 14684 now write-only variable unsignedp. 14685 (expand_expr_real_1): Use promote_decl_mode. 14686 * expr.h (promote_function_mode, promote_decl_mode): New. 14687 (promote_mode): Remove last argument. 14688 * function.c (assign_temp): Drop last argument of promote_mode. 14689 (assign_parm_find_data_types): Use promote_function_mode. 14690 (assign_parm_setup_reg): Likewise. 14691 (expand_function_end): Use promote_function_mode. 14692 * calls.c (initialize_argument_information): Use promote_function_mode. 14693 (precompute_arguments): Use promote_mode instead of checking if 14694 only PROMOTE_FUNCTION_MODE is defined. 14695 (expand_call): When making sibcall decisions, use promote_function_mode. 14696 Below, remove an if for targetm.calls.promote_function_return and 14697 and use promote_function_mode. 14698 (emit_library_call_value_1): Use promote_function_mode, fix bug 14699 where promote_mode was passed FOR_CALL == 0 for a return value in an 14700 assertion. 14701 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode. 14702 * explow.c (promote_function_mode, promote_decl_mode): New. 14703 (promote_mode): Keep only the FOR_CALL == 0 case. 14704 * combine.c (setup_incoming_promotion): Remove test of 14705 promote_function_args. Use promote_function_mode. 14706 * stmt.c (expand_value_return): Use promote_decl_mode. 14707 (expand_decl): Use promote_decl_mode. 14708 14709 * expr.c (store_constructor): Use promote_decl_mode. Remove 14710 now write-only variable unsignedp. 14711 (expand_expr_real_1): Use promote_decl_mode. 14712 * expr.h (promote_function_mode, promote_decl_mode): New. 14713 (promote_mode): Remove last argument. 14714 * function.c (assign_temp): Drop last argument of promote_mode. 14715 (assign_parm_find_data_types): Use promote_function_mode. 14716 (assign_parm_setup_reg): Likewise. 14717 (expand_function_end): Use promote_function_mode. 14718 * calls.c (initialize_argument_information): Use promote_function_mode. 14719 (precompute_arguments): Use promote_mode instead of checking if 14720 only PROMOTE_FUNCTION_MODE is defined. 14721 (expand_call): When making sibcall decisions, use promote_function_mode. 14722 Below, remove an if for targetm.calls.promote_function_return and 14723 and use promote_function_mode. 14724 (emit_library_call_value_1): Use promote_function_mode, fix bug 14725 where promote_mode was passed FOR_CALL == 0 for a return value in an 14726 assertion. 14727 * cfgexpand.c (expand_one_register_var): Use promote_decl_mode. 14728 * explow.c (promote_function_mode, promote_decl_mode): New. 14729 (promote_mode): Keep only the FOR_CALL == 0 case. 14730 * combine.c (setup_incoming_promotion): Remove test of 14731 promote_function_args. Use promote_function_mode. 14732 * stmt.c (expand_value_return): Use promote_decl_mode. 14733 (expand_decl): Use promote_decl_mode. 14734 14735 * explow.c (promote_function_mode): Just call the target hook. 14736 * targhooks.c (default_promote_function_mode, 14737 default_promote_function_mode_always_promote): New. 14738 * targhooks.h (default_promote_function_mode, 14739 default_promote_function_mode_always_promote): Declare. 14740 * target.h (promote_function_args, promote_function_return): Remove. 14741 (promote_function_mode): New. 14742 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS, 14743 TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14744 (TARGET_PROMOTE_FUNCTION_MODE): New. 14745 (TARGET_CALLS): Adjust. 14746 * system.h (TARGET_PROMOTE_FUNCTION_ARGS, 14747 TARGET_PROMOTE_FUNCTION_RETURN, PROMOTE_FUNCTION_MODE): Poison. 14748 14749 * config/s390/s390.h (PROMOTE_FUNCTION_MODE): Move... 14750 * config/s390/s390.c (s390_promote_function_mode): ... here, 14751 with pointer handling. 14752 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14753 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14754 14755 * config/sparc/sparc.h (PROMOTE_FUNCTION_MODE): Move... 14756 * config/sparc/sparc.c (sparc_promote_function_mode): ... here, 14757 with pointer handling. 14758 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14759 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14760 14761 * config/sh/sh-protos.h (sh_promote_function_mode): New. 14762 * config/sh/sh.c (sh_promote_function_mode): New. 14763 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14764 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14765 14766 * config/cris/cris.h (PROMOTE_FUNCTION_MODE): Move... 14767 * config/cris/cris.c (cris_promote_function_mode): ... here. 14768 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14769 (TARGET_PROMOTE_FUNCTION_ARGS): Remove. 14770 14771 * config/mmix/mmix.h (PROMOTE_FUNCTION_MODE): Move... 14772 * config/mmix/mmix.c (mmix_promote_function_mode): ... here. 14773 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14774 (TARGET_PROMOTE_FUNCTION_ARGS): Remove. 14775 14776 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Move... 14777 * config/arm/arm.c (arm_promote_function_mode): ... here, without 14778 complex type handling. 14779 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14780 (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14781 14782 * config/pa/pa.c (pa_promote_function_mode): New. 14783 (TARGET_PROMOTE_FUNCTION_MODE): Define. 14784 (TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14785 14786 * config/alpha/alpha.c (TARGET_PROMOTE_FUNCTION_ARGS, 14787 TARGET_PROMOTE_FUNCTION_RETURN): Remove. 14788 (TARGET_PROMOTE_FUNCTION_MODE): Define equivalently. 14789 * config/xtensa/xtensa.c: Likewise. 14790 * config/stormy16/stormy16.c: Likewise. 14791 * config/iq2000/iq2000.c: Likewise. 14792 * config/rs6000/rs6000.c: Likewise. 14793 * config/picochip/picochip.c: Likewise. 14794 * config/arc/arc.c: Likewise. 14795 * config/mcore/mcore.c: Likewise. 14796 * config/score/score.c: Likewise. 14797 * config/mips/mips.c: Likewise. 14798 * config/bfin/bfin.c: Likewise. 14799 * config/ia64/ia64.c: Likewise (disabled though). 14800 14801 * config/frv/frv.h: Remove pointless remark. 14802 14803 * doc/tm.texi (PROMOTE_FUNCTION_MODE, 14804 TARGET_PROMOTE_FUNCTION_ARGS, 14805 TARGET_PROMOTE_FUNCTION_RETURN): Consolidate into... 14806 (TARGET_PROMOTE_FUNCTION_MODE): ... this. 14807 148082009-08-01 Sebastian Pop <sebastian.pop@amd.com> 14809 14810 * doc/invoke.texi (-fgraphite-force-parallel): Renamed 14811 -floop-parallelize-all. 14812 * toplev.c (process_options): Rename flag_graphite_force_parallel to 14813 flag_loop_parallelize_all. 14814 * tree-ssa-loop.c (gate_graphite_transforms): Same. 14815 * graphite.c (graphite_transform_loops): Same. 14816 * common.opt: Same. 14817 * graphite-poly.c (apply_poly_transforms): Same. 14818 148192009-07-31 Richard Earnshaw <rearnsha@arm.com> 14820 14821 PR tree-optimization/40914 14822 * ipa-prop.c (ipa_get_ptr_load_param): New argument use_delta, 14823 if set, then check the delta field of the PMF record. 14824 (ipa_get_stmt_member_ptr_load_param): Propagate new param use_delta. 14825 (ipa_analyze_call_uses): Handle machines where the vbit for a PMF 14826 call is stored in the delta. 14827 148282009-07-31 Adam Nemet <anemet@caviumnetworks.com> 14829 14830 * config/mips/mips.md (*clear_upper32_dext): New pattern. 14831 148322009-07-31 Uros Bizjak <ubizjak@gmail.com> 14833 14834 * config/i386/bsd.h (ASM_BYTE): New define. 14835 * config/i386/darwin.h (ASM_BYTE): Rename from ASM_BYTE_OP. 14836 * config/i386/att.h (ASM_BYTE): New define. Use ASM_BYTE instead of 14837 .byte. Use fputs or putc instead of fprintf where appropriate. 14838 * config/i386/i386-interix.h: Use ASM_BYTE instead of .byte. Use 14839 fputs or putc instead of fprintf where appropriate. 14840 * config/i386/i386elf.h: Ditto. 14841 * config/i386/sysv4.h: Ditto. 14842 14843 * config/i386/i386.c (TARGET_ASM_BYTE_OP): New define. 14844 * config/i386/i386.md (x86_sahf_1): Use ASM_BYTE instead of .byte. 14845 (*tls_global_dynamic_64): Ditto. 14846 148472009-07-31 Christian Bruel <christian.bruel@st.com> 14848 14849 * gcc/config.gcc (sh*-*-elf): test with_libgloss. 14850 148512009-07-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 14852 14853 * config/arm/arm.c (arm_arm_address_cost): Fix typo. 14854 Remove dead code for MINUS. 14855 148562009-07-31 Anthony Green <green@moxielogic.com> 14857 14858 * config/moxie/moxie.c (moxie_expand_prologue): Use $r5 instead of 14859 $r12 in prologue. 14860 (moxie_expand_epilogue): Ditto for epilogue. 14861 (moxie_setup_incoming_varargs): ABI change. Use 5 registers for 14862 incoming arguments. 14863 (moxie_function_arg): Ditto. 14864 (moxie_pass_by_reference): Ditto. 14865 (moxie_arg_partial_bytes): Ditto. 14866 * config/moxie/moxie.h (CALL_USED_REGISTERS): Ditto. 14867 (FUNCTION_ARG_ADVANCE) Ditto. 14868 (REG_PARM_STACK_SPACE) Ditto. 14869 (FUNCTION_ARG_REGNO_P) Dito. 14870 14871 * config.gcc: Add moxie linux config support. 14872 * gcc/config/moxie/uclinux.h: New file. 14873 148742009-07-31 DJ Delorie <dj@redhat.com> 14875 14876 * config/sh/sh.md (UNSPECV_SP_SWITCH_B): New. 14877 (UNSPECV_SP_SWITCH_E): New. 14878 (sp_switch_1): Change to an unspec. 14879 (sp_switch_2): Change to an unspec. Don't use post-inc when we 14880 replace $r15. 14881 * config/sh/sh.c (sh_expand_prologue): Use the constant pool to 14882 reference the new stack's address 14883 148842009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14885 14886 * Makefile.in (OBJS-common): Added dependence on graphite-blocking.o, 14887 graphite-clast-to-gimple.o, graphite-dependences.o, 14888 graphite-interchange.o, graphite-poly.o, graphite-ppl.o, 14889 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o. 14890 (graphite-blocking.o, 14891 graphite-clast-to-gimple.o, graphite-dependences.o, 14892 graphite-interchange.o, graphite-poly.o, graphite-ppl.o, 14893 graphite-scop-detection.o, graphite-sese-to-poly.o, and sese.o): New. 14894 * cfgloop.c (alloc_loop): Set loop->can_be_parallel to false. 14895 * cfgloop.h (struct loop): Add can_be_parallel field. 14896 * common.opt (fgraphite-identity): Moved up. 14897 (fgraphite-force-parallel): New flag. 14898 * graphite.c: Rewrite. 14899 * graphite.h: Rewrite. 14900 * passes.c (init_optimization_passes): Schedule a pass of DCE and LIM 14901 after Graphite. 14902 * toplev.c (graphite_out_file): New file descriptor. 14903 (graphite_in_file): New. 14904 (process_options): flag_graphite_force_parallel cannot be used without 14905 Graphite. 14906 * tree-ssa-loop.c: Include toplev.h. 14907 (gate_graphite_transforms): Enable flag_graphite for 14908 flag_graphite_force_parallel. 14909 149102009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14911 14912 * ChangeLog.graphite: New. 14913 * graphite-blocking.c: New. 14914 * graphite-clast-to-gimple.c: New. 14915 * graphite-clast-to-gimple.h: New. 14916 * graphite-dependences.c: New. 14917 * graphite-dependences.h: New. 14918 * graphite-interchange.c: New. 14919 * graphite-poly.c: New. 14920 * graphite-poly.h: New. 14921 * graphite-ppl.c: New. 14922 * graphite-ppl.h: New. 14923 * graphite-scop-detection.c: New. 14924 * graphite-scop-detection.h: New. 14925 * graphite-sese-to-poly.c: New. 14926 * graphite-sese-to-poly.h: New. 14927 * sese.c: New. 14928 * sese.h: New. 14929 149302009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14931 14932 * tree-chrec.c (evolution_function_right_is_integer_cst): New. 14933 * tree-chrec.h (evolution_function_right_is_integer_cst): Declared. 14934 149352009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14936 14937 * tree-chrec.c (operator_is_linear): Handle BIT_NOT_EXPR. 14938 (scev_is_linear_expression): Return false if the evolution is not 14939 affine multivariate. 14940 149412009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14942 14943 * tree-data-ref.c (graphite_find_data_references_in_stmt): New. 14944 * tree-data-ref.h (graphite_find_data_references_in_stmt): Declared. 14945 149462009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14947 14948 * tree-data-ref.c (debug_data_references): New. 14949 (debug_data_reference): New. 14950 * tree-data-ref.h (debug_data_references): Declared. 14951 (debug_data_reference): Declared. 14952 149532009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14954 14955 * tree-data-ref.c (stmt_simple_memref_p: Removed. 14956 * tree-data-ref.h (scop_p): Removed. 14957 (struct data_reference): Remove field scop. 14958 (DR_SCOP): Removed. 14959 (stmt_simple_memref_p): Removed. 14960 149612009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14962 14963 * cfgloop.h (create_empty_loop_on_edge): Pass an extra argument. 14964 * cfgloopmanip.c (create_empty_loop_on_edge): Leave the loop_latch 14965 basic block empty. 14966 149672009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14968 14969 * doc/invoke.texi (-fgraphite-force-parallel): Documented. 14970 149712009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14972 14973 * doc/invoke.texi (-fgraphite-identity): Documented. 14974 149752009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14976 14977 * tree-scalar-evolution.c: Fix comment. 14978 (instantiate_scev_1): Return unknow from scev instantiation if the 14979 result is not above instantiate_below. 14980 149812009-07-30 Sebastian Pop <sebastian.pop@amd.com> 14982 14983 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not 14984 static anymore. Instantiate the symbols that may have been introduced 14985 by chrec_apply. 14986 * tree-scalar-evolution.h (compute_overall_effect_of_inner_loop): 14987 Declared. 14988 149892009-07-30 DJ Delorie <dj@redhat.com> 14990 14991 * config/mep/mep.c (mep_asm_init_sections): Add section flags and 14992 .vliw directive to VLIW sections. 14993 149942009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 14995 14996 * Makefile.in (AUTOCONF, ACLOCAL, ACLOCAL_AMFLAGS, aclocal_deps): 14997 New variables. 14998 ($(srcdir)/configure, $(srcdir)/aclocal.m4): New rules. 14999 (AUTOHEADER): New variable. 15000 ($(srcdir)/cstamp-h.in): Use it. 15001 150022009-07-30 Michael Meissner <meissner@linux.vnet.ibm.com> 15003 Pat Haugen <pthaugen@us.ibm.com> 15004 Revital Eres <ERES@il.ibm.com> 15005 15006 * config/rs6000/vector.md (VEC_F): Add VSX support. 15007 (VEC_A): Ditto. 15008 (VEC_N): Ditto. 15009 (mov<mode>): Ditto. 15010 (vector_load_<mode>): Ditto. 15011 (vector_store_<mode>): Ditto. 15012 (vector GPR move split): Ditto. 15013 (vec_reload_and_plus_<mptrsize>): Ditto. 15014 (vec_reload_and_reg_<mptrsize>): Ditto. 15015 (add<mode>3): Ditto. 15016 (sub<mode>3): Ditto. 15017 (mul<mode>3): Ditto. 15018 (neg<mode>2): Ditto. 15019 (abs<mode>2): Ditto. 15020 (smin<mode>3): Ditto. 15021 (smax<mode>3): Ditto. 15022 (vector_eq<mode>): Ditto. 15023 (vector_gt<mode>): Ditto. 15024 (vector_ge<mode>): Ditto. 15025 (vector_gtu<mode>): Ditto. 15026 (vector_select_<mode>_uns): Ditto. 15027 (vector_eq_<mode>_p): Ditto. 15028 (vector_gt_<mode>_p): Ditto. 15029 (vector_ge_<mode>_p): Ditto. 15030 (vector_gtu_<mode>_p): Ditto. 15031 (cr6_test_for_zero): Ditto. 15032 (cr6_test_for_zero_reverse): Ditto. 15033 (cr6_test_for_lt): Ditto. 15034 (cr6_test_for_lt_reverse): Ditto. 15035 (xor<mode>3): Ditto. 15036 (ior<mode>3): Ditto. 15037 (and<mode>3): Ditto. 15038 (one_cmpl<mode>2): Ditto. 15039 (nor<mode>2): Ditto. 15040 (andc<mode>2): Ditto. 15041 (float<VEC_int<mode>2): Ditto. 15042 (unsigned_float<VEC_int><mode>2): Ditto. 15043 (fix_trunc<mode><VEC_int>2): Ditto. 15044 (fixuns_trunc<mode><VEC_int>2): Ditto. 15045 (vec_init<mode>): 15046 (vec_set<mode>): Ditto. 15047 (vec_extract<mode>): Ditto. 15048 (vec_interleave_highv4sf): Ditto. 15049 (vec_interleave_lowv4sf): Ditto. 15050 (vec_realign_load_<mode>): Ditto. 15051 (vec_shl_<mode>): Ditto. 15052 (vec_shr_<mode>): Ditto. 15053 (div<mode>3): New patterns for VSX. 15054 (vec_interleave_highv2df): Ditto. 15055 (vec_interleave_lowv2df): Ditto. 15056 (vec_pack_trunc_v2df): Ditto. 15057 (vec_pack_sfix_trunc_v2df): Ditto. 15058 (vec_pack_ufix_trunc_v2df): Ditto. 15059 (vec_unpacks_hi_v4sf): Ditto. 15060 (vec_unpacks_lo_v4sf): Ditto. 15061 (vec_unpacks_float_hi_v4si): Ditto. 15062 (vec_unpacks_float_lo_v4si): Ditto. 15063 (vec_unpacku_float_hi_v4si): Ditto. 15064 (vec_unpacku_float_lo_v4si): Ditto. 15065 (movmisalign<mode>): Ditto. 15066 (vector_ceil<mode>2): New patterns for vectorizing math library. 15067 (vector_floor<mode>2): Ditto. 15068 (vector_btrunc<mode>2): Ditto. 15069 (vector_copysign<mode>3): Ditto. 15070 15071 * config/rs6000/predicates.md (easy_vector_constant_msb): New 15072 predicate for setting the high bit in each word, used for copysign. 15073 15074 * config/rs6000/ppc-asm.h (f19): Whitespace. 15075 (f32-f63): Define if VSX. 15076 (v0-v31): Define if Altivec. 15077 (vs0-vs63): Define if VSX. 15078 15079 * config/rs6000/t-rs6000 (MD_INCLUDES): Add power7.md and vsx.md. 15080 15081 * config/rs6000/power7.md: New file, provide tuning parameters for 15082 -mcpu=power7. 15083 15084 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): Add VSX support. 15085 (rs6000_cpu_cpp_builtins): Ditto. 15086 (altivec_overloaded_builtins): Ditto. 15087 (altivec_resolve_overloaded_builtin): Ditto. 15088 15089 * config/rs6000/rs6000.opt (-mno-vectorize-builtins): Add new 15090 debug switch to disable vectorizing simple math builtin 15091 functions. 15092 15093 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): 15094 Vectorize simple math builtin functions. 15095 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define target 15096 hook to vectorize math builtins. 15097 (rs6000_override_options): Enable -mvsx on -mcpu=power7. 15098 (rs6000_builtin_conversion): Add VSX/power7 support. 15099 (rs6000_builtin_vec_perm): Ditto. 15100 (vsplits_constant): Add support for loading up a vector constant 15101 with just the high bit set in each part. 15102 (rs6000_expand_vector_init): Add VSX/power7 support. 15103 (rs6000_expand_vector_set): Ditto. 15104 (rs6000_expand_vector_extract): Ditto. 15105 (rs6000_emit_move): Ditto. 15106 (bdesc_3arg): Ditto. 15107 (bdesc_2arg): Ditto. 15108 (bdesc_1arg): Ditto. 15109 (rs6000_expand_ternop_builtin): Ditto. 15110 (altivec_expand_builtin): Ditto. 15111 (rs6000_expand_unop_builtin): Ditto. 15112 (rs6000_init_builtins): Ditto. 15113 (altivec_init_builtins): Ditto. 15114 (builtin_function_type): Ditto. 15115 (rs6000_common_init_builtins): Ditto. 15116 (rs6000_handle_altivec_attribute); Ditto. 15117 (rs6000_mangle_type): Ditto. 15118 (rs6000_vector_mode_supported_p): Ditto. 15119 (rs6000_mode_dependent_address): Altivec addresses with AND -16 15120 are mode dependent. 15121 15122 * config/rs6000/vsx.md: New file for VSX support. 15123 15124 * config/rs6000/rs6000.h (EASY_VECTOR_MSB): New macro for 15125 identifing values with just the most significant bit set. 15126 (enum rs6000_builtins): Add builtins for VSX. Add simple math 15127 vectorized builtins. 15128 15129 * config/rs6000/altivec.md (UNSPEC_VRFIP): Delete. 15130 (UNSPEC_VRFIM): Delete. 15131 (splitter for loading up vector with most significant bit): New 15132 splitter for vectorizing copysign. 15133 (altivec_vrfiz): Rename from altivec_fturncv4sf2. Add support for 15134 vectorizing simple math functions. 15135 (altivec_vrfip): Add support for vectorizing simple math functions. 15136 (altivec_vrfim): Ditto. 15137 (altivec_copysign_v4sf3): New insn for Altivec copysign support. 15138 15139 * config/rs6000/rs6000.md (UNSPEC_BPERM): New constant. 15140 (power7.md, vsx.md): Include for power7 support. 15141 (copysigndf3): Use VSX instructions if -mvsx. 15142 (negdf2_fpr): Ditto. 15143 (absdf2_fpr): Ditto. 15144 (nabsdf2_fpr): Ditto. 15145 (adddf3_fpr): Ditto. 15146 (subdf3_fpr): Ditto. 15147 (muldf3_fpr): Ditto. 15148 (divdf3_fpr): Ditto. 15149 (fix_truncdfdi2_fpr): Ditto. 15150 (cmpdf_internal1): Ditto. 15151 (fred, fred_fpr): Convert into expander/insn to add VSX support. 15152 (btruncdf2, btruncdf2_fpr): Ditto. 15153 (ceildf2, ceildf2_fpr): Ditto. 15154 (floordf2, floordf2_fpr): Ditto. 15155 (floatdidf2, floatdidf2_fpr): Ditto. 15156 (fmadddf4_fpr): Name insn. Use VSX instructions if -mvsx. 15157 (fmsubdf4_fpr): Ditto. 15158 (fnmadddf4_fpr_1): Ditto. 15159 (fnmadddf4_fpr_2): Ditto. 15160 (fnmsubdf4_fpr_1): Ditto. 15161 (fnmsubdf4_fpr_2): Ditto. 15162 (fixuns_truncdfdi2): Add expander for VSX support. 15163 (fix_truncdfdi2): Ditto. 15164 (fix_truncdfsi2): Ditto. 15165 (ftruncdf2): Ditto. 15166 (btruncsf2): Whitespace. 15167 (movdf_hardfloat32): Add support for VSX registers. 15168 (movdf_softfloat32): Ditto. 15169 (movdf_hardfloat64): Ditto. 15170 (movdf_hardfloat64_mfpgpr): Ditto. 15171 (movdf_softfloat64): Ditto. 15172 (movti splitters): Add check for vector registers supporting 15173 TImode in the future. 15174 (bpermd): Add power7 bpermd instruction. 15175 15176 * config/rs6000/altivec.h (vec_div): Define if VSX. 15177 (vec_mul): Ditto. 15178 (vec_msub): Ditto. 15179 (vec_nmadd): Ditto. 15180 (vec_nearbyint): Ditto. 15181 (vec_rint): Ditto. 15182 (vec_sqrt): Ditto. 15183 (all predicates): Use the generic builtin function, and not the V4SF 15184 specific function so that the predicates will work with VSX's V2DF. 15185 (vec_all_*): Ditto. 15186 (vec_any_*): Ditto. 15187 15188 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): 15189 Document new VSX functions and types. 15190 15191 * doc/invoke.texi (PowerPc options): Document -mpopcntd, -mvsx 15192 switches. 15193 15194 * doc/md.texi (PowerPC constraints): Document "wd", "wf", "ws", 15195 "wa", and "j" constraints. Modify "v" to talk about Altivec 15196 instead of just vector. 15197 151982009-07-30 Andrew MacLeod <amacleod@redhat.com> 15199 15200 PR debug/26475 15201 * tree-into-ssa.c (insert_phi_nodes_for, rewrite_add_phi_arguments): Set 15202 location for phi arguments. 15203 (rewrite_update_phi_arguments): Find locations for reaching defs. 15204 * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): 15205 Add location to add_phi_arg calls. 15206 * tree-loop-districbution.c (update_phis_for_loop_copy): Add locations. 15207 * tree-ssa-loop-manip.c (create_iv, add_exit_phis_edge, 15208 split_loop_exit_edge, tree_transform_and_unroll_loop): Add locations. 15209 * tree-tailcall.c (add_successor_phi_arg, eliminate_tail_call, 15210 create_tailcall_accumulator, tree_optimize_tail_calls_1): Add locations. 15211 * tree.h (struct phi_arg_d): Add location_t to PHI arguments. 15212 * tree-phinodes.c (make_phi_node): Initialize location. 15213 (resize_phi_node): Initialize location to UNKNOWN_LOCATION. 15214 (add_phi_arg): Add location parameter. 15215 (remove_phi_arg_num): Move location when moving phi argument. 15216 * omp-low.c (expand_parallel_call, expand_omp_for_static_chunk): Set 15217 location. 15218 * tree-vect-loop-manip.c (slpeel_update_phis_for_duplicate_loop, 15219 slpeel_update_phi_nodes_for_guard1, 15220 slpeel_update_phi_nodes_for_guard2, 15221 slpeel_tree_duplicate_loop_to_edge_cfg, set_prologue_iterations, 15222 vect_loop_versioning): Set locations. 15223 * tree-parloops.c (create_phi_for_local_result, 15224 transform_to_exit_first_loop, create_parallel_loop): Add locations. 15225 * gimple-pretty-print.c (dump_gimple_phi): Dump lineno's if present. 15226 * tree-vect-loop.c (get_initial_def_for_induction, 15227 vect_create_epilog_for_reduction, vect_finalize_reduction): Add 15228 locations. 15229 * tree-flow-inline.h (gimple_phi_arg_location): New. Return locus. 15230 (gimple_phi_arg_location_from_edge): New. Return locus from an edge. 15231 (gimple_phi_arg_set_location): New. Set locus. 15232 (gimple_phi_arg_has_location): New. Check for locus. 15233 (redirect_edge_var_map_location): New. Return locus from var_map. 15234 * tree-vect-data-refs.c (vect_setup_realignment): Set location. 15235 * tree-ssa-phiopt.c (conditional_replacement): Set locus when 15236 combining PHI arguments. 15237 (cond_store_replacement): Set location. 15238 * cfgexpand.c (gimple_assign_rhs_to_tree): Transfer locus if possible. 15239 * grpahite.c (add_loop_exit_phis, add_guard_exit_phis, 15240 scop_add_exit_phis_edge): Add locations. 15241 * tree-cfgcleanup.c (remove_forwarder_block, 15242 remove_forwarder_block_with_phi): Add locations. 15243 * tree-ssa-pre.c (insert_into_preds_of_block): Add locations. 15244 * tree-predcom.c (initialize_root_vars, initialize_root_vars_lm): Add 15245 locations. 15246 * tree-ssa-dce.c (forward_edge_to_pdom): Add locations. 15247 * tree-ssa.c (redirect_edge_var_map_add, ssa_redirect_edge, 15248 flush_pending_stmts): Add source location. 15249 * lambda-code.c (perfect_nestify): Maintain location stack with argument 15250 stack to preserve locations. 15251 * tree-vect-stmts.c (vectorizable_load): Add location. 15252 * tree-inline.c (copy_phis_for_bb): Copy locus. 15253 (setup_one_parameter): Add call locus to inlined parameter stmts. 15254 (initialize_inlined_parameters): Pass in call location as parameter 15255 assignment locus. 15256 (tree_function_versioning): Pass location to setup_one_parameter. 15257 * tree-ssa-phiprop.c (phiprop_insert_phi): Set locations. 15258 * tree-outof-ssa.c (struct _elim_graph): Add source_location vecs for 15259 copy and edge lists. 15260 (insert_partition_copy_on_edge, insert_value_copy_on_edge, 15261 insert_rtx_to_part_on_edge, insert_part_to_rtx_on_edge): Provide a 15262 locus parameter and override the stmt default if provided. 15263 (new_elim_graph, clear_elim_graph, delete_elim_graph, 15264 elim_graph_add_edge, elim_graph_remove_succ_edge, 15265 FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED, eliminate_build, 15266 elim_forward, elim_unvisited_predecessor, elim_backward, elim_create, 15267 eliminate_phi): Add locus info in elimination graph for each edge and 15268 value copy. 15269 (insert_backedge_copies): Copy locus if present. 15270 * tree-flow.h (struct _edge_var_map): Add locus field. 15271 * tree-switch_conversions.c (fix_phi_nodes): Add locations. 15272 * tree-cfg.c (reinstall_phi_args, gimple_make_forwarder_block, 15273 add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi): Add 15274 locations. 15275 * ipa-struct-reorg.c (make_edge_and_fix_phis_of_dest): Add locations. 15276 152772009-07-30 Martin Jambor <mjambor@suse.cz> 15278 15279 PR tree-optimization/40570 15280 * ipa-inline.c (cgraph_decide_inlining): Watch out for dead single 15281 use inlining loops. 15282 152832009-07-30 Razya Ladelsky <razya@il.ibm.com> 15284 15285 * ssa-loop-manip.c: Include langhooks.h. 15286 (rewrite_phi_with_iv): New. 15287 (rewrite_all_phi_nodes_with_iv): New. 15288 (canonicalize_loop_ivs): Move here from tree-parloops.c. 15289 Remove reduction_list argument. Use rewrite_all_phi_nodes_with_iv. 15290 * tree-parloops.c (loop_parallel_p): Move out all conditions 15291 except dependency check. 15292 (canonicalize_loop_ivs): Move to tree-ssa-loop-manip.c. 15293 (gen_parallel_loop): Call canonicalize_loop_ivs without 15294 reduction_list argument. 15295 (build_new_reduction): New. 15296 (gather_scalar_reductions): New. 15297 (try_get_loop_niter): New. 15298 (try_create_reduction_list): New. 15299 (parallleize_loops): Change the parallel conditions check. 15300 * tree-flow.h (canonicalize_loop_ivs): Remove one argument. 15301 * Makefile.in (tree-ssa-loop-manip.o): Add langhooks.h dependency. 15302 153032009-07-30 Dave Korn <dave.korn.cygwin@gmail.com> 15304 15305 * opt-functions.awk (opt_args): Allow argument to be enclosed in 15306 curly braces. 15307 * doc/options.texi (Option properties): Mention new quoting syntax. 15308 153092009-07-29 Douglas B Rupp <rupp@gnat.com> 15310 15311 * config/alpha/alpha.c (alpha_start_function): 15312 Handle VMS_DEBUG_MAIN_POINTER 15313 * config/alpha/vms.h (VMS_DEBUG_MAIN_POINTER): Define new macro. 15314 * doc/invoke.texi: Document -mdebug-main switch. 15315 153162009-07-29 Richard Henderson <rth@redhat.com> 15317 15318 * cgraph.c (cgraph_set_call_stmt_including_clones): Tidy. 15319 (cgraph_create_edge_including_clones): Likewise. 15320 * tree-inline.c (copy_bb): Operate on the correct edges 15321 when updating the callgraph. 15322 153232009-07-29 Douglas B Rupp <rupp@gnat.com> 15324 15325 * config/alpha/vms-cc.c: Deleted. 15326 * config/alpha/vms-ld.c: Deleted. 15327 * config/alpha/t-vms64: Moved to config/vms 15328 * config/alpha/vms-crt0-64.c: Moved to config/vms 15329 * config/alpha/vms-crt0.c: Moved to config/vms 15330 * config/alpha/vms-psxcrt0-64.c: Moved to config/vms 15331 * config/alpha/vms-psxcrt0.c: Moved to config/vms 15332 * config/alpha/xm-vms.h: Moved to config/vms 15333 * config/alpha/x-vms: Moved to config/vms 15334 * config/alpha/t-vms (vcrt0.o, pcrt0.o): Move rules to new file 15335 config/vms/t-vms. 15336 * config/vms/t-vms: Moved here from config/alpha. Alpha specific 15337 parts removed. (STMP_FIXPROTO, STMP_FIXINC, LIMITS_H_TEST): Set. 15338 (version): Set. 15339 * config/vms/t-vms64: Moved here from config/alpha 15340 * config/vms/vms-crt0-64.c: Moved here from config/alpha. 15341 (argc,argv,envp): Enforce 32bit malloc'ing. 15342 * config/vms/vms-psxcrt0-64.c: Likewise. 15343 * config/vms/vms-crt0.c: Moved here from config/alpha. 15344 * config/vms/vms-psxcrt0.c: Likewise. 15345 * config/vms/vms-crtl-64.h: New file. 15346 * config/vms/vms-crtl.h: New file. 15347 * config/vms/vms.opt: New file. 15348 * config/vms/xm-vms64.h: New file. 15349 * config/vms/xm-vms.h: Moved here from config/alpha. 15350 (STANARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX, STANDARD_INCLUDE_DIR): 15351 Set. 15352 * config/vms/x-vms: Moved here from config/alpha. 15353 (version, VMS_EXTRA_PARTS): Moved to t-vms. 15354 (vms-ld.o, vms-cc.o): Removed. 15355 (LN, LN_S, USE_COLLECT2, POD2MAN): Set. 15356 153572009-07-29 Douglas B Rupp <rupp@gnat.com> 15358 15359 * dwarf2out.c (add_name_and_src_coords_attributes): Push on the 15360 correct stack (obvious VMS fix). 15361 153622009-07-29 Douglas B Rupp <rupp@gnat.com> 15363 15364 * dwarf2out.c (output_file_names): Output VMS style file name, size, 15365 date, version info if VMS_DEBUGGING_INFO defined. 15366 * vmsdgbout.c (vms_file_stats_name): New functon. VMS style file name, 15367 size, date calculating code moved here. 15368 153692009-07-29 Paul Brook <paul@codesourcery.com> 15370 15371 * config/arm/lib1funcs.asm (clear_cache): Use ARM_FUNC_START and 15372 do_push/do_pop. 15373 153742009-07-29 Uros Bizjak <ubizjak@gmail.com> 15375 15376 PR target/40577 15377 * config/alpha/alpha.c (alpha_expand_unaligned_store): Convert src 15378 to DImode when generating insq_le insn. 15379 153802009-07-28 Douglas B Rupp <rupp@gnat.com> 15381 15382 * dwarf2out.c (DWARF2_INDIRECT_STRING_SUPPORT_MISSING_ON_TARGET): 15383 New macro set for VMS_DEBUGGGING_INFO. 15384 (AT_string_form): Use it. 15385 153862009-07-28 DJ Delorie <dj@redhat.com> 15387 15388 * config/mep/mep.c (vtext_section): New. 15389 (vftext_section): New. 15390 (ftext_section): New. 15391 (mep_select_section): Add support for functions. 15392 (mep_unique_section): Likewise. 15393 (mep_asm_init_sections): Likewise. 15394 (mep_encode_section_info): Remove it from here. 15395 15396 * config/mep/mep.h (USE_SELECT_SECTION_FOR_FUNCTIONS): Define. 15397 153982009-07-28 Paolo Bonzini <bonzinI@gnu.org> 15399 15400 * tree.h (TREE_DEPRECATED): Document it is used for types too. 15401 (TYPE_VECTOR_OPAQUE): Use default_def_flag 15402 154032009-07-28 Douglas B Rupp <rupp@gnat.com> 15404 15405 * dwarf2out.c (output_file_names): Test new macro 15406 DWARF2_DIR_SHOULD_END_WITH_SEPARATOR. 15407 (add_comp_dir_attribute): Likewise. 15408 154092009-07-28 Kai Tietz <kai.tietz@onevision.com> 15410 15411 * config/i386/mingw-w64.h (LINK_SPEC): Add 15412 separating space between commands. 15413 154142009-07-28 Jan Hubicka <jh@suse.cz> 15415 15416 PR tree-optimization/40759 15417 * tree-ssa-dce.c (mark_virtual_phi_result_for_renaming): Mark all uses 15418 for renaming. 15419 154202009-07-27 DJ Delorie <dj@redhat.com> 15421 15422 * config/mep/mep.c (mep_expand_builtin_saveregs): Make sure 64-bit 15423 types are dword-aligned. 15424 (mep_expand_va_start): Likewise. 15425 154262009-07-27 Olivier Hainque <hainque@adacore.com> 15427 Douglas B Rupp <rupp@gnat.com> 15428 15429 * convert.c (convert_to_pointer): Don't assume the target 15430 pointer type is POINTER_SIZE long. Fetch its precision instead. 15431 154322009-07-27 Douglas B Rupp <rupp@gnat.com> 15433 15434 * system.h (fopen): Undefine if macro. 15435 154362009-07-27 Jakub Jelinek <jakub@redhat.com> 15437 15438 * dwarf2out.c (output_cfi_p): Removed. 15439 (output_cfis): New function. 15440 (output_fde): New function, split from output_call_frame_info. 15441 (output_call_frame_info): Use it. 15442 (dwarf2out_switch_text_section): Use output_cfis. 15443 154442009-07-24 Kai Tietz <kai.tietz@onevision.com> 15445 15446 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Error build when 15447 TARGET_BI_ARCH is specified without enabling SJLJ. 15448 * config/i386/mingw32.h (MD_UNWIND_SUPPORT): Define MD_UNWIND_SUPPORT, 15449 if TARGET_64BIT and TARGET_BI_ARCH aren't defined. 15450 154512009-07-26 Mikael Pettersson <mikpe@it.uu.se> 15452 15453 * arm.md (negdi2): Use DImode if forcing a value into a register. 15454 154552009-07-26 Ira Rosen <irar@il.ibm.com> 15456 15457 PR tree-optimization/40801 15458 * tree-vect-stmts.c (vectorizable_call): Get previous copy 15459 of vector operand from the previous copy of vector statement. 15460 Pass the correct definition type value to 15461 vect_get_vec_def_for_stmt_copy(). 15462 154632009-07-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15464 15465 * collect2.c (scan_libraries): Use CONST_CAST2 to perform char ** to 15466 const char ** conversion. 15467 154682009-07-25 David Daney <ddaney@caviumnetworks.com> 15469 15470 * system.h (gcc_assert): Invoke __builtin_unreachable() instead of 15471 fancy_abort() if !ENABLE_ASSERT_CHECKING. 15472 (gcc_unreachable): Invoke __builtin_unreachable() if 15473 !ENABLE_ASSERT_CHECKING. 15474 154752009-07-25 David Daney <ddaney@caviumnetworks.com> 15476 15477 PR rtl-optimization/40445 15478 * emit-rtl.c (next_nonnote_insn_bb): New function. 15479 * rtl.h (next_nonnote_insn_bb): Declare new function. 15480 * cfgcleanup.c (try_optimize_cfg): Don't remove an empty block 15481 with no successors that is the successor of the ENTRY_BLOCK. 15482 Continue from the top after removing an empty fallthrough block. 15483 * cfgrtl.c (get_last_bb_insn): Call next_nonnote_insn_bb instead 15484 of next_nonnote_insn. 15485 154862009-07-25 David Daney <ddaney@caviumnetworks.com> 15487 15488 * cfgcleanup.c (old_insns_match_p): Handle the case of empty blocks. 15489 154902009-07-25 Martin Jambor <mjambor@suse.cz> 15491 15492 * c-common.c (c_common_attribute_table): New element for noclone. 15493 (handle_noclone_attribute): New function. Forward-declare. 15494 * tree-inline.c (tree_versionable_function_p): Check for noclone 15495 attribute. 15496 * doc/extend.texi (Labels as Values): Document need for noclone. 15497 (Function Attributes): Document noclone attribute. 15498 154992009-07-25 Jakub Jelinek <jakub@redhat.com> 15500 15501 PR rtl-optimization/34999 15502 * dwarf2out.c (struct dw_fde_struct): Add dw_fde_switch_cfi 15503 and dw_fde_switched_cold_to_hot fields. 15504 (output_cfi_p): New function. 15505 (output_call_frame_info): If fde->dw_fde_switched_sections, 15506 output 2 FDEs instead of one with corrupted header. 15507 (dwarf2out_do_cfi_startproc): New function. 15508 (dwarf2out_begin_prologue): Use it. Initialize fde->dw_fde_switch_cfi 15509 and fde->dw_fde_switched_cold_to_hot. 15510 (dwarf2out_switch_text_section): Compute 15511 fde->dw_fde_switched_cold_to_hot. Switch to new text section here. 15512 If dwarf2out_do_cfi_asm, emit .cfi_endproc before it and call 15513 dwarf2out_do_cfi_startproc plus emit again currently active CFI insns. 15514 Otherwise, compute fde->dw_fde_switch_cfi. 15515 155162009-07-24 Cary Coutant <ccoutant@google.com> 15517 15518 * tree-cfg.c (assign_discriminator): Add explicit parentheses. 15519 155202009-07-24 Cary Coutant <ccoutant@google.com> 15521 15522 * cfghooks.c (split_block): Copy discriminator to new block. 15523 * tree-cfg.c (assign_discriminator): Check location of last 15524 instruction in block as well as first. 15525 155262009-07-24 Uros Bizjak <ubizjak@gmail.com> 15527 15528 * config/i386/linux.c: Use fputs or putc instead of fprintf 15529 where appropriate. 15530 * config/i386/gas.h: Ditto. 15531 * config/i386/x86-64.h: Ditto. 15532 * config/i386/att.h: Ditto. 15533 155342009-07-24 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 15535 15536 * expmed.c (emit_store_flag): Use a recursive call to optimize the 15537 xor case. 15538 155392009-07-24 Martin Jambor <mjambor@suse.cz> 15540 15541 * ipa-prop.h (struct ipa_node_params): New flag node_enqued. 15542 (ipa_push_func_to_list_1): Declare. 15543 (ipa_push_func_to_list): New function. 15544 15545 * ipa-prop.c (ipa_push_func_to_list_1): New function. 15546 (ipa_init_func_list): Call ipa_push_func_to_list_1. 15547 (ipa_push_func_to_list): Removed. 15548 (ipa_pop_func_from_list): Clear node_enqueued flag. 15549 155502009-07-24 Andreas Krebbel <krebbel1@de.ibm.com> 15551 15552 * config/s390/s390.c (override_options): Default 15553 max-unrolled-insns to 100 for z10 tuning. 15554 155552009-07-24 Tobias Grosser <grosser@fim.uni-passau.de> 15556 15557 * Makefile.in (TREE_DATA_REF_H, tree-vrp.o, tree-cfg.o, tree-if-conv.o 15558 tree-ssa-loop.o, tree-ssa-loop-niter.o, tree-ssa-loop-ivcanon.o, 15559 tree-ssa-loop-prefetch.o, tree-predcom.o, tree-affine.o, 15560 tree-scalar-evolution.o, tree-data-ref.o, tree-vect-loop.o, 15561 tree-vect-data-refs.o, tree-loop-linear.o, tree-loop-distribution.o 15562 tree-parloops.o, tree-pretty-printer.o, fold-const.o, tree-ssa-dce.o, 15563 lambda-code.o, params.o): Cleanup use of SCEV_H and TREE_DATA_REF_H. 15564 155652009-07-24 Kai Tietz <kai.tietz@onevision.com> 15566 15567 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): Remove and 15568 use default set in mingw32.h header. 15569 * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Use for 32-bit and 15570 64-bit /mingw/include path. 15571 (STANDARD_STARTFILE_PREFIX_1): Use for 32-bit and 64-bit /mingw/lib 15572 path. 15573 155742009-07-23 Neil Vachharajani <nvachhar@google.com> 15575 15576 PR rtl-optimization/40209 15577 * loop-iv.c (iv_analysis_loop_init): Call df_note_add_problem. 15578 155792009-07-23 Uros Bizjak <ubizjak@gmail.com> 15580 15581 * config/i386/i386.c: Use ASM_LONG instead of .long. Concatenate 15582 ASM_LONG, LPREFIX, MCOUNT_NAME and PROFILE_COUNT_REGISTER strings 15583 with the rest of string where appropriate. Use fputs or putc 15584 instead of fprintf where appropriate. 15585 155862009-07-22 Michael Meissner <meissner@linux.vnet.ibm.com> 15587 Pat Haugen <pthaugen@us.ibm.com> 15588 Revital Eres <ERES@il.ibm.com> 15589 15590 * config/rs6000/vector.md: New file. Move most of the vector 15591 expander support here from altivec.md to allow for the VSX vector 15592 unit in the future. Add support for secondary_reload patterns. 15593 Rewrite the patterns for vector comparison, and vector comparison 15594 predicate instructions so that the RTL expresses the desired 15595 behavior, instead of using unspec. 15596 15597 * config/rs6000/constraints.md ("f" constraint): Use 15598 rs6000_constraints to hold the precalculated register class. 15599 ("d" constraint): Ditto. 15600 ("wd" constraint): New constraint for VSX. 15601 ("wf" constraint): Ditto. 15602 ("ws" constraint): Ditto. 15603 ("wa" constraint): Ditto. 15604 ("wZ" constraint): Ditto. 15605 ("j" constraint): Ditto. 15606 15607 * config/rs6000/predicates.md (vsx_register_operand): New 15608 predicate for VSX. 15609 (vfloat_operand): New predicate for vector.md. 15610 (vint_operand): Ditto. 15611 (vlogical_operand): Ditto. 15612 (easy_fp_constant): If VSX, 0.0 is an easy constant. 15613 (easy_vector_constant): Add VSX support. 15614 (altivec_indexed_or_indirect_operand): New predicate for 15615 recognizing Altivec style memory references with AND -16. 15616 15617 * config/rs6000/rs6000.c (rs6000_vector_reload): New static global 15618 for vector secondary reload support. 15619 (rs6000_vector_reg_class): Delete, replacing it with 15620 rs6000_constraints. 15621 (rs6000_vsx_reg_class): Ditto. 15622 (rs6000_constraints): New array to hold the register classes of 15623 each of the register constraints that can vary at runtime. 15624 (builtin_mode_to_type): New static array for builtin function type 15625 creation. 15626 (builtin_hash_table): New static hash table for builtin function 15627 type creation. 15628 (TARGET_SECONDARY_RELOAD): Define target hook. 15629 (TARGET_IRA_COVER_CLASSES): Ditto. 15630 (rs6000_hard_regno_nregs_internal): If -mvsx, floating point 15631 registers are 128 bits if VSX memory reference instructions are used. 15632 (rs6000_hard_regno_mode_ok): For VSX, only check if the VSX memory 15633 unit is being used. 15634 (rs6000_debug_vector_unit): Move into rs6000_debug_reg_global. 15635 (rs6000_debug_reg_global): Move -mdebug=reg statements here. 15636 Print several of the scheduling related parameters. 15637 (rs6000_init_hard_regno_mode_ok): Switch to putting constraints in 15638 rs6000_constraints instead of rs6000_vector_reg_class. Move 15639 -mdebug=reg code to rs6000_debug_reg_global. Add support for 15640 -mvsx-align-128 debug switch. Drop testing float_p if VSX or 15641 Altivec. Add VSX support. Setup for secondary reload support on 15642 Altivec/VSX registers. 15643 (rs6000_override_options): Make power7 set the scheduling groups 15644 like the power5. Add support for new debug switches to override 15645 the scheduling defaults. Temporarily disable -mcpu=power7 from 15646 setting -mvsx. Add support for debug switches -malways-hint, 15647 -msched-groups, and -malign-branch-targets. 15648 (rs6000_buitlin_conversion): Add support for returning unsigned 15649 vector conversion functions to fix regressions due to stricter 15650 type checking. 15651 (rs6000_builtin_mul_widen_even): Ditto. 15652 (rs6000_builtin_mul_widen_odd): Ditto. 15653 (rs6000_builtin_vec_perm): Ditto. 15654 (rs6000_vec_const_move): On VSX, use xxlxor to clear register. 15655 (rs6000_expand_vector_init): Initial VSX support for using xxlxor 15656 to zero a register. 15657 (rs6000_emit_move): Fixup invalid const symbol_ref+reg that is 15658 generated upstream. 15659 (bdesc_3arg): Add builtins for unsigned types. Add builtins for 15660 VSX types for bit operations. Changes to accomidate vector.md. 15661 (bdesc_2arg): Ditto. 15662 (bdesc_1arg): Ditto. 15663 (struct builtin_description_predicates): Rewrite predicate 15664 handling so that RTL describes the operation, instead of passing 15665 the instruction to be used as a string argument. 15666 (bdesc_altivec_preds): Ditto. 15667 (altivec_expand_predicate_builtin): Ditto. 15668 (altivec_expand_builtin): Ditto. 15669 (rs6000_expand_ternop_builtin): Use a switch instead of an if 15670 statement for vsldoi support. 15671 (altivec_expand_ld_builtin): Change to use new names from vector.md. 15672 (altivec_expand_st_builtin): Ditto. 15673 (paired_expand_builtin): Whitespace changes. 15674 (rs6000_init_builtins): Add V2DF/V2DI types. Initialize the 15675 builtin_mode_to_type table for secondary reload. Call 15676 builtin_function_type to build random builtin functions. 15677 (altivec_init_builtins): Change to use builtin_function_type to 15678 create builtin function types dynamically as we need them. 15679 (builtin_hash_function): New support for hashing the tree types 15680 for builtin function as we need it, rather than trying to build 15681 all of the trees that we need. Add initial preliminary VSX support. 15682 (builtin_function_type): Ditto. 15683 (builtin_function_eq): Ditto. 15684 (builtin_hash_struct): Ditto. 15685 (rs6000_init_builtins): Ditto. 15686 (rs6000_common_init_builtins): Ditto. 15687 (altivec_init_builtins): Ditto. 15688 (rs6000_common_init_builtins): Ditto. 15689 (enum reload_reg_type): New enum for simplifing reg classes. 15690 (rs6000_reload_register_type): Simplify register classes into GPR, 15691 Vector, and other registers. Altivec and VSX addresses in reload. 15692 (rs6000_secondary_reload_inner): Ditto. 15693 (rs6000_ira_cover_classes): New target hook, that returns the 15694 appropriate cover classes, based on -mvsx being used or not. 15695 (rs6000_secondary_reload_class): Add VSX support. 15696 (get_vec_cmp_insn): Delete, rewrite vector conditionals. 15697 (get_vsel_insn): Ditto. 15698 (rs6000_emit_vector_compare): Rewrite vector conditional support 15699 so that where we can, we use RTL operators, instead of blindly use 15700 UNSPEC. 15701 (rs6000_emit_vector_select): Ditto. 15702 (rs6000_emit_vector_cond_expr): Ditto. 15703 (rs6000_emit_minmax): Directly generate min/max under altivec, vsx. 15704 (create_TOC_reference): Add -mdebug=addr support. 15705 (emit_frame_save): VSX loads/stores need register indexed addressing. 15706 15707 * config/rs6000/rs6000.md: Include vector.md. 15708 15709 * config/rs6000/t-rs6000 (MD_INCLUDES): Add vector.md. 15710 15711 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 15712 support for V2DI, V2DF in logical, permute, select operations. 15713 15714 * config/rs6000/rs6000.opt (-mvsx-scalar-double): Add new debug 15715 switch for vsx/power7. 15716 (-mvsx-scalar-memory): Ditto. 15717 (-mvsx-align-128): Ditto. 15718 (-mallow-movmisalign): Ditto. 15719 (-mallow-df-permute): Ditto. 15720 (-msched-groups): Ditto. 15721 (-malways-hint): Ditto. 15722 (-malign-branch-targets): Ditto. 15723 15724 * config/rs6000/rs6000.h (IRA_COVER_CLASSES): Delete, use target 15725 hook instead. 15726 (IRA_COVER_CLASSES_PRE_VSX): Cover classes if not -mvsx. 15727 (IRA_COVER_CLASSES_VSX): Cover classes if -mvsx. 15728 (rs6000_vector_reg_class): Delete. 15729 (rs6000_vsx_reg_class): Ditto. 15730 (enum rs6000_reg_class_enum): New enum for the constraints that 15731 vary based on target switches. 15732 (rs6000_constraints): New array to hold the register class for all 15733 of the register constraints that vary based on the switches used. 15734 (ALTIVEC_BUILTIN_*_UNS): Add unsigned builtin functions. 15735 (enum rs6000_builtins): Add unsigned varients for the builtin 15736 declarations returned by target hooks for expanding multiplies, 15737 select, and permute operations. Add VSX builtins. 15738 (enum rs6000_builtin_type_index): Add entries for VSX. 15739 (V2DI_type_node): Ditto. 15740 (V2DF_type_node): Ditto. 15741 (unsigned_V2DI_type_node): Ditto. 15742 (bool_long_type_node): Ditto. 15743 (intDI_type_internal_node): Ditto. 15744 (uintDI_type_internal_node): Ditto. 15745 (double_type_internal_node): Ditto. 15746 15747 * config/rs6000/altivec.md (whole file): Move all expanders to 15748 vector.md from altivec.md. Rename insn matching functions to be 15749 altivec_foo. 15750 (UNSPEC_VCMP*): Delete, rewrite vector comparisons. 15751 (altivec_vcmp*): Ditto. 15752 (UNSPEC_VPERM_UNS): New, add for unsigned types using vperm. 15753 (VM): New iterator for moves that includes the VSX types. 15754 (altivec_vperm_<mode>): Add VSX types. Add unsigned types. 15755 (altivec_vperm_<mode>_uns): New, for unsigned types. 15756 (altivec_vsel_*): Rewrite vector comparisons and predicate builtins. 15757 (altivec_eq<mode>): Ditto. 15758 (altivec_gt<mode>): Ditto. 15759 (altivec_gtu<mode>): Ditto. 15760 (altivec_eqv4sf): Ditto. 15761 (altivec_gev4sf): Ditto. 15762 (altivec_gtv4sf): Ditto. 15763 (altivec_vcmpbfp_p): Ditto. 15764 157652009-07-23 Richard Earnshaw <rearnsha@arm.com> 15766 15767 * arm.md (split for ior/xor with shift and zero-extend): Cast op3 to 15768 unsigned HWI. 15769 157702009-07-23 Uros Bizjak <ubizjak@gmail.com> 15771 15772 PR target/40832 15773 * config/i386/i386.c (output_387_ffreep): Rewrite to use 15774 ASM_SHORT instead of .word. 15775 * config/i386/i386.md (*tls_global_dynamic_64): Use ASM_SHORT 15776 instead of .word in asm template. 15777 157782009-07-22 Vladimir Makarov <vmakarov@redhat.com> 15779 15780 PR target/37488 15781 * ira-lives.c (bb_has_abnormal_call_pred): New function. 15782 (process_bb_node_lives): Use it. 15783 15784 * ira.c (setup_cover_and_important_classes): Don't setup 15785 ira_important_class_nums. Add cover classes to the end of 15786 important classes. 15787 (cover_class_order, comp_reg_classes_func, reorder_important_classes): 15788 New. 15789 (find_reg_class_closure): Use reorder_important_classes. 15790 15791 * config/i386/i386.h (IRA_COVER_CLASSES): Remove. 15792 15793 * config/i386/i386.c (i386_ira_cover_classes): New function. 15794 (TARGET_IRA_COVER_CLASSES): Redefine. 15795 15796 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Add a comment about 15797 importance of order of cover classes in the array. 15798 157992009-07-22 Diego Novillo <dnovillo@google.com> 15800 15801 * tree-pass.h (TDF_EH): Define. 15802 * gimple-pretty-print.c (dump_gimple_stmt): If FLAGS 15803 contains TDF_EH, print the EH region number holding GS. 15804 * tree-dump.c (dump_options): Add "eh". 15805 * doc/invoke.texi: Document it. 15806 158072009-07-22 Doug Kwan <dougkwan@google.com> 15808 15809 * config/arm/arm.md (subdi3) Copy non-reg values to DImode registers. 15810 158112009-07-22 Michael Matz <matz@suse.de> 15812 15813 PR tree-optimization/35229 15814 PR tree-optimization/39300 15815 15816 * tree-ssa-pre.c (includes): Include tree-scalar-evolution.h. 15817 (inhibit_phi_insertion): New function. 15818 (insert_into_preds_of_block): Call it for REFERENCEs. 15819 (init_pre): Initialize and finalize scalar evolutions. 15820 * Makefile.in (tree-ssa-pre.o): Depend on tree-scalar-evolution.h . 15821 158222009-07-22 Uros Bizjak <ubizjak@gmail.com> 15823 15824 * config/i386/predicates.md (zero_extended_scalar_load_operand): 15825 Use CONST_VECTOR_NUNITS to determine number of elements. 15826 158272009-07-22 Andreas Krebbel <krebbel1@de.ibm.com> 15828 15829 * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints. 15830 (U, W): Constraints are now deprecated and will be removed if we 15831 run out of letters. 15832 * config/s390/s390.md (U, W): Replaced with ZQZR, ZSZT throughout 15833 the file. 15834 ("prefetch"): Add the stcmh instruction for prefetching. 15835 * config/s390/s390.c (s390_symref_operand_p): Function moved. No 15836 changes. 15837 (s390_short_displacement): Return always true if compiling for 15838 machines not providing the long displacement facility. 15839 (s390_mem_constraint): Support the new constraint letter Z. 15840 (s390_check_qrst_address): New function. 15841 158422009-07-21 DJ Delorie <dj@redhat.com> 15843 15844 * config/mep/mep.c (mep_legitimize_arg): Leave control registers 15845 alone too. 15846 158472009-07-21 Jason Merrill <jason@redhat.com> 15848 15849 * c-common.c (max_tinst_depth): Increase default to 1024. 15850 158512009-07-21 Uros Bizjak <ubizjak@gmail.com> 15852 15853 * config/i386/sse.md (vec_unpacku_float_hi_v4si): New expander. 15854 (vec_unpacku_float_lo_v4si): Ditto. 15855 158562009-07-21 Uros Bizjak <ubizjak@gmail.com> 15857 15858 PR target/40811 15859 * config/i386/sse.md (sse2_cvtudq2ps): New expander. 15860 (enum ix86_builtins): Add IX86_BUILTIN_CVTUDQ2PS. 15861 (builtin_description): Add __builtin_ia32_cvtudq2ps. 15862 (ix86_vectorize_builtin_conversion): Handle IX86_BUILTIN_CVTUDQ2PS. 15863 158642009-07-21 Jakub Jelinek <jakub@redhat.com> 15865 15866 PR tree-optimization/40813 15867 * tree-inline.c (copy_bb): Regimplify RHS after last stmt, not before 15868 it. 15869 158702009-07-21 Kaz Kojima <kkojima@gcc.gnu.org> 15871 15872 * config/sh/sh.c (sh_gimplify_va_arg_expr): Wrap the result 15873 with a NOP_EXPR if needed. 15874 158752009-07-21 Paul Brook <paul@codesourcery.com> 15876 15877 * tree-vectorizer.c (increase_alignment): Handle nested arrays. 15878 Terminate debug dump with newline. 15879 158802009-07-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 15881 15882 * pa.c (compute_zdepwi_operands): Limit deposit length to 32 - lsb. 15883 Cast "1" to unsigned HOST_WIDE_INT. 15884 (compute_zdepdi_operands): Limit maximum length to 64 bits. Limit 15885 deposit length to the maximum length - lsb. Extend length if 15886 HOST_BITS_PER_WIDE_INT is 32. 15887 158882009-07-20 Olatunji Ruwase <tjruwase@google.com> 15889 15890 * cgraph.h (constant_pool_htab): New function. 15891 (constant_descriptor_tree): Move from varasm.c. 15892 * varasm.c (constant_pool_htab): New function. 15893 (constant_descriptor_tree): Move to cgraph.h. 15894 158952009-07-20 Olatunji Ruwase <tjruwase@google.com> 15896 15897 * toplev.c: Invoke FINISH_UNIT callbacks before call to finalize(). 15898 158992009-07-20 Shujing Zhao <pearly.zhao@oracle.com> 15900 15901 * Makefile.in (TREE_INLINE_H, tree-inline.o, cgraph.o): Remove 15902 $(VARRAY_H). 15903 159042009-07-20 Xinliang David Li <davidxl@google.com> 15905 15906 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add length check. 15907 159082009-07-20 Adam Nemet <anemet@caviumnetworks.com> 15909 15910 * config/mips/mips.md (move_type): Add arith. 15911 (type): Handle arith. 15912 (zero_extendsidi2): Rename this into ... 15913 (*zero_extendsidi2): ... this. Don't match if ISA_HAS_EXT_INS. 15914 (zero_extendsidi2): New expander. 15915 (*zero_extendsidi2_dext): New pattern. 15916 159172009-07-20 Nick Clifton <nickc@redhat.com> 15918 15919 * config.gcc (mips64-*-*): Add definition of tm_defines in order 15920 to set MIPS_ABI_DEFAULT. 15921 * config/mips/vr.h (MIPS_ABI_DEFAULT): Remove definition. 15922 159232009-07-20 Jakub Jelinek <jakub@redhat.com> 15924 15925 * tree-object-size.c (addr_object_size): Handle unions with 15926 array in it as last field of structs in __bos (, 1) as __bos (, 0). 15927 15928 PR tree-optimization/40792 15929 * tree.c (build_function_type_skip_args): Remove bogus assert. 15930 159312009-07-20 Jan Hubicka <jh@suse.cz> 15932 Martin Jambor <mjambor@suse.cz> 15933 15934 * cgraph.h (combined_args_to_skip): New field. 15935 * cgraph.c (cgraph_create_virtual_clone): Properly handle 15936 combined_args_to_skip and args_to_skip. 15937 * tree-inline.c (update_clone_info): New function. 15938 (tree_function_versioning): Call update_clone_info. 15939 * cgraphunit.c (cgraph_materialize_clone): Dump materialized 15940 functions. 15941 (cgraph_materialize_all_clones): More extensive dumping, working 15942 with combined_args_to_skip rather than args_to_skip. 15943 159442009-07-20 Ira Rosen <irar@il.ibm.com> 15945 15946 * tree-vectorizer.h (vectorizable_condition): Add parameters. 15947 * tree-vect-loop.c (vect_is_simple_reduction): Support COND_EXPR. 15948 (get_initial_def_for_reduction): Likewise. 15949 (vectorizable_reduction): Skip the check of first operand in case 15950 of COND_EXPR. Add check that it is outer loop vectorization if 15951 nested cycle was detected. Call vectorizable_condition() for 15952 COND_EXPR. If reduction epilogue cannot be created do not fail for 15953 nested cycles (if it is not double reduction). Assert that there 15954 is only one type in the loop in case of COND_EXPR. Call 15955 vectorizable_condition() to vectorize COND_EXPR. 15956 * tree-vect-stmts.c (vectorizable_condition): Update comment. 15957 Add parameters. Allow nested cycles if called from 15958 vectorizable_reduction(). Use reduction vector variable if provided. 15959 (vect_analyze_stmt): Call vectorizable_reduction() before 15960 vectorizable_condition(). 15961 (vect_transform_stmt): Update call to vectorizable_condition(). 15962 159632009-07-20 Christian Bruel <christian.bruel@st.com> 15964 15965 * config/sh/sh.opt (-mfmovd): Resurrect and document. 15966 * doc/invoke.texi (-mfmovd): Likewise. 15967 * config/sh/sh.h (TARGET_FMOVD, MASK_FMOVD): Remove default setting. 15968 159692009-07-20 Jan Hubicka <jh@suse.cz> 15970 15971 * tree-ssa-dce.c (remove_dead_phis): Only look for abnormal PHIs 15972 when handling SSA name. 15973 159742009-07-19 Jan Hubicka <jh@suse.cz> 15975 15976 PR tree-optimization/40676 15977 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do renaming on all 15978 virtual PHIs in empty BBs. 15979 159802009-07-18 Adam Nemet <anemet@caviumnetworks.com> 15981 15982 * combine.c (make_compound_operation) <SUBREG>: If force_to_mode 15983 re-expanded the compound use gen_lowpart instead to convert to the 15984 desired mode. 15985 159862009-07-18 Adam Nemet <anemet@caviumnetworks.com> 15987 15988 * combine.c (try_widen_shift_mode): Add COUNT, OUTER_CODE and 15989 OUTER_CONST arguments. 15990 <LSHIFTRT>: Use them to allow widening if the bits shifted in from 15991 the new wider mode will be masked off. 15992 (simplify_shift_const_1): Adjust calls to try_widen_shift_mode. 15993 159942009-07-18 Adam Nemet <anemet@caviumnetworks.com> 15995 15996 * combine.c (try_widen_shift_mode) <LSHIFTRT>: Allow widening if the 15997 high-order bits are zero. 15998 159992009-07-18 Adam Nemet <anemet@caviumnetworks.com> 16000 16001 * combine.c (simplify_shift_const_1): Split code to determine 16002 shift_mode into ... 16003 (try_widen_shift_mode): ... here. Allow widening for ASHIFTRT if the 16004 new bits shifted in are identical to the old sign bit. 16005 160062009-07-18 Richard Guenther <rguenther@suse.de> 16007 16008 PR c/40787 16009 * gimplify.c (gimplify_call_expr): Reject code using results from 16010 functions returning void. 16011 160122009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com> 16013 16014 * doc/md.texi: Document the new PowerPC "es" constraint. 16015 Document that "m" can include automodified addresses on this target, 16016 and explain how %U must be used. Extend the "Q" and "Z" documentation 16017 to suggest "es" as well as "m". 16018 * config/rs6000/constraints.md (es): New memory constraint. 16019 (Q, Z): Update strings to match new documentation. 16020 160212009-07-18 Richard Sandiford <r.sandiford@uk.ibm.com> 16022 16023 * config/rs6000/rs6000.c (rs6000_mode_dependent_address): Allow any 16024 offset from virtual_stack_vars_rtx and arg_pointer_rtx. 16025 * config/rs6000/predicates.md (volatile_mem_operand): Use 16026 offsettable_nonstrict_memref_p. 16027 * config/rs6000/rs6000.md (*floatsidf2_internal): Remove split check. 16028 (*floatunssidf2_internal): Likewise. 16029 (*fix_truncdfsi2_internal): Likewise. 16030 (*fix_trunctfsi2_internal): Likewise. 16031 160322009-07-17 Anatoly Sokolov <aesok@post.ru> 16033 16034 * config/avr/avr-devices.c (avr_mcu_t): Add atmega8u2, atmega16u2 and 16035 atmega32u2 devices. 16036 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 16037 160382009-07-17 Richard Guenther <rguenther@suse.de> 16039 16040 PR c/40401 16041 * tree-pass.h (pass_diagnose_omp_blocks): Declare. 16042 (pass_warn_unused_result): Likewise. 16043 (TODO_set_props): Remove. 16044 * omp-low.c (diagnose_omp_structured_block_errors): Change to 16045 run as a pass. 16046 (pass_diagnose_omp_blocks): Define. 16047 * c-decl.c (pop_file_scope): Do not finalize the CU here. 16048 (c_gimple_diagnostics_recursively): Remove. 16049 (finish_function): Do not call it. 16050 (c_write_global_declarations): Continue after errors. 16051 Finalize the CU here. 16052 * c-gimplify.c (c_genericize): Do not gimplify here. 16053 * c-common.c (c_warn_unused_result): Move ... 16054 * tree-cfg.c (do_warn_unused_result): ... here. 16055 (run_warn_unused_result): New function. 16056 (gate_warn_unused_result): New function. 16057 (pass_warn_unused_result): New pass. 16058 * c-common.h (c_warn_unused_result): Remove. 16059 * flags.h (flag_warn_unused_result): Declare. 16060 * c-opts.c (c_common_init_options): Enable flag_warn_unused_result. 16061 * opts.c (flag_warn_unused_result): Initialize to false. 16062 * toplev.c (compile_file): Add comment. 16063 * omp-low.c (create_omp_child_function): Do not register 16064 the function with the frontend. 16065 (diagnose_omp_structured_block_errors): Prepare to be 16066 called as optimization pass. 16067 (gate_diagnose_omp_blocks): New function. 16068 (pass_diagnose_omp_blocks): New pass. 16069 * cgraph.h (cgraph_optimize): Remove. 16070 (cgraph_analyze_function): Likewise. 16071 * cgraph.c (cgraph_add_new_function): Gimplify C++ thunks. 16072 * cgraphunit.c (cgraph_lower_function): Lower nested functions 16073 before their parents here. 16074 (cgraph_finalize_function): Not here. 16075 (cgraph_analyze_function): Gimplify functions here. 16076 (cgraph_finalize_compilation_unit): Continue after errors. 16077 Optimize the callgraph from here. 16078 (cgraph_optimize): Make static. 16079 * langhooks.c (write_global_declarations): Finalize the CU. 16080 * gimplify.c (gimplify_asm_expr): Do not emit ASMs with errors. 16081 (gimplify_function_tree): Assert we gimplify only once. 16082 Set PROP_gimple_any property. 16083 * tree-nested.c (gimplify_all_functions): New function. 16084 (lower_nested_functions): Gimplify all nested functions. 16085 * gimple.h (diagnose_omp_structured_block_errors): Remove. 16086 * passes.c (init_optimization_passes): Add pass_warn_unused_result 16087 and pass_diagnose_omp_blocks after gimplification. Do not 16088 set TODO_set_props on all_lowering_passes. 16089 (execute_one_pass): Do not handle TODO_set_props. 16090 * Makefile.in (cgraphunit.o): Add $(TREE_DUMP_H) dependency. 16091 (gimplify.o): Add tree-pass.h dependency. 16092 * tree-inline.c (copy_statement_list): Properly copy STATEMENT_LIST. 16093 (copy_tree_body_r): Properly handle TARGET_EXPR like SAVE_EXPR. 16094 (unsave_r): Likewise. 16095 * c-omp.c (c_finish_omp_atomic): Set DECL_CONTEXT on the 16096 temporary variable. 16097 160982009-07-17 Sandra Loosemore <sandra@codesourcery.com> 16099 16100 * doc/service.texi (Service): Restore previously removed link, 16101 which isn't broken after all. 16102 161032009-07-17 Richard Guenther <rguenther@suse.de> 16104 16105 PR tree-optimization/40321 16106 * tree-ssa-pre.c (add_to_exp_gen): Also add names defined by 16107 PHI nodes to the maximal set. 16108 (make_values_for_phi): Add PHI arguments to the maximal set. 16109 (execute_pre): Dump PHI_GEN and the maximal set. 16110 161112009-07-17 Jakub Jelinek <jakub@redhat.com> 16112 16113 PR c++/40780 16114 * gimplify.c (gimplify_conversion): Don't change non-conversions into 16115 VIEW_CONVERT_EXPR. 16116 161172009-07-16 Sandra Loosemore <sandra@codesourcery.com> 16118 16119 * doc/extend.texi (Nested Functions): Replace broken link with 16120 textual reference. 16121 * doc/service.texi (Service): Remove broken link. 16122 161232009-07-16 H.J. Lu <hongjiu.lu@intel.com> 16124 16125 PR bootstrap/40781 16126 * builtins.c (expand_builtin_memcmp): Use loc instead of 16127 EXPR_LOCATION (exp). 16128 (expand_builtin_strncmp): Likewise. 16129 161302009-07-17 Aldy Hernandez <aldyh@redhat.com> 16131 Manuel López-Ibáñez <manu@gcc.gnu.org> 16132 16133 PR 40435 16134 * tree-complex.c, tree-loop-distribution.c, tree.c, tree.h, 16135 builtins.c, fold-const.c, omp-low.c, cgraphunit.c, tree-ssa-ccp.c, 16136 tree-ssa-dom.c, gimple-low.c, expr.c, tree-ssa-ifcombine.c, 16137 c-decl.c, stor-layout.c, tree-if-conv.c, c-typeck.c, gimplify.c, 16138 calls.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c, 16139 tree-ssa-forwprop.c, c-convert.c, c-omp.c, varasm.c, 16140 tree-inline.c, c-common.c, c-common.h, gimple.c, 16141 tree-switch-conversion.c, gimple.h, tree-cfg.c, c-parser.c, 16142 convert.c: Add location argument to fold_{unary,binary,ternary}, 16143 fold_build[123], build_call_expr, build_size_arg, 16144 build_fold_addr_expr, build_call_array, non_lvalue, size_diffop, 16145 fold_build1_initializer, fold_build2_initializer, 16146 fold_build3_initializer, fold_build_call_array, 16147 fold_build_call_array_initializer, fold_single_bit_test, 16148 omit_one_operand, omit_two_operands, invert_truthvalue, 16149 fold_truth_not_expr, build_fold_indirect_ref, fold_indirect_ref, 16150 combine_comparisons, fold_builtin_*, fold_call_expr, 16151 build_range_check, maybe_fold_offset_to_address, round_up, 16152 round_down. 16153 161542009-07-16 Jason Merrill <jason@redhat.com> 16155 16156 PR libstdc++/37907 16157 * c-common.c (c_common_reswords): Add __is_standard_layout 16158 and __is_trivial. 16159 * c-common.h (enum rid): Add RID_IS_STD_LAYOUT and RID_IS_TRIVIAL. 16160 * doc/implement-cxx.texi: New. 16161 * doc/gcc.texi: Include it. 16162 161632009-07-16 DJ Delorie <dj@redhat.com> 16164 16165 * config/m32c/m32c.c (m32c_compare_redundant): Avoid removing 16166 compares that may be indirectly affected by previous instructions. 16167 161682009-07-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 16169 16170 * builtins.c (do_mpc_arg2): New. 16171 (fold_builtin_2): Fold builtin cpow. 16172 * real.h (HAVE_mpc_pow): New. 16173 161742009-07-16 Bingfeng Mei <bmei@broadcom.com> 16175 16176 * modulo-sched.c (sms_schedule): stage_count <= 1 as correct 16177 comparison to skip unprofitable schedule 16178 161792009-07-16 Simon Baldwin <simonb@google.com> 16180 16181 * gcc.c (option_map): New flag -no-canonical-prefixes. 16182 * (display_help): Print help text for new flag. 16183 * (process_command): Move options translation and language specifics 16184 and handle new flag early. Use it to set a function pointer to a 16185 prefix builder. Replace make_relative_prefix calls with calls to 16186 the function pointed to. Ignore new flag in regular options handling. 16187 * doc/invoke.texi (Overall Options): Documented -no-canonical-prefixes. 16188 161892009-07-15 DJ Delorie <dj@redhat.com> 16190 16191 * config/mep/mep.md (sibcall_internal): Change register to avoid 16192 argument registers. 16193 (sibcall_value_internal): Likewise. 16194 161952009-07-15 Eric Botcazou <ebotcazou@adacore.com> 16196 16197 PR rtl-optimization/40710 16198 * resource.c (mark_target_live_regs): Reset DF problem to LR. 16199 162002009-07-15 Adam Nemet <anemet@caviumnetworks.com> 16201 16202 * config/mips/mips.md (*extenddi_truncate<mode>, 16203 *extendsi_truncate<mode>): Change type attribute to move_type 16204 with shift_shift. Split out code handling exts from here ... 16205 (*extend<GPR:mode>_truncate<SHORT:mode>_exts): ... to this new 16206 pattern. 16207 (*extendhi_truncateqi): Change type attribute to move_type with 16208 shift_shift. Split out code handling exts from here ... 16209 (*extendhi_truncateqi_exts): ... to this new pattern. 16210 162112009-07-15 Uros Bizjak <ubizjak@gmail.com> 16212 16213 * config/i386/sse.md (copysign<mode>3): Use "and-not" SSE instruction 16214 instead of "and" with inverted sign bit mask value. Use 16215 "nonimmediate_operand" for operand 1 and operand 2 predicate. 16216 Allocate registers only for operand 4 and operand 5. 16217 162182009-07-15 Jakub Jelinek <jakub@redhat.com> 16219 16220 PR middle-end/40747 16221 * fold-const.c (fold_cond_expr_with_comparison): When folding 16222 < and <= to MIN, make sure the MIN uses the same type as the 16223 comparison's operands. 16224 162252009-07-15 Richard Earnshaw <rearnsha@arm.com> 16226 16227 * arm.md (ior_xor): New code iterator. 16228 (split for ior/xor with shift and zero-extend): New split pattern. 16229 * arm/predicates.md (subreg_lowpart_operator): New special predicate. 16230 162312009-07-15 Richard Guenther <rguenther@suse.de> 16232 16233 * tree-ssa-structalias.c (make_constraint_from_heapvar): Initialize 16234 offset member. 16235 162362009-07-15 Richard Guenther <rguenther@suse.de> 16237 16238 PR middle-end/40753 16239 * alias.c (ao_ref_from_mem): Reject FUNCTION_DECL and LABEL_DECL bases. 16240 162412009-07-15 Maxim Kuvyrkov <maxim@codesourcery.com> 16242 16243 * config/m68k/linux-unwind.h (m68k_fallback_frame_state): Update to 16244 handle 2.6.30 kernel. 16245 162462009-07-15 DJ Delorie <dj@redhat.com> 16247 16248 * config/mep/mep.md (sibcall_internal): Change register to allow 16249 for 24-bit addresses. 16250 (sibcall_value_internal): Likewise. 16251 162522009-07-14 Ghassan Shobaki <ghassan.shobaki@amd.com> 16253 16254 * doc/invoke.texi: Added descriptions of the scheduling heuristics 16255 that are enabled/disabled by the flags introduced by a previous patch. 16256 162572009-07-14 DJ Delorie <dj@redhat.com> 16258 16259 * config/mep/mep.md (sibcall_internal): Include non-toggling 16260 non-jmp case. 16261 (sibcall_value_internal): Likewise. 16262 162632009-07-14 Taras Glek <tglek@mozilla.com> 16264 Rafael Espindola <espindola@google.com> 16265 16266 * doc/sourcebuild.texi: Document install-plugin target. 16267 * configure.ac: Added install-plugin target to language makefiles. 16268 * configure: Regenerate. 16269 * Makefile.in (install-plugin): Install more headers, 16270 depend on lang.install-plugin. 16271 162722009-07-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 16273 16274 * tree-vrp.c (vrp_evaluate_conditional): Mark strings for 16275 translation. 16276 162772009-07-14 DJ Delorie <dj@redhat.com> 16278 16279 * config/mep/mep.c (mep_vliw_jmp_match): New function. 16280 * config/mep/mep-protos.h (mep_vliw_jmp_match): Prototype it. 16281 * config/mep/mep.md (sibcall_internal): Change test from 16282 mep_vliw_mode_match to mep_vliw_jmp_match. 16283 (sibcall_value_internal): Likewise. 16284 162852009-07-14 Uros Bizjak <ubizjak@gmail.com> 16286 16287 * config/i386/sse.md (copysign<mode>3): New expander. 16288 * config/i386/i386-protos.h (ix86_build_signbit_mask): New prototype. 16289 * config/i386/i386.c (ix86_build_signbit_mask): Make public. 16290 Use ix86_build_const_vector. 16291 (enum ix86_builtins): Add IX86_BUILTIN_CPYSGNPS and 16292 IX86_BUILTIN_CPYSGNPD. 16293 (builtin_description): Add __builtin_ia32_copysignps and 16294 __builtin_ia32_copysignpd. 16295 (ix86_builtin_vectorized_function): Handle BUILT_IN_COPYSIGN 16296 and BUILT_IN_COPYSIGNF. 16297 162982009-07-13 Jason Merrill <jason@redhat.com> 16299 16300 * builtins.c (can_trust_pointer_alignment): New fn. 16301 (get_pointer_alignment): Factor it out from here. 16302 * tree.h: Declare it. 16303 163042009-07-14 David Edelsohn <edelsohn@gnu.org> 16305 16306 * config/rs6000/predicates.md (offsettable_mem_operand): Test 16307 RTX_AUTOINC class. 16308 163092009-07-14 Dodji Seketeli <dodji@redhat.com> 16310 16311 PR debug/40705 16312 PR c++/403057 16313 * dwarf2.out.c (gen_type_die_with_usage): Added comment. 16314 163152009-07-14 Richard Guenther <rguenther@suse.de> 16316 Andrey Belevantsev <abel@ispras.ru> 16317 16318 PR middle-end/40745 16319 * cfgexpand.c (partition_stack_vars): Do not bother to update 16320 alias information when not optimizing. 16321 163222009-07-14 Richard Guenther <rguenther@suse.de> 16323 Andrey Belevantsev <abel@ispras.ru> 16324 16325 * tree-ssa-alias.h (refs_may_alias_p_1): Declare. 16326 (pt_solution_set): Likewise. 16327 * tree-ssa-alias.c (refs_may_alias_p_1): Export. 16328 * tree-ssa-structalias.c (pt_solution_set): New function. 16329 * final.c (rest_of_clean_state): Free SSA data structures. 16330 * print-rtl.c (print_decl_name): Remove. 16331 (print_mem_expr): Implement in terms of print_generic_expr. 16332 * alias.c (ao_ref_from_mem): New function. 16333 (rtx_refs_may_alias_p): Likewise. 16334 (true_dependence): Query alias-export info. 16335 (canon_true_dependence): Likewise. 16336 (write_dependence_p): Likewise. 16337 * tree-dfa.c (get_ref_base_and_extent): For void types leave 16338 size unknown. 16339 * emit-rtl.c (component_ref_for_mem_expr): Remove. 16340 (mem_expr_equal_p): Use operand_equal_p. 16341 (set_mem_attributes_minus_bitpos): Do not use 16342 component_ref_for_mem_expr. 16343 * cfgexpand.c (add_partitioned_vars_to_ptset): New function. 16344 (update_alias_info_with_stack_vars): Likewise. 16345 (partition_stack_vars): Call update_alias_info_with_stack_vars. 16346 * tree-ssa.c (delete_tree_ssa): Do not release SSA names 16347 explicitly nor clear stmt operands. 16348 Free the decl-to-pointer map. 16349 * tree-optimize.c (execute_free_datastructures): Do not free 16350 SSA data structures here. 16351 * tree-flow.h (struct gimple_df): Add decls_to_pointers member. 16352 * Makefile.in (emit-rtl.o): Add pointer-set.h dependency. 16353 (alias.o): Add tree-ssa-alias.h, pointer-set.h and $(TREE_FLOW_H) 16354 dependencies. 16355 (print-rtl.o): Add $(DIAGNOSTIC_H) dependency. 16356 163572009-07-13 DJ Delorie <dj@redhat.com> 16358 16359 * config/mep/mep.h (CC1_SPEC): Tweak parameters to trigger 16360 unrolling at the right iteration count. 16361 16362 * config/mep/mep.c (mep_expand_prologue): Fix frame pointer 16363 calculations. 16364 163652009-07-13 Ghassan Shobaki <ghassan.shobaki@amd.com> 16366 16367 * haifa-sched.c (rank_for_schedule): Introduced flags to 16368 enable/disable individual scheduling heuristics. 16369 * common.opt: Introduced flags to enable/disable individual 16370 heuristics in the scheduler. 16371 * doc/invoke.texi: Introduced flags to enable/disable individual 16372 heuristics in the scheduler. 16373 163742009-07-13 Kai Tietz <kai.tietz@onevision.com> 16375 16376 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Remove file 16377 config/i386/mingw-tls.c. 16378 * config/i386/mingw-tls.c: Removed. 16379 163802009-07-13 Ira Rosen <irar@il.ibm.com> 16381 16382 * tree-vect-loop.c (get_initial_def_for_reduction): Ensure that the 16383 checks access only relevant statements. 16384 (vectorizable_reduction): Likewise. 16385 163862009-07-12 Kai Tietz <kai.tietz@onevision.com> 16387 16388 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define _X86_ 16389 just for 32-bit case. 16390 163912009-07-12 Jan Hubicka <jh@suse.cz> 16392 16393 PR tree-optimization/40585 16394 * except.c (expand_resx_expr): When there already is resume 16395 instruction, produce linked list. 16396 (build_post_landing_pads): Assert that resume is empty. 16397 (connect_post_landing_pads): Handle resume lists. 16398 (dump_eh_tree): Dump resume list. 16399 164002009-07-12 Ira Rosen <irar@il.ibm.com> 16401 16402 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction 16403 with additional argument. 16404 * tree-vectorizer.h (enum vect_def_type): Add 16405 vect_double_reduction_def. 16406 (vect_is_simple_reduction): Add argument. 16407 * tree-vect-loop.c (vect_determine_vectorization_factor): Fix 16408 indentation. 16409 (vect_analyze_scalar_cycles_1): Detect double reduction. Call 16410 vect_is_simple_reduction with additional argument. 16411 (vect_analyze_loop_operations): Handle exit phi nodes in case of 16412 double reduction. 16413 (reduction_code_for_scalar_code): Handle additional codes by 16414 returning ERROR_MARK for them. Fix comment and indentation. 16415 (vect_is_simple_reduction): Fix comment, add argument to specify 16416 double reduction. Detect double reduction. 16417 (get_initial_def_for_induction): Fix indentation. 16418 (get_initial_def_for_reduction): Fix comment and indentation. 16419 Handle double reduction. Create initial definitions that do not 16420 require adjustment if ADJUSTMENT_DEF is NULL. Handle additional cases. 16421 (vect_create_epilog_for_reduction): Fix comment, add argument to 16422 handle double reduction. Use PLUS_EXPR in case of MINUS_EXPR in 16423 epilogue result extraction. Create double reduction phi node and 16424 replace relevant uses. 16425 (vectorizable_reduction): Call vect_is_simple_reduction with 16426 additional argument. Fix indentation. Update epilogue code treatment 16427 according to the changes in reduction_code_for_scalar_code. Check 16428 for double reduction. Call vect_create_epilog_for_reduction with 16429 additional argument. 16430 * tree-vect-stmts.c (process_use): Handle double reduction, update 16431 documentation. 16432 (vect_mark_stmts_to_be_vectorized): Handle double reduction. 16433 (vect_get_vec_def_for_operand): Likewise. 16434 164352009-07-12 Danny Smith <dansmister@gmail.com> 16436 16437 * config/i386/winnt.c (i386_pe_determine_dllexport_p): Don't 16438 dllexport if !TREE_PUBLIC. 16439 (i386_pe_maybe_record_exported_symbol): Assert TREE_PUBLIC. 16440 164412009-07-11 Anatoly Sokolov <aesok@post.ru> 16442 16443 * config/avr/avr.h (TARGET_CPU_CPP_BUILTINS): Redefine. 16444 (avr_extra_arch_macro) Remove declatation. 16445 * config/avr/avr.c (avr_cpu_cpp_builtins): New function. 16446 (avr_extra_arch_macro) Declare as static. 16447 * config/avr/avr-protos.h (avr_cpu_cpp_builtins): Dclare. 16448 164492009-07-11 Jan Hubicka <jh@suse.cz> 16450 16451 PR middle-end/48388 16452 * except.c (can_be_reached_by_runtime): Test for NULL aka bitmap. 16453 164542009-07-11 Jakub Jelinek <jakub@redhat.com> 16455 16456 PR debug/40713 16457 * dwarf2out.c (dw_fde_struct): Add in_std_section and 16458 cold_in_std_section bits. 16459 (dwarf2out_begin_prologue): Initialize them. 16460 (dwarf2out_finish): Don't emit FDE range into .debug_ranges 16461 if already covered by text_section or cold_text_section range. 16462 16463 PR rtl-optimization/40667 16464 * defaults.h (MINIMUM_ALIGNMENT): Define if not defined. 16465 * doc/tm.texi (MINIMUM_ALIGNMENT): Document it. 16466 * config/i386/i386.h (MINIMUM_ALIGNMENT): Define. 16467 * config/i386/i386.c (ix86_minimum_alignment): New function. 16468 * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype. 16469 * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT. 16470 * emit-rtl.c (gen_reg_rtx): Likewise. 16471 * function.c (assign_parms): Likewise. If nominal_type needs 16472 bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment 16473 rather than passed_type's alignment. 16474 16475 PR target/40668 16476 * function.c (assign_parm_setup_stack): Adjust 16477 MEM_OFFSET (data->stack_parm) if promoted_mode is different 16478 from nominal_mode on big endian. 16479 164802009-07-11 Paolo Bonzini <bonzini@gnu.org> 16481 16482 * expmed.c (emit_store_flag_1): Fix choice of zero vs. sign extension. 16483 164842009-07-10 DJ Delorie <dj@redhat.com> 16485 16486 * config/mep/mep.c (mep_can_inline_p): Correct logic, and simplify. 16487 164882009-07-10 Mark Mitchell <mark@codesourcery.com> 16489 16490 * config/arm/thumb2.md (thumb2_cbz): Correct computation of length 16491 attribute. 16492 (thumb2_cbnz): Likewise. 16493 164942009-07-10 David Daney <ddaney@caviumnetworks.com> 16495 16496 PR target/39079 16497 * config.gcc (supported_defaults): Add synci. 16498 (with_synci): Add validation. 16499 (all_defaults): Add synci. 16500 * config/mips/mips.md (clear_cache): Use TARGET_SYNCI instead of 16501 ISA_HAS_SYNCI. 16502 (synci): Same. 16503 * config/mips/mips.opt (msynci): New option. 16504 * config/mips/mips.c (mips_override_options): Warn on use of 16505 -msynci for targets that do now support it. 16506 * gcc/config/mips/mips.h (OPTION_DEFAULT_SPECS): Add a default for 16507 msynci. 16508 * gcc/doc/invoke.texi (-msynci): Document the new option. 16509 * doc/install.texi (--with-synci): Document the new option. 16510 165112009-07-10 Richard Guenther <rguenther@suse.de> 16512 16513 PR tree-optimization/40496 16514 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Create 16515 the PHI result with a compatible type. 16516 165172009-07-10 Manuel López-Ibáñez <manu@gcc.gnu.org> 16518 16519 PR 25509 16520 PR 40614 16521 * c.opt (Wunused-result): New. 16522 * doc/invoke.texi: Document it. 16523 * c-common.c (c_warn_unused_result): Use it. 16524 165252009-07-09 DJ Delorie <dj@redhat.com> 16526 16527 * targhooks.c (default_target_can_inline_p): Rename from 16528 default_target_option_can_inline_p. 16529 * targhooks.h (default_target_can_inline_p): Likewise. 16530 * target-def.h (TARGET_CAN_INLINE_P): Rename from 16531 TARGET_OPTION_CAN_INLINE_P. 16532 * config/i386/i386.c (TARGET_CAN_INLINE_P): Likewise. 16533 * config/mep/mep.c (TARGET_CAN_INLINE_P): Likewise. 16534 (mep_target_can_inline_p): Rename from 16535 mep_target_option_can_inline_p. 16536 16537 PR target/40626 16538 * config/mep/mep.h (FUNCTION_ARG_REGNO_P): Add coprocessor 16539 registers used to pass vectors. 16540 16541 * config/mep/mep.c (mep_option_can_inline_p): Remove error call. 16542 165432009-07-09 Tom Tromey <tromey@redhat.com> 16544 16545 * unwind-dw2-fde-darwin.c: Include dwarf2.h. 16546 * config/mmix/mmix.c: Include dwarf2.h. 16547 * config/rs6000/darwin-fallback.c: Include dwarf2.h. 16548 * config/xtensa/unwind-dw2-xtensa.c: Include dwarf2.h. 16549 * config/sh/sh.c: Include dwarf2.h. 16550 * config/i386/i386.c: Include dwarf2.h. 16551 * Makefile.in (DWARF2_H): Remove 'elf'. 16552 * except.c: Include dwarf2.h. 16553 * unwind-dw2.c: Include dwarf2.h. 16554 * dwarf2out.c: Include dwarf2.h. 16555 * unwind-dw2-fde-glibc.c: Include dwarf2.h. 16556 * unwind-dw2-fde.c: Include dwarf2.h. 16557 * dwarf2asm.c: Include dwarf2.h. 16558 165592009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com> 16560 16561 * haifa-sched.c (insn_finishes_cycle_p): New static function. 16562 (max_issue): Use it. 16563 * sched-int.h (struct sched_info: insn_finishes_block_p): New 16564 scheduler hook. 16565 * sched-rgn.c (rgn_insn_finishes_block_p): Implement it. 16566 (region_sched_info): Update. 16567 * sched-ebb.c (ebb_sched_info): Update. 16568 * modulo-sched.c (sms_sched_info): Update. 16569 * sel-sched-ir.c (sched_sel_haifa_sched_info): Update. 16570 165712009-07-09 Maxim Kuvyrkov <maxim@codesourcery.com> 16572 16573 * varasm.c (build_constant_desc): Don't share RTL in pool entries. 16574 165752009-07-09 Basile Starynkevitch <basile@starynkevitch.net> 16576 16577 * plugin.c (try_init_one_plugin): passes RTLD_GLOBAL to dlopen. 16578 165792009-07-09 Jakub Jelinek <jakub@redhat.com> 16580 16581 PR middle-end/40692 16582 * fold-const.c (fold_cond_expr_with_comparison): Don't replace 16583 arg1 with arg01 if arg1 is already INTEGER_CST. 16584 165852009-07-08 Adam Nemet <anemet@caviumnetworks.com> 16586 16587 * simplify-rtx.c (simplify_binary_operation_1) <AND>: 16588 Transform (and (truncate)) into (truncate (and)). 16589 165902009-07-08 Adam Nemet <anemet@caviumnetworks.com> 16591 16592 * combine.c (make_extraction): Check TRULY_NOOP_TRUNCATION before 16593 creating LHS paradoxical subregs. Fix surrounding returns to 16594 use NULL_RTX rather than 0. 16595 165962009-07-08 DJ Delorie <dj@redhat.com> 16597 16598 * config/mep/mep.c (mep_option_can_inline_p): New. 16599 (TARGET_OPTION_CAN_INLINE_P): Define. 16600 166012009-07-08 Mark Wielaard <mjw@redhat.com> 16602 16603 PR debug/40659 16604 * dwarf2out.c (add_data_member_location_attribute): When we have 16605 only a constant offset don't emit a new location description using 16606 DW_OP_plus_uconst, but just add the constant with add_AT_int, when 16607 dwarf_version > 2. 16608 166092009-07-08 Richard Henderson <rth@redhat.com> 16610 16611 PR target/38900 16612 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c. 16613 (enum reg_class): Add CLOBBERED_REGS. 16614 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. 16615 * config/i386/i386.c (ix86_conditional_register_usage): Moved 16616 from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit. 16617 (ix86_function_ok_for_sibcall): Tidy. Disallow MS->SYSV sibcalls. 16618 (ix86_expand_call): Use sibcall_insn_operand when needed. Don't 16619 force 64-bit sibcalls into R11. 16620 * config/i386/constraints.md (U): New constraint. 16621 * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it. 16622 (sibcall_1_rex64, sibcall_value_1_rex64): Likewise. 16623 (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove. 16624 166252009-07-08 Shujing Zhao <pearly.zhao@oracle.com> 16626 16627 * basic-block.h (dump_regset, debug_regset): Remove duplicate 16628 prototypes. 16629 * c-objc-common.h (c_initialize_diagnostics): Ditto. 16630 * ebitmap.h (dump_ebitmap): Ditto. 16631 * optabs.h (optab_libfunc): Ditto. 16632 * tree.h (tree_expr_nonzero_warnv_p): Ditto. 16633 * tree-flow.h (vect_can_force_dr_alignment_p, 16634 get_vectype_for_scalar_type): Ditto. 16635 (vectorize_loops): Move prototype to ... 16636 * tree-vectorizer.h: ... here. Also, adjust comment. 16637 (vect_set_verbosity_level): Remove duplicate prototype. 16638 * tree-ssa-loop.c: Include tree-vectorizer.h. 16639 * Makefile.in (tree-ssa-loop.o): Depend on tree-vectorizer.h. 16640 166412009-07-08 Nick Clifton <nickc@redhat.com> 16642 16643 * config/i386/unix.h (ASM_COMMENT_START): Add a space after the 16644 forward slash. 16645 166462009-07-08 DJ Delorie <dj@redhat.com> 16647 16648 * config/mep/mep-ivc2.cpu (cpmovtocsar0_C3, cpmovtocsar1_C3, 16649 cpmovtocc_C3, cpmovtocsar0_P0S_P1, cpmovtocsar1_P0S_P1, 16650 cpmovtocc_P0S_P1): Mark volatile. Note which registers are 16651 written to. 16652 * config/mep/intrinsics.md: Regenerated. 16653 * config/mep/mep.c (mep_interrupt_saved_reg): Save IVC2 control 16654 registers when asm() or calls are detected. 16655 166562009-07-08 Manuel López-Ibáñez <manu@gcc.gnu.org> 16657 16658 PR c++/31246 16659 * gimplify.c (gimplify_expr): Propagate no_warning flag when 16660 gimplifying. 16661 * gimple (gimple_build_call_from_tree): Likewise. 16662 * tree-cfg.c (remove_useless_stmts_warn_notreached): Check 16663 no_warning flag before warning. 16664 166652009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16666 16667 * tree.c (set_expr_locus): Remove. 16668 * tree.h (EXPR_LOCUS,SET_EXPR_LOCUS,set_expr_locus): Remove. 16669 * c-typeck.c (c_finish_stmt_expr): Replace EXPR_LOCUS by 16670 EXPR_LOCATION. 16671 * gimplify.c (internal_get_tmp_var): Likewise. 16672 (gimplify_call_expr): Likewise. 16673 (gimplify_one_sizepos): Likewise. 16674 166752009-07-07 Eric Botcazou <ebotcazou@adacore.com> 16676 16677 PR debug/40666 16678 * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing 16679 to variables for debugging purposes. 16680 166812009-06-23 Mark Loeser <mark@halcy0n.com> 16682 16683 PR build/40010 16684 * Makefile.in (gcc.pod): Depend on gcc-vers.texi. 16685 166862009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16687 16688 * pretty-print.c (pp_base_format): Remove %J. 16689 * c-format.c (gcc_diag_char_table, gcc_tdiag_char_table, 16690 gcc_cxxdiag_char_table): Likewise. 16691 (init_dynamic_diag_info): Likewise. 16692 166932009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16694 16695 * pretty-print.c (pp_base_format): Remove %H. 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 * config/mep/mep.c (mep_select_section): Likewise. 16700 167012009-07-07 Duncan Sands <baldrick@free.fr> 16702 16703 * final.c (pass_clean_state): Give the pass a name. 16704 * passes.c (pass_rest_of_compilation): Likewise. 16705 * tree-optimize.c (pass_all_optimizations): Likewise. 16706 167072009-07-07 H.J. Lu <hongjiu.lu@intel.com> 16708 16709 * config/ia64/ia64.c (ia64_handle_model_attribute): Remove 16710 an extra 'decl' for error_at. 16711 167122009-07-07 Jakub Jelinek <jakub@redhat.com> 16713 16714 PR middle-end/40669 16715 * tree-tailcall.c (adjust_return_value_with_ops, 16716 create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary 16717 if it has complex or vector type. 16718 167192009-07-07 Olivier Hainque <hainque@adacore.com> 16720 16721 * config/alpha/t-osf4 (SHLIB_LINK): Do not hide the dummy weak 16722 pthread symbols. 16723 167242009-07-07 Basile Starynkevitch <basile@starynkevitch.net> 16725 16726 * Makefile.in: added more lists of includes to PLUGIN_HEADERS. 16727 167282009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16729 16730 * cgraphunit.c: Replace %J by an explicit location. Update all calls. 16731 * c-decl.c: Likewise. 16732 * function.c: Likewise. 16733 * varasm.c: Likewise. 16734 * tree-ssa.c: Likewise. 16735 * c-common.c: Likewise. 16736 * tree-cfg.c: Likewise. 16737 * config/spu/spu.c: Likewise. 16738 * config/ia64/ia64.c: Likewise. 16739 * config/v850/v850.c: Likewise. 16740 167412009-07-06 DJ Delorie <dj@redhat.com> 16742 16743 * config/mep/mep-core.cpu (fsft, ssarb): Mark as VOLATILE. 16744 * config/mep/mep-ivc2.cpu (many): Add VOLATILE to more insns that make 16745 unspecified accesses to control registers. 16746 * config/mep/intrinsics.md: Regenerate. 16747 * config/mep/intrinsics.h: Regenerate. 16748 * config/mep/mep-intrin.h: Regenerate. 16749 167502009-07-07 Manuel López-Ibáñez <manu@gcc.gnu.org> 16751 16752 * c-lex.c: Replace %H by an explicit location. Update all calls. 16753 * c-common.c: Likewise. 16754 * c-decl.c: Likewise. 16755 * c-typeck.c: Likewise. 16756 * fold-const.c: Likewise. 16757 * gimplify.c: Likewise. 16758 * stmt.c: Likewise. 16759 * tree-cfg.c: Likewise. 16760 * tree-ssa-loop-niter.c: Likewise. 16761 * tree-vrp.c: Likewise. 16762 * value-prof.c: Likewise. 16763 167642009-07-06 Diego Novillo <dnovillo@google.com> 16765 16766 * tree-dfa.c (dump_variable): Write DECL_INITIAL for VAR 16767 if it has one. Handle cases where VAR does not have an 16768 annotation or cfun is NULL. 16769 167702009-07-06 Diego Novillo <dnovillo@google.com> 16771 16772 * tree.c: Include debug.h. 16773 (initialize_tree_contains_struct): New. 16774 (init_ttree): Call it. 16775 (tree_node_structure_for_code): Factor out of ... 16776 (tree_node_structure): ... here. 16777 * treestruct.def (TS_PHI_NODE): Remove. 16778 (TS_GIMPLE_STATEMENT): Remove. 16779 167802009-07-06 Diego Novillo <dnovillo@google.com> 16781 16782 * tree-pretty-print.c (dump_generic_node): Protect against NULL op0. 16783 (debug_tree_chain): Handle cycles. 16784 167852009-07-06 Nick Clifton <nickc@redhat.com> 16786 DJ Delorie <dj@redhat.com> 16787 16788 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if 16789 __FMOVD_ENABLED__ is defined. 16790 * config/sh/sh.h 16791 (TARGET_FMOVD): Provide a default definition. 16792 (MASK_FMOVD): Likewise. 16793 (TARGET_CPU_CPP_BUILTINS): Define 16794 __FMOVD_ENABLED__ if TARGET_FMOVD is true. 16795 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or 16796 two fmov instructions depending upon whether TARGET_FMOVD is enabled. 16797 (split for DF load from memory into register): Also handle 16798 MEMs which consist of REG+DISP addressing. 16799 (split for DF store from register to memory): Likewise. 16800 (movsf_ie): Always use single fp_mode. 16801 * config/sh/sh.c (sh_override_options): Do not automatically 16802 enable TARGET_MOVD for the SH2A when supporting doubles - leave 16803 that to the -mfmovd command line switch. 16804 (broken_move): Do not restrict fldi test to only the SH4 and SH4A. 16805 (fldi_ok): Always allow. 16806 * config/sh/sh.opt (mfmovd): Remove this switch. 16807 * doc/invoke.texi (-mfmovd): Remove documentation of this switch. 16808 168092009-07-06 J"orn Rennecke <joern.rennecke@arc.com> 16810 Kaz Kojima <kkojima@gcc.gnu.org> 16811 16812 PR rtl-optimization/30807 16813 * postreload.c (reload_combine): For every new use of REG_SUM, 16814 record the use of BASE. 16815 168162009-07-06 Jan Hubicka <jh@suse.cz> 16817 16818 * params.def: Revert my accidental commit at 2009-06-30. 16819 168202009-07-04 Ian Lance Taylor <iant@google.com> 16821 16822 PR target/40636 16823 * config/i386/msformat-c.c (mingw_format_attributes): Declare as 16824 EXPORTED_CONST. 16825 (mingw_format_attribute_overrides): Likewise. 16826 168272009-07-04 Jakub Jelinek <jakub@redhat.com> 16828 16829 PR debug/40596 16830 * dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried 16831 don't check cfa.reg. Instead of cfa.indirect use 16832 fde && fde->drap_reg != INVALID_REGNUM test. 16833 168342009-07-04 Eric Botcazou <ebotcazou@adacore.com> 16835 16836 * postreload.c (reload_combine): Replace CONST_REG with INDEX_REG. 16837 168382009-07-03 Vladimir Makarov <vmakarov@redhat.com> 16839 16840 PR target/40587 16841 * ira.c (build_insn_chain): Use DF_LR_OUT instead of df_get_live_out. 16842 168432009-07-03 Richard Guenther <rguenther@suse.de> 16844 16845 PR tree-optimization/40640 16846 * tree-switch-conversion.c (build_arrays): Perform arithmetic 16847 in original type. 16848 168492009-07-03 Jan Hubicka <jh@suse.cz> 16850 16851 * ipa-inline.c (cgraph_decide_inlining_incrementally): When optimizing 16852 for size, reduce amount of inlining. 16853 168542009-07-03 Richard Guenther <rguenther@suse.de> 16855 16856 PR middle-end/34163 16857 * tree-chrec.c (chrec_convert_1): Fold (T2)(t +- x) to (T2)t +- (T2)x 16858 if t +- x is known to not overflow and the conversion widens the 16859 operation. 16860 * Makefile.in (tree-chrec.o): Add $(FLAGS_H) dependency. 16861 168622009-07-03 Jan Hubicka <jh@suse.cz> 16863 16864 * ipa-pure-const.c (analyze): Update loop optimizer init. 16865 * tree-ssa-loop-iv-canon.c (empty_loop_p, remove_empty_loop, 16866 try_remove_empty_loop, remove_empty_loops): Remove. 16867 * tree-ssa-loop.c (tree_ssa_empty_loop, pass_empty_loop): Remove. 16868 * tree-ssa-dce.c (find_obviously_necessary_stmts): Use finiteness info 16869 to mark regular loops as neccesary. 16870 (degenerate_phi_p): New function. 16871 (propagate_necessity, remove_dead_phis): Use it. 16872 (forward_edge_to_pdom): Likewise. 16873 (eliminate_unnecessary_stmts): Take care to remove uses of results of 16874 virtual PHI nodes that became unreachable. 16875 (perform_tree_ssa_dce): Initialize/deinitialize loop optimizer. 16876 * tree-flow.h (remove_empty_loops): Remove. 16877 * passes.c (init_optimization_passes): Remove. 16878 168792009-07-03 Uros Bizjak <ubizjak@gmail.com> 16880 16881 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Use 16882 can_create_pseudo_p. 16883 (*fix_trunc<mode>_i387_1): Ditto. 16884 (*floathi<mode>2_1): Ditto. 16885 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1): Ditto. 16886 (*fistdi2_1): Ditto. 16887 (*fist<mode>2_1): Ditto. 16888 (frndintxf2_floor): Ditto. 16889 (*fist<mode>2_floor_1): Ditto. 16890 (frndintxf2_ceil): Ditto. 16891 (*fist<mode>2_ceil_1): Ditto. 16892 (frndintxf2_trunc): Ditto. 16893 (frndintxf2_mask_pm): Ditto. 16894 (fxam<mode>2_i387_with_temp): Ditto. 16895 * config/i386/sse.md (mulv16qi3): Ditto. 16896 (*sse2_mulv4si3): Ditto. 16897 (mulv2di3): Ditto. 16898 (sse4_2_pcmpestr): Ditto. 16899 (sse4_2_pcmpistr): Ditto. 16900 169012009-07-03 Jan Hubicka <jh@suse.cz> 16902 16903 * tree-ssa-dce.c (bb_contains_live_stmts): New bitmap. 16904 (mark_stmt_necessary): Set it. 16905 (mark_operand_necessary): Set it. 16906 (mark_control_dependent_edges_necessary): Set it. 16907 (mark_virtual_phi_result_for_renaming): New function. 16908 (get_live_post_dom): New function. 16909 (forward_edge_to_pdom): New function. 16910 (remove_dead_stmt): Fix handling of control dependences. 16911 (tree_dce_init): Init new bitmap. 16912 (tree_dce_done): Free it. 16913 169142009-07-02 Richard Guenther <rguenther@suse.de> 16915 16916 PR bootstrap/40617 16917 * tree-ssa-structalias.c (new_var_info): Initialize 16918 is_restrict_var. 16919 169202009-07-02 Jan Hubicka <jh@suse.cz> 16921 16922 * ipa-pure-const.c (check_op): Use PTA info to see if indirect_ref is 16923 local. 16924 169252009-07-02 Paolo Bonzini <bonzini@gnu.org> 16926 16927 * expmed.c (emit_cstore, emit_store_flag_1): Accept target_mode 16928 instead of recomputing it. Adjust calls. 16929 (emit_store_flag): Adjust recursive calls. 16930 169312009-07-02 Richard Guenther <rguenther@suse.de> 16932 16933 * tree-ssa-live.c (remove_unused_locals): Do not remove 16934 heap variables. 16935 * tree-ssa-structalias.c (handle_lhs_call): Delay setting 16936 of DECL_EXTERNAL for HEAP variables. 16937 (compute_points_to_sets): Set DECL_EXTERNAL for escaped 16938 HEAP variables. Do not adjust RESTRICT vars. 16939 (find_what_var_points_to): Nobody cares if something 16940 points to READONLY. 16941 169422009-07-02 Ben Elliston <bje@au.ibm.com> 16943 16944 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Move 16945 pc_low and pc_high declarations to the top of the function. 16946 169472009-07-01 DJ Delorie <dj@redhat.com> 16948 16949 * config/mep/mep.c (mep_handle_option): Leave IVC2 control 16950 registers as fixed. 16951 (mep_interrupt_saved_reg): Save appropriate IVC2 control registers. 16952 * config/mep/mep-ivc2.cpu: Add VOLATILE to insns that make 16953 unspecified accesses to control registers. 16954 * config/mep/intrinsics.md: Regenerate. 16955 * config/mep/intrinsics.h: Regenerate. 16956 * config/mep/mep-intrin.h: Regenerate. 16957 169582009-07-01 Anthony Green <green@moxielogic.com> 16959 16960 * config/moxie/moxie.c (moxie_expand_prologue): Use dec 16961 instruction when possible. 16962 (moxie_expand_prologue): Ditto. Also, save an instruction and 16963 some complexity by popping off of $r12 instead of $sp. 16964 * config/moxie/moxie.md (movsi_pop): Don't assume $sp. Take two 16965 operands. 16966 169672009-07-01 Richard Henderson <rth@redhat.com> 16968 16969 PR bootstrap/40347 16970 * function.c (reposition_prologue_and_epilogue_notes): If epilogue 16971 contained no insns, reposition note before last insn. 16972 169732009-07-01 Richard Henderson <rth@redhat.com> 16974 16975 PR debug/40431 16976 * dwarf2out.c (def_cfa_1): Revert 2009-06-11 change for 16977 DW_CFA_def_cfa_offset and DW_CFA_def_cfa. 16978 169792009-07-01 Michael Meissner <meissner@linux.vnet.ibm.com> 16980 16981 PR bootstrap/40558 16982 * config/rs6000/rs6000.c (print_operand): Undo change that breaks 16983 darwin9 for printing reg addresses with %y. 16984 169852009-07-01 Adam Nemet <anemet@caviumnetworks.com> 16986 16987 * combine.c (force_to_mode): Handle TRUNCATE. Factor out 16988 truncation from operands in binary operations. 16989 169902009-07-01 Adam Nemet <anemet@caviumnetworks.com> 16991 16992 Revert: 16993 2009-01-11 Adam Nemet <anemet@caviumnetworks.com> 16994 * expmed.c (store_bit_field_1): Properly truncate the paradoxical 16995 subreg of op0 to the original op0. 16996 16997 * expmed.c (store_bit_field_1): Use a temporary as the destination 16998 instead of a paradoxical subreg when we need to truncate the result. 16999 170002009-07-01 DJ Delorie <dj@redhat.com> 17001 17002 * config/mep/mep-ivc2.cpu (cmov, cmovc, cmovh): Add intrinsic 17003 names to VLIW variants. 17004 (ivc2rm, ivc2crn): Make data type consistent with non-VLIW variants. 17005 * config/mep/intrinsics.md: Regenerate. 17006 * config/mep/intrinsics.h: Regenerate. 17007 * config/mep/mep-intrin.h: Regenerate. 17008 170092009-07-01 Jakub Jelinek <jakub@redhat.com> 17010 17011 PR debug/40462 17012 * jump.c (returnjump_p): Revert last patch. 17013 * dwarf2out.c (dwarf2out_begin_epilogue): Handle SEQUENCEs. 17014 170152009-07-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 17016 17017 PR target/40575 17018 * pa.md (casesi32p): Use jump table label to determine the offset 17019 of the jump table. 17020 (casesi64p): Likewise. 17021 17022 * pa.c (forward_branch_p): Return bool type. Use instruction 17023 addresses when available. Assert that INSN has a jump label. 17024 (pa_adjust_insn_length): Don't call forward_branch_p if INSN doesn't 17025 have a jump label. 17026 170272009-07-01 Richard Guenther <rguenther@suse.de> 17028 17029 PR tree-optimization/19831 17030 * tree-ssa-dce.c (propagate_necessity): Calls to functions 17031 that only act as barriers do not make any previous stores necessary. 17032 * tree-ssa-structalias.c (handle_lhs_call): Delay making 17033 HEAP variables global, do not add a constraint from nonlocal. 17034 (find_func_aliases): Handle escapes through return statements. 17035 (compute_points_to_sets): Make escaped HEAP variables global. 17036 170372009-07-01 Paolo Bonzini <bonzini@gnu.org> 17038 17039 PR bootstrap/40597 17040 * expmed.c (emit_store_flag): Perform a conversion if necessary, 17041 after reducing a DImode cstore to SImode. 17042 170432009-07-01 Paolo Bonzini <bonzini@gnu.org> 17044 17045 * expr.c (expand_expr_real_1): Reinstate fallthrough to 17046 TRUTH_ANDIF_EXPR if do_store_flag returns NULL. 17047 170482009-07-01 Maciej W. Rozycki <macro@linux-mips.org> 17049 17050 * config/vax/vax.h (TARGET_BSD_DIVMOD): New macro. Set to 1. 17051 * config/vax/linux.h (TARGET_BSD_DIVMOD): New macro. Redefine the 17052 to 0. 17053 * config/vax/vax.c (vax_init_libfuncs): Only redefine udiv_optab 17054 and umod_optab if TARGET_BSD_DIVMOD. 17055 * config/vax/lib1funcs.asm: New file. 17056 * config/vax/t-linux: New file. 17057 * config.gcc (vax-*-linux*): Set tmake_file to vax/t-linux. 17058 170592009-06-30 Jakub Jelinek <jakub@redhat.com> 17060 17061 PR c++/40566 17062 * convert.c (convert_to_integer) <case COND_EXPR>: Don't convert 17063 to type arguments that have void type. 17064 17065 PR debug/40573 17066 * dwarf2out.c (gen_formal_parameter_die): Call 17067 equate_decl_number_to_die if node is different from origin. 17068 170692009-06-30 Anthony Green <green@moxielogic.com> 17070 17071 Clean up moxie port for --enable-build-with-cxx. 17072 * config/moxie/moxie.c (moxie_function_value): First two 17073 parameters are const_tree, not tree. 17074 * config/moxie/moxie.h (enum reg_class): Rename CC_REG to CC_REGS. 17075 (REG_CLASS_NAMES): Ditto. 17076 (REGNO_REG_CLASS): Ditto. 17077 * config/moxie/moxie-protos.h (moxie_override_options): Declare. 17078 (moxie_function_value): Fix constyness of arguments. 17079 170802009-06-30 Eric Botcazou <ebotcazou@adacore.com> 17081 17082 * cgraphunit.c (cgraph_finalize_compilation_unit): Call 17083 finalize_size_functions before further processing. 17084 * stor-layout.c: Include cgraph.h, tree-inline.h and tree-dump.h. 17085 (variable_size): Call self_referential_size on size expressions 17086 that contain a PLACEHOLDER_EXPR. 17087 (size_functions): New static variable. 17088 (copy_self_referential_tree_r): New static function. 17089 (self_referential_size): Likewise. 17090 (finalize_size_functions): New global function. 17091 * tree.c: Include tree-inline.h. 17092 (push_without_duplicates): New static function. 17093 (find_placeholder_in_expr): New global function. 17094 (substitute_in_expr) <tcc_declaration>: Return the replacement object 17095 on equality. 17096 <tcc_expression>: Likewise. 17097 <tcc_vl_exp>: If the replacement object is a constant, try to inline 17098 the call in the expression. 17099 * tree.h (finalize_size_functions): Declare. 17100 (find_placeholder_in_expr): Likewise. 17101 (FIND_PLACEHOLDER_IN_EXPR): New macro. 17102 (substitute_placeholder_in_expr): Update comment. 17103 * tree-inline.c (remap_decl): Do not unshare trees if do_not_unshare 17104 is true. 17105 (copy_tree_body_r): Likewise. 17106 (copy_tree_body): New static function. 17107 (maybe_inline_call_in_expr): New global function. 17108 * tree-inline.h (struct copy_body_data): Add do_not_unshare field. 17109 (maybe_inline_call_in_expr): Declare. 17110 * Makefile.in (tree.o): Depend on TREE_INLINE_H. 17111 (stor-layout.o): Depend on CGRAPH_H, TREE_INLINE_H, TREE_DUMP_H and 17112 GIMPLE_H. 17113 171142009-06-30 Richard Guenther <rguenther@suse.de> 17115 17116 * tree-ssa-dce.c (mark_all_reaching_defs_necessary_1): Always 17117 continue walking. 17118 (propagate_necessity): Do not mark reaching defs of stores 17119 as necessary. 17120 171212009-06-30 Jan Hubicka <jh@suse.cz> 17122 17123 * cfgloopanal.c (check_irred): Move into ... 17124 (mark_irreducible_loops): ... here; return true if ireducible 17125 loops was found. 17126 * ipa-pure-const.c: Include cfgloop.h and tree-scalar-evolution.h 17127 (analyze_function): Try to prove loop finiteness. 17128 * cfgloop.h (mark_irreducible_loops): Update prototype. 17129 * Makefile.in (ipa-pure-const.o): Add dependency on SCEV and CFGLOOP. 17130 171312009-06-30 Basile Starynkevitch <basile@starynkevitch.net> 17132 17133 * Makefile.in (PLUGIN_HEADERS): added ggc, tree-dump, pretty-print. 17134 171352009-06-30 Ira Rosen <irar@il.ibm.com> 17136 17137 PR tree-optimization/40542 17138 * tree-vect-stmts.c (vect_analyze_stmt): Don't vectorize volatile 17139 types. 17140 171412009-06-30 Martin Jambor <mjambor@suse.cz> 17142 17143 PR tree-optimization/40582 17144 * tree-sra.c (build_ref_for_offset_1): Use types_compatible_p rather 17145 than useless_type_conversion_p. 17146 (generate_subtree_copies): Increment sra_stats.subtree_copies at a 17147 proper place. 17148 171492009-06-30 Martin Jambor <mjambor@suse.cz> 17150 17151 PR middle-end/40554 17152 * tree-sra.c (sra_modify_expr): Add access->offset to start_offset. 17153 171542009-06-30 Richard Guenther <rguenther@suse.de> 17155 17156 * tree-ssa-alias.c (walk_aliased_vdefs_1): Change interface to 17157 use ao_ref references. 17158 (walk_aliased_vdefs): Likewise. 17159 * tree-ssa-alias.h (walk_aliased_vdefs): Adjust prototype. 17160 * tree-ssa-dce.c (struct ref_data): Remove. 17161 (mark_aliased_reaching_defs_necessary_1): Use the ao_ref argument. 17162 (mark_aliased_reaching_defs_necessary): Adjust. 17163 (mark_all_reaching_defs_necessary_1): Likewise. 17164 171652009-06-30 Paolo Bonzini <bonzini@gnu.org> 17166 17167 PR boostrap/40597 17168 * expmed.c (emit_cstore): New name of emit_store_flag_1. 17169 (emit_store_flag_1): Extract from emit_store_flag, adjust 17170 calls to (what now is) emit_cstore. 17171 (emit_store_flag): Call emit_store_flag_1 and also use it 17172 for what used to be recursive calls. 17173 171742009-06-30 Wei Guozhi <carrot@google.com> 17175 17176 PR/40416 17177 * tree-ssa-sink.c (statement_sink_location): Stop sinking expression 17178 if the target bb post dominates from bb. 17179 * config/i386/i386.c (memory_address_length): Check existence of base 17180 register before using it. 17181 171822009-06-30 Nick Clifton <nickc@redhat.com> 17183 DJ Delorie <dj@redhat.com> 17184 17185 * config.sh/lib1funcs.h (FMOVD_WORKS): Only define if 17186 __FMOVD_ENABLED__ is defined. 17187 * config/sh/sh.h 17188 (TARGET_FMOVD): Provide a default definition. 17189 (MASK_FMOVD): Likewise. 17190 (TARGET_CPU_CPP_BUILTINS): Define 17191 __FMOVD_ENABLED__ if TARGET_FMOVD is true. 17192 * config/sh/sh.md (movdf_i4): For alternative 0 use either one or 17193 two fmov instructions depending upon whether TARGET_FMOVD is 17194 enabled. 17195 (split for DF load from memory into register): Also handle 17196 MEMs which consist of REG+DISP addressing. 17197 (split for DF store from register to memory): Likewise. 17198 * config/sh/sh.opt (mfmovd): Remove this switch. 17199 * doc/invoke.texi (-mfmovd): Remove documentation of this switch. 17200 * config/sh/sh.c (sh_override_options): Do not automatically 17201 enable TARGET_MOVD for the SH2A when supporting doubles - leave 17202 that to the -mfmovd command line switch. 17203 17204 * config/sh/sh.c (broken_move): Do not restrict fldi test to only 17205 the SH4 and SH4A. 17206 (fldi_ok): Always allow. 17207 * config/sh/sh.md (movsf_ie): Always use single fp_mode. 17208 172092009-06-29 DJ Delorie <dj@redhat.com> 17210 17211 * doc/install.texi (mep-x-elf): Correct chip's full name. 17212 172132009-06-29 H.J. Lu <hongjiu.lu@intel.com> 17214 17215 * doc/extend.texi: Fix typo. 17216 172172009-06-29 Tom Tromey <tromey@redhat.com> 17218 17219 * dwarf2.h: Remove. 17220 * Makefile.in (DWARF2_H): New variable. 17221 (except.o): Use it. 17222 (dwarf2out.o): Likewise. 17223 (dwarf2asm.o): Likewise. 17224 * config/i386/t-i386: Use DWARF2_H. 17225 * except.c: Include elf/dwarf2.h. 17226 * unwind-dw2.c: Include elf/dwarf2.h. 17227 * dwarf2out.c: Include elf/dwarf2.h. 17228 (dw_loc_descr_struct) <dw_loc_opc>: Now a bitfield. 17229 <dtprel>: New field. 17230 (dwarf_stack_op_name): Don't handle INTERNAL_DW_OP_tls_addr. 17231 (size_of_loc_descr): Likewise. 17232 (output_loc_operands_raw): Likewise. 17233 (output_loc_operands): Handle new dtprel field. 17234 (loc_checksum): Update. 17235 (loc_descriptor_from_tree_1) <VAR_DDECL>: Set dtprel field. 17236 * unwind-dw2-fde-glibc.c: Include elf/dwarf2.h. 17237 * unwind-dw2-fde.c: Include elf/dwarf2.h. 17238 * dwarf2asm.c: Include elf/dwarf2.h. 17239 * unwind-dw2-fde-darwin.c: Include elf/dwarf2.h. 17240 * config/mmix/mmix.c: Include elf/dwarf2.h. 17241 * config/rs6000/darwin-fallback.c: Include elf/dwarf2.h. 17242 * config/xtensa/unwind-dw2-xtensa.c: Include elf/dwarf2.h. 17243 * config/sh/sh.c: Include elf/dwarf2.h. 17244 * config/i386/i386.c: Include elf/dwarf2.h. 17245 172462009-06-29 DJ Delorie <dj@redhat.com> 17247 17248 * config/mep/mep.h (CPP_SPEC): Remove __cop macro. 17249 17250 * doc/extend.texi: Add MeP attributes and pragmas. 17251 * doc/invoke.text: Add MeP Options. 17252 * doc/contrib.texi: Add MeP contribution. 17253 * doc/md.texi: Add MeP constraints. 17254 * doc/install.texi: Add MeP target. 17255 172562009-06-30 Anatoly Sokolov <aesok@post.ru> 17257 17258 * target.h (struct gcc_target): Add frame_pointer_required field. 17259 * target-def.h (TARGET_FRAME_POINTER_REQUIRED): New. 17260 (TARGET_INITIALIZER): Use TARGET_FRAME_POINTER_REQUIRED. 17261 * ira.c (setup_eliminable_regset): Use frame_pointer_required target 17262 hook. 17263 * reload1.c (update_eliminables): (Ditto.). 17264 * gcc/system.h (FRAME_POINTER_REQUIRED): Poison. 17265 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation. 17266 (INITIAL_FRAME_POINTER_OFFSET): (Ditto.). 17267 17268 * config/arc/arc.h (FRAME_POINTER_REQUIRED): Remove macro. 17269 17270 * config/arm/arm.h (FRAME_POINTER_REQUIRED): Remove macro. 17271 * config/arm/arm.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17272 (arm_frame_pointer_required): New function. 17273 17274 * config/avr/avr.h (FRAME_POINTER_REQUIRED): Remove macro. 17275 * config/avr/avr.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17276 (avr_frame_pointer_required_p): Declare as static. 17277 * config/avr/avr-protos.h (avr_frame_pointer_required_p): Remove. 17278 17279 * config/bfin/bfin.h (FRAME_POINTER_REQUIRED): Remove macro. 17280 * config/bfin/bfin.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17281 (bfin_frame_pointer_required): Make as static, change return type 17282 to bool. 17283 * config/bfin/bfin-protos.h (bfin_frame_pointer_required): Remove. 17284 17285 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Remove macro. 17286 * config/cris/cris.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17287 (cris_frame_pointer_required): New function. 17288 17289 * config/crx/crx.h (FRAME_POINTER_REQUIRED): Remove macro. 17290 17291 * config/fr30/fr30.h (FRAME_POINTER_REQUIRED): Remove macro. 17292 * config/fr30/fr30.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17293 (fr30_frame_pointer_required): New function. 17294 17295 * config/frv/frv.h (FRAME_POINTER_REQUIRED): Remove macro. 17296 * config/frv/frv.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17297 (frv_frame_pointer_required): Make as static, change return type 17298 to bool. 17299 * config/bfin/bfin-protos.h (frv_frame_pointer_required): Remove. 17300 17301 * config/i386/i386.h (FRAME_POINTER_REQUIRED): Remove macro. 17302 * config/i386/i386.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17303 (ix86_frame_pointer_required): Make as static, change return type to 17304 bool. 17305 * config/i386/i386-protos.h (ix86_frame_pointer_required): Remove. 17306 17307 * config/m32c/m32c.h (FRAME_POINTER_REQUIRED): Remove macro. 17308 * config/m32c/m32c.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17309 17310 * config/m32r/m32r.h (FRAME_POINTER_REQUIRED): Remove macro. 17311 17312 * config/mcore/mcore.h (CAN_ELIMINATE): Remove macro. 17313 17314 * config/mep/mep.h (FRAME_POINTER_REQUIRED): Remove macro. 17315 17316 * config/mips/mips.h (FRAME_POINTER_REQUIRED): Remove macro. 17317 * config/mips/mips.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17318 (mips_frame_pointer_required): Make as static. 17319 * config/mips/mips-protos.h (mips_frame_pointer_required): Remove. 17320 17321 * config/mmix/mmix.h (FRAME_POINTER_REQUIRED): Remove macro. 17322 * config/mmix/mmix.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17323 (mmix_frame_pointer_required): Mew function. 17324 17325 * config/moxie/moxie.h (FRAME_POINTER_REQUIRED): Remove macro. 17326 * config/moxie/moxie.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17327 17328 * config/pa/pa.h (FRAME_POINTER_REQUIRED): Remove macro. 17329 17330 * config/score/score.h (FRAME_POINTER_REQUIRED): Remove macro. 17331 17332 * config/sh/sh.h (CAN_ELIMINATE): Remove macro. 17333 17334 * config/sparc/sparc.h (FRAME_POINTER_REQUIRED): Remove macro. 17335 (CAN_ELIMINATE): Redefine. 17336 * config/sparc/sparc.c (TARGET_FRAME_POINTER_REQUIRED): Define macro. 17337 (sparc_frame_pointer_required): New function. 17338 (sparc_can_eliminate): New function. 17339 * config/sparc/sparc-protos.h (sparc_can_eliminate): Declare. 17340 17341 * config/vax/vax.h (FRAME_POINTER_REQUIRED): Remove macro. 17342 * config/vax/vax.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17343 17344 * config/xtensa/xtensa.h (FRAME_POINTER_REQUIRED): Remove macro. 17345 * config/xtensa/xtensa.c (TARGET_FRAME_POINTER_REQUIRED): Define. 17346 (xtensa_frame_pointer_required): Make as static, change return type 17347 to bool. 17348 * config/xtensa/xtensa-protos.h (xtensa_frame_pointer_required): 17349 Remove. 17350 173512009-06-29 Olatunji Ruwase <tjruwase@google.com> 17352 17353 * doc/plugins.texi: Document PLUGIN_START_UNIT. 17354 * toplev.c (compile_file): Call PLUGIN_START_UNIT. 17355 * gcc-plugin.h (PLUGIN_START_UNIT): Added new event. 17356 * plugin.c (plugin_event_name): Added PLUGIN_START_UNIT. 17357 (register_callback): Handle PLUGIN_START_UNIT. 17358 (invoke_plugin_callbacks): Handle PLUGIN_START_UNIT. 17359 173602009-06-29 Eric Botcazou <ebotcazou@adacore.com> 17361 17362 * tree.c (process_call_operands): Propagate TREE_READONLY from the 17363 operands. 17364 (PROCESS_ARG): Do not clear TREE_READONLY if CONSTANT_CLASS_P. 17365 (build3_stat): Propagate TREE_READONLY for COND_EXPR. 17366 173672009-06-29 Daniel Jacobowitz <dan@codesourcery.com> 17368 17369 * config/arm/arm.h (REGISTER_MOVE_COST): Increase VFP register 17370 move cost. 17371 173722009-06-29 Uros Bizjak <ubizjak@gmail.com> 17373 17374 * doc/extend.texi (Additional Floating Types): __float128 is also 17375 supported on i386 targets. 17376 173772009-06-29 Richard Guenther <rguenther@suse.de> 17378 17379 PR middle-end/14187 17380 * tree-ssa-alias.h (struct pt_solution): Add vars_contains_restrict 17381 flag. 17382 (pt_solutions_same_restrict_base): Declare. 17383 * tree-ssa-structalias.c (struct variable_info): Add is_restrict_var 17384 flag. 17385 (new_var_info): Initialize is_global_var properly for SSA_NAMEs. 17386 (make_constraint_from, make_copy_constraint): Move earlier. 17387 (make_constraint_from_heapvar): New function. 17388 (make_constraint_from_restrict): Likewise. 17389 (handle_lhs_call): Use it. 17390 (find_func_aliases): Use it to track conversions to restrict 17391 qualified pointers. 17392 (struct fieldoff): Add only_restrict_pointers flag. 17393 (push_fields_onto_fieldstack): Initialize it. 17394 (create_variable_info_for): Track global restrict qualified pointers. 17395 (intra_create_variable_infos): Use make_constraint_from_heapvar. 17396 Track restrict qualified pointer arguments. 17397 (set_uids_in_ptset): Use varinfo is_global_var flag. 17398 (find_what_var_points_to): Set the vars_contains_restrict flag. 17399 Always create the points-to solution for sets including restrict tags. 17400 (pt_solutions_same_restrict_base): New function. 17401 * tree-ssa-alias.c (ptr_derefs_may_alias_p): For two restrict 17402 qualified pointers use pt_solutions_same_restrict_base as 17403 additional source for disambiguation. 17404 174052009-06-29 Richard Guenther <rguenther@suse.de> 17406 17407 PR middle-end/38212 17408 * alias.c (find_base_decl): Remove. 17409 (get_deref_alias_set_1): Remove restrict handling. 17410 * c-common.c (c_apply_type_quals_to_decl): Do not set 17411 DECL_POINTER_ALIAS_SET. 17412 * gimplify.c (find_single_pointer_decl_1): Remove. 17413 (find_single_pointer_decl): Likewise. 17414 (internal_get_tmp_var): Remove restrict handling. 17415 (gimple_regimplify_operands): Likewise. 17416 * omp-low.c (expand_omp_atomic_pipeline): Do not set 17417 DECL_POINTER_ALIAS_SET. Use ref-all pointers. 17418 * print-tree.c (print_node): Do not print DECL_POINTER_ALIAS_SET. 17419 * tree.c (restrict_base_for_decl): Remove. 17420 (init_ttree): Do not allocate it. 17421 (make_node_stat): Do not set DECL_POINTER_ALIAS_SET. Set 17422 LABEL_DECL_UID for label decls. 17423 (copy_node_stat): Do not copy restrict information. 17424 (decl_restrict_base_lookup): Remove. 17425 (decl_restrict_base_insert): Likewise. 17426 (print_restrict_base_statistics): Likewise. 17427 (dump_tree_statistics): Do not call print_restrict_base_statistics. 17428 * tree.h (DECL_POINTER_ALIAS_SET): Remove. 17429 (DECL_POINTER_ALIAS_SET_KNOWN_P): Likewise. 17430 (struct tree_decl_common): Rename pointer_alias_set to label_decl_uid. 17431 (LABEL_DECL_UID): Adjust. 17432 (DECL_BASED_ON_RESTRICT_P): Remove. 17433 (DECL_GET_RESTRICT_BASE): Likewise. 17434 (SET_DECL_RESTRICT_BASE): Likewise. 17435 (struct tree_decl_with_vis): Remove based_on_restrict_p flag. 17436 17437 * config/i386/i386.c (ix86_gimplify_va_arg): Use ref-all pointers 17438 instead of DECL_POINTER_ALIAS_SET. 17439 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. 17440 * config/s390/s390.c (s390_gimplify_va_arg): Likewise. 17441 * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise. 17442 174432009-06-29 Richard Guenther <rguenther@suse.de> 17444 17445 PR tree-optimization/40579 17446 * tree-vrp.c (vrp_evaluate_conditional): Bail out early if 17447 the IL to simplify has constants that overflowed. 17448 174492009-06-28 Uros Bizjak <ubizjak@gmail.com> 17450 17451 PR tree-optimization/40550 17452 * tree-vect-generic.c (expand_vector_operations_1): Compute in 17453 vector_compute_type only when the size of vector_compute_type is 17454 less than the size of type. 17455 174562009-06-28 Eric Botcazou <ebotcazou@adacore.com> 17457 17458 * fold-const.c (contains_label_1): Fix comments. 17459 (contains_label_p): Do not walk trees multiple time. 17460 174612009-06-28 Paolo Bonzini <bonzini@gnu.org> 17462 17463 * config/i386/i386.h (enum ix86_fpcmp_strategy): New. 17464 * config/i386/i386.md (cbranchxf4, cstorexf4, cbranch<MODEF>4, 17465 cstore<MODEF>4, mov<X87MODEF>cc): Change predicate to 17466 ix86_fp_comparison_operator. 17467 (*fp_jcc_1_mixed, *fp_jcc_1_sse, *fp_jcc_1_387, *fp_jcc_2_mixed, 17468 *fp_jcc_2_sse, *fp_jcc_2_387): Delete 17469 (*fp_jcc_3_387, *fp_jcc_4_387, *fp_jcc_5_387, *fp_jcc_6_387, 17470 *fp_jcc_7_387, *fp_jcc_8<MODEF>_387): Eliminate call to 17471 !ix86_use_fcomi_compare, change ix86_fp_jump_nontrivial_p call 17472 to !TARGET_CMOVE, change predicate to ix86_fp_comparison_operator. 17473 (related splits): Change predicate to ix86_fp_comparison_operator. 17474 * config/i386/predicates.md: Use ix86_trivial_fp_comparison_operator 17475 instead of ix86_fp_comparison_codes. 17476 (ix86_trivial_fp_comparison_operator, 17477 ix86_fp_comparison_operator): New. 17478 * config/i386/i386-protos.h (ix86_fp_comparison_strategy): New. 17479 (ix86_expand_compare): Eliminate last two parameters. 17480 (ix86_fp_jump_nontrivial_p): Kill. 17481 * config/i386/i386.c (put_condition_code): Eliminate call to 17482 ix86_fp_comparison_codes and subsequent assertion. 17483 (ix86_fp_comparison_codes): Eliminate. 17484 (ix86_fp_swap_condition): New. 17485 (ix86_fp_comparison_arithmetics_cost, ix86_fp_comparison_fcomi_cost, 17486 ix86_fp_comparison_sahf_cost, ix86_use_fcomi_compare): Consolidate 17487 into ix86_fp_comparison_cost and ix86_fp_comparison_strategy. 17488 (ix86_prepare_fp_compare_args): Use ix86_fp_comparison_strategy 17489 and ix86_fp_swap_condition. 17490 (ix86_expand_fp_compare): Eliminate code for second jump/bypass jump. 17491 Use ix86_fp_comparison_strategy. 17492 (ix86_expand_compare): Likewise. Eliminate last two arguments. 17493 (ix86_fp_jump_nontrivial_p): Eliminate. 17494 (ix86_expand_branch): Treat SFmode/DFmode/XFmode as simple. Adjust 17495 call to ix86_expand_compare. 17496 (ix86_split_fp_branch, ix86_expand_setcc, 17497 ix86_expand_carry_flag_compare, ix86_expand_int_movcc, 17498 ix86_expand_fp_movcc): Eliminate code for second jump/bypass jump. 17499 175002009-06-28 Paolo Bonzini <bonzini@gnu.org> 17501 17502 * config/arm/arm.c (arm_final_prescan_ins): Eliminate code 17503 related to jump_clobbers. 17504 * config/arm/arm.md (conds): Remove jump_clob case. 17505 (addsi3_cbranch, addsi3_cbranch_scratch, subsi3_cbranch, two 17506 splits): Change comparison_operator to arm_comparison_operator. 17507 (*arm_buneq, *arm_bltgt, *arm_buneq_reversed, *arm_bltgt_reversed): 17508 Eliminate. 17509 175102009-06-28 Paolo Bonzini <bonzini@gnu.org> 17511 17512 * dojump.c (do_compare_rtx_and_jump): Try swapping the 17513 condition for floating point modes. 17514 * expmed.c (emit_store_flag_1): Move here a bigger part 17515 of emit_store_flag. 17516 (emit_store_flag): Try swapping the condition for floating point 17517 modes. 17518 * optabs.c (emit_cmp_and_jump_insns): Cope with constant op0 better. 17519 175202009-06-28 Paolo Bonzini <bonzini@gnu.org> 17521 17522 * expr.c (expand_expr_real_1): Just use do_store_flag. 17523 (do_store_flag): Drop support for TRUTH_NOT_EXPR. Use 17524 emit_store_flag_force. 17525 * expmed.c (emit_store_flag_force): Copy here trick 17526 previously in expand_expr_real_1. Try reversing the comparison. 17527 (emit_store_flag_1): Work if target is NULL. 17528 (emit_store_flag): Work if target is NULL, using the result mode 17529 from the comparison. Use split_comparison, restructure final part 17530 to simplify conditionals. 17531 175322009-06-28 Paolo Bonzini <bonzini@gnu.org> 17533 17534 * builtins.c (expand_errno_check): Use do_compare_rtx_and_jump. 17535 * dojump.c (do_jump): Change handling of floating-point 17536 ops to use just do_compare_and_jump. 17537 (split_comparison): New. 17538 (do_compare_rtx_and_jump): Add here logic coming previously 17539 in do_jump, using split_comparison. 17540 175412009-06-27 H.J. Lu <hongjiu.lu@intel.com> 17542 17543 PR target/40489 17544 * config/ia64/ia64.c (ia64_reorg): Check NULL insn. 17545 175462009-06-27 Paolo Bonzini <bonzini@gnu.org> 17547 17548 * tree-ssa-alias.c: Fix unintentional commit. 17549 175502009-06-27 Paolo Bonzini <bonzini@gnu.org> 17551 17552 * passes.c (execute_one_pass): Fix unintentional commit. 17553 175542009-06-27 Paolo Bonzini <bonzini@gnu.org> 17555 17556 * df-problems.c (df_set_seen, df_unset_seen): Delete. 17557 (df_rd_local_compute, df_md_local_compute): Inline them. 17558 17559 (df_md_scratch): New. 17560 (df_md_alloc, df_md_free): Allocate/free it. 17561 (df_md_local_compute): Only include live registers in init. 17562 (df_md_transfer_function): Prune the in-set computed by 17563 the confluence function, and the gen-set too. 17564 175652009-06-27 Paolo Bonzini <bonzini@gnu.org> 17566 17567 PR rtl-optimization/26854 17568 * timevar.def: Remove TV_DF_RU, add TV_DF_MD. 17569 * df-problems.c (df_rd_add_problem): Fix comment. 17570 (df_md_set_bb_info, df_md_free_bb_info, df_md_alloc, 17571 df_md_simulate_artificial_defs_at_top, 17572 df_md_simulate_one_insn, df_md_bb_local_compute_process_def, 17573 df_md_bb_local_compute, df_md_local_compute, df_md_reset, 17574 df_md_transfer_function, df_md_init, df_md_confluence_0, 17575 df_md_confluence_n, df_md_free, df_md_top_dump, df_md_bottom_dump, 17576 problem_MD, df_md_add_problem): New. 17577 * df.h (DF_MD, DF_MD_BB_INFO, struct df_md_bb_info, df_md, 17578 df_md_get_bb_info): New. 17579 (DF_LAST_PROBLEM_PLUS1): Adjust. 17580 17581 * Makefile.in (fwprop.o): Include domwalk.h. 17582 * fwprop.c: Include domwalk.h. 17583 (reg_defs, reg_defs_stack): New. 17584 (bitmap_only_bit_between): Remove. 17585 (process_defs): New. 17586 (process_uses): Use reg_defs and local_md instead of 17587 bitmap_only_bit_between and local_rd. 17588 (single_def_use_enter_block): New, from build_single_def_use_links. 17589 (single_def_use_leave_block): New. 17590 (build_single_def_use_links): Remove code moved to 17591 single_def_use_enter_block, invoke domwalk. 17592 (use_killed_between): Adjust comment. 17593 175942009-06-27 Paolo Bonzini <bonzini@gnu.org> 17595 17596 * bitmap.h (bitmap_ior_and_into): New. 17597 * bitmap.c (bitmap_ior_and_into): New. 17598 175992009-06-27 Paolo Bonzini <bonzini@gnu.org> 17600 17601 * domwalk.h (struct dom_walk_data): Remove all callbacks except 17602 before_dom_children_before_stmts and after_dom_children_after_stmts. 17603 Rename the two remaining callbacks to just before_dom_children and 17604 after_dom_children. Remove other GIMPLE statement walking bits. 17605 * domwalk.c (walk_dominator_tree): Remove now unsupported features. 17606 * graphite.c: Do not include domwalk.h. 17607 * tree-into-ssa.c (interesting_blocks): New global. 17608 (struct mark_def_sites_global_data): Remove it and names_to_rename. 17609 (mark_def_sites, rewrite_stmt, rewrite_add_phi_arguments, 17610 rewrite_update_stmt, rewrite_update_phi_arguments): Simplify 17611 now that they're not domwalk callbacks. 17612 (rewrite_initialize_block): Rename to... 17613 (rewrite_enter_block): ... this, place after called functions. Test 17614 interesting_blocks, call rewrite_stmt and rewrite_add_phi_arguments. 17615 (rewrite_finalize_block): Rename to... 17616 (rewrite_leave_block): ... this, place after called functions. 17617 (rewrite_update_init_block): Rename to... 17618 (rewrite_update_enter_block): ... this, place after called functions. 17619 Test interesting_blocks, call rewrite_update_stmt and 17620 rewrite_update_phi_arguments. 17621 (rewrite_update_fini_block): Rename to... 17622 (rewrite_leave_block): ... this, place after called functions. 17623 (rewrite_blocks): Remove last argument, simplify initialization of 17624 walk_data. 17625 (mark_def_sites_initialize_block): Rename to... 17626 (mark_def_sites_block): ... this, call mark_def_sites. 17627 (mark_def_sites_blocks): Remove argument, simplify initialization of 17628 walk_data. 17629 (rewrite_into_ssa): Adjust for interesting_blocks_being a global. 17630 (update_ssa): Likewise. 17631 * tree-ssa-dom.c (optimize_stmt): Simplify now that it's not a domwalk 17632 callback. 17633 (tree_ssa_dominator_optimize): Simplify initialization of walk_data. 17634 (dom_opt_initialize_block): Rename to... 17635 (dom_opt_enter_block): ... this, place after called functions. Walk 17636 statements here, inline propagate_to_outgoing_edges. 17637 (dom_opt_finalize_block): Rename to... 17638 (dom_opt_leave_block): ... this, place after called functions. 17639 * tree-ssa-dse.c (dse_optimize_stmt): Simplify now that it's not a 17640 domwalk callback. 17641 (dse_enter_block, dse_record_phi): New. 17642 (dse_record_phis): Delete. 17643 (dse_finalize_block): Rename to... 17644 (dse_leave_block): ... this. 17645 (tree_ssa_dse): Simplify initialization of walk_data. 17646 * tree-ssa-loop-im.c (determine_invariantness, move_computations): 17647 Adjust initialization of walk_data. 17648 * tree-ssa-loop-unswitch.c: Do not include domwalk.h. 17649 * tree-ssa-loop-phiopt.c (get_non_trapping): 17650 Adjust initialization of walk_data. 17651 * tree-ssa-loop-threadedge.c: Do not include domwalk.h. 17652 * tree-ssa-uncprop.c (uncprop_into_successor_phis): Simplify now that 17653 it's not a domwalk callback. 17654 (uncprop_initialize_block): Rename to... 17655 (dse_enter_block): ... this, call uncprop_into_successor_phis. 17656 (dse_finalize_block): Rename to... 17657 (dse_leave_block): ... this. 17658 (tree_ssa_uncprop): Simplify initialization of walk_data. 17659 * Makefile.in: Adjust dependencies. 17660 176612009-06-27 Richard Earnshaw <rearnsha@arm.com> 17662 17663 * arm.md (casesi): Fix test for Thumb1. 17664 (thumb1_casesi_internal_pic): Likewise. 17665 (thumb1_casesi_dispatch): Likewise. 17666 176672009-06-26 Daniel Gutson <dgutson@codesourcery.com> 17668 17669 * config/arm/arm-cores.def: Added core cortex-m0. 17670 * config/arm/arm-tune.md: Regenerated. 17671 * doc/invoke.texi: Added entry for cpu ARM Cortex-M0. 17672 176732009-06-26 DJ Delorie <dj@redhat.com> 17674 17675 * config/mep/mep.opt (mfar): Remove -mfar as it doesn't do anything. 17676 17677 * config/mep/mep.c (mep_bundle_insns): Account for the fact that 17678 the scheduler doesn't tag jump insns. 17679 176802009-06-26 H.J. Lu <hongjiu.lu@intel.com> 17681 17682 * c-decl.c (merge_decls): Re-indent. 17683 176842009-06-26 Janis Johnson <janis187@us.ibm.com> 17685 17686 PR c/39902 17687 * tree.c (real_zerop, real_onep, real_twop, real_minus_onep): 17688 Special-case decimal float constants. 17689 176902009-06-26 Richard Henderson <rth@redhat.com> 17691 17692 * function.h (struct function): Add cannot_be_copied_reason, 17693 and cannot_be_copied_set. 17694 * tree-inline.c (has_label_address_in_static_1): Rename from 17695 inline_forbidden_p_2; don't set inline_forbidden_reason here. 17696 (cannot_copy_type_1): Rename from inline_forbidden_p_op; likewise 17697 don't set inline_forbidden_reason. 17698 (copy_forbidden): New function, split out of inline_forbidden_p. 17699 (inline_forbidden_p_stmt): Don't check for nonlocal labels here. 17700 (inline_forbidden_p): Use copy_forbidden. 17701 (tree_versionable_function_p): Likewise. 17702 (inlinable_function_p): Merge into tree_inlinable_function_p. 17703 (tree_function_versioning): Remap cfun->nonlocal_goto_save_area. 17704 * ipa-cp.c (ipcp_versionable_function_p): New function. 17705 (ipcp_cloning_candidate_p): Use it. 17706 (ipcp_node_modifiable_p): Likewise. 17707 177082009-06-26 Olatunji Ruwase <tjruwase@google.com> 17709 17710 * builtins.c (expand_builtin_alloca): Handle builtin alloca 17711 that is marked not to be inlined. Remove flag_mudflap use. 17712 * tree-mudflap.c: Rename mf_xform_derefs to mf_xfrom_statements. 17713 (mf_xform_statements): Mark builtin alloca calls as un-inlineable. 17714 177152009-06-26 Steve Ellcey <sje@cup.hp.com> 17716 17717 PR bootstrap/40338 17718 * config/pa/t-pa-hpux10 (TARGET_LIBGCC2_CFLAGS): Add -frandom-seed. 17719 * config/pa/t-pa-hpux11 (TARGET_LIBGCC2_CFLAGS): Ditto. 17720 177212009-06-26 Kai Tietz <kai.tietz@onevision.com> 17722 17723 * config/i386/mingw-tls.c (__mingwthr_key_dtor): Remove for none 17724 shared libgcc. 17725 (__mingwthr_remove_key_dtor): Likewise. 17726 177272009-06-26 Richard Guenther <rguenther@suse.de> 17728 17729 * tree-ssa-structalias.c (do_ds_constraint): Simplify escape handling. 17730 177312009-06-26 Steven Bosscher <steven@gcc.gnu.org> 17732 17733 PR middle-end/40525 17734 * ifcvt.c (dead_or_predicable): If predicating MERGE_BB fails, 17735 try the non-cond_exec path also. 17736 177372009-06-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 17738 17739 PR target/40468 17740 * pa.c (branch_to_delay_slot_p, branch_needs_nop_p): New functions. 17741 (output_cbranch): Use new functions. 17742 (output_lbranch, output_bb, output_bvb, output_dbra, output_movb): 17743 Likewise. 17744 177452009-06-25 Michael Meissner <meissner@linux.vnet.ibm.com> 17746 Pat Haugen <pthaugen@us.ibm.com> 17747 Revital Eres <ERES@il.ibm.com> 17748 17749 * config/rs6000/rs6000.c (print_operand): Correct lossage message 17750 for %c error. Add %x support to print VSX registers as a unified 17751 register set, instead of separate float and altivec registers. 17752 Switch to use VECTOR_MEM_ALTIVEC_P instead of TARGET_ALTIVEC for 17753 %y case, and add support for VSX pre-modify addresses. 17754 (output_toc): Add assert for CONST containing an integer constant 17755 in the PLUS case. 17756 (rs6000_adjust_cost): Add POWER7 support. 17757 (insn_must_be_first_in_group): Ditto. 17758 (insn_must_be_last_in_group): Ditto. 17759 (rs6000_emit_popcount): Ditto. 17760 (rs6000_vector_mode_supported_p): Ditto. 17761 17762 * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_class): 17763 Change some of the functions called by macros to being called 17764 through a pointer, so debug functions can be inserted if 17765 -mdebug=addr or -mdebug=cost. 17766 (rs6000_preferred_reload_class_ptr): Ditto. 17767 (rs6000_secondary_reload_class_ptr): Ditto. 17768 (rs6000_secondary_memory_needed_ptr): Ditto. 17769 (rs6000_cannot_change_mode_class_ptr): Ditto. 17770 (rs6000_secondary_reload_inner): Ditto. 17771 (rs6000_legitimize_reload_address): Ditto. 17772 (rs6000_legitimize_reload_address_ptr): Ditto. 17773 (rs6000_mode_dependent_address): Ditto. 17774 (rs6000_mode_dependent_address_ptr): Ditto. 17775 17776 * config/rs6000/rs6000.c (reg_offset_addressing_ok_p): New 17777 function to return true if the mode allows reg + integer 17778 addresses. 17779 (virtual_stack_registers_memory_p): New function to return true if 17780 the address refers to a virtual stack register. 17781 (rs6000_legitimate_offset_address_p): Move code to say whether a 17782 mode supports reg+int addressing to reg_offset_addressing_ok_p and 17783 call it. 17784 (rs6000_legitimate_address_p): Add checks for modes that only can 17785 do reg+reg addressing. Start adding VSX support. 17786 (rs6000_legitimize_reload_address): Ditto. 17787 (rs6000_legitimize_address): Ditto. 17788 (rs6000_debug_legitimate_address_p): New debug functions for 17789 -mdebug=addr and -mdebug=cost. 17790 (rs6000_debug_rtx_costs): Ditto. 17791 (rs6000_debug_address_costs): Ditto. 17792 (rs6000_debug_adjust_cost): Ditto. 17793 (rs6000_debug_legitimize_address): Ditto. 17794 (rs6000_legitimize_reload_address_ptr): Point to call normal 17795 function or debug function. Make functions called via pointer 17796 static. 17797 (rs6000_mode_dependent_address_ptr): Ditto. 17798 (rs6000_secondary_reload_class_ptr): Ditto. 17799 (rs6000_hard_regno_mode_ok): Add preliminary VSX support. 17800 (rs6000_emit_move): Add -mdebug=addr support. Change an abort 17801 into a friendlier error. 17802 (rs6000_init_builtins): Add initial VSX support. 17803 (rs6000_adjust_cost): Fix some spacing issues. 17804 17805 * config/rs6000/rs6000.h (enum reg_class): Add VSX_REGS. 17806 (REG_CLASS_NAMES): Ditto. 17807 (REG_CLASS_CONTENTS): Ditto. 17808 (PREFERRED_RELOAD_CLASS): Move from a macro to calling through a 17809 pointer, to add -mdebug=addr support. 17810 (CANNOT_CHANGE_MODE_CLASS): Ditto. 17811 (SECONDARY_RELOAD_CLASS): Call through a pointer to add 17812 -mdebug=addr support. 17813 (LEGITIMIZE_RELOAD_ADDRESS): Ditto. 17814 (GO_IF_MODE_DEPENDENT_ADDRESS): Ditto. 17815 (enum rs6000_builtins): Add RS6000_BUILTIN_BSWAP_HI. 17816 17817 * config/rs6000/rs6000.md (bswaphi*): Add support for swapping 17818 16-bit values. 17819 (bswapsi*): Set attribute types for load/store. Add combiner 17820 patterns to eliminate zero extend on 64-bit. 17821 (bswapdi*): Add support for swapping 64-bit values. Use ldbrx and 17822 stdbrx if the hardware supports those instructions. 17823 178242009-06-25 Ian Lance Taylor <iant@google.com> 17825 17826 * doc/invoke.texi (Option Summary): Mention -static-libstdc++. 17827 (Link Options): Document -static-libstdc++. 17828 178292009-06-25 Andrew Pinski <andrew_pinski@playstation.sony.com> 17830 17831 PR target/38731 17832 * config/rs6000/rs6000.c (LOCAL_ALIGNMENT): Redefine to just use 17833 DATA_ALIGNMENT instead. 17834 178352009-06-25 Richard Guenther <rguenther@suse.de> 17836 17837 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Disambiguate 17838 indirect references against the callused/escaped solutions. 17839 (call_may_clobber_ref_p_1): Likewise. 17840 178412009-06-25 Martin Jambor <mjambor@suse.cz> 17842 17843 PR tree-optimization/40493 17844 * tree-sra.c (sra_modify_expr): Correct BIT_FIELD_REF argument numbers. 17845 (enum unscalarized_data_handling): New type. 17846 (handle_unscalarized_data_in_subtree): Return what has been done. 17847 (load_assign_lhs_subreplacements): Handle left flushes differently. 17848 (sra_modify_assign): Use unscalarized_data_handling, simplified 17849 condition determining whether to remove the statement. 17850 178512009-06-25 Basile Starynkevitch <basile@starynkevitch.net> 17852 17853 * doc/plugins.texi (Building GCC plugins): Correct typo in Makefile 17854 excerpt - @ should be doubled for texinfo. 17855 178562009-06-24 Ian Lance Taylor <iant@google.com> 17857 17858 * config/arc/arc.c: Include "df.h". 17859 (arc_attribute_table): Make static. Move higher in file. 17860 (arc_address_cost): Call SMALL_INT on INTVAL, not rtx. 17861 (output_shift): Initialize n later to avoid warning. 17862 * config/arm/arm.c (arm_attribute_table): Make static. Move 17863 higher in file. 17864 * config/avr/avr.c (avr_attribute_table): Make static. Move 17865 higher in file. 17866 (reg_class_tab): Change array type from int to enum reg_class. 17867 (avr_jump_mode): Change GET_MODE to GET_CODE when checking for 17868 LABEL_REF. 17869 (out_tsthi, ashlhi3_out): Don't use AS2 with "or" or "and". 17870 (lshrhi3_out): Likewise. 17871 (class_likely_spilled_p): Change return type to bool. 17872 (avr_rtx_costs): Use local code variable with enum type. 17873 * config/avr/avr.md (movmemhi): Use add_reg_note. 17874 (andhi3, andsi3): Don't use AS2 with "and". 17875 (iorhi3, iorsi3): Don't use AS2 with "or". 17876 * config/avr/avr-protos.h (class_likely_spilled_p): Update declaration. 17877 * config/crx/crx.c: Include "df.h". 17878 (crx_attribute_table): Make static. 17879 * config/m32r/m32r.c: Include "df.h". 17880 (m32r_attribute_table): Make static. Move higher in file. 17881 (pop): Use add_reg_note. 17882 (block_move_call): Change 0 to LCT_NORMAL in function call. 17883 * config/m32r/m32r.md (movsi_insn): Remove unused local value. 17884 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Likewise. 17885 * config/m32r/m32r-protos.h (m32r_compute_function_type): Always 17886 declare, not just when TREE_CODE is defined. 17887 * config/m68hc11/m68hc11.c: Include "expr.h". 17888 (m68hc11_attribute_table): Make static. Move higher in file. 17889 (m68hc11_small_indexed_indirect_p): Change 0 to VOIDmode in 17890 function call. 17891 (m68hc11_register_indirect_p): Likewise. 17892 (m68hc11_function_arg_padding): Change return type to enum 17893 direction. 17894 (emit_move_after_reload): Use add_reg_note. 17895 (m68hc11_emit_logical): Change code parameter to enum rtx_code. 17896 (m68hc11_split_logical): Likewise. 17897 (m68hc11_rtx_costs): Add local code_and outer_code variables with 17898 enum type. 17899 * config/m68hc11/predicates.md (reg_or_some_mem_operand): Change 0 17900 to VOIDmode in function call. 17901 * config/m68hc11/m68hc11-protos.h: Don't check TREE_CODE to see if 17902 tree is defined. 17903 (m68hc11_split_logical): Update declaration. 17904 (m68hc11_function_arg_padding): Update declaration. 17905 * config/mcore/mcore.c (regno_reg_class): Change form array of int 17906 to array of enum reg_class. 17907 (mcore_attribute_table): Make static. Move higher in file. 17908 (mcore_rtx_costs): Add cast to enum type. 17909 * config/mcore/mcore.h (regno_reg_class): Update declaration. 17910 (GO_IF_LEGITIMATE_INDEX): Add cast to avoid warning. 17911 * config/sh/sh.c (sh_attribute_table): Make static. Move higher 17912 in file. 17913 * config/sh/predicates.md (trapping_target_operand): Rename and to 17914 and_expr. 17915 * config/sparc/sparc.c (sparc_attribute_table): Make static. Move 17916 higher in file. 17917 * config/spu/spu.c (spu_attribute_table): Make static. Move 17918 higher in file. 17919 * config/v850/v850.c (v850_attribute_table): Make static. Move 17920 higher in file. 17921 (v850_rtx_costs): Use local code with enum type. 17922 (expand_epilogue): Add cast. 17923 * config/v850/v850-c.c (ghs_pragma_section): Initialize repeat. 17924 179252009-06-23 Takashi YOSHII <yoshii.takashi@renesas.com> 17926 17927 PR target/40515 17928 * doc/invoke.texi (SH Options): Document -m2a, -m2a-single, 17929 -m2a-single-only and -m2a-nofpu. 17930 * config/sh/sh.opt: Document m2a generates FPU code. 17931 179322009-06-24 Anatoly Sokolov <aesok@post.ru> 17933 17934 * defaults.h (CAN_ELIMINATE): Provide default. 17935 * doc/tm.texi (CAN_ELIMINATE): Revise documentation. 17936 * config/alpha/alpha.h (CAN_ELIMINATE): Delete. 17937 * config/m32c/m32c.h (CAN_ELIMINATE): Delete. 17938 * config/spu/spu.h (CAN_ELIMINATE): Delete. 17939 * config/xtensa/xtensa.h (CAN_ELIMINATE): Delete. 17940 * config/moxie/moxie.h (CAN_ELIMINATE): Delete. 17941 * config/cris/cris.h (CAN_ELIMINATE): Delete. 17942 * config/mn10300/mn10300.h (CAN_ELIMINATE): Delete. 17943 * config/pa/pa64-linux.h (CAN_ELIMINATE): Delete. 17944 * config/mmix/mmix.h (CAN_ELIMINATE): Delete. 17945 179462009-06-24 DJ Delorie <dj@redhat.com> 17947 17948 * mep-ext-cop.cpu: Fix copyright notice. 17949 * mep-default: Fix copyright notice. 17950 * mep-core: Fix copyright notice. 17951 * mep: Fix copyright notice. 17952 * mep-ivc2: Fix copyright notice. 17953 * mep-c5: Fix copyright notice. 17954 179552009-06-24 Denis Chertykov <chertykov@gmail.com> 17956 17957 * doc/contrib.texi (Contributors): 17958 179592009-06-24 Andreas Krebbel <krebbel1@de.ibm.com> 17960 17961 PR middle-end/40501 17962 * tree-ssa-math-opts.c (execute_optimize_bswap): Convert the bswap 17963 src and dst operands if necessary. 17964 179652009-06-23 DJ Delorie <dj@redhat.com> 17966 17967 Add MeP port. 17968 * config.gcc: Add mep support. 17969 * recog.c: Resurrect validate_replace_rtx_subexp(). 17970 * recog.h: Likewise. 17971 * config/mep/: Add new port: 17972 * config/mep/constraints.md: New file. 17973 * config/mep/default.h: New file. 17974 * config/mep/intrinsics.h: New file. 17975 * config/mep/intrinsics.md: New file. 17976 * config/mep/ivc2-template.h: New file. 17977 * config/mep/mep-c5.cpu: New file. 17978 * config/mep/mep-core.cpu: New file. 17979 * config/mep/mep-default.cpu: New file. 17980 * config/mep/mep-ext-cop.cpu: New file. 17981 * config/mep/mep-intrin.h: New file. 17982 * config/mep/mep-ivc2.cpu: New file. 17983 * config/mep/mep-lib1.asm: New file. 17984 * config/mep/mep-lib2.c: New file. 17985 * config/mep/mep-pragma.c: New file. 17986 * config/mep/mep-protos.h: New file. 17987 * config/mep/mep-tramp.c: New file. 17988 * config/mep/mep.c: New file. 17989 * config/mep/mep.cpu: New file. 17990 * config/mep/mep.h: New file. 17991 * config/mep/mep.md: New file. 17992 * config/mep/mep.opt: New file. 17993 * config/mep/predicates.md: New file. 17994 * config/mep/t-mep: New file. 17995 179962009-06-23 Ian Lance Taylor <iant@google.com> 17997 17998 * configure.ac: Invoke AC_PROG_CXX. Separate C specific warnings 17999 from loose_warn into c_loose_warn and from strict_warn into 18000 c_strict_warn. Set and substitute warn_cxxflags. Check for 18001 --enable-build-with-cxx. Set and substitute 18002 ENABLE_BUILD_WITH_CXX. Set and substitute HOST_LIBS. 18003 * Makefile.in (CXXFLAGS): New variable. 18004 (C_LOOSE_WARN, C_STRICT_WARN): New variables. 18005 (GCC_WARN_CFLAGS): Add $(C_LOOSE_WARN). Add $(C_STRICT_WARN) if 18006 the default is the same as $(STRICT_WARN). 18007 (GCC_WARN_CXXFLAGS, WARN_CXXFLAGS): New variables. 18008 (CXX): New variable. 18009 (COMPILER): New value if ENABLE_BUILD_WITH_CXX. 18010 (COMPILER_FLAGS, LINKER, LINKER_FLAGS): Likewise. 18011 (ALL_COMPILERFLAGS, ALL_LINKERFLAGS): Likewise. 18012 (HOST_LIBS): New variable. 18013 (GCC_CFLAGS): Add $(C_LOOSE_WARN). 18014 (ALL_CXXFLAGS): New variable. 18015 (LIBS, BACKENDLIBS): Add $(HOST_LIBS). 18016 * doc/install.texi (Configuration): Document 18017 --enable-build-with-cxx, --with-stage1-ldflags, 18018 --with-stage1-libs, --with-boot-ldflags, --with-boot-libs. 18019 * configure: Rebuild. 18020 180212009-06-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18022 18023 * config/arm/arm.c (arm_override_options): Fix braces and formatting 18024 from previous commit. 18025 180262009-06-23 Ian Lance Taylor <iant@google.com> 18027 18028 * Makefile.in ($(out_object_file)): Depend upon $(DF_H). 18029 180302009-06-23 Ian Lance Taylor <iant@google.com> 18031 18032 * reload.c (alternative_allows_const_pool_ref): Mark mem parameter 18033 with ATTRIBUTE_UNUSED. 18034 180352009-06-23 Michael Meissner <meissner@linux.vnet.ibm.com> 18036 Pat Haugen <pthaugen@us.ibm.com> 18037 Revital Eres <eres@il.ibm.com> 18038 18039 * config.in (HAVE_AS_POPCNTD): Add default definition. 18040 (HAVE_AS_LWSYNC): Ditto. 18041 18042 * configure.ac (gcc_cv_as_powerpc_mfpgpr): Provide real binutils 18043 release number. 18044 (gcc_cv_as_powerpc_cmpb): Ditto. 18045 (gcc_cv_as_powerpc_dfp): Ditto. 18046 (gcc_cv_as_powerpc_vsx): Ditto. 18047 (gcc_cv_as_powerpc_popcntd): Add feature test for assembler 18048 supporting the popcntd/lwsync instructions. 18049 (gcc_cv_as_powerpc_lwsync): Ditto. 18050 * configure: Regenerate. 18051 18052 * config/rs6000/aix53.h (ASM_CPU_SPEC): Add support for 18053 -mcpu=native and -mcpu=power7. 18054 * config/rs6000/aix61.h (ASM_CPU_SPEC): Ditto. 18055 18056 * config/rs6000/linux64.opt (-mprofile-kernel): Move switch to be 18057 a variable instead of a mask to reduce the number of mask bits. 18058 * config/rs6000/sysv4.opt (-mbit-align): Ditto. 18059 (-mbit-word): Ditto. 18060 (-mregnames): Ditto. 18061 * config/rs6000/rs6000.opt (-mupdate): Ditto. 18062 (-mfused-madd): Ditto. 18063 18064 * config/rs6000/rs6000.opt (-mpopcntd): New switch for non-VSX ISA 18065 2.06 instructions. 18066 (-mvsx): New switch for VSX instructions. 18067 (-misel): Move from a variable to a mask to allow it to be set by 18068 -mcpu=. 18069 18070 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_nregs): Change 18071 function declaration to an array declaration. 18072 (rs6000_hard_regno_nregs): New external array declaration. 18073 18074 * config/rs6000/t-rs6000 (MD_INCLUDES): Define, add all of the .md 18075 files included by rs6000.md. 18076 18077 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use 18078 SET_PROFILE_KERNEL macro to reset the -mprofile-kernel switch. 18079 18080 * config/rs6000/rs6000.c (rs6000_isel): Delete, -misel moved to be 18081 a target mask. 18082 (rs6000_debug_reg): New -mdebug= variables. 18083 (rs6000_debug_addr): Ditto. 18084 (rs6000_debug_cost): Ditto. 18085 (rs6000_pmode): New variable to hold Pmode. 18086 (rs6000_pointer_size): New variable to hold POINTER_SIZE. 18087 (rs6000_class_max_nregs): New array to hold CLASS_MAX_NREGS 18088 calculated at compiler start. 18089 (rs6000_hard_regno_nregs): Change function to an array which holds 18090 HARD_REGNO_NREGS calculated at compiler start. 18091 (rs6000_explicit_options): Delete isel field. 18092 (rs6000_vector_unit): New array to hold which vector unit 18093 supports arithmetic options for a given type. 18094 (rs6000_vector_mem): New array to hold which vector unit supports 18095 memory reference operations for a given type. 18096 (rs6000_vector_align): New array to given the alignment of each 18097 vector type. 18098 (power7_cost): New basic costs for power7. 18099 (SET_PROFILE_KERNEL): New macro for resetting -mprofile-kernel. 18100 (rs6000_hard_regno_nregs_internal): New function, moved from 18101 HARD_REGNO_NREGS, to calculate the number of registers each hard 18102 register takes for each type. 18103 (rs6000_debug_reg_print): New function for -mdebug=reg support. 18104 (rs6000_debug_vector_unit): New array, map rs6000_vector to string. 18105 (+rs6000_init_hard_regno_mode_ok): New function, move calculation 18106 of HARD_REGNO_NREGS, CLASS_MAX_NREGS, REGNO_REG_CLASS, and vector 18107 unit information here so it is calculated once at compiler startup 18108 time. 18109 (rs6000_override_options): Make -misel a target mask. Add more 18110 power7 target masks. Setup Pmode and POINTER_SIZE. Add initial 18111 VSX support. Add support for -mdebug=reg, -mdebug=addr, and 18112 -mdebug=cost. 18113 (POWERPC_MASKS): Add MASK_POPCNTD, MASK_VSX, and MASK_ISEL. 18114 (rs6000_handle_option): Move -misel from variable to target mask. 18115 (rs6000_builtin_mask_for_load): Add VSX support. 18116 (rs6000_conditional_register_usage): Ditto. 18117 (USE_ALTIVEC_FOR_ARG_P): Ditto. 18118 (function_arg_boundary): Ditto. 18119 (rs6000_expand_builtin): Ditto. 18120 (def_builtin): Make abort message a little friendlier. 18121 (rs6000_emit_int_cmove): Add support for 64-bit isel. 18122 18123 * config/rs6000/rs6000.h (ASM_CPU_POWER7_SPEC): Depend on the 18124 assembler support the popcntd instruction instead of a vsx 18125 instruction to enable power7 support. 18126 (ASM_CPU_SPEC): Add support for -mcpu=native and -mcpu=power7. 18127 (EXTRA_SPECS): Add ASM_CPU_NATIVE_SPEC to allow passing the right 18128 option to the assembler if -mcpu=native. 18129 (ASM_CPU_NATIVE_SPEC): Ditto. 18130 (TARGET_POPCNTD): If assembler doesn't support popcntd, turn off 18131 ISA 2.06 features. 18132 (TARGET_LWSYNC_INSTRUCTION): Define whether it is safe to issue 18133 the lwsync instruction. 18134 (enum processor_type): Add PROCESSOR_POWER7. 18135 (rs6000_debug_reg): New -mdebug= options. 18136 (rs6000_debug_addr): Ditto. 18137 (rs6000_debug_cost): Ditto. 18138 (rs6000_isel): Delete. 18139 (enum rs6000_vector): New enum to say what vector unit we have. 18140 (VECTOR_UNIT_*): New macros to say which vector unit has 18141 arithmetic operations for a given type. 18142 (VECTOR_MEM_*): New macros to say which vector unit has memory 18143 operations for a given type. 18144 (TARGET_LDBRX): Whether the machine supports the ldbrx 18145 instruction. 18146 (TARGET_ISEL): Delete, -misel moved to be a mask. 18147 (TARGET_ISEL64): New macro for 64-bit isel support. 18148 (UNITS_PER_VSX_WORD): New macro. 18149 (POINTER_SIZE): Move to be an external variable, rather than 18150 calculating whether we are generating 32 ot 64-bit code. 18151 (Pmode): Ditto. 18152 (STACK_BOUNDARY): Add VSX support. 18153 (LOCAL_ALIGNMENT): Ditto. 18154 (SLOW_UNALIGNED_ACCESS): Ditto. 18155 (VSX_REGNO_P): New macro for VSX support. 18156 (VFLOAT_REGNO_P): Ditto. 18157 (VINT_REGNO_P): Ditto. 18158 (VLOGICAL_REGNO_P): Ditto. 18159 (VSX_VECTOR_MODE): Ditto. 18160 (VSX_SCALAR_MODE): Ditto. 18161 (VSX_MODE): Ditto. 18162 (VSX_MOVE_MODE): Ditto. 18163 (VSX_REG_CLASS_P): Ditto. 18164 (HARD_REGNO_NREGS): Instead of calling a function, use an array 18165 lookup. 18166 (UNITS_PER_SIMD_WORD): Add VSX support. 18167 (MODES_TIEABLE_P): Ditto. 18168 (STARTING_FRAME_OFFSET): Ditto. 18169 (STACK_DYNAMIC_OFFSET): Ditto. 18170 (EPILOGUE_USES): Ditto. 18171 (REGNO_REG_CLASS): Move to array lookup. 18172 (CLASS_MAX_NREGS): Ditto. 18173 (rs6000_vector_reg_class): Add declaration. 18174 (ADDITIONAL_REGISTER_NAMES): Add VSX names for the registers that 18175 overlap with the floating point and Altivec registers. 18176 18177 * config/rs6000/e500.h (CHECK_E500_OPTIONS): Disallow -mvsx. 18178 18179 * config/rs6000/driver-rs6000.c (asm_names): New static array to 18180 give the appropriate asm switches if -mcpu=native. 18181 (host_detect_local_cpu): Add support for "asm". 18182 (host_detect_local_cpu): Follow GNU code guidelines for name. 18183 18184 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Move 18185 -mbit-word to a variable instead of being a target mask. 18186 18187 * config/rs6000/sync.md (lwsync): If the assembler supports it, 18188 emit the lwsync instruction instead of emitting the instruction as 18189 an integer constant. 18190 18191 * config/rs6000/spe.md (spe_fixuns_truncdfsi2): Rename from 18192 fixuns_trundfsi2, move expander into rs6000.md. 18193 18194 * config/rs6000/rs6000.md (cpu): Add power7. 18195 (sel, *ptrsize): New mode attributes for 32/64-bit isel. 18196 (logical predicate patterns): Change the single instruction 18197 primitives that set CR0 to be fast_compare instead of compare. 18198 (norsi*): Ditto. 18199 (popcntwsi2): Add support for ISA 2.06 popcount instructions. 18200 (popcntddi2): Ditto. 18201 (popcount<mode>): Ditto. 18202 (floating multiply/add insns): Name the floating point 18203 multiply/add insns. 18204 (isel_signed_<mode>): Add support for -misel on 64-bit systems. 18205 (isel_unsigned_<mode>): Ditto. 18206 (fixuns_trundfsi2): Move expander here from spe.md. 18207 (smindi3): Define if we have -misel on 64-bit systems. 18208 (smaxdi3): Ditto. 18209 (umindi3): Ditto. 18210 (umaxdi3): Ditto. 18211 182122009-06-23 Anatoly Sokolov <aesok@post.ru> 18213 18214 * config.gcc (avr-*-rtems*, avr-*-*): Set extra_gcc_objs and 18215 extra_objs. 18216 * config/avr/avr.c (avr_current_device): New variable. 18217 (avr_arch_types, avr_mcu_types): Move to avr-deveces.c. 18218 (avr_arch, mcu_type_s): Move to avr.h. 18219 * config/avr/avr.h (base_arch_s). Add reserved2, arch_name and 18220 default_data_section_start fields. 18221 (avr_arch): Moved from avr.c. 18222 (mcu_type_s): Moved from avr.c. Add short_sp, data_section_start and 18223 library_name fields. 18224 (avr_current_device, avr_mcu_types, avr_arch_types, 18225 avr_device_to_arch, avr_device_to_data_start, 18226 avr_device_to_startfiles, avr_device_to_devicelib): Declare. 18227 (EXTRA_SPEC_FUNCTIONS): Define. 18228 (LINK_SPEC): Remove device name to '-m ...' and '-Tdata ...' linker 18229 options mapping. Use device_to_arch and device_to_data_start insted. 18230 (STARTFILE_SPEC): Use device_to_startfile instead of crt_binutils. 18231 (CRT_BINUTILS_SPECS, EXTRA_SPECS): Remove. 18232 * config/avr/t-avr (driver-avr.o, avr-devices.o): New rules. 18233 * config/avr/driver-avr.c: New file. 18234 * config/avr/avr-devices.c: New file. 18235 182362009-06-23 Jakub Jelinek <jakub@redhat.com> 18237 18238 * var-tracking.c (unshare_variable): Force initialized to 18239 be VAR_INIT_STATUS_INITIALIZED unless flag_var_tracking_uninit. 18240 (set_variable_part): Likewise. 18241 (struct variable_union_info): Remove pos_src field. 18242 (vui_vec, vui_allocated): New variables. 18243 (variable_union): Pass VAR_INIT_STATUS_UNKNOWN to unshare_variable 18244 unconditionally. Avoid XCVECNEW/free for every sorting, for dst_l 18245 == 1 use a simpler sorting algorithm. Compute pos field right 18246 away, don't fill in pos_src. For dst_l == 2 avoid qsort. 18247 Avoid quadratic comparison if !flag_var_tracking_uninit. 18248 (variable_canonicalize): Pass VAR_INIT_STATUS_UNKNOWN to 18249 unshare_variable unconditionally. 18250 (dataflow_set_different_2): Removed. 18251 (dataflow_set_different): Don't traverse second hash table. 18252 (compute_bb_dataflow): Pass VAR_INIT_STATUS_UNINITIALIZED 18253 unconditionally to var_reg_set or var_mem_set. 18254 (emit_notes_in_bb): Likewise. 18255 (delete_variable_part): Pass VAR_INIT_STATUS_UNKNOWN to 18256 unshare_variable. 18257 (emit_note_insn_var_location): Don't set initialized to 18258 VAR_INIT_STATUS_INITIALIZED early. 18259 (vt_finalize): Free vui_vec if needed, clear vui_vec and 18260 vui_allocated. 18261 * rtl.c (rtx_equal_p): Don't implement on top of rtx_equal_p_cb. 18262 18263 * tree-object-size.c (addr_object_size): Instead of checking 18264 for non-NULL TREE_CHAIN of the FIELD_DECL check that there 18265 are no FIELD_DECLs following it. 18266 182672009-06-23 Andreas Krebbel <krebbel1@de.ibm.com> 18268 18269 * tree-ssa-math-opts.c (find_bswap): Increase the search depth in 18270 order to match bswaps with signed source operands. 18271 182722009-06-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 18273 18274 * sdbout.c (sdbout_one_type): Fix braces in switch. 18275 182762009-06-23 Richard Guenther <rguenther@suse.de> 18277 18278 * tree-ssa-structalias.c (struct variable_info): Add is_global_var 18279 member. 18280 (var_anything, anything_tree, var_nothing, nothing_tree, var_readonly, 18281 readonly_tree, var_escaped, escaped_tree, var_nonlocal, nonlocal_tree, 18282 var_callused, callused_tree, var_storedanything, storedanything_tree, 18283 var_integer, integer_tree): Remove global variables. 18284 (new_var_info): Do not pass new id, append the new var to the 18285 global variable vector. 18286 (do_ds_constraint): Use is_global_var member of the variable-info. 18287 (new_scalar_tmp_constraint_exp): Adjust. 18288 (create_function_info_for): Likewise. 18289 (create_variable_info_for): Likewise. 18290 (find_what_var_points_to): Remove dead code. 18291 (init_base_vars): Simplify. 18292 (compute_points_to_sets): Adjust. 18293 182942009-06-22 Adam Nemet <anemet@caviumnetworks.com> 18295 18296 * combine.c (try_combine): Dump information about the insns we're 18297 combining. 18298 182992009-06-22 Adam Nemet <anemet@caviumnetworks.com> 18300 18301 * combine.c (combine_simplify_rtx): Remove TRULY_NOOP_TRUNCATION 18302 check when calling force_to_mode on TRUNCATE's operand. 18303 183042009-06-22 Ian Lance Taylor <iant@google.com> 18305 18306 * config/rs6000/rs6000.opt: Move msched-epilog before msched-prolog. 18307 183082009-06-22 Steven Bosscher <steven@gcc.gnu.org> 18309 18310 * config/arm/arm.md (prologue_use): Set length of fake insn to 0. 18311 183122009-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 18313 18314 * doc/invoke.texi (Link Options): -nodefaultlibs and -nostdlib 18315 override library linkage flags such as -static-libgcc or 18316 -shared-libgcc. 18317 183182009-06-22 Maxim Kuvyrkov <maxim@codesourcery.com> 18319 18320 * config/m68k/m68k-devices.def: Add line for MCF5221x. 18321 183222009-06-22 Ian Lance Taylor <iant@google.com> 18323 18324 * config/linux.opt: Put mglibc ahead of muclibc. 18325 18326 * c-decl.c (diagnose_mismatched_decls): Add -Wc++-compat warning 18327 for duplicate decls. 18328 183292009-06-22 Matthias Klose <doko@ubuntu.com> 18330 18331 * Makefile.in (install-plugin): Remove extra `/' after $(DESTDIR). 18332 183332009-06-22 Steven Bosscher <steven@gcc.gnu.org> 18334 18335 PR objc/28050 18336 * c-parser.c (c_parser_objc_message_args): Return error_mark_node 18337 instead of NULL if a parser error occurs. 18338 183392009-06-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 18340 18341 * dwarf2out.c (dwarf2_debug_hooks): Initialize 18342 non-DWARF2_DEBUGGING_INFO version. 18343 183442009-06-22 Kai Tietz <kai.tietz@onevision.com> 18345 18346 * config.gcc (i[34567]86-*-mingw*, x86_64-*-mingw*): Add 18347 i386/t-fprules-softfp and soft-fp/t-softfp to tmake_file. 18348 18349 * config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Define. 18350 (LIBGCC2_TF_CEXT): Define. 18351 (TF_SIZE): Define. 18352 183532009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18354 18355 PR target/40463 18356 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Fix definition. 18357 183582009-06-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18359 18360 * config/arm/arm.c (arm_override_options): Disable 18361 -mcaller-super-interworking and -mcallee-super-interworking. 18362 * doc/invoke.texi (ARM Options): Document this. 18363 183642009-06-22 Nathan Sidwell <nathan@codesourcery.com> 18365 18366 * config/arm/arm.c (arm_print_operand): Deal with HIGH. 18367 * config/arm/constraints.md (j): New constraint for movw operands. 18368 (N): Remove thumb2 meaning. 18369 * config/arm/arm.md (*arm_movw): Delete. 18370 (*arm_movsi_insn): Use j constraint for movw instead of N constraint. 18371 * config/arm/vfp.md (*arm_movsi_vfp, *thumb2_movsi_vfp): Likewise. 18372 * config/arm/thumb2.md (*thumb2_movsi_insn): Likewise. 18373 183742009-06-22 Martin Jambor <mjambor@suse.cz> 18375 18376 PR tree-optimization/40492 18377 * tree-sra.c (sra_modify_assign): Pass zero offsets to 18378 build_ref_for_offset. 18379 183802009-06-22 Shujing Zhao <pearly.zhao@oracle.com> 18381 18382 * alias.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, CALL_P, NOTE_P and 18383 JUMP_TABLE_DATA_P predicates where applicable. 18384 * auto-inc-dec.c: Ditto. 18385 * builtins.c: Ditto. 18386 * caller-save.c: Ditto. 18387 * calls.c: Ditto. 18388 * cfgcleanup.c: Ditto. 18389 * cfglayout.c: Ditto. 18390 * cfgrtl.c: Ditto. 18391 * combine.c: Ditto. 18392 * combine-stack-adj.c: Ditto. 18393 * cse.c: Ditto. 18394 * cselib.c: Ditto. 18395 * dbxout.c: Ditto. 18396 * df-scan.c: Ditto. 18397 * dse.c: Ditto. 18398 * dwarf2asm.c: Ditto. 18399 * dwarf2out.c: Ditto. 18400 * emit-rtl.c: Ditto. 18401 * except.c: Ditto. 18402 * explow.c: Ditto. 18403 * expmed.c: Ditto. 18404 * expr.c: Ditto. 18405 * final.c: Ditto. 18406 * function.c: Ditto. 18407 * fwprop.c: Ditto. 18408 * gcse.c: Ditto. 18409 * genpreds.c: Ditto. 18410 * genrecog.c: Ditto. 18411 * ifcvt.c: Ditto. 18412 * ira-costs.c: Ditto. 18413 * ira-lives.c: Ditto. 18414 * jump.c: Ditto. 18415 * loop-iv.c: Ditto. 18416 * lower-subreg.c: Ditto. 18417 * modulo-sched.c: Ditto. 18418 * optabs.c: Ditto. 18419 * postreload.c: Ditto. 18420 * print-rtl.c: Ditto. 18421 * recog.c: Ditto. 18422 * reginfo.c: Ditto. 18423 * regmove.c: Ditto. 18424 * reload1.c: Ditto. 18425 * reload.c: Ditto. 18426 * reorg.c: Ditto. 18427 * rtlanal.c: Ditto. 18428 * rtl.c: Ditto. 18429 * sched-vis.c: Ditto. 18430 * sdbout.c: Ditto. 18431 * sel-sched-ir.c: Ditto. 18432 * simplify-rtx.c: Ditto. 18433 * targhooks.c: Ditto. 18434 * var-tracking.c: Ditto. 18435 * vmsdbgout.c: Ditto. 18436 184372009-06-22 Matthias Klose <doko@ubuntu.com> 18438 18439 * Makefile.in (install-plugin): Always use DESTDIR. 18440 184412009-06-22 Olivier Hainque <hainque@adacore.com> 18442 18443 * config/pa/pa.c (output_call): Don't optimize post call jumps 18444 into return address adjustments if the call may throw. 18445 184462009-06-21 Richard Earnshaw <rearnsha@arm.com> 18447 18448 * arm.c (thumb1_output_casesi): New function. 18449 * arm.h (CASE_VECTOR_PC_RELATIVE): Thumb-1 code is also relative if 18450 optimizing for size or PIC. 18451 (CASE_VECTOR_SHORTEN_MODE): Handle thumb-1. 18452 * arm.md (UNSPEC_THUMB1_CASESI): New constant. 18453 (casesi): Handle Thumb-1 when optimizing for size or PIC. 18454 (thumb1_casesi_internal_pic): New expand rule. 18455 (thumb1_casesi_dispatch): New pattern. 18456 * aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Use shortened vectors for 18457 thumb-1 mode. 18458 * coff.h (JUMP_TABLES_IN_TEXT_SECTION): Thumb-1 jump tables are now 18459 in the text seciton when PIC or optimizing for size. 18460 * elf.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. 18461 * lib1funcs.asm ([__ARM_EABI__]): Add an attribute describing stack 18462 preservation properties of code. 18463 (__gnu_thumb1_case_sqi, __gnu_thumb1_case_uqi): New functions. 18464 (__gnu_thumb1_case_shi, __gnu_thumb1_case_uhi): New functions. 18465 (__gnu_thumb1_case_si): New function. 18466 * t-arm (LIB1ASMSRC): Define here. 18467 (LIB1ASMFUNCS): Add some common functions. 18468 * t-arm-elf (LIB1ASMSRC): Delete. 18469 (LIB1ASMFUNCS): Append to existing set. 18470 * t-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18471 * t-strongarm-elf (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18472 * t-symbian (LIB1ASMFUNCS): Likewise. 18473 * t-vxworks (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18474 * t-wince-pe (LIB1ASMSRC, LIB1ASMFUNCS): Likewise. 18475 184762009-06-21 Richard Guenther <rguenther@suse.de> 18477 18478 PR tree-optimization/38729 18479 * tree-ssa-loop-niter.c (find_loop_niter_by_eval): Restrict 18480 to loops with a single exit if -fno-expensive-optimizations. 18481 184822009-06-21 Jakub Jelinek <jakub@redhat.com> 18483 18484 * var-tracking.c (struct shared_hash_def, shared_hash): New types. 18485 (dataflow_set): Change vars type from htab_t to shared_hash. 18486 (shared_hash_pool, empty_shared_hash): New variables. 18487 (vars_clear): Removed. 18488 (shared_hash_shared, shared_hash_htab, shared_hash_copy, 18489 shared_hash_find_slot_unshare, shared_hash_find_slot, 18490 shared_hash_find_slot_noinsert, shared_hash_find): New 18491 static inlines. 18492 (shared_hash_unshare, shared_hash_destroy): New functions. 18493 (unshare_variable): Unshare set->vars if shared, use 18494 shared_hash_htab. 18495 (vars_copy): Use htab_traverse_noresize instead of htab_traverse. 18496 (get_init_value, find_src_set_src, dump_dataflow_set, 18497 clobber_variable_part, emit_notes_for_differences): Use 18498 shared_hash_htab. 18499 (dataflow_set_init): Remove second argument, set vars to 18500 empty_shared_hash instead of creating a new htab. 18501 (dataflow_set_clear): Call shared_hash_destroy and set vars 18502 to empty_shared_hash instead of calling vars_clear. 18503 (dataflow_set_copy): Don't call vars_copy, instead just share 18504 the src htab with dst. 18505 (variable_union): Use shared_hash_*, use initially NO_INSERT 18506 lookup if set->vars is shared. Don't keep slot cleared before 18507 calling unshare_variable. Unshare set->vars if needed. 18508 Even ->refcount == 1 vars must be unshared if set->vars is shared 18509 and var needs to be modified. 18510 (variable_canonicalize): New function. 18511 (dataflow_set_union): If dst->vars is empty, just share src->vars 18512 with dst->vars and traverse with variable_canonicalize to canonicalize 18513 and unshare what is needed. 18514 (dataflow_set_different): If old_set and new_set use the same shared 18515 htab, they aren't different. If number of htab elements is different, 18516 htabs are different. Use shared_hash_*. 18517 (dataflow_set_destroy): Call shared_hash_destroy instead of 18518 htab_delete. 18519 (compute_bb_dataflow, emit_notes_in_bb, vt_emit_notes): Don't pass 18520 second argument to dataflow_set_init. 18521 (vt_initialize): Likewise. Initialize shared_hash_pool and 18522 empty_shared_hash, move bb in/out initialization afterwards. 18523 Use variable_htab_free instead of NULL as changed_variables del hook. 18524 (variable_was_changed): Change type of second argument to pointer to 18525 dataflow_set. When inserting var into changed_variables, bump 18526 refcount. Unshare set->vars if set is shared htab and slot needs to 18527 be cleared. 18528 (set_variable_part): Use shared_hash_*, use initially NO_INSERT 18529 lookup if set->vars is shared. Unshare set->vars if needed. 18530 Even ->refcount == 1 vars must be unshared if set->vars is shared 18531 and var needs to be modified. Adjust variable_was_changed caller. 18532 (delete_variable_part): Use shared_hash_*. Even ->refcount == 1 18533 vars must be unshared if set->vars is shared and var needs to be 18534 modified. Adjust variable_was_changed caller. 18535 (emit_note_insn_var_location): Don't pool_free var. 18536 (emit_notes_for_differences_1): Initialize empty_var->refcount to 0 18537 instead of 1. 18538 (vt_finalize): Call htab_delete on empty_shared_hash->htab and 18539 free_alloc_pool on shared_hash_pool. 18540 185412009-06-20 Anthony Green <green@moxielogic.com> 18542 18543 * config/moxie/sfp-machine.h (__gcc_CMPtype, CMPtype): Define. 18544 * config/moxie/moxie.h (LOAD_EXTEND_OP): Define. 18545 185462009-06-20 Richard Guenther <rguenther@suse.de> 18547 18548 * tree-ssa-structalias.c (find_func_aliases): For memset use 18549 a constraint from NULL if we memset to zero. 18550 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Add builtins 18551 we explicitly handle that do not read from memory. 18552 (call_may_clobber_ref_p_1): Properly handle builtins that may 18553 set errno. 18554 185552009-06-20 Richard Guenther <rguenther@suse.de> 18556 18557 PR tree-optimization/40495 18558 * tree-ssa-structalias.c (get_constraint_exp_for_temp): Remove. 18559 (new_scalar_tmp_constraint_exp): New function. 18560 (process_constraint): Do not create temporary decls. 18561 (process_all_all_constraints): Likewise. 18562 (handle_const_call): Likewise. 18563 (create_function_info_for): Do not set decl. 18564 185652009-06-19 Ian Lance Taylor <iant@google.com> 18566 18567 * config/rs6000/rs6000.c (rs6000_explicit_options): Make static. 18568 (rs6000_attribute_table): Make static; move before use. 18569 185702009-06-19 Eric Botcazou <ebotcazou@adacore.com> 18571 18572 * tree.c (substitute_in_expr) <COMPONENT_REF>: Tweak and reformat. 18573 <tcc_vl_exp>: Call process_call_operands on the new CALL_EXPR. 18574 Propagate the TREE_READONLY flag without overwriting it. 18575 (substitute_placeholder_in_expr) <tcc_vl_exp>: Likewise. 18576 Propagate the TREE_READONLY flag onto the result. 18577 (process_call_operands): Move around. Use correct constant value. 18578 185792009-06-19 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 18580 18581 PR target/40482 18582 * config/arm/arm.c (thumb_shiftable_const): Truncate val to 32 bits. 18583 * config/arm/arm.md: Likewise. 18584 185852009-06-19 Ian Lance Taylor <iant@google.com> 18586 18587 * tree-cfg.c (gimple_redirect_edge_and_branch): Change ERROR_MARK 18588 to GIMPLE_ERROR_MARK. 18589 18590 * c-typeck.c (build_conditional_expr): Add op1_original_type and 18591 op2_original_type parameters. Warn about using different enum types. 18592 * c-parser.c (c_parser_conditional_expression): Pass original 18593 types to build_conditional_expr. 18594 * c-tree.h (build_conditional_expr): Update declaration. 18595 185962009-06-19 Ian Lance Taylor <iant@google.com> 18597 18598 * config/i386/i386.c (ix86_function_specific_save): Test that 18599 fields match values, rather than testing the values are in a 18600 certain range. 18601 186022009-06-19 Richard Guenther <rguenther@suse.de> 18603 18604 * tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle 18605 ADDR_EXPR pointers. 18606 (ptr_derefs_may_alias_p): Likewise. 18607 (ptr_deref_may_alias_ref_p_1): New function. 18608 (ptr_deref_may_alias_ref_p): Likewise. 18609 (ref_maybe_used_by_call_p_1): Handle builtins that are not 18610 covered by looking at the ESCAPED solution. 18611 (call_may_clobber_ref_p_1): Likewise. 18612 * tree-ssa-structalias.c (get_constraint_for_ptr_offset): 18613 Handle NULL_TREE offset. Do not produce redundant constraints. 18614 (process_all_all_constraints): New helper function. 18615 (do_structure_copy): Use it. 18616 (handle_lhs_call): Likewise. 18617 (find_func_aliases): Handle some builtins with pointer arguments 18618 and/or return values explicitly. 18619 186202009-06-19 Ian Lance Taylor <iant@google.com> 18621 18622 * varasm.c (const_rtx_hash_1): Remove const qualifier from shift. 18623 186242009-06-19 Ian Lance Taylor <iant@google.com> 18625 18626 * rtl.h (SUBREG_PROMOTED_UNSIGNED_P): Add cast to int. 18627 186282009-06-19 Ian Lance Taylor <iant@google.com> 18629 18630 * ggc-page.c (ggc_pch_write_object): Initialize emptyBytes. 18631 * sdbout.c (sdb_debug_hooks): Initialize non-SDB_DEBUGGING_INFO 18632 version. 18633 18634 * c-decl.c (finish_decl): If -Wc++-compat, warn about 18635 uninitialized const. 18636 186372009-06-19 Ian Lance Taylor <iant@google.com> 18638 18639 * dse.c (struct store_info): Rename bitmap field to bmap. Change 18640 all uses. 18641 18642 * c-decl.c (in_struct, struct_types): Remove. 18643 (struct c_binding): Add in_struct field. 18644 (c_binding_ptr): Define type, along with VEC. 18645 (struct c_struct_parse_info): Define. 18646 (struct_parse_info): New static variable. 18647 (bind): Initialize in_struct field. 18648 (start_struct): Remove enclosing_in_struct and 18649 enclosing_struct_types parameters. Add 18650 enclosing_struct_parse_info parameter. Change all callers. Set 18651 struct_parse_info rather than in_struct and struct_types. 18652 (grokfield): If -Wc++-compat and there is a symbol binding for the 18653 field name, set the in_struct flag and push it on the 18654 struct_parse_info->fields vector. 18655 (warn_cxx_compat_finish_struct): New static function. 18656 (finish_struct): Remove enclosing_in_struct and 18657 enclosing_struct_types parameters. Add 18658 enclosing_struct_parse_info parameter. Change all callers. Don't 18659 set C_TYPE_DEFINED_IN_STRUCT here. Call 18660 warn_cxx_compat_finish_struct. Free struct_parse_info and set to 18661 parameter. Only push on struct_types if warn_cxx_compat. 18662 (finish_enum): Only push on struct_types if warn_cxx_compat. 18663 (declspecs_add_type): Add loc parameter. Change all callers. 18664 Change all error calls to error_at. Pass loc, not input_location, 18665 to pedwarn calls. Warn if -Wc++-compat and a typedef name is 18666 defined in a struct. If -Wc++-compat and parsing a struct, record 18667 that a typedef name was used. 18668 * c-parser.c (c_parser_declspecs): Get location to pass to 18669 declspecs_add_type. 18670 (c_parser_struct_or_union_specifier): Update calls to start_struct 18671 and finish_struct. 18672 * c-tree.h (struct c_struct_parse_info): Declare. 18673 (finish_struct, start_struct): Update declarations. 18674 (declspecs_add_type): Update declaration. 18675 186762009-06-19 Ian Lance Taylor <iant@google.com> 18677 18678 * c-decl.c (grokdeclarator): If -Wc++-compat, warn about a global 18679 variable with an anonymous type. 18680 186812009-06-19 Uros Bizjak <ubizjak@gmail.com> 18682 18683 * see.c: Remove for real. 18684 186852009-06-19 Uros Bizjak <ubizjak@gmail.com> 18686 18687 * optabs.h (enum optab_index): Add new OTI_significand. 18688 (significand_optab): Define corresponding macro. 18689 * optabs.c (init_optabs): Initialize significand_optab. 18690 * genopinit.c (optabs): Implement significand_optab using 18691 significand?f2 patterns. 18692 * builtins.c (expand_builtin_mathfn): Handle 18693 BUILT_IN_SIGNIFICAND{,F,L}. 18694 (expand_builtin): Expand BUILT_IN_SIGNIFICAND{,F,L} using 18695 expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 18696 18697 * config/i386/i386.md (significandxf2, significand<mode>2): New 18698 expanders to implement significandf, significand and significandl 18699 built-ins as inline x87 intrinsics. 18700 187012009-06-18 Anatoly Sokolov <aesok@post.ru> 18702 18703 * config/avr/avr.c (avr_override_options): Remove setting value of 18704 PARAM_INLINE_CALL_COST. 18705 187062009-06-18 Richard Henderson <rth@redhat.com> 18707 18708 PR 40488 18709 * tree-pass.h (TDF_ASMNAME): New. 18710 * tree-dump.c (dump_options): Add asmname. 18711 * doc/invoke.texi: Document it. 18712 18713 * tree-pretty-print.c (maybe_dump_asm_name): Merge into... 18714 (dump_decl_name): ...here. 18715 (dump_function_name): New flags arg; mind TDF_ASMNAME. 18716 (dump_generic_node): Update dump_function_name calls. 18717 (print_call_name): New flags arg; update all dump calls. 18718 * diagnostic.h (print_call_name): Update. 18719 * gimple-pretty-print.c (dump_gimple_call): Update. 18720 187212009-06-18 H.J. Lu <hongjiu.lu@intel.com> 18722 18723 PR target/40470 18724 * config/i386/i386.h (CLASS_LIKELY_SPILLED_P): Add SSE_FIRST_REG. 18725 187262009-06-18 Diego Novillo <dnovillo@google.com> 18727 18728 * doc/plugins.texi: Document plugin_is_GPL_compatible. 18729 * plugin.c (str_license): Declare. 18730 (try_init_one_plugin): Assert that the symbol 18731 'plugin_is_GPL_compatible' exists. 18732 187332009-06-18 Sergei Dyshel <sergeid@il.ibm.com> 18734 18735 * see.c: Remove. 18736 * Makefile.in (OBJS-common): Remove see.o. 18737 (see.o): Remove. 18738 * common.opt (fsee): Mark as preserved for backward compatibility. 18739 * opts.c (common_handle_option): Add OPT_fsee to the backward 18740 compatibility section. 18741 * passes.c (init_optimization_passes, pass_see): Remove pass. 18742 * timevar.def (TV_SEE): Remove. 18743 * tree-pass.h (pass_see): Remove declaration. 18744 * doc/invoke.texi (-fsee): Remove documentation. 18745 187462009-06-18 Martin Jambor <mjambor@suse.cz> 18747 18748 * tree-sra.c: Include statistics.h 18749 (sra_stats): New variable. 18750 (sra_initialize): Clear sra_stats. 18751 (create_access_replacement): Increment sra_stats.replacements. 18752 (get_access_replacement): Do not return twice. 18753 (analyze_all_variable_accesses): Increment statistics counter by the 18754 number of scalarized aggregates. 18755 (generate_subtree_copies): Increment sra_stats.subtree_copies. 18756 (sra_modify_expr): Increment sra_stats.exprs. 18757 (load_assign_lhs_subreplacements): Increment sra_stats.subreplacements. 18758 (sra_modify_assign): Increment sra_stats.exprs, 18759 sra_stats.separate_lhs_rhs_handling and sra_stats.deleted. 18760 (perform_intra_sra): Update statistics counters. 18761 * Makefile.in (tree-sra.o): Add statistics.h to dependencies. 18762 187632009-06-18 Sandra Loosemore <sandra@codesourcery.com> 18764 18765 * config/arm/arm.c (TARGET_SCALAR_MODE_SUPPORTED_P): Redefine. 18766 (arm_scalar_mode_supported_p): New function. 18767 187682009-06-18 Paul Brook <paul@codesourcery.com> 18769 Sandra Loosemore <sandra@codesourcery.com> 18770 18771 * config/arm/sfp-machine.h (_FP_NANFRAC_H, _FP_NANSIGN_H): Define. 18772 (__extendhfsf2, __truncsfhf2): Define. 18773 * config/arm/fp16.c: New file. 18774 * config/arm/t-bpabi (LIB2FUNCS_STATIC_EXTRA): Add fp16.c. 18775 * config/arm/t-symbian (LIB2FUNCS_STATIC_EXTRA): Add fp16.c. 18776 187772009-06-18 Sandra Loosemore <sandra@codesourcery.com> 18778 18779 * doc/extend.texi (Half-Precision): New section. 18780 * doc/invoke.texi (Option Summary): List -mfp16-format. 18781 (ARM Options): List neon-fp16 as -mfpu value. Document -mfp16-format. 18782 * config/arm/arm.opt (mfp16-format=): New. 18783 * config/arm/arm.c: Include intl.h. 18784 (TARGET_INVALID_PARAMETER_TYPE): Redefine. 18785 (TARGET_INVALID_RETURN_TYPE): Redefine. 18786 (TARGET_PROMOTED_TYPE): Redefine. 18787 (TARGET_CONVERT_TO_TYPE): Redefine. 18788 (arm_fp16_format): Define. 18789 (all_fpus): Add entry for neon-fp16. 18790 (fp_model_for_fpu): Likewise. 18791 (struct fp16_format): Declare. 18792 (all_fp16_formats): Define. 18793 (arm_init_libfuncs): Add entries for HFmode conversions and arithmetic 18794 functions. 18795 (arm_override_options): Set arm_fp16_format. Call sorry for fp16 18796 and no ldrh. 18797 (arm_legitimate_index_p): Treat HFmode like HImode. 18798 (thumb1_legitimate_address_p): Make it recognize HFmode constants. 18799 (coproc_secondary_reload_class): Special-case HFmode. 18800 (arm_print_operand): Add 'z' specifier for vld1.16/vst1.16. 18801 (arm_hard_regno_mode_ok): Allow HFmode values in VFP registers. 18802 (arm_init_fp16_builtins): New. 18803 (arm_init_builtins): Call it. 18804 (arm_invalid_parameter_type): New. 18805 (arm_invalid_return_type): New. 18806 (arm_promoted_type): New. 18807 (arm_convert_to_type). 18808 (arm_file_start): Deal with neon-fp16 as fpu_name. Emit tag for fp16 18809 format. 18810 (arm_emit_fp16_const): New function. 18811 (arm_mangle_type): Mangle __fp16 as "Dh". 18812 * config/arm/arm.h (TARGET_VFPD32): Make it know about 18813 FPUTYPE_NEON_FP16. 18814 (TARGET_NEON_FP16): New. 18815 (TARGET_NEON): Make it know about FPUTYPE_NEON_FP16. 18816 (enum fputype): Add FPUTYPE_NEON_FP16. 18817 (enum arm_fp16_format_type): Declare. 18818 (arm_fp16_format): Declare. 18819 (LARGEST_EXPONENT_IS_NORMAL): Define. 18820 * config/arm/arm-protos.h (arm_emit_fp16_const): Declare. 18821 * config/arm/arm-modes.def (HFmode): Define. 18822 * config/arm/vfp.md (*movhf_vfp): New. 18823 (extendhfsf2): New. 18824 (truncsfhf2): New. 18825 * config/arm/arm.md (fpu): Add neon_fp16. 18826 (floatsihf2, floatdihf2): New. 18827 (fix_trunchfsi2, fix_trunchfdi2): New. 18828 (truncdfhf2): New. 18829 (extendhfdf2): New. 18830 (movhf): New. 18831 (*arm32_movhf): New. 18832 (*thumb1_movhf): New. 18833 (consttable_2): Add check for HFmode constants. 18834 (consttable_4): Handle HFmode constants. 18835 188362009-06-18 Uros Bizjak <ubizjak@gmail.com> 18837 18838 * convert.c (convert_to_integer): Convert (int)logb() into ilogb(). 18839 188402009-06-17 Olivier Hainque <hainque@adacore.com> 18841 18842 * collect2.c (main): Use CONST_CAST2 to perform char ** to 18843 const char ** conversion in AIX specific section. 18844 188452009-06-17 H.J. Lu <hongjiu.lu@intel.com> 18846 18847 * config/i386/i386.c (ix86_special_builtin_type): Remove 18848 UINT64_FTYPE_PINT. Add UINT64_FTYPE_PUNSIGNED. 18849 (bdesc_special_args): Updated. 18850 (ix86_init_mmx_sse_builtins): Likewise. 18851 (ix86_expand_special_args_builtin): Likewise. 18852 188532009-06-17 Richard Henderson <rth@redhat.com> 18854 18855 * tree-pretty-print.c (maybe_dump_asm_name): New. 18856 (dump_decl_name): Use it. 18857 (PRINT_FUNCTION_NAME): Merge into... 18858 (dump_function_name): ... here. Use maybe_dump_asm_name. 18859 188602009-06-17 Cary Coutant <ccoutant@google.com> 18861 18862 * dbxout.c (dbxout_source_line): Add is_stmt parameter. 18863 Change caller. 18864 * debug.c (struct gcc_debug_hooks): Change placeholder for 18865 source_line hook. 18866 (debug_nothing_int_charstar_int): Replaced by... 18867 (debug_nothing_int_charstar_int_bool): ...this. 18868 * debug.h (struct gcc_debug_hooks): Add is_stmt parameter to 18869 source_line prototype. 18870 (debug_nothing_int_charstar_int): Replaced by... 18871 (debug_nothing_int_charstar_int_bool): ...this. 18872 * defaults.h (SUPPORTS_DISCRIMINATOR): New constant. 18873 * dwarf2out.c (dwarf2out_source_line): Add is_stmt parameter. 18874 Output is_stmt operand when necessary. 18875 * final.c (final_scan_insn): Pass is_stmt to source_line debug hook. 18876 (notice_source_line): Add is_stmt parameter. 18877 * sdbout.c (sdbout_source_line): Add is_stmt parameter. 18878 * vmsdbgout.c (vmsdbgout_source_line): Add is_stmt parameter. 18879 Change callers. 18880 * xcoffout.c (xcoffout_source_line): Add is_stmt parameter. 18881 * xcoffout.h (xcoffout_source_line): Add is_stmt parameter. 18882 188832009-06-17 Ian Lance Taylor <iant@google.com> 18884 18885 * expr.c (struct move_by_pieces_d): Rename from move_by_pieces. 18886 Change all uses. 18887 (struct store_by_pieces_d): Rename from store_by_pieces. Change 18888 call uses. 18889 188902009-06-17 Adam Nemet <anemet@caviumnetworks.com> 18891 18892 * tree.h (STRIP_NOPS, STRIP_SIGN_NOPS, 18893 STRIP_USELESS_TYPE_CONVERSION): Use tree_strip_nop_conversions, 18894 tree_strip_sign_nop_conversions and 18895 tree_ssa_strip_useless_type_conversions rather than stripping 18896 the operations here. 18897 (tree_strip_nop_conversions, tree_strip_sign_nop_conversions): 18898 Declare them. 18899 * gimple.h (tree_ssa_strip_useless_type_conversions): Declare it. 18900 * tree-ssa.c (tree_ssa_strip_useless_type_conversions): New function. 18901 * tree.c (tree_nop_conversion, tree_sign_nop_conversion, 18902 tree_strip_nop_conversions, tree_strip_sign_nop_conversions): New 18903 functions. 18904 189052009-06-17 Michael Eager <eager@eagercon.com> 18906 18907 * config/rs6000/constraints.md (register_constraint "d"): New. 18908 * config/rs6000/dfp.md (movsd_store, extendsddd2, extendsdtd2, 18909 truncddsd2, *negdd2_fpr, *absdd2_fpr, *nabsdd2_fpr, 18910 *movdd_hardfloat32, *movdd_hardfloat64_mfpgpr, *movdd_hardfloat64, 18911 *negtd2_fp, *abstd2_fpr, *nabstd2_fpr, *movtd_internal, extendddtd2, 18912 trunctddd2, adddd3, addtd3, subdd3, subtd3, muldd3, multd3, divdd3, 18913 divtd3, *cmpdd_internal1, *cmptd_internal1, floatditd2, ftruncdd2, 18914 fixdddi2, ftrunctd2, fixtddi2): replace 'f' constraint with 'd' 18915 * config/rs6000/ppu_intrinsics.h (__mffs, __mtfsf, __mtfsfi, __fabs, 18916 __fnabs, __fmadd, __fmsub, __fnmadd, __fnmsub, __fsel, __frsqrte, 18917 __fsqrt, __fmul, __fmuls, __frsp, __fcfid, __fctid, __fctidz, __fctiw, 18918 __fctiwz): Same. 18919 * config/rs6000/rs6000.md (*extendsfdf2_fpr, *truncdfsf2_fpr, 18920 *fseldfsf4, *negdf2_fpr, *absdf2_fpr, *nabsdf2_fpr, *adddf3_fpr, 18921 *subdf3_fpr, *muldf3_fpr, *divdf3_fpr, recipdf3, fred, sqrtdf2, 18922 *fseldfdf4, *fselsfdf4, *floatsidf2_internal, *floatunssidf2_internal, 18923 *fix_truncdfsi2_internal, fix_truncdfsi2_internal_gfxopt, 18924 fix_truncdfsi2_mfpgpr, fctiwz, btruncdf2, ceildf2, floordf2, rounddf2, 18925 stfiwx, floatdidf2, fix_truncdfdi2, floatdisf2_internal1, 18926 *movdf_hardfloat32, *movdf_hardfloat64_mfpgpr, *movdf_hardfloat64, 18927 *movtf_internal, *extenddftf2_internal, trunctfdf2_internal1, 18928 trunctfdf2_internal2, trunctfsf2_fprs, fix_trunc_helper, 18929 *fix_trunctfsi2_internal, negtf2_internal, *movdi_internal32, 18930 *movdi_mfpgpr, *movdi_internal64, *movdf_update1, *movdf_update2, 18931 *cmpdf_internal1, *cmptf_internal1, *cmptf_internal2): Same. 18932 * doc/md.texi: Describe PowerPC 'd' constraint, update 'f' constraint. 18933 189342009-06-16 Ian Lance Taylor <iant@google.com> 18935 18936 * profile.c (total_num_never_executed): Don't define. 18937 (compute_branch_probabilities): Don't count or print 18938 num_never_executed. 18939 (init_branch_prob): Don't set total_num_never_executed. 18940 (end_branch_prob): Don't print total_num_never_executed. 18941 189422009-06-17 David Daney <ddaney@caviumnetworks.com> 18943 18944 * jump.c (cleanup_barriers): Handle case of no insns before a barrier. 18945 189462009-06-17 David Edelsohn <edelsohn@gnu.org> 18947 18948 * config/rs6000/dfp.md (nabsdd2_fpr): Correct mode. 18949 (nabstd2_fpr): Same. 18950 189512009-06-17 Steve Ellcey <sje@cup.hp.com> 18952 18953 * expr.c (expand_assignment): Change complex type check. 18954 189552009-06-17 Basile Starynkevitch <basile@starynkevitch.net> 18956 18957 * doc/plugins.texi (Building GCC plugins): Added new section. 18958 189592009-06-17 Ian Lance Taylor <iant@google.com> 18960 18961 * c-pch.c (get_ident): Don't set size of templ array. 18962 (pch_init): Don't set size of partial_pch array. 18963 18964 * c-typeck.c (digest_init): If -Wc++-compat, warn about using a 18965 string constant to intialize an array whose size is the length of 18966 the string. 18967 189682009-06-17 Richard Guenther <rguenther@suse.de> 18969 18970 PR tree-optimization/40389 18971 * tree-ssa-structalias.c (handle_rhs_call): Restrict NRV case 18972 to addressable types. 18973 * gimple.c (walk_stmt_load_store_addr_ops): Likewise. 18974 189752009-06-17 Richard Guenther <rguenther@suse.de> 18976 18977 PR middle-end/40460 18978 * tree-chrec.h (build_polynomial_chrec): If we cannot determine 18979 if there is no evolution of left in the loop bail out. 18980 * tree-chrec.c (chrec_fold_multiply_poly_poly): CSE one 18981 chrec_fold_multiply. 18982 189832009-06-16 J"orn Rennecke <joern.rennecke@arc.com> 18984 Janis Johnson <janis187@us.ibm.com> 18985 18986 PR target/39254 18987 * config/rs6000/rs6000.c (rs6000_emit_move): Don't emit a USE 18988 for the symbol ref of a constant that is the source of a move 18989 - nor for any other not-obvious-label-ref constants. 18990 189912009-06-16 Olatunji Ruwase <tjruwase@google.com> 18992 18993 * plugin.c (position_pass): Skip newly inserted pass during list 18994 traversal to avoid repeated insertion. 18995 189962009-06-16 Ian Lance Taylor <iant@google.com> 18997 18998 * vec.h (VEC_stack_alloc): Define different version if 18999 GATHER_STATISTICS is defined, to accept and ignore MEM_STAT. 19000 (DEF_VEC_ALLOC_FUNC_P_STACK): Remove MEM_STAT_DECL. 19001 (DEF_VEC_ALLOC_FUNC_O_STACK): Likewise. 19002 (DEF_VEC_ALLOC_FUNC_I_STACK): Likewise. 19003 190042009-06-16 H.J. Lu <hongjiu.lu@intel.com> 19005 19006 * config.gcc (extra_headers): Add ia32intrin.h for x86. 19007 19008 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_BSRSI, 19009 IX86_BUILTIN_BSRDI. IX86_BUILTIN_RDPMC, IX86_BUILTIN_RDTSC. 19010 IX86_BUILTIN_RDTSCP. IX86_BUILTIN_ROLQI, IX86_BUILTIN_ROLHI, 19011 IX86_BUILTIN_RORQI and IX86_BUILTIN_RORHI. 19012 (ix86_special_builtin_type): Add UINT64_FTYPE_VOID, 19013 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT, 19014 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT. 19015 (bdesc_special_args): Add __builtin_ia32_rdtsc and 19016 __builtin_ia32_rdtscp. 19017 (bdesc_args): Add __builtin_ia32_bsrsi, __builtin_ia32_bsrdi, 19018 __builtin_ia32_rolqi, __builtin_ia32_rolhi, __builtin_ia32_rorqi 19019 and __builtin_ia32_rorhi. 19020 (ix86_init_mmx_sse_builtins): Handle UINT64_FTYPE_VOID, 19021 UINT64_FTYPE_PINT, INT_FTYPE_INT, UINT64_FTYPE_INT, 19022 INT64_FTYPE_INT64, UINT16_FTYPE_UINT16_INT and UINT8_FTYPE_UINT8_INT. 19023 (ix86_expand_args_builtin): Likewise. 19024 (ix86_expand_special_args_builtin): Likewise. 19025 19026 * config/i386/i386.md (UNSPECV_RDTSCP): New. 19027 (UNSPECV_RDTSC): Likewise. 19028 (UNSPECV_RDPMC): Likewise. 19029 (*bsr): Renamed to ... 19030 (bsr): This 19031 (*bsr_rex64): Renamed to ... 19032 (bsr_rex64): This. 19033 (rdpmc): New. 19034 (*rdpmc): Likewise. 19035 (*rdpmc_rex64): Likewise. 19036 (rdtsc): Likewise. 19037 (*rdtsc): Likewise. 19038 (*rdtsc_rex64): Likewise. 19039 (rdtscp): Likewise. 19040 (*rdtscp): Likewise. 19041 (*rdtscp_rex64): Likewise. 19042 19043 * config/i386/ia32intrin.h: New. 19044 19045 * config/i386/x86intrin.h: Include <ia32intrin.h>. 19046 190472009-06-16 Ian Lance Taylor <iant@google.com> 19048 19049 * ira-build.c (copy_info_to_removed_store_destinations): 19050 Initialize parent_a. 19051 190522009-06-16 Ian Lance Taylor <iant@google.com> 19053 19054 * c-decl.c (grokdeclarator): Change size_varies to bool. 19055 190562009-06-16 Ian Lance Taylor <iant@google.com> 19057 19058 * sel-sched.c: Make forward declarations of move_op_hooks and 19059 fur_hooks explicitly extern. 19060 190612009-06-16 Ian Lance Taylor <iant@google.com> 19062 19063 * df-problems.c (df_byte_lr_alloc): Don't set problem_data to itself. 19064 * vec.c (vec_gc_o_reserve_1): Don't set alloc to itself. 19065 190662009-06-16 Ian Lance Taylor <iant@google.com> 19067 19068 * resource.c (mark_referenced_resources): Change 19069 include_delayed_effects parameter to bool. Change all callers. 19070 (mark_end_of_function_resources): Likewise. 19071 * reorg.c (insn_references_resource_p): Likewise. 19072 (insn_sets_resource_p): Likewise. 19073 * resource.h (mark_referenced_resources): Update declaration. 19074 (mark_end_of_function_resources): Update declaration. 19075 190762009-06-16 David Edelsohn <edelsohn@gnu.org> 19077 19078 * config/rs6000/aix.h (LIBSTDCXX_STATIC): Remove -lstdc++. 19079 190802009-06-16 David Edelsohn <edelsohn@gnu.org> 19081 19082 * doc/install.texi (*-*-aix): Update explanation of XLC bootstrap. 19083 GCC can bootstrap on AIX with GNU Binutils 2.20. 19084 190852009-06-16 Ian Lance Taylor <iant@google.com> 19086 19087 * Makefile.in (tree-vect-stmts.o): Depend upon $(TOPLEV_H). 19088 190892009-06-16 Ian Lance Taylor <iant@google.com> 19090 19091 * toplev.h (floor_log2): If GCC_VERSION >= 3004, declare as static 19092 inline, not extern inline. 19093 (exact_log2): Likewise. 19094 * toplev.c (floor_log2): Only define if GCC_VERSION < 3004. Don't 19095 test CLZ_HWI. 19096 (exact_log2): Likewise, but don't test CTZ_HWI. 19097 190982009-06-16 Ian Lance Taylor <iant@google.com> 19099 19100 * bitmap.c (bitmap_clear): Don't declare as inline. 19101 * gimple.c (gimplify_assign): Likewise. 19102 * tree-ssa-sccvn.c (vn_nary_op_compute_hash): Likewise. 19103 * haifa-sched.c (insn_cost): Don't declare with HAIFA_INLINE. 19104 (sched_scan_info): Remove duplicate definition. 19105 191062009-06-16 Ian Lance Taylor <iant@google.com> 19107 19108 * c-common.c (skip_evaluation): Don't define. 19109 (c_inhibit_evaluation_warnings): Define global variable. 19110 (overflow_warning): Check c_inhibit_evaluation_warnings rather 19111 than skip_evaluation. 19112 (convert_and_check, warn_for_div_by_zero): Likewise. 19113 * c-common.h (skip_evaluation): Don't declare. 19114 (c_inhibit_evaluation_warnings): Declare. 19115 * c-parser.c (c_parser_typeof_specifier): Set 19116 c_inhibit_evaluation_warnings rather than skip_evaluation. 19117 (c_parser_conditional_expression): Likewise. 19118 (c_parser_binary_expression): Likewise. 19119 (c_parser_sizeof_expression): Likewise. 19120 (c_parser_alignof_expression): Likewise. 19121 * c-typeck.c (build_indirect_ref): Check 19122 c_inhibit_evaluation_warnings rather than skip_evaluation. 19123 (build_conditional_expr, build_binary_op): Likewise. 19124 191252009-06-16 Richard Guenther <rguenther@suse.de> 19126 19127 * tree-ssa-alias.c (is_escape_site): Remove. 19128 * tree-ssa-alias.h (enum escape_type): Remove. 19129 (is_escape_site): Likewise. 19130 * tree-ssa-structalias.c (find_func_aliases): Handle escapes 19131 via casts and asms without deferring to is_escape_site. 19132 191332009-06-16 Jakub Jelinek <jakub@redhat.com> 19134 19135 PR middle-end/40446 19136 * expr.c (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't 19137 use gen_lowpart if op0 has complex mode. 19138 191392009-06-16 Richard Guenther <rguenther@suse.de> 19140 19141 * tree-ssa-structalias.c (do_ds_constraint): Stores in global 19142 variables add them to ESCAPED. 19143 (find_func_aliases): Do not make all indirectly stored values escaped. 19144 191452009-06-16 Rafael Avila de Espindola <espindola@google.com> 19146 19147 * config/i386/winnt.c (i386_pe_encode_section_info): Update call to 19148 make_decl_one_only. 19149 191502009-06-16 Martin Jambor <mjambor@suse.cz> 19151 19152 PR tree-optimization/40432 19153 * tree-sra.c (sra_modify_assign): When creating VIEW_CONVERT_EXPR, 19154 check whether we need to force gimple register operand. 19155 191562009-06-16 Martin Jambor <mjambor@suse.cz> 19157 19158 PR tree-optimization/40413 19159 * tree-sra.c (load_assign_lhs_subreplacements): Pass offset to 19160 build_ref_for_offset. 19161 (propagate_subacesses_accross_link): Fix a typo in a comment. 19162 191632009-06-16 Ira Rosen <irar@il.ibm.com> 19164 19165 * tree-parloops.c (loop_parallel_p): Call vect_is_simple_reduction 19166 with additional parameter. 19167 * tree-vectorizer.h (enum vect_def_type): Add new value 19168 vect_nested_cycle. 19169 (enum vect_relevant): Add comments. 19170 (vect_is_simple_reduction): Add new argument. 19171 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Add comments. 19172 Detect nested cycles. 19173 (vect_is_simple_reduction): Update documentation, add an argument to 19174 distinguish inner-loop reduction from nested cycle, detect nested 19175 cycles, fix printings and indentation, don't swap operands in case 19176 of nested cycle. 19177 (get_initial_def_for_reduction): Handle subtraction. 19178 (vect_create_epilog_for_reduction): Add new argument to specify 19179 reduction variable. 19180 (vect_finalize_reduction): Handle subtraction, fix comments. 19181 (vectorizable_reduction): Handle nested cycles. In case of nested 19182 cycle keep track of the reduction variable position. Call 19183 vect_is_simple_reduction with additional parameter. Use original 19184 statement code in reduction epilogue for nested cycle. Call 19185 vect_create_epilog_for_reduction with additional parameter. 19186 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Assert 19187 inner-loop vectorization. 19188 (vect_recog_widen_sum_pattern): Likewise. 19189 * tree-vect-stmts.c (process_use): Distinguish between nested cycles 19190 and reductions. 19191 (vect_mark_stmts_to_be_vectorized): Likewise. 19192 (vect_get_vec_def_for_operand): Handle nested cycles. 19193 191942009-06-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 19195 19196 * doc/invoke.texi (Debugging Options): Fix option index entries 19197 for -fdump-statistics, -frandom-seed add entries for 19198 -fdump-tree-original, -fdump-tree-optimized, -frandom-seed. 19199 (FRV Options): Fix entries for -mTLS, -mtls. 19200 (HPPA Options): Fix entries for -mgnu-ld, -mhp-ld. 19201 (i386 and x86-64 Options): Fix entry for -mno-red-zone. 19202 (M68hc1x Options): Fix @itemx for -mnominmax. 19203 (MCore Options): Fix entry for -mno-lsim. 19204 (MMIX Options): Fix entry for -mabi=mmixware. 19205 (PDP-11 Options): Fix entry for -mbcopy-builtin. 19206 192072009-06-16 Basile Starynkevitch <basile@starynkevitch.net> 19208 19209 * doc/plugins.texi (Interacting with the GCC Garbage Collector): 19210 Mention the plugin mode of gengtype. 19211 * doc/gty.texi (Source Files Containing Type Information): Likewise. 19212 * gengtype.c: Updated copyright. 19213 (plugin_files, nb_plugin_files) Added new static variables. 19214 (measure_input_list) Care about plugin_files. 19215 (write_rtx_next): Added early return in plugin mode. 19216 (create_file): Updated copyright year in generated file. Added 19217 asserts. 19218 (oprintf): Added early return if NULL outf. 19219 (get_output_file_with_visibility): Care of plugin_files. 19220 (get_output_file_name): May return null. 19221 (write_local): Added early return. 19222 (put_mangled_filename): Ditto. 19223 (finish_root_table): Added check for base_files. 19224 (write_roots): Care about null when plugins. 19225 (main): Added plugin mode. 19226 192272009-06-15 Ian Lance Taylor <iant@google.com> 19228 19229 * df-problems.c (df_simulate_one_insn_forwards): Fix braces in switch. 19230 * gcov.c (read_count_file): Add braces around variables declared 19231 before label. 19232 19233 * c.opt (Wjump-misses-init): New warning. 19234 * c-opts.c (c_common_handle_option): Set warn_jump_misses_init for 19235 -Wall and -Wc++-compat if not already set. 19236 (c_common_post_options): Clear warn_jump_misses_init if it was not 19237 set. 19238 * c-decl.c (struct c_binding): Change type field to a union with 19239 new label field. Make it the first field in the struct. Update 19240 references to type to use u.type instead. 19241 (struct c_spot_bindings): Define. 19242 (struct c_goto_bindings): Define. 19243 (c_goto_bindings_p): Define, along with VECs. 19244 (struct c_label_vars): Define. 19245 (struct c_scope): Add has_label_bindings field. 19246 (bind_label, set_spot_bindings): New static functions. 19247 (decl_jump_unsafe, update_spot_bindings): New static functions. 19248 (update_label_decls): New static function. 19249 (pop_scope): Call update_label_decls. Don't call c_end_vm_scope. 19250 Update binding u.label field to shadowed field. 19251 (c_binding_start_stmt_expr): New function. 19252 (c_binding_end_stmt_expr): New function. 19253 (pushdecl): Don't call c_begin_vm_scope. 19254 (make_label): Add defining and p_label_vars parameters. Change 19255 all callers. 19256 (lookup_label): Correct test for whether a label has not yet been 19257 defined. Call bind_label rather than bind. 19258 (warn_about_goto): New static function. 19259 (lookup_label_for_goto): New function. 19260 (declare_label): Call bind_label rather than bind. 19261 (check_earlier_gotos): New static function. 19262 (define_label): Don't give errors about jumping into statement 19263 expressions or scopes of variably modified types. Call 19264 set_spot_bindings and check_earlier_gotos. Call bind_label 19265 instead of bind. Don't set label_context_stack_se or 19266 label_context_stack_vm. 19267 (c_get_switch_bindings): New function. 19268 (c_release_switch_bindings): New function. 19269 (c_check_switch_jump_warnings): New function. 19270 (start_function): Don't set label_context_stack_se or 19271 label_context_stack_vm. 19272 (finish_function): Likewise. 19273 * c-typeck.c (label_context_stack_se): Don't define. 19274 (label_context_stack_vm): Don't define. 19275 (c_finish_goto_label): Call lookup_label_for_goto rather than 19276 lookup_label. Don't give errors about jumping into a statement 19277 expression or the scope of a variably modified type. Don't set 19278 label_context_stack_se or label_context_stack_vm. 19279 (struct c_switch): Remove blocked_stmt_expr and blocked_vm 19280 fields. Add bindings field. 19281 (c_start_case): Don't set deleted fields. Set bindings field. 19282 (do_case): Rework order of tests. Don't check blocked_stmt_expr 19283 or blocked_vm. Call c_check_switch_jump_warnings. 19284 (c_finish_case): Don't test blocked_stmt_expr field. Call 19285 c_release_switch_bindings. 19286 (c_begin_stmt_expr): Don't increment blocked_stmt_expr in 19287 c_switch_stack. Don't walk label_context_stack_se labels. Don't 19288 set label_context_stack_se. Call c_bindings_start_stmt_expr. 19289 (c_finish_stmt_expr): Don't decrement blocked_stmt_expr in 19290 c_switch_stack. Don't walk label_context_stack_se labels. Don't 19291 set label_context_stack_se. Call c_bindings_end_stmt_expr. 19292 (c_begin_vm_scope, c_end_vm_scope): Don't define. 19293 * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR): Don't define. 19294 (C_DECL_UNDEFINABLE_STMT_EXPR): Don't define. 19295 (C_DECL_UNJUMPABLE_VM): Don't define. 19296 (C_DECL_UNDEFINABLE_VM): Don't define. 19297 (struct c_label_list): Don't define. 19298 (struct c_label_context_se): Don't define. 19299 (struct c_label_context_vm): Don't define. 19300 (struct c_spot_bindings): Declare. 19301 (c_bindings_start_stmt_expr): Declare. 19302 (c_bindings_end_stmt_expr): Declare. 19303 (lookup_label_for_goto): Declare. 19304 (c_get_switch_bindings, c_release_switch_bindings): Declare. 19305 (c_check_switch_jump_warnings): Declare. 19306 (label_context_stack_se, label_context_stack_vm): Don't declare. 19307 (c_finish_goto_label): Update declaration. 19308 (c_begin_vm_scope, c_end_vm_scope): Don't declare. 19309 * doc/invoke.texi (Option Summary): Mention -Wjump-misses-init. 19310 (Warning Options): Document -Wjump-misses-init. 19311 193122009-06-15 Jakub Jelinek <jakub@redhat.com> 19313 19314 * tree-object-size.c (addr_object_size): Fix a pasto in the last 19315 change. 19316 193172009-06-15 Rafael Avila de Espindola <espindola@google.com> 19318 19319 * cgraph.c (cgraph_make_node_local): Use DECL_COMDAT_GROUP. 19320 193212009-06-15 Aldy Hernandez <aldyh@redhat.com> 19322 19323 * except.c (init_eh): Use BUILTINS_LOCATION when calling build_decl. 19324 193252009-06-15 Aldy Hernandez <aldyh@redhat.com> 19326 19327 * tree-eh.c (lower_try_finally_switch): Initialize tf_loc. 19328 193292009-06-15 Rafael Avila de Espindola <espindola@google.com> 19330 19331 * cgraphunit.c (cgraph_function_versioning,save_inline_function_body): 19332 Use DECL_COMDAT_GROUP instead of DECL_ONE_ONLY. 19333 * cgraph.c (cgraph_create_virtual_clone): Use DECL_COMDAT_GROUP. 19334 * config/i386/i386.c (ix86_file_end): Compute DECL_COMDAT_GROUP. 19335 * dwarf2asm.c (dw2_force_const_mem): Update call to 19336 make_decl_one_only. 19337 * langhooks-def.h (lhd_comdat_group, LANG_HOOKS_COMDAT_GROUP): Remove. 19338 (LANG_HOOKS_DECLS): Remove LANG_HOOKS_COMDAT_GROUP. 19339 * langhooks.c (lhd_comdat_group): Remove. 19340 * langhooks.h (lang_hooks_for_decls): Remove comdat_group. 19341 * tree.h (DECL_COMDAT_GROUP): New. 19342 (DECL_ONE_ONLY): Use DECL_COMDAT_GROUP. 19343 (tree_decl_with_vis): Add comdat_group. Remove one_only. 19344 (make_decl_one_only): Change signature. 19345 * varasm.c (get_emutls_init_templ_addr, emutls_decl): Update call to 19346 make_decl_one_only. 19347 (make_decl_one_only): Change signature. 19348 (default_elf_asm_named_section): Use DECL_COMDAT_GROUP. 19349 193502009-06-15 Richard Guenther <rguenther@suse.de> 19351 19352 PR middle-end/40439 19353 * tree.c (widest_int_cst_value): Fix bootstrap on 32bit HWI hosts. 19354 193552009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19356 19357 * tree-ssa-math-opts.c: Remove extra divide. 19358 193592009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19360 19361 * config/s390/s390.md ("bswap<mode>2"): Only available on z900. 19362 193632009-06-14 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 19364 19365 * passes.c: Add bswap pass. 19366 * tree-pass.h: Add pass_optimize_bswap declaration. 19367 * tree-ssa-math-opts.c: Include diagnostics.h for print_gimple_stmt. 19368 Include rtl.h, expr.h and optabs.h for optab_handler check. 19369 (struct symbolic_number, pass_optimize_bswap): New definition. 19370 (do_shift_rotate, verify_symbolic_number_p): New functions. 19371 (find_bswap_1, find_bswap, execute_optimize_bswap): New functions. 19372 (gate_optimize_bswap): New function. 19373 * tree.c (widest_int_cst_value): New function. 19374 * tree.h (widest_int_cst_value): Prototype added. 19375 193762009-06-14 Steven Bosscher <steven@gcc.gnu.org> 19377 19378 * cfgcleanup.c (old_insns_match_p): Remove code to substitute 19379 REG_EQUAL/REG_EQUIV notes. 19380 193812009-06-14 Richard Guenther <rguenther@suse.de> 19382 19383 PR middle-end/40389 19384 * gimple.c (walk_stmt_load_store_addr_ops): The LHS of a call 19385 has its address taken if NRV was applied and it is addressable. 19386 * tree-ssa-structalias.c (get_constraint_for_address_of): New 19387 function split out from ... 19388 (get_constraint_for_1): ... here. 19389 (handle_rhs_call): Use it to mark the return slot escaped if 19390 it is addressable and NRV was applied. 19391 193922009-06-13 Aldy Hernandez <aldyh@redhat.com> 19393 19394 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin): 19395 Change first argument type to location_t. 19396 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Same. 19397 Do not set input_location. 19398 Use loc instead of input_location throughout. 19399 194002009-06-13 Richard Guenther <rguenther@suse.de> 19401 19402 PR tree-optimization/40421 19403 * tree-predcom.c (should_unroll_loop_p): Remove. 19404 (tree_predictive_commoning_loop): Use can_unroll_loop_p. 19405 194062009-06-13 Michael Meissner <meissner@linux.vnet.ibm.com> 19407 19408 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 19409 Add location argument. 19410 194112009-06-13 Aldy Hernandez <aldyh@redhat.com> 19412 19413 * config/alpha/alpha.c (alpha_build_builtin_va_list): Pass location to 19414 build_decl. 19415 * config/s390/s390.c (s390_build_builtin_va_list): Same. 19416 (s390_gimplify_va_arg): Pass location to create_artificial_label. 19417 * config/spu/spu-protos.h: Add location to 19418 spu_resolve_overloaded_builtin. 19419 * config/spu/spu.c (spu_build_builtin_va_list): Pass location to 19420 spu_build_builtin_va_list. 19421 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Add location 19422 argument. Pass location to build_function_call_vec. 19423 * config/sh/sh.c (sh_build_builtin_va_list): Pass location to 19424 build_decl. 19425 (emit_fpu_switch): Same. 19426 (sh_gimplify_va_arg_expr): Pass location to create_artificial_label. 19427 * config/xtensa/xtensa.c (xtensa_build_builtin_va_list): Pass location 19428 to build_decl and create_artificial_label. 19429 (xtensa_gimplify_va_arg_expr): Same. 19430 * config/stormy16/stormy16.c (xstormy16_build_builtin_va_list): Same. 19431 (xstormy16_gimplify_va_arg_expr): Same. 19432 * config/iq2000/iq2000.c (iq2000_expand_prologue): Same. 19433 * config/arm/arm.c (arm_build_builtin_va_list): Same. 19434 * config/mips/mips.c (mips_build_builtin_va_list): Same. 19435 (mips16_build_function_stub): Same. 19436 (mips16_build_call_stub): Same. 19437 194382009-06-13 Richard Earnshaw <rearnsha@arm.com> 19439 19440 PR target/40327 19441 * arm/constraints.md (Pa, Pb): New constraints. 19442 * arm/arm.md (thumb1_addsi3): Support more complex additions. Add a 19443 split pattern to deal with them. 19444 194452009-06-13 Joerg Sonnenberger <joerg@britannica.bec.de> 19446 19447 * doc/invoke.texi: Add missing option -Wp,OPTION in list, 19448 fix index entry for -Xpreprocessor. 19449 194502009-06-12 Aldy Hernandez <aldyh@redhat.com> 19451 19452 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 19453 Add location argument to build_decl call. 19454 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Same. 19455 (rs6000_init_builtins): Same. 19456 (spe_init_builtins): Same. 19457 (rs6000_gimplify_va_arg): Add location argument to 19458 create_artificial_label call. 19459 194602009-06-12 Steven Bosscher <steven@gcc.gnu.org> 19461 19462 * timevar.def (TV_COMBINE_STACK_ADJUST): New timevar. 19463 * combine-stack-adj.c (pass_stack_adjustments): Use it. 19464 * Makefile.in: Fix GGC dependency for gcse.o. 19465 194662009-06-12 Aldy Hernandez <aldyh@redhat.com> 19467 19468 * tree-pretty-print.c (dump_generic_node): Dump column numbers. 19469 * gimple-pretty-print.c (dump_gimple_stmt): Same. 19470 * gimplify.c (gimplify_modify_expr): Set location for GIMPLE_ASSIGNs 19471 created. 19472 * c-parser.c (c_parser_binary_expression): Use current column while 19473 building binary operations. 19474 * common.opt (fshow-column): Enable by default. 19475 * tree-vrp.c (check_array_ref): Use warning_at. 19476 (check_array_bounds): Use location from call back if expr has no 19477 location. 19478 * tree.h: Add location argument to maybe_fold_*. 19479 * tree-ssa-ccp.c (ccp_fold): Pass location to maybe_fold_*. 19480 (maybe_fold_offset_to_array_ref): Add location argument and use it. 19481 (maybe_fold_offset_to_component_ref): Same. 19482 (maybe_fold_offset_to_reference): Same. 19483 (maybe_fold_offset_to_address): Same. 19484 (maybe_fold_stmt_indirect): Same. 19485 (maybe_fold_stmt_addition): Same. 19486 (fold_stmt_r): Pass location to maybe_fold_*. 19487 (fold_gimple_assign): Same. 19488 * c-tree.h: Add location argument to finish_decl, 19489 default_function_array_conversion, store_init_value. 19490 * c-decl.c (define_label): Use error_at. 19491 (c_make_fname_decl): Pass location to finish_decl. 19492 (finish_decl): New location argument. 19493 (build_compound_literal): Pass location to store_init_value. 19494 (grokdeclarator): Pass location to finish_decl. 19495 (grokfield): Same. 19496 * c-typeck.c (array_to_pointer_conversion): New location argument. 19497 (function_to_pointer_conversion): Same. 19498 (default_function_array_conversion): Same. 19499 (parser_build_unary_op): Pass location to overflow_warning. 19500 (parser_build_binary_op): Same. Use warning_at. 19501 (build_unary_op): Pass location to array_to_pointer_conversion. 19502 (build_c_cast): Pass location to digest_init. 19503 (build_modify_expr): New location argument. 19504 (convert_for_assignment): Same. 19505 (store_init_value): Same. 19506 (digest_init): Same. 19507 (output_init_element): Pass location to digest_init and 19508 array_to_pointer_conversion. 19509 (c_finish_return): Pass location to convert_for_assignment. 19510 * gimplify.c (gimplify_conversion): Pass location to 19511 maybe_fold_offset_to_address. 19512 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Pass location 19513 to maybe_fold_stmt_addition. 19514 * c-omp.c (c_finish_omp_atomic): Pass new location to 19515 build_modify_expr. 19516 (c_finish_omp_for): Same. 19517 * c-common.c (overflow_warning): New argument. 19518 * c-common.h: New argument to build_modify_expr, overflow_warning. 19519 * c-parser.c (c_parser_declaration_or_fndef): Pass location to 19520 finish_decl. 19521 (c_parser_initializer): Pass location to 19522 default_function_array_conversion. 19523 (c_parser_initelt): Same. 19524 (c_parser_initval): Same. 19525 (c_parser_asm_operands): Same. 19526 (c_parser_expr_no_commas): Same. Pass location to build_modify_expr. 19527 (c_parser_conditional_expression): Same. 19528 (c_parser_binary_expression): Add location info to stack. Use it. 19529 (c_parser_unary_expression): Pass location to 19530 default_function_array_conversion, parser_build_unary_op, 19531 build_indirect_ref, c_parser_postfix_expression_after_primary. 19532 (c_parser_postfix_expression_after_primary): New location argument. 19533 Use it. 19534 (c_parser_expression_conv): Pass location to 19535 default_function_array_conversion. 19536 (c_parser_expr_list): Same. 19537 (c_parser_omp_atomic): Same. 19538 (c_parser_omp_for_loop): Same. 19539 * c-tree.h (struct c_declarator): Add comment to id_loc. 19540 (build_array_declarator): New argument. 19541 * c-decl.c (build_array_declarator): Add location argument. 19542 (grokdeclarator): Set id_loc for cdk_array. 19543 * c-parser.c (c_parser_direct_declarator_inner): Pass location to 19544 build_array_declarator. 19545 * tree.c (build_omp_clause): Add location argument. 19546 * tree.h (OMP_CLAUSE_HAS_LOCATION): New macro. 19547 (OMP_CLAUSE_LOCATION): New macro. 19548 (struct tree_omp_clause): Add location field. 19549 (build_omp_clause): Add argument. 19550 * cp/pt.c (tsubst_omp_for_iterator): Pass location to 19551 build_omp_clause. 19552 * cp/parser.c (cp_parser_omp_var_list_no_open): Same. 19553 (cp_parser_omp_clause_collapse): Same. 19554 (cp_parser_omp_clause_default): Same. 19555 (cp_parser_omp_clause_if): Same. 19556 (cp_parser_omp_clause_nowait): Same. 19557 (cp_parser_omp_clause_num_threads): Same. 19558 (cp_parser_omp_clause_ordered): Same. 19559 (cp_parser_omp_clause_schedule): Same. 19560 (cp_parser_omp_clause_untied): Same. 19561 (cp_parser_omp_for_loop): Same. 19562 (cp_parser_omp_parallel): Pass location to c_split_parallel_clauses. 19563 * c-tree.h (c_start_case): Add location argument. 19564 (c_process_expr_stmt): Same. 19565 (c_finish_goto_*): Same. 19566 * tree-parloops.c (initialize_reductions): Pass location to 19567 build_omp_clause. 19568 (create_parallel_loop): Same. 19569 * fortran/trans-openmp.c (gfc_trans_omp_variable_list): Same. 19570 (gfc_trans_omp_reduction_list): Same. 19571 (gfc_trans_omp_clauses): Same. 19572 (gfc_trans_omp_do): Same. 19573 * c-typeck.c (c_finish_goto_label): Same. 19574 (c_finish_goto_ptr): New location argument. 19575 (c_start_case): Same. 19576 (emit_side_effect_warnings): Same. 19577 (c_process_expr_stmt): Same. 19578 (c_finish_stmt_expr): Same. 19579 (c_finish_omp_clauses): Use error_at instead of error. 19580 * gimplify.c (gimplify_adjust_omp_clauses_1): Pass location to 19581 build_omp_clause. 19582 * c-omp.c (c_split_parallel_clauses): New location argument. 19583 * tree-nested.c (convert_nonlocal_reference_stmt): Pass location 19584 to build_omp_clause. 19585 (convert_local_reference_stmt): Same. 19586 (convert_gimple_call): Same. 19587 * c-common.h (c_split_parallel_clauses): New argument. 19588 * c-parser.c (c_parser_statement_after_labels): Pass location to 19589 c_finish_goto_label. 19590 (c_parser_switch_statement): Pass location to c_start_case. 19591 (c_parser_for_statement): Pass location to c_finish_expr_stmt, 19592 and c_process_expr_stmt. 19593 (c_parser_omp_variable_list): Add location argument. 19594 (c_parser_omp_clause_collapse): Pass location to build_omp_clause. 19595 (c_parser_omp_clause_default): Same. 19596 (c_parser_omp_clause_if): Same. 19597 (c_parser_omp_clause_num_threads): Same. 19598 (-c_parser_omp_clause_ordered): Same. 19599 (c_parser_omp_clause_reduction): Pass location to 19600 c_parser_omp_variable_list. 19601 (c_parser_omp_clause_schedule): Pass location to build_omp_clause. 19602 (c_parser_omp_clause_untied): Same. 19603 (c_parser_omp_for_loop): Pass location to c_process_expr_stmt. 19604 (c_parser_omp_parallel): Pass location to c_split_parallel_clauses. 19605 19606 * c-tree.h (check_for_loop_decls, undeclared_variable, 19607 build_component_ref, build_array_ref, build_external_ref, 19608 c_expr_sizeof_expr, c_expr_sizeof_type, parser_build_unary_op, 19609 build_conditional_expr, build_compound_expr, c_cast_expr, 19610 build_c_cast, build_asm_expr, c_end_compound_stmt, c_finish_stmt_expr, 19611 c_finish_return, c_finish_omp_parallel, c_finish_omp_task): New 19612 argument. 19613 * c-semantics.c (build_stmt): Same. 19614 (build_case_label): Same. 19615 * c-decl.c (c_finish_incomplete_decl): Pass location on down. 19616 (undeclared_variable): New argument. 19617 (make_label): Same. 19618 (lookup_label): Pass location on down. 19619 (define_label): Same. 19620 (finish_decl): Same. 19621 (build_compound_literal): Same. 19622 (finish_struct): Same. 19623 (finish_function): Do not set location here. 19624 (check_for_loop_decls): New argument. 19625 * tree.c (save_expr): Set location. 19626 (build_empty_stmt): New argument. 19627 * tree.h (build_empty_stmt): New argument to build_empty_stmt. 19628 (CAN_HAVE_LOCATION_P): Make sure we have a non empty node. 19629 * builtins.c (gimplify_va_arg_expr): Use locations. 19630 (expand_builtin_sync_operation): Same. 19631 * c-typeck.c (build_component_ref): New argument. 19632 (build_array_ref): Same. 19633 (build_external_ref): Same. 19634 (c_expr_sizeof_expr): Same. 19635 (c_expr_sizeof_type): Same. 19636 (parser_build_unary_op): Same. 19637 (build_conditional_expr): Same. 19638 (build_compound_expr): Pass location on down. 19639 (build_compound_expr): New argument. 19640 (build_c_cast): Same. 19641 (c_cast_expr): Same. 19642 (build_asm_expr): Same. 19643 (c_finish_return): Same. 19644 (c_process_expr_stmt): Pass location on down. 19645 (c_finish_stmt_expr): New argument. 19646 (push_clenaup): Same. 19647 (c_finish_omp_parallel): Same. 19648 (c_finish_omp_task): Same. 19649 * gimplify.c (gimplify_call_expr): Pass location on down. 19650 * c-omp.c (c_finish_omp_master): New argument. 19651 (c_finish_omp_critical): Same. 19652 (c_finish_omp_ordered): Same. 19653 (c_finish_omp_barrier): Same. 19654 (-c_finish_omp_taskwait): Same. 19655 (c_finish_omp_atomic): Same. 19656 (c_finish_omp_flush): Same. 19657 * tree-inline.c (copy_tree_body_r): Pass location on down. 19658 (inline_forbidden_p): Remove use of input_location. 19659 * c-gimplify.c (c_build_bind_expr): New argument. 19660 * c-common.c (c_common_truthvalue_conversion): Pass location on down. 19661 (c_sizeof_or_alignof_type): New argument. 19662 (c_alignof_expr): Same. 19663 (build_va_arg): Same. 19664 (c_add_case_label): Same. 19665 * c-common.h (c_sizeof_or_alignof_type, c_alignof_expr, 19666 c_sizeof, c_alignof, build_va_arg, build_stmt, build_case_label, 19667 c_build_bind_expr, objc_build_selector_expr, objc_build_throw_stmt, 19668 c_finish_omp_master, c_finish_omp_critical, c_finish_omp_ordered, 19669 c_finish_omp_barrier, c_finish_omp_atomic, c_finish_omp_flush, 19670 c_finish_omp_taskwait, c_finish_omp_for, c_split_parallel_clauses): 19671 New argument. 19672 * stub-objc.c (objc_build_selector_expr): Same. 19673 (objc_build_throw_stmt): Same. 19674 * c-parser.c (c_parser_declaration_or_fndef): Pass location on down. 19675 (c_parser_initelt): Same. 19676 (c_parser_compound_statement): Same. 19677 (c_parser_compound_statement_nostart): Same. 19678 (c_parser_label): Same. 19679 (c_parser_statement_after_labels): Same. 19680 (c_parser_if_body): Same. 19681 (c_parser_else_body): Same. 19682 (c_parser_if_statement): Same. 19683 (c_parser_switch_statement): Same. 19684 (c_parser_while_statement): Same. 19685 (c_parser_do_statement): Same. 19686 (c_parser_for_statement): Same. 19687 (c_parser_asm_statement): Same. 19688 (c_parser_conditional_expression): Same. 19689 (c_parser_binary_expression): Same. 19690 (c_parser_cast_expression): Same. 19691 (c_parser_unary_expression): Same. 19692 (c_parser_sizeof_expression): Same. 19693 (c_parser_alignof_expression): Same. 19694 (c_parser_postfix_expression): Same. 19695 (c_parser_expression): Same. 19696 (c_parser_objc_receiver): Same. 19697 (c_parser_omp_variable_list): Same. 19698 (c_parser_omp_structured_block): Same. 19699 (c_parser_omp_atomic): New argument. 19700 (c_parser_omp_barrier): Same. 19701 (c_parser_omp_critical): Same. 19702 (c_parser_omp_flush): Pass location on down. 19703 (c_parser_omp_for_loop): New argument. 19704 (c_parser_omp_for): Same. 19705 (c_parser_omp_master): Same. 19706 (c_parser_omp_ordered): Same. 19707 (c_parser_omp_sections_scope): Same. 19708 (c_parser_omp_sections): Same. 19709 (c_parser_omp_parallel): Same. 19710 (c_parser_omp_single): Same. 19711 (c_parser_omp_task): Same. 19712 (c_parser_omp_taskwait): Pass location on down. 19713 (c_parser_omp_construct): Same. 19714 (c_parser_omp_threadprivate): Same. 19715 * dwarf2asm.c, targhooks.c, optabs.c, tree.c, tree.h, target.h, 19716 builtins.c, omp-low.c, cgraphunit.c, tree-call-cdce.c, 19717 tree-ssa-alias.c, gimple-low.c, c-tree.h, expr.c, tree-parloops.c, 19718 c-decl.c, tree-eh.c, langhooks.c, function.c, stor-layout.c, 19719 c-typeck.c, gimplify.c, c-pragma.c, expmed.c, except.c, coverage.c, 19720 emit-rtl.c, cfgexpand.c, tree-mudflap.c, varasm.c, tree-nested.c, 19721 rtl.h, tree-inline.c, tree-profile.c, c-common.c, c-common.h, 19722 tree-switch-conversion.c, tree-cfg.c, ipa-struct-reorg.c, c-parser.c, 19723 config/i386/i386.c, stmt.c: 19724 Add location argument to the following function definitions and/or 19725 function calls: build_decl, objcp_start_struct, objcp_finish_struct, 19726 start_struct, finish_struct, PUSH_FIELD, create_artificial_label, 19727 cp_make_fname_decl, pushtag, implicitly_declare, c_make_fname_decl, 19728 build_compound_literal, parser_xref_tag, resolve_overloaded_builtin, 19729 do_case, c_finish_bc_stmt, build_compound_literal, 19730 build_function_call. 19731 * c-decl.c (build_compound_literal): Add location argument. 19732 Make all diagnostic calls use location. 19733 (start_struct): Same. 19734 (finish_struct): Same. 19735 (start_enum): Same. 19736 (build_enumerator): Same. 19737 (start_function): Same. 19738 (grokdeclarator): Make all diagnostic calls use location. 19739 (store_parm_decls_oldstyle): Same. 19740 * c-typeck.c (build_function_call): Add location argument. 19741 Make all diagnostic calls use location. 19742 (do_case): Same. 19743 (c_finish_bc_stmt): Same. 19744 * tree-nested.c (get_trampoline_type): Add argument. 19745 Pass location to build_decl. 19746 (lookup_tramp_for_decl): Pass location to get_trampoline_type. 19747 * rtl.h (RTL_LOCATION): New. 19748 * c-common.c (c_add_case_label): Add location argument. 19749 Make all diagnostic calls use location. 19750 * c-common.h: Add location argument to make_fname_decl, do_case, 19751 c_add_case_label, build_function_call, resolve_overloaded_builtin. 19752 * c-parser.c (c_parser_enum_specifier): Rename ident_loc to enum_loc. 19753 Set it appropriately for every case. Pass enum_loc to start_enum 19754 call. Pass value_loc first to build_enumerator. Pass enum_loc to 19755 parser_xref_tag. 19756 (c_parser_struct_or_union_specifier): Save location. Use it for 19757 start_struct, finish_struct, and parser_xref_tag. 19758 197592009-06-12 Ian Lance Taylor <iant@google.com> 19760 19761 * fold-const.c (fold_unary): Rename local variable and to and_expr. 19762 19763 * c-opts.c (c_common_handle_option): For -Wc++-compat set 19764 cpp_opts->warn_cxx_operator_names. 19765 197662009-06-12 Andrew Pinski <andrew_pinski@playstation.sony.com> 19767 19768 PR tree-opt/38865 19769 * tree-ssa-sccvn.c (visit_reference_op_load): If vn_reference_lookup 19770 is returns NULL and OP is a VCE, look through the VCE. 19771 197722009-06-12 Ian Lance Taylor <iant@google.com> 19773 19774 PR bootstrap/40430 19775 * collect2.c (main): Use CONST_CAST2 in code inside #if 19776 LINK_ELIMINATE_DUPLICATE_LDIRECTORIES. 19777 197782009-06-12 Joey Ye <joey.ye@intel.com> 19779 19780 PR middle-end/39146 19781 * cfgexpand.c (get_decl_align_unit): Update 19782 max_used_stack_slot_alignment with align instead of 19783 stack_alignment_needed. 19784 19785 * function.c (assign_stack_local_1): Update 19786 max_used_stack_slot_alignment with alignment_in_bits instead 19787 of stack_alignment_needed. 19788 (locate_and_pad_parm): Don't update max_used_stack_slot_alignment 19789 here. 19790 197912009-06-12 Jakub Jelinek <jakub@redhat.com> 19792 19793 * dwarf2out.c (last_var_location_insn): New variable. 19794 (dwarf2out_end_epilogue): Clear last_var_location_insn. 19795 (dwarf2out_var_location): Don't record anything after last real 19796 insn. Only change labels if there were any real instructions 19797 in between last note and this one, or if changed sections. 19798 197992009-06-11 Richard Henderson <rth@redhat.com> 19800 19801 * alpha.c (alpha_expand_prologue): Add a REF_CFA_REGISTER 19802 note when storing the frame pointer in a register. 19803 (FRP): Don't redefine to nothing for epilogue. 19804 (alpha_expand_epilogue): Mark register and sp restores. 19805 (unicosmk_gen_dsib): Don't mark weird frame pointer adjust. 19806 19807 * config/alpha/alpha.c (alpha_emit_setcc): Fix test for 19808 when gen_lowpart is needed. 19809 198102009-06-11 Richard Henderson <rth@redhat.com> 19811 19812 * dwarf2out.c (def_cfa_1): Likewise for DW_CFA_cfa_offset. 19813 19814 * dwarf2out.c (need_data_align_sf_opcode): New. 19815 (div_data_align): Move earlier. 19816 (def_cfa_1, reg_save): Use it. 19817 198182009-06-11 H.J. Lu <hongjiu.lu@intel.com> 19819 19820 * config/i386/i386.c (OPTION_MASK_ISA_CRC32_SET): New. 19821 (OPTION_MASK_ISA_CRC32_UNSET): Likewise. 19822 (ix86_handle_option): Handle OPT_mcrc32. 19823 (ix86_target_string): Add -mcrc32. 19824 (bdesc_args): Enable crc32 builtins with OPTION_MASK_ISA_CRC32. 19825 19826 * config/i386/i386.h (TARGET_CRC32): New. 19827 19828 * config/i386/i386.md (sse4_2_crc32<mode>): Also check TARGET_CRC32. 19829 (sse4_2_crc32di): Likewise. 19830 19831 * config/i386/i386.opt (mcrc32): New. 19832 19833 * doc/invoke.texi: Document -mcrc32. 19834 198352009-06-11 Richard Henderson <rth@redhat.com> 19836 19837 * common.opt (gdwarf-): Accept a version number. 19838 * doc/invoke.texi (gdwarf-): Update docs. 19839 * opth-gen.awk: Special case -gdwarf+ to OPT_gdwarfplus. 19840 * opts.c (common_handle_option) [OPT_gdwarf_]: Verify dwarf 19841 version level, and record it. 19842 19843 * dwarf2.h (DW_CIE_VERSION): Remove. 19844 * dwarf2out.c (DWARF_VERSION): Remove. 19845 (add_fde_cfi): Skip DW_CFA_set_loc addition for dwarf3. 19846 (output_call_frame_info): Use CIE version 3 for dwarf3, 19847 or if the return register column is out of range for version 1. 19848 (dwarf_stack_op_name): Add all dwarf3 values. 19849 (DEBUG_PUBTYPES_SECTION): New. 19850 (size_of_die) [dw_val_class_die_ref]: Handle DW_FORM_ref_addr 19851 encoding change for dwarf3. 19852 (output_die) [dw_val_class_die_ref]: Likewise. 19853 (output_compilation_unit_header): Emit correct version for dwarf3. 19854 (output_line_info): Likewise. 19855 (output_pubnames): Update for DWARF_VERSION removal. 19856 (output_aranges): Likewise. 19857 (gen_subprogram_die): Emit DW_OP_call_frame_cfa if emitting dwarf3. 19858 (dwarf2out_init): Don't ifdef DEBUG_PUBTYPES_SECTION. 19859 (dwarf2out_finish): Likewise. 19860 198612009-06-11 David Daney <ddaney@caviumnetworks.com> 19862 19863 * system.h (gcc_assert, gcc_unreachable): Revert accidental commit 19864 in r148403. 19865 198662009-06-11 David Daney <ddaney@caviumnetworks.com> 19867 19868 PR c/39252 19869 * doc/extend.texi ( __builtin_unreachable): Document new builtin. 19870 * builtins.c (expand_builtin_unreachable): New function. 19871 (expand_builtin): Handle BUILT_IN_UNREACHABLE case. 19872 * builtins.def (BUILT_IN_UNREACHABLE): Add new builtin. 19873 * cfgcleanup.c (try_optimize_cfg): Delete empty blocks with no 19874 successors. 19875 * cfgrtl.c (rtl_verify_flow_info): Handle empty blocks when 19876 searching for missing barriers. 19877 198782009-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 19879 19880 * config/darwin.h (LINK_COMMAND_SPEC): Adjust spec to link libcov 19881 when -fprofile-generate* was passed. 19882 * config/darwin9.h (LINK_COMMAND_SPEC): Likewise. 19883 198842009-06-11 Anthony Green <green@moxielogic.com> 19885 19886 * config/moxie/moxie.md: Define length attribute for all instructions. 19887 (rCC): Define. 19888 (*b<cond:code>): Support limited branch ranges for new PC-relative 19889 branch instructions. 19890 * config/moxie/moxie.h (HAS_LONG_UNCOND_BRANCH): Define. 19891 198922009-06-11 Jakub Jelinek <jakub@redhat.com> 19893 19894 * config/i386/i386.c (min_insn_size): Use get_attr_length 19895 for normal insns other than TYPE_MULTI, TYPE_OTHER and TYPE_FCMP. 19896 For __asm return 0. 19897 19898 * config/i386/i386.c (ix86_pad_returns): Use emit_jump_insn_before 19899 instead of emit_insn_before. 19900 199012009-06-10 Ian Lance Taylor <iant@google.com> 19902 19903 PR bootstrap/40408 19904 * graphite.c (add_conditions_to_domain): Change SWITCH_EXPR to 19905 GIMPLE_SWITCH. 19906 199072009-06-10 Revital Eres <eres@il.ibm.com> 19908 19909 * passes.c (init_optimization_passes): Reschedule 19910 predictive-commoning pass before complete unroll pass. 19911 199122009-06-10 Martin Jambor <mjambor@suse.cz> 19913 19914 * cgraph.c (cgraph_node_can_be_local_p): New function. 19915 (cgraph_make_node_local): New function. 19916 * cgraph.h (cgraph_node_can_be_local_p): Declare. 19917 (cgraph_make_node_local): Declare. 19918 199192009-06-10 Nathan Froyd <froydnj@codesourcery.com> 19920 19921 * tree.h (tree_base): Add packed_flag and user_align fields. 19922 Decrease size of spare field. 19923 (TYPE_USER_ALIGN): Use user_align from tree_base. 19924 (DECL_USER_ALIGN): Likewise. 19925 (TYPE_PACKED): Use packed_flag from tree_base. 19926 (DECL_PACKED): Likewise. 19927 (tree_type): Delete packed_flag and user_align fields. Widen 19928 precision field. Widen mode field and shuffle fields to align 19929 mode on an 8-bit boundary. 19930 (tree_decl_common): Delete decl_flag_1 and user_align fields. 19931 Renumber decl_flag_* fields. Fix comments. Widen 19932 decl_common_unused field. 19933 (DECL_HAS_VALUE_EXPR_P): Adjust for renumbering of decl_flag_* fields. 19934 (DECL_EXTERNAL): Likewise. 19935 (DECL_BIT_FIELD): Likewise. 19936 (DECL_NONADDRESSABLE_P): Likewise. 19937 (TYPE_DECL_SUPRESS_DEBUG): Likewise. 19938 * config/arm/arm-modes.def (XImode): Make it an INT_MODE. 19939 199402009-06-10 Ian Lance Taylor <iant@google.com> 19941 19942 * vec.h (DEF_VEC_ALLOC_I): Use DEF_VEC_NONALLOC_FUNCS_I. 19943 (DEF_VEC_ALLOC_P): Use DEF_VEC_NONALLOC_FUNCS_P. 19944 (DEF_VEC_ALLOC_O): Use DEF_VEC_NONALLOC_FUNCS_O. 19945 (DEF_VEC_ALLOC_FUNC_P): Only define VEC_OP (T,A,alloc). 19946 (DEF_VEC_NONALLOC_FUNCS_P): New macro, broken out of old 19947 DEF_VEC_ALLOC_FUNC_P. 19948 (DEF_VEC_ALLOC_FUNC_O): Only define VEC_OP (T,A,alloc). 19949 (DEF_VEC_NONALLOC_FUNCS_O): New macro, broken out of old 19950 DEF_VEC_ALLOC_FUNC_O. 19951 (DEF_VEC_ALLOC_FUNC_I): Only define VEC_OP (T,A,alloc). 19952 (DEF_VEC_NONALLOC_FUNCS_I): New macro, broken out of old 19953 DEF_VEC_ALLOC_FUNC_I. 19954 (vec_stack_p_reserve, vec_stack_p_reserve_exact): Declare. 19955 (vec_stack_p_reserve_exact_1): Declare. 19956 (vec_stack_o_reserve, vec_stack_o_reserve_exact): Declare. 19957 (vec_stack_free): Declare. 19958 (VEC_stack_alloc): Define. 19959 (DEF_VEC_ALLOC_P_STACK, DEF_VEC_ALLOC_FUNC_P_STACK): Define. 19960 (DEF_VEC_ALLOC_O_STACK, DEF_VEC_ALLOC_FUNC_O_STACK): Define. 19961 (DEF_VEC_ALLOC_I_STACK, DEF_VEC_ALLOC_FUNC_I_STACK): Define. 19962 * vec.c (void_p): New type. Call DEF_VEC_P and DEF_VEC_ALLOC_P 19963 for void_p. 19964 (stack_vecs): New static variable. 19965 (vec_stack_p_reserve_exact_1): New function. 19966 (vec_stack_o_reserve_1): New static function. 19967 (vec_stack_p_reserve, vec_stack_p_reserve_exact): New functions. 19968 (vec_stack_o_reserve, vec_stack_o_reserve_exact): New functions. 19969 (vec_stack_free): New function. 19970 * df-scan.c (df_ref): Use DEF_VEC_P and DEF_VEC_ALLOC_P_STACK. 19971 (VEC_df_ref_stack_alloc): Define. 19972 (df_mw_hardreg_ptr): New type. Use DEF_VEC_P and 19973 DEF_VEC_ALLOC_P_STACK. 19974 (VEC_df_mw_hardreg_ptr_stack_alloc): Define. 19975 (struct df_collection_rec): Change _vec fields to VEC. Remove 19976 _use fields. 19977 (df_free_collection_rec): Adjust for new fields. 19978 (df_insn_rescan): Use new df_collection_rec fields. 19979 (df_notes_rescan, df_canonize_collection_rec): Likewise. 19980 (df_ref_create_structure, df_ref_record): Likewise. 19981 (df_get_conditional_uses, df_get_call_refs): Likewise. 19982 (df_insn_refs_collect, df_bb_refs_collect): Likewise. 19983 (df_bb_refs_record, df_record_entry_block_defs): Likewise. 19984 (df_record_exit_block_uses, df_bb_verify): Likewise. 19985 (df_swap_refs): Change ref_vec parameter to VEC. Change all callers. 19986 (df_sort_and_compress_refs): Change ref_vec parameter to VEC. 19987 Remove count parameter. Change return type to void. Change all 19988 callers. 19989 (df_sort_and_compress_mws): Change mw_vec parameter to VEC. 19990 Remove count parameter. Change return type to void. Change all 19991 callers. 19992 (df_install_refs): Change old_vec parameter to VEC. Remove count 19993 parameter. Change all callers. 19994 (df_install_mws): Change old_vec parameter to VEC. Remove count 19995 parameter. Change all callers. 19996 (df_refs_verify): Change new_rec parameter to VEC. Change call 19997 callers. 19998 (df_mws_verify): Likewise. 19999 200002009-06-10 Alexandre Oliva <aoliva@redhat.com> 20001 20002 * gcc.c (compare_files): Cast munmap argumento to caddr_t. 20003 200042009-06-10 H.J. Lu <hongjiu.lu@intel.com> 20005 20006 * doc/extend.texi: Add description for __builtin_ia32_crc32di. 20007 200082009-06-10 Anthony Green <green@moxielogic.com> 20009 20010 * config/moxie/crti.asm: New file. 20011 * config/moxie/crtn.asm: New file. 20012 * config/moxie/moxie.c: New file. 20013 * config/moxie/moxie.h: New file. 20014 * config/moxie/sfp-machine.h: New file. 20015 * config/moxie/moxie-protos.h: New file. 20016 * config/moxie/t-moxie: Created. 20017 * config/moxie/t-moxie-softfp: Created. 20018 * config/moxie/moxie.md: Created. 20019 * config/moxie/constraints.md: Created. 20020 * config.gcc: Add moxie support. 20021 * doc/md.texi (Machine Constraints): Add moxie constraints. 20022 * doc/contrib.texi (Contributors): Mention moxie port. 20023 * doc/install.texi (Specific): Mention the moxie port. 20024 200252009-06-09 Ian Lance Taylor <iant@google.com> 20026 20027 * system.h (HAVE_DESIGNATED_INITIALIZERS): Don't define if 20028 compiling with C++. 20029 * optabs.c (optab_table): Only use designated initializers if 20030 HAVE_DESIGNATED_INITIALIZERS is defined. 20031 (convert_optab_table): Likewise. 20032 (init_optabs): Always call init_insn_codes if 20033 HAVE_DESIGNATED_INITIALIZERS is not defined. 20034 200352009-06-09 Ian Lance Taylor <iant@google.com> 20036 20037 * targhooks.c (default_builtin_vectorized_function): Change fn 20038 parameter to unsigned int. 20039 (default_builtin_vectorized_conversion): Change code parameter to 20040 unsigned int. 20041 (default_builtin_reciprocal): Change fn parameter to unsigned int. 20042 * targhooks.h: Update declarations. 20043 * config/rs6000/rs6000.c (rs6000_builtin_conversion): Change code 20044 parameter to unsigned int. 20045 20046 * c-typeck.c (comptypes_check_enum_int): New static function. 20047 (comptypes_internal): Add enum_and_int_p parameter. Change all 20048 callers. 20049 (comp_target_types): Add location parameter. Change all callers. 20050 (tagged_types_tu_compatible_p): Add enum_and_int_p parameter. 20051 Change all callers. 20052 (function_types_compatible_p, type_lists_compatible_p): Likewise. 20053 (build_conditional_expr): Add colon_loc parameter. Change all 20054 callers. 20055 (convert_for_assignment): Add location parameter. Change all callers. 20056 * c-parser.c (c_parser_conditional_expression): Pass location of 20057 colon to build_conditional_expr. 20058 * c-tree.h (build_conditional_expr): Update declaration. 20059 200602009-06-09 Sebastian Pop <sebastian.pop@amd.com> 20061 20062 * graphite.c: Revert previous patch. 20063 200642009-06-09 Sebastian Pop <sebastian.pop@amd.com> 20065 20066 PR bootstrap/40103 20067 * graphite.c: Remove pragma GCC diagnostic warning "-Wc++-compat". 20068 200692009-06-09 Ghassan Shobaki <ghassan.shobaki@amd.com> 20070 20071 * tree-ssa-loop-prefetch.c 20072 (loop_prefetch_arrays): Fixed a portability problem in printf format 20073 string. 20074 200752009-06-09 Martin Jambor <mjambor@suse.cz> 20076 20077 PR tree-optimization/40351 20078 * tree-sra.c (propagate_subacesses_accross_link): Check that a 20079 refrence to a potential artifical subaccess can be constructed. 20080 200812009-06-08 Kaz Kojima <kkojima@gcc.gnu.org> 20082 20083 * config/sh/sh-protos.h (sh_optimization_options): Declare. 20084 (sh_override_options): Likewise. 20085 * config/sh/sh.c: Include params.h. 20086 (sh_optimization_options): New. 20087 (sh_override_options): Likewise. 20088 * config/sh/sh.c (OPTIMIZATION_OPTIONS): Use sh_optimization_options. 20089 (OVERRIDE_OPTIONS): Use sh_override_options. 20090 200912009-06-08 Jakub Jelinek <jakub@redhat.com> 20092 20093 * dwarf2out.c (emit_cfa_remember): New variable. 20094 (add_fde_cfi): If emit_cfa_remember, recurse to add 20095 DW_CFA_remember_state first. 20096 (dwarf2out_begin_epilogue): Don't add_fde_cfi DW_CFA_remember_state, 20097 instead just set emit_cfa_remember. 20098 200992009-06-08 Jan Hubicka <jh@suse.cz> 20100 20101 PR debug/40126 20102 * dwarf2out.c (dwarf2out_abstract_function): Free decl_loc_table. 20103 201042009-06-08 Jan Hubicka <jh@suse.cz> 20105 20106 PR middle-end/39834 20107 * cgraphunit.c (save_inline_function_body): Do not copy transform 20108 hooks for saved inline bodies. 20109 * ipa-passes.c (do_per_function): Do not add the hoks multiple times 20110 for given function. 20111 201122009-06-08 Adam Nemet <anemet@caviumnetworks.com> 20113 20114 * jump.c (returnjump_p): Handle delayed branches. Add missing 20115 function comment. 20116 201172009-06-08 Jan Hubicka <jh@suse.cz> 20118 20119 PR middle-end/40102 20120 * cgraph.c (cgraph_create_edge_including_clones): Also asume that the 20121 original node might've been modified. 20122 * tree-inline.c (copy_bb): Do not assume that all clones are the same. 20123 201242009-06-08 Jakub Jelinek <jakub@redhat.com> 20125 20126 * tree-object-size.c (addr_object_size): Add OSI argument. 20127 Handle also INDIRECT_REF with SSA_NAME inside of it as base address. 20128 (compute_builtin_object_size, expr_object_size): Adjust callers. 20129 (plus_stmt_object_size): Call addr_object_size instead of 20130 compute_builtin_object_size. 20131 201322009-06-08 Ghassan Shobaki <ghassan.shobaki@amd.com> 20133 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 20134 20135 * tree-ssa-loop-prefetch.c 20136 (gather_memory_references): Introduced a counter for the number of 20137 memory references. 20138 (anything_to_prefetch_p): Introduced a counter for the number of 20139 prefetches. 20140 (is_loop_prefetching_profitable): New function with a cost model 20141 for prefetching. 20142 (loop_prefetch_arrays): Use the new cost model to determine if 20143 prefetching is profitable. 20144 * params.def (MIN_INSN_TO_PREFETCH_RATIO, 20145 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters. 20146 * params.h (MIN_INSN_TO_PREFETCH_RATIO, 20147 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters. 20148 * doc/invoke.texi (MIN_INSN_TO_PREFETCT_RATIO, 20149 PREFETCH_MIN_INSN_TO_MEM_RATIO): New parameters. 20150 201512009-06-08 Michael Matz <matz@suse.de> 20152 20153 PR debug/40012 20154 * cfgexpand.c (set_rtl): Store place also in DECL_RTL, if all 20155 partitions use the same. 20156 (expand_one_var): Deal with DECL_RTL sometimes begin set also 20157 for basevars of SSA_NAMEs. 20158 (expand_used_vars): Reset TREE_USED for basevars of SSA_NAMEs, 20159 to not expand them twice. 20160 (gimple_expand_cfg): Clear DECL_RTL for those decls that have 20161 multiple places. 20162 201632009-06-08 Alexandre Oliva <aoliva@redhat.com> 20164 20165 * common.opt (fcompare-debug=, fcompare-debug-second): New. 20166 (fdump-final-insns=, gtoggle): New. 20167 * doc/invoke.texi: Document them. 20168 * final.c (rest_of_clean_state): Dump final insn stream. 20169 * gcc.c (invoke_as): Hook in -fcompare-debug. 20170 (static_spec_functions): Add compare-debug-dump-opt, 20171 compare-debug-self-opt and compare-debug-auxbase-opt. 20172 (compare_debug, compare_debug_second, compare_debug_opt): New. 20173 (switches_debug_check, n_switches_debug_check): New. 20174 (debug_auxbase_opt, debug_check_temp_file): New. 20175 (process_command): Handle -fno-compare-debug, -fcompare-debug and 20176 -fcompare-debug=*. 20177 (do_self_spec): Handle arguments after switches. 20178 (do_spec_1): Add .gk extension to temp file basenames for compare. 20179 (check_live_switch): Take SWITCH_IGNORE into account, and earlier. 20180 (cc1_options): Use it instead of normal auxbase computation for 20181 the second compare-debug compilation. 20182 (compare_files): New. 20183 (main): Set up and implement compare debug mode. 20184 (compare_debug_dump_opt_spec_function): New. 20185 (compare_debug_self_opt_spec_function): New. 20186 (compare_debug_auxbase_opt_spec_function): New. 20187 * toplev.c (process_options): Handle flag_gtoggle, 20188 flag_dump_final_insns. 20189 * coverage.c (coverage_begin_output): Don't overwrite .gcno file 20190 during -fcompare-debug-second compilation. 20191 201922009-06-07 Ian Lance Taylor <iant@google.com> 20193 20194 * dwarf2.h (enum dwarf_location_atom): Add INTERNAL_DW_OP_tls_addr. 20195 * dwarf2out.c (INTERNAL_DW_OP_tls_addr): Don't #define. 20196 20197 * c-common.c (c_do_switch_warnings): Don't exit early for -Wswitch 20198 with no default node. Change warning with %H to warning_at. 20199 Don't clear warn_switch around case checking. 20200 * doc/invoke.texi (Warning Options): Clarify distinction between 20201 -Wswitch and -Wswitch-enum. 20202 202032009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20204 20205 * tree-pass.h (TODO_update_ssa_any): Document internal use only. 20206 202072009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20208 20209 * gbl-ctors.h: Add header guard. 20210 202112009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20212 20213 * tree-flow.h (make_value_handle, set_value_handle, sort_vuses, 20214 sort_vuses_heap, vn_lookup_or_add, vn_lookup_or_add_with_stmt, 20215 vn_lookup_or_add_with_vuses, vn_add, vn_add_with_vuses, 20216 vn_lookup_with_stmt, vn_lookup, vn_lookup_with_vuses): Remove 20217 prototypes for removed functions. 20218 (expressions_equal_p): Move to ... 20219 * tree-ssa-sccvn.h: ... here and ... 20220 * matrix-reorg.c: ... adjust includes. 20221 202222009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20223 20224 * ipa-struct-reorg.c (do_reorg_1): Fix whitespace in dump output. 20225 202262009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20227 20228 * c-decl.c (finish_decl): Use bool for variable was_incomplete. 20229 (finish_function): Remove erroneous whitespace. 20230 202312009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20232 20233 * tree-cfg.c (gimple_merge_blocks): Commentary typo fix. 20234 (verify_stmts): Print statement who's gimple_bb is set to a wrong BB 20235 202362009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20237 20238 * errors.c (internal_error): Commentary typo fix. 20239 * gimple-iterator.c (gsi_insert_seq_on_edge): Ditto. 20240 * tree-ssa-pre.c: Ditto. 20241 202422009-06-07 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 20243 20244 * basic-block.h (ENTRY_BLOCK, EXIT_BLOCK): Document that neither of 20245 them is supposed to hold actual statements. 20246 202472009-06-06 Ian Lance Taylor <iant@google.com> 20248 20249 * doc/extend.texi (Attribute Syntax): Document that C++ labels on 20250 empty statements can now have attributes. 20251 202522009-06-05 Shujing Zhao <pearly.zhao@oracle.com> 20253 20254 * config/mips/mips.c: Use REG_P and CONST_INT_P where applicable. 20255 * config/mips/mips.md: Ditto. 20256 202572009-06-05 Nathan Froyd <froydnj@codesourcery.com> 20258 20259 * config/rs6000/eabi.asm (__eabi_convert): Don't define if 20260 _RELOCATABLE. 20261 (__eabi_uconvert): Likewise. 20262 202632009-06-05 Nathan Froyd <froydnj@codesourcery.com> 20264 20265 * config/rs6000/ppc-asm.h: Protect auto-host.h inclusion and 20266 CFI_* definitions with IN_GCC. 20267 202682009-06-05 David Edelsohn <edelsohn@gnu.org> 20269 20270 * xcoffout.h (xcoffout_source_line): Update prototype. 20271 202722009-06-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 20273 20274 * builtins.c (do_mpc_ckconv, do_mpc_arg1): Use 20275 mpc_realref/mpc_imagref instead of MPC_RE/MPC_IM. 20276 202772009-06-05 Jakub Jelinek <jakub@redhat.com> 20278 20279 PR middle-end/40340 20280 * tree-ssa-live.c (remove_unused_scope_block_p): Don't prune 20281 inlined_function_outer_scope_p blocks for artificial inlines 20282 even at -g0/-g1. 20283 * tree.c (tree_nonartificial_location): Rewrite using 20284 block_nonartificial_location. 20285 202862009-06-05 Revital Eres <eres@il.ibm.com> 20287 Leehod Baruch <leehod@il.ibm.com> 20288 20289 * expr.c (expand_assignment): Expand MISALIGNED_INDIRECT_REF. 20290 (expand_expr_real_1): Remove comment. 20291 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 20292 Vectorize misaligned access when the target supports it. 20293 (vect_supportable_dr_alignment): Check for unaligned access support. 20294 * tree-vect-stmts.c (vectorizable_store): Generate misaligned store 20295 and remove asset. 20296 202972009-06-05 Julian Brown <julian@codesourcery.com> 20298 20299 * config/arm/ieee754-df.S (cmpdf2): Avoid writing below SP. 20300 * config/arm/ieee754-sf.S (cmpsf2): Likewise. 20301 203022009-06-05 Richard Guenther <rguenther@suse.de> 20303 20304 PR bootstrap/40350 20305 * dwarf2out.c (dwarf2out_begin_function): Mark discriminator 20306 as possibly unused. 20307 203082009-06-05 Jakub Jelinek <jakub@redhat.com> 20309 20310 * config/s390/s390.c (global_not_special_regno_p): New static inline. 20311 (save_gprs): Don't tell unwinder when a global register is saved. 20312 (s390_emit_epilogue): Emit needed epilogue unwind info. 20313 203142009-06-05 Alexandre Oliva <aoliva@redhat.com> 20315 20316 * dwarf2out.c (deferred_asm_name): New. 20317 (add_name_and_src_coords_attributes): Defer creation of 20318 DW_AT_MIPS_linkage_name attribute if DECL_ASSEMBLER_NAME was not 20319 computed yet. 20320 (move_linkage_attr): New. 20321 (dwarf2out_finish): Revisit deferrals and emit attributes at the 20322 right place. 20323 203242009-06-05 Alexandre Oliva <aoliva@redhat.com> 20325 20326 * tree-nested.c (finalize_nesting_tree_1): Declare the 20327 frame_decl in the binding tree. 20328 203292009-06-04 Cary Coutant <ccoutant@google.com> 20330 20331 * basic-block.h (struct basic_block_def): Add discriminator field. 20332 * dbxout.c (dbxout_source_line): Add new parameter. Change all 20333 callers. 20334 * debug.c (do_nothing_debug_hooks): Add additional entry. 20335 (debug_nothing_int_charstar_int): New function. 20336 * debug.h (struct gcc_debug_hooks): Add parameter to source_line hook. 20337 (debug_nothing_int_charstar_int): New declaration. 20338 * dwarf2out.c (dwarf2out_source_line): Add new parameter. Write 20339 discriminator value in .loc directive. 20340 * final.c (last_discriminator): New variable. 20341 (discriminator): New variable. 20342 (final_start_function): Initialize above variables, pass current 20343 discriminator to debug hook. 20344 (notice_source_line): Check for discriminator change. 20345 * gimple-pretty-print.c (dump_bb_header): Print discriminator value. 20346 * sdbout.c (sdbout_source_line): New parameter. 20347 * tree-cfg.c (struct locus_discrim_map): New structure type. 20348 (discriminator_per_locus): New hash table. 20349 (build_gimple_cfg): Allocate and free discriminator hash table. 20350 (make_edges): Call assign_discriminator. 20351 (locus_map_hash): New function. 20352 (locus_map_eq): New function. 20353 (next_discriminator_for_locus): New function. 20354 (same_line_p): New function. 20355 (assign_discriminator): New function. 20356 (make_cond_expr_edges): Call assign_discriminator. 20357 (make_gimple_switch_edges): Likewise. 20358 (first_non_label_stmt): New function. 20359 * vmsdbgout.c (vmsdbgout_source_line): Add new parameter. Change 20360 all callers. 20361 * xcoffout.c (xcoffout_source_line): Add new parameter. 20362 20363 * configure.ac (gcc_cv_as_discriminator): New configury check for 20364 gas support for discriminator. 20365 * configure: Regenerate. 20366 * config.in: Regenerate. 20367 203682009-06-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 20369 20370 * config/arm/arm.c (thumb2_legitimate_index_p): Initialize 20371 val after checking for integers. 20372 203732009-06-04 Uros Bizjak <ubizjak@gmail.com> 20374 20375 * config/i386/i386.h (X86_64_MS_REGPARM_MAX): Rename from 20376 X64_REGPARM_MAX. 20377 (REGPARM_MAX): Use X86_64_MS_REGPARM_MAX. 20378 (X86_64_MS_SSE_REGPARM_MAX): Rename from X64_SSE_REGPARM_MAX. 20379 (SSE_REGPARM_MAX): Use X86_64_MS_SSE_REGPARM_MAX. 20380 * config/i386/i386.c: Use X86_64_MS_REGPARM_MAX instead of 20381 X64_REGPARM_MAX. Use X86_64_MS_SSE_REGPARM_MAX instead of 20382 X64_SSE_REGPARM_MAX. 20383 * config/i386/i386.md: Use X86_64_MS_SSE_REGPARM_MAX instead of 20384 X64_SSE_REGPARM_MAX. 20385 203862009-06-04 Alexandre Oliva <aoliva@redhat.com> 20387 20388 * gcc.c (report_times_to_file): New. 20389 (execute): Implement it. 20390 (process_command): Support -time=. 20391 * doc/invoke.texi: Document it. 20392 203932009-06-04 Alexandre Oliva <aoliva@redhat.com> 20394 20395 * tree-ssa-live.c (remove_unused_scope_block_p): Keep variables 20396 that have value exprs. 20397 203982009-06-04 Alexandre Oliva <aoliva@redhat.com> 20399 20400 * dwarf2asm.c (dw2_force_const_mem): Defer creation of 20401 declarations for constants until... 20402 (dw2_output_indirect_constant_1): ... this point. 20403 204042009-06-04 Richard Earnshaw <rearnsha@arm.com> 20405 20406 PR target/10242 20407 * arm.md (arm_addsi3): Don't try to split an add with an 20408 eliminable register until after reload has completed. 20409 204102009-06-03 Ian Lance Taylor <iant@google.com> 20411 20412 * dummy-checksum.c (executable_checksum): Use EXPORTED_CONST. 20413 * genattrtab.c (write_length_unit_log): Likewise. 20414 * genchecksum.c (dosum): Likewise. 20415 * gengtype.c (write_rtx_next): Likewise. 20416 (finish_root_table, write_roots): Likewise. 20417 * gimple.c (gimple_ops_offset_): Likewise. 20418 * tree-nomudflap.c (gt_ggc_r_gt_tree_mudflap_h): Likewise. 20419 * config/arc/arc.c (arc_attribute_table): Likewise. 20420 * config/arm/arm.c (arm_attribute_table): Likewise. 20421 * config/avr/avr.c (avr_attribute_table): Likewise. 20422 * config/crx/crx.c (crx_attribute_table): Likewise. 20423 * config/m32r/m32r.c (m32r_attribute_table): Likewise. 20424 * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Likewise. 20425 * config/mcore/mcore.c (mcore_attribute_table): Likewise. 20426 * config/rs6000/rs6000.c (rs6000_attribute_table): Likewise. 20427 * config/sh/sh.c (sh_attribute_table): Likewise. 20428 * config/sparc/sparc.c (sparc_attribute_table): Likewise. 20429 * config/spu/spu.c (spu_attribute_table): Likewise. 20430 * config/v850/v850.c (v850_attribute_table): Likewise. 20431 20432 * config/alpha/alpha.c (vms_attribute_table): Make static. 20433 * config/bfin/bfin.c (bfin_attribute_table): Likewise. 20434 * config/h8300/h8300.c (h8300_attribute_table): Likewise. 20435 * config/mips/mips.c (mips_attribute_table): Likewise. 20436 20437 * Makefile.in (dummy-checksum.o): Depend upon $(CONFIG_H) and 20438 $(SYSTEM_H). 20439 (cc1-checksum.o): Likewise. 20440 204412009-06-03 Steve Ellcey <sje@cup.hp.com> 20442 20443 * config/ia64/vect.md (*movv2sf_internal): Handle big endian case. 20444 204452009-06-03 Jakub Jelinek <jakub@redhat.com> 20446 20447 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Return generated 20448 insn if it is changing sp. Use gen_add3_insn instead of 20449 conditionally gen_addsi3 and gen_adddi3. 20450 (offset_below_red_zone_p): New static inline function. 20451 (rs6000_emit_epilogue): Emit needed epilogue unwind info. 20452 Use gen_add3_insn instead of conditionally gen_addsi3 and gen_adddi3. 20453 * config/rs6000/ppc-asm.h: Include auto-host.h. 20454 (CFI_STARTPROC, CFI_ENDPROC, CFI_DEF_CFA_REGISTER, CFI_OFFSET, 20455 CFI_RESTORE): Define. 20456 * config/rs6000/crtresxgpr.asm: Add unwind info. 20457 * config/rs6000/crtresxfpr.asm: Likewise. 20458 * config/rs6000/crtresgpr.asm: Likewise. 20459 * config/rs6000/crtresfpr.asm: Likewise. 20460 * config/rs6000/crtsavgpr.asm: Likewise. 20461 * config/rs6000/crtsavfpr.asm: Likewise. 20462 20463 * dwarf2out.c (output_cfi_directive): Pass 1 instead of 0 to second 20464 argument of DWARF2_FRAME_REG_OUT macros. 20465 204662009-06-03 Julian Brown <julian@codesourcery.com> 20467 20468 * config/arm/arm.c (arm_hard_regno_mode_ok): Permit values of four 20469 words or less (including TImode) in core registers. 20470 204712009-06-03 Richard Guenther <rguenther@suse.de> 20472 20473 PR middle-end/40328 20474 * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR. 20475 204762009-06-03 Andrey Belevantsev <abel@ispras.ru> 20477 20478 * statistics.c (statistics_counter_event): Do not record event 20479 in pass dump if its number == -1. 20480 (curr_statistics_hash): Add assert that we never get passes 20481 with static number == -1. 20482 204832009-06-03 Richard Guenther <rguenther@suse.de> 20484 Andrey Belevantsev <abel@ispras.ru> 20485 20486 * cfgexpand.c (discover_nonconstant_array_refs_r): Make only 20487 non-BLKmode arrays addressable. 20488 204892009-06-03 Maxim Kuvyrkov <maxim@codesourcery.com> 20490 20491 * config/m68k/linux.h (HAVE_GAS_BALIGN_AND_P2ALIGN): Move to ... 20492 * config/m68k/m68k.h: ... here. 20493 204942009-06-03 Martin Jambor <mjambor@suse.cz> 20495 20496 PR tree-optimization/40323 20497 * ipa-prop.c (get_ssa_def_if_simple_copy): Break if not single 20498 assignment. 20499 205002009-06-03 Richard Guenther <rguenther@suse.de> 20501 20502 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE 20503 consistently. 20504 205052009-06-03 Shujing Zhao <pearly.zhao@oracle.com> 20506 20507 * config/sh/predicates.md: Use REG_P, MEM_P, CONST_INT_P, LABEL_P, 20508 JUMP_P, CALL_P, NONJUMP_INSN_P, NOTE_P, BARRIER_P and 20509 JUMP_TABLE_DATA_P where applicable. 20510 * config/sh/sh.c: Ditto. 20511 * config/sh/sh.h: Ditto. 20512 * config/sh/sh.md: Ditto. 20513 * config/sh/symbian.c: Ditto. 20514 205152009-06-03 Uros Bizjak <ubizjak@gmail.com> 20516 20517 * config/i386/driver-i386.c (describe_cache): Optimize 20518 concatenation of strings. Use snprintf instead of sprintf. 20519 (host_detect_local_cpu): Ditto. Ignore -march and -mtune for native 20520 target when not compiling with GCC. 20521 205222009-06-02 Kaz Kojima <kkojima@gcc.gnu.org> 20523 20524 * config/sh/sh.c: Revert last change. 20525 (sh_expand_epilogue): Emit a blockage insn before the frame 20526 pointer adjustment unconditionally. 20527 205282009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20529 20530 * config/pa/pa-hpux.h (LINK_SPEC): Remove "%<fwhole-program". 20531 * config/pa/pa-hpux10.h (LINK_SPEC): Likewise. 20532 * config/pa/pa-hpux11.h (LINK_SPEC): Likewise. 20533 * gcc.c (set_collect_gcc_options): Don't add -fwhole-program 20534 to COLLECT_GCC_OPTIONS. 20535 205362009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20537 20538 * collect2.c (target_system_root): New variable. 20539 (main): Handle --sysroot=. 20540 (ignore_library): Strip the sysroot from the library path. 20541 205422009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20543 20544 * Makefile.in (COLLECT2_OBJS): Add collect2-aix.o. 20545 (collect2.o): Depend on collect2-aix.h. 20546 (collect2-aix.o): New rule. 20547 * collect2-aix.h: New file. 20548 * collect2-aix.c: Likewise. 20549 * collect2.c: Include collect2-aix.h. Don't undefine 20550 OBJECT_FORMAT_COFF if CROSS_AIX_SUPPORT is defined. 20551 Guard native includes with #ifndef CROSS_DIRECTORY_STRUCTURE. 20552 Use TARGET_AIX_VERSION instead of _AIX51. 20553 * config/rs6000/aix43.h (TARGET_AIX_VERSION): Define. 20554 * config/rs6000/aix51.h (TARGET_AIX_VERSION): Likewise. 20555 * config/rs6000/aix52.h (TARGET_AIX_VERSION): Likewise. 20556 * config/rs6000/aix53.h (TARGET_AIX_VERSION): Likewise. 20557 * config/rs6000/aix61.h (TARGET_AIX_VERSION): Likewise. 20558 205592009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20560 20561 * collect2.c (ignore_library): Avoid premature post-increment 20562 and null deference. 20563 205642009-06-02 Richard Sandiford <r.sandiford@uk.ibm.com> 20565 20566 * Makefile.in (libgcc.mvars): Add TARGET_SYSTEM_ROOT. 20567 * config/rs6000/aix.h (LINK_SYSCALLS_SPEC): Add %R to the 20568 !CROSS_DIRECTORY_STRUCTURE alternative and use it for 20569 CROSS_DIRECTORY_STRUCTURE too. 20570 (LINK_LIBG_SPEC): Likewise. 20571 (LIB_SPEC): Add %R to sysroot paths. 20572 * config/rs6000/aix43.h (CPP_SPEC): Add %R to sysroot paths. 20573 (CPLUSPLUS_CPP_SPEC, LIB_SPEC): Likewise. 20574 * config/rs6000/aix51.h: As for aix43.h. 20575 * config/rs6000/aix52.h: Likewise. 20576 * config/rs6000/aix53.h: Likewise. 20577 * config/rs6000/aix61.h: Likewise. 20578 * config/rs6000/t-aix52 (SHLIB_LINK): Add $(TARGET_SYSTEM_ROOT) 20579 to the beginning of sysroot paths. 20580 205812009-06-02 Alexandre Oliva <aoliva@redhat.com> 20582 20583 * print_rtl (print_rtx): Don't print modes in EXPR_LISTs and 20584 INSN_LISTs that are out of the REG_NOTE range. 20585 205862009-06-02 Alexandre Oliva <aoliva@redhat.com> 20587 20588 * loop-unroll.c (struct iv_to_split): Add pointer to next. 20589 (struct var_to_expand): Likewise. 20590 (struct opt_info): Add head and tail for linked lists of the above. 20591 (analyze_insn_to_expand_var): Initialize next. 20592 (analyze_iv_to_split_insn): Likewise. 20593 (analyze_insns_in_loop): Create linked lists. 20594 (allocate_basic_variable): Simplify for use without hash table. 20595 (insert_var_expansion_initialization): Likewise, make it type-safer. 20596 (combine_var_copies_in_loop_exit): Likewise. 20597 (apply_opt_in_copies): Walk lists rather than hash tables. 20598 (release_var_copies): Simplified and inlined by hand into... 20599 (free_opt_info): ... this function. 20600 206012009-06-02 Richard Guenther <rguenther@suse.de> 20602 20603 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use DECL_SIZE 20604 for field decls. 20605 206062009-06-02 Alexandre Oliva <aoliva@redhat.com> 20607 20608 * cfgexpand.c (gimple_expand_cfg): Discard the source location 20609 only for builtins that are not overridden. 20610 206112009-06-02 Alexandre Oliva <aoliva@redhat.com> 20612 20613 * gengtype.c (adjust_field_rtx_def): Add NOTE_INSN_DELETED_LABEL's 20614 label string. 20615 206162009-06-02 Alexandre Oliva <aoliva@redhat.com> 20617 20618 * df-core.c (df_ref_debug): Honor -fdump-noaddr. 20619 206202009-06-02 Alexandre Oliva <aoliva@redhat.com> 20621 20622 * combine.c (move_deaths): Compare LUIDs within the same BB only. 20623 206242009-06-02 Alexandre Oliva <aoliva@redhat.com> 20625 20626 * common.opt (fdump-unnumbered-links): New. 20627 * doc/invoke.texi (-fdump-unnumbered-links): Document it. 20628 * print-rtl.c (flag_dump_unnumbered_links): New. 20629 (print_rtx): Test it. 20630 206312009-06-02 Richard Earnshaw <rearnsha@arm.com> 20632 20633 * arm.c (arm_get_frame_offsets): Prefer using r3 for padding a 20634 push/pop multiple to 8-byte alignment. 20635 206362009-06-01 Jakub Jelinek <jakub@redhat.com> 20637 20638 * config/i386/i386.c (queued_cfa_restores): New static variable. 20639 (ix86_add_cfa_restore_note, ix86_add_queued_cfa_restore_notes): New 20640 functions. 20641 (pro_epilogue_adjust_stack): Call ix86_add_queued_cfa_restore_notes. 20642 (ix86_emit_restore_reg_using_pop): Add RED_OFFSET argument. 20643 Set RTX_FRAME_RELATED_P immediately after adding a REG_CFA_* note. 20644 Call ix86_add_cfa_restore_note instead of adding REG_CFA_OFFSET 20645 note unconditionally. 20646 (ix86_emit_restore_regs_using_mov): Likewise. 20647 (ix86_emit_restore_sse_regs_using_mov): Likewise. 20648 (ix86_emit_restore_regs_using_pop): Add RED_OFFSET argument, pass 20649 it through to ix86_emit_restore_reg_using_pop. 20650 (ix86_emit_leave): Add RED_OFFSET argument. Call 20651 ix86_add_queued_cfa_restore_notes. Call ix86_add_cfa_restore_note 20652 instead of adding REG_CFA_OFFSET note unconditionally. 20653 (ix86_expand_epilogue): Compute RED_OFFSET, pass it down to 20654 the above functions. Call ix86_add_queued_cfa_restore_notes when 20655 needed. 20656 20657 * dwarf2out.c (dwarf2out_cfi_label): Add FORCE argument, if true, 20658 force output of the label even for dwarf2out_do_cfi_asm. 20659 (add_fde_cfi): If -g2 and above and cfi might change CFA, 20660 force creation of CFI label and chain DW_CFA_set_loc jumping to it 20661 for convert_cfa_to_fb_loc_list. Adjust other dwarf2out_cfi_label 20662 caller. 20663 (dwarf2out_stack_adjust, dwarf2out_frame_debug, 20664 dwarf2out_begin_epilogue, dwarf2out_frame_debug_restore_state): Adjust 20665 dwarf2out_cfi_label callers. 20666 * tree.h (dwarf2out_cfi_label): Adjust prototype. 20667 * config/arm/arm.c (thumb_pushpop, thumb1_output_function_prologue): 20668 Adjust dwarf2out_cfi_label callers. 20669 * config/vax/vax.c (vax_output_function_prologue): Likewise. 20670 20671 * config/i386/i386.h (struct machine_cfa_state, 20672 struct machine_function): Guard with ifndef USED_FOR_TARGET 20673 instead of not IN_LIBGCC2 and not in IN_TARGET_LIBS. 20674 20675 PR other/40024 20676 * emutls.c (__emutls_get_address): Change arr->size to mean number 20677 of allocated arr->data entries instead of # of slots + 1. 20678 20679 PR middle-end/40316 20680 * recog.c (peep2_reinit_state): New function. 20681 (peephole2_init_state): Use it at the end of a basic block and also 20682 when seeing a RTX_FRAME_RELATED_P insn. 20683 206842009-06-01 Steve Ellcey <sje@cup.hp.com> 20685 20686 * ia64.md (floatdirf2, fix_truncrfdi, floatunsdirf, 20687 fixuns_truncrfdi2): New. 20688 (fix_truncxfdi2_alts, fixuns_truncxfdi2_alts, 20689 *nmaddsf4_alts, *nmadddf4_alts, *nmadddf4_truncsf_alts, 20690 *mulxf3_alts, *mulxf3_truncsf_alts, *mulxf3_truncdf_alts, 20691 *maddxf4_alts, *maddxf4_alts_truncsf, *maddxf4_alts_truncdf, 20692 *nmaddxf4_alts, *nmaddxf4_truncsf_alts, *nmaddxf4_truncdf_alts, 20693 *recip_approx): Remove. 20694 (divsi3 modsi3, udivsi3, umodsi3, divsi3_internal, divdi3, 20695 moddi3, udivdi3, umoddi3, divdi3_internal_lat, divdi3_internal_thr, 20696 divsf3, sqrtsf2, divdf3, sqrtdf2, divxf3, sqrtxf2): Modify and 20697 move to div.md. 20698 * div.md (fix_truncrfdi2_alts, fixuns_truncrfdi2_alt, 20699 setf_exp_rf): New. 20700 207012009-06-01 Ian Lance Taylor <iant@google.com> 20702 20703 * attribs.c (register_attribute): Use CONST_CAST. 20704 * collect2.c (main): Use CONST_CAST2. 20705 (scan_prog_file): Likewise. 20706 * gcc.c (process_command, main): Likewise. 20707 * toplev.c (toplev_main): Likewise. 20708 20709 * c-typeck.c (handle_warn_cast_qual): New static function, 20710 partially broken out of build_c_cast. 20711 (build_c_cast): Call handle_warn_cast_qual. 20712 * doc/invoke.texi (Warning Options): Document new effect of 20713 -Wcast-qual. 20714 207152009-06-01 Aldy Hernandez <aldyh@redhat.com> 20716 20717 * diagnostic.c (diagnostic_build_prefix): Always print columns. 20718 (diagnostic_report_current_module): Print columns. 20719 * common.opt (flag_show_column): Enable by default. 20720 207212009-06-01 Luis Machado <luisgpm@br.ibm.com> 20722 20723 * alias.c (find_base_term): Check for NULL term before returning. 20724 207252009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> 20726 20727 Revert due to PR40320: 20728 2009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> 20729 * calls.c (emit_library_call_value_1): Don't force_operand for move 20730 and push insns. 20731 207322009-06-01 Olivier Hainque <hainque@adacore.com> 20733 Eric Botcazou <ebotcazou@adacore.com> 20734 20735 * tree.h (CONSTRUCTOR_BITFIELD_P): True if NODE, a FIELD_DECL, is 20736 to be processed as a bitfield for constructor output purposes. 20737 * output.h (initializer_constant_valid_for_bitfield_p): Declare 20738 new function. 20739 * varasm.c (oc_local_state): New type, output_constructor 20740 local state to support communication with helpers. 20741 (oc_outer_state): New type, output_constructor outer state of 20742 relevance in recursive calls. 20743 (output_constructor_array_range): New output_constructor helper, 20744 extracted code for an array range element. 20745 (output_constructor_regular_field): New output_constructor helper, 20746 extracted code for an element that is not a bitfield. 20747 (output_constructor_bitfield): New output_constructor helper, 20748 extracted code for a bitfield element. Accept an OUTER state 20749 argument for recursive processing. Recurse on record or array 20750 CONSTRUCTOR values, possibly past noop conversions. 20751 (initializer_constant_valid_for_bitfield_p): New predicate. Whether 20752 VALUE is a valid constant-valued expression for use in a static 20753 bit-field initializer. 20754 (output_constructor): Rework to use helpers. Accept and honor an 20755 OUTER state argument for recursive calls. Return total size. Be 20756 prepared for nested constructors initializing bitfields. 20757 (output_constant): Feed OUTER in calls to output_constructor. 20758 207592009-06-01 Maxim Kuvyrkov <maxim@codesourcery.com> 20760 20761 * calls.c (emit_library_call_value_1): Don't force_operand for move 20762 and push insns. 20763 207642009-06-01 Nick Clifton <nickc@redhat.com> 20765 20766 * doc/invoke.texi (IA-64 Options): Fix typo. 20767 207682009-06-01 Ira Rosen <irar@il.ibm.com> 20769 20770 PR tree-optimization/39129 20771 * tree-vect-loop-manip.c (conservative_cost_threshold): Change the 20772 printed message. 20773 (vect_do_peeling_for_loop_bound): Use 20774 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and 20775 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. 20776 (vect_loop_versioning): Likewise. 20777 (vect_create_cond_for_alias_checks): Fix indentation. 20778 * tree-vectorizer.h (struct _loop_vec_info): Fix indentation of the 20779 macros. 20780 (LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT): Define. 20781 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Likewise. 20782 * tree-vect-loop.c (vect_analyze_loop_form): Change "too many BBs" to 20783 "control flow in loop". 20784 (vect_estimate_min_profitable_iters): Use 20785 LOOP_REQUIRES_VERSIONING_FOR_ALIGNMENT and 20786 LOOP_REQUIRES_VERSIONING_FOR_ALIAS macros. 20787 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 20788 (vect_create_data_ref_ptr): Don't mention array dimension in printing. 20789 * tree-vect-stmts.c (vectorizable_store): Replace the check that the 20790 statement belongs to a group of strided accesses with the exact code 20791 check. 20792 (vectorizable_load): Likewise. 20793 * tree-vect-slp.c (vect_analyze_slp_instance): Spell out "basic block". 20794 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise. 20795 207962009-06-01 Gerald Pfeifer <gerald@pfeifer.com> 20797 20798 * config/freebsd-stdint.h: New file. 20799 * config.gcc (*-*-freebsd): Set use_gcc_stdint=wrap. 20800 Add freebsd-stdint.h to tm_file. 20801 208022009-06-01 Richard Earnshaw <rearnsha@arm.com> 20803 20804 * arm/thumb2.md (thumb2_zero_extendhidi2): New insn and split. 20805 (thumb2_extendhidi2): Likewise. 20806 208072009-05-31 Ian Lance Taylor <iant@google.com> 20808 20809 * regstat.c (regstat_n_sets_and_refs): Remove duplicate definition. 20810 208112009-05-31 Ian Lance Taylor <iant@google.com> 20812 20813 * Makefile.in (except.o): Depend upon gt-except.h, not gt-$(EXCEPT_H). 20814 (ipa-cp.o): Depend upon $(FIBHEAP_H) and $(PARAMS_H). 20815 (ipa-reference.o): Depend upon gt-ipa-reference.h. 20816 208172009-05-31 Jason Merrill <jason@redhat.com> 20818 20819 * tree-pretty-print.c (print_call_name): Take the callee, not the 20820 call itself. Make non-static. Use dump_function_name for functions. 20821 (dump_generic_node): Adjust. 20822 * diagnostic.h: Declare print_call_name. 20823 * gimple-pretty-print.c (dump_gimple_call): Use it. 20824 208252009-05-31 Kaz Kojima <kkojima@gcc.gnu.org> 20826 20827 * config/sh/sh.md (ashldi3_std): New define_expand. 20828 (ashldi3): Use it. 20829 208302009-05-31 Kaz Kojima <kkojima@gcc.gnu.org> 20831 20832 PR target/40313 20833 * config/sh/sh.c: Include debug.h. 20834 (sh_expand_epilogue): Emit a blockage insn before the frame 20835 pointer adjustment also when dwarf2out_do_frame returns true. 20836 208372009-05-31 Richard Earnshaw <rearnsha@arm.com> 20838 20839 * arm/thumb2.md (thumb2_extendsidi2): Add a split sub-pattern. 20840 (thumb2_extendqidi2): New pattern. 20841 208422009-05-31 Ira Rosen <irar@il.ibm.com> 20843 20844 * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1): Don't 20845 mark phis for renaming. 20846 * tree-vectorizer.c (vect_memsyms_to_rename): Remove. 20847 (vectorize_loops): Don't allocate and free vect_memsyms_to_rename. 20848 Call mark_sym_for_renaming. 20849 * tree-vectorizer.h (vect_memsyms_to_rename): Remove. 20850 * tree-vect-loop.c (vect_transform_loop): Remove 20851 vect_memsyms_to_rename initialization and a call to 20852 mark_set_for_renaming. 20853 208542009-05-31 Jakub Jelinek <jakub@redhat.com> 20855 20856 PR middle-end/40304 20857 * config/i386/i386.c (pro_epilogue_adjust_stack): Mark insns 20858 frame related even if !set_cfa && style < 0. 20859 208602009-05-30 Kai Tietz <kai.tietz@onevision.com> 20861 20862 * config/i386/mingw-tls.c: New file. 20863 * config/i386/t-gthr-win32 (LIB2FUNCS_EXTRA): Add mingw-tls.c file. 20864 * gthr-win32.h (MINGW32_SUPPORTS_MT_EH): Define it for targets 20865 defining _WIN32 but not __CYGWIN__. 20866 208672009-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 20868 20869 * configure.ac: Add MPC support. 20870 20871 * config.in, configure: Regenerate. 20872 208732009-05-29 Richard Henderson <rth@redhat.com> 20874 20875 * cfgcleanup.c (try_crossjump_to_edge): Only skip past 20876 NOTE_INSN_BASIC_BLOCK. 20877 * cfglayout.c (duplicate_insn_chain): Copy epilogue insn marks. 20878 Duplicate NOTE_INSN_EPILOGUE_BEG notes. 20879 * cfgrtl.c (can_delete_note_p): Allow NOTE_INSN_EPILOGUE_BEG 20880 to be deleted. 20881 * dwarf2out.c (struct cfa_loc): Change indirect field to bitfield, 20882 add in_use field. 20883 (add_cfi): Disable check redefining cfa away from drap. 20884 (lookup_cfa_1): Add remember argument; handle remember/restore. 20885 (lookup_cfa): Pass remember argument. 20886 (cfa_remember): New. 20887 (compute_barrier_args_size_1): Remove sibcall check. 20888 (dwarf2out_frame_debug_def_cfa): New. 20889 (dwarf2out_frame_debug_adjust_cfa): New. 20890 (dwarf2out_frame_debug_cfa_offset): New. 20891 (dwarf2out_frame_debug_cfa_register): New. 20892 (dwarf2out_frame_debug_cfa_restore): New. 20893 (dwarf2out_frame_debug): Handle REG_CFA_* notes. 20894 (dwarf2out_begin_epilogue): New. 20895 (dwarf2out_frame_debug_restore_state): New. 20896 (dw_cfi_oprnd1_desc): Handle DW_CFA_remember_state, 20897 DW_CFA_restore_state. 20898 (output_cfi_directive): Likewise. 20899 (convert_cfa_to_fb_loc_list): Likewise. 20900 (dw_cfi_oprnd1_desc): Handle DW_CFA_restore. 20901 * dwarf2out.h: Update. 20902 * emit-rtl.c (try_split): Don't split RTX_FRAME_RELATED_P. 20903 (copy_insn_1): Early out for null. 20904 * final.c (final_scan_insn): Call dwarf2out_begin_epilogue 20905 and dwarf2out_frame_debug_restore_state. 20906 * function.c (prologue, epilogue, sibcall_epilogue): Remove. 20907 (prologue_insn_hash, epilogue_insn_hash): New. 20908 (free_after_compilation): Adjust freeing accordingly. 20909 (record_insns): Create hash table if needed; push insns into 20910 hash instead of array. 20911 (maybe_copy_epilogue_insn): New. 20912 (contains): Search hash table instead of array. 20913 (sibcall_epilogue_contains): Remove. 20914 (thread_prologue_and_epilogue_insns): Split eh_return insns 20915 and mark them as epilogues. 20916 (reposition_prologue_and_epilogue_notes): Rewrite epilogue 20917 scanning in terms of basic blocks. 20918 * insn-notes.def (CFA_RESTORE_STATE): New. 20919 * jump.c (returnjump_p_1): Accept EH_RETURN. 20920 (eh_returnjump_p_1, eh_returnjump_p): New. 20921 * reg-notes.def (CFA_DEF_CFA, CFA_ADJUST_CFA, CFA_OFFSET, 20922 CFA_REGISTER, CFA_RESTORE): New. 20923 * rtl.def (EH_RETURN): New. 20924 * rtl.h (eh_returnjump_p, maybe_copy_epilogue_insn): Declare. 20925 20926 * config/bfin/bfin.md (UNSPEC_VOLATILE_EH_RETURN): Remove. 20927 (eh_return_internal): Use eh_return rtx; split w/ epilogue. 20928 20929 * config/i386/i386.c (gen_push): Update cfa state. 20930 (pro_epilogue_adjust_stack): Add set_cfa argument. When true, 20931 add a CFA_ADJUST_CFA note. 20932 (ix86_dwarf_handle_frame_unspec): Remove. 20933 (ix86_expand_prologue): Update cfa state. 20934 (ix86_emit_restore_reg_using_pop): New. 20935 (ix86_emit_restore_regs_using_pop): New. 20936 (ix86_emit_leave): New. 20937 (ix86_emit_restore_regs_using_mov): Add CFA_RESTORE notes. 20938 (ix86_expand_epilogue): Add notes for unwinding the epilogue. 20939 * config/i386/i386.h (struct machine_cfa_state): New. 20940 (ix86_cfa_state): New. 20941 * config/i386/i386.md (UNSPEC_EH_RETURN): Remove. 20942 (eh_return_internal): Merge from eh_return_<mode>, 20943 use eh_return rtx, split w/ epilogue. 20944 209452009-05-29 Ian Lance Taylor <iant@google.com> 20946 20947 * builtins.c (validate_gimple_arglist): Don't use va_arg with 20948 enum type. 20949 * calls.c (emit_library_call_value_1): Likewise. 20950 20951 * c-typeck.c (c_build_va_arg): New function. 20952 * c-tree.h (c_build_va_arg): Declare. 20953 * c-parser.c (c_parser_postfix_expression): Call c_build_va_arg 20954 instead of build_va_arg. 20955 209562009-05-29 Eric Botcazou <ebotcazou@adacore.com> 20957 20958 * tree-ssa-loop-ivopts.c (strip_offset_1) <MULT_EXPR>: New case. 20959 (force_expr_to_var_cost) <NEGATE_EXPR>: Likewise. 20960 (ptr_difference_cost): Use affine combinations to compute it. 20961 (difference_cost): Likewise. 20962 (get_computation_cost_at): Compute more accurate cost for addresses 20963 if the ratio is a multiplier allowed in addresses. 20964 For non-addresses, consider that an additional offset or symbol is 20965 added only once. 20966 209672009-05-29 Jakub Jelinek <jakub@redhat.com> 20968 20969 * config/i386/i386.c (ix86_decompose_address): Avoid useless 20970 0 displacement. Add 0 displacement if base is %[er]bp or %r13. 20971 20972 * config/i386/i386.md (prefix_data16, prefix_rep): Set to 0 for 20973 TYPE_SSE{MULADD,4ARG,IADD1,CVT1} by default. 20974 (prefix_rex): For UNIT_MMX don't imply the prefix by default 20975 if MODE_DI. 20976 (prefix_extra): Default to 2 for TYPE_SSE{MULADD,4ARG} and 20977 to 1 for TYPE_SSE{IADD1,CVT1}. 20978 (prefix_vex_imm8): Removed. 20979 (length_vex): Only pass 1 as second argument to 20980 ix86_attr_length_vex_default if prefix_extra is 0. 20981 (modrm): For TYPE_INCDEC only set to 0 if not TARGET_64BIT. 20982 (length): For prefix vex computation use length_immediate 20983 attribute instead of prefix_vex_imm8. 20984 (cmpqi_ext_3_insn, cmpqi_ext_3_insn_rex64, 20985 addqi_ext_1, addqi_ext_1_rex64, *testqi_ext_0, andqi_ext_0, 20986 *andqi_ext_0_cc, *iorqi_ext_0, *xorqi_ext_0, *xorqi_cc_ext_1, 20987 *xorqi_cc_ext_1_rex64): Override modrm attribute to 1. 20988 (extendsidi2_rex64, extendhidi2, extendqidi2, extendhisi2, 20989 *extendhisi2_zext, extendqihi2, extendqisi2, *extendqisi2_zext): Emit 20990 a space in between the operands. 20991 (*anddi_1_rex64, *andsi_1): Likewise. Override prefix_rex to 1 20992 if one operand is 0xff and the other one si, di, bp or sp. 20993 (*andhi_1): Override prefix_rex to 1 if one operand is 0xff and the 20994 other one si, di, bp or sp. 20995 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Add mode attribute. 20996 (*ffssi_1, *ffsdi_1, ctzsi2, ctzdi2): Add 20997 type and mode attributes. 20998 (*bsr, *bsr_rex64, *bsrhi): Add type attribute. 20999 (*cmpfp_i_mixed, *cmpfp_iu_mixed): For TYPE_SSECOMI, clear 21000 prefix_rep attribute and set prefix_data16 attribute iff MODE_DF. 21001 (*cmpfp_i_sse, *cmpfp_iu_sse): Clear prefix_rep attribute and set 21002 prefix_data16 attribute iff MODE_DF. 21003 (*movsi_1): For TYPE_SSEMOV MODE_SI set prefix_data16 attribute. 21004 (fix_trunc<mode>di_sse): Set prefix_rex attribute. 21005 (*adddi_4_rex64, *addsi_4): Use const128_operand instead of 21006 constm128_operand in length_immediate computation. 21007 (*addhi_4): Likewise. Fix mode attribute to MODE_HI. 21008 (anddi_1_rex64): Use movzbl/movzwl instead of movzbq/movzwq. 21009 (*avx_ashlti3, sse2_ashlti3, *avx_lshrti3, sse2_lshrti3): Set 21010 length_immediate attribute to 1. 21011 (x86_fnstsw_1, x86_fnstcw_1, x86_fldcw_1): Fix length attribute. 21012 (*movdi_1_rex64): Override prefix_rex or prefix_data16 attributes 21013 for certain alternatives. 21014 (*movdf_nointeger, *movdf_integer_rex64, *movdf_integer): Override 21015 prefix_data16 attribute if MODE_V1DF. 21016 (*avx_setcc<mode>, *sse_setcc<mode>, *sse5_setcc<mode>): Set 21017 length_immediate to 1. 21018 (set_got_rex64, set_rip_rex64): Remove length attribute, set 21019 length_address to 4, set mode attribute to MODE_DI. 21020 (set_got_offset_rex64): Likewise. Set length_immediate to 0. 21021 (fxam<mode>2_i387): Set length attribute to 4. 21022 (*prefetch_sse, *prefetch_sse_rex, *prefetch_3dnow, 21023 *prefetch_3dnow_rex): Override length_address attribute. 21024 (sse4_2_crc32<mode>): Override prefix_data16 and prefix_rex 21025 attributes. 21026 * config/i386/predicates.md (ext_QIreg_nomode_operand): New predicate. 21027 (constm128_operand): Removed. 21028 * config/i386/i386.c (memory_address_length): For 21029 disp && !index && !base in 64-bit mode account for SIB byte if 21030 print_operand_address can't optimize disp32 into disp32(%rip) 21031 and UNSPEC doesn't imply (%rip) addressing. Add 1 to length 21032 for fs: or gs: segment. 21033 (ix86_attr_length_immediate_default): When checking if shortform 21034 is possible, truncate immediate to the length of the non-shortened 21035 immediate. 21036 (ix86_attr_length_address_default): Ignore MEM_P operands 21037 with X constraint. 21038 (ix86_attr_length_vex_default): Only check for DImode on 21039 GENERAL_REG_P operands. 21040 * config/i386/sse.md (<sse>_comi, <sse>_ucomi): Clear 21041 prefix_rep attribute, set prefix_data16 attribute iff MODE_DF. 21042 (sse_cvttps2pi): Clear prefix_rep attribute. 21043 (sse2_cvttps2dq, *sse2_cvtpd2dq, sse2_cvtps2pd): Clear prefix_data16 21044 attribute. 21045 (*sse2_cvttpd2dq): Don't clear prefix_rep attribute. 21046 (*avx_ashr<mode>3, ashr<mode>3, *avx_lshr<mode>3, lshr<mode>3, 21047 *avx_ashl<mode>3, ashl<mode>3): Set length_immediate attribute to 1 21048 iff operand 2 is const_int_operand. 21049 (*vec_dupv4si, avx_shufpd256_1, *avx_shufpd_<mode>, 21050 sse2_shufpd_<mode>): Set length_immediate attribute to 1. 21051 (sse2_pshufd_1): Likewise. Set prefix attribute to maybe_vex 21052 instead of vex. 21053 (sse2_pshuflw_1, sse2_pshufhw_1): Set length_immediate to 1 and clear 21054 prefix_data16. 21055 (sse2_unpckhpd, sse2_unpcklpd, sse2_storehpd, *vec_concatv2df): Set 21056 prefix_data16 attribute for movlpd and movhpd instructions. 21057 (sse2_loadhpd, sse2_loadlpd, sse2_movsd): Likewise. Override 21058 length_immediate for shufpd instruction. 21059 (sse2_movntsi, sse3_lddqu): Clear prefix_data16 attribute. 21060 (avx_cmpp<avxmodesuffixf2c><mode>3, 21061 avx_cmps<ssemodesuffixf2c><mode>3, *avx_maskcmp<mode>3, 21062 <sse>_maskcmp<mode>3, <sse>_vmmaskcmp<mode>3, 21063 avx_shufps256_1, *avx_shufps_<mode>, sse_shufps_<mode>, 21064 *vec_dupv4sf_avx, *vec_dupv4sf): Set length_immediate attribute to 1. 21065 (*avx_cvtsi2ssq, *avx_cvtsi2sdq): Set length_vex attribute to 4. 21066 (sse_cvtsi2ssq, sse2_cvtsi2sdq): Set prefix_rex attribute to 1. 21067 (sse2_cvtpi2pd, sse_loadlps, sse2_storelpd): Override 21068 prefix_data16 attribute for the first alternative to 1. 21069 (*avx_loadlps): Override length_immediate for the first alternative. 21070 (*vec_concatv2sf_avx): Override length_immediate and prefix_extra 21071 attributes for second alternative. 21072 (*vec_concatv2sf_sse4_1): Override length_immediate and 21073 prefix_data16 attributes for second alternative. 21074 (*vec_setv4sf_avx, *avx_insertps, vec_extract_lo_<mode>, 21075 vec_extract_hi_<mode>, vec_extract_lo_v16hi, 21076 vec_extract_hi_v16hi, vec_extract_lo_v32qi, 21077 vec_extract_hi_v32qi): Set prefix_extra and length_immediate to 1. 21078 (*vec_setv4sf_sse4_1, sse4_1_insertps, *sse4_1_extractps): Set 21079 prefix_data16 and length_immediate to 1. 21080 (*avx_mulv2siv2di3, *avx_mulv4si3, sse4_2_gtv2di3): Set prefix_extra 21081 to 1. 21082 (*avx_<code><mode>3, *avx_eq<mode>3, *avx_gt<mode>3): Set 21083 prefix_extra attribute for variants that don't have 0f prefix alone. 21084 (*avx_pinsr<ssevecsize>): Likewise. Set length_immediate to 1. 21085 (*sse4_1_pinsrb, *sse2_pinsrw, *sse4_1_pinsrd, *sse4_1_pextrb, 21086 *sse4_1_pextrb_memory, *sse2_pextrw, *sse4_1_pextrw_memory, 21087 *sse4_1_pextrd): Set length_immediate to 1. 21088 (*sse4_1_pinsrd): Likewise. Set prefix_extra to 1. 21089 (*sse4_1_pinsrq, *sse4_1_pextrq): Set prefix_rex and length_immediate 21090 to 1. 21091 (*vec_extractv2di_1_rex64_avx, *vec_extractv2di_1_rex64, 21092 *vec_extractv2di_1_avx, *vec_extractv2di_1_sse2): Override 21093 length_immediate to 1 for second alternative. 21094 (*vec_concatv2si_avx, *vec_concatv2di_rex64_avx): Override 21095 prefix_extra and length_immediate attributes for the first 21096 alternative. 21097 (vec_concatv2si_sse4_1): Override length_immediate to 1 for the 21098 first alternative. 21099 (*vec_concatv2di_rex64_sse4_1): Likewise. Override prefix_rex 21100 to 1 for the first and third alternative. 21101 (*vec_concatv2di_rex64_sse): Override prefix_rex to 1 for the second 21102 alternative. 21103 (*sse2_maskmovdqu, *sse2_maskmovdqu_rex64): Override length_vex 21104 attribute. 21105 (*sse_sfence, sse2_mfence, sse2_lfence): Override length_address 21106 attribute to 0. 21107 (*avx_phaddwv8hi3, *avx_phadddv4si3, *avx_phaddswv8hi3, 21108 *avx_phsubwv8hi3, *avx_phsubdv4si3, *avx_phsubswv8hi, 21109 *avx_pmaddubsw128, *avx_pmulhrswv8hi3, *avx_pshufbv16qi3, 21110 *avx_psign<mode>3): Set prefix_extra attribute to 1. 21111 (ssse3_phaddwv4hi3, ssse3_phadddv2si3, ssse3_phaddswv4hi3, 21112 ssse3_phsubwv4hi3, ssse3_phsubdv2si3, ssse3_phsubswv4hi3, 21113 ssse3_pmaddubsw, *ssse3_pmulhrswv4hi, ssse3_pshufbv8qi3, 21114 ssse3_psign<mode>3): Override prefix_rex attribute. 21115 (*avx_palignrti): Override prefix_extra and length_immediate to 1. 21116 (ssse3_palignrti): Override length_immediate to 1. 21117 (ssse3_palignrdi): Override length_immediate to 1, override 21118 prefix_rex attribute. 21119 (abs<mode>2): Override prefix_rep to 0, override prefix_rex attribute. 21120 (sse4a_extrqi): Override length_immediate to 2. 21121 (sse4a_insertqi): Likewise. Override prefix_data16 to 0. 21122 (sse4a_insertq): Override prefix_data16 to 0. 21123 (avx_blendp<avxmodesuffixf2c><avxmodesuffix>, 21124 avx_blendvp<avxmodesuffixf2c><avxmodesuffix>, 21125 avx_dpp<avxmodesuffixf2c><avxmodesuffix>, *avx_mpsadbw, 21126 *avx_pblendvb, *avx_pblendw, avx_roundp<avxmodesuffixf2c>256, 21127 avx_rounds<avxmodesuffixf2c>256): Override prefix_extra 21128 and length_immediate to 1. 21129 (sse4_1_blendp<ssemodesuffixf2c>, sse4_1_dpp<ssemodesuffixf2c>, 21130 sse4_2_pcmpestr, sse4_2_pcmpestri, sse4_2_pcmpestrm, 21131 sse4_2_pcmpestr_cconly, sse4_2_pcmpistr, sse4_2_pcmpistri, 21132 sse4_2_pcmpistrm, sse4_2_pcmpistr_cconly): Override prefix_data16 21133 and length_immediate to 1. 21134 (sse4_1_blendvp<ssemodesuffixf2c>): Override prefix_data16 to 1. 21135 (sse4_1_mpsadbw, sse4_1_pblendw): Override length_immediate to 1. 21136 (*avx_packusdw, avx_vtestp<avxmodesuffixf2c><avxmodesuffix>, 21137 avx_ptest256): Override prefix_extra to 1. 21138 (sse4_1_roundp<ssemodesuffixf2c>, sse4_1_rounds<ssemodesuffixf2c>): 21139 Override prefix_data16 and length_immediate to 1. 21140 (sse5_pperm_zero_v16qi_v8hi, sse5_pperm_sign_v16qi_v8hi, 21141 sse5_pperm_zero_v8hi_v4si, sse5_pperm_sign_v8hi_v4si, 21142 sse5_pperm_zero_v4si_v2di, sse5_pperm_sign_v4si_v2di, 21143 sse5_vrotl<mode>3, sse5_ashl<mode>3, sse5_lshl<mode>3): Override 21144 prefix_data16 to 0 and prefix_extra to 2. 21145 (sse5_rotl<mode>3, sse5_rotr<mode>3): Override length_immediate to 1. 21146 (sse5_frcz<mode>2, sse5_vmfrcz<mode>2): Don't override prefix_extra 21147 attribute. 21148 (*sse5_vmmaskcmp<mode>3, sse5_com_tf<mode>3, 21149 sse5_maskcmp<mode>3, sse5_maskcmp<mode>3, sse5_maskcmp_uns<mode>3): 21150 Override prefix_data16 and prefix_rep to 0, length_immediate to 1 21151 and prefix_extra to 2. 21152 (sse5_maskcmp_uns2<mode>3, sse5_pcom_tf<mode>3): Override 21153 prefix_data16 to 0, length_immediate to 1 and prefix_extra to 2. 21154 (*avx_aesenc, *avx_aesenclast, *avx_aesdec, *avx_aesdeclast, 21155 avx_vpermilvar<mode>3, 21156 avx_vbroadcasts<avxmodesuffixf2c><avxmodesuffix>, 21157 avx_vbroadcastss256, avx_vbroadcastf128_p<avxmodesuffixf2c>256, 21158 avx_maskloadp<avxmodesuffixf2c><avxmodesuffix>, 21159 avx_maskstorep<avxmodesuffixf2c><avxmodesuffix>): 21160 Override prefix_extra to 1. 21161 (aeskeygenassist, pclmulqdq): Override length_immediate to 1. 21162 (*vpclmulqdq, avx_vpermil<mode>, avx_vperm2f128<mode>3, 21163 vec_set_lo_<mode>, vec_set_hi_<mode>, vec_set_lo_v16hi, 21164 vec_set_hi_v16hi, vec_set_lo_v32qi, vec_set_hi_v32qi): Override 21165 prefix_extra and length_immediate to 1. 21166 (*avx_vzeroall, avx_vzeroupper, avx_vzeroupper_rex64): Override 21167 modrm to 0. 21168 (*vec_concat<mode>_avx): Override prefix_extra and length_immediate 21169 to 1 for the first alternative. 21170 * config/i386/mmx.md (*mov<mode>_internal_rex64): Override 21171 prefix_rep, prefix_data16 and/or prefix_rex attributes in certain 21172 cases. 21173 (*mov<mode>_internal_avx, *movv2sf_internal_rex64, 21174 *movv2sf_internal_avx, *movv2sf_internal): Override 21175 prefix_rep attribute for certain alternatives. 21176 (*mov<mode>_internal): Override prefix_rep or prefix_data16 21177 attributes for certain alternatives. 21178 (*movv2sf_internal_rex64_avx): Override prefix_rep and length_vex 21179 attributes for certain alternatives. 21180 (*mmx_addv2sf3, *mmx_subv2sf3, *mmx_mulv2sf3, 21181 *mmx_<code>v2sf3_finite, *mmx_<code>v2sf3, mmx_rcpv2sf2, 21182 mmx_rcpit1v2sf3, mmx_rcpit2v2sf3, mmx_rsqrtv2sf2, mmx_rsqit1v2sf3, 21183 mmx_haddv2sf3, mmx_hsubv2sf3, mmx_addsubv2sf3, 21184 *mmx_eqv2sf3, mmx_gtv2sf3, mmx_gev2sf3, mmx_pf2id, mmx_pf2iw, 21185 mmx_pi2fw, mmx_floatv2si2, mmx_pswapdv2sf2, *mmx_pmulhrwv4hi3, 21186 mmx_pswapdv2si2): Set prefix_extra attribute to 1. 21187 (mmx_ashr<mode>3, mmx_lshr<mode>3, mmx_ashl<mode>3): Set 21188 length_immediate to 1 if operand 2 is const_int_operand. 21189 (*mmx_pinsrw, mmx_pextrw, mmx_pshufw_1, *vec_dupv4hi, 21190 *vec_extractv2si_1): Set length_immediate attribute to 1. 21191 (*mmx_uavgv8qi3): Override prefix_extra attribute to 1 if 21192 using old 3DNOW insn rather than SSE/3DNOW_A. 21193 (mmx_emms, mmx_femms): Clear modrm attribute. 21194 211952009-05-29 Martin Jambor <mjambor@suse.cz> 21196 21197 * tree-sra.c: New implementation of SRA. 21198 21199 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): Removed. 21200 (PARAM_SRA_MAX_STRUCTURE_COUNT): Removed. 21201 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Removed. 21202 * params.h (SRA_MAX_STRUCTURE_SIZE): Removed. 21203 (SRA_MAX_STRUCTURE_COUNT): Removed. 21204 (SRA_FIELD_STRUCTURE_RATIO): Removed. 21205 * doc/invoke.texi (sra-max-structure-size): Removed. 21206 (sra-field-structure-ratio): Removed. 21207 212082009-05-29 Jakub Jelinek <jakub@redhat.com> 21209 21210 PR middle-end/40291 21211 * builtins.c (expand_builtin_memcmp): Convert len to sizetype 21212 before expansion. 21213 212142009-05-29 Andrey Belevantsev <abel@ispras.ru> 21215 21216 PR rtl-optimization/40101 21217 * sel-sched-ir.c (get_seqno_by_preds): Allow returning negative 21218 seqno. Adjust comment. 21219 * sel-sched.c (find_seqno_for_bookkeeping): Assert that when 21220 inserting bookkeeping before a jump, the jump is not scheduled. 21221 When no positive seqno found, provide a value. Add comment. 21222 212232009-05-29 Richard Guenther <rguenther@suse.de> 21224 21225 * tree-ssa-alias.c (nonaliasing_component_refs_p): Remove 21226 short-cutting on the first component. 21227 212282009-05-29 Jakub Jelinek <jakub@redhat.com> 21229 21230 PR middle-end/39958 21231 * omp-low.c (scan_omp_1_op): Call remap_type on TREE_TYPE 21232 for trees other than decls/types. 21233 212342009-05-29 Richard Guenther <rguenther@suse.de> 21235 21236 * tree-ssa-operands.c (get_expr_operands): Do not handle 21237 INDIRECT_REFs in the handled-component case. Remove 21238 unused get_ref_base_and_extent case. 21239 * tree-dfa.c (get_ref_base_and_extent): Avoid calling 21240 tree_low_cst and host_integerp where possible. 21241 * tree-ssa-structalias.c (equiv_class_label_eq): Check hash 21242 codes for equivalence. 21243 * dce.c (find_call_stack_args): Avoid redundant bitmap queries. 21244 212452009-05-29 David Billinghurst <billingd@gcc.gnu.org> 21246 21247 * config.gcc: Add i386/t-fprules-softfp and soft-fp/t-softfp 21248 to tmake_file for i[34567]86-*-cygwin*. 21249 212502009-05-29 Jakub Jelinek <jakub@redhat.com> 21251 21252 PR target/40017 21253 * config/rs6000/rs6000-c.c (_Bool_keyword): New variable. 21254 (altivec_categorize_keyword, init_vector_keywords, 21255 rs6000_cpu_cpp_builtins): Define _Bool as conditional macro 21256 similar to bool. 21257 212582009-05-29 Kai Tietz <kai.tietz@onevision.com> 21259 21260 * tree.c (handle_dll_attribute): Check if node is 21261 of kind FUNCTION_DECL for DECL_DECLARED_INLINE_P check. 21262 212632009-05-29 Richard Earnshaw <rearnsha@arm.com> 21264 21265 * config/arm/thumb2.md (thumb2_zero_extendsidi2): Add a split 21266 component. 21267 (thumb2_zero_extendqidi2): Likewise. 21268 212692009-05-28 Kaz Kojima <kkojima@gcc.gnu.org> 21270 21271 * config/sh/sh.c (sh_expand_t_scc): Use gen_xorsi3_movrt 21272 instead of gen_movrt. 21273 * config/sh/sh.md (movrt): Remove. 21274 212752009-05-28 Steve Ellcey <sje@cup.hp.com> 21276 21277 * doc/invoke.texi (IA-64 Options): 21278 Add -msdata, -mfused-madd, -mno-inline-float-divide, 21279 -mno-inline-int-divide, -mno-inline-sqrt, -msched-spec-ldc, 21280 -msched-spec-control-ldc, -msched-prefer-non-data-spec-insns, 21281 -msched-prefer-non-control-spec-insns, 21282 -msched-stop-bits-after-every-cycle, 21283 -msched-count-spec-in-critical-path, 21284 -msel-sched-dont-check-control-spec, -msched-fp-mem-deps-zero-cost 21285 -msched-max-memory-insns-hard-limit, -msched-max-memory-insns. 21286 Remove -mt, -pthread, -msched-ldc, -mno-sched-control-ldc, 21287 and -msched-spec-verbose. 21288 212892009-05-28 Joseph Myers <joseph@codesourcery.com> 21290 21291 * config/arm/lib1funcs.asm (__clear_cache): Define if L_clear_cache. 21292 * config/arm/linux-eabi.h (CLEAR_INSN_CACHE): Define to give an 21293 error if used. 21294 * config/arm/t-linux-eabi (LIB1ASMFUNCS): Add _clear_cache. 21295 212962009-05-28 Richard Guenther <rguenther@suse.de> 21297 21298 * tree-ssa-alias.c (ao_ref_init): New function. 21299 (ao_ref_base): Likewise. 21300 (ao_ref_base_alias_set): Likewise. 21301 (ao_ref_alias_set): Likewise. 21302 (refs_may_alias_p_1): Change signature. 21303 (refs_may_alias_p): Adjust. 21304 (refs_anti_dependent_p): Likewise. 21305 (refs_output_dependent_p): Likewise. 21306 (call_may_clobber_ref_p_1): Change signature. 21307 (call_may_clobber_ref_p): Adjust. 21308 (stmt_may_clobber_ref_p_1): New function split out from ... 21309 (stmt_may_clobber_ref_p): ... here. 21310 (maybe_skip_until): Adjust signature. 21311 (get_continuation_for_phi): Likewise. 21312 (walk_non_aliased_vuses): Likewise. 21313 * tree-ssa-alias.h (struct ao_ref_s): New structure type. 21314 (ao_ref_init): Declare. 21315 (ao_ref_base): Likewise. 21316 (ao_ref_alias_set): Likewise. 21317 (stmt_may_clobber_ref_p_1): Likewise. 21318 (walk_non_aliased_vuses): Adjust. 21319 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): New function. 21320 (get_ref_from_reference_ops): remove. 21321 (vn_reference_lookup_2): Adjust signature. 21322 (vn_reference_lookup_3): Do not re-build trees. Handle unions. 21323 (vn_reference_lookup_pieces): Adjust signature, do not re-build trees. 21324 (vn_reference_lookup): Adjust. 21325 (vn_reference_insert): Likewise. 21326 (vn_reference_insert_pieces): Adjust signature. 21327 (visit_reference_op_call): Adjust. 21328 * tree-ssa-pre.c (get_expr_type): Simplify. 21329 (phi_translate_1): Adjust. 21330 (compute_avail): Likewise. 21331 (translate_vuse_through_block): Do not re-build trees. 21332 (value_dies_in_block_x): Likewise. 21333 * tree-ssa-sccvn.h (struct vn_reference_s): Add type and alias-set 21334 fields. 21335 (vn_reference_lookup_pieces): Adjust declaration. 21336 (vn_reference_insert_pieces): Likewise. 21337 213382009-05-28 Benjamin Kosnik <bkoz@redhat.com> 21339 21340 * tree-ssa-copy.c (replace_exp_1): Move op for warning-free use 21341 with checking disabled. 21342 213432009-05-28 Dave Korn <dave.korn.cygwin@gmail.com> 21344 21345 PR target/37216 21346 21347 * configure.ac (HAVE_GAS_ALIGNED_COMM): Add autoconf test and 21348 macro definition for support of three-operand format aligned 21349 .comm directive in assembler on cygwin/pe/mingw target OS. 21350 * configure: Regenerate. 21351 * config.h: Regenerate. 21352 21353 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Use 21354 aligned form of .comm directive if -mpe-aligned-commons is in effect. 21355 * config/i386/cygming.opt (-mpe-aligned-commons): Add new option. 21356 21357 * doc/invoke.texi (-mpe-aligned-commons): Document new target option. 21358 * doc/tm.texi (ASM_OUTPUT_COMMON): Document zero size commons. 21359 213602009-05-28 Ira Rosen <irar@il.ibm.com> 21361 21362 PR tree-optimization/40254 21363 * tree-data-ref.c (dr_analyze_innermost): Take POFFSET into account 21364 in analysis of basic blocks. 21365 213662009-05-28 Adam Nemet <anemet@caviumnetworks.com> 21367 21368 PR middle-end/33699 21369 * target.h (struct gcc_target): Fix indentation. Add const_anchor. 21370 * target-def.h (TARGET_CONST_ANCHOR): New macro. 21371 (TARGET_INITIALIZER): Use it. 21372 * cse.c (CHEAPER): Move it up to the other macros. 21373 (insert): Rename this ... 21374 (insert_with_costs): ... to this. Add cost parameters. Update 21375 function comment. 21376 (insert): New function. Call insert_with_costs. 21377 (compute_const_anchors, insert_const_anchor, insert_const_anchors, 21378 find_reg_offset_for_const, try_const_anchors): New functions. 21379 (cse_insn): Call try_const_anchors. Adjust cost of src_related 21380 when using a const-anchor. Call insert_const_anchors. 21381 * config/mips/mips.c (mips_set_mips16_mode): Set targetm.const_anchor. 21382 * doc/tm.texi (Misc): Document TARGET_CONST_ANCHOR. 21383 213842009-05-28 Alexandre Oliva <aoliva@redhat.com> 21385 21386 * tree-inline.c (remap_decls): Enable nonlocalized variables 21387 when not optimizing. 21388 213892009-05-28 Alexandre Oliva <aoliva@redhat.com> 21390 21391 * tree-ssa-live.c (remove_unused_locals): Skip when not optimizing. 21392 Simplify other tests involving optimize. 21393 213942009-05-27 Tom Tromey <tromey@redhat.com> 21395 21396 * unwind-dw2.c (_Unwind_DebugHook): New function. 21397 (uw_install_context): Call _Unwind_DebugHook. 21398 213992009-05-27 Tom Tromey <tromey@redhat.com> 21400 21401 * system.h (CONST_CAST2): Use C++ const_cast when compiled as C++ 21402 214032009-05-27 Ian Lance Taylor <iant@google.com> 21404 21405 * Makefile.in (LINKER, LINKER_FLAGS): Define. 21406 (LINKER_FOR_BUILD, BUILD_LINKERFLAGS): Define. 21407 (ALL_LINKERFLAGS): Define. 21408 (xgcc$(exeext)): Change $(COMPILER) to $(LINKER). 21409 (cpp$(exeext), cc1-dummy$(exeext), cc1$(exeext)): Likewise. 21410 (collect2$(exeext), mips-tfile, mips-tdump): Likewise. 21411 (gcov$(exeext), gcov-dump$(exeext)): Likewise. 21412 (build/gen%$(build_exeext)): Change $(COMPILER_FOR_BUILD) to 21413 $(LINKER_FOR_BUILD). 21414 (build/gcov-iov$(build_exeext)): Likewise. 21415 214162009-05-27 Julian Brown <julian@codesourcery.com> 21417 21418 * gcse.c (target.h): Include. 21419 (can_assign_to_reg_without_clobbers_p): Check that the target allows 21420 copy of argument to a pseudo register. 21421 214222009-05-27 Diego Novillo <dnovillo@google.com> 21423 21424 * tree-ssa-live.c (dump_scope_block): Document arguments. 21425 (dump_scope_blocks): Document. 21426 (debug_scope_blocks): New. 21427 * tree-flow.h (debug_scope_blocks): Declare. 21428 214292009-05-21 Denis Chertykov <denisc@overta.ru> 21430 21431 * doc/contrib.texi (Contributors): Add myself to the list. 21432 214332009-05-27 Olivier Hainque <hainque@adacore.com> 21434 21435 * expr.c (target_align): New function. Alignment the TARGET of an 21436 assignment may be assume to have. 21437 (highest_pow2_factor_for_target): Use it instead of relying on 21438 immediate tree attributes of TARGET, not necessarily honored when 21439 intermediate bitfields are involved. 21440 214412009-05-27 H.J. Lu <hongjiu.lu@intel.com> 21442 21443 PR target/40266 21444 * config/i386/driver-i386.c (host_detect_local_cpu): Support 21445 AVX, SSE4, AES, PCLMUL and POPCNT. 21446 214472009-05-27 Diego Novillo <dnovillo@google.com> 21448 21449 * tree-pretty-print.c (dump_location): New. 21450 (dump_generic_node): Call it. 21451 Factor code to handle BLOCK nodes ... 21452 (dump_block_node): ... here. 21453 214542009-05-27 Rafael Avila de Espindola <espindola@google.com> 21455 21456 * Makefile.in (GCC_PLUGIN_H): New. Replace all uses of gcc-plugin.h 21457 with it. 21458 * doc/plugins.texi: Document that gcc-plugin.h must be the first to be 21459 included. 21460 * gcc-plugin.h: Include config.h and system.h. 21461 (IN_GCC): Define if not defined. 21462 214632009-05-27 Hans-Peter Nilsson <hp@axis.com> 21464 21465 PR middle-end/40249 21466 * Makefile.in (CRTSTUFF_CFLAGS): Replace -fno-inline-functions 21467 with -fno-inline. 21468 214692009-05-27 Shujing Zhao <pearly.zhao@oracle.com> 21470 21471 * config/m32r/m32r.c: Use REG_P, MEM_P and CONST_INT_P where 21472 applicable. 21473 * config/m32r/m32r.h: Ditto. 21474 * config/m32r/m32r.md: Ditto. 21475 * config/m32r/predicates.md: Ditto. 21476 214772009-05-27 Alexandre Oliva <aoliva@redhat.com> 21478 21479 * cgraph.c (dump_cgraph_node): Honor -fdump-noaddr. 21480 214812009-05-26 Basile Starynkevitch <basile@starynkevitch.net> 21482 21483 * doc/plugins.texi 21484 (Loading plugins): typo. 21485 (Plugin callbacks): Documented PLUGIN_INFO, PLUGIN_GGC_START, 21486 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS. 21487 (Interacting with the GCC Garbage Collector): Added new section. 21488 (Giving information about a plugin): Added new section for 21489 PLUGIN_INFO. 21490 * ggc.h (ggc_register_root_tab): Added declaration. 21491 * gcc-plugin.h (PLUGIN_GGC_START, PLUGIN_GGC_MARKING) 21492 (PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS): Added new events. 21493 (register_callback): Improved comment in declaration. 21494 * ggc-common.c (const_ggc_root_tab_t) Added new typedef for vectors. 21495 (extra_root_vec) Added static variable for dynamic roots registration. 21496 (ggc_register_root_tab) Added new routine. 21497 (ggc_mark_roots) Added iteration inside extra_root_vec, and invoke 21498 PLUGIN_GGC_MARKING event. 21499 * ggc-zone.c: Include plugin.h. 21500 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events. 21501 * ggc-page.c: Include plugin.h. 21502 (ggc_collect): Invoke PLUGIN_GGC_START & PLUGIN_GGC_END events. 21503 * plugin.c (plugin_event_name): added names of PLUGIN_GGC_START, 21504 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS 21505 (register_callback): check lack of callbacks for 21506 pseudo-events. Added handling of PLUGIN_REGISTER_GGC_ROOTS, 21507 PLUGIN_GGC_START, PLUGIN_GGC_MARKING, PLUGIN_GGC_END. 21508 (invoke_plugin_callbacks): Handle PLUGIN_GGC_START, 21509 PLUGIN_GGC_MARKING, PLUGIN_GGC_END, PLUGIN_REGISTER_GGC_ROOTS. 21510 * Makefile.in (ggc-common.o, ggc-zone.o, ggc-page.o): Added 21511 dependency on plugin.h. 21512 (plugin.o): Added dependency on ggc.h... 21513 215142009-05-26 Richard Guenther <rguenther@suse.de> 21515 21516 PR middle-end/40248 21517 Revert 21518 * expr.c (expand_expr_real_1): Avoid calling do_store_flag 21519 with mismatched comparison modes. 21520 21521 * expr.c (expand_expr_real_1): Expand the operand of a 21522 VIEW_CONVERT_EXPR in its natural mode. 21523 215242009-05-26 Ian Lance Taylor <iant@google.com> 21525 21526 * Makefile.in (COMPILER, COMPILER_FLAGS): Define. 21527 (COMPILER_FOR_BUILD, BUILD_COMPILERFLAGS): Define. 21528 (ALL_COMPILERFLAGS): Define. 21529 (.c.o, xgcc$(exeext), cpp$(exeext)): Use $(COMPILER). 21530 (cc1-dummy$(exeext), cc1$(exeext)): Likewise. 21531 (collect2$(exeext), collect2.o): Likewise. 21532 (c-opts.o, c-cppbuiltin.o, c-pch.o, gcc.o, gccspec.o): Likewise. 21533 (gcc-options.o, version.o, prefix.o, toplev.o): Likewise. 21534 ($(out_object_file), mips-tfile, mips-tdump): Likewise. 21535 (libbackend.o, intl.o, cppdefault.o): Likewise. 21536 (gcov$(exeext), gcov-dump$(exeext)): Likewise. 21537 (build/%.o): Use $(COMPILER_FOR_BUILD). 21538 (build/gen%$(build_exeext)): Likewise. 21539 (build/gcov-iov$(build_exeext)): LIkewise. 21540 * config/t-darwin (darwin.o): Use $(COMPILER). 21541 (darwin-c.o, darwin-f.o, darwin-driver.o): Likewise. 21542 * config/t-sol2 (sol2-c.o): Likewise. 21543 (sol2.o): Likewise. 21544 * config/t-vxworks (vxworks.o): Likewise. 21545 * config/x-darwin (host-darwin.o): Likewise. 21546 * config/x-hpux (host-hpux.o): Likewise. 21547 * config/x-linux (host-linux.o): Likewise. 21548 * config/x-solaris (host-solaris.o): Likewise. 21549 * config/alpha/x-alpha (driver-alpha.o): Likewise. 21550 * config/arm/t-arm (arm-c.o): Likewise. 21551 * config/arm/t-pe (pe.o): Likewise. 21552 * config/arm/t-wince-pe (pe.o): Likewise. 21553 * config/i386/t-cygming (winnt.o): Likewise. 21554 (winnt-cxx.o, winnt-stubs.o, msformat-c.o): Likewise. 21555 * config/i386/t-cygwin (cygwin1.o): Likewise. 21556 (cygwin2.o): Likewise. 21557 * config/i386/t-i386 (i386-c.o): Likewise. 21558 * config/i386/t-interix (winnt.o): Likewise. 21559 * config/i386/t-netware (netware.o): Likewise. 21560 * config/i386/t-nwld (nwld.o): Likewise. 21561 * config/i386/x-darwin (host-i386-darwin.o): Likewise. 21562 * config/i386/x-i386 (driver-i386.o): Likewise. 21563 * config/i386/x-cygwin (host-cygwin.o): Likewise. 21564 * config/i386/x-mingw32 (host-mingw32.o): Likewise. 21565 * config/ia64/t-ia64 (ia64-c.o): Likewise. 21566 * config/m32c/t-m32c (m32c-pragma.o): Likewise. 21567 * config/mips/x-native (driver-native.o): Likewise. 21568 * config/rs6000/t-rs6000 (rs6000-c.o): Likewise. 21569 * config/rs6000/x-darwin (host-ppc-darwin.o): Likewise. 21570 * config/rs6000/x-darwin64 (host-ppc64-darwin.o): Likewise. 21571 * config/rs6000/x-rs6000 (driver-rs6000.o): Likewise. 21572 * config/score/t-score-elf (score7.o): Likewise. 21573 (score3.o): Likewise. 21574 * config/sh/t-sh (sh-c.o): Likewise. 21575 * config/sh/t-symbian (sh-c.o): Likewise. 21576 (symbian.o): Likewise. 21577 * config/spu/t-spu-elf (spu-c.o): Likewise. 21578 * config/v850/t-v850 (v850-c.o): Likewise. 21579 * config/v850/t-v850e (v850-c.o): Likewise. 21580 215812009-05-26 Richard Guenther <rguenther@suse.de> 21582 21583 PR tree-optimization/40122 21584 * tree-ssa-ccp.c (ccp_fold): Fold vector CONSTRUCTORs to 21585 VECTOR_CSTs if possible. 21586 (fold_gimple_assign): Likewise. 21587 215882009-05-26 Richard Guenther <rguenther@suse.de> 21589 21590 PR middle-end/40252 21591 * fold-const.c (fold_binary): Use the correct types for building 21592 rotates. 21593 215942009-05-26 Richard Guenther <rguenther@suse.de> 21595 21596 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove 21597 redundant calls to merge_alias_info. 21598 (bump_vector_ptr): Likewise. 21599 * tree-ssa-copy.c (merge_alias_info): Remove. 21600 (replace_exp_1): Remove call to merge_alias_info. 21601 (propagate_tree_value): Likewise. 21602 (fini_copy_prop): Propagate points-to info. 21603 * tree-flow.h (merge_alias_info): Remove. 21604 216052009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com> 21606 21607 * config/picochip/picochip.C (PARAM_INLINE_CALL_COST): Remove. 21608 216092009-05-25 Jan Hubicka <jh@suse.cz> 21610 21611 * cgraph.c (dump_cgraph_node): Dump size/time/benefit. 21612 * cgraph.h (struct inline_summary): New filed self_wize, 21613 size_inlining_benefit, self_time and time_inlining_benefit. 21614 (struct cgraph_global_info): Replace insns by time ans size fields. 21615 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size 21616 (ipcp_estimate_growth, ipcp_insert_stage): Likewise. 21617 (ipcp_update_callgraph): Do not touch function bodies. 21618 * ipa-inline.c: Include except.h 21619 (MAX_TIME): New constant. 21620 (overall_insns): Remove. 21621 (leaf_node_p): New. 21622 (overall_size, max_benefit): New static variables. 21623 (cgraph_estimate_time_after_inlining): New function. 21624 (cgraph_estimate_size_after_inlining): Rewrite using benefits. 21625 (cgraph_clone_inlined_nodes): Update size. 21626 (cgraph_mark_inline_edge): Update size. 21627 (cgraph_estimate_growth): Use size info. 21628 (cgraph_check_inline_limits): Check size. 21629 (cgraph_default_inline_p): Likewise. 21630 (cgraph_edge_badness): Compute badness based on benefit and size cost. 21631 (cgraph_decide_recursive_inlining): Check size. 21632 (cgraph_decide_inlining_of_small_function): Update size; dump sizes 21633 and times. 21634 (cgraph_decide_inlining): Likewise. 21635 (cgraph_decide_inlining_incrementally): Likewise; honor 21636 PARAM_EARLY_INLINING_INSNS. 21637 (likely_eliminated_by_inlining_p): New predicate. 21638 (estimate_function_body_sizes): New function. 21639 (compute_inline_parameters): Use it. 21640 * except.c (must_not_throw_labels): New function. 21641 * except.h (must_not_throw_labels): Declare. 21642 * tree-inline.c (init_inline_once): Kill inlining_weigths 21643 * tree-ssa-structalias.c: Avoid uninitialized warning. 21644 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. 21645 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. 21646 (PARAM_INLINE_CALL_COST): Remove. 21647 (PARAM_EARLY_INLINING_INSNS): New. 21648 216492009-05-25 Richard Guenther <rguenther@suse.de> 21650 21651 PR tree-optimization/36327 21652 * tree-ssa-alias.c (walk_non_aliased_vuses): Add second walker 21653 callback for reference translation or lookup at the point of may-defs. 21654 * tree-ssa-alias.h (walk_non_aliased_vuses): Adjust prototype. 21655 * tree-ssa-sccvn.c (get_ref_from_reference_ops): Bail out 21656 for union COMPONENT_REFs. 21657 (vn_reference_lookup_3): New callback. Lookup from memset 21658 and CONSTRUCTOR assignment, translate through struct copies. 21659 (vn_reference_lookup_pieces): Make sure to not free the 21660 passed operands array. Adjust walk_non_aliased_vuses call. 21661 (vn_reference_lookup): Adjust walk_non_aliased_vuses call, 21662 make sure we do not leak memory. 21663 216642009-05-25 Richard Guenther <rguenther@suse.de> 21665 21666 * tree-ssa-alias.h (dump_points_to_solution): Declare. 21667 * tree-inline.c (expand_call_inline): Reset the escaped and 21668 callused solutions. 21669 * tree-ssa-structalias.c (pass_build_ealias): New. 21670 * tree-pass.h (pass_build_ealias): Declare. 21671 * passes.c (init_optimization_passes): Add PTA during 21672 early optimizations. 21673 * tree-ssa-alias.c (dump_alias_info): Dump the ESCAPED 21674 and CALLUSED solutions. 21675 (dump_points_to_solution): New function, split out from ... 21676 (dump_points_to_info_for): ... here. 21677 * tree-parloops.c (parallelize_loops): Reset the escaped and 21678 callused solutions. 21679 216802009-05-25 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 21681 21682 PR bootstrap/40027 21683 * config/i386/i386.c (USE_HIDDEN_LINKONCE): Only define if missing. 21684 * config/i386/sol2.h [!TARGET_GNU_LD] (USE_HIDDEN_LINKONCE): Define. 21685 216862009-05-25 Ira Rosen <irar@il.ibm.com> 21687 21688 PR tree-optimization/40238 21689 * tree-vect-stmts.c (vect_init_vector): Insert initialization 21690 statements after basic block's labels. 21691 * tree-vect-slp.c (vect_slp_transform_bb): Call destroy_bb_vec_info() 21692 to free the allocated memory. 21693 216942009-05-24 Kaz Kojima <kkojima@gcc.gnu.org> 21695 21696 * gcc/config/sh/sh.c (sh_set_return_address): Mark store of 21697 return address with a USE. 21698 216992009-05-24 Richard Guenther <rguenther@suse.de> 21700 21701 PR middle-end/40233 21702 * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs 21703 array type from the main variant of the inner type. 21704 217052009-05-24 Jan-Benedict Glaw <jbglaw@lug-owl.de> 21706 21707 * config/vax/vax-protos.h (legitimate_constant_address_p): Change 21708 definition to bool (from int) to un-break build. 21709 (legitimate_constant_p, vax_mode_dependent_address_p): Likewise. 21710 217112009-05-24 Paolo Bonzini <bonzini@gnu.org> 21712 21713 * tree-ssa-operands.h (push_stmt_changes, pop_stmt_changes, 21714 discard_stmt_changes): Delete. 21715 * tree-ssa-operands.c (scb_stack): Delete. 21716 (init_ssa_operands): Do not initialize it. 21717 (fini_ssa_operands): Do not free it. 21718 (push_stmt_changes, pop_stmt_changes, discard_stmt_changes): Delete. 21719 21720 * tree-cfg.c (replace_uses_by): Replace pop_stmt_changes with 21721 update_stmt, remove the others. Fix comments. 21722 * tree-dfa.c (optimize_stack_restore): Likewise. 21723 * tree-ssa-forwprop.c (forward_propagate_addr_expr): Likewise. 21724 * tree-ssa-loop-ivopts.c (rewrite_use): Likewise. 21725 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. 21726 * tree-ssa-ccp.c (optimize_stack_restore, execute_fold_all_builtins): 21727 Likewise. 21728 * tree-ssa-propagate.c (substitute_and_fold): Likewise. 21729 * tree-ssa-dom.c (propagate_rhs_into_lhs): Likewise. 21730 (dom_opt_finalize_block): Likewise, adjusting access to 21731 stmts_to_rescan. 21732 (optimize_stmt): Likewise, adjusting access to stmts_to_rescan. 21733 (stmts_to_rescan): Change item type to gimple. 21734 (tree_ssa_dominator_optimize): Change type of stmts_to_rescan. 21735 217362009-05-24 Ira Rosen <irar@il.ibm.com> 21737 21738 * doc/passes.texi (Tree-SSA passes): Document SLP pass. 21739 * tree-pass.h (pass_slp_vectorize): New pass. 21740 * params.h (SLP_MAX_INSNS_IN_BB): Define. 21741 * timevar.def (TV_TREE_SLP_VECTORIZATION): Define. 21742 * tree-vectorizer.c (timevar.h): Include. 21743 (user_vect_verbosity_level): Declare. 21744 (vect_location): Fix comment. 21745 (vect_set_verbosity_level): Update user_vect_verbosity_level 21746 instead of vect_verbosity_level. 21747 (vect_set_dump_settings): Add an argument. Ignore user defined 21748 verbosity if dump flags require higher level of verbosity. Print to 21749 stderr only for loop vectorization. 21750 (vectorize_loops): Update call to vect_set_dump_settings. 21751 (execute_vect_slp): New function. 21752 (gate_vect_slp): Likewise. 21753 (struct gimple_opt_pass pass_slp_vectorize): New. 21754 * tree-vectorizer.h (struct _bb_vec_info): Define along macros to 21755 access its members. 21756 (vec_info_for_bb): New function. 21757 (struct _stmt_vec_info): Add bb_vinfo and a macro for its access. 21758 (VECTORIZATION_ENABLED): New macro. 21759 (SLP_ENABLED, SLP_DISABLED): Likewise. 21760 (vect_is_simple_use): Add bb_vec_info argument. 21761 (new_stmt_vec_info, vect_analyze_data_ref_dependences, 21762 vect_analyze_data_refs_alignment, vect_verify_datarefs_alignment, 21763 vect_analyze_data_ref_accesses, vect_analyze_data_refs, 21764 vect_schedule_slp, vect_analyze_slp): Likewise. 21765 (vect_analyze_stmt): Add slp_tree argument. 21766 (find_bb_location): Declare. 21767 (vect_slp_analyze_bb, vect_slp_transform_bb): Likewise. 21768 * tree-vect-loop.c (new_loop_vec_info): Adjust function calls. 21769 (vect_analyze_loop_operations, vect_analyze_loop, 21770 get_initial_def_for_induction, vect_create_epilog_for_reduction, 21771 vect_finalize_reduction, vectorizable_reduction, 21772 vectorizable_live_operation, vect_transform_loop): Likewise. 21773 * tree-data-ref.c (dr_analyze_innermost): Update comment, 21774 skip evolution analysis if analyzing a basic block. 21775 (dr_analyze_indices): Likewise. 21776 (initialize_data_dependence_relation): Skip the test whether the 21777 object is invariant for basic blocks. 21778 (compute_all_dependences): Skip dependence analysis for data 21779 references in basic blocks. 21780 (find_data_references_in_stmt): Don't fail in case of invariant 21781 access in basic block. 21782 (find_data_references_in_bb): New function. 21783 (find_data_references_in_loop): Move code to 21784 find_data_references_in_bb and add a call to it. 21785 (compute_data_dependences_for_bb): New function. 21786 * tree-data-ref.h (compute_data_dependences_for_bb): Declare. 21787 * tree-vect-data-refs.c (vect_check_interleaving): Adjust to the case 21788 that STEP is 0. 21789 (vect_analyze_data_ref_dependence): Check for interleaving in case of 21790 unknown dependence in basic block and fail in case of dependence in 21791 basic block. 21792 (vect_analyze_data_ref_dependences): Add bb_vinfo argument, get data 21793 dependence instances from either loop or basic block vectorization 21794 info. 21795 (vect_compute_data_ref_alignment): Check if it is loop vectorization 21796 before calling nested_in_vect_loop_p. 21797 (vect_compute_data_refs_alignment): Add bb_vinfo argument, get data 21798 dependence instances from either loop or basic block vectorization 21799 info. 21800 (vect_verify_datarefs_alignment): Likewise. 21801 (vect_enhance_data_refs_alignment): Adjust function calls. 21802 (vect_analyze_data_refs_alignment): Likewise. 21803 (vect_analyze_group_access): Fix printing. Skip different checks if 21804 DR_STEP is 0. Keep strided stores either in loop or basic block 21805 vectorization data structure. Fix indentation. 21806 (vect_analyze_data_ref_access): Fix comments, allow zero step in 21807 basic blocks. 21808 (vect_analyze_data_ref_accesses): Add bb_vinfo argument, get data 21809 dependence instances from either loop or basic block vectorization 21810 info. 21811 (vect_analyze_data_refs): Update comment. Call 21812 compute_data_dependences_for_bb to analyze basic blocks. 21813 (vect_create_addr_base_for_vector_ref): Check for outer loop only in 21814 case of loop vectorization. In case of basic block vectorization use 21815 data-ref itself as a base. 21816 (vect_create_data_ref_ptr): In case of basic block vectorization: 21817 don't advance the pointer, add new statements before the current 21818 statement. Adjust function calls. 21819 (vect_supportable_dr_alignment): Support only aligned accesses in 21820 basic block vectorization. 21821 * common.opt (ftree-slp-vectorize): New flag. 21822 * tree-vect-patterns.c (widened_name_p): Adjust function calls. 21823 (vect_pattern_recog_1): Likewise. 21824 * tree-vect-stmts.c (process_use): Likewise. 21825 (vect_init_vector): Add new statements in the beginning of the basic 21826 block in case of basic block SLP. 21827 (vect_get_vec_def_for_operand): Adjust function calls. 21828 (vect_finish_stmt_generation): Likewise. 21829 (vectorizable_call): Add assert that it is loop vectorization, adjust 21830 function calls. 21831 (vectorizable_conversion, vectorizable_assignment): Likewise. 21832 (vectorizable_operation): In case of basic block SLP, take 21833 vectorization factor from statement's type and skip the relevance 21834 check. Adjust function calls. 21835 (vectorizable_type_demotion): Add assert that it is loop 21836 vectorization, adjust function calls. 21837 (vectorizable_type_promotion): Likewise. 21838 (vectorizable_store): Check for outer loop only in case of loop 21839 vectorization. Adjust function calls. For basic blocks, skip the 21840 relevance check and don't advance pointers. 21841 (vectorizable_load): Likewise. 21842 (vectorizable_condition): Add assert that it is loop vectorization, 21843 adjust function calls. 21844 (vect_analyze_stmt): Add argument. In case of basic block SLP, check 21845 that it is not reduction, get vector type, call only supported 21846 functions, skip loop specific parts. 21847 (vect_transform_stmt): Check for outer loop only in case of loop 21848 vectorization. 21849 (new_stmt_vec_info): Add new argument and initialize bb_vinfo. 21850 (vect_is_simple_use): Fix comment, add new argument, fix conditions 21851 for external definition. 21852 * passes.c (pass_slp_vectorize): New pass. 21853 * tree-vect-slp.c (find_bb_location): New function. 21854 (vect_get_and_check_slp_defs): Add argument, adjust function calls, 21855 check for patterns only in loops. 21856 (vect_build_slp_tree): Add argument, adjust function calls, fail in 21857 case of multiple types in basic block SLP. 21858 (vect_mark_slp_stmts_relevant): New function. 21859 (vect_supported_load_permutation_p): Fix comment. 21860 (vect_analyze_slp_instance): Add argument. In case of basic block 21861 SLP, take vectorization factor from statement's type, check that 21862 unrolling factor is 1. Adjust function call. Save SLP instance in 21863 either loop or basic block vectorization structure. Return FALSE, 21864 if SLP failed. 21865 (vect_analyze_slp): Add argument. Get strided stores groups from 21866 either loop or basic block vectorization structure. Return FALSE 21867 if basic block SLP failed. 21868 (new_bb_vec_info): New function. 21869 (destroy_bb_vec_info, vect_slp_analyze_node_operations, 21870 vect_slp_analyze_operations, vect_slp_analyze_bb): Likewise. 21871 (vect_schedule_slp): Add argument. Get SLP instances from either 21872 loop or basic block vectorization structure. Set vectorization factor 21873 to be 1 for basic block SLP. 21874 (vect_slp_transform_bb): New function. 21875 * params.def (PARAM_SLP_MAX_INSNS_IN_BB): Define. 21876 218772009-05-23 Mark Mitchell <mark@codesourcery.com> 21878 21879 * final.c (shorten_branches): Do not align labels for jump tables. 21880 (final_scan_insn): Use JUMP_TABLE_DATA_P. 21881 218822009-05-23 Eric Botcazou <ebotcazou@adacore.com> 21883 21884 * doc/passes.texi: Standardize spelling of RTL, Tree and Tree SSA. 21885 Remove outdated reference to flow.c and fix nits. 21886 * doc/gccint.texi: Tweak RTL description. 21887 * doc/rtl.texi: Likewise. 21888 218892009-05-23 Denis Chertykov <chertykov@gmail.com> 21890 21891 * config/avr/avr.c: Change my email address. 21892 * config/avr/avr.h: Likewise. 21893 * config/avr/avr.md: Likewise. 21894 * config/avr/avr-protos.h: Likewise. 21895 * config/avr/libgcc.S: Likewise. 21896 218972009-05-22 Trevor Smigiel <Trevor_Smigiel@playstation.sony.com> 21898 21899 * config/spu/spu-protos.h (aligned_mem_p, spu_valid_mov): Remove. 21900 (spu_split_load, spu_split_store): Change return type to int. 21901 (spu_split_convert): Declare. 21902 * config/spu/predicates.md (spu_mem_operand): Remove. 21903 (spu_mov_operand): Update. 21904 (spu_dest_operand, shiftrt_operator, extend_operator): Define. 21905 * config/spu/spu.c (regno_aligned_for_load): Remove. 21906 (reg_aligned_for_addr, spu_expand_load): Define. 21907 (spu_expand_extv): Reimplement and handle MEM. 21908 (spu_expand_insv): Handle MEM. 21909 (spu_sched_reorder): Handle insn's with length 0. 21910 (spu_legitimate_address_p): Reimplement. 21911 (store_with_one_insn_p): Return TRUE for any mode with size 21912 larger than 16 bytes. 21913 (address_needs_split): Define. 21914 (spu_expand_mov): Call spu_split_load and spu_split_store for MEM 21915 operands. 21916 (spu_convert_move): Define. 21917 (spu_split_load): Use spu_expand_load and change all MEM's to TImode. 21918 (spu_split_store): Change all MEM's to TImode. 21919 (spu_init_expanders): Preallocate registers that correspond to 21920 LAST_VIRTUAL_REG+1 and LAST_VIRTUAL_REG+2 and set them with 21921 mark_reg_pointer. 21922 (spu_split_convert): Define. 21923 * config/spu/spu.md (QHSI, QHSDI): New mode iterators. 21924 (_move<mode>, _movdi, _movti): Update predicate and condition. 21925 (load, store): Change to define_split. 21926 (extendqiti2, extendhiti2, extendsiti2, extendditi2): Simplify to 21927 extend<mode>ti2. 21928 (zero_extendqiti2, zero_extendhiti2, <v>lshr<mode>3_imm): Define. 21929 (lshr<mode>3, lshr<mode>3_imm, lshr<mode>3_re): Simplify to one 21930 define_insn_and_split of lshr<mode>3. 21931 (shrqbybi_<mode>, shrqby_<mode>): Simplify to define_expand. 21932 (<v>ashr<mode>3_imm): Define. 21933 (extv, extzv, insv): Allow MEM operands. 21934 (trunc_shr_ti<mode>, trunc_shr_tidi, shl_ext_<mode>ti, 21935 shl_ext_diti, sext_trunc_lshr_tiqisi, zext_trunc_lshr_tiqisi, 21936 sext_trunc_lshr_tihisi, zext_trunc_lshr_tihisi): Define for combine. 21937 (_spu_convert2): Change to define_insn_and_split and remove the 21938 corresponding define_peephole2. 21939 (stack_protect_set, stack_protect_test, stack_protect_test_si): 21940 Change predicates to memory_operand. 21941 219422009-05-22 Mark Mitchell <mark@codesourcery.com> 21943 21944 * config/arm/thumb2.md: Add 16-bit multiply instructions. 21945 219462009-05-21 Michael Meissner <meissner@linux.vnet.ibm.com> 21947 21948 PR tree-optimization/40219 21949 * tree.c (iterative_hash_expr): Make sure the builtin function is 21950 a normal builtin function and not a front end or back end builtin 21951 before indexing into the built_in_decls array. 21952 219532009-05-22 Richard Guenther <rguenther@suse.de> 21954 21955 PR middle-end/38964 21956 * alias.c (write_dependence_p): Do not use TBAA for answering 21957 anti-dependence or output-dependence. 21958 * tree-ssa-structalias.c (set_uids_in_ptset): Remove TBAA pruning code. 21959 (emit_pointer_definition): Remove. 21960 (emit_alias_warning): Likewise. 21961 (find_what_var_points_to): Remove TBAA pruning code. 21962 (find_what_p_points_to): Likewise. Do not warn about strict-aliasing 21963 violations. 21964 (compute_points_to_sets): Remove code computing the set of 21965 dereferenced pointers. 21966 * tree-data-ref.c (dr_may_alias_p): Properly use the split 21967 oracle for querying anti and output dependencies. 21968 * tree-ssa-alias.c (refs_may_alias_p_1): Add argument specifying 21969 if TBAA may be applied. 21970 (refs_anti_dependent_p): New function. 21971 (refs_output_dependent_p): Likewise. 21972 * tree-ssa-alias.h (refs_anti_dependent_p): Declare. 21973 (refs_output_dependent_p): Likewise. 21974 * doc/tree-ssa.texi (Memory model): New section. 21975 * doc/c-tree.texi (CHANGE_DYNAMIC_TYPE_EXPR): Remove. 21976 * doc/gimple.texi (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove. 21977 * cfgexpand.c (expand_gimple_basic_block): Do not handle 21978 GIMPLE_CHANGE_DYNAMIC_TYPE or CHANGE_DYNAMIC_TYPE_EXPR. 21979 * expr.c (expand_expr_real_1): Likewise. 21980 * gimple-low.c (lower_stmt): Likewise. 21981 * gimple-pretty-print.c (dump_gimple_stmt): Likewise. 21982 (dump_gimple_cdt): Remove. 21983 * gimple.c (gss_for_code): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE. 21984 (gimple_size): Likewise. 21985 (walk_gimple_op): Likewise. 21986 (is_gimple_stmt): Likewise. 21987 (walk_stmt_load_store_addr_ops): Likewise. 21988 (gimple_build_cdt): Remove. 21989 * gimple.def (GIMPLE_CHANGE_DYNAMIC_TYPE): Remove. 21990 * gimple.h (gimple_cdt_new_type): Remove. 21991 (gimple_cdt_new_type_ptr): Likewise. 21992 (gimple_cdt_set_new_type): Likewise. 21993 (gimple_cdt_location): Likewise. 21994 (gimple_cdt_location_ptr): Likewise. 21995 (gimple_cdt_set_location): Likewise. 21996 * gimplify.c (gimplify_expr): Do not handle CHANGE_DYNAMIC_TYPE_EXPR. 21997 * tree-cfg.c (remove_useless_stmts_1): Do not handle 21998 GIMPLE_CHANGE_DYNAMIC_TYPE. 21999 (verify_types_in_gimple_stmt): Likewise. 22000 * tree-inline.c (estimate_num_insns): Likewise. 22001 (expand_call_inline): Do not copy DECL_NO_TBAA_P. 22002 (copy_decl_to_var): Likewise. 22003 (copy_result_decl_to_var): Likewise. 22004 * tree-pretty-print.c (dump_generic_node): Do not handle 22005 CHANGE_DYNAMIC_TYPE_EXPR. 22006 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 22007 * tree-ssa-operands.c (get_expr_operands): Likewise. 22008 * tree-ssa-structalias.c (struct variable_info): Remove 22009 no_tbaa_pruning member. 22010 (new_var_info): Do not set it based on DECL_NO_TBAA_P. 22011 (unify_nodes): Do not copy it. 22012 (find_func_aliases): Do not handle GIMPLE_CHANGE_DYNAMIC_TYPE. 22013 (dump_solution_for_var): Do not dump no_tbaa_pruning state. 22014 (set_uids_in_ptset): Do not check it. 22015 (find_what_var_points_to): Likewise. 22016 (compute_tbaa_pruning): Remove. 22017 (compute_points_to_sets): Do not call it. 22018 * tree.c (walk_tree_1): Do not handle CHANGE_DYNAMIC_TYPE_EXPR. 22019 * tree.def (CHANGE_DYNAMIC_TYPE_EXPR): Remove. 22020 * tree.h (CHANGE_DYNAMIC_TYPE_NEW_TYPE): Remove. 22021 (CHANGE_DYNAMIC_TYPE_LOCATION): Likewise. 22022 (DECL_NO_TBAA_P): Likewise. 22023 (struct tree_decl_common): Move no_tbaa_flag to unused flags section. 22024 * omp-low.c (copy_var_decl): Do not copy DECL_NO_TBAA_P. 22025 (expand_omp_atomic_pipeline): Do not set it. 22026 * print-tree.c (print_node): Do not dump it. 22027 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove 22028 redundant check. 22029 220302009-05-22 Vladimir Makarov <vmakarov@redhat.com> 22031 22032 PR target/39856 22033 * reg-stack.c (subst_stack_regs_pat): Remove gcc_assert for note 22034 for clobber. 22035 220362009-05-22 Mark Mitchell <mark@codesourcery.com> 22037 22038 * tree.c (handle_dll_attribute): Mark dllexport'd inlines as 22039 non-external. 22040 220412009-05-22 Ben Elliston <bje@au.ibm.com> 22042 22043 * Makefile.in (bversion.h, s-bversion): New targets. 22044 (TOPLEV_H): Add bversion.h. 22045 * toplev.h: Include "bversion.h". 22046 (ATTRIBUTE_GCC_DIAG): When building with checking disabled, use 22047 the __format__ attribute only if compiling with the same version 22048 of GCC as the sources (the "build version"). 22049 220502009-05-22 Ben Elliston <bje@au.ibm.com> 22051 22052 * c-format.c (handle_format_attribute): Fix comment typo. 22053 220542009-05-21 Steve Ellcey <sje@cup.hp.com> 22055 22056 PR target/37846 22057 * config/ia64/ia64.opt (mfused-madd): New. 22058 * config/ia64/ia64.h (TARGET_DEFAULT): Set MASK_FUSED_MADD. 22059 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto. 22060 * config/ia64/ia64.md (maddsf4, msubsf4, nmaddsf4, 22061 madddf4, madddf4_trunc, msubdf4, msubdf4_trunc, nmadddf4, 22062 nmadddf4_truncsf, maddxf4, maddxf4_truncsf, maddxf4_truncdf, 22063 msubxf4, msubxf4_truncsf msubxf4_truncdf, nmaddxf4, 22064 nmaddxf4_truncsf, nmaddxf4_truncdf): Check TARGET_FUSED_MADD. 22065 * config/ia64/vect.md (addv2sf3, subv2sf3): Force fpma/fpms 22066 instruction if !TARGET_FUSED_MADD. 22067 (fpma, fpms): Remove colon from name. 22068 220692009-05-22 Richard Guenther <rguenther@suse.de> 22070 22071 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record 22072 TMR_ORIGINAL. Always either record TMR_SYMBOL or TMR_BASE. 22073 * tree-ssa-pre.c (create_component_ref_by_pieces_1): Handle 22074 TARGET_MEM_REF. 22075 (create_expression_by_pieces): Only convert if necessary. 22076 * gimplify.c (gimplify_expr): Handle TARGET_MEM_REF. 22077 * tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle INTEGER_CST. 22078 220792009-05-21 Adam Nemet <anemet@caviumnetworks.com> 22080 22081 * config/mips/mips.md (*extzv_trunc<mode>_exts): Turn into a 22082 regular pattern from a template and rename it ... 22083 (*extzv_truncsi_exts): ... to this. 22084 220852009-05-21 Richard Guenther <rguenther@suse.de> 22086 22087 * cgraph.h (struct cgraph_node): Remove inline_decl member. 22088 * ipa-inline.c (cgraph_mark_inline_edge): Do not check it. 22089 (cgraph_default_inline_p): Likewise. 22090 (cgraph_decide_inlining_incrementally): Likewise. 22091 220922009-05-21 H.J. Lu <hongjiu.lu@intel.com> 22093 Uros Bizjak <ubizjak@gmail.com> 22094 22095 * config/i386/cpuid.h (bit_MOVBE): New. 22096 22097 * config/i386/driver-i386.c (host_detect_local_cpu): Check movbe. 22098 22099 * config/i386/i386.c (OPTION_MASK_ISA_MOVBE_SET): New. 22100 (OPTION_MASK_ISA_MOVBE_UNSET): Likewise. 22101 (ix86_handle_option): Handle OPT_mmovbe. 22102 (ix86_target_string): Add -mmovbe. 22103 (pta_flags): Add PTA_MOVBE. 22104 (processor_alias_table): Add PTA_MOVBE to "atom". 22105 (override_options): Handle PTA_MOVBE. 22106 22107 * config/i386/i386.h (TARGET_MOVBE): New. 22108 22109 * config/i386/i386.md (bswapsi2): Check TARGET_MOVBE. 22110 (*bswapsi_movbe): New. 22111 (*bswapdi_movbe): Likewise. 22112 (bswapdi2): Renamed to ... 22113 (*bswapdi_1): This. 22114 (bswapdi2): New expander. 22115 22116 * config/i386/i386.opt (mmovbe): New. 22117 22118 * doc/invoke.texi: Document -mmovbe. 22119 221202009-05-21 Taras Glek <tglek@mozilla.com> 22121 22122 * plugin.c (try_init_one_plugin): Updated to new plugin_init API. 22123 * gcc-plugin.h (plugin_init): Updated signature. 22124 * gcc-plugin.h (plugin_name_args): Moved to this header. 22125 * doc/plugins.texi (plugin_init): Updated documention to reflect 22126 API change. 22127 * doc/plugins.texi (plugin_name_args): Added to documention. 22128 221292009-05-21 Mark Mitchell <mark@codesourcery.com> 22130 22131 * config/arm/neon.md (*mul<mode>3add<mode>_neon): New pattern. 22132 (*mul<mode>3neg<mode>add<mode>_neon): Likewise. 22133 221342009-05-21 Shujing Zhao <pearly.zhao@oracle.com> 22135 22136 * config/i386/i386.c: Use REG_P, MEM_P, CONST_INT_P, LABEL_P and 22137 JUMP_TABLE_DATA_P predicates where applicable. 22138 * config/i386/predicates.md: Ditto. 22139 * config/i386/sse.md: Ditto. 22140 221412009-05-21 Jakub Jelinek <jakub@redhat.com> 22142 22143 * config/i386/i386.md (adddi_4_rex64, addsi_4, addhi_4): For 22144 operand2 -128 override length_immediate attribute to 1. 22145 * config/i386/predicates.md (constm128_operand): New predicate. 22146 22147 * config/i386/i386.c (memory_address_length): Handle %r12 22148 the same as %rsp and %r13 the same as %rbp. For %rsp and %rbp 22149 also check REGNO. 22150 (ix86_attr_length_address_default): For MODE_SI lea in 64-bit 22151 mode look through optional ZERO_EXTEND and SUBREG. 22152 * config/i386/i386.md (R12_REG): New define_constant. 22153 (prefix_data16): For sse unit set also for MODE_TI insns. 22154 (prefix_rex): For -m32 always return 0. For TYPE_IMOVX 22155 insns set if operand 1 is ext_QIreg_operand. 22156 (modrm): For TYPE_IMOV clear only if not MODE_DI. For 22157 TYPE_{ALU{,1},ICMP,TEST} insn clear if there is non-shortened 22158 immediate. 22159 (*movdi_extzv_1, zero_extendhidi2, zero_extendqidi2): Change 22160 mode from MODE_DI to MODE_SI. 22161 (movdi_1_rex64): Override modrm and length_immediate attributes 22162 only for movabs (TYPE_IMOV, alternative 2). 22163 (zero_extendsidi2_rex64): Clear prefix_0f attribute if TYPE_IMOVX. 22164 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit, 22165 *float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit, 22166 *float<SSEMODEI24:mode><MODEF:mode>2_sse_interunit, 22167 *float<SSEMODEI24:mode><MODEF:mode>2_sse_nointerunit): Set 22168 prefix_rex attribute if DImode. 22169 (*adddi_1_rex64, *adddi_2_rex64, *adddi_3_rex64, *adddi_5_rex64, 22170 *addsi_1, *addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3, 22171 *addsi_3_zext, *addsi_5, *addhi_1_lea, *addhi_1, *addhi_2, *addhi_3, 22172 *addhi_5, *addqi_1_lea, *addqi_1): Override length_immediate 22173 attribute to 1 if TYPE_ALU and operand 2 is const128_operand. 22174 (pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64): 22175 Likewise. For TYPE_IMOV clear length_immediate attribute. 22176 (*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashldi3_cconly_rex64, 22177 *ashlsi3_1, *ashlsi3_1_zext, *ashlsi3_cmp, **ashlsi3_cconly, 22178 *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1, *ashlhi3_cmp, 22179 *ashlhi3_cconly, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp, 22180 *ashlqi3_cconly): Override length_immediate attribute to 0 if TYPE_ALU 22181 or one operand TYPE_ISHIFT. 22182 (*ashrdi3_1_one_bit_rex64, *ashrdi3_one_bit_cmp_rex64, 22183 *ashrdi3_one_bit_cconly_rex64, *ashrsi3_1_one_bit, 22184 *ashrsi3_1_one_bit_zext, *ashrsi3_one_bit_cmp, 22185 *ashrsi3_one_bit_cconly, *ashrsi3_one_bit_cmp_zext, 22186 *ashrhi3_1_one_bit, *ashrhi3_one_bit_cmp, *ashrhi3_one_bit_cconly, 22187 *ashrqi3_1_one_bit, *ashrqi3_1_one_bit_slp, *ashrqi3_one_bit_cmp, 22188 *ashrqi3_one_bit_cconly, *lshrdi3_1_one_bit_rex64, 22189 *lshrdi3_cmp_one_bit_rex64, *lshrdi3_cconly_one_bit_rex64, 22190 *lshrsi3_1_one_bit, *lshrsi3_1_one_bit_zext, *lshrsi3_one_bit_cmp, 22191 *lshrsi3_one_bit_cconly, *lshrsi3_cmp_one_bit_zext, 22192 *lshrhi3_1_one_bit, *lshrhi3_one_bit_cmp, *lshrhi3_one_bit_cconly, 22193 *lshrqi3_1_one_bit, *lshrqi3_1_one_bit_slp, *lshrqi2_one_bit_cmp, 22194 *lshrqi2_one_bit_cconly, *rotlsi3_1_one_bit_rex64, *rotlsi3_1_one_bit, 22195 *rotlsi3_1_one_bit_zext, *rotlhi3_1_one_bit, *rotlqi3_1_one_bit_slp, 22196 *rotlqi3_1_one_bit, *rotrdi3_1_one_bit_rex64, *rotrsi3_1_one_bit, 22197 *rotrsi3_1_one_bit_zext, *rotrhi3_one_bit, *rotrqi3_1_one_bit, 22198 *rotrqi3_1_one_bit_slp): Override length_immediate attribute to 0, 22199 set mode attribute, don't override length attribute. 22200 (*btsq, *btrq, *btcq, *btdi_rex64, *btsi): Set prefix_0f attribute 22201 to 1. 22202 (return_internal_long): Set length attribute to 2 instead of 1. 22203 (*strmovqi_rex_1, *strsetqi_rex_1, *rep_stosqi_rex64, 22204 *cmpstrnqi_nz_rex_1, *cmpstrnqi_rex_1, *strlenqi_rex_1): Clear 22205 prefix_rex attribute. 22206 * config/i386/predicates.md (ext_QIreg_operand, const128_operand): 22207 New predicates. 22208 (memory_displacement_only_operand): Always return 0 for TARGET_64BIT. 22209 222102009-05-21 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 22211 22212 * config/arm/thumb2.md (orsi_notsi_si): Fix typo in pattern. 22213 222142009-05-20 Ian Lance Taylor <iant@google.com> 22215 22216 * tree.c (build_tree_list_vec_stat): New function. 22217 (ctor_to_vec): New function. 22218 (build_nt_call_vec): New function. 22219 (build_call_array): Change args to be a const pointer. 22220 (build_call_vec): New function. 22221 * tree.h (build_nt_call_vec): Declare. 22222 (build_tree_list_vec_stat): Declare. 22223 (build_tree_list_vec): Define. 22224 (build_call_array): Update declaration. 22225 (build_call_vec): Declare. 22226 (ctor_to_vec): Declare. 22227 * c-common.c (tree_vector_cache): New static variable. 22228 (make_tree_vector): New function. 22229 (release_tree_vector): New function. 22230 (make_tree_vector_single): New function. 22231 (make_tree_vector_copy): New function. 22232 * c-common.h (tree_vector_cache, make_tree_vector): Declare. 22233 (make_tree_vector_single, make_tree_vector_copy): Declare. 22234 * c-parser.c (cached_expr_list_1, cached_expr_list_2): Remove. 22235 (c_parser_expr_list): Don't manage cache here, instead call 22236 make_tree_vector. 22237 (c_parser_release_expr_list): Remove static function. 22238 (c_parser_vec_to_tree_list): Remove static function. 22239 (c_parser_attributes): Call build_tree_list_vec instead of 22240 c_parser_vec_to_tree_list. Call release_tree_vector instead of 22241 c_parser_release_expr_list. 22242 (c_parser_postfix_expression_after_primary): Likewise. 22243 (c_parser_objc_keywordexpr): Likewise. 22244 222452009-05-20 Sandra Loosemore <sandra@codesourcery.com> 22246 22247 * doc/tm.texi (Misc): Document TARGET_INVALID_PARAMETER_TYPE, 22248 TARGET_INVALID_RETURN_TYPE, TARGET_PROMOTED_TYPE, and 22249 TARGET_CONVERT_TO_TYPE. 22250 * hooks.c (hook_tree_const_tree_null): Define. 22251 * hooks.h (hook_tree_const_tree_null): Declare. 22252 * target.h (struct gcc_target): Add invalid_parameter_type, 22253 invalid_return_type, promoted_type, and convert_to_type fields. 22254 * target-def.h (TARGET_INVALID_PARAMETER_TYPE): Define. 22255 (TARGET_INVALID_RETURN_TYPE): Define. 22256 (TARGET_PROMOTED_TYPE): Define. 22257 (TARGET_CONVERT_TO_TYPE): Define. 22258 (TARGET_INITIALIZER): Update for new fields. 22259 * c-decl.c (grokdeclarator): Check targetm.invalid_return_type. 22260 (grokparms): Check targetm.invalid_parameter_type. 22261 * c-typeck.c (default_conversion): Check targetm.promoted_type. 22262 * c-convert.c (convert): Check targetm.convert_to_type. 22263 222642009-05-20 Adam Nemet <anemet@caviumnetworks.com> 22265 22266 * config/mips/mips.md (*extenddi_truncate<mode>, 22267 *extendsi_truncate<mode>): Emit exts if supported. Add attribute 22268 defintions. 22269 (*extendhi_truncateqi): New define_insn_and_sptit. 22270 222712009-05-20 Jakub Jelinek <jakub@redhat.com> 22272 22273 PR middle-end/40204 22274 * fold-const.c (fold_binary) <case BIT_AND_EXPR>: Avoid infinite 22275 recursion if build_int_cst_type returns the same INTEGER_CST as arg1. 22276 222772009-05-20 Eric Botcazou <ebotcazou@adacore.com> 22278 22279 * fold-const.c (build_fold_addr_expr_with_type): Take the address of 22280 the operand of VIEW_CONVERT_EXPR. 22281 222822009-05-20 H.J. Lu <hongjiu.lu@intel.com> 22283 22284 * config/i386/driver-i386.c (host_detect_local_cpu): Check 22285 extended family and model for Intel processors. Support Intel Atom. 22286 222872009-05-20 Olivier Hainque <hainque@adacore.com> 22288 22289 * gstab.h (stab_code_type): Define, to be used instead of the 22290 __stab_debug_code enum, made anonymous. Add 2009 to the copyright 22291 notice. 22292 * dbxout.c (STAB_CODE_TYPE): Remove #define and replace use 22293 occurrences by stab_code_type. 22294 * mips-tfile.c (STAB_CODE_TYPE): Remove #define, unused. 22295 222962009-05-20 Martin Jambor <mjambor@suse.cz> 22297 22298 * tree-flow.h (insert_edge_copies_seq): Undeclare. 22299 (sra_insert_before): Likewise. 22300 (sra_insert_after): Likewise. 22301 (sra_init_cache): Likewise. 22302 (sra_type_can_be_decomposed_p): Likewise. 22303 * tree-mudflap.c (insert_edge_copies_seq): Copied here from tree-sra.c 22304 * tree-sra.c (sra_type_can_be_decomposed_p): Made static. 22305 (sra_insert_before): Likewise. 22306 (sra_insert_after): Likewise. 22307 (sra_init_cache): Likewise. 22308 (insert_edge_copies_seq): Made static and moved upwards. 22309 22310 * tree-complex.c (extract_component): Added VIEW_CONVERT_EXPR switch 22311 case. 22312 22313 * tree-flow-inline.h (contains_view_convert_expr_p): New function. 22314 22315 * ipa-prop.c (get_ssa_def_if_simple_copy): New function. 22316 (determine_cst_member_ptr): Call get_ssa_def_if_simple_copy to skip 22317 simple copies. 22318 223192009-05-20 Richard Guenther <rguenther@suse.de> 22320 22321 * expr.c (expand_expr_real_1): Avoid calling do_store_flag 22322 with mismatched comparison modes. 22323 223242009-05-20 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 22325 22326 * config/arm/arm.md (*arm_iorsi3): Refactored for only ARM. 22327 (peephole ior (reg, int) -> mov, ior): Refactored for only ARM. 22328 * config/arm/thumb2.md (*thumb_andsi_not_shiftsi_si): Allow bic 22329 with shifts for Thumb2. 22330 (orsi_notsi): New for orn. 22331 (*thumb_orsi_notshiftsi_si): Allow orn with shifts. 22332 (*thumb2_iorsi3): Rewrite support for iorsi for Thumb2. 22333 * config/arm/arm.c (const_ok_for_op): Split case for IOR for Thumb2. 22334 (arm_gen_constant): Set can_invert for IOR and Thumb2, Add comments. 22335 Don't invert remainder for IOR. 22336 223372009-05-19 Zdenek Dvorak <ook@ucw.cz> 22338 22339 PR tree-optimization/40087 22340 * tree-ssa-loop-niter.c (number_of_iterations_ne_max, 22341 number_of_iterations_ne): Rename never_infinite argument. 22342 (number_of_iterations_lt_to_ne, number_of_iterations_lt, 22343 number_of_iterations_le): Handle pointer-type ivs when 22344 exit_must_be_taken is false. 22345 (number_of_iterations_cond): Do not always assume that 22346 exit_must_be_taken if the control variable is a pointer. 22347 223482009-05-19 Andrew Pinski <andrew_pinski@playstation.sony.com> 22349 22350 * c-typeck.c (build_binary_op): Allow % on integal vectors. 22351 * doc/extend.texi (Vector Extension): Document that % is allowed too. 22352 223532009-05-19 H.J. Lu <hongjiu.lu@intel.com> 22354 22355 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Check 22356 ASM_OUTPUT_MAX_SKIP_PAD instead of ASM_OUTPUT_MAX_SKIP_ALIGN. 22357 223582009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 22359 22360 PR c/40172 22361 * c.opt (Wlogical-op): Disabled by default. 22362 * c-opt (c_common_post_options): Do not enable Wlogical-op with 22363 Wextra. 22364 * doc/invoke.texi (Wlogical-op): Likewise. 22365 223662009-05-19 Eric Botcazou <ebotcazou@adacore.com> 22367 22368 * tree-scalar-evolution.c (follow_ssa_edge_expr) <NOP_EXPR>: Turn 22369 into CASE_CONVERT. 22370 <PLUS_EXPR>: Strip useless type conversions instead of type nops. 22371 Propagate the type of the first operand. 22372 <ASSERT_EXPR>: Simplify. 22373 (follow_ssa_edge_in_rhs): Use gimple_expr_type to get the type. 22374 Rewrite using the RHS code as discriminant. 22375 <NOP_EXPR>: Turn into CASE_CONVERT. 22376 <PLUS_EXPR>: Propagate the type of the first operand. 22377 223782009-05-19 Steve Ellcey <sje@cup.hp.com> 22379 22380 * config/ia64/ia64-protos.h (ia64_dconst_0_5): New. 22381 (ia64_dconst_0_375): New. 22382 * config/ia64/ia64.c (ia64_override_options): Remove 22383 -minline-sqrt-min-latency warning. 22384 (ia64_dconst_0_5_rtx, ia64_dconst_0_5): New. 22385 (ia64_dconst_0_375_rtx, ia64_dconst_0_375): New 22386 * config/ia64/ia64.md (*sqrt_approx): Remove. 22387 (sqrtsf2): Remove #if 0. 22388 (sqrtsf2_internal_thr): Rewrite and move to div.md. 22389 (sqrtdf): Remove assert. 22390 (sqrtdf2_internal_thr): Rewrite and move to div.md. 22391 (sqrtxf2): Remove #if 0. 22392 (sqrtxf2_internal_thr): Rewrite and move to div.md. 22393 * div.md (sqrt_approx_rf): New. 22394 (sqrtsf2_internal_thr): New implementation. 22395 (sqrtsf2_internal_lat): New. 22396 (sqrtdf2_internal_thr: New implementation. 22397 (sqrtxf2_internal): New implementation. 22398 223992009-05-19 Francois-Xavier Coudert <fxcoudert@gmail.com> 22400 Hans-Peter Nilsson <hp@axis.com> 22401 22402 * defaults.h (UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE) 22403 (WCHAR_TYPE, MODIFIED_WCHAR_TYPE, PTRDIFF_TYPE, WINT_TYPE) 22404 (INTMAX_TYPE, UINTMAX_TYPE, SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE) 22405 (INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE) 22406 (UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE) 22407 (INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE) 22408 (UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE) 22409 (INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE) 22410 (UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE) 22411 (SIZE_TYPE, PID_TYPE, CHAR16_TYPE, CHAR32_TYPE): Move defaults here... 22412 * c-common.c: ...from here. 22413 224142009-05-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 22415 22416 * c-common.c (warn_logical_operator): Remove unnecessary conditionals. 22417 224182009-05-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 22419 22420 * builtins.c (do_mpc_arg1): Separate MPFR/MPC C rounding types. 22421 224222009-05-19 Ben Elliston <bje@au.ibm.com> 22423 22424 * unwind-dw2-fde.c (fde_unencoded_compare): Replace type punning 22425 assignments with memcpy calls. 22426 (add_fdes): Likewise. 22427 (binary_search_unencoded_fdes): Likewise. 22428 (linear_search_fdes): Eliminate type puns. 22429 224302009-05-19 Richard Guenther <rguenther@suse.de> 22431 22432 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do 22433 not falsely claim to have propagated into all uses. 22434 224352009-05-19 Ben Elliston <bje@au.ibm.com> 22436 22437 * doc/invoke.texi (C Dialect Options): Update OpenMP specification 22438 version to v3.0. 22439 224402009-05-18 Kaz Kojima <kkojima@gcc.gnu.org> 22441 22442 * config/sh/sh-protos.h (sh_legitimate_address_p): Remove. 22443 * config/sh/sh.c (sh_legitimate_address_p): Make static. 22444 (TARGET_LEGITIMATE_ADDRESS_P): New. 22445 * config/sh/sh.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 22446 * config/sh/sh.md: Clean up references to GO_IF_LEGITIMATE_ADDRESS. 22447 224482009-05-18 Dodji Seketeli <dodji@redhat.com> 22449 22450 PR debug/40109 22451 * dwarf2out.c (gen_type_die_with_usage): Generate the DIE as a 22452 child of the containing namespace's DIE. 22453 224542009-05-18 Adam Nemet <anemet@caviumnetworks.com> 22455 22456 * config/mips/mips.md (*zero_extend<GPR:mode>_trunc<SHORT:mode>, 22457 *zero_extendhi_truncqi): Move after the zero_extend patterns. 22458 (*extenddi_truncate<mode>, *extendsi_truncate<mode>): Move after the 22459 extend patterns. 22460 224612009-05-18 H.J. Lu <hongjiu.lu@intel.com> 22462 22463 PR target/39942 22464 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Replace 22465 gen_align with gen_pad. 22466 (ix86_reorg): Check ASM_OUTPUT_MAX_SKIP_PAD instead of 22467 #ifdef ASM_OUTPUT_MAX_SKIP_ALIGN. 22468 22469 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): New. 22470 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. 22471 22472 * config/i386/i386.md (align): Renamed to ... 22473 (pad): This. Replace ASM_OUTPUT_MAX_SKIP_ALIGN with 22474 ASM_OUTPUT_MAX_SKIP_PAD. 22475 224762009-05-18 Andreas Schwab <schwab@linux-m68k.org> 22477 22478 * config.gcc: Fix variable syntax. 22479 22480 PR target/39531 22481 * config/m68k/m68k.c (output_andsi3): Mask off sign bit copies 22482 before calling exact_log2. 22483 (output_iorsi3): Likewise. 22484 (output_xorsi3): Likewise. 22485 224862009-05-18 Kaz Kojima <kkojima@gcc.gnu.org> 22487 22488 * config/sh/sh.c (expand_cbranchdi4): Use a scratch register 22489 for the none zero constant operand except for EQ and NE 22490 comprisons even when the first operand is R0. 22491 224922009-05-18 Andreas Krebbel <krebbel1@de.ibm.com> 22493 22494 * config/s390/2064.md: Remove trailing whitespaces. 22495 * config/s390/2084.md: Likewise. 22496 * config/s390/constraints.md: Likewise. 22497 * config/s390/fixdfdi.h: Likewise. 22498 * config/s390/libgcc-glibc.ver: Likewise. 22499 * config/s390/s390-modes.def: Likewise. 22500 * config/s390/s390-protos.h: Likewise. 22501 * config/s390/s390.c: Likewise. 22502 * config/s390/s390.h: Likewise. 22503 * config/s390/s390.md: Likewise. 22504 * config/s390/tpf-unwind.h: Likewise. 22505 225062009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com> 22507 22508 * config/m68k/m68k.c (m68k_legitimize_address): Fix typo in signature. 22509 225102009-05-18 Maxim Kuvyrkov <maxim@codesourcery.com> 22511 22512 M68K TLS support. 22513 * configure.ac (m68k-*-*): Check if binutils support TLS. 22514 * configure: Regenerate. 22515 * config/m68k/predicates.md (symbolic_operand): Extend comment. 22516 * config/m68k/constraints.md (Cu): New constraint. 22517 * config/m68k/m68k.md (UNSPEC_GOTOFF): Remove. 22518 (UNSPEC_RELOC16, UNSPEC_RELOC32): New constants. 22519 (movsi): Handle TLS symbols. 22520 (addsi3_5200): Handle XTLS symbols, indent. 22521 * config/m68k/m68k-protos.h (m68k_legitimize_tls_address): Declare. 22522 (m68k_tls_reference_p): Declare. 22523 (m68k_legitimize_address): Declare. 22524 (m68k_unwrap_symbol): Declare. 22525 * config/m68k/m68k.opt (mxtls): New option. 22526 * config/m68k/m68k.c (ggc.h): Include. 22527 (m68k_output_dwarf_dtprel): Implement hook. 22528 (TARGET_HAVE_TLS, TARGET_ASM_OUTPUT_DWARF_DTPREL): Define. 22529 (m68k_expand_prologue): Load GOT pointer when function needs it. 22530 (m68k_illegitimate_symbolic_constant_p): Handle TLS symbols. 22531 (m68k_legitimate_constant_address_p): Same. 22532 (m68k_decompose_address): Handle TLS references. 22533 (m68k_get_gp): New static function. 22534 (enum m68k_reloc): New contants. 22535 (TLS_RELOC_P): New macro. 22536 (m68k_wrap_symbol): New static function. 22537 (m68k_unwrap_symbol): New function. 22538 (m68k_final_prescan_insn_1): New static function. 22539 (m68k_final_prescan_insn): New function. 22540 (m68k_move_to_reg, m68k_wrap_symbol_into_got_ref): New static 22541 functions. 22542 (legitimize_pic_address): Handle TLS references.. 22543 (m68k_tls_get_addr, m68k_get_tls_get_addr) 22544 (m68k_libcall_value_in_a0_p) 22545 (m68k_call_tls_get_addr, m68k_read_tp, m68k_get_m68k_read_tp) 22546 (m68k_call_m68k_read_tp): Helper variables and functions for ... 22547 (m68k_legitimize_tls_address): Handle TLS references. 22548 (m68k_tls_symbol_p, m68k_tls_reference_p_1, m68k_tls_reference_p): 22549 New functions. 22550 (m68k_legitimize_address): Handle TLS symbols. 22551 (m68k_get_reloc_decoration): New static function. 22552 (m68k_output_addr_const_extra): Handle UNSPEC_RELOC16 and 22553 UNSPEC_RELOC32. 22554 (m68k_output_dwarf_dtprel): Implement hook. 22555 (print_operand_address): Handle UNSPEC_RELOC16 adn UNSPEC_RELOC32. 22556 (m68k_libcall_value): Return result in A0 instead of D0 when asked by 22557 m68k_call_* routines. 22558 (sched_attr_op_type): Handle TLS symbols. 22559 (gt-m68k.h): Include. 22560 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define. 22561 (LEGITIMATE_PIC_OPERAND_P): Support TLS. 22562 225632009-05-18 Martin Jambor <mjambor@suse.cz> 22564 22565 * ipa-prop.c (ipa_check_stmt_modifications): Removed. 22566 (visit_store_addr_for_mod_analysis): New function. 22567 (ipa_detect_param_modifications): Use walk_stmt_load_store_addr_ops. 22568 (determine_cst_member_ptr): Use gimple_assign_single_p. 22569 (ipa_get_stmt_member_ptr_load_param): Use gimple_assign_single_p. 22570 (ipa_analyze_call_uses): Use !gimple_assign_rhs2 rather than number of 22571 operands. Don't check number of operands of a NOP_EXPR. 22572 225732009-05-18 Eric Fisher <joefoxreal@gmail.com> 22574 22575 * doc/tree-ssa.texi (SSA Operands): Fix a mistake. 22576 225772009-05-17 Manuel López-Ibáñez <manu@gcc.gnu.org> 22578 22579 PR c/40172 22580 * c-common.c (warn_logical_operator): Don't warn if one of 22581 expression isn't always true or false. 22582 225832009-05-17 Kai Tietz <kai.tietz@onevision.com> 22584 22585 * config/i386/biarch32.h: New file. 22586 * config.gcc: Add for target i386-w64-* the biarch32.h to tm_file. 22587 225882009-05-17 Adam Nemet <anemet@caviumnetworks.com> 22589 22590 * config/mips/mips.md (*zero_extend<mode>_trunchi, 22591 *zero_extend<mode>_truncqi): Merge these into ... 22592 (*zero_extend<GPR:mode>_trunc<SHORT:mode>): ... this new pattern. 22593 Name the pattern following this as *zero_extendhi_truncqi. 22594 225952009-05-16 Brad Lucier <lucier@math.purdue.edu> 22596 22597 PR middle-end/39301 22598 * hwint.h: Add macro HOST_WIDEST_INT_PRINT. 22599 * bitmap.c (bitmap_descriptor): Make fields HOST_WIDEST_INT. 22600 (output_info): Make field HOST_WIDEST_INT. 22601 (print_statistics): Use HOST_WIDEST_INT_PRINT. 22602 (dump_bitmat_statistics): Same. 22603 226042009-05-16 Francois-Xavier Coudert <fxcoudert@gmail.com> 22605 22606 * config.gcc (use_gcc_stdint): Set to wrap. 22607 * config/darwin.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, 22608 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, 22609 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 22610 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 22611 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 22612 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 22613 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 22614 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. 22615 226162009-05-16 Joseph Myers <joseph@codesourcery.com> 22617 22618 * config.gcc (mips*-*-*): Support arch_32, arch_64, tune_32 and 22619 tune_64. 22620 * config/mips/mips.h (MIPS_ABI_DEFAULT, MULTILIB_ABI_DEFAULT): 22621 Move definitions earlier. 22622 (OPT_ARCH64, OPT_ARCH32): Define. 22623 (OPTION_DEFAULT_SPECS): Add entries for arch_32, arch_64, tune_32 22624 and tune_64. 22625 226262009-05-16 Richard Earnshaw <rearnsha@arm.com> 22627 22628 PR target/40153 22629 * arm.md (cstoresi_nltu_thumb1): Use a neg of ltu as the pattern name 22630 implies. 22631 226322009-05-16 Richard Earnshaw <rearnsha@arm.com> 22633 22634 * arm.md (movdi2): Copy non-reg values to DImode registers. 22635 226362009-05-16 Jakub Jelinek <jakub@redhat.com> 22637 22638 PR target/39942 22639 * final.c (label_to_max_skip): New function. 22640 (label_to_alignment): Only use LABEL_TO_ALIGNMENT if 22641 CODE_LABEL_NUMBER <= max_labelno. 22642 * output.h (label_to_max_skip): New prototype. 22643 * config/i386/i386.c (ix86_avoid_jump_misspredicts): Renamed to... 22644 (ix86_avoid_jump_mispredicts): ... this. Don't define if 22645 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. Update comment. 22646 Handle CODE_LABELs with >= 16 byte alignment or with 22647 max_skip == (1 << align) - 1. 22648 (ix86_reorg): Don't call ix86_avoid_jump_mispredicts if 22649 ASM_OUTPUT_MAX_SKIP_ALIGN isn't defined. 22650 22651 PR target/39942 22652 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Don't emit second 22653 .p2align 3 if MAX_SKIP is smaller than 7. 22654 * config/i386/linux.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 22655 226562009-05-15 Ian Lance Taylor <iant@google.com> 22657 22658 * alias.c (struct alias_set_entry_d): Rename from struct 22659 alias_set_entry. Change all uses. 22660 * except.c (struct call_site_record_d): Rename from struct 22661 call_site_record. Change all uses. 22662 * except.h (struct eh_region_d): Rename from struct eh_region. 22663 Change all uses. 22664 * gcse.c (struct hash_table_d): Rename from struct hash_table. 22665 Change all uses. 22666 * graphite.c (struct ivtype_map_elt_d): Rename fromstruct 22667 ivtype_map_elt. Change all uses. 22668 (struct rename_map_elt_d): Rename fromstruct rename_map_elt. 22669 Change all uses. 22670 (struct ifsese_d): Rename fromstruct ifsese. Change all uses. 22671 * graphite.h (struct name_tree_d): Rename from struct name_tree. 22672 Change all uses. 22673 (struct sese_d): Rename from struct sese. Change all uses. 22674 * omega.h (struct eqn_d): Rename from struct eqn. Change all uses. 22675 (struct omega_pb_d): Rename from struct omega_pb. Change all uses. 22676 * optabs.h (struct optab_d): Rename from struct optab. Change all 22677 uses. 22678 (struct convert_optab_d): Rename from struct convert_optab. 22679 Change all uses. 22680 * tree-pass.h (struct ipa_opt_pass_d): Rename fromstruct 22681 ipa_opt_pass. Change all uses. 22682 * tree-predcom.c (struct dref_d): Rename from struct dref. Change 22683 all uses. 22684 22685 * c-decl.c (pushtag): If -Wc++-compat, warn if the tag is already 22686 defined as a typedef. 22687 (grokdeclarator): If -Wc++-compat, warn if a typedef is already 22688 defined as a tag. 22689 226902009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 22691 22692 PR 16302 22693 * fold-const.c (make_range,build_range_check,merge_ranges): Move 22694 declaration to... 22695 (merge_ranges): Returns bool. 22696 * tree.h (make_range): .. to here. 22697 (build_range_check): Likewise. 22698 (merge_ranges): Likewise. Renamed from merge_ranges. 22699 * c-typeck.c (parser_build_binary_op): Update calls to 22700 warn_logical_operator. 22701 * c-common.c (warn_logical_operator): Add new warning. 22702 * c-common.h (warn_logical_operator): Update declaration. 22703 227042009-05-15 Manuel López-Ibáñez <manu@gcc.gnu.org> 22705 22706 * ira-conflicts.c (add_insn_allocno_copies): Fix wrong conditional. 22707 227082009-05-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 22709 22710 * doc/install.texi: Document MPC requirements, flags etc. 22711 22712 * builtins.c (do_mpc_arg1, fold_builtin_ccos): New. 22713 (fold_builtin_cexp): Ensure we get a complex REAL_TYPE. 22714 Evaluate constant arguments. 22715 (fold_builtin_carg): Ensure we get a complex REAL_TYPE. 22716 (fold_builtin_1): Likewise, also evaluate constant arguments. 22717 Remove superfluous break. 22718 (do_mpc_ckconv): New. 22719 * real.h: Include mpc.h. 22720 * toplev.c (print_version): Output MPC version info if available. 22721 227222009-05-15 Sandra Loosemore <sandra@codesourcery.com> 22723 22724 * fold-const.c (fold_convert_const_real_from_real): Check for overflow. 22725 227262009-05-15 H.J. Lu <hongjiu.lu@intel.com> 22727 22728 * config/i386/i386.c (ix86_reorg): Call optimize_function_for_speed_p 22729 only once. 22730 227312009-05-15 Jan Hubicka <jh@suse.cz> 22732 22733 * doc/invoke.texi (max-early-inliner-iterations): New flag. 22734 * ipa-inline.c (enum inlining_mode): New INLINE_SIZE_NORECURSIVE. 22735 (try_inline): Fix return value. 22736 (cgraph_decide_inlining_incrementally): Honor new value. 22737 (cgraph_early_inlining): Handle indirect inlining. 22738 * params.def (PARAM_EARLY_INLINER_MAX_ITERATIONS): New. 22739 227402009-05-15 Jan Hubicka <jh@suse.cz> 22741 22742 * cgraph.h (struct cgraph_node): Add finalized_by_frotnend flag. 22743 * cgraphunit.c (cgraph_finalize_function): Set it. 22744 (cgraph_expand_function): Use it. 22745 227462009-05-15 Sandra Loosemore <sandra@codesourcery.com> 22747 22748 * real.c (encode_ieee_half): Define. 22749 (decode_ieee_half): Define. 22750 (ieee_half_format): Define. 22751 (arm_half_format): Define. 22752 * real.h (ieee_half_format): Declare. 22753 (arm_half_format): Declare. 22754 227552009-05-15 Sandra Loosemore <sandra@codesourcery.com> 22756 22757 * optabs.c (prepare_float_lib_cmp): Test that the comparison, 22758 swapped, and reversed optabs exist before trying to use them. 22759 227602009-05-15 Paul Brook <paul@codesourcery.com> 22761 Sandra Loosemore <sandra@codesourcery.com> 22762 22763 * config/arm/arm.c (neon_vector_mem_operand): Handle element/structure 22764 loads. Allow PRE_DEC. 22765 (output_move_neon): Handle PRE_DEC. 22766 (arm_print_operand): Add 'A' for neon structure loads. 22767 * config/arm/arm-protos.h (neon_vector_mem_operand): Update prototype. 22768 * config/arm/neon.md (neon_mov): Update comment. 22769 * config/arm/constraints.md (Un, Us): Update neon_vector_mem_operand 22770 calls. 22771 (Um): New constraint. 22772 227732009-05-15 Jan Hubicka <jh@suse.cz> 22774 22775 Revert the following patch until testsuite fallout is fixed: 22776 * cgraph.c (dump_cgraph_node): Dump size/time/benefit. 22777 * cgraph.h (struct inline_summary): New filed self_wize, 22778 size_inlining_benefit, self_time and time_inlining_benefit. 22779 (struct cgraph_global_info): Replace insns by time ans size fields. 22780 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size 22781 (ipcp_estimate_growth, ipcp_insert_stage): Likewise. 22782 (ipcp_update_callgraph): Do not touch function bodies. 22783 * ipa-inline.c: Include except.h 22784 (MAX_TIME): New constant. 22785 (overall_insns): Remove 22786 (overall_size, max_benefit): New static variables. 22787 (cgraph_estimate_time_after_inlining): New function. 22788 (cgraph_estimate_size_after_inlining): Rewrite using benefits. 22789 (cgraph_clone_inlined_nodes): Update size. 22790 (cgraph_mark_inline_edge): Update size. 22791 (cgraph_estimate_growth): Use size info. 22792 (cgraph_check_inline_limits): Check size. 22793 (cgraph_default_inline_p): Likewise. 22794 (cgraph_edge_badness): Compute badness based on benefit and size cost. 22795 (cgraph_decide_recursive_inlining): Check size. 22796 (cgraph_decide_inlining_of_small_function): Update size; dump sizes 22797 and times. 22798 (cgraph_decide_inlining): Likewise. 22799 (cgraph_decide_inlining_incrementally): Likewise; honor 22800 PARAM_EARLY_INLINING_INSNS. 22801 (likely_eliminated_by_inlining_p): New predicate. 22802 (estimate_function_body_sizes): New function. 22803 (compute_inline_parameters): Use it. 22804 * except.c (must_not_throw_labels): New function. 22805 * except.h (must_not_throw_labels): Declare. 22806 * tree-inline.c (init_inline_once): Kill inlining_weigths 22807 * tree-ssa-structalias.c: Avoid uninitialized warning. 22808 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. 22809 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. 22810 (PARAM_INLINE_CALL_COST): Remove. 22811 (PARAM_EARLY_INLINING_INSNS): New. 22812 228132009-05-15 Richard Guenther <rguenther@suse.de> 22814 22815 * tree-ssa-pre.c (eliminate): Use TODO_update_ssa_only_virtuals, 22816 not TODO_update_ssa. 22817 228182009-05-15 Richard Guenther <rguenther@suse.de> 22819 22820 PR tree-optimization/39999 22821 * gimple.h (gimple_expr_type): Use the expression type looking 22822 through useless conversions. 22823 * tree-ssa-sccvn.c (vn_nary_op_lookup_stmt): Use gimple_expr_type. 22824 (vn_nary_op_insert_stmt): Likewise. 22825 (simplify_binary_expression): Likewise. 22826 228272009-05-15 Richard Guenther <rguenther@suse.de> 22828 22829 * common.opt (-ftree-forwprop, -ftree-phiprop, -ftree-pta): 22830 New options, enabled by default. 22831 * doc/invoke.texi (-ftree-forwprop, -ftree-phiprop, -ftree-pta): 22832 Document. 22833 * tree-ssa-forwprop.c (gate_forwprop): Use flag_tree_forwprop. 22834 * tree-ssa-phiprop.c (gate_phiprop): Use flag_tree_phiprop. 22835 * tree-ssa-structalias.c (gate_tree_pta): New function. 22836 (pass_build_alias): Use it. 22837 228382009-05-15 Joseph Myers <joseph@codesourcery.com> 22839 22840 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Also 22841 recurse on an invariant address if a conversion from a pointer 22842 type to a wider integer type is involved. 22843 228442009-05-15 Jan Hubicka <jh@suse.cz> 22845 22846 * cgraph.c (dump_cgraph_node): Dump size/time/benefit. 22847 * cgraph.h (struct inline_summary): New filed self_wize, 22848 size_inlining_benefit, self_time and time_inlining_benefit. 22849 (struct cgraph_global_info): Replace insns by time ans size fields. 22850 * ipa-cp (ipcp_cloning_candidate_p): Base estimate on size 22851 (ipcp_estimate_growth, ipcp_insert_stage): Likewise. 22852 (ipcp_update_callgraph): Do not touch function bodies. 22853 * ipa-inline.c: Include except.h 22854 (MAX_TIME): New constant. 22855 (overall_insns): Remove 22856 (overall_size, max_benefit): New static variables. 22857 (cgraph_estimate_time_after_inlining): New function. 22858 (cgraph_estimate_size_after_inlining): Rewrite using benefits. 22859 (cgraph_clone_inlined_nodes): Update size. 22860 (cgraph_mark_inline_edge): Update size. 22861 (cgraph_estimate_growth): Use size info. 22862 (cgraph_check_inline_limits): Check size. 22863 (cgraph_default_inline_p): Likewise. 22864 (cgraph_edge_badness): Compute badness based on benefit and size cost. 22865 (cgraph_decide_recursive_inlining): Check size. 22866 (cgraph_decide_inlining_of_small_function): Update size; dump sizes 22867 and times. 22868 (cgraph_decide_inlining): Likewise. 22869 (cgraph_decide_inlining_incrementally): Likewise; honor 22870 PARAM_EARLY_INLINING_INSNS. 22871 (likely_eliminated_by_inlining_p): New predicate. 22872 (estimate_function_body_sizes): New function. 22873 (compute_inline_parameters): Use it. 22874 * except.c (must_not_throw_labels): New function. 22875 * except.h (must_not_throw_labels): Declare. 22876 * tree-inline.c (init_inline_once): Kill inlining_weigths 22877 * tree-ssa-structalias.c: Avoid uninitialized warning. 22878 * params.def (PARAM_MAX_INLINE_INSNS_SINGLE): Reduce to 300. 22879 (PARAM_MAX_INLINE_INSNS_AUTO): Reduce to 60. 22880 (PARAM_INLINE_CALL_COST): Remove. 22881 (PARAM_EARLY_INLINING_INSNS): New. 22882 doc/invoke.texi (max-inline-insns-auto, early-inlining-insns): Update. 22883 (inline-call-cost): Remove. 22884 (early-inlining-insns): New. 22885 228862009-05-15 Eric Botcazou <ebotcazou@adacore.com> 22887 22888 * dbxout.c (dbxout_range_type): Add LOW and HIGH parameters. Use them 22889 for bounds. 22890 (print_int_cst_bounds_in_octal_p): Likewise. 22891 (dbxout_type): Adjust calls to above functions. Be prepared to deal 22892 with subtypes. 22893 * dwarf2out.c (base_type_die): Likewise. 22894 (is_subrange_type): Delete. 22895 (subrange_type_die): Add LOW and HIGH parameters. Use them for bounds. 22896 (modified_type_die): Call subrange_type_for_debug_p on subtypes. 22897 * fold-const.c (fold_truth_not_expr) <CONVERT_EXPR>: Do not strip it 22898 if the destination type is boolean. 22899 (build_range_check): Do not special-case subtypes. 22900 (fold_sign_changed_comparison): Likewise. 22901 (fold_unary): Likewise. 22902 * langhooks-def.h (LANG_HOOKS_GET_SUBRANGE_BOUNDS): Define. 22903 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add LANG_HOOKS_GET_SUBRANGE_BOUNDS. 22904 * langhooks.h (lang_hooks_for_types): Add get_subrange_bounds. 22905 * tree.c (subrange_type_for_debug_p): New predicate based on the 22906 former is_subrange_type. 22907 * tree.h (subrange_type_for_debug_p): Declare. 22908 * tree-chrec.c (avoid_arithmetics_in_type_p): Delete. 22909 (convert_affine_scev): Remove call to above function. 22910 (chrec_convert_aggressive): Likewise. 22911 * tree-ssa.c (useless_type_conversion_p_1): Do not specifically return 22912 false for conversions involving subtypes. 22913 * tree-vrp.c (vrp_val_max): Do not special-case subtypes. 22914 (vrp_val_min): Likewise. 22915 (needs_overflow_infinity): Likewise. 22916 (extract_range_from_unary_expr): Likewise. 22917 229182009-05-15 Paolo Bonzini <bonzini@gnu.org> 22919 22920 * config/frv/frv.h: Clean up references to GO_IF_LEGITIMATE_ADDRESS. 22921 * config/frv/frv.c: Likewise. 22922 * config/s390/s390.c: Likewise. 22923 * config/sparc/sparc.h: Likewise. 22924 * config/i386/i386.h: Likewise. 22925 * config/i386/i386.c: Likewise. 22926 * config/crx/crx.c: Likewise. 22927 * config/m68hc11/m68hc11.h: Likewise. 22928 * config/iq2000/iq2000.c: Likewise. 22929 * config/mn10300/mn10300.h: Likewise. 22930 * config/mn10300/mn10300.c: Likewise. 22931 * config/m68k/m68k.c: Likewise. 22932 * config/rs6000/rs6000.c: Likewise. 22933 * config/rs6000/xcoff.h: Likewise. 22934 * config/rs6000/linux64.h: Likewise. 22935 * config/rs6000/sysv4.h: Likewise. 22936 * config/score/score3.c: Likewise. 22937 * config/score/score7.c: Likewise. 22938 * config/score/score.c: Likewise. 22939 * config/arm/arm.md: Likewise. 22940 * config/mips/mips.c: Likewise. 22941 * config/mips/mips.md: Likewise. 22942 * config/bfin/bfin.h: Likewise. 22943 * config/pa/pa.c: Likewise. 22944 * config/pa/constraints.md: Likewise. 22945 22946 * config/pdp11/pdp11-protos.h (legitimate_address_p): Delete. 22947 * config/pdp11/pdp11.c (legitimate_address_p): Delete. 22948 * config/pdp11/pdp11.h: Use memory_address_p instead. 22949 229502009-05-14 Ian Lance Taylor <iant@google.com> 22951 22952 * passes.c (finish_optimization_passes): Change i to int. 22953 * plugin.c (plugins_active_p): Change event to int. 22954 (dump_active_plugins): Likewise. 22955 * reginfo.c (invalid_mode_change_p): Change to to unsigned int. 22956 Add cast. 22957 * tree.c (tree_range_check_failed): Change c to unsigned int. 22958 (omp_clause_range_check_failed): Likewise. 22959 (build_common_builtin_nodes): Change mode to int. Add cast. 22960 * config/ia64/ia64.c (is_emitted): Change r to unsigned int. 22961 (ia64_hard_regno_rename_ok, ia64_eh_uses): Likewise. 22962 22963 * c-typeck.c (build_unary_op): If -Wc++-compat, warn about using 22964 ++ or -- with a variable of enum type. 22965 229662009-05-14 Steven Bosscher <steven@gcc.gnu.org> 22967 22968 PR driver/40144 22969 * opts.c (common_handle_option): Add OPT_fcse_skip_blocks as a no-op. 22970 229712009-05-14 Steven Bosscher <steven@gcc.gnu.org> 22972 22973 * store-motion.c: Do not include params.h 22974 * Makefile.in: Fix dependencies for various files. 22975 229762009-05-14 Steven Bosscher <steven@gcc.gnu.org> 22977 22978 * auto-inc-dec.c: Fix pass description, remove apparent 22979 accidental duplication. 22980 229812009-05-14 H.J. Lu <hongjiu.lu@intel.com> 22982 22983 PR middle-end/40147 22984 * ipa-utils.h (memory_identifier_string): Moved to ... 22985 * tree.h (memory_identifier_string): Here. Add GTY(()). 22986 229872009-05-14 Paolo Bonzini <bonzini@gnu.org> 22988 22989 * doc/tm.texi (TARGET_LEGITIMATE_ADDRESS_P): Refer mainly to this 22990 in the former documentation of... 22991 (GO_IF_LEGITIMATE_ADDRESS): ... this. 22992 * ira-conflicts.c (get_dup_num): Use address_operand. 22993 * targhooks.c (default_legitimate_address_p): New. 22994 * targhooks.h (default_legitimate_address_p): New. 22995 * reload.c (strict_memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: 22996 Call hook. 22997 * recog.c (memory_address_p) [!GO_IF_LEGITIMATE_ADDRESS]: Call hook. 22998 * target.h (struct target): Add legitimate_address_p. 22999 * target-def.h (TARGET_LEGITIMATE_ADDRESS_P): New. 23000 (TARGET_INITIALIZER): Include it. 23001 23002 * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23003 * config/alpha/alpha-protos.h (alpha_legitimate_address_p): Remove. 23004 * config/alpha/alpha.c (alpha_legitimate_address_p): Make static. 23005 (TARGET_LEGITIMATE_ADDRESS_P): New. 23006 23007 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23008 (REG_OK_STRICT_P): Delete. 23009 * config/frv/frv-protos.h (frv_legitimate_address_p): Rename to... 23010 (frv_legitimate_address_p_1): ... this. 23011 * config/frv/frv.c (frv_legitimate_address_p): Forward to... 23012 (frv_legitimate_address_p_1): ... the renamed old 23013 frv_legitimate_address_p. 23014 * config/frv/predicates.md: Adjust calls to frv_legitimate_address_p. 23015 (TARGET_LEGITIMATE_ADDRESS_P): New. 23016 23017 * config/s390/s390.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23018 * config/s390/s390-protos.h (legitimate_address_p): Remove. 23019 * config/s390/s390.c (legitimate_address_p): Rename to... 23020 (s390_legitimate_address_p): ... this, make static. 23021 (legitimize_address): Adjust call. 23022 (TARGET_LEGITIMATE_ADDRESS_P): New. 23023 * config/s390/constraints.md ("e"): Call strict_memory_address_p. 23024 23025 * config/m32c/m32c.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23026 * config/m32c/m32c-protos.h (m32c_legitimate_address_p): Remove. 23027 * config/m32c/m32c.c (m32c_legitimate_address_p): Make static. 23028 (TARGET_LEGITIMATE_ADDRESS_P): New. 23029 23030 * config/spu/spu.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23031 * config/spu/spu-protos.h (spu_legitimate_address): Remove. 23032 * config/spu/spu.c (spu_legitimate_address): Rename to... 23033 (spu_legitimate_address_p): ... this, make static. 23034 (TARGET_LEGITIMATE_ADDRESS_P): New. 23035 23036 * config/sparc/sparc.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23037 * config/sparc/sparc-protos.h (legitimate_address_p): Remove. 23038 * config/sparc/sparc.c (legitimate_address_p): Rename to... 23039 (sparc_legitimate_address_p): ... this, make static and return bool. 23040 (legitimize_address): Adjust call. 23041 (TARGET_LEGITIMATE_ADDRESS_P): New. 23042 23043 * config/i386/i386.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23044 * config/i386/i386-protos.h (legitimate_address_p): Remove. 23045 * config/i386/i386.c (legitimate_address_p): Rename to... 23046 (ix86_legitimate_address_p): ... this, make static. 23047 (constant_address_p): Move after it, adjust call. 23048 (TARGET_LEGITIMATE_ADDRESS_P): New. 23049 23050 * config/avr/avr.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23051 * config/avr/avr-protos.h (legitimate_address_p): Remove. 23052 * config/avr/avr.c (legitimate_address_p): Rename to... 23053 (avr_legitimate_address_p): ... this, make static. 23054 (legitimize_address): Adjust call. 23055 (TARGET_LEGITIMATE_ADDRESS_P): New. 23056 23057 * config/crx/crx.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23058 * config/crx/crx-protos.h (crx_legitimate_address_p): Remove. 23059 * config/crx/crx.c (crx_legitimate_address_p): Make static. 23060 (TARGET_LEGITIMATE_ADDRESS_P): New. 23061 23062 * config/xtensa/xtensa.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23063 * config/xtensa/xtensa-protos.h (xtensa_legitimate_address_p): Remove. 23064 * config/xtensa/xtensa.c (xtensa_legitimate_address_p): Make static. 23065 (TARGET_LEGITIMATE_ADDRESS_P): New. 23066 23067 * config/stormy16/stormy16.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23068 * config/stormy16/stormy16-protos.h (xstormy16_legitimate_address_p): 23069 Remove. 23070 * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): 23071 Make static. 23072 (TARGET_LEGITIMATE_ADDRESS_P): New. 23073 23074 * config/m68hc11/m68hc11.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23075 * config/m68hc11/m68hc11-protos.h (m68hc11_go_if_legitimate_address): 23076 Remove. 23077 * config/m68hc11/m68hc11.c (m68hc11_go_if_legitimate_address): 23078 Rename to... 23079 (m68hc11_legitimate_address_p): ... this, make static. 23080 (go_if_legitimate_address_internal): Rename to... 23081 (m68hc11_legitimate_address_p_1): ... this. 23082 (legitimize_address): Adjust call. 23083 (TARGET_LEGITIMATE_ADDRESS_P): New. 23084 23085 * config/iq2000/iq2000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23086 * config/iq2000/iq2000-protos.h (iq2000_legitimate_address_p): Remove. 23087 * config/iq2000/iq2000.c (iq2000_legitimate_address_p): Make static. 23088 (TARGET_LEGITIMATE_ADDRESS_P): New. 23089 23090 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23091 * config/mn10300/mn10300-protos.h (legitimate_address_p): Remove. 23092 * config/mn10300/mn10300.c (legitimate_address_p): Rename to... 23093 (mn10300_legitimate_address_p): ... this, make static. 23094 (TARGET_LEGITIMATE_ADDRESS_P): New. 23095 23096 * config/m68k/m68k.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23097 * config/m68k/m68k-protos.h (m68k_legitimate_address_p): Remove. 23098 * config/m68k/m68k.c (m68k_legitimate_address_p): Make static. 23099 (TARGET_LEGITIMATE_ADDRESS_P): New. 23100 23101 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23102 (REG_OK_STRICT_FLAG, REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P): Delete. 23103 (INT_REG_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P): Move above. 23104 * config/rs6000/rs6000.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23105 * config/rs6000/rs6000-protos.h (rs6000_legitimate_address): Remove. 23106 * config/rs6000/rs6000.c (rs6000_legitimate_address): Rename to... 23107 (rs6000_legitimate_address_p): ... this, make static. 23108 (TARGET_LEGITIMATE_ADDRESS_P): New. 23109 (REG_MODE_OK_FOR_BASE_P): Delete. 23110 (rs6000_legitimize_reload_address): Use INT_REG_OK_FOR_BASE_P. 23111 23112 * config/picochip/picochip.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23113 * config/picochip/picochip-protos.h (picochip_legitimate_address_p): 23114 Delete. 23115 * config/picochip/picochip.c (picochip_legitimate_address_p): Make 23116 static, adjust types. 23117 (TARGET_LEGITIMATE_ADDRESS_P): New. 23118 23119 * config/score/score.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23120 * config/score/score.c (score_address_p): Rename to... 23121 (score_legitimate_address_p): ... this. 23122 (TARGET_LEGITIMATE_ADDRESS_P): New. 23123 * config/score/score3.c (score3_address_p): Rename to... 23124 (score3_legitimate_address_p): ... this. 23125 * config/score/score7.c (score7_address_p): Rename to... 23126 (score7_legitimate_address_p): ... this. 23127 23128 * config/arm/arm.h (ARM_GO_IF_LEGITIMATE_ADDRESS, 23129 THUMB2_GO_IF_LEGITIMATE_ADDRESS, THUMB1_GO_IF_LEGITIMATE_ADDRESS, 23130 GO_IF_LEGITIMATE_ADDRESS): Delete. 23131 * config/arm/arm-protos.h (thumb1_legitimate_address_p, 23132 thumb2_legitimate_address_p): Delete. 23133 (arm_legitimate_address_p): Rename to... 23134 (arm_legitimate_address_outer_p): ... this. 23135 * config/arm/constraints.md ("Uq"): Adjust call. 23136 * config/arm/predicates.md (arm_extendqisi_mem_op): Likewise. 23137 * config/arm/arm.c (arm_legitimate_address_p): New, rename old one 23138 to... 23139 (arm_legitimate_address_outer_p): ... this. 23140 (thumb1_legitimate_address_p, thumb2_legitimate_address_p): Make 23141 static. 23142 (TARGET_LEGITIMATE_ADDRESS_P): New. 23143 23144 * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23145 * config/mips/mips-protos.h (mips_legitimate_address_p): Remove. 23146 * config/mips/mips.c (mips_legitimate_address_p): ... Make static. 23147 (TARGET_LEGITIMATE_ADDRESS_P): New. 23148 23149 * config/vax/vax.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23150 * config/vax/vax-protos.h (legitimate_address_p): Remove. 23151 * config/vax/vax.c (legitimate_address_p): Rename to... 23152 (vax_legitimate_address_p): ... this, make static. 23153 (TARGET_LEGITIMATE_ADDRESS_P): New. 23154 23155 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23156 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Remove. 23157 * config/h8300/h8300.c (h8300_legitimate_address_p): ... Make static. 23158 (TARGET_LEGITIMATE_ADDRESS_P): New. 23159 23160 * config/mmix/mmix.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23161 * config/mmix/mmix-protos.h (mmix_legitimize_address): Remove. 23162 * config/mmix/mmix.c (mmix_legitimate_address): Rename to... 23163 (mmix_legitimate_address_p): ... this, make static. 23164 (TARGET_LEGITIMATE_ADDRESS_P): New. 23165 23166 * config/bfin/bfin.h (GO_IF_LEGITIMATE_ADDRESS): Delete. 23167 * config/bfin/bfin-protos.h (bfin_legitimate_address_p): Remove. 23168 * config/bfin/bfin.c (bfin_legitimate_address_p): ... Make static. 23169 (TARGET_LEGITIMATE_ADDRESS_P): New. 23170 231712009-05-14 Paolo Bonzini <bonzini@gnu.org> 23172 23173 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Remove handling 23174 of MODE_COMPLEX_INT. 23175 231762009-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 23177 23178 * config/alpha/alpha.c (alpha_initialize_trampoline): Change 0 to 23179 LCT_NORMAL in function call. 23180 * mips-tdump.c (print_file_desc): Add cast to enum type. 23181 * mips-tfile.c (add_ext_symbol): Add casts to enum types. 23182 (mark_stabs): Add casts to enum types. 23183 (parse_stabs_common): Add casts to enum types. 23184 231852009-05-13 Adam Nemet <anemet@caviumnetworks.com> 23186 23187 * config/mips/mips.c (mips_print_operand) <REG, MEM, default>: 23188 Check for invalid values of LETTER. 23189 231902009-05-13 Taras Glek <tglek@mozilla.com> 23191 23192 * attribs.c (register_attribute): moved out attribute registration 23193 into register_attribute. 23194 * doc/plugins.texi: Documented register_attribute and 23195 PLUGIN_ATTRIBUTES. 23196 * gcc-plugin.h: Added forward decl for register_attribute. 23197 * gcc-plugin.h (plugins_event): Added PLUGIN_ATTRIBUTES. 23198 * plugin.c (register_callback, invoke_plugin_callbacks): Added 23199 PLUGIN_ATTRIBUTES boilerplate. 23200 232012009-05-14 Dave Korn <dave.korn.cygwin@gmail.com> 23202 23203 * config/i386/msformat-c.c (ms_printf_length_specs): Use enumeration 23204 values even in sentinel and empty entries. 23205 (ms_printf_flag_specs): Likewise. 23206 (ms_scanf_flag_specs): Likewise. 23207 (ms_strftime_flag_specs): Likewise. 23208 (ms_print_char_table): Likewise. 23209 (ms_scan_char_table): Likewise. 23210 (ms_time_char_table): Likewise. 23211 232122009-05-13 Doug Kwan <dougkwan@google.com> 23213 23214 * tree-ssa-sccvn.c (compare_ops): Stabilize qsort. 23215 232162009-05-13 Adam Nemet <anemet@caviumnetworks.com> 23217 23218 * config/mips/mips.md (store): Add attributes for QI and HI. 23219 Update comment. 23220 (truncdisi2, truncdihi2, truncdiqi2): Merge these into ... 23221 (truncdi<mode>2): ... this new pattern. 23222 232232009-05-13 Brad Hards <bradh@kde.org> 23224 23225 * Makefile.in (TEXI_GCCINT_FILES): Add plugins.texi. 23226 232272009-05-14 Jakub Jelinek <jakub@redhat.com> 23228 Ben Elliston <bje@au.ibm.com> 23229 23230 PR middle-end/40035 23231 * dse.c (check_mem_read_rtx): Guard against width == -1. 23232 232332009-05-13 Michael Matz <matz@suse.de> 23234 23235 PR middle-end/39976 23236 * tree-outof-ssa.c (maybe_renumber_stmts_bb): New function. 23237 (trivially_conflicts_p): New function. 23238 (insert_backedge_copies): Use it. 23239 232402009-05-13 Janis Johnson <janis187@us.ibm.com> 23241 23242 * c-pragma.c (enum pragma_switch_t): Prefix constants with PRAGMA_. 23243 (handle_stdc_pragma): Use new enum constant names. 23244 (handle_pragma_float_const_decimal64): Ditto. 23245 232462009-05-13 Ian Lance Taylor <iant@google.com> 23247 23248 * Makefile.in (build/gencheck.o): Depend upon all-tree.def, not 23249 tree.def. 23250 232512009-05-13 Nathan Sidwell <nathan@codesourcery.com> 23252 23253 * config/m68k/t-uclinux (M68K_MLIB_CPU): Check for FL_UCLINUX. 23254 * config/m68k/m68k-devices.def: Add FL_UCLINUX to 68020 and 54455 23255 multilibs. 23256 * config/m68k/m68k.h (FL_UCLINUX): Define. 23257 232582009-05-13 Jan Hubicka <jh@suse.cz> 23259 23260 * options.c (gfc_post_options): -fwhole-program imply -fwhole-file. 23261 232622009-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 23263 23264 * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns 23265 unless -fschedule-insns is specified. 23266 232672009-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 23268 23269 PR target/39561 23270 * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set 23271 TARGET_EXPAND_CBRANCHDI4. 23272 * config/sh/sh.md (cbranchdi4): Don't check TARGET_EXPAND_CBRANCHDI4. 23273 * config/sh/sh.opt (mexpand-cbranchdi): Remove. 23274 (cmpeqdi): Fix comment. 23275 232762009-05-12 Kaz Kojima <kkojima@gcc.gnu.org> 23277 23278 * config/sh/sh-protos.h (sh_legitimate_index_p): Declare. 23279 (sh_legitimate_address_p): Likewise. 23280 * config/sh/sh.c (sh_legitimate_index_p): New. 23281 (sh_legitimate_address_p): Likewise. 23282 * config/sh/sh.h (REG_OK_FOR_BASE_P): Add STRICT parameter. 23283 (REG_OK_FOR_INDEX_P, SUBREG_OK_FOR_INDEX_P): Likewise. 23284 (MODE_DISP_OK_4, MODE_DISP_OK_8): Remove. 23285 (MAYBE_BASE_REGISTER_RTX_P): New macro. 23286 (MAYBE_INDEX_REGISTER_RTX_P): Likewise. 23287 (BASE_REGISTER_RTX_P): Use MAYBE_BASE_REGISTER_RTX_P. 23288 (INDEX_REGISTER_RTX_P): Use MAYBE_INDEX_REGISTER_RTX_P. 23289 (GO_IF_LEGITIMATE_INDEX): Use sh_legitimate_index_p. 23290 (GO_IF_LEGITIMATE_ADDRESS): Use sh_legitimate_address_p. 23291 232922009-05-12 Jan Hubicka <jh@suse.cz> 23293 23294 * tree-inline.c (estimate_operator_cost): Add operands; 23295 when division happens by constant, it is cheap. 23296 (estimate_num_insns): Loads and stores are not having cost of 0; 23297 EH magic stuff is cheap; when computing runtime cost of switch, 23298 use log2 base of amount of its cases; builtin_expect has cost of 0; 23299 compute cost for moving return value of call. 23300 (init_inline_once): Initialize time_based flags. 23301 * tree-inline.h (eni_weights_d): Add time_based flag. 23302 233032009-05-12 Paolo Bonzini <bonzini@gnu.org> 23304 23305 * df-core.c: Update head documentation. 23306 233072009-05-12 Michael Meissner <meissner@linux.vnet.ibm.com> 23308 23309 PR bootstrap/40118 23310 * rs6000.c (rs6000_generate_compare): Use op1b instead of 23311 shadowing exisiting variable op1. 23312 233132009-05-12 Uros Bizjak <ubizjak@gmail.com> 23314 23315 PR target/37179 23316 * config/i386/driver-i386.c (processor_signatures): New enum. 23317 (SIG_GEODE): Move from vendor_signatures to processor_signatures. 23318 (host_detect_local_cpu): For SIG_AMD vendor, check for SIG_GEODE 23319 processor signature to detect geode processor. 23320 233212009-05-12 Paolo Bonzini <bonzini@gnu.org> 23322 23323 Revert: 23324 23325 2009-05-12 Paolo Bonzini <bonzini@gnu.org> 23326 23327 * optabs.c (prepare_cmp_insn): Temporarily disable test that 23328 causes spurious differences between trunk and cond-optab branch. 23329 233302009-05-12 Paolo Bonzini <bonzini@gnu.org> 23331 23332 * dojump.c (compare_from_rtx): Delete. 23333 * expmed.c (emit_store_flag): Only try cstore_optab. Canonicalize 23334 any MODE_CC mode to the cstorecc4 pattern. Use prepare_operand, fail 23335 if the comparison does not satisfy the predicate; test predicates for 23336 operands 2 and 3 of a cstore pattern. Don't try cstore optab 23337 further if one existing pattern fails. 23338 * expr.h (compare_from_rtx): Delete. 23339 (prepare_operand): Declare it. 23340 * optabs.c: Change "lib call" to "libcall" throughout. 23341 (bcc_gen_fctn, setcc_gen_code, trap_rtx, 23342 HAVE_conditional_trap, emit_cmp_insn): Delete. 23343 (can_compare_p): Delete cmp_optab case. 23344 (prepare_float_lib_cmp): Return an rtx and a machine mode. 23345 Accept other parameters by value. 23346 (prepare_operand): Make non-static. 23347 (prepare_cmp_insn): Return an rtx and a machine mode. Accept 23348 other parameters by value. Try to widen operands here based on 23349 an optab_methods argument and looking at cbranch_optab. 23350 (emit_cmp_and_jump_insn_1): Accept test and mode, remove widening 23351 loop. Use cbranch_optab directly. 23352 (emit_cmp_and_jump_insns): Fix comment. Adjust call to 23353 prepare_cmp_insn and emit_cmp_and_jump_insn_1, remove obsolete 23354 assertion. 23355 (emit_conditional_move, emit_conditional_add): Inline what's needed 23356 of compare_from_rtx, using new prepare_cmp_insn for the rest. 23357 (init_optabs): Init cmp_optab with UNKNOWN, cbranch_optab 23358 with COMPARE. Move cmov_optab and cstore_optab above 23359 with cbranch_optab, move cmp_optab down with ucmp_optab, 23360 remove tst_otpab. Do not initialize trap_rtx. 23361 (gen_cond_trap): Do it here. Use ctrap_optab. Test predicate 23362 for trap code. Do not check HAVE_conditional_trap. Use 23363 prepare_cmp_insn. Accept no predicate for operand 3. 23364 * optabs.h (OTI_cmp): Mark as used only for libcalls. 23365 (OTI_ctrap, ctrap_optab): New. 23366 (tst_optab): Delete. 23367 (bcc_gen_fctn, setcc_gen_code, emit_cmp_insn): Delete. 23368 * ifcvt.c (find_if_header): Replace HAVE_conditional_trap 23369 with lookup of ctrap_optab. 23370 * genopinit.c (cmp_optab, tst_optab, bcc_gen_fctn, setcc_gen_code): 23371 Delete. 23372 (ctrap_optab): New. 23373 23374 * combine.c (combine_simplify_rtx, simplify_set): Do not 23375 special case comparing against zero for cc0 machines. 23376 * simplify-rtx.c (simplify_binary_operation_1): Never remove 23377 COMPARE on cc0 machines. 23378 (simplify_relational_operation): Return a new expression when 23379 a COMPARE could be removed. 23380 * final.c (final_scan_insn): Compare cc_status values 23381 against LHS of a (compare FOO (const_int 0)) cc0 source. 23382 Also check if cc_status.value is the full compare. 23383 23384 * doc/md.texi (bCC, sCC, tstMM, cmpMM): Delete. 23385 (cstoreMM4): Document. 23386 (conditional_trap): Document ctrapMM4 instead. 23387 (sync_compare_and_swapMM): Refer to cbranchcc4. 23388 (Dependent Patterns): Eliminate obsolete information referring to 23389 the old jump optimization phase. 23390 (Canonicalization): Include cbranchcc4 case, omit canonicalization 23391 of compares with 0 on cc0 machines. 23392 (Jump Patterns): Refer to MODE_CC jump patterns preferably, 23393 avoiding references to cc0. Remove text about storing operands 23394 in cmpMM. 23395 * doc/tm.texi (Condition Codes): Include blurb on different 23396 condition code representations, separate into subsections for 23397 CC0, MODE_CC and conditional execution. 23398 23399 * config/alpha/alpha-protos.h (alpha_emit_conditional_branch, 23400 alpha_emit_setcc): Accept operands and a machine mode. 23401 * config/alpha/alpha.c (alpha_emit_conditional_branch): 23402 Get code/op0/op1 from operands, use machine mode argument 23403 instead of alpha_compare.fp_p. Emit the branch here. 23404 (alpha_emit_setcc): Likewise, and return boolean. 23405 (alpha_emit_conditional_move): Likewise. Assert that 23406 cmp_op_mode == cmp_mode, and simplify accordingly. 23407 * config/alpha/alpha.h (struct alpha_compare, alpha_compare): Delete. 23408 * config/alpha/alpha.md (cmpdf, cmptf, cmpdi, bCC, sCC): Delete. 23409 (cbranchdf4, cbranchtf4, cbranchdi4, cstoredf4, cstoretf4,cstoredi4): 23410 Delete. 23411 (stack probe test): Use cbranchdi4. 23412 * config/alpha/predicates.md (alpha_cbranch_operator): New. 23413 23414 * config/arc/arc.c (gen_compare_reg): Do not emit cmp. 23415 * config/arc/arc.h (movsicc, movsfcc): Use it. 23416 (movdicc, *movdicc_insn, movdfcc, *movdfcc_insn): Remove. 23417 (cbranchsi4, cstoresi4): New. 23418 (cmpsi, bCC and sCC expanders): Remove. 23419 23420 * config/arm/arm.c (arm_compare_op0, arm_compare_op1): Delete. 23421 * config/arm/arm.h (arm_compare_op0, arm_compare_op1): Delete. 23422 * config/arm/predicates.md (arm_comparison_operator): Only include 23423 floating-point operators if there is a hardware floating-point unit. 23424 * config/arm/arm.md (cbranchsi4, cstoresi4): Enable for TARGET_32BIT, 23425 deferring to cbranch_cc and cstore_cc respectively. 23426 (cbranchsf4, cbranchdf4, cbranchdi4, cstoresf4, cstoredf4, cstoredi4, 23427 cbranch_cc, cstore_cc): New. 23428 (movsicc, movsfcc, movdfcc): Do not use arm_compare_op0 and 23429 arm_compare_op1. 23430 (bCC, sCC, cmpsi, cmpsf, cmpdf, cmpdi): Delete. 23431 23432 * config/avr/avr-protos.h (out_tstsi, out_tsthi): Adjust prototype. 23433 * config/avr/avr.c (out_tstsi, out_tsthi): Get the tested operand 23434 as an argument. 23435 (adjust_insn_length): Adjust calls. 23436 (avr_reorg): Handle (compare (foo) (const_int 0)). 23437 * config/avr/avr.md (tstqi, tsthi, tstsi): Remove. 23438 (*negated_tstqi, *negated_tsthi, *negated_tstsi): Unmacroize. 23439 (*reversed_tsthi, *reversed_tstsi): Add a scratch for simplicity. 23440 (cmpqi, cmphi, cmpsi): Prepend asterisk, fuse tst[qhs]i here. 23441 (bCC): Remove. 23442 (cbranchqi4, cbranchhi4, cbranchsi4): New. 23443 (tst -> sbrc/sbrs peephole2, cpse peephole): Wrap RHS with COMPARE. 23444 23445 * config/bfin/bfin.md (cmpbi, cmpsi, bCC, sCC): Delete. 23446 (cbranchsi4, cstorebi4, cstoresi4): New. 23447 (movbisi): This insn is duplicate, split it to zero_extend. 23448 * config/bfin/bfin.c (bfin_compare_op0, bfin_compare_op1): Delete 23449 (bfin_gen_compare): Do not use them. Emit VOIDmode SET, not BImode. 23450 (bfin_optimize_loop): Use cbranch expander. 23451 * config/bfin/bfin.h (bfin_compare_op0, bfin_compare_op1): Delete. 23452 * config/bfin/predicates.md (bfin_cbranch_operator): Rename to... 23453 (bfin_bimode_comparison_operator): ... this. 23454 (bfin_direct_comparison_operator): New. 23455 23456 * config/cris/cris.c (cris_normal_notice_update_cc): Look 23457 inside (compare FOO (const_int 0)). 23458 (cris_rtx_costs): Handle ZERO_EXTRACT. 23459 * config/cris/cris.md (tstdi, tst<mode>, cmpdi): Delete. 23460 (*tstdi_non_v32): Fold in *cmpdi_non_v32. 23461 (*tstdi_v32): Delete. 23462 (*cmpdi_non_v32): Add M alternative for operand 1. 23463 (cmpsi, cmp<mode>): Make private. 23464 (*tstsi, *tst<mode>_cmp, *tst<mode>_non_cmp, *btst): Wrap LHS 23465 with COMPARE. 23466 (cbranch<mode>4, cbranchdi4, cstore<mode>4): New. 23467 23468 * config/crx/crx.md (cstore<mode>4, cbranchcc4): New. 23469 (cmp<mode>, bCOND_internal, b<code>, s<code>): Delete. 23470 (cbranch<mode>4, sCOND_internal): Use ordered_comparison_operator. 23471 (cc_reg_operand): New. 23472 (any_cond): Delete. 23473 * config/crx/crx.c (crx_compare_op0, crx_compare_op1, 23474 crx_expand_compare, crx_expand_branch, crx_expand_scond): Delete. 23475 * config/crx/crx.h (crx_compare_op0, crx_compare_op1): Delete. 23476 * config/crx/crx-protos.h (crx_expand_compare, crx_expand_branch, 23477 crx_expand_scond): Delete. 23478 23479 * config/fr30/fr30.md (cmp<mode>, bCC): Delete. 23480 (cbranchsi4): New. 23481 * config/fr30/fr30.c (fr30_compare_op0, fr30_compare_op1): Delete 23482 * config/fr30/fr30.h (fr30_compare_op0, fr30_compare_op1): Delete. 23483 23484 * config/frv/frv.md (cbranchsi4, cbranchsf4, cbranchdf4, 23485 cstoresi4, cstoresf4, cstoredf4): New. 23486 (cmpdi, cmpsi, cmpsf, cmpdf, bCC, sCC): Remove. 23487 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc): 23488 Receive the entire operands array. 23489 * config/frv/frv.h (frv_compare_op0, frv_compare_op1): Delete. 23490 * config/frv/frv.c (frv_compare_op0, frv_compare_op1): Delete. 23491 * config/frv/frv-protos.h (frv_emit_cbranch, frv_emit_scc): 23492 Get test/op0/op1 from the operands array. 23493 (frv_emit_cond_move): Get test/op0/op1 from the test_rtx. 23494 23495 * config/h8300/h8300-protos.h (h8300_expand_branch): Accept operands. 23496 (h8300_expand_store): New. 23497 * config/h8300/h8300.c (h8300_rtx_costs): Handle (compare FOO 23498 (const_int 0)). 23499 (h8300_expand_branch): Emit compare here. Adjust for new arguments. 23500 (h8300_expand_store): New. 23501 * config/h8300/h8300.md (btst combine patterns): Wrap with COMPARE 23502 or do not try to produce (set (cc0) REG). 23503 (peepholes): Wrap arguments with COMPARE. Add a peephole to 23504 change a compare into a move to a scratch register. Disable some 23505 peepholes when comparing with zero. 23506 (tstsi, tsthi, tstsi, cmpqi): Make private. 23507 (cmphi): Delete. 23508 (bCC, sCC): Delete. 23509 (cbranchqi4, cbranchhi4, cbranchsi4, cstoreqi4, cstorehi4, 23510 cstoresi4): New. 23511 23512 * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_int_addcc, 23513 ix86_expand_fp_movcc): Set ix86_compare_op0 and ix86_compare_op1. 23514 (ix86_emit_i387_log1p): Use gen_cbranchxf4. 23515 (ix86_emit_i387_log1p): Use cbranchxf2. 23516 (ix86_expand_setcc): Return void. 23517 * config/i386/i386-protos.h (ix86_expand_setcc): Return void. 23518 * config/i386/i386.md (cmpti, cmpdi, cmpsi, cmphi, cmpqi, cmpxf, 23519 cmp<MODEF>, cmpcc): Remove. 23520 (cbranchti4, cbranchdi4, cbranchsi4, cbranchhi4, cbranchqi4, 23521 cbranchxf4, cbranch<MODEF>4, cbranchcc4, cstoredi4, cstoresi4, 23522 cstorehi4, cstoreqi4, cstorexf4, cstore<MODEF>4, cstorecc): New. 23523 (sCC and bCC expanders): Remove. 23524 (stack_protect_test): Use cbranchcc4. 23525 23526 * config/ia64/ia64-protos.h (ia64_compare_op0, ia64_compare_op1): 23527 Delete. 23528 (ia64_expand_compare): Accept three rtx by reference and return void. 23529 * config/ia64/ia64.c (ia64_compare_op0, ia64_compare_op1): Delete. 23530 (ia64_expand_compare): Replace op0/op1 with *op0/*op1. Get code 23531 from *expr. Update *expr with the BImode comparison to do. 23532 * config/ia64/ia64.md (cmpbi, cmpsi, cmpdi, cmpsf, cmpdf, cmpxf, 23533 cmptf, bCC, sCC, conditional_trap): Delete. 23534 (cbranchbi4, cbranchsi4, cbranchdi4, cbranchsf4, cbranchdf4, 23535 cbranchxf4, cbranchtf4, cstorebi4, cstoresi4, cstoredi4, cstoresf4, 23536 cstoredf4, cstorexf4, cstoretf4, ctrapbi4, ctrapsi4, ctrapdi4, 23537 ctrapsf4, ctrapdf4, ctrapxf4, ctraptf4): New. 23538 * config/ia64/predicates.md (ia64_cbranch_operator): New. 23539 23540 * config/iq2000/iq2000-protos.h (gen_conditional_branch): Change 23541 type of last argument. 23542 * config/iq2000/iq2000.c (branch_cmp, branch_type): Remove. 23543 (gen_conditional_branch): Get code/cmp0/cmp1 from operands, 23544 use machine mode argument instead of branch_type. Remove dead 23545 code for floating-point comparisons. 23546 * config/iq2000/iq2000.h (branch_cmp, branch_type): Remove. 23547 * config/iq2000/iq2000.md (cmpsi, cmpdi, cmpsf, cmpdf, tstsi, bCC): 23548 Remove. 23549 (cbranchsi4, cstoresi4): New. 23550 * config/iq2000/predicates.md (reg_or_const_operand): New. 23551 23552 * config/m32c/m32c.md (cbranch splitter): Use match_op_dup. 23553 * config/m32c/m32c.md (any_cond, gl_cond): Delete. 23554 (b<code>_op): Rewrite to... 23555 (bcc_op): ... this, using match_operator. 23556 (s<code>_op): Rewrite to... 23557 (scc_op): ... this, using match_operator. 23558 (s<code>_24_op): Rewrite to... 23559 (scc_op_24): ... this, using match_operator. 23560 (s<code>_<mode>): Rewrite to... 23561 (cstore<mode>4): ... this, using match_operator. 23562 (s<code>_<mode>_24): Rewrite to... 23563 (cstore<mode>4_24): ... this, using match_operator. 23564 * config/m32c/m32c-protos.h (m32c_cmp_flg_0, m32c_pend_compare, 23565 m32c_unpend_compare, m32c_expand_scc): Delete. 23566 * config/m32c/m32c.c (compare_op0, compare_op1, m32c_cmp_flg_0, 23567 m32c_pend_compare, m32c_unpend_compare, m32c_expand_scc): Delete. 23568 (m32c_expand_movcc): Change NE to EQ if necessary. 23569 (m32c_init_libfuncs): Modify cstore optab instead of setcc_gen_code. 23570 23571 * config/m32r/m32r-protos.h (gen_cond_store): New. 23572 * config/m32r/m32r.c (m32r_compare_op0, m32r_compare_op1): Delete. 23573 (gen_cond_store): New, from sCC patterns. 23574 (m32r_expand_block_move): Use cbranchsi4. 23575 * config/m32r/m32r.h (m32r_compare_op0, m32r_compare_op1): Delete. 23576 * config/m32r/m32r.md (cmpsi, bCC, sCC): Delete. 23577 (cbranchsi4, cstoresi4): New. 23578 23579 * config/m68hc11/m68hc11.c (m68hc11_compare_op0, m68hc11_compare_op1): 23580 Delete. 23581 (m68hc11_rtx_costs_1, m68hc11_rtx_costs): Handle ZERO_EXTRACT. 23582 (m68hc11_notice_update_cc): Look into a compare with 0. 23583 * config/m68hc11/m68hc11.h (m68hc11_compare_op0, m68hc11_compare_op1): 23584 Delete. 23585 * config/m68hc11/m68hc11.md (tstsi, tsthi, tstqi, cmpsi, 23586 cmphi, cmpqi, bCC): Delete. 23587 (cbranchsi4, cbranchhi4, cbranchqi4): New. 23588 (tstqi_1, tstqi_z_used, tstqi_1, bitcmpqi, bitcmpqi_z_used, 23589 bitcmpqi_12, bitcmphi, various splits and peephole2s): Wrap cc0<-reg 23590 sets with COMPARE. 23591 23592 * config/m68k/predicates.md (m68k_cstore_comparison_operator, 23593 const0_operand, const1_operand, m68k_subword_comparison_operand): New. 23594 * config/m68k/constraints.md (H): New. 23595 * config/m68k/m68k.md (tstdi): Remove define_expand, use name for 23596 the define_insn below. 23597 (tstsi, tsthi, tst<FP:mode>, cmphi, cmpqi, cmp<FP:mode>): Delete. 23598 (*tstsi_internal_68020_cf, *tstsi_internal, *tsthi_internal, 23599 *tstqi_internal, tst<mode>_6881, tst<mode>_cf, many unnamed 23600 patterns): Wrap RHS with COMPARE. 23601 (tst<FP>_68881, tst<FP>_cf): Use const0_operand. 23602 (*cmpdi_internal): Name this pattern. 23603 (cmpdi): Change to define_insn. 23604 (cbranchdi4, cstoredi4, cbranchsi4, cstoresi4, cbranchhi4, cstorehi4, 23605 cbranchqi4, cstoreqi4, cbranch<FP:mode>4, cstore<FP:mode>4): New. 23606 (scc0_di, scc0_di_5200, scc_di): Use the ordered_comparison_operator 23607 predicate. 23608 (seq, sne, sgt, sgtu, slt, sltu, sge, sgeu, sle, sleu, sordered, 23609 sunordered, suneq, sunge, sungt, sunle, sunlt, sltgt): Delete 23610 (conditional_trap): Change to... 23611 (ctrapdi4, ctrapsi4, ctraphi4, ctrapqi4): ... these. 23612 (*conditional_trap): Use the ordered_comparison_operator and 23613 const1_operand predicates. 23614 * config/m68k/m68k.c (m68k_last_compare_had_fp_operands): Delete. 23615 (m68k_expand_prologue): Use ctrapsi4 instead of cmpsi+conditional_trap. 23616 (m68k_rtx_costs): Look for ZERO_EXTRACT in a COMPARE. 23617 * config/m68k/m68k.h (m68k_last_compare_had_fp_operands): Delete. 23618 23619 * config/mcore/mcore-protos.h (arch_compare_op0, arch_compare_op1, 23620 mcore_modify_comparison, mcore_gen_compare_reg): Remove. 23621 (mcore_gen_compare): New. 23622 * config/mcore/mcore.c (arch_compare_op0, arch_compare_op1): Delete. 23623 (mcore_modify_comparison, mcore_gen_compare_reg): Fold into... 23624 (mcore_gen_compare): ... this. 23625 * config/mcore/mcore.md (cmpsi, bCC, sCC): Remove. 23626 (cbranchsi4, cstoresi4): New, using mcore_gen_compare. 23627 (stack probe pattern): Use cbranchsi4. 23628 23629 * config/mips/predicates.md (mips_cstore_operator): New. 23630 * config/mips/mips-ps-3d.md (movv2sfcc): Do not use cmp_operands. 23631 * config/mips/mips.md (any_cond): Delete. 23632 (conditional_trap): Rename to ctrap<GPR:mode>4. Adjust predicates, 23633 always succeed. 23634 (fixuns_truncdfsi2, fixuns_truncdfdi2, fixuns_truncsfsi2, 23635 fixuns_truncsfdi2): Use cbranch patterns. 23636 (cmp<GPR:mode>, cmp<SCALARF:mode>): Delete. 23637 (b<code>): Change to cbranch<GPR:mode>4 and cbranch<SCALARF:mode>4. 23638 Adjust call to mips_expand_conditional_branch. 23639 (seq, sne, slt<u>, sle<u>, sgt<u>, sge<u>): Change to 23640 cstore<GPR:mode>4. 23641 * config/mips/mips-protos.h (mips_expand_conditional_branch, 23642 mips_expand_scc, mips_expand_conditional_trap): Adjust prototypes. 23643 * config/mips/mips.c (cmp_operands): Delete. 23644 (mips_emit_compare): Get comparison operands from *op0/*op1. 23645 (mips_expand_scc): Get code/op0/op1/target from operands. Assert 23646 that it succeeds. Use op0/op1 instead of cmp_operands. 23647 (mips_expand_conditional_branch, mips_expand_conditional_move, 23648 mips_expand_conditional_trap): Likewise. 23649 (mips_block_move_loop): Use cbranch patterns. 23650 * config/mips/mips.h (cmp_operands): Delete. 23651 23652 * config/mmix/mmix.c (mmix_valid_comparison): Delete. 23653 (mmix_gen_compare_reg): Just return a register in the right CC mode. 23654 * config/mmix/mmix.h (mmix_compare_op0, mmix_compare_op1): New. 23655 * config/mmix/mmix.md (cmpdi, cmpdf): Remove. 23656 (*cmpcc_folded): Rename to... 23657 (*cmpdi_folded): this. 23658 (*cmpcc): Rename to... 23659 (*cmps): ... this. 23660 (movdfcc, movdicc): Adjust for new semantics of mmix_gen_compare_reg. 23661 (bCC): Remove. 23662 (cbranchdi4): New. 23663 (cbranchdf4): New. Handle invalid comparisons here. 23664 * config/mmix/predicates.md (float_comparison_operator): New. 23665 23666 * config/mn10300/mn10300.c (mn10300_rtx_costs): Consider 0 and 23667 zero_extract to be cheap in (compare (zero_extract) (const_int 0). 23668 * config/mn10300/mn10300.md (tst): Delete. 23669 (*tst_extqisi_am33, *tst_extqisi, *tst_exthisi_am33, *tst_exthisi): 23670 Name these patterns and wrap RHS in a compare. 23671 (*cmpsi): Make this pattern private. Include tst. 23672 (*cmpsf): Make this pattern private. 23673 (and and zero_extract cc0 set): Wrap RHS in a COMPARE. 23674 (compare with zero peepholes): Likewise. 23675 (bCC): Remove. 23676 (cbranchsi4, cbranchsf4): New. 23677 (casesi): Use cbranchsi4. 23678 23679 * config/pa/pa.c (hppa_compare_op0, hppa_compare_op1, 23680 hppa_branch_type): Delete. 23681 (return_addr_rtx): Use cbranchsi4. 23682 (emit_bcond_fp): Accept all operands. Replace CODE with NE. 23683 Emit CCFPmode comparison here. 23684 (gen_cmp_fp): Delete, now part of emit_bcond_fp. 23685 * config/pa/pa.h (enum cmp_type, hppa_compare_op0, hppa_compare_op1, 23686 hppa_branch_type): Delete. 23687 * config/pa/pa.md (cmpdi, cmpsi, cmpsf, cmpdf, sCC, bCC): Delete. 23688 (movsicc, movdicc): Remove references to hppa_compare_op0, 23689 hppa_compare_op1 and compare_from_rtx. 23690 (cbranchdi4, cbranchsi4, cbranchsf4, cbranchdf4, cstoresi4): New. 23691 (casesi): Use cbranchsi4. 23692 23693 * config/pdp11/pdp11-protos.h (output_jump): Change prototype. 23694 * config/pdp11/pdp11.c (output_jump): Embed opcodes here. 23695 * config/pdp11/pdp11.md (register_or_const0_operand): New. 23696 (cmpdf, cmphi, cmpqi): Make private. Add tst alternatives. 23697 (cmpsi, tstsi, tstdf, tsthi, tstqi): Delete. 23698 (bCC): Delete. 23699 (cbranchdf4, cbranchhi4, cbranchqi4): New. 23700 (*branch, *branch_inverted): New. 23701 23702 * config/picochip/picochip.md (cbranchhi4): Use 23703 ordered_comparison_operator. 23704 (cmphi, bCC): Remove. 23705 23706 * config/rs6000/predicates.md (rs6000_cbranch_operator): New. 23707 (trap_comparison_operator): Delete. 23708 * config/rs6000/rs6000-protos.h (rs6000_emit_sCOND, 23709 rs6000_emit_cbranch): Accept mode and operands. 23710 * config/rs6000/rs6000.c (rs6000_compare_op0, rs6000_compare_op1, 23711 rs6000_compare_fp_p): Delete. 23712 (rs6000_generate_compare): Accept mode and comparison. Extract code 23713 and op0/op1 from there. Replace references to rs6000_compare_op0 23714 and rs6000_compare_op1. 23715 (rs6000_emit_sCOND): Adjust call to rs6000_generate_compare and 23716 extract result from passed operands. 23717 (rs6000_emit_cbranch): Adjust call to rs6000_generate_compare and 23718 extract loc from passed operands. 23719 (rs6000_emit_cmove): Likewise. 23720 * config/rs6000/rs6000.h (rs6000_compare_op0, rs6000_compare_op1, 23721 rs6000_compare_fp_p): Delete. 23722 * config/rs6000/rs6000.md (cmp<GPR>, cmp<FP>, bCC, sCC): Delete. 23723 (cbranch<GPR>4, cbranch<FP>4): New. 23724 (cstore<mode>4): New. Consolidate here all choices about when to use 23725 portable or specialized sCC sequences. 23726 (stack_protect_test): Use cbranchsi4. 23727 (conditional_trap): Replace with ctrap<GPR>4. 23728 (conditional trap insn): Replace trap_comparison_operator with 23729 ordered_comparison_operator. 23730 23731 * config/s390/s390.c (s390_compare_op0, s390_compare_op1): Delete. 23732 (s390_emit_prologue): Use ctrap. 23733 * config/s390/s390.h (s390_compare_op0, s390_compare_op1): Delete. 23734 * config/s390/predicates.md (s390_eqne_operator, s390_scond_operator): 23735 New predicates replacing... 23736 * config/s390/s390.md (COMPARE, SCOND): ... these iterators. 23737 (cmp<GPR>, cmp<FP>, cmpcc): Delete. 23738 (trunc patterns): Use emit_cmp_and_jump_insns instead of cmp/branch. 23739 (add<mode>cc): Do not use s390_compare_op0/op1. 23740 (s<code>): Change to... 23741 (cstore<mode>4): ... this. Do not use s390_compare_op0/op1. 23742 (seq): Change to... 23743 (cstorecc4): ... this. Handle EQ or NE equally. 23744 (*sne): Un-privatize for use in cstorecc4. 23745 (b<code>): Change to... 23746 (cbranch<GPR>4, cbranch<FP>4, cbranchcc4): ... these. 23747 (conditional_trap): Replace with... 23748 (ctrap<GPR>4, ctrap<FP>4): ... these. 23749 (stack_protect): Use cbranchcc4. 23750 23751 * config/score/score-conv.h (cmp_op0, cmp_op1): Delete. 23752 * config/score/score-protos.h (score_gen_cmp): Delete. 23753 * config/score/score.c (cmp_op0, cmp_op1, score_gen_cmp): Delete. 23754 (score_block_move-loop): Use cbranchsi4. 23755 * config/score/score.md (cbranchsi4): New. 23756 (cmpsi, bCC): Delete. 23757 * config/score/score3.c (cmp_op0, cmp_op1, score3_gen_cmp): Delete. 23758 (score3_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1. 23759 * config/score/score7.c (cmp_op0, cmp_op1, score7_gen_cmp): Delete. 23760 (score7_movsicc): Use ops[1] operands instead of cmp_op0/cmp_op1. 23761 * config/score/score3.h (score3_gen_cmp): Delete. 23762 * config/score/score7.h (score7_gen_cmp): Delete. 23763 23764 * config/sh/sh-protos.h (prepare_scc_operands): Rename to... 23765 (sh_emit_scc_to_t): ... this. Return void. 23766 (from_compare): Rename to... 23767 (sh_emit_compare_and_branch): ... this. 23768 (sh_emit_compare_and_set): New. 23769 (sh_expand_t_scc): Accept operands. 23770 * config/sh/predicates.md (sh_float_comparison_operator): New. 23771 * config/sh/sh.c (sh_compare_op0, sh_compare_op1): Delete. 23772 (prepare_scc_operands): Rename to... 23773 (sh_emit_scc_to_t): ... this. Return void. Get op0/op1 from 23774 arguments. 23775 (sh_emit_cheap_store_flag): New. 23776 (sh_emit_set_t_insn): New. 23777 (from_compare): Rename to... 23778 (sh_emit_compare_and_branch): ... this. Accept mode. Rewrite 23779 handling of TARGET_SH2E floating point to avoid recursive call. 23780 Generate branch here. 23781 (sh_emit_compare_and_set): New. 23782 (sh_expand_t_scc): Get op0/op1 from arguments. 23783 (sh_emit_cheap_store_flag): New. 23784 * config/sh/sh.md (cbranchdi4, cbranchsi4): Include -mno-cbranchdi 23785 cases. 23786 (cbranchdi4_i): Use an "I08" constraint instead of an "i" constraint. 23787 (cmpsi, cmpdi, cmpsf, cmpdf): Delete. 23788 (movsicc, movdicc): Do nothing when it recreated operands from 23789 sh_compare_*. Use sh_emit_cheap_store_flag. Adjust call to 23790 prepare_scc_operands (now sh_emit_scc_to_t). 23791 (udivdi3): Use cstoresi4. 23792 (beq_media, bne_media, bge_media, bgtu_media, bgeu_media, beq, 23793 bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, bunordered): Delete. 23794 (cbranchint4_media, cbranchfp4_media): New. 23795 (casesi): Use cbranchdi4. 23796 (seq, slt, sle, sgt, sge, sgtu, sltu, sgeu, sne, sleu, sunordered): 23797 Delete. 23798 (cstore4_media, cstoresi4, cstoredi4, cstoresf4, cstoredf4): New. 23799 (movnegt): Remove second operand. 23800 (cbranchsf4, cbranchdf4): New. 23801 (stack_protect): Use cbranchdi4/cbranchsi4. 23802 23803 * config/sparc/sparc.c (sparc_compare_op0, sparc_compare_op1): Delete. 23804 (gen_compare_reg): Accept comparison, extract part of it to... 23805 (gen_compare_reg_1): ... this. 23806 (gen_compare_operator): Delete. 23807 (gen_v9_scc): Accept separate destination, comparison code and arms. 23808 Do not use sparc_compare_op0/sparc_compare_op1. 23809 (emit_scc_insn, emit_conditional_branch_insn): New. 23810 (emit_v9_brxx): Make static. Remove useless assertion. 23811 (sparc_emit_float_lib_cmp): Return RTL instead of calling 23812 emit_cmp_insn. 23813 (sparc_expand_compare_and_swap_12): Use gen_compare_reg_1+cbranchcc4. 23814 * config/sparc/sparc-protos.h (gen_compare_reg, 23815 sparc_emit_float_lib_cmp): Adjust prototype. 23816 (emit_scc_insn, emit_conditional_branch_insn): New. 23817 (gen_v9_scc, emit_v9_brxx_insn, gen_compare_operator): Delete. 23818 * config/sparc/sparc.h (sparc_compare_op0, sparc_compare_op1): Delete. 23819 * config/sparc/sparc.md (P, I, F, V32, V32I, V64, V64I): Move all 23820 iterators to the top. 23821 (cmpsi, cmpdi, cmpsf, cmpdf, cmptf, seqsi_special_extend, 23822 snesi_special_extend, sCC, bCC, seqdi_special_trunc, 23823 snedi_special_trunc): Delete. 23824 (seqdi_special, snedi_special): Use expansion of seqdi_special_trunc 23825 and snedi_special_trunc. 23826 (cstoresi4, cstoredi4, cstore<F:mode>4, cbranchcc4, cbranchsi4, 23827 cbranchdi4, cbranch<F:mode>4): New. 23828 (mov<I:mode>cc, mov<F:mode>cc): Handle sparc_emit_float_lib_cmp 23829 here. Use gen_compare_reg instead of gen_compare_operator. 23830 (conditional_trap): Replace with... 23831 (ctrapsi4, ctrapdi4): ... this. 23832 (stack_protect_test): Use cbranchcc4. 23833 23834 * config/spu/spu-protos.h (spu_emit_branch_or_set): Change second 23835 argument to rtx. 23836 * config/spu/spu.c (spu_compare_op0, spu_compare_op1): Remove. 23837 (spu_emit_branch_or_set): Get code/op0/op1 from second argument. 23838 Change spu_compare_op0/op1 to op0/op1 throughout. Get target 23839 from operands[0] or operands[3] depending on is_set. 23840 * config/spu/spu.h (spu_compare_op0, spu_compare_op1): Remove. 23841 * config/spu/spu.md (cmp<mode:VQHSI>, cmp<mode:DTI>, cmp<mode:VSF>, 23842 cmpdf, bCC), sCC: Remove. 23843 (cbranch<mode:VQHSI>4, cbranch<mode:DTI>, cbranch<mode:VSF>4, 23844 cbranchdf4, cstore<mode:VQHSI>4, cstore<mode:DTI>, cstore<mode:VSF>4, 23845 cstoredf4): New. 23846 (mov<mode>cc): Accept ordered_comparison_operator, adjust call to 23847 spu_emit_branch_or_set. 23848 23849 * config/stormy16/stormy16-protos.h (xstormy16_emit_cbranch): 23850 Add two arguments. 23851 * config/stormy16/stormy16.h (xstormy16_compare_op0, 23852 xstormy16_compare_op1): Delete. 23853 * config/stormy16/stormy16.c (xstormy16_compare_op0, 23854 xstormy16_compare_op1): Delete. 23855 (xstormy16_emit_cbranch): Get op0/op1 from the new arguments. 23856 Adjust calls. 23857 * config/stormy16/stormy16.md (cbranchsi4, cbranchhi4): New. 23858 (cmphi, cmpsi, bCC): Remove. 23859 23860 * config/v850/v850.md (tstsi, cmpsi): Fold into... 23861 (*cmpsi): ... this one. 23862 (cbranchsi4, cstoresi4): New. 23863 (bCC expanders): Delete. 23864 (sCC insns): Fold into... 23865 (*setcc): ... this one. 23866 (casesi): Do not use gen_cmpsi and gen_bgtu. 23867 (various splits): Wrap "naked" RHS of a cc0 set with COMPARE. 23868 (movsicc): Simplify. 23869 * config/v850/v850.c (v850_rtx_costs): Handle ZERO_EXTRACT in COMPARE. 23870 23871 * config/vax/vax-protos.h (cond_name): New. 23872 (vax_output_conditional_branch): Remove. 23873 * config/vax/vax.c (cond_name): New. 23874 (vax_output_conditional_branch): Remove. 23875 * config/vax/vax.h (PRINT_OPERAND): Dispatch %c to cond_name. 23876 * config/vax/vax.md (tst<VAXint>, tst<VAXfp>): Remove. 23877 (cmp<VAXint>, cmp<VAXfp>): Privatize. Add constraints for tst. 23878 (bit<VAXint>): Wrap source with (compare). 23879 (b<code> and following unnamed pattern): Rename to *branch and 23880 *branch_reversed. Change macroization to match_operator. 23881 (cbranch<VAXint>4, cbranch<VAXfp>4): New. 23882 23883 * config/xtensa/predicates.md (xtensa_cstoresi_operator): New. 23884 * config/xtensa/xtensa-protos.h (xtensa_expand_conditional_branch): 23885 Change last argument to machine_mode. 23886 (xtensa_expand_scc): Add machine_mode argument. 23887 * config/xtensa/xtensa.c (branch_cmp, branch_type): Remove. 23888 (gen_conditional_move, xtensa_expand_conditional_branch, 23889 xtensa_expand_scc, xtensa_expand_conditional_move): Use mode 23890 instead of branch_type, fetch cmp0/cmp1/test_code from operands[]. 23891 Adjust operand numbers. 23892 * config/xtensa/xtensa.h (enum cmp_type, branch_cmp, branch_type): 23893 Delete. 23894 * config/xtensa/xtensa.md (any_cond, any_scc): Delete. 23895 (cmpsi, cmpsf, b<code>, s<code>): Delete. 23896 (cbranchsi4, cbranchsf4, cstoresi4, cstoresf4): New. 23897 238982009-05-12 Paolo Bonzini <bonzini@gnu.org> 23899 23900 * optabs.c (prepare_cmp_insn): Temporarily disable test that 23901 causes spurious differences between trunk and cond-optab branch. 23902 239032009-05-12 Alexandre Oliva <aoliva@redhat.com> 23904 23905 PR target/37137 23906 * doc/install.texi (STAGE1_TFLAGS, BUILD_CONFIG): Document. 23907 239082009-05-12 Alexandre Oliva <aoliva@redhat.com> 23909 23910 * tree.c (iterative_hash_pointer): Delete. 23911 (iterative_hash_expr): Short-circuit handling of NULL pointer. 23912 Hash UIDs and versions of SSA names. Don't special-case built-in 23913 function declarations. 23914 239152009-05-11 Ian Lance Taylor <iant@google.com> 23916 23917 PR bootstrap/40103 23918 * graphite.c: Force -Wc++-compat to only be a warning before 23919 #including "cloog/cloog.h". 23920 239212009-05-11 Martin Jambor <mjambor@suse.cz> 23922 23923 * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false. 23924 239252009-05-11 Jan Hubicka <jh@suse.cz> 23926 23927 * tree-ssa-loop-ivcanon.c: Include target.h 23928 (struct loop_size): new structure. 23929 (constant_after_peeling): New predicate. 23930 (tree_estimate_loop_size): New function. 23931 (estimated_unrolled_size): Rewrite for new estimates. 23932 (try_unroll_loop_completely): Use new estimates. 23933 * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h 23934 239352009-05-11 Andrew Pinski <andrew_pinski@playstation.sony.com> 23936 23937 * config/spu/spu-c.c (spu_categorize_keyword): Update for recent 23938 libcpp interface change. 23939 (spu_macro_to_expand): Likewise. 23940 239412009-05-11 Paolo Bonzini <bonzini@gnu.org> 23942 23943 PR tree-optimization/40026 23944 * gimplify.c (gimplify_init_constructor): Change initial conditional 23945 to assertion. Rewrite TREE_OPERAND (*expr_p, 1) after 23946 optimize_compound_literals_in_ctor. 23947 239482009-05-11 Nathan Sidwell <nathan@codesourcery.com> 23949 23950 * config/m68k/m68k-devices.def (52274, 52277, 5301x, 5225x, 51xx): 23951 New devices. 23952 * doc/invoke.texi (M680x0 Options): Document new coldfire cpus. 23953 239542009-05-11 H.J. Lu <hongjiu.lu@intel.com> 23955 23956 * tree-vect-data-refs.c (vect_analyze_group_access): Use 23957 HOST_WIDE_INT for gap. 23958 239592009-05-11 Ira Rosen <irar@il.ibm.com> 23960 23961 PR tree-optimization/40074 23962 * tree-vect-data-refs.c (vect_analyze_group_access): Take gaps into 23963 account in group size and step comparison. 23964 239652009-05-11 Richard Guenther <rguenther@suse.de> 23966 23967 * passes.c (init_optimization_passes): Strip now incorrect comment. 23968 (execute_function_todo): Do not set PROP_alias. 23969 * tree-pass.h (PROP_alias): Remove. 23970 * tree-ssa-structalias.c (pass_build_alias): Do not provide PROP_alias. 23971 * tree-if-conv.c (pass_if_conversion): Do not require PROP_alias. 23972 * tree-nrv.c (pass_return_slot): Likewise. 23973 * tree-object-size.c (pass_object_sizes): Likewise. 23974 * tree-ssa-dom.c (pass_dominator): Likewise. 23975 (pass_phi_only_cprop): Likewise. 23976 * tree-ssa-dse.c (pass_dse): Likewise. 23977 * tree-ssa-phiopt.c (pass_phiopt): Likewise. 23978 (pass_cselim): Likewise. 23979 * tree-ssa-pre.c (pass_pre): Likewise. 23980 (pass_fre): Likewise. 23981 * tree-ssa-reassoc.c (pass_reassoc): Likewise. 23982 * tree-ssa-sink.c (pass_sink_code): Likewise. 23983 * tree-stdarg.c (pass_stdarg): Likewise. 23984 * tree-tailcall.c (pass_tail_calls): Likewise. 23985 * tree-vrp.c (pass_vrp): Likewise. 23986 239872009-05-10 Ian Lance Taylor <iant@google.com> 23988 23989 * basic-block.h (enum profile_status): Break out of struct 23990 control_flow_graph. 23991 * cgraph.h (struct inline_summary): Break out of struct 23992 cgraph_local_info. 23993 * cgraphunit.c (enum cgraph_order_sort_kind): New enum, broken out 23994 of struct cgraph_order_sort. 23995 * combine.c (enum undo_kind): New enum, broken out of struct undo. 23996 * cse.c (struct branch_path): Break out of struct 23997 cse_basic_block_data. 23998 * except.h (enum eh_region_type): Break out of struct eh_region. 23999 * gcc.c (enum add_del): Break out of struct modify_target. 24000 * genrecog.c (enum decision_type): Break out of struct decision_test. 24001 * ggc-page.c (struct ggc_pch_ondisk): Break out of struct 24002 ggc_pch_data. 24003 * matrix-reorg.c (struct free_info): Break out of struct matrix_info. 24004 * regmove.c (enum match_use): New enum, broken out of struct match. 24005 * sched-int.h (enum post_call_group): New enum, broken out of 24006 struct deps. 24007 (struct deps_reg): Break out of struct deps. 24008 * target.h (struct asm_int_op): Break out of struct gcc_target. 24009 * tree-eh.c (struct goto_queue_node): Break out of struct 24010 leh_tf_state. 24011 * tree-inline.h (enum copy_body_cge_which): Break out of 24012 copy_body_data. 24013 * tree-pass.h (enum opt_pass_type): Break out of struct opt_pass. 24014 24015 * c-decl.c (in_struct, struct_types): New static variables. 24016 (pushtag): Add loc parameter. Change all callers. 24017 (lookup_tag): Add ploc parameter. Change all callers. 24018 (check_compound_literal_type): New function. 24019 (parser_xref_tag): Add loc parameter. Change all callers. If 24020 -Wc++-compat, warn about struct/union/enum types defined within a 24021 struct or union. 24022 (start_struct): Add enclosing_in_struct, enclosing_struct_types, 24023 and loc parameters. Change all callers. Change error calls to 24024 error_at, using loc. For a redefinition, if the location of the 24025 original definition is known, report it. Set in_struct and 24026 struct_types. If -Wc++-compat warn if in sizeof, typeof, or alignof. 24027 (finish_struct): Add new parameters enclosing_in_struct and 24028 enclosing_struct_types. Change all callers. Set 24029 C_TYPE_DEFINED_IN_STRUCT for all struct/union/enum types defined 24030 in the struct. If in a struct, add this struct to struct_types. 24031 (start_enum): Add loc parameter. Change all callers. Use 24032 error_at for errors, using loc. For a redefinition, if the 24033 location of the original definition is known, report it. If in a 24034 struct, add this enum type to struct_types. If -Wc++-compat warn 24035 if in sizeof, typeof, or alignof. 24036 * c-parser.c (disable_extension_diagnostics): Disable -Wc++-compat. 24037 (enable_extension_diagnostics): Reenable -Wc++-compat if appropriate. 24038 (c_parser_enum_specifier): Get enum location for start_enum. 24039 (c_parser_struct_or_union_specifier): Get struct location for 24040 start_struct. Save in_struct and struct_types status between 24041 start_struct and finish_struct. 24042 (c_parser_cast_expression): Get location of cast. 24043 (c_parser_alignof_expression): Get location of type. 24044 (c_parser_postfix_expression): Likewise. 24045 (c_parser_postfix_expression_after_paren_type): Add type_loc 24046 parameter. Change all callers. Call check_compound_literal_type. 24047 Use type_loc for error about variable size type. 24048 * c-typeck.c (build_external_ref): If -Wc++-compat, warn about a use 24049 of an enum constant from an enum type defined in a struct or union. 24050 (c_cast_expr): Add loc parameter. Change all callers. If 24051 -Wc++-compat, warn about defining a type in a cast. 24052 * c-tree.h (C_TYPE_DEFINED_IN_STRUCT): Define. 24053 (start_enum, start_struct, finish_struct): Update declarations. 24054 (parser_xref_tag, c_cast_expr): Update declarations. 24055 (check_compound_literal_type): Declare. 24056 240572009-05-11 Ben Elliston <bje@au.ibm.com> 24058 24059 * config/rs6000/rs6000-c.c (altivec_categorize_keyword): Update 24060 for recent libcpp interface change. 24061 (rs6000_macro_to_expand): Likewise. 24062 240632009-05-10 Michael Matz <matz@suse.de> 24064 24065 PR target/40031 24066 * config/arm/arm.c (require_pic_register): Emit on entry edge, 24067 not at entry of function. 24068 240692009-05-10 Richard Guenther <rguenther@suse.de> 24070 24071 PR tree-optimization/40081 24072 Revert 24073 * tree-sra.c (instantiate_element): Instantiate scalar replacements 24074 using the main variant of the element type. Do not fiddle with 24075 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS. 24076 24077 * tree-sra.c (sra_type_can_be_decomposed_p): Do not decompose 24078 structs with volatile fields. 24079 240802009-05-10 Jan Hubicka <jh@suse.cz> 24081 24082 * tree-inline.c (delete_unreachable_blocks_update_callgraph): Declare. 24083 (estimate_move_cost): Assert that it does not get called for 24084 VOID_TYPE_P. 24085 (estimate_num_insns): Skip VOID types in argument handling. 24086 (optimize_inline_calls): Delete unreachable blocks and verify that 24087 callgraph is valid. 24088 240892009-05-10 Jan Hubicka <jh@suse.cz> 24090 24091 * cgraphbuild.c (record_reference): Use cgraph_mark_address_taken_node. 24092 * cgraph.c (cgraph_mark_address_taken_node): New function. 24093 (dump_cgraph_node): Dump new flag. 24094 * cgraph.h (struct cgraph_node): Add address_taken. 24095 (cgraph_mark_address_taken_node): New function. 24096 * ipa.c (cgraph_postorder): Prioritize functions with address taken 24097 since new direct calls can be born. 24098 240992009-05-10 Joseph Myers <joseph@codesourcery.com> 24100 24101 * c-lex.c (c_lex_with_flags): Expect cpp_hashnode in 24102 tok->val.node.node. 24103 241042009-05-10 Jan Hubicka <jh@suse.cz> 24105 24106 PR middle-end/40084 24107 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Take old_call 24108 argument; rewrite. 24109 (cgraph_update_edges_for_call_stmt): Take old_decl argument. 24110 * cgraph.h (cgraph_update_edges_for_call_stmt): Update prototype. 24111 * tree-inline.c (copy_bb): Set frequency correctly. 24112 (fold_marked_statements): Update call to 24113 cgraph_update_edges_for_call_stmt. 24114 241152009-05-10 Joseph Myers <joseph@codesourcery.com> 24116 24117 * config/arc/arc.c (arc_handle_interrupt_attribute): Use %qE for 24118 identifiers in diagnostics. 24119 * config/arm/arm.c (arm_handle_fndecl_attribute, 24120 arm_handle_isr_attribute): Likewise. 24121 * config/avr/avr.c (avr_handle_progmem_attribute, 24122 avr_handle_fndecl_attribute, avr_handle_fntype_attribute): Likewise. 24123 * config/bfin/bfin.c (handle_int_attribute, 24124 bfin_handle_longcall_attribute, bfin_handle_l1_text_attribute, 24125 bfin_handle_l1_data_attribute, bfin_handle_longcall_attribute, 24126 bfin_handle_l1_text_attribute, bfin_handle_l1_data_attribute): 24127 Likewise. 24128 * config/darwin.c (darwin_handle_kext_attribute, 24129 darwin_handle_weak_import_attribute): Likewise. 24130 * config/h8300/h8300.c (h8300_handle_fndecl_attribute, 24131 h8300_handle_eightbit_data_attribute, 24132 h8300_handle_tiny_data_attribute): Likewise. 24133 * config/i386/i386.c (ix86_handle_cconv_attribute, 24134 ix86_handle_abi_attribute, ix86_handle_struct_attribute): Likewise. 24135 * config/i386/winnt.c (ix86_handle_shared_attribute, 24136 ix86_handle_selectany_attribute): Likewise. 24137 * config/ia64/ia64.c (ia64_handle_model_attribute): Likewise. 24138 * config/m32c/m32c.c (function_vector_handler): Likewise. 24139 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute, 24140 m68hc11_handle_fntype_attribute): Likewise. 24141 * config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise. 24142 * config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise. 24143 * config/mips/mips.c (mips_insert_attributes, 24144 mips_merge_decl_attributes, mips_expand_builtin): Likewise. 24145 * config/rs6000/rs6000.c (rs6000_handle_longcall_attribute, 24146 rs6000_handle_struct_attribute): Likewise. 24147 * config/sh/sh.c (sh_insert_attributes, 24148 sh_handle_resbank_handler_attribute, 24149 sh_handle_interrupt_handler_attribute, 24150 sh2a_handle_function_vector_handler_attribute, 24151 sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): 24152 Likewise. 24153 * config/sh/symbian.c (sh_symbian_mark_dllimport): Likewise. 24154 * config/spu/spu.c (spu_handle_fndecl_attribute, 24155 spu_handle_vector_attribute): Likewise. 24156 * config/stormy16/stormy16.c 24157 (xstormy16_handle_interrupt_attribute): Likewise. 24158 * config/v850/v850-c.c (ghs_pragma_section): Likewise. 24159 * config/v850/v850.c (v850_handle_interrupt_attribute): Likewise. 24160 241612009-05-10 Joseph Myers <joseph@codesourcery.com> 24162 24163 * pretty-print.h (struct pretty_print_info): Add translate_identifiers. 24164 (pp_translate_identifiers): New. 24165 (pp_identifier): Only conditionally translate identifier to locale 24166 character set. 24167 * pretty-print.c (pp_construct): Set pp_translate_identifiers. 24168 (pp_base_tree_identifier): Only conditionally translate identifier 24169 to locale character set. 24170 * c-pretty-print.c (M_): Define. 24171 (pp_c_type_specifier, pp_c_primary_expression): Mark English 24172 fragments for conditional translation with M_. 24173 * tree-pretty-print.c (maybe_init_pretty_print): Disable 24174 identifier translation. 24175 241762009-05-10 Richard Guenther <rguenther@suse.de> 24177 24178 PR tree-optimization/40081 24179 * tree-sra.c (instantiate_element): Instantiate scalar replacements 24180 using the main variant of the element type. Do not fiddle with 24181 TREE_THIS_VOLATILE or TREE_SIDE_EFFECTS. 24182 241832009-05-09 Jan Hubicka <jh@suse.cz> 24184 24185 PR middle-end/40080 24186 * cgraphunit.c (cgraph_materialize_all_clones): Do not redirect 24187 indirect calls; verify cgraph afterwards. 24188 241892009-05-09 Jan Hubicka <jh@suse.cz> 24190 24191 PR bootstrap/40082 24192 * ipa.c (update_inlined_to_pointer): New function. 24193 (cgraph_remove_unreachable_nodes): Use it. 24194 241952009-05-09 Jan Hubicka <jh@suse.cz> 24196 24197 * tree-eh.c (struct leh_state): Remove prev_try. 24198 (lower_try_finally, lower_catch, lower_eh_filter, lower_cleanup): Do 24199 not track prev_try. 24200 * except.c (gen_eh_region_cleanup, duplicate_eh_regions, 24201 copy_eh_region_1, copy_eh_region, redirect_eh_edge_to_label, 24202 remove_eh_handler_and_replace, foreach_reachable_handler, 24203 verify_eh_region, verify_eh_tree): Remove tracking of prev_try pointer. 24204 * except.h (struct eh_region): Remove eh_region_u_cleanup. 24205 (gen_eh_region_cleanup): Update prototype. 24206 242072009-05-09 Jan Hubicka <jh@suse.cz> 24208 24209 PR middle-end/40043 24210 * except.c (copy_eh_region): Always set prev_try. 24211 (redirect_eh_edge_to_label): Find outer try. 24212 (foreach_reachable_handler): When looking for prev try 24213 handle case where previous try is not going to be taken. 24214 242152009-05-07 Michael Meissner <meissner@linux.vnet.ibm.com> 24216 24217 PR tree-optimization/40049 24218 * tree-vect-stmts.c (vectorizable_operation): If the machine has 24219 only vector/vector shifts, convert the type of the constant to the 24220 appropriate type to avoid building incorrect trees, which 24221 eventually have problems with garbage collection. 24222 242232009-05-08 Joseph Myers <joseph@codesourcery.com> 24224 24225 * fold-const.c (fold_binary): Do not fold multiplication by 1 or 24226 -1 for complex floating-point types if honoring signed zeros. 24227 242282009-05-08 Jan Hubicka <jh@suse.cz> 24229 24230 * cgraphbuild.c (compute_call_stmt_bb_frequency): Accept function 24231 argument; handle correctly when profile is absent. 24232 (build_cgraph_edges): Update. 24233 (rebuild_cgraph_edges): Update. 24234 * cgraph.c: Do not include varray.h. 24235 (cgraph_set_call_stmt_including_clones): New function. 24236 (cgraph_create_edge_including_clones): Likewise 24237 (cgraph_update_edges_for_call_stmt_node): New static cfunction. 24238 (cgraph_update_edges_for_call_stmt): Handle clones. 24239 (cgraph_remove_node): Handle clone tree. 24240 (cgraph_remove_node_and_inline_clones): New function. 24241 (dump_cgraph_node): Dump clone tree. 24242 (cgraph_clone_node): Handle clone tree. 24243 (clone_function_name): Bring here from tree-inline.c. 24244 (cgraph_create_virtual_clone): New function. 24245 * cgraph.h (ipa_replace_map): Move here from ipa.h. 24246 (cgraph_clone_info): New function. 24247 (strut cgraph_node): Add clone_info and new clone tree pointers. 24248 (cgraph_remove_node_and_inline_clones, 24249 cgraph_set_call_stmt_including_clones, 24250 cgraph_create_edge_including_clones, 24251 cgraph_create_virtual_clone): Declare. 24252 (cgraph_function_versioning): Use VEC argument. 24253 (compute_call_stmt_bb_frequency): Update prototype. 24254 (cgraph_materialize_all_clones): New function. 24255 * ipa-cp.c (ipcp_update_cloned_node): Remove. 24256 (ipcp_create_replace_map): Update to VECtors. 24257 (ipcp_update_callgraph): Use virtual clones. 24258 (ipcp_update_bb_counts, ipcp_update_edges_counts): Remove. 24259 (ipcp_update_profiling): Do not update local profiling. 24260 (ipcp_insert_stage): Use VECtors and virtual clones. 24261 * cgraphunit.c (verify_cgraph_node): Verify clone tree. 24262 (clone_of_p): New function. 24263 (cgraph_preserve_function_body_p): Use clone tree. 24264 (cgraph_optimize): Materialize clones. 24265 (cgraph_function_versioning): Update for VECtors. 24266 (save_inline_function_body): Use clone tree. 24267 (cgraph_materialize_clone): New function. 24268 (cgraph_materialize_all_clones): Likewise. 24269 * ipa-inline.c (cgraph_default_inline_p): Use analyzed flags. 24270 * ipa.c: Include gimple.h. 24271 (cgraph_remove_unreachable_nodes): Use clone tree. 24272 * ipa-prop.c (ipa_note_param_call): Update call to 24273 compute_call_stmt_bb_frequencycall. 24274 * ipa-prop.h (ipa_replace_map): Move to cgraph.h. 24275 * tree-inline.c: Do not include varray.h or gt-tree-inline.h. 24276 (copy_bb): Handle updating of clone tree; add new edge when new call 24277 appears. 24278 (expand_call_inline): Be strict about every call having edge. 24279 (clone_fn_id_num, clone_function_name): Move to cgraph.c. 24280 (delete_unreachable_blocks_update_callgraph): New function. 24281 (tree_function_versioning): Use VECtors; always remove unreachable 24282 blocks and fold conditionals. 24283 * tree-inline.h: Do not include varray.h. 24284 (tree_function_versioning): Remove. 24285 * Makefile.in (GTFILES): Remove tree-inline.c 24286 * passes.c (do_per_function): Do only functions having body. 24287 * ipa-struct-reorg.c (do_reorg_1, collect_data_accesses): Handle clone 24288 tree. 24289 242902009-05-08 H.J. Lu <hongjiu.lu@intel.com> 24291 Andrew Morrow <acm@google.com> 24292 24293 PR c/36892 24294 * c-common.c (c_common_attribute_table): Permit deprecated 24295 attribute to take an optional argument. 24296 (handle_deprecated_attribute): If the optional argument to 24297 __attribute__((deprecated)) is not a string ignore the attribute 24298 and emit a warning. 24299 24300 * c-decl.c (grokdeclarator): Updated warn_deprecated_use call. 24301 * c-typeck.c (build_component_ref): Likewise. 24302 (build_external_ref): Likewise. 24303 24304 * toplev.c (warn_deprecated_use): Add an attribute argument. 24305 Emit the message associated with __attribute__((deprecated)). 24306 24307 * toplev.h (warn_deprecated_use): Updated. 24308 24309 * doc/extend.texi: Document new optional parameter to 24310 __attribute__((deprecated)) 24311 243122009-05-08 Michael Eager <eager@eagercon.com> 24313 24314 * config/rs6000/rs6000.md (*movdf_softfloat32): replace 24315 !TARGET_DOUBLE_FLOAT with TARGET_SINGLE_FLOAT. 24316 243172009-05-08 Richard Guenther <rguenther@suse.de> 24318 24319 PR tree-optimization/40062 24320 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): 24321 Avoid exponential behavior. 24322 243232009-05-08 Paolo Bonzini <bonzini@gnu.org> 24324 24325 PR rtl-optimization/33928 24326 PR 26854 24327 * fwprop.c (use_def_ref, get_def_for_use, bitmap_only_bit_bitween, 24328 process_uses, build_single_def_use_links): New. 24329 (update_df): Update use_def_ref. 24330 (forward_propagate_into): Use get_def_for_use instead of use-def 24331 chains. 24332 (fwprop_init): Call build_single_def_use_links and let it initialize 24333 dataflow. 24334 (fwprop_done): Free use_def_ref. 24335 (fwprop_addr): Eliminate duplicate call to df_set_flags. 24336 * df-problems.c (df_rd_simulate_artificial_defs_at_top, 24337 df_rd_simulate_one_insn): New. 24338 (df_rd_bb_local_compute_process_def): Update head comment. 24339 (df_chain_create_bb): Use the new RD simulation functions. 24340 * df.h (df_rd_simulate_artificial_defs_at_top, 24341 df_rd_simulate_one_insn): New. 24342 * opts.c (decode_options): Enable fwprop at -O1. 24343 * doc/invoke.texi (-fforward-propagate): Document this. 24344 243452009-05-08 Joseph Myers <joseph@codesourcery.com> 24346 24347 PR c/24581 24348 * c-typeck.c (build_binary_op): Handle arithmetic between one real 24349 and one complex operand specially. 24350 * tree-complex.c (some_nonzerop): Do not identify a real value as 24351 zero if flag_signed_zeros. 24352 243532009-05-08 Paolo Bonzini <bonzini@gnu.org> 24354 24355 PR rtl-optimization/33928 24356 * loop-invariant.c (record_use): Fix && vs. || mishap. 24357 243582009-05-08 Paolo Bonzini <bonzini@gnu.org> 24359 24360 PR rtl-optimization/33928 24361 * loop-invariant.c (struct use): Add addr_use_p. 24362 (struct def): Add n_addr_uses. 24363 (struct invariant): Add cheap_address. 24364 (create_new_invariant): Set cheap_address. 24365 (record_use): Accept df_ref. Set addr_use_p and update n_addr_uses. 24366 (record_uses): Pass df_ref to record_use. 24367 (get_inv_cost): Do not add inv->cost to comp_cost for cheap addresses 24368 used only as such. 24369 243702009-05-08 Kaz Kojima <kkojima@gcc.gnu.org> 24371 24372 * config/sh/sh.c: Do not include c-pragma.h. 24373 243742009-05-07 Andrew Pinski <andrew_pinski@playstation.sony.com> 24375 24376 * config/spu/spu.c: Remove include of c-common.h. 24377 243782009-05-07 Janis Johnson <janis187@us.ibm.com> 24379 24380 PR c/39037 24381 * c-common.h (mark_valid_location_for_stdc_pragma, 24382 valid_location_for_stdc_pragma_p, set_float_const_decimal64, 24383 clear_float_const_decimal64, float_const_decimal64_p): New. 24384 * c.opt (Wunsuffixed-float-constants): New. 24385 * c-lex.c (interpret_float): Use pragma FLOAT_CONST_DECIMAL64 for 24386 unsuffixed float constant, handle new warning. 24387 * c-cppbuiltin.c (c_cpp_builtins): Use cast for double constants. 24388 * c-decl.c (c_scope): New flag float_const_decimal64. 24389 (set_float_const_decimal64, clear_float_const_decimal64, 24390 float_const_decimal64_p): New. 24391 (push_scope): Set new flag. 24392 * c-parser.c (c_parser_translation_unit): Mark when it's valid 24393 to use STDC pragmas. 24394 (c_parser_external_declaration): Ditto. 24395 (c_parser_compound_statement_nostart): Ditto. 24396 * c-pragma.c (valid_location_for_stdc_pragma, 24397 mark_valid_location_for_stdc_pragma, 24398 valid_location_for_stdc_pragma_p, handle_stdc_pragma, 24399 handle_pragma_float_const_decimal64): New. 24400 (init_pragma): Register new pragma FLOAT_CONST_DECIMAL64. 24401 * cp/semantics.c (valid_location_for_stdc_pragma_p, 24402 set_float_const_decimal64, clear_float_const_decimal64, 24403 float_const_decimal64_p): New dummy functions. 24404 * doc/extend.texi (Decimal Float): Remove statement that the 24405 pragma, and suffix for double constants, are not supported. 24406 * doc/invoke.texi (Warning Options): List new option. 24407 (-Wunsuffixed-float-constants): New. 24408 244092009-05-08 Steven Bosscher <steven@gcc.gnu.org> 24410 24411 * config/i386/i386.c: Do not include c-common.h. 24412 244132009-05-07 Mark Heffernan <meheff@google.com> 24414 24415 * doc/invoke.texi (Debugging Options): Document change of debugging 24416 dump location. 24417 * opts.c (decode_options): Make dump_base_name relative to 24418 aux_base_name directory. 24419 244202009-05-07 Hariharan Sandanagobalane <hariharan@picochip.com> 24421 24422 * config/picochip/picochip.h (NO_DOLLAR_IN_LABEL): Added. 24423 * config/picochip/libgccExtras/divmod15.asm : Removed redefiniton. 24424 244252009-05-07 Rafael Avila de Espindola <espindola@google.com> 24426 24427 * Makefile.in (install-plugin): Simplify a bit. 24428 244292009-05-07 Paolo Bonzini <bonzini@gnu.org> 24430 24431 * Makefile.in (OBJS-common): Add regcprop.o. 24432 (regcprop.o): New. 24433 * timevar.def (TV_CPROP_REGISTERS): New. 24434 * regrename.c (regrename_optimize): Return 0. 24435 (rest_of_handle_regrename): Delete. 24436 (pass_rename_registers): Point to regrename_optimize. 24437 (struct value_data_entry, struct value_data, 24438 kill_value_one_regno, kill_value_regno, kill_value, 24439 set_value_regno, init_value_data, kill_clobbered_value, 24440 kill_set_value, kill_autoinc_value, copy_value, 24441 mode_change_ok, maybe_mode_change, find_oldest_value_reg, 24442 replace_oldest_value_reg, replace_oldest_value_addr, 24443 replace_oldest_value_mem, copyprop_hardreg_forward_1, 24444 debug_value_data, validate_value_data): Move... 24445 * regcprop.c: ... here. 24446 (rest_of_handle_cprop): Delete. 24447 (pass_cprop_hardreg): Point to copyprop_hardreg_forward. 24448 244492009-05-07 Jakub Jelinek <jakub@redhat.com> 24450 24451 PR middle-end/40057 24452 * dojump.c (prefer_and_bit_test): Use immed_double_const instead of 24453 GEN_INT for 1 << bitnum. 24454 (do_jump) <case BIT_AND_EXPR>: Use build_int_cst_wide_type instead of 24455 build_int_cst_type. 24456 244572009-05-07 Uros Bizjak <ubizjak@gmail.com> 24458 24459 * doc/md.texi (Standard Pattern Names For Generation) [sync_nand]: 24460 Remove wrong description of "nand" operation. 24461 244622009-05-06 Richard Guenther <rguenther@suse.de> 24463 Adam Nemet <anemet@caviumnetworks.com> 24464 24465 * gimple.def (GIMPLE_ASSIGN): Fix incorrect information in the 24466 comment. Add that if LHS is not a gimple register, then RHS1 has 24467 to be a single object (GIMPLE_SINGLE_RHS). 24468 244692009-05-06 Adam Nemet <anemet@caviumnetworks.com> 24470 24471 * expr.c (get_def_for_expr): Move it up in the file. 24472 (store_field): When expanding a bit-field store, look at the 24473 defining gimple stmt for the masking conversion. 24474 244752009-05-06 Janis Johnson <janis187@us.ibm.com> 24476 24477 PR middle-end/39986 24478 * dfp.c (encode_decimal32, decode_decimal32, encode_decimal64, 24479 decode_decimal64, encode_decimal128, decode_decimal128): Avoid 24480 32-bit memcpy into long. 24481 244822009-05-06 Jakub Jelinek <jakub@redhat.com> 24483 24484 * dwarf2out.c (new_reg_loc_descr): Don't ever create DW_OP_regX. 24485 (one_reg_loc_descriptor): Create DW_OP_regX here instead of calling 24486 new_reg_loc_descr. 24487 (loc_by_reference): If loc is DW_OP_regX, change it into DW_OP_bregX 0 24488 instead of appending DW_OP_deref*. 24489 244902009-05-06 Michael Matz <matz@suse.de> 24491 24492 PR middle-end/40021 24493 * cfgexpand.c (maybe_cleanup_end_of_block): New static function. 24494 (expand_gimple_cond): Use it to cleanup CFG and superfluous jumps. 24495 244962009-05-06 Rafael Avila de Espindola <espindola@google.com> 24497 24498 * Makefile.in (install-plugin): Fix srcdir handling. 24499 245002009-05-06 Andrey Belevantsev <abel@ispras.ru> 24501 24502 * tree-ssa.c (execute_update_address_taken): Handle TARGET_MEM_REF 24503 when processing for not_regs_needed bitmap. 24504 * gimple.c (walk_stmt_load_store_addr_ops): When visiting address, 24505 handle TARGET_MEM_REF in lhs. Check TMR_BASE for NULL while 24506 handling it for rhs. 24507 245082009-05-06 H.J. Lu <hongjiu.lu@intel.com> 24509 24510 * config/i386/i386.md (unnamed inc/dec peephole): Use 24511 optimize_insn_for_size_p instead of optimize_size. 24512 * config/i386/predicates.md (incdec_operand): Likewise. 24513 (aligned_operand): Likewise. 24514 * config/i386/sse.md (divv8sf3): Likewise. 24515 (sqrtv8sf2): Likewise. 24516 245172009-05-06 H.J. Lu <hongjiu.lu@intel.com> 24518 24519 * config/i386/i386.c (ix86_build_signbit_mask): Make it static. 24520 24521 * config/i386/i386-protos.h (ix86_build_signbit_mask): Removed. 24522 245232009-05-06 H.J. Lu <hongjiu.lu@intel.com> 24524 24525 * config/i386/i386.md (*avx_<code><mode>3_finite): Replace 24526 ssemodesuffixf2c with avxmodesuffixf2c. 24527 245282009-05-06 Joseph Myers <joseph@codesourcery.com> 24529 24530 PR c/40032 24531 * c-decl.c (grokdeclarator): Handle incomplete type of unnamed field. 24532 245332009-05-05 Jakub Jelinek <jakub@redhat.com> 24534 24535 * tree.h: Remove DECL_BY_REFERENCE from private_flag comment. 24536 (struct tree_base): Adjust spacing for 8 bit boundaries. 24537 (struct tree_decl_common): Add decl_by_reference_flag bit. 24538 (DECL_BY_REFERENCE): Adjust. 24539 * print-tree.c (print_node): For VAR_DECL, PARM_DECL or RESULT_DECL, 24540 print DECL_BY_REFERENCE bit. 24541 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Revert last change. 24542 * dwarf2out.c (loc_by_reference, gen_decl_die): Check 24543 DECL_BY_REFERENCE for all VAR_DECLs, not just non-static ones. 24544 (gen_variable_die): Likewise. Check TREE_PRIVATE/TREE_PROTECTED 24545 unconditionally. 24546 24547 PR middle-end/39666 24548 * gimplify.c (gimplify_switch_expr): If case labels cover the whole 24549 range of the type, but default label is missing, add it with one 24550 of the existing labels instead of adding a new label for it. 24551 245522009-05-05 Joseph Myers <joseph@codesourcery.com> 24553 24554 * dwarf.h: Remove. 24555 245562009-05-05 Rafael Avila de Espindola <espindola@google.com> 24557 24558 * Makefile.in (enable_plugin, plugin_includedir): New. 24559 (install): Depend on install-plugin. 24560 (PLUGIN_HEADERS): New. 24561 (install-plugin): New. 24562 * config.gcc: Add vxworks-dummy.h to tm_file for x86 and x86-64. 24563 245642009-05-05 Richard Guenther <rguenther@suse.de> 24565 24566 PR tree-optimization/40022 24567 * tree-ssa-phiprop.c (struct phiprop_d): Exchange vop_stmt for 24568 the only vuse. 24569 (phivn_valid_p): Fix tuplification error, simplify. 24570 (phiprop_insert_phi): Add dumps. 24571 (propagate_with_phi): Simplify. 24572 245732009-05-05 Richard Guenther <rguenther@suse.de> 24574 24575 PR middle-end/40023 24576 * builtins.c (gimplify_va_arg_expr): Properly build the address. 24577 245782009-05-05 Shujing Zhao <pearly.zhao@oracle.com> 24579 24580 * tree.h (strip_float_extensions): Remove duplicate declaration. 24581 (build_low_bits_mask, debug_fold_checksum, expand_function_end, 24582 expand_function_start, stack_protect_prologue, stack_protect_epilogue, 24583 block_ultimate_origin): Rearrange the declarations line to match the 24584 comment that indicates the .c file which the functions are defined. 24585 (dwarf2out_*, set_decl_rtl): Add comment. 24586 (get_base_address): Adjust comment. 24587 (change_decl_assembler_name, maybe_fold_*, build_addr): Rearrange the 24588 declarations line and add comment. 24589 (is_builtin_name): Add blank after function name, for clarity. 24590 245912009-05-04 Joseph Myers <joseph@codesourcery.com> 24592 24593 * attribs.c (decl_attributes): Use %qE for identifiers in 24594 diagnostics. 24595 * cgraphunit.c (verify_cgraph_node): Translate function names to 24596 locale character set in diagnostics. 24597 * coverage.c (get_coverage_counts): Use %qE for identifiers in 24598 diagnostics. 24599 * doc/invoke.texi (-finstrument-functions-exclude-function-list): 24600 Document that functions are named in UTF-8. 24601 * expr.c (expand_expr_real_1): Translate function names to locale 24602 character set in diagnostics. 24603 * gimplify.c (omp_notice_variable, omp_is_private, 24604 gimplify_scan_omp_clauses): Use %qE for identifiers in 24605 diagnostics. 24606 * langhooks.c (lhd_print_error_function): Translate function names 24607 to locale character set. 24608 * langhooks.h (decl_printable_name): Document that return value is 24609 in internal character set. 24610 * stmt.c: Include pretty-print.h 24611 (tree_conflicts_with_clobbers_p): Use %qE for identifiers in 24612 diagnostics. 24613 (resolve_operand_name_1): Translate named operand name to locale 24614 character set. 24615 * stor-layout.c (finalize_record_size): Use %qE for identifiers in 24616 diagnostics. 24617 * toplev.c (announce_function): Translate function names to locale 24618 character set. 24619 (warn_deprecated_use): Use %qE for identifiers in diagnostics. 24620 (default_tree_printer): Use pp_identifier or translate identifiers 24621 to locale character set. Mark "<anonymous>" for translation. 24622 * tree-mudflap.c (mx_register_decls, mudflap_finish_file): Use %qE 24623 for identifiers in diagnostics. 24624 * tree.c (handle_dll_attribute): Use %qE for identifiers in 24625 diagnostics. 24626 * varasm.c (output_constructor): Use %qE for identifiers in 24627 diagnostics. 24628 246292009-05-04 Rafael Avila de Espindola <espindola@google.com> 24630 24631 * configure.ac: use ` ` instead of $() 24632 * configure: Regenerate. 24633 246342009-05-05 Ben Elliston <bje@au.ibm.com> 24635 24636 * config/pa/linux-atomic.c: Eliminate conditional include of 24637 errno.h on non-LP64 systems to simplify build requirements. 24638 246392009-05-04 Joseph Myers <joseph@codesourcery.com> 24640 24641 * c-common.c (handle_mode_attribute): Use %qE for identifiers in 24642 diagnostics. 24643 * c-decl.c (check_bitfield_type_and_width): Make orig_name a tree 24644 and pass value to identifier_to_locale. 24645 (warn_variable_length_array): Make name a tree. 24646 (grokdeclarator): Separate diagnostic texts for named and unnamed 24647 declarators. Use %qE for named declarators. 24648 * c-parser.c (c_lex_one_token): Use %qE for identifiers in 24649 diagnostics. 24650 * c-pragma.c (pop_alignment, handle_pragma_pack): Use %qE for 24651 identifiers in diagnostics. 24652 * c-typeck.c (push_member_name, start_init): Pass identifiers to 24653 identifier_to_locale. Mark "anonymous" strings for translation. 24654 246552009-05-04 Michael Eager <eager@eagercon.com> 24656 24657 * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow 24658 address for DImode/DFmode only if double-precision FP regs. 24659 246602009-05-04 Michael Eager <eager@eagercon.com> 24661 24662 * config/rs6000/rs6000.c (rs6000_libcall_value): Add 24663 TARGET_SINGLE_FLOAT check. 24664 246652009-05-04 Michael Eager <eager@eagercon.com> 24666 24667 * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options. 24668 246692009-05-04 Michael Eager <eager@eagercon.com> 24670 24671 * gcc/config.gcc (powerpc-xilinx-eabi*): Add tm t-xilinx 24672 * config/rs6000/t-xilinx: New 24673 246742009-05-04 Paolo Bonzini <bonzini@gnu.org> 24675 24676 * doc/tm.texi (LEGITIMIZE_ADDRESS): Revise documentation. 24677 * gcc/defaults.h (LEGITIMIZE_ADDRESS): Delete. 24678 * gcc/explow.c (memory_address): Use target hook. 24679 * gcc/targhooks.c (default_legitimize_address): New. 24680 * gcc/targhooks.h (default_legitimize_address): New. 24681 * gcc/target.h (legitimize_address): New. 24682 * gcc/target-def.h (TARGET_LEGITIMIZE_ADDRESS): New. 24683 (TARGET_INITIALIZER): Include it. 24684 * gcc/system.h (LEGITIMIZE_ADDRESS): Poison. 24685 24686 * config/bfin/bfin-protos.h (legitimize_address): Remove. 24687 * config/bfin/bfin.c (legitimize_address): Remove. 24688 * config/bfin/bfin.h (LEGITIMIZE_ADDRESS): Remove. 24689 * config/m68hc11/m68hc11-protos.h (m68hc11_legitimize_address): 24690 Remove. 24691 * config/m68hc11/m68hc11.c (m68hc11_legitimize_address): Remove. 24692 * config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Remove. 24693 24694 * gcc/config/arm/arm.h (LEGITIMIZE_ADDRESS, ARM_LEGITIMIZE_ADDRESS, 24695 THUMB_LEGITIMIZE_ADDRESS, THUMB2_LEGITIMIZE_ADDRESS): Delete. 24696 * gcc/config/s390/s390.h (LEGITIMIZE_ADDRESS): Delete. 24697 * gcc/config/m32c/m32c.h (LEGITIMIZE_ADDRESS): Delete. 24698 * gcc/config/sparc/sparc.h (LEGITIMIZE_ADDRESS): Delete. 24699 * gcc/config/m32r/m32r.h (LEGITIMIZE_ADDRESS): Delete. 24700 * gcc/config/i386/i386.h (LEGITIMIZE_ADDRESS): Delete. 24701 * gcc/config/sh/sh.h (LEGITIMIZE_ADDRESS): Delete. 24702 * gcc/config/avr/avr.h (LEGITIMIZE_ADDRESS): Delete. 24703 * gcc/config/m68hc11/m68hc11.h (LEGITIMIZE_ADDRESS): Delete. 24704 * gcc/config/iq2000/iq2000.h (LEGITIMIZE_ADDRESS): Delete. 24705 * gcc/config/mn10300/mn10300.h (LEGITIMIZE_ADDRESS): Delete. 24706 * gcc/config/m68k/m68k.h (LEGITIMIZE_ADDRESS): Delete. 24707 * gcc/config/score/score.h (LEGITIMIZE_ADDRESS): Delete. 24708 * gcc/config/pa/pa.h (LEGITIMIZE_ADDRESS): Delete. 24709 * gcc/config/mips/mips.h (LEGITIMIZE_ADDRESS): Delete. 24710 * gcc/config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Delete. 24711 * gcc/config/frv/frv.h (LEGITIMIZE_ADDRESS): Delete. 24712 * gcc/config/spu/spu.h (LEGITIMIZE_ADDRESS): Delete. 24713 * gcc/config/xtensa/xtensa.h (LEGITIMIZE_ADDRESS): Delete. 24714 * gcc/config/cris/cris.h (LEGITIMIZE_ADDRESS): Delete. 24715 * gcc/config/rs6000/rs6000.h (LEGITIMIZE_ADDRESS): Delete. 24716 * gcc/config/picochip/picochip.h (LEGITIMIZE_ADDRESS): Delete. 24717 24718 * gcc/config/s390/s390-protos.h (legitimize_address): Delete. 24719 * gcc/config/m32c/m32c-protos.h (m32c_legitimize_address): Delete. 24720 * gcc/config/sparc/sparc-protos.h (legitimize_address): Delete. 24721 * gcc/config/i386/i386-protos.h (legitimize_address): Delete. 24722 * gcc/config/avr/avr-protos.h (legitimize_address): Delete. 24723 * gcc/config/mn10300/mn10300-protos.h (legitimize_address): Delete. 24724 * gcc/config/score/score-protos.h (score_legitimize_address): Delete. 24725 * gcc/config/arm/arm-protos.h (arm_legitimize_address, 24726 (thumb_legitimize_address): Delete. 24727 * gcc/config/pa/pa-protos.h (hppa_legitimize_address): Delete. 24728 * gcc/config/mips/mips-protos.h (mips_legitimize_address): Delete. 24729 * gcc/config/alpha/alpha-protos.h (alpha_legitimize_address): Delete. 24730 * gcc/config/frv/frv-protos.h (frv_legitimize_address): Delete. 24731 * gcc/config/spu/spu-protos.h (spu_legitimize_address): Delete. 24732 * gcc/config/xtensa/xtensa-protos.h (xtensa_legitimize_address): 24733 Delete. 24734 * gcc/config/rs6000/rs6000-protos.h (rs6000_legitimize_address): 24735 Delete. 24736 24737 * config/arm/arm.c (arm_legitimize_address): Maybe call Thumb version. 24738 * config/m32c/m32c.c (m32c_legitimize_address): Standardize. 24739 * config/m32r/m32r.c (m32r_legitimize_address): New. 24740 * config/m68k/m68k.c (m68k_legitimize_address): New. 24741 * config/score/score.c (score_legitimize_address): Standardize. 24742 * config/score/score3.c (score3_legitimize_address): Standardize. 24743 * config/score/score3.h (score3_legitimize_address): Adjust. 24744 * config/score/score7.c (score7_legitimize_address): Standardize. 24745 * config/score/score7.h (score7_legitimize_address): Adjust. 24746 * config/sh/sh.c (sh_legitimize_address): New. 24747 * config/iq2000/iq2000.c (iq2000_legitimize_address): New. 24748 24749 * gcc/config/s390/s390.c (legitimize_address): Rename to... 24750 (s390_legitimize_address): ... this. 24751 * gcc/config/sparc/sparc.c (legitimize_address): Rename to... 24752 (sparc_legitimize_address): ... this. 24753 * gcc/config/i386/i386.c (legitimize_address): Rename to... 24754 (ix86_legitimize_address): ... this. 24755 * gcc/config/avr/avr.c (legitimize_address): Rename to... 24756 (avr_legitimize_address): ... this. 24757 * gcc/config/mn10300/mn10300.c (legitimize_address): Rename to... 24758 (mn10300_legitimize_address): ... this. 24759 * config/alpha/alpha.c (alpha_legitimize_address): Wrap... 24760 (alpha_legitimize_address_1): ... the old alpha_legitimize_address. 24761 (alpha_expand_mov): Adjust call. 24762 24763 * config/frv/frv.c (frv_legitimize_address): Return x on failure. 24764 * config/spu/spu.c (spu_legitimize_address): Likewise. 24765 * config/xtensa/xtensa.c (xtensa_legitimize_address): Likewise. 24766 * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise. 24767 247682009-05-04 Joseph Myers <joseph@codesourcery.com> 24769 24770 * intl.c (locale_encoding, locale_utf8): New. 24771 (gcc_init_libintl): Initialize locale_encoding and locale_utf8. 24772 * intl.h (locale_encoding, locale_utf8): Declare. 24773 * pretty-print.c: Include ggc.h. Include iconv.h if HAVE_ICONV. 24774 (pp_base_tree_identifier, decode_utf8_char, identifier_to_locale): 24775 New. 24776 * pretty-print.h (pp_identifier): Call identifier_to_locale on ID 24777 argument. 24778 (pp_tree_identifier): Define to call pp_base_tree_identifier. 24779 (pp_base_tree_identifier): Declare as function. 24780 (identifier_to_locale): Declare. 24781 * Makefile.in (pretty-print.o): Update dependencies. 24782 * varasm.c (finish_aliases_1): Use %qE for identifiers in diagnostics. 24783 247842009-05-04 Richard Guenther <rguenther@suse.de> 24785 24786 PR middle-end/40015 24787 * builtins.c (fold_builtin_memory_op): Do not decay to element 24788 type if the size matches the whole array. 24789 247902009-05-04 Kazu Hirata <kazu@codesourcery.com> 24791 24792 * expmed.c (synth_mult): When trying out a shift, pass the result 24793 of a signed shift. 24794 247952009-05-04 Kazu Hirata <kazu@codesourcery.com> 24796 24797 * expmed.c (shiftsub_cost): Rename to shiftsub0_cost. 24798 (shiftsub1_cost): New. 24799 (init_expmed): Compute shiftsub1_cost. 24800 (synth_mult): Optimize multiplications by constants of the form 24801 -(2^^m-1) for some constant positive integer m. 24802 248032009-05-03 Richard Guenther <rguenther@suse.de> 24804 24805 PR c/39983 24806 * c-typeck.c (array_to_pointer_conversion): Do not built 24807 ADDR_EXPRs of arrays of pointer-to-element type. 24808 * c-gimplify.c (c_gimplify_expr): Revert change fixing 24809 up wrong ADDR_EXPRs after-the-fact. 24810 * c-common.c (strict_aliasing_warning): Strip pointer 24811 conversions for obtaining the original type. 24812 * builtins.c (fold_builtin_memset): Handle array types. 24813 (fold_builtin_memory_op): Handle folded POINTER_PLUS_EXPRs 24814 and array types 24815 248162009-05-03 Richard Guenther <rguenther@suse.de> 24817 24818 PR middle-end/23329 24819 * tree-ssa.c (useless_type_conversion_p_1): Use get_deref_alias_set. 24820 Do not lose casts from array types with unknown extent to array 24821 types with known extent. 24822 * tree-ssa-copy.c (may_propagate_copy): Remove hack checking for 24823 alias set compatibility. 24824 248252009-05-03 Manuel López-Ibáñez <manu@gcc.gnu.org> 24826 24827 * flags.h (extra_warnings): Delete. 24828 * toplev.c (process_options): Handle Wuninitialized here. 24829 * opts.c (extra_warnings): Delete. 24830 (set_Wextra): Delete. 24831 (common_handle_option): -Wextra can be handled automatically. 24832 * c-opts.c (c_common_handle_option): Delete obsolete code. 24833 (c_common_post_options): Simplify comment. 24834 * common.opt (W): Add Var. 24835 (Wextra): Add Var. 24836 (Wuninitialized): Initialize to -1. 24837 248382009-05-03 Adam Nemet <anemet@caviumnetworks.com> 24839 Richard Guenther <rguenther@suse.de> 24840 24841 * expr.c (get_def_for_expr): New function. 24842 (expand_expr_real_1) <PLUS_EXPR, MINUS_EXPR>: Adjust to work with 24843 SSA rather than trees. 24844 <MULT_EXPR>: Likewise. Use subexp0 and subexp1 instead of 24845 TREE_OPERAND (exp, 0) and TREE_OPERAND (exp, 1). 24846 248472009-05-03 Joseph Myers <joseph@codesourcery.com> 24848 24849 * c-common.c (reswords): Add _Imaginary. 24850 * c-common.c (enum rid): Add RID_IMAGINARY. 24851 248522009-05-03 Paolo Bonzini <bonzini@gnu.org> 24853 24854 * tree.h (TYPE_VECTOR_OPAQUE): Fix documentation. 24855 Patch by Richard Guenther. 24856 248572009-05-03 Anatoly Sokolov <aesok@post.ru> 24858 24859 * defaults.h (FRAME_POINTER_REQUIRED): Provide default. 24860 * doc/tm.texi (FRAME_POINTER_REQUIRED): Revise documentation. 24861 * config/alpha/alpha.h (FRAME_POINTER_REQUIRED): Delete. 24862 * config/s390/s390.h (FRAME_POINTER_REQUIRED): Delete. 24863 * config/spu/spu.h (FRAME_POINTER_REQUIRED): Delete. 24864 * config/sh/sh.h (FRAME_POINTER_REQUIRED): Delete. 24865 * config/pdp11/pdp11.h (FRAME_POINTER_REQUIRED): Delete. 24866 * config/stormy16/stormy16.h (FRAME_POINTER_REQUIRED): Delete. 24867 * config/m68hc11/m68hc11.h (FRAME_POINTER_REQUIRED): Delete. 24868 * config/iq2000/iq2000.h (FRAME_POINTER_REQUIRED): Delete. 24869 * config/mn10300/mn10300.h (FRAME_POINTER_REQUIRED): Delete. 24870 * config/ia64/ia64.h (FRAME_POINTER_REQUIRED): Delete. 24871 * config/m68k/m68k.h (FRAME_POINTER_REQUIRED): Delete. 24872 * config/rs6000/rs6000.h (FRAME_POINTER_REQUIRED): Delete. 24873 * config/picochip/picochip.h (FRAME_POINTER_REQUIRED): Delete. 24874 * config/mcore/mcore.h (FRAME_POINTER_REQUIRED): Delete. 24875 * config/h8300/h8300.h (FRAME_POINTER_REQUIRED): Delete. 24876 * config/v850/v850.h (FRAME_POINTER_REQUIRED): Delete. 24877 248782009-05-02 Richard Guenther <rguenther@suse.de> 24879 24880 PR tree-optimization/39940 24881 * tree-ssa-pre.c (eliminate): Make sure we may propagate before 24882 doing so. 24883 248842009-05-02 Richard Guenther <rguenther@suse.de> 24885 24886 PR middle-end/40001 24887 * tree-ssa.c (execute_update_addresses_taken): Properly check 24888 if we can mark a variable DECL_GIMPLE_REG_P. 24889 * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P 24890 back to the end of the function. 24891 (is_gimple_reg_type): Remove complex type special casing. 24892 * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P 24893 if not optimizing. 24894 248952009-05-02 Ben Elliston <bje@au.ibm.com> 24896 24897 * doc/collect2.texi (Collect2): Document search path behaviour 24898 when configured with --with-ld. 24899 249002009-05-02 Jan Hubicka <jh@suse.cz> 24901 24902 * tree-ssa-coalesce.c (coalesce_cost): Do not take ciritical 24903 parameter; update callers. 24904 (coalesce_cost_edge): EH edges are costier because they needs 24905 splitting even if not critical and even more costier when there are 24906 multiple EH predecestors. 24907 249082009-05-02 Jan Hubicka <jh@suse.cz> 24909 24910 * except.c (remove_eh_handler_and_replace): Handle updating after 24911 removing TRY blocks. 24912 249132009-05-02 Eric Botcazou <ebotcazou@adacore.com> 24914 24915 * store-motion.c (compute_store_table): Add ENABLE_CHECKING guard. 24916 249172009-05-02 Steven Bosscher <steven@gcc.gnu.org> 24918 24919 * varasm.c: Do not include c-pragma.h. 24920 * attribs.c: Do not incude c-common.h. 24921 249222009-05-01 Michael Matz <matz@suse.de> 24923 24924 * calls.c (initialize_argument_information): Handle SSA names like 24925 decls with a non MEM_P DECL_RTL. 24926 249272009-05-01 Steven Bosscher <steven@gcc.gnu.org> 24928 24929 * ipa-reference.c: Do not include c-common.h, include splay-tree.h. 24930 * ipa-utils.c: Likewise. 24931 * ipa-type-escape.c: Likewise. 24932 * cgraphunit.c Do not include c-common.h. 24933 * ipa-pure-const.c: Likewise. 24934 * tree-if-conv.c: Likewise. 24935 * matrix-reorg.c: Do not include c-common.h and c-tree.h. 24936 * ipa-struct-reorg.c: Likewise. 24937 * tree-nomudflap.c: Likewise. 24938 * tree-ssa-structalias.c: Likewise. 24939 249402009-05-01 Steven Bosscher <steven@gcc.gnu.org> 24941 24942 * store-motion.c: Many cleanups to make this pass a first-class 24943 citizen instead of an appendix to gcse load motion. Add TODO list 24944 to make this pass faster/cleaner/better. 24945 24946 (struct ls_expr): Post gcse.c-split cleanups. 24947 Rename to st_expr. Rename "loads" field to "antic_stores". Rename 24948 "stores" field to "avail_stores". 24949 (pre_ldst_mems): Rename to store_motion_mems. 24950 (pre_ldst_table): Rename to store_motion_mems_table. 24951 (pre_ldst_expr_hash): Rename to pre_st_expr_hash, update users. 24952 (pre_ldst_expr_eq): Rename to pre_st_expr_eq, update users. 24953 (ldst_entry): Rename to st_expr_entry, update users. 24954 (free_ldst_entry): Rename to free_st_expr_entry, update users. 24955 (free_ldst_mems): Rename to free_store_motion_mems, update users. 24956 (enumerate_ldsts): Rename to enumerate_store_motion_mems, 24957 update caller. 24958 (first_ls_expr): Rename to first_st_expr, update users. 24959 (next_ls_expr): Rename to next_st_expr, update users. 24960 (print_ldst_list): Rename to print_store_motion_mems. Print names of 24961 fields properly for store motion instead of names inherited from load 24962 motion in gcse.c. 24963 (ANTIC_STORE_LIST, AVAIL_STORE_LIST): Remove. 24964 (LAST_AVAIL_CHECK_FAILURE): Explain what this is. Undefine when we 24965 are done with it. 24966 24967 (ae_kill): Rename to st_kill, update users. 24968 (ae_gen): Rename to st_avloc, update users. 24969 (transp): Rename to st_transp, update users. 24970 (pre_insert_map): Rename to st_insert_map, update users. 24971 (pre_delete_map): Rename to st_delete_map, update users. 24972 (insert_store, build_store_vectors, free_store_memory, 24973 one_store_motion_pass): Update for abovementioned changes. 24974 24975 (gcse_subst_count, gcse_create_count): Remove. 24976 (one_store_motion_pass): New statistics counters "n_stores_deleted" 24977 and "n_stores_created", local variables. 24978 24979 (extract_mentioned_regs, extract_mentioned_regs_1): Rewrite to 24980 use for_each_rtx. 24981 24982 (regvec, compute_store_table_current_insn): Remove. 24983 (reg_set_info, reg_clear_last_set): Remove. 24984 (compute_store_table): Use DF caches instead of local dataflow 24985 solvers. 24986 249872009-05-01 Joseph Myers <joseph@codesourcery.com> 24988 24989 * c-objc-common.c (c_tree_printer): Print identifiers with 24990 pp_identifier, not pp_string. Mark "({anonymous})" for 24991 translation. 24992 * c-pretty-print.c (pp_c_ws_string): New. 24993 (pp_c_cv_qualifier, pp_c_type_specifier, 24994 pp_c_specifier_qualifier_list, pp_c_parameter_type_list, 24995 pp_c_storage_class_specifier, pp_c_function_specifier, 24996 pp_c_attributes, pp_c_bool_constant, pp_c_constant, 24997 pp_c_primary_expression, pp_c_postfix_expression, 24998 pp_c_unary_expression, pp_c_shift_expression, 24999 pp_c_relational_expression, pp_c_equality_expression, 25000 pp_c_logical_and_expression, pp_c_logical_or_expression): Mostly 25001 use pp_string and pp_c_ws_string in place of pp_identifier and 25002 pp_c_identifier for non-identifiers. Mark English strings for 25003 translation. 25004 * c-pretty-print.h (pp_c_ws_string): Declare. 25005 250062009-04-30 Paul Pluzhnikov <ppluzhnikov@google.com> 25007 Roland McGrath <roland@redhat.com> 25008 25009 * configure.ac (HAVE_LD_BUILDID): New check for ld --build-id support. 25010 (ENABLE_LD_BUILDID): New configuration option. 25011 * gcc.c [HAVE_LD_BUILDID and ENABLE_LD_BUILDID] 25012 (LINK_BUILDID_SPEC): New macro. 25013 (init_spec): If defined, prepend it between LINK_EH_SPEC and 25014 link_spec. 25015 * doc/install.texi: Document --enable-linker-build-id option. 25016 * configure: Rebuild. 25017 * config.in: Rebuild. 25018 250192009-04-30 Adam Nemet <anemet@caviumnetworks.com> 25020 25021 * config/mips/mips.h (FRAME_GROWS_DOWNWARD, 25022 MIPS_GP_SAVE_AREA_SIZE): Define new macros. 25023 (STARTING_FRAME_OFFSET): Return 0 if FRAME_GROWS_DOWNWARD. Use 25024 MIPS_GP_SAVE_AREA_SIZE. 25025 * config/mips/mips.c (struct mips_frame_info): Update comment 25026 before arg_pointer_offset and hard_frame_pointer_offset. 25027 (mips_compute_frame_info): Update diagram before function: to 25028 correctly use stack_pointer_rtx for fp_sp_offset and gp_sp_offset, to 25029 indicate the position of frame_pointer_rtx with -fstack-protector and 25030 to show args_size. Don't allocate cprestore area for leaf functions 25031 if FRAME_GROWS_DOWNWARD. Use MIPS_GP_SAVE_AREA_SIZE to set 25032 cprestore_size. 25033 (mips_initial_elimination_offset): Update for FRAME_GROWS_DOWNWARD. 25034 250352009-04-30 Michael Matz <matz@suse.de> 25036 25037 PR tree-optimization/39955 25038 * config/rs6000/rs6000.c (rs6000_check_sdmode): Also check SSA_NAMEs. 25039 250402009-04-30 Dave Korn <dave.korn.cygwin@gmail.com> 25041 25042 * ira.c (setup_cover_and_important_classes): Use safe macro 25043 REG_CLASS_FOR_CONSTRAINT instead of calling regclass_for_constraint 25044 directly. 25045 * genpreds.c (write_tm_preds_h): Output suitable definition of 25046 REG_CLASS_FOR_CONSTRAINT. 25047 250482009-04-30 Rafael Avila de Espindola <espindola@google.com> 25049 25050 * alloc-pool.c (alloc_pool_descriptor): Use an insert_opion value 25051 instead of an int. 25052 * bitmap.c (bitmap_descriptor): Likewise. 25053 * ggc-common.c (loc_descriptor): Likewise. 25054 * varray.c (varray_descriptor): Likewise. 25055 * vec.c (vec_descriptor): Likewise. 25056 250572009-04-30 Eric Botcazou <ebotcazou@adacore.com> 25058 25059 * Makefile.in (dce.o): Add $(EXCEPT_H). 25060 * dce.c: Include except.h and delete redundant vector definitions. 25061 (deletable_insn_p): Return false for non-call insns that can throw 25062 if DF is running. 25063 250642009-04-30 Steven Bosscher <steven@gcc.gnu.org> 25065 25066 * gcse.c (ae_gen): Remove. 25067 (can_assign_to_reg_p): Rename to can_assign_to_reg_without_clobbers_p 25068 and make non-static function to make it available in store-motion.c. 25069 Update call sites with search-and-replace. 25070 (enumerate_ldsts, reg_set_info, reg_clear_last_set, store_ops_ok, 25071 extract_mentioned_regs, extract_mentioned_regs_helper, 25072 find_moveable_store, compute_store_table, load_kills_store, find_loads, 25073 store_killed_in_insn, store_killed_after, store_killed_before, 25074 build_store_vectors, insert_insn_start_basic_block, insert-store, 25075 remove_reachable_equiv_notes, replace_store_insn, delete_store, 25076 free_store_memory, one_store_motion_pass, gate_rtl_store_motion, 25077 execute_rtl_store_motion, pass_rtl_store_motion): Move to... 25078 * store-motion.c: ...new file. Also copy data structures from gcse.c 25079 and clean up to remove parts not used by store motion. 25080 * rtl.h (can_assign_to_reg_without_clobbers_p): Add prototype. 25081 * Makefile.in (store-motion.o): New rule. Add to OBJS-common. 25082 250832009-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25084 25085 PR target/38571 25086 * config/arm/arm.h (FUNCTION_BOUNDARY): Set to 16 for thumb 25087 when optimizing for size. 25088 250892009-04-30 Hans-Peter Nilsson <hp@axis.com> 25090 25091 * gcse.c (gcse_constant_p): Fix typo in last change. 25092 250932009-04-30 Rafael Avila de Espindola <espindola@google.com> 25094 25095 * plugin.c: Include plugin-version.h only if ENABLE_PLUGIN is defined. 25096 250972009-04-30 Andreas Krebbel <krebbel1@de.ibm.com> 25098 25099 * gcse.c (gcse_constant_p): Make sure the constant is sharable. 25100 251012009-04-29 James E. Wilson <wilson@codesourcery.com> 25102 25103 * config/mips/mips.c (mips_add_offset): Use gen_int_mode for 25104 CONST_HIGH_PART result. 25105 251062009-04-29 Anatoly Sokolov <aesok@post.ru> 25107 25108 * config/avr/avr.c (initial_elimination_offset): Rename to 25109 avr_initial_elimination_offset. 25110 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p, 25111 change return type to bool. 25112 (avr_can_eliminate): New function. 25113 * config/avr/avr.h (CAN_ELIMINATE): Use avr_can_eliminate. 25114 (FRAME_POINTER_REQUIRED): Use avr_frame_pointer_required_p. 25115 (INITIAL_ELIMINATION_OFFSET): Use avr_initial_elimination_offset. 25116 * config/avr/avr-protos.h (initial_elimination_offset): Rename to 25117 avr_initial_elimination_offset. 25118 (frame_pointer_required_p): Rename to avr_frame_pointer_required_p. 25119 (avr_initial_elimination_offset): Define. 25120 251212009-04-29 Eric Botcazou <ebotcazou@adacore.com> 25122 Steven Bosscher <steven@gcc.gnu.org> 25123 25124 PR rtl-optimization/39938 25125 * Makefile.in (cfgrtl.o): Add $(INSN_ATTR_H). 25126 * cfgrtl.c: Include insn-attr.h. 25127 (rest_of_pass_free_cfg): New function. 25128 (pass_free_cfg): Use rest_of_pass_free_cfg as execute function. 25129 * resource.c (init_resource_info): Remove call to df_analyze. 25130 251312009-04-29 Richard Guenther <rguenther@suse.de> 25132 25133 PR target/39943 25134 * config/i386/i386.c (ix86_vectorize_builtin_conversion): Only 25135 allow conversion to signed integers. 25136 251372009-04-29 Richard Guenther <rguenther@suse.de> 25138 25139 * tree-cfg.c (verify_gimple_assign_binary): Allow vector 25140 shifts of floating point vectors if the shift amount is 25141 a constant multiple of the element size. 25142 251432009-04-29 Andreas Krebbel <krebbel1@de.ibm.com> 25144 Michael Matz <matz@suse.de> 25145 25146 PR middle-end/39927 25147 PR bootstrap/39929 25148 * tree-outof-ssa.c (emit_partition_copy): New function. 25149 (insert_partition_copy_on_edge, insert_rtx_to_part_on_edge, 25150 insert_part_to_rtx_on_edge): Perform the partition base var 25151 copy using emit_partition_copy. 25152 (insert_value_copy_on_edge): Convert constants to the right mode. 25153 (insert_rtx_to_part_on_edge): Add UNSIGNEDSRCP parameter. 25154 (elim_create): Pass the sign of the src to insert_rtx_to_part_on_edge. 25155 251562009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25157 25158 * config/bfin/bfin.c (bfin_optimize_loop): If we need a scratch reg, 25159 scan backwards to try to find a constant to initialize it. 25160 25161 * config/bfin/bfin.c (bfin_optimize_loop): When looking for the last 25162 insn before the loop_end instruction, don't look past labels. 25163 251642009-04-29 Richard Guenther <rguenther@suse.de> 25165 25166 PR middle-end/39937 25167 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Do not 25168 loose type conversions. 25169 (forward_propagate_addr_expr): Fix tuplification bug. Remove 25170 stmts only if there are no uses of its definition. 25171 251722009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25173 25174 * config/bfin/bfin.h (splitting_loops): Declare. 25175 * config/bfin/bfin-protos.h (WA_05000257, WA_05000283, WA_05000315): 25176 Reorder bit definitions to be ascending. 25177 (WA_LOAD_LCREGS, ENABLE_WA_LOAD_LCREGS): New macros. 25178 * config/bfin/bfin.c (splitting_loops): New variable. 25179 (bfin_cpus): Add WA_LOAD_LCREGS as needed. 25180 (struct loop_info): Remove members INIT and LOOP_INIT. 25181 (bfin_optimize_loop): Don't set them. Reorder the code that generates 25182 the LSETUP sequence. Allow LC to be loaded from any register, but 25183 also add a case to push/pop a PREG scratch if ENABLE_WA_LOAD_LCREGS. 25184 (bfin_reorg_loops): When done, split all BB_ENDs with splitting_loops 25185 set to 1. 25186 * config/bfin/bfin.md (loop_end splitter): Use splitting_loops instead 25187 of reload_completed. 25188 25189 From Jie Zhang: 25190 * config/bfin/bfin.md (movsi_insn): Refine constraints. 25191 251922009-04-29 Rafael Avila de Espindola <espindola@google.com> 25193 25194 * Makefile.in (PLUGIN_VERSION_H): New. 25195 (OBJS-common): Remove plugin-version.o. 25196 (plugin.o): Depend on (PLUGIN_VERSION_H). 25197 (plugin-version.o): Remove. 25198 * configure: Regenerate 25199 * configure.ac: Create plugin-version.h. 25200 * gcc-plugin.h (plugin_gcc_version): Remove. 25201 (plugin_default_version_check): Change signature. 25202 * plugin-version.c: Remove. 25203 * plugin.c: Include plugin-version.h. 25204 (str_plugin_gcc_version_name): Remove. 25205 (try_init_one_plugin): Pass gcc version to plugin_init. 25206 (plugin_default_version_check): Both gcc and plugin versions are now 25207 arguments. 25208 252092009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25210 25211 * config/bfin/bfin.c (bfin_optimize_loop): Unify handling of 25212 problematic last insns. Test for TYPE_CALL rather than CALL_P. 25213 Remove special case testing for last insn of inner loops. Don't fail 25214 if the loop ends with a jump, emit an extra nop instead. 25215 25216 * config/bfin/bfin.c (bfin_register_move_cost): Test for subsets of 25217 DREGS rather than comparing directly. Remove code that tries to 25218 account for latencies. 25219 252202009-04-29 Richard Guenther <rguenther@suse.de> 25221 25222 PR tree-optimization/39941 25223 * tree-ssa-pre.c (eliminate): Schedule update-ssa after 25224 eliminating an indirect call. 25225 252262009-04-29 Richard Guenther <rguenther@suse.de> 25227 25228 * tree-cfg.c (verify_types_in_gimple_reference): Add require_lvalue 25229 parameter. Allow invariants as base if !require_lvalue. 25230 (verify_gimple_assign_single): Adjust. 25231 252322009-04-29 Bernd Schmidt <bernd.schmidt@analog.com> 25233 25234 * config/bfin/bfin.md (sp_or_sm, spm_string, spm_name): New macro. 25235 (ss<spm_name>hi3, ss<spm_name>hi3_parts, ss<spm_name>hi3_low_parts, 25236 ss<spm_name_hi3_high_parts): New patterns, replacing ssaddhi3, 25237 ssubhi3, ssaddhi3_parts and sssubhi3_parts. 25238 (flag_mulhi3_parts): Produce a HImode output rather than trying to set 25239 a VEC_SELECT. 25240 * config/bfin/bfin.c (bfin_expand_builtin, 25241 case BFIN_BUILTIN_CPLX_SQU): Adjust accordingly. 25242 252432009-04-28 Richard Guenther <rguenther@suse.de> 25244 25245 * tree-vect-loop.c (get_initial_def_for_induction): Use 25246 correct types for pointer increment. 25247 252482009-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 25249 25250 * toplev.c (print_version): Update GMP version string calculation. 25251 252522009-04-28 Eric Botcazou <ebotcazou@adacore.com> 25253 25254 PR rtl-optimization/39938 25255 * resource.c (init_resource_info): Add call to df_analyze. 25256 252572009-04-28 Uros Bizjak <ubizjak@gmail.com> 25258 25259 * config/alpha/alpha.md (usegp): Cast the result of 25260 alpha_find_lo_sum_using_gp to enum attr_usegp. 25261 * config/alpha/alpha.c (override_options): Remove end-of-structure 25262 marker element from cpu_table. Use array size of cpu_table to handle 25263 -mcpu and -mtune options. 25264 (tls_symbolic_operand_type): Change 0 to TLS_MODEL_NONE. 25265 252662009-04-28 Joseph Myers <joseph@codesourcery.com> 25267 25268 * config.gcc (powerpc*-*-* | rs6000-*-*): Add 25269 rs6000/option-defaults.h to tm_file. Support cpu_32, cpu_64, 25270 tune_32 and tune_64. 25271 * doc/install.texi (--with-cpu-32, --with-cpu-64): Document 25272 support on PowerPC. 25273 * config/rs6000/rs6000.h (OPTION_DEFAULT_SPECS): Move to ... 25274 * config/rs6000/option-defaults.h: ... here. New file. 25275 (OPT_64, OPT_32): Define. 25276 (MASK_64BIT): Define to 0 if not already defined. 25277 (OPT_ARCH64, OPT_ARCH32): Define. 25278 (OPTION_DEFAULT_SPECS): Add entries for cpu_32, cpu_64, tune_32 25279 and tune_64. 25280 252812009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25282 25283 * config/arm/arm.c (arm_override_options): Emit error on using 25284 fpa with AAPCS. 25285 252862009-04-28 Uros Bizjak <ubizjak@gmail.com> 25287 25288 PR rtl-optimization/39914 25289 * ira-conflicts.c (ira_build_conflicts): Prohibit call used 25290 registers for allocnos created from user-defined variables only 25291 when not optimizing. 25292 252932009-04-28 Richard Guenther <rguenther@suse.de> 25294 25295 PR middle-end/39937 25296 * fold-const.c (fold_binary): Use distribute_real_division only 25297 on float types. 25298 252992009-04-28 Steve Ellcey <sje@cup.hp.com> 25300 25301 * config.gcc (hppa*64*-*-hpux11*): Set use_gcc_stdint and 25302 add hpux-stdint.h to tm_file. 25303 (hppa[12]*-*-hpux11*): Ditto. 25304 (ia64*-*-hpux*): Ditto. 25305 * config/hpux-stdint.h: New. 25306 * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Set 25307 __STDC_EXT__ for all compiles. 25308 * config/pa/pa-hpux.h: Ditto. 25309 * config/pa/pa-hpux10.h: Ditto. 25310 * config/pa/pa-hpux11.h: Ditto. 25311 253122009-04-28 Catherine Moore <clm@codesourcery.com> 25313 25314 * debug.h (set_name): Add comment. 25315 253162009-04-28 Andrew Pinski <pinskia@gmail.com> 25317 25318 PR target/39929 25319 * config/darwin.c (machopic_gen_offset): Check 25320 currently_expanding_to_rtl if current_ir_type returns IR_GIMPLE. 25321 * config/arm/arm.c (require_pic_register): Likewise. 25322 253232009-04-28 Paolo Bonzini <bonzini@gnu.org> 25324 25325 * config/m32c/m32c.c (TARGET_PROMOTE_FUNCTION_RETURN, 25326 m32c_promote_function_return, TARGET_PROMOTE_PROTOTYPES, 25327 m32c_promote_prototypes): Delete. 25328 253292009-04-28 Michael Matz <matz@suse.de> 25330 25331 PR middle-end/39922 25332 * tree-outof-ssa.c (insert_value_copy_on_edge): Don't convert 25333 constants. 25334 253352009-04-28 Richard Guenther <rguenther@suse.de> 25336 25337 * tree-vect-stmts.c (vect_get_vec_def_for_operand): Fix type error. 25338 253392009-04-28 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 25340 25341 * config/arm/arm-cores.def: Add support for arm1156t2f-s. 25342 * doc/invoke.texi (ARM Options): Document support for arm1156t2f-s. 25343 * config/arm/arm-tune.md: Regenerate. 25344 253452009-04-28 Alexander Monakov <amonakov@ispras.ru> 25346 25347 * sel-sched-ir.c (maybe_tidy_empty_bb): Do not attempt to delete a 25348 block if there are complex incoming edges. 25349 (sel_merge_blocks): Remove useless assert. 25350 (sel_redirect_edge_and_branch): Check that edge was redirected. 25351 * sel-sched-ir.h (_eligible_successor_edge_p): Remove assert. 25352 (sel_find_rgns): Delete declaration. 25353 * sel-sched.c (purge_empty_blocks): Attempt to remove first block of 25354 the region when it is not a preheader. 25355 253562009-04-28 Uros Bizjak <ubizjak@gmail.com> 25357 25358 PR c/39323 25359 * config/alpha/elf.h (MAX_OFILE_ALIGNMENT): Sync with elfos.h 25360 253612009-04-28 Richard Guenther <rguenther@suse.de> 25362 25363 * tree.h (SSA_NAME_VALUE): Remove. 25364 (struct tree_ssa_name): Remove value_handle member. 25365 * tree-vrp.c (execute_vrp): Initialize/free the value-handle 25366 array for jump threading. 25367 * tree-ssa-propagate.c (ssa_prop_init): Do not initialize 25368 SSA_NAME_VALUEs. 25369 * print-tree.c (print_node): Do not dump SSA_NAME_VALUEs. 25370 * tree-flow.h (threadedge_initialize_values): Declare. 25371 (threadedge_finalize_values): Likewise. 25372 * tree-ssa-threadedge.c (ssa_name_values): New global variable. 25373 (SSA_NAME_VALUE): Define. 25374 (threadedge_initialize_values): New function. 25375 (threadedge_finalize_values): Likewise. 25376 * tree-ssa-dom.c (ssa_name_values): New global variable. 25377 (SSA_NAME_VALUE): Define. 25378 (tree_ssa_dominator_optimize): Initialize/free the value-handle array. 25379 253802009-04-28 Ira Rosen <irar@il.ibm.com> 25381 25382 * tree-vect-loop-manip.c (vect_create_cond_for_alias_checks): 25383 Use REPORT_VECTORIZED_LOCATIONS instead 25384 REPORT_VECTORIZED_LOOPS. 25385 * tree-vectorizer.c (vect_verbosity_level): Make static. 25386 (vect_loop_location): Rename to vect_location. 25387 (vect_set_verbosity_level): Update comment. 25388 (vect_set_dump_settings): Use REPORT_VECTORIZED_LOCATIONS 25389 and vect_location. 25390 (vectorize_loops): Fix comment. Use REPORT_VECTORIZED_LOCATIONS 25391 and vect_location. Use REPORT_UNVECTORIZED_LOCATIONS 25392 instead REPORT_UNVECTORIZED_LOOPS. 25393 * tree-vectorizer.h (enum vect_def_type): Rename vect_invariant_def 25394 and vect_loop_def to vect_external_def and vect_internal_def. 25395 (enum verbosity_levels): Rename REPORT_VECTORIZED_LOOPS 25396 and REPORT_UNVECTORIZED_LOOPS to REPORT_VECTORIZED_LOCATIONS and 25397 REPORT_UNVECTORIZED_LOCATIONS. 25398 (enum vect_relevant): Update comment. Rename vect_unused_in_loop 25399 and vect_used_in_loop and to vect_unused_in_scope and 25400 vect_used_in_scope. 25401 (STMT_VINFO_RELEVANT_P): Use vect_unused_in_scope. 25402 (vect_verbosity_level): Remove declaration. 25403 (vect_analyze_operations): Likewise. 25404 (vect_analyze_stmt): Declare. 25405 * tree-vect-loop.c (vect_determine_vectorization_factor): Use 25406 REPORT_UNVECTORIZED_LOCATIONS. 25407 (vect_get_loop_niters): Fix indentation. 25408 (vect_analyze_loop_form): Use REPORT_UNVECTORIZED_LOCATIONS. 25409 (vect_analyze_loop_operations): New function. 25410 (vect_analyze_loop): Call vect_analyze_loop_operations instead of 25411 vect_analyze_operations. 25412 (vect_is_simple_reduction): Use new names. 25413 (vectorizable_live_operation, vect_transform_loop): Likewise. 25414 * tree-vect-data-refs.c (vect_check_interleaving): Add a return value 25415 to specify whether the data references can be a part of interleaving 25416 chain. 25417 (vect_analyze_data_ref_dependence): Use new names. 25418 (vect_analyze_data_refs_alignment, vect_analyze_data_refs): Likewise. 25419 (vect_create_addr_base_for_vector_ref): Remove redundant code. 25420 * tree-vect-patterns.c (widened_name_p): Use new names. 25421 (vect_recog_dot_prod_pattern): Likewise. 25422 * tree-vect-stmts.c (vect_stmt_relevant_p): Use new names. 25423 (process_use, vect_mark_stmts_to_be_vectorized, 25424 vect_model_simple_cost, vect_model_store_cost, 25425 vect_get_vec_def_for_operand, vect_get_vec_def_for_stmt_copy, 25426 vectorizable_call, vectorizable_conversion, vectorizable_assignment, 25427 vectorizable_operation, vectorizable_type_demotion, 25428 vectorizable_type_promotion, vectorizable_store, vectorizable_load, 25429 vectorizable_condition): Likewise. 25430 (vect_analyze_operations): Split into vect_analyze_loop_operations 25431 and ... 25432 (vect_analyze_stmt): ... new function. 25433 (new_stmt_vec_info): Use new names. 25434 (vect_is_simple_use): Use new names and fix comment. 25435 * tree-vect-slp.c (vect_get_and_check_slp_defs): Use new names. 25436 (vect_build_slp_tree, vect_analyze_slp, vect_schedule_slp): Likewise. 25437 254382009-04-28 Uros Bizjak <ubizjak@gmail.com> 25439 25440 PR target/39911 25441 * config/i386/i386.c (print_operand) ['Z']: Handle floating point 25442 and integer modes for x87 operands. Do not ICE for unsupported size, 25443 generate error instead. Generate error for unsupported operand types. 25444 ['z']: Do not handle HImode memory operands specially. Warning 25445 for floating-point operands. Fallthru to 'Z' for unsupported operand 25446 types. Do not ICE for unsupported size, generate error instead. 25447 (output_387_binary_op): Use %Z to output operands. 25448 (output_fp_compare): Ditto. 25449 (output_387_reg_move): Ditto. 25450 254512009-04-28 Ben Elliston <bje@au.ibm.com> 25452 25453 PR c++/35652 25454 Revert: 25455 25456 2009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 25457 25458 * builtins.c (c_strlen): Do not warn here. 25459 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum. 25460 * c-common.c (pointer_int_sum): Take an explicit location. 25461 Warn about offsets out of bounds. 25462 * c-common.h (pointer_int_sum): Adjust declaration. 25463 254642009-04-27 Ian Lance Taylor <iant@google.com> 25465 25466 * collect2.c (is_ctor_dtor): Change type of ret field in struct 25467 names to symkind. 25468 * dce.c (run_fast_df_dce): Change type of old_flags to int. 25469 * df-core.c (df_set_flags): Change return type to int. Change 25470 type of old_flags to int. 25471 (df_clear_flags): Likewise. 25472 * df-scan.c (df_def_record_1): Change 0 to VOIDmode. 25473 (df_get_conditional_uses): Likewise. 25474 * df.h (df_set_flags, df_clear_flags): Update declarations. 25475 * dwarf2out.c (struct indirect_string_node): Change type of form 25476 field to enum dwarf_form. 25477 (AT_string_form): Change return type to enum dwarf_form. 25478 * fixed-value.c (fixed_compare): Add cast to enum type. 25479 * fwprop.c (update_df): Change 0 to VOIDmode. 25480 * gensupport.c: Change 0 to UNKNOWN. 25481 * gimple.h (gimple_cond_code): Add cast to enum type. 25482 * haifa-sched.c (reemit_notes): Add cast to enum type. 25483 * hooks.c (hook_int_void_no_regs): Remove function. 25484 * hooks.h (hook_int_void_no_regs): Remove declaration. 25485 * optabs.c (expand_widen_pattern_expr): Change 0 to VOIDmode. 25486 * predict.c (combine_predictions_for_insn): Add casts to enum type. 25487 * real.c (real_arithmetic): Add cast to enum type. 25488 (real_compare): Likewise. 25489 * target.h (struct gcc_target): Change return type of 25490 branch_target_register_class to enum reg_class. 25491 * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define as 25492 default_branch_target_register_class. 25493 * targhooks.c (default_branch_target_register_class): New function. 25494 * targhooks.h (default_branch_target_register_class): Declare. 25495 * tree-data-ref.c (print_direction_vector): Add cast to enum type. 25496 * tree-vect-data-refs.c (vect_supportable_dr_alignment): Remove 25497 cast to int. 25498 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 0 to 25499 ERROR_MARK. 25500 * tree-vect-slp.c (vect_build_slp_tree): Change 0 to 25501 vect_uninitialized_def. Change 0 to ERROR_MARK. 25502 * tree-vect-stmts.c (supportable_widening_operation): Don't 25503 initialize icode1 and icode2. 25504 * tree-vectorizer.h (enum vect_def_type): Add vect_uninitialized_def. 25505 * config/sol2-c.c (cmn_err_length_specs): Change 0 to FMT_LEN_none 25506 and to STD_C89. 25507 (cmn_err_flag_specs): Change 0 to STD_C89. 25508 (cmn_err_char_table): Likewise. 25509 * config/arm/arm.c (get_arm_condition_code): Change type of code 25510 to enum arm_cond_code. 25511 (IWMMXT_BUILTIN): Change 0 to UNKNOWN. 25512 (IWMMXT_BUILTIN2): Likewise. 25513 (neon_builtin_type_bits): Don't define typedef. 25514 (neon_builtin_datum): Change type of bits field to int. 25515 (arm_expand_neon_args): Add cast to enum type. 25516 * config/ia64/ia64.c (tls_symbolic_operand_type): Change 0 to 25517 TLS_MODEL_NONE. 25518 * config/i386/i386.c (bdesc_multi_arg): Change 0 to UNKNOWN. Add 25519 casts to enum type. 25520 * config/mips/mips.c (LOONGSON_BUILTIN_ALIAS): Change 0 to 25521 MIPS_FP_COND_f. 25522 * config/mips/mips.md (jal_macro): Return enum constant. 25523 (single_insn): Likewise. 25524 * config/rs6000/rs6000.c (bdesc_altivec_preds): Change 0 to 25525 CODE_FOR_nothing. 25526 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 25527 casts to enum type. 25528 * config/s390/s390.c (s390_tune_flags): Change type to int. 25529 (s390_arch_flags): Likewise. 25530 (s390_handle_arch_option): Change flags field of struct pta to int. 25531 * config/s390/s390.h (s390_tune_flags): Update declaration. 25532 (s390_arch_flags): Likewise. 25533 * config/sh/sh.c (prepare_move_operands): Compare 25534 tls_symbolic_operand result with enum constant. 25535 (sh_reorg): Change PUT_MODE to PUT_REG_NOTE_KIND. 25536 (sh_expand_prologue): Add cast to enum type. 25537 (sh_expand_epilogue): Likewise. 25538 (tls_symbolic_operand): Change return type to enum tls_model. 25539 (fpscr_set_from_mem): Add cast to enum type. 25540 (legitimize_pic_address): Compare tls_symbolic_operand result with 25541 enum constant. 25542 (sh_target_reg_class): Change return type to enum reg_class. 25543 * config/sh/sh.h (OVERRIDE_OPTIONS): Change CPU_xxx to 25544 PROCESSOR_xxx. 25545 * config/sh/sh-protos.h (tls_symbolic_operand): Update declaration. 25546 * config/sparc/sparc.c (sparc_override_options): Add cast to enum type. 25547 * config/sparc/sparc.md (empty_delay_slot): Return enum constant. 25548 (pic, calls_alloca, calls_eh_return, leaf_function): Likewise. 25549 (delayed_branch, tls_call_delay): Likewise. 25550 (eligible_for_sibcall_delay): Likewise. 25551 (eligible_for_return_delay): Likewise. 25552 * config/spu/spu.c (expand_builtin_args): Add cast to enum type. 25553 (spu_expand_builtin_1): Likewise. 25554 25555 * c-typeck.c (convert_for_assignment): Issue -Wc++-compat warnings 25556 for all types of conversions. 25557 (output_init_element): Issue -Wc++-compat warning if needed when 25558 initializing a bitfield with enum type. 25559 * c-parser.c (c_parser_expression): Set original_type to 25560 original_type of right hand operand of comma operator. 25561 255622009-04-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 25563 25564 * doc/c-tree.texi (Types, Functions, Expression trees): Fix 25565 grammar nits. 25566 * doc/cfg.texi (Maintaining the CFG, Liveness information): Likewise. 25567 * doc/cpp.texi (Standard Predefined Macros) 25568 (Implementation-defined behavior): Likewise. 25569 * doc/extend.texi (Function Attributes, Type Attributes): Likewise. 25570 * doc/gimple.texi (GIMPLE Exception Handling) 25571 (@code{GIMPLE_ASSIGN}): Likewise. 25572 * doc/install.texi (Prerequisites, Configuration, Specific): Likewise. 25573 * doc/invoke.texi (Warning Options, Optimize Options) 25574 (AVR Options, Darwin Options): Likewise. 25575 (Optimize Options): Reformulate -fwhole-program description. 25576 * doc/loop.texi (Lambda): Likewise. 25577 * doc/md.texi (Output Template, Define Constraints) 25578 (Standard Names, Insn Splitting): Likewise. 25579 * doc/options.texi (Option properties): Likewise. 25580 * doc/passes.texi (Tree-SSA passes): Likewise. 25581 * doc/rtl.texi (Side Effects, Assembler, Insns): Likewise. 25582 * doc/tm.texi (Register Classes, Old Constraints, Scalar Return) 25583 (File Names and DBX): Likewise. 25584 * doc/trouble.texi (Incompatibilities): Likewise. 25585 255862009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 25587 25588 * spu.c (spu_machine_dependent_reorg): Make sure branch label on hint 25589 instruction is correct. 25590 255912009-04-27 Trevor Smigiel <trevor_smigiel@playstation.sony.com> 25592 25593 Allow non-constant arguments to conversion intrinsics. 25594 * spu-protos.h (exp2_immediate_p, spu_gen_exp2): Declare. 25595 * predicates.md (spu_inv_exp2_operand, spu_exp2_operand): New. 25596 * spu.c (print_operand): Handle 'v' and 'w'. 25597 (exp2_immediate_p, spu_gen_exp2): Define. 25598 * spu-builtins.def (spu_convts, spu_convtu, spu_convtf_0, 25599 spu_convtf_1): Update parameter descriptions. 25600 * spu-builtins.md (spu_csflt, spu_cuflt, spu_cflts, spu_cfltu): Update. 25601 * constraints.md ('v', 'w'): New. 25602 * spu.md (UNSPEC_CSFLT, UNSPEC_CFLTS, UNSPEC_CUFLT, UNSPEC_CFLTU): 25603 Remove. 25604 (i2f, I2F): New define_mode_attr. 25605 (floatsisf2, floatv4siv4sf2, fix_truncsfsi2, fix_truncv4sfv4si2, 25606 floatunssisf2, floatunsv4siv4sf2, fixuns_truncsfsi2, 25607 fixuns_truncv4sfv4si2): Update to use mode attribute. 25608 (float<mode><i2f>2_mul, float<mode><i2f>2_div, 25609 fix_trunc<mode><f2i>2_mul, floatuns<mode><i2f>2_mul, 25610 floatuns<mode><i2f>2_div, fixuns_trunc<mode><f2i>2_mul): New 25611 patterns for combine. 25612 256132009-04-27 Steven Bosscher <steven@gcc.gnu.org> 25614 25615 * dbgcnt.def (cprop1, cprop2, gcse, jump_bypass): Remove 25616 (cprop, hoist, pre, store_motion): New debug counters. 25617 * tree-pass.h (pass_tracer): Move to list of gimple passes, it 25618 is not an RTL pass anymore. 25619 (pass_profiling): Remove extern decl for pass removed in 2005. 25620 (pass_gcse, pass_jump_bypass): Remove. 25621 * final.c (rest_of_clean_state): Set flag_rerun_cse_after_global_opts 25622 to 0 for clean state. 25623 * toplev.h (flag_rerun_cse_after_global_opts): Add extern declaration. 25624 * cse.c (gate_handle_cse_after_global_opts, 25625 rest_of_handle_cse_after_global_opts): New functions. 25626 (pass_cse_after_global_opts): New pass, does local CSE. 25627 * timevar.def (TV_GCSE, TV_CPROP1, TV_CPROP2, TV_BYPASS): Remove. 25628 (TV_CPROP): New timevar. 25629 * gcse.c (flag_rerun_cse_after_global_opts): New global variable. 25630 (run_jump_opt_after_gcse, max_gcse_regno): Remove global vars. 25631 (gcse_main, recompute_all_luids): Remove. 25632 (compute_hash_table_work): Call max_reg_num instead of reading 25633 max_gcse_regno. 25634 (cprop_jump): Don't set run_jump_opt_after_gcse. 25635 (constprop_register): Always allow to alter jumps. 25636 (cprop_insn): Likewise. 25637 (do_local_cprop): Likewise. 25638 (local_cprop_pass): Likewise. Return non-zero if something changed. 25639 (cprop): Remove function, fold interesting bits into one_cprop_pass. 25640 (find_implicit_sets): Add note about missed optimization opportunity. 25641 (one_cprop_pass): Rewrite to be "the" CPROP pass, called from the 25642 pass_rtl_cprop execute function. 25643 Don't bother tracking the pass number, each pass gets its own dumpfile 25644 now anyway. 25645 Always allow to alter jumpsand bypass jumps. 25646 (bypass_block): Don't ignore regno >= max_gcse_regno, find_bypass_set 25647 will just find no suitable set. 25648 (pre_edge_insert): Fix dumping, this function is for PRE only. 25649 (one_pre_gcse_pass): Rewrite to be "the" PRE pass, called from the 25650 pass_rtl_pre execute function. 25651 (hoist_code): Return non-zero if something changed. Keep track of 25652 substitutions and insertions for statistics gathering similar to PRE. 25653 (one_code_hoisting_pass): Rewrite to be "the" code hoisting pass, 25654 called from the pass_rtl_hoist execute function. Show pass statistics. 25655 (compute_store_table): Use max_reg_num directly instead of using the 25656 formerly global max_gcse_regno. 25657 (build_store_vectors): Likewise. 25658 (replace_store_insn): Fix dumping. 25659 (store_motion): Rename to ... 25660 (one_store_motion_pass): ... this. Rewrite to be "the" STORE_MOTION 25661 pass, called from the pass_rtl_store_motion execute function. Keep 25662 track of substitutions and insertions for statistics gathering similar 25663 to PRE. 25664 (bypass_jumps): Remove, fold interesting bits into ... 25665 (one_cprop_pass): ... this. Rewrite to be "the" CPROP pass, called 25666 from the pass_rtl_cprop execute function. 25667 (gate_handle_jump_bypass, rest_of_handle_jump_bypass, 25668 pass_jump_bypass): Remove. 25669 (gate_handle_gcse, rest_of_handle_gcse): Remove. 25670 (gate_rtl_cprop, execute_rtl_cprop, pass_rtl_cprop): New. 25671 (gate_rtl_pre, execute_rtl_pre, pass_rtl_pre): New. 25672 (gate_rtl_hoist, execute_rtl_hoist, pass_rtl_hoist): New. 25673 (gate_rtl_store_motion, execute_rtl_store_motion, 25674 pass_rtl_store_motion): New. 25675 * common.opt: Remove flag_cse_skip_blocks, adjust documentation to 25676 make it clear that -fcse-skip-blocks is a no-op for backward compat. 25677 * passes.c (init_optimization_passes): Remove pass_gcse and 25678 pass_jump_bypass. Schedule cprop, pre, hoist, cprop, store_motion, 25679 and cse_after_global_opts in place of pass_gcse. Schedule cprop 25680 instead of pass_jump_bypass. 25681 256822009-04-27 Richard Guenther <rguenther@suse.de> 25683 25684 PR middle-end/39928 25685 * gimplify.c (gimplify_expr): If we are required to create 25686 a temporary make sure it ends up as register. 25687 256882009-04-27 H.J. Lu <hongjiu.lu@intel.com> 25689 25690 PR target/39903 25691 * config/i386/i386.c (construct_container): Don't call 25692 gen_reg_or_parallel with BLKmode on X86_64_SSE_CLASS, 25693 X86_64_SSESF_CLASS and X86_64_SSEDF_CLASS. 25694 256952009-04-27 Michael Matz <matz@suse.de> 25696 25697 * ssaexpand.h (struct ssaexpand): Member 'values' is a bitmap. 25698 (get_gimple_for_ssa_name): Adjust, lookup using SSA_NAME_DEF_STMT. 25699 * tree-ssa-live.h (find_replaceable_exprs): Return a bitmap. 25700 (dump_replaceable_exprs): Take a bitmap. 25701 * cfgexpand.c (gimple_cond_pred_to_tree): Handle bitmap instead of 25702 array. 25703 (expand_gimple_basic_block): Likewise. 25704 * tree-ssa-ter.c (struct temp_expr_table_d): Make 25705 replaceable_expressions member a bitmap. 25706 (free_temp_expr_table): Pass back and deal with bitmap, not gimple*. 25707 (mark_replaceable): Likewise. 25708 (find_replaceable_in_bb, dump_replaceable_exprs): Likewise. 25709 * tree-outof-ssa.c (remove_ssa_form): 'values' is a bitmap. 25710 257112009-04-27 Richard Guenther <rguenther@suse.de> 25712 25713 * tree-cfg.c (remove_useless_stmts): Verify stmts afterwards. 25714 (verify_stmts): Dispatch to gimple/type verification code. 25715 * tree-inline.c (remap_gimple_op_r): Work around C++ FE 25716 issue with call argument types. 25717 257182009-04-27 Michael Matz <matz@suse.de> 25719 25720 * tree-into-ssa.c (regs_to_rename, mem_syms_to_rename): Remove. 25721 (init_update_ssa, delete_update_ssa, update_ssa): Remove references 25722 to above. 25723 257242009-04-27 Richard Sandiford <rdsandiford@googlemail.com> 25725 Eric Botcazou <ebotcazou@adacore.com> 25726 25727 * resource.c (find_basic_block): Use BLOCK_FOR_INSN to look up 25728 a label's basic block. 25729 (mark_target_live_regs): Tidy and rework obsolete comments. 25730 Change back DF problem to LIVE. If a label starts a basic block, 25731 assume that all registers that used to be live then still are. 25732 (init_resource_info): If a label starts a basic block, set its 25733 BLOCK_FOR_INSN accordingly. 25734 (fini_resource_info): Undo the setting of BLOCK_FOR_INSN. 25735 257362009-04-27 Richard Guenther <rguenther@suse.de> 25737 25738 * tree-flow-inline.h (function_ann): Remove. 25739 (get_function_ann): Likewise. 25740 * tree-dfa.c (create_function_ann): Remove. 25741 * tree-flow.h (struct static_var_ann_d): Remove. 25742 (struct function_ann_d): Likewise. 25743 (union tree_ann_d): Remove fdecl member. 25744 (function_ann_t): Remove. 25745 (function_ann, get_function_ann, create_function_ann): Remove 25746 declarations. 25747 257482009-04-27 Uros Bizjak <ubizjak@gmail.com> 25749 25750 * config/alpha/alpha.c (code_for_builtin): Declare as enum insn_code. 25751 257522009-04-27 Jan Hubicka <jh@suse.cz> 25753 25754 * ipa-pure-const.c (struct funct_state_d): New fields 25755 state_previously_known, looping_previously_known; remove 25756 state_set_in_source. 25757 (analyze_function): Use new fields. 25758 (propagate): Avoid assumption that state_set_in_source imply 25759 nonlooping. 25760 25761 * tree-ssa-loop-niter.c (finite_loop_p): New function. 25762 * tree-ssa-loop-ivcanon.c (empty_loop_p): Use it. 25763 * cfgloop.h (finite_loop_p): Declare. 25764 257652009-04-26 Michael Matz <matz@suse.de> 25766 25767 * tree-flow.h (tree_ann_common_d): Remove aux and value_handle members. 25768 257692009-04-26 Michael Matz <matz@suse.de> 25770 25771 * tree-pass.h (pass_del_ssa, pass_mark_used_blocks, 25772 pass_free_cfg_annotations, pass_free_datastructures): Remove decls. 25773 * gimple-low.c (mark_blocks_with_used_vars, mark_used_blocks, 25774 pass_mark_used_blocks): Remove. 25775 * tree-optimize.c (pass_free_datastructures, 25776 execute_free_cfg_annotations, pass_free_cfg_annotations): Remove. 25777 * passes.c (init_optimization_passes): Don't call 25778 pass_mark_used_blocks, remove dead code. 25779 257802009-04-26 H.J. Lu <hongjiu.lu@intel.com> 25781 25782 * tree-outof-ssa.c (rewrite_trees): Add ATTRIBUTE_UNUSED. 25783 * tree-ssa-live.h (register_ssa_partition): Likewise. 25784 257852009-04-26 Michael Matz <matz@suse.de> 25786 25787 Expand from SSA. 25788 * builtins.c (fold_builtin_next_arg): Handle SSA names. 25789 * tree-ssa-copyrename.c (rename_ssa_copies): Use ssa_name() directly. 25790 * tree-ssa-coalesce.c (create_outofssa_var_map): Mark only useful 25791 SSA names. 25792 (compare_pairs): Swap cost comparison. 25793 (coalesce_ssa_name): Don't use change_partition_var. 25794 * tree-nrv.c (struct nrv_data): Add modified member. 25795 (finalize_nrv_r): Set it. 25796 (tree_nrv): Use it to update statements. 25797 (pass_nrv): Require PROP_ssa. 25798 * tree-mudflap.c (mf_decl_cache_locals, 25799 mf_build_check_statement_for): Use make_rename_temp. 25800 (pass_mudflap_2): Require PROP_ssa, run ssa update at finish. 25801 * alias.c (find_base_decl): Handle SSA names. 25802 * emit-rtl (set_reg_attrs_for_parm): Make non-static. 25803 (component_ref_for_mem_expr): Don't leak SSA names into RTL. 25804 * rtl.h (set_reg_attrs_for_parm): Declare. 25805 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Rename 25806 to "optimized", remove unused locals at finish. 25807 (execute_free_datastructures): Make global, call 25808 delete_tree_cfg_annotations. 25809 (execute_free_cfg_annotations): Don't call 25810 delete_tree_cfg_annotations. 25811 25812 * ssaexpand.h: New file. 25813 * expr.c (toplevel): Include ssaexpand.h. 25814 (expand_assignment): Handle SSA names the same as register variables. 25815 (expand_expr_real_1): Expand SSA names. 25816 * cfgexpand.c (toplevel): Include ssaexpand.h. 25817 (SA): New global variable. 25818 (gimple_cond_pred_to_tree): Fold TERed comparisons into predicates. 25819 (SSAVAR): New macro. 25820 (set_rtl): New helper function. 25821 (add_stack_var): Deal with SSA names, use set_rtl. 25822 (expand_one_stack_var_at): Likewise. 25823 (expand_one_stack_var): Deal with SSA names. 25824 (stack_var_size_cmp): Use code (SSA_NAME / DECL) as tie breaker 25825 before unique numbers. 25826 (expand_stack_vars): Use set_rtl. 25827 (expand_one_var): Accept SSA names, add asserts for them, feed them 25828 to above subroutines. 25829 (expand_used_vars): Expand all partitions (without default defs), 25830 then only the local decls (ignoring those expanded already). 25831 (expand_gimple_cond): Remove edges when jumpif() expands an 25832 unconditional jump. 25833 (expand_gimple_basic_block): Don't clear EDGE_EXECUTABLE here, 25834 or remove abnormal edges. Ignore insns setting the LHS of a TERed 25835 SSA name. 25836 (gimple_expand_cfg): Call into rewrite_out_of_ssa, initialize 25837 members of SA; deal with PARM_DECL partitions here; expand 25838 all PHI nodes, free tree datastructures and SA. Commit instructions 25839 on edges, clear EDGE_EXECUTABLE and remove abnormal edges here. 25840 (pass_expand): Require and destroy PROP_ssa, verify SSA form, flow 25841 info and statements at start, collect garbage at finish. 25842 * tree-ssa-live.h (struct _var_map): Remove partition_to_var member. 25843 (VAR_ANN_PARTITION) Remove. 25844 (change_partition_var): Don't declare. 25845 (partition_to_var): Always return SSA names. 25846 (var_to_partition): Only accept SSA names. 25847 (register_ssa_partition): Only check argument. 25848 * tree-ssa-live.c (init_var_map): Don't allocate partition_to_var 25849 member. 25850 (delete_var_map): Don't free it. 25851 (var_union): Only accept SSA names, simplify. 25852 (partition_view_init): Mark only useful SSA names as used. 25853 (partition_view_fini): Only deal with SSA names. 25854 (change_partition_var): Remove. 25855 (dump_var_map): Use ssa_name instead of partition_to_var member. 25856 * tree-ssa.c (delete_tree_ssa): Don't remove PHI nodes on RTL 25857 basic blocks. 25858 * tree-outof-ssa.c (toplevel): Include ssaexpand.h and expr.h. 25859 (struct _elim_graph): New member const_dests; nodes member vector of 25860 ints. 25861 (set_location_for_edge): New static helper. 25862 (create_temp): Remove. 25863 (insert_partition_copy_on_edge, insert_part_to_rtx_on_edge, 25864 insert_value_copy_on_edge, insert_rtx_to_part_on_edge): New functions. 25865 (new_elim_graph): Allocate const_dests member. 25866 (clean_elim_graph): Truncate const_dests member. 25867 (delete_elim_graph): Free const_dests member. 25868 (elim_graph_size): Adapt to new type of nodes member. 25869 (elim_graph_add_node): Likewise. 25870 (eliminate_name): Likewise. 25871 (eliminate_build): Don't take basic block argument, deal only with 25872 partition numbers, not variables. 25873 (get_temp_reg): New static helper. 25874 (elim_create): Use it, deal with RTL temporaries instead of trees. 25875 (eliminate_phi): Adjust all calls to new signature. 25876 (assign_vars, replace_use_variable, replace_def_variable): Remove. 25877 (rewrite_trees): Only do checking. 25878 (edge_leader, stmt_list, leader_has_match, leader_match): Remove. 25879 (same_stmt_list_p, identical_copies_p, identical_stmt_lists_p, 25880 init_analyze_edges_for_bb, fini_analyze_edges_for_bb, 25881 contains_tree_r, MAX_STMTS_IN_LATCH, 25882 process_single_block_loop_latch, analyze_edges_for_bb, 25883 perform_edge_inserts): Remove. 25884 (expand_phi_nodes): New global function. 25885 (remove_ssa_form): Take ssaexpand parameter. Don't call removed 25886 functions, initialize new parameter, remember partitions having a 25887 default def. 25888 (finish_out_of_ssa): New global function. 25889 (rewrite_out_of_ssa): Make global. Adjust call to remove_ssa_form, 25890 don't reset in_ssa_p here, don't disable TER when mudflap. 25891 (pass_del_ssa): Remove. 25892 * tree-flow.h (struct var_ann_d): Remove out_of_ssa_tag and 25893 partition members. 25894 (execute_free_datastructures): Declare. 25895 * Makefile.in (SSAEXPAND_H): New variable. 25896 (tree-outof-ssa.o, expr.o, cfgexpand.o): Depend on SSAEXPAND_H. 25897 * basic-block.h (commit_one_edge_insertion): Declare. 25898 * passes.c (init_optimization_passes): Move pass_nrv and 25899 pass_mudflap2 before pass_cleanup_cfg_post_optimizing, remove 25900 pass_del_ssa, pass_free_datastructures, pass_free_cfg_annotations. 25901 * cfgrtl.c (commit_one_edge_insertion): Make global, don't declare. 25902 (redirect_branch_edge): Deal with super block when expanding, split 25903 out jump patching itself into ... 25904 (patch_jump_insn): ... here, new static helper. 25905 259062009-04-26 Michael Matz <matz@suse.de> 25907 25908 * tree-ssa-copyrename.c (rename_ssa_copies): Don't iterate 25909 beyond num_ssa_names. 25910 * tree-ssa-ter.c (free_temp_expr_table): Likewise. 25911 * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise. 25912 259132009-04-26 Jakub Jelinek <jakub@redhat.com> 25914 25915 PR inline-asm/39543 25916 * fwprop.c (forward_propagate_asm): New function. 25917 (forward_propagate_and_simplify): Propagate also into __asm, if it 25918 doesn't increase the number of referenced registers. 25919 25920 PR c/39889 25921 * stmt.c (warn_if_unused_value): Look through NON_LVALUE_EXPR. 25922 259232009-04-26 Jakub Jelinek <jakub@redhat.com> 25924 25925 * tree-nested.c (get_nonlocal_vla_type): If not optimizing, call 25926 note_nonlocal_vla_type for nonlocal VLAs. 25927 (note_nonlocal_vla_type, note_nonlocal_block_vlas, 25928 contains_remapped_vars, remap_vla_decls): New functions. 25929 (convert_nonlocal_reference_stmt): If not optimizing, call 25930 note_nonlocal_block_vlas on GIMPLE_BIND block vars. 25931 (nesting_copy_decl): Return {VAR,PARM,RESULT}_DECL unmodified 25932 if it wasn't found in var_map. 25933 (finalize_nesting_tree_1): Call remap_vla_decls. If outermost 25934 GIMPLE_BIND doesn't have gimple_bind_block, chain debug_var_chain 25935 to BLOCK_VARS (DECL_INITIAL (root->context)) instead of calling 25936 declare_vars. 25937 * gimplify.c (nonlocal_vlas): New variable. 25938 (gimplify_var_or_parm_decl): Add debug VAR_DECLs for non-local 25939 referenced VLAs. 25940 (gimplify_body): Create and destroy nonlocal_vlas. 25941 25942 * dwarf2out.c (loc_descr_plus_const): New function. 25943 (build_cfa_aligned_loc, tls_mem_loc_descriptor, 25944 mem_loc_descriptor, loc_descriptor_from_tree_1, 25945 descr_info_loc, gen_variable_die): Use it. 25946 25947 * tree.h (DECL_BY_REFERENCE): Note that it is also valid for 25948 !TREE_STATIC VAR_DECLs. 25949 * dwarf2out.c (loc_by_reference, gen_decl_die): Handle 25950 DECL_BY_REFERENCE on !TREE_STATIC VAR_DECLs. 25951 (gen_variable_die): Likewise. Don't look at TREE_PRIVATE if 25952 DECL_BY_REFERENCE is valid. 25953 * dbxout.c (DECL_ACCESSIBILITY_CHAR): Don't look at TREE_PRIVATE 25954 for PARM_DECLs, RESULT_DECLs or !TREE_STATIC VAR_DECLs. 25955 * tree-nested.c (get_nonlocal_debug_decl, get_local_debug_decl): 25956 Copy DECL_BY_REFERENCE. 25957 (struct nesting_copy_body_data): New type. 25958 (nesting_copy_decl): New function. 25959 (finalize_nesting_tree_1): Remap types of debug_var_chain variables, 25960 if they have variable length. 25961 259622009-04-26 Michael Matz <matz@suse.de> 25963 25964 * tree-sra.c (sra_build_assignment): Don't use into_ssa mode, 25965 mark new temporaries for renaming. 25966 259672009-04-26 Joseph Myers <joseph@codesourcery.com> 25968 25969 PR c/39581 25970 * c-decl.c (global_bindings_p): Return negative value. 25971 (c_variable_size): New. Based on variable_size from 25972 stor-layout.c. 25973 (grokdeclarator): Call c_variable_size not variable_size. 25974 259752009-04-26 Uros Bizjak <ubizjak@gmail.com> 25976 25977 * config/i386/i386.c (print_operand) ['z']: Fix typo. 25978 259792009-04-26 Kai Tietz <kai.tietz@onevision.com> 25980 25981 * config/i386/mingw-w64.h (STANDARD_INCLUDE_DIR): 25982 Redefine it to just use mingw/include. 25983 (ASM_SPEC): Rules for -m32 and -m64. 25984 (LINK_SPEC): Use Likewise. 25985 (SPEC_32): New define. 25986 (SPEC_64): Likewise. 25987 (SUB_LINK_SPEC): Likewise. 25988 (MULTILIB_DEFAULTS): New define. 25989 * config/i386/t-mingw-w64 (MULTILIB_OPTIONS): 25990 Add multilib options. 25991 (MULTILIB_DIRNAMES): Likewise. 25992 (MULTILIB_OSDIRNAMES): Likewise. 25993 (LIBGCC): Likewise. 25994 (INSTALL_LIBGCC): Likewise. 25995 259962009-04-26 Joseph Myers <joseph@codesourcery.com> 25997 25998 PR c/39556 25999 * c-tree.h (enum c_inline_static_type): New. 26000 (record_inline_static): Declare. 26001 * c-decl.c (struct c_inline_static, c_inline_statics, 26002 record_inline_static, check_inline_statics): New. 26003 (pop_file_scope): Call check_inline_statics. 26004 (start_decl): Call record_inline_static instead of pedwarning 26005 directly for static in inline function. 26006 * c-typeck.c (build_external_ref): Call record_inline_static 26007 instead of pedwarning directly for static referenced in inline 26008 function. 26009 260102009-04-26 Steven Bosscher <steven@gcc.gnu.org> 26011 26012 * df-scan.c (df_insn_rescan): Salvage insn's LUID if the insn is 26013 not new but only being rescanned. 26014 * gcse.c (uid_cuid, max_uid, INSN_CUID, max_cuid, struct reg_set, 26015 reg_set_table, REG_SET_TABLE_SLOP, reg_set_in_block, 26016 alloc_reg_set_mem, free_reg_set_mem, record_one_set, 26017 record_set_info, compute_set, grealloc): Remove. 26018 (recompute_all_luids): New function. 26019 (gcse_main): Don't compute sets, and don't do related memory 26020 allocations/free-ing. If something changed before the end of the 26021 pass, update LUIDs using recompute_all_luids. 26022 (alloc_gcse_mem): Don't compute LUIDs. Don't allocate reg_set memory. 26023 (free_gcse_mem): Don't free it either. 26024 (oprs_unchanged_p, load_killed_in_block, record_last_reg_set_info): 26025 Use the df insn LUIDs. 26026 (load_killed_in_block): Likewise. 26027 (compute_hash_table_work): Don't compute reg_set_in_block. 26028 (compute_transp): Use DF_REG_DEF_CHAINs. 26029 (local_cprop_pass): Don't use compute_sets and related functions. 26030 (one_cprop_pass, pre_gcse, one_pre_gcse_pass, one_code_hoisting_pass): 26031 Use get_max_uid() instead of max_cuid. 26032 (insert_insn_end_basic_block, pre_insert_copy_insn, 26033 update_ld_motion_stores): Don't try to 26034 keep reg_set tables up to date. 26035 (pre_insert_copies): Use df insn LUIDs. 26036 (sbitmap pre_redundant_insns): Replace with uses of INSN_DELETED_P. 26037 (reg_set_info): Don't use extra bitmap argument. 26038 (compute_store_table): Don't compute reg_set_in_block. Use DF scan 26039 information to compute regs_set_in_block. 26040 (free_store_memory, store_motion): Don't nullify reg_set_in_block. 26041 (bypass_jumps): Don't use compute_sets and friends. 26042 260432009-04-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 26044 26045 PR testsuite/39710 26046 * opts.c (undocumented_msg): Do not leave blank even with 26047 ENABLE_CHECKING. 26048 260492009-04-25 Joseph Myers <joseph@codesourcery.com> 26050 26051 * c-decl.c (build_enumerator): Allow values folding to integer 26052 constants but not integer constant expressions with a pedwarn if 26053 pedantic. 26054 260552009-04-25 Joseph Myers <joseph@codesourcery.com> 26056 26057 PR c/39582 26058 * c-typeck.c (c_expr_sizeof_type): Create a C_MAYBE_CONST_EXPR 26059 with non-null C_MAYBE_CONST_EXPR_PRE if size of a variable-length 26060 type is an integer constant. 26061 260622009-04-25 Uros Bizjak <ubizjak@gmail.com> 26063 26064 PR target/39897 26065 * config/i386/i386.c (print_operand) ['z']: Revert handling of 26066 HImode operands. 26067 260682009-04-25 Joseph Myers <joseph@codesourcery.com> 26069 26070 PR c/39564 26071 * c-decl.c (grokdeclarator): Diagnose declarations of functions 26072 with variably modified return type and no storage class 26073 specifiers, except for the case of nested functions. Distinguish 26074 extern declarations of functions with variably modified return 26075 types from those of objects with variably modified types. 26076 260772009-04-25 Jan Hubicka <jh@suse.cz> 26078 26079 * tree.c (list_equal_p): New function. 26080 * tree.h (list_equal_p): Declare. 26081 * coretypes.h (edge_def, edge, const_edge, basic_block_def 26082 basic_block_def, basic_block, const_basic_block): New. 26083 * tree-eh.c (make_eh_edge): EH edges are not abnormal. 26084 (redirect_eh_edge): New function. 26085 (make_eh_edge_update_phi): EH edges are not abnormal. 26086 * except.c: Include tree-flow.h. 26087 (list_match): New function. 26088 (eh_region_replaceable_by_p): New function. 26089 (replace_region): New function. 26090 (hash_type_list): New function. 26091 (hash_eh_region): New function. 26092 (eh_regions_equal_p): New function. 26093 (merge_peers): New function. 26094 (remove_unreachable_regions): Verify EH tree when checking; 26095 merge peers. 26096 (copy_eh_region_1): New function. 26097 (copy_eh_region): New function. 26098 (push_reachable_handler): New function. 26099 (build_post_landing_pads, dw2_build_landing_pads): Be ready for 26100 regions without label but with live RESX. 26101 * except.h (redirect_eh_edge_to_label): New. 26102 * tree-flow.h (redirect_eh_edge): New. 26103 * coretypes.h (edge_def, edge, const_edge, basic_block_def 26104 basic_block_def, basic_block, const_basic_block): Remove. 26105 * Makefile.in (except.o): Add dependency on tree-flow.h 26106 * tree-cfg.c (gimple_redirect_edge_and_branch): Handle EH edges. 26107 * basic-block.h (edge, const_edge, basic_block, const_basic_block): 26108 Remove. 26109 261102009-04-25 Eric Botcazou <ebotcazou@adacore.com> 26111 26112 PR bootstrap/39645 26113 * config/sparc/sparc.c (sparc_gimplify_va_arg): Set TREE_ADDRESSABLE 26114 on the destination of memcpy. 26115 261162009-04-25 Paolo Bonzini <bonzini@gnu.org> 26117 26118 * doc/tm.texi (REGNO_OK_FOR_BASE_P, REGNO_MODE_OK_FOR_BASE_P, 26119 REGNO_MODE_OK_FOR_REG_BASE_P, REGNO_MODE_CODE_OK_FOR_BASE_P, 26120 REGNO_OK_FOR_INDEX_P): Mention strict/nonstrict difference. 26121 261222009-04-25 Jan Hubicka <jh@suse.cz> 26123 26124 * tree-eh.c (tree_remove_unreachable_handlers): Handle shared labels. 26125 (tree_empty_eh_handler_p): Allow non-EH predecestors; allow region 26126 to be reached by different label than left. 26127 (update_eh_edges): Update comment; remove edge_to_remove if possible 26128 and return true if suceeded. 26129 (cleanup_empty_eh): Accept sharing map; handle shared regions. 26130 (cleanup_eh): Compute sharing map. 26131 * except.c (remove_eh_handler_and_replace): Add argument if we should 26132 update regions. 26133 (remove_unreachable_regions): Update for label sharing. 26134 (label_to_region_map): Likewise. 26135 (get_next_region_sharing_label): New function. 26136 (remove_eh_handler_and_replace): Add update_catch_try parameter; update 26137 prev_try pointers. 26138 (remove_eh_handler): Update. 26139 (remove_eh_region_and_replace_by_outer_of): New function. 26140 * except.h (struct eh_region): Add next_region_sharing_label. 26141 (remove_eh_region_and_replace_by_outer_of, 26142 get_next_region_sharing_label): Declare. 26143 * tree-cfgcleanup.c (tree_forwarder_block_p): Simplify. 26144 261452009-04-25 Jan Hubicka <jh@suse.cz> 26146 26147 * tree-cfg.c (split_critical_edges): Split also edges where we can't 26148 insert code even if they are not critical. 26149 261502009-04-25 Jan Hubicka <jh@suse.cz> 26151 26152 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable. 26153 (gimple_can_remove_branch_p): EH edges won't remove branch by 26154 redirection. 26155 * tree-inline.c (update_ssa_across_abnormal_edges): Do handle 26156 updating of non-abnormal EH edges. 26157 * tree-cfg.c (gimple_can_merge_blocks_p): EH edges are unmergable. 26158 (gimple_can_remove_branch_p): EH edges are unremovable by redirection. 26159 (split_critical_edges): Split also edges where emitting code on them 26160 will lead to splitting later. 26161 261622009-04-25 Uros Bizjak <ubizjak@gmail.com> 26163 H.J. Lu <hongjiu.lu@intel.com> 26164 26165 PR target/39590 26166 * configure.ac (HAVE_AS_IX86_FILDQ): On x86 targets check whether 26167 the configured assembler supports fildq and fistpq mnemonics. 26168 (HAVE_AS_IX86_FILDS): Rename from HAVE_GAS_FILDS_FISTS. 26169 * configure: Regenerated. 26170 * config.in: Ditto. 26171 26172 * config/i386/i386.c (print_operand): Handle 'Z'. 26173 ['z']: Remove handling of special fild/fist suffixes. 26174 (output_fix_trunc): Use '%Z' to output suffix of fist{,p,tp} insn. 26175 * config/i386/i386.md (*floathi<mode>2_i387): Use '%Z' to output 26176 suffix of fild insn. 26177 (*floatsi<mode>2_vector_mixed): Ditto. 26178 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_interunit): Ditto. 26179 (*float<SSEMODEI24:mode><MODEF:mode>2_mixed_nointerunit): Ditto. 26180 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp): Ditto. 26181 (*float<SSEMODEI24:mode><X87MODEF:mode>2_i387): Ditto. 26182 * config/i386/gas.h (GAS_MNEMONICS): Remove. 26183 261842009-04-25 Ben Elliston <bje@au.ibm.com> 26185 26186 * genrecog.c (validate_pattern): Do not warn for VOIDmode CALLs as 26187 the source of a set operation. 26188 261892009-04-25 Anatoly Sokolov <aesok@post.ru> 26190 26191 * target.h (struct gcc_target): Add case_values_threshold field. 26192 * target-def.h (TARGET_CASE_VALUES_THRESHOLD): New. 26193 (TARGET_INITIALIZER): Use TARGET_CASE_VALUES_THRESHOLD. 26194 * targhooks.c (default_case_values_threshold): New function. 26195 * targhooks.h (default_case_values_threshold): Declare function. 26196 * stmt.c (expand_case): Use case_values_threshold target hook. 26197 * expr.h (case_values_threshold): Remove declartation. 26198 * expr.c (case_values_threshold): Remove function. 26199 * doc/tm.texi (CASE_VALUES_THRESHOLD): Revise documentation. 26200 26201 * config/avr/avr.h (CASE_VALUES_THRESHOLD): Remove macro. 26202 * config/avr/avr.c (TARGET_CASE_VALUES_THRESHOLD): Define macro. 26203 (avr_case_values_threshold): Declare as static. 26204 * config/avr/avr-protos.h (avr_case_values_threshold): Remove. 26205 26206 * config/avr/mn10300.h (CASE_VALUES_THRESHOLD): Remove macro. 26207 * config/avr/mn10300.c (TARGET_CASE_VALUES_THRESHOLD): Define macro. 26208 (mn10300_case_values_threshold): New function. 26209 262102009-04-24 H.J. Lu <hongjiu.lu@intel.com> 26211 26212 * ira.c (setup_cover_and_important_classes): Add enum cast. 26213 262142009-04-24 Vladimir Makarov <vmakarov@redhat.com> 26215 26216 * genpreds.c (write_enum_constraint_num): Output definition of 26217 CONSTRAINT_NUM_DEFINED_P macro. 26218 * ira.c (setup_cover_and_important_classes): Use 26219 CONSTRAINT_NUM_DEFINED_P instead of CONSTRAINT__LIMIT in #ifdef. 26220 262212009-04-24 DJ Delorie <dj@redhat.com> 26222 26223 * config/sh/sh.h (LIBGCC2_DOUBLE_TYPE_SIZE): Test 26224 __SH2A_SINGLE_ONLY__ also. 26225 262262009-04-24 Steve Ellcey <sje@cup.hp.com> 26227 26228 * config/ia64/ia64.md (movfs_internal): Allow flt constants. 26229 (movdf_internal): Ditto. 26230 * config/ia64/ia64.c (ia64_legitimate_constant_p): Allow 26231 SFmode and DFmode constants. 26232 (ia64_print_operand): Add 'G' format for printing 26233 floating point constants. 26234 262352009-04-24 Richard Guenther <rguenther@suse.de> 26236 26237 * tree-vrp.c (extract_range_from_binary_expr): Handle overflow 26238 from unsigned additions. 26239 262402009-04-24 Joseph Myers <joseph@codesourcery.com> 26241 26242 * c-typeck.c (set_init_index): Allow array designators that are 26243 not integer constant expressions with a pedwarn if pedantic. 26244 262452009-04-24 Bernd Schmidt <bernd.schmidt@analog.com> 26246 26247 * simplify-rtx.c (simplify_binary_operation_1, case AND): Result is 26248 zero if no overlap in nonzero bits between the operands. 26249 262502009-04-24 Ian Lance Taylor <iant@google.com> 26251 26252 * combine.c (record_value_for_reg): Change 0 to VOIDmode, twice. 26253 (record_dead_and_set_regs): Likewise. 26254 * df.h (struct df_mw_hardreg): Change flags field to int. 26255 (struct df_base_ref): Likewise. 26256 (struct df): Change changeable_flags field to int. 26257 * df-scan.c (df_defs_record): Change clobber_flags to int. 26258 * dwarf2.h (enum dwarf_tag): Make lo_user and hi_user values enum 26259 constants rather than #define macros. 26260 (enum dwarf_attribute, enum dwarf_location_atom): Likewise. 26261 (enum dwarf_type, enum dwarf_endianity_encoding): Likewise. 26262 (enum dwarf_calling_convention): Likewise. 26263 (enum dwarf_line_number_x_ops): Likewise. 26264 (enum dwarf_call_frame_info): Likewise. 26265 (enum dwarf_source_language): Likewise. 26266 * dwarf2out.c (int_loc_descriptor): Add cast to enum type. 26267 (add_calling_convention_attribute): Likewise. 26268 * fold-const.c (fold_undefer_overflow_warnings): Add cast to enum type. 26269 (combine_comparisons): Change compcode to int. Add cast to enum type. 26270 * genrecog.c (maybe_both_true_2): Change c to int. 26271 (write_switch): Likewise. Add cast to enum type. 26272 * gimplify.c (gimplify_omp_for): Handle return values from 26273 gimplify_expr using MIN rather than bitwise or. 26274 (gimplify_expr): Add cast to enum type. 26275 * ipa-prop.c (update_jump_functions_after_inlining): Change 26276 IPA_BOTTOM to IPA_JF_UNKNOWN. 26277 * ira.c (setup_class_subset_and_memory_move_costs): Change mode to int. 26278 Add casts to enum type. 26279 (setup_cover_and_important_classes): Change cl to int. Add casts 26280 to enum type. 26281 (setup_class_translate): Change cl and mode to int. 26282 (ira_init_once): Change mode to int. 26283 (free_register_move_costs): Likewise. 26284 (setup_prohibited_mode_move_regs): Add casts to enum type. 26285 * langhooks.c (add_builtin_function_common): Rework assertion that 26286 value fits bitfield. 26287 * mcf.c (add_fixup_edge): Change type parameter to edge_type. 26288 * omega.c (omega_do_elimination): Avoid math on enum types. 26289 * optabs.c (expand_vec_shift_expr): Remove casts to int. 26290 * opts.c (set_debug_level): Change 2 to enum constant. Use new 26291 int local to handle integral_argment value. 26292 * regmove.c (try_auto_increment): Change PUT_MODE to 26293 PUT_REG_NOTE_KIND. 26294 * reload.c (push_secondary_reload): Add casts to enum type. 26295 (secondary_reload_class, find_valid_class): Likewise. 26296 * reload1.c (emit_input_reload_insns): Likewise. 26297 * rtl.h (NOTE_VAR_LOCATION_STATUS): Likewise. 26298 * sel-sched.c (init_hard_regs_data): Change cur_mode to int. 26299 * sel-sched-ir.c (hash_with_unspec_callback): Change 0 to enum 26300 constant. 26301 * tree.c (build_common_builtin_nodes): Add casts to enum type. 26302 * tree-complex.c (complex_lattice_t): Typedef to int rather than 26303 enum type. 26304 (expand_complex_libcall): Add casts to enum type. 26305 * tree-into-ssa.c (get_ssa_name_ann): Change 0 to enum constant. 26306 * tree-vect-loop.c (vect_model_reduction_cost): Compare reduc_code 26307 with ERROR_MARK, not NUM_TREE_CODES. 26308 (vect_create_epilog_for_reduction): Likewise. 26309 (vectorizable_reduction): Don't initialize epiloc_reduc_code. 26310 When not using it, set it to ERROR_MARK rather than NUM_TREE_CODES. 26311 * tree-vect-patterns.c (vect_pattern_recog_1): Change vec_mode to 26312 enum machine_mode. 26313 * tree-vect-stmts.c (new_stmt_vec_info): Change 0 to 26314 vect_unused_in_loop. Change 0 to loop_vect. 26315 * tree-vectorizer.c (vect_set_verbosity_level): Add casts to enum type. 26316 * var-tracking.c (get_init_value): Change return type to enum 26317 var_init_status. 26318 * vec.h (DEF_VEC_FUNC_P) [iterate]: Cast 0 to type T. 26319 * config/arm/arm.c (fp_model_for_fpu): Change to array to enum 26320 arm_fp_model. 26321 (arm_override_options): Add casts to enum type. 26322 (arm_emit_tls_decoration): Likewise. 26323 * config/i386/i386.c (ix86_function_specific_restore): Add casts 26324 to enum type. 26325 * config/i386/i386-c.c (ix86_pragma_target_parse): Likewise. 26326 * config/ia64/ia64.c (ia64_expand_compare): Change magic to int. 26327 * config/rs6000/rs6000.c (rs6000_override_options): Add casts to 26328 enum type. 26329 * config/s390/s390.c (code_for_builtin_64): Change to array of 26330 enum insn_code. 26331 (code_for_builtin_31): Likewise. 26332 (s390_expand_builtin): Change code_for_builtin to enum insn_code 26333 const *. 26334 * config/sparc/sparc.c (sparc_override_options): Change value 26335 field in struct code_model to enum cmodel. In initializer change 26336 0 to NULL and add cast to enum type. 26337 26338 * c-typeck.c (build_modify_expr): Add lhs_origtype parameter. 26339 Change all callers. Issue a -Wc++-compat warning using 26340 lhs_origtype if necessary. 26341 (convert_for_assignment): Issue -Wc++-compat warnings about 26342 invalid conversions to enum type on assignment. 26343 * c-common.h (build_modify_expr): Update declaration. 26344 263452009-04-24 Nick Clifton <nickc@redhat.com> 26346 26347 * config/iq2000/iq2000.c (function_arg): Handle TImode values. 26348 (function_arg_advance): Likewise. 26349 * config/iq2000/iq2000.md (movsi_internal2): Fix the length of the 26350 5th alternative. 26351 263522009-04-24 Andreas Krebbel <krebbel1@de.ibm.com> 26353 26354 * config/s390/constraints.md ('I', 'J'): Fix condition. 26355 263562009-04-24 Diego Novillo <dnovillo@google.com> 26357 26358 * gengtype-parse.c (parse_error): Add newline after message. 26359 263602009-04-24 H.J. Lu <hongjiu.lu@intel.com> 26361 26362 * config/i386/sse.md (avxmodesuffixs): Removed. 26363 (*avx_pinsr<avxmodesuffixs>): Renamed to ... 26364 (*avx_pinsr<ssevecsize>): This. 26365 263662009-04-24 Bernd Schmidt <bernd.schmidt@analog.com> 26367 26368 * loop-iv.c (replace_single_def_regs): Look for REG_EQUAL notes; 26369 follow chains of regs with a single definition, and allow expressions 26370 that are function_invariant_p. 26371 (simple_rhs_p): Allow expressions that are function_invariant_p. 26372 263732009-04-24 Paolo Bonzini <bonzini@gnu.org> 26374 26375 PR middle-end/39867 26376 * fold-const.c (fold_cond_expr_with_comparison): When folding 26377 > and >= to MAX, make sure the MAX uses the same type as the 26378 comparison's operands. 26379 263802009-04-24 Nick Clifton <nickc@redhat.com> 26381 26382 * config/frv/frv.c (frv_frame_access): Do not use reg+reg 26383 addressing for DImode accesses. 26384 (frv_print_operand_address): Handle PLUS case. 26385 * config/frv/frv.h (FIXED_REGISTERS): Mark link register as fixed. 26386 263872009-04-24 Jakub Jelinek <jakub@redhat.com> 26388 26389 PR rtl-optimization/39794 26390 * alias.c (canon_true_dependence): Add x_addr argument. 26391 * rtl.h (canon_true_dependence): Adjust prototype. 26392 * cse.c (check_dependence): Adjust canon_true_dependence callers. 26393 * cselib.c (cselib_invalidate_mem): Likewise. 26394 * gcse.c (compute_transp): Likewise. 26395 * dse.c (scan_reads_nospill): Likewise. 26396 (record_store, check_mem_read_rtx): Likewise. For non-const-or-frame 26397 addresses pass base->val_rtx as mem_addr, for const-or-frame addresses 26398 canon_base_addr of the group, plus optional offset. 26399 (struct group_info): Rename canon_base_mem to 26400 canon_base_addr. 26401 (get_group_info): Set canon_base_addr to canon_rtx of base, not 26402 canon_rtx of base_mem. 26403 264042009-04-23 Paolo Bonzini <bonzini@gnu.org> 26405 26406 * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue): 26407 Use memory_address_p instead of GO_IF_LEGITIMATE_ADDRESS. 26408 264092009-04-23 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 26410 26411 * config/spu/spu-builtins.h: Delete file. 26412 26413 * config/spu/spu.h (enum spu_builtin_type): Move here from 26414 spu-builtins.h. 26415 (struct spu_builtin_description): Likewise. Add GTY marker. 26416 Do not use enum spu_function_code or enum insn_code. 26417 (spu_builtins): Add extern declaration. 26418 26419 * config/spu/spu.c: Do not include "spu-builtins.h". 26420 (enum spu_function_code, enum spu_builtin_type_index, 26421 V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node, 26422 V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node, 26423 unsigned_V8HI_type_node, unsigned_V4SI_type_node, 26424 unsigned_V2DI_type_node): Move here from spu-builtins.h. 26425 (spu_builtin_types): Make static. Add GTY marker. 26426 (spu_builtins): Add extern declaration with GTY marker. 26427 Include "gt-spu.h". 26428 26429 * config/spu/spu-c.c: Do not include "spu-builtins.h". 26430 (spu_resolve_overloaded_builtin): Do not use spu_function_code. 26431 Check programmatically whether all parameters are scalar. 26432 26433 * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies. 26434 264352009-04-23 Eric Botcazou <ebotcazou@adacore.com> 26436 26437 * gimplify.c (gimplify_modify_expr_rhs) <VAR_DECL>: Do not do a direct 26438 assignment from the constructor either if the target is volatile. 26439 264402009-04-23 Daniel Jacobowitz <dan@codesourcery.com> 26441 26442 * config/arm/arm.md (insv): Do not share operands[0]. 26443 264442009-04-23 Nathan Sidwell <nathan@codesourcery.com> 26445 26446 * config/vxlib-tls.c (active_tls_threads): Delete. 26447 (delete_hook_installed): New. 26448 (tls_delete_hook): Don't delete the delete hook. 26449 (tls_destructor): Delete it here. 26450 (__gthread_set_specific): Adjust installing the delete hook. 26451 (tls_delete_hook): Use __gthread_enter_tsd_dtor_context and 26452 __gthread_leave_tsd_dtor_context. 26453 264542009-04-23 Rafael Avila de Espindola <espindola@google.com> 26455 26456 * c-format.c (gcc_tdiag_char_table): Add support for %E. 26457 264582009-04-23 Uros Bizjak <ubizjak@gmail.com> 26459 26460 * config/alpha/alpha.c (alpha_legitimize_reload_address): Add cast to 26461 enum type. 26462 (alpha_rtx_costs): Ditto. 26463 (emit_unlikely_jump): Use add_reg_note. 26464 (emit_frame_store_1): Ditto. 26465 (alpha_expand_prologue): Ditto. 26466 (alpha_expand_builtin): Change 0 to EXPAND_NORMAL in function call. 26467 * config/alpha/alpha.c (Unicos/Mk address splitter): Use add_reg_note. 26468 264692009-04-23 Nick Clifton <nickc@redhat.com> 26470 26471 * config/v850/v850.md (epilogue): Remove suppressed code. 26472 (return): Rename to return_simple and remove test of frame size. 26473 * config/v850/v850.c (expand_epilogue): Rename call to gen_return 26474 to gen_return_simple. 26475 264762009-04-22 Jing Yu <jingyu@google.com> 26477 26478 PR testsuite/39781 26479 * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP. 26480 264812009-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com> 26482 26483 PR C/31499 26484 * c-typeck.c (process_init_element): Treat VECTOR_TYPE like ARRAY_TYPE 26485 and RECORD_TYPE/UNION_TYPE. When outputing the actual element and the 26486 value is a VECTOR_CST, the element type is the element type of the 26487 vector. 26488 264892009-04-22 DJ Delorie <dj@redhat.com> 26490 26491 * config/m32c/m32c.h: Update GTY annotations to new syntax. 26492 264932009-04-22 Jakub Jelinek <jakub@redhat.com> 26494 26495 * alias.c (find_base_term): Move around LO_SUM case, so that 26496 CONST falls through into PLUS/MINUS handling. 26497 26498 PR c/39855 26499 * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing 26500 into 0, use omit_one_operand. 26501 265022009-04-23 Ben Elliston <bje@au.ibm.com> 26503 26504 * config/rs6000/linux-unwind.h (get_regs): Remove type 26505 puns. Change the type of `pc' to an array of unsigned ints and 26506 update all users. Constify frame24. 26507 265082009-04-22 DJ Delorie <dj@redhat.com> 26509 26510 * config/m32c/m32c.c (m32c_special_page_vector_p): Move 26511 declarations before code. 26512 (current_function_special_page_vector): Likewise. 26513 (m32c_expand_insv): Silence a warning. 26514 265152009-04-21 Taras Glek <tglek@mozilla.com> 26516 26517 * alias.c: Update GTY annotations to new syntax. 26518 * basic-block.h: Likewise. 26519 * bitmap.h: Likewise. 26520 * c-common.h: Likewise. 26521 * c-decl.c: Likewise. 26522 * c-parser.c: Likewise. 26523 * c-pragma.c: Likewise. 26524 * c-tree.h: Likewise. 26525 * cfgloop.h: Likewise. 26526 * cgraph.h: Likewise. 26527 * config/alpha/alpha.c: Likewise. 26528 * config/arm/arm.h: Likewise. 26529 * config/avr/avr.h: Likewise. 26530 * config/bfin/bfin.c: Likewise. 26531 * config/cris/cris.c: Likewise. 26532 * config/darwin.c: Likewise. 26533 * config/frv/frv.c: Likewise. 26534 * config/i386/i386.c: Likewise. 26535 * config/i386/i386.h: Likewise. 26536 * config/i386/winnt.c: Likewise. 26537 * config/ia64/ia64.h: Likewise. 26538 * config/iq2000/iq2000.c: Likewise. 26539 * config/mips/mips.c: Likewise. 26540 * config/mmix/mmix.h: Likewise. 26541 * config/pa/pa.c: Likewise. 26542 * config/pa/pa.h: Likewise. 26543 * config/rs6000/rs6000.c: Likewise. 26544 * config/s390/s390.c: Likewise. 26545 * config/sparc/sparc.c: Likewise. 26546 * config/xtensa/xtensa.c: Likewise. 26547 * cselib.h: Likewise. 26548 * dbxout.c: Likewise. 26549 * dwarf2out.c: Likewise. 26550 * except.c: Likewise. 26551 * except.h: Likewise. 26552 * fixed-value.h: Likewise. 26553 * function.c: Likewise. 26554 * function.h: Likewise. 26555 * gimple.h: Likewise. 26556 * integrate.c: Likewise. 26557 * optabs.c: Likewise. 26558 * output.h: Likewise. 26559 * real.h: Likewise. 26560 * rtl.h: Likewise. 26561 * stringpool.c: Likewise. 26562 * tree-data-ref.c: Likewise. 26563 * tree-flow.h: Likewise. 26564 * tree-scalar-evolution.c: Likewise. 26565 * tree-ssa-address.c: Likewise. 26566 * tree-ssa-alias.h: Likewise. 26567 * tree-ssa-operands.h: Likewise. 26568 * tree.c: Likewise. 26569 * tree.h: Likewise. 26570 * varasm.c: Likewise. 26571 * varray.h: Likewise. 26572 * vec.h: Likewise. 26573 * coretypes.h: Do not define GTY macro if it is already defined. 26574 * doc/gty.texi: Update GTY documentation to new syntax. 26575 * gengtype-lex.l: Enforce attribute-like syntax for GTY 26576 annotations on structs. 26577 * gengtype-parse.c: Likewise. 26578 265792009-04-22 Mark Heffernan <meheff@google.com> 26580 26581 * gcc.c (LINK_COMMAND_SPEC): Link with gcov with -fprofile-generate=. 26582 265832009-04-22 Kazu Hirata <kazu@codesourcery.com> 26584 26585 * config/arm/arm.c (arm_rtx_costs_1): Use power_of_two_operand 26586 where appropriate. 26587 265882009-04-22 Kazu Hirata <kazu@codesourcery.com> 26589 26590 * config/arm/arm.c (arm_size_rtx_costs): Treat a PLUS with a shift 26591 the same as a PLUS without a shift. Increase the cost of a 26592 CONST_INT in MULT. 26593 265942009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26595 26596 * Makefile.in: Update dependencies. 26597 * errors.c (warning): Remove unused parameter 'opt'. Returns 'void'. 26598 * errors.h: Remove bogus comment about compatibility. 26599 (warning): Update declaration. 26600 * genautomata.c: Update all calls to warning. 26601 * gimple.c: Do not include errors.h. Include toplev.h. 26602 * tree-ssa-structalias.c: Do not include errors.h. 26603 * omega.c: Likewise. 26604 * tree-ssa-reassoc.c: Likewise. 26605 * config/spu/spu-c.c: Likewise. 26606 * config/spu/t-spu-elf: Update dependencies. 26607 266082009-04-22 Richard Guenther <rguenther@suse.de> 26609 26610 PR tree-optimization/39824 26611 * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs 26612 make sure the types are compatible. 26613 266142009-04-22 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26615 26616 PR c++/14875 26617 * c-common.c (c_parse_error): Take a token_flags parameter. 26618 Use token_type for the token type instead. 26619 Pass token_flags to cpp_type2name. 26620 * c-common.h (c_parse_error): Update declaration. 26621 * c-parser.c (c_parser_error): Pass 0 as token flags. 26622 266232009-04-22 Andrey Belevantsev <abel@ispras.ru> 26624 26625 PR rtl-optimization/39580 26626 * sel-sched-ir.c (insert_in_history_vect): Remove incorrect gcc_assert. 26627 266282009-04-22 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 26629 26630 * function.c (expand_function_end): Do not emit a jump to the "naked" 26631 return label for fall-through returns. 26632 * except.c (sjlj_emit_function_exit): Always place the call to the 26633 unregister function at the location installed by expand_function_end. 26634 266352009-04-22 Richard Guenther <rguenther@suse.de> 26636 26637 PR tree-optimization/39845 26638 * tree-switch-conversion.c (build_arrays): Add new referenced vars. 26639 (gen_inbound_check): Likewise. 26640 266412009-04-22 Nathan Sidwell <nathan@codesourcery.com> 26642 26643 * gthr-vxworks.h (struct __gthread_once_t): Add alignment and 26644 padding for PPC. 26645 (__GTHREAD_ONCE_INIT): Adjust ppc initializer. 26646 * config/vxlib.c (__gthread_once): Add race guard for PPC. 26647 266482009-04-22 Paolo Bonzini <bonzini@gnu.org> 26649 26650 * config/sh/sh.c (shift_insns_rtx, shiftcosts, gen_shifty_op, 26651 sh_dynamicalize_shift_p, shl_and_scr_length): Truncate 26652 shift counts to avoid out-of-bounds array accesses. 26653 266542009-04-22 Paolo Bonzini <bonzini@gnu.org> 26655 26656 * config/sparc/sparc.h (POINTER_SIZE): Fix comment. 26657 (Pmode): Move above. 26658 266592009-04-22 Uros Bizjak <ubizjak@gmail.com> 26660 26661 * config/alpha/alpha.c: Use REG_P, MEM_P, CONST_INT_P, JUMP_P, 26662 NONJUMP_INSN_P, CALL_P, LABEL_P and NOTE_P predicates instead of 26663 GET_CODE macro. Use IN_RANGE macro where appropriate. 26664 * config/alpha/alpha.h: Ditto. 26665 * config/alpha/alpha.md: Ditto. 26666 * config/alpha/constraints.md: Ditto. 26667 * config/alpha/predicates.md: Ditto. 26668 266692009-04-22 Paolo Bonzini <bonzini@gnu.org> 26670 26671 * defaults.h (GO_IF_MODE_DEPENDENT_ADDRESS): Provide empty default. 26672 * config/frv/frv.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26673 * config/s390/s390.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26674 * config/m32c/m32c.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26675 * config/spu/spu.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26676 * config/i386/i386.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26677 * config/sh/sh.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26678 * config/pdp11/pdp11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26679 * config/avr/avr.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26680 * config/crx/crx.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26681 * config/fr30/fr30.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26682 * config/m68hc11/m68hc11.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26683 * config/cris/cris.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26684 * config/iq2000/iq2000.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26685 * config/mn10300/mn10300.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26686 * config/ia64/ia64.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26687 * config/m68k/m68k.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26688 * config/picochip/picochip.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26689 * config/arc/arc.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26690 * config/mcore/mcore.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26691 * config/score/score.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26692 * config/arm/arm.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26693 * config/pa/pa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26694 * config/mips/mips.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26695 * config/v850/v850.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26696 * config/mmix/mmix.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26697 * config/bfin/bfin.h (GO_IF_MODE_DEPENDENT_ADDRESS): Delete. 26698 266992009-04-22 Laurynas Biveinis <laurynas.biveinis@gmail.com> 26700 26701 * cfghooks.c (tidy_fallthru_edges): Remove find_basic_blocks 26702 references from comments. 26703 * cfgbuild.c (count_basic_blocks): Delete. 26704 (find_basic_blocks_1): Delete. 26705 (find_basic_blocks): Delete. 26706 * except.c (finish_eh_generation): Make static. Move comment from 26707 except.h here. Remove find_basic_blocks references from comments. 26708 * except.h (finish_eh_generation): Delete. 26709 * basic-block.h (find_basic_blocks): Delete. 26710 * config/sh/sh.c (sh_output_mi_thunk): Delete a "#if 0" block. 26711 267122009-04-22 Dave Korn <dave.korn.cygwin@gmail.com> 26713 26714 * sdbout.c (sdbout_symbol): Pass VOIDmode to eliminate_regs. 26715 (sdbout_parms): Likewise. 26716 267172009-04-21 Kaz Kojima <kkojima@gcc.gnu.org> 26718 26719 * config/sh/sh.c (prepare_cbranch_operands): Use 26720 LAST_AND_UNUSED_RTX_CODE instead of CODE_FOR_nothing. 26721 (expand_cbranchdi4): Likewise. 26722 (from_compare): Add cast to enum type. 26723 (expand_cbranchsi4): Use add_reg_note. 26724 (output_stack_adjust, push, pop, sh_expand_prologue): Likewise. 26725 (sh_insn_length_adjustment): Use sh_cpu_attr instead of sh_cpu. 26726 (sh_initialize_trampoline): Change 0 to LCT_NORMAL in function call. 26727 (sh_expand_builtin): Change 0 to EXPAND_NORMAL in function call. 26728 * config/sh/sh.md (cbranchsi4): Use LAST_AND_UNUSED_RTX_CODE 26729 instead of CODE_FOR_nothing. 26730 (cbranchdi4): Likewise. Fix the order of arguments for 26731 gen_rtx_fmt_ee. 26732 (push_fpscr): Use add_reg_note. 26733 (pop_fpscr, movdf_i4+1, reload_outdf__RnFRm+3, reload_outdf__RnFRm+4, 26734 reload_outdf__RnFRm+5, fpu_switch+1, fpu_switch+2): Likewise. 26735 267362009-04-21 Joseph Myers <joseph@codesourcery.com> 26737 26738 * ABOUT-GCC-NLS, ChangeLog, ChangeLog-1997, ChangeLog-1998, 26739 ChangeLog-1999, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, 26740 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, 26741 ChangeLog-2007, ChangeLog-2008, ChangeLog.dataflow, ChangeLog.lib, 26742 ChangeLog.ptr, ChangeLog.tree-ssa, ChangeLog.tuples, FSFChangeLog, 26743 FSFChangeLog.10, FSFChangeLog.11, LANGUAGES, ONEWS, acinclude.m4, 26744 config/alpha/gnu.h, config/alpha/libgcc-alpha-ldbl.ver, 26745 config/alpha/t-osf4, config/alpha/t-vms, config/alpha/va_list.h, 26746 config/alpha/x-vms, config/arc/t-arc, 26747 config/arm/README-interworking, config/arm/arm-c.c, 26748 config/arm/gentune.sh, config/arm/libgcc-bpabi.ver, 26749 config/arm/t-arm, config/arm/t-arm-elf, config/arm/t-arm-softfp, 26750 config/arm/t-bpabi, config/arm/t-linux, config/arm/t-linux-eabi, 26751 config/arm/t-netbsd, config/arm/t-pe, config/arm/t-strongarm-elf, 26752 config/arm/t-symbian, config/arm/t-vxworks, config/arm/t-wince-pe, 26753 config/avr/t-avr, config/bfin/elf.h, config/bfin/libgcc-bfin.ver, 26754 config/bfin/linux.h, config/bfin/t-bfin, config/bfin/t-bfin-elf, 26755 config/bfin/t-bfin-linux, config/bfin/t-bfin-uclinux, 26756 config/bfin/uclinux.h, config/cris/mulsi3.asm, config/cris/t-cris, 26757 config/cris/t-elfmulti, config/crx/t-crx, 26758 config/darwin-ppc-ldouble-patch.def, config/darwin-sections.def, 26759 config/divmod.c, config/fr30/t-fr30, config/frv/libgcc-frv.ver, 26760 config/frv/t-frv, config/frv/t-linux, config/h8300/genmova.sh, 26761 config/h8300/t-h8300, config/i386/athlon.md, 26762 config/i386/darwin-libgcc.10.4.ver, 26763 config/i386/darwin-libgcc.10.5.ver, config/i386/libgcc-glibc.ver, 26764 config/i386/mach.h, config/i386/netbsd.h, config/i386/t-crtpc, 26765 config/i386/t-cygming, config/i386/t-cygwin, config/i386/t-i386, 26766 config/i386/t-linux64, config/i386/t-nwld, 26767 config/i386/t-rtems-i386, config/i386/t-sol2-10, 26768 config/i386/x-mingw32, config/ia64/div.md, config/ia64/elf.h, 26769 config/ia64/ia64.opt, config/ia64/libgcc-glibc.ver, 26770 config/ia64/libgcc-ia64.ver, config/ia64/linux.h, 26771 config/ia64/sysv4.h, config/ia64/t-hpux, config/ia64/t-ia64, 26772 config/iq2000/abi, config/iq2000/lib2extra-funcs.c, 26773 config/iq2000/t-iq2000, config/libgcc-glibc.ver, 26774 config/m32r/libgcc-glibc.ver, config/m32r/t-linux, 26775 config/m32r/t-m32r, config/m68hc11/t-m68hc11, 26776 config/m68k/t-floatlib, config/m68k/t-linux, config/m68k/t-mlibs, 26777 config/m68k/t-uclinux, config/mcore/t-mcore, 26778 config/mcore/t-mcore-pe, config/mips/20kc.md, config/mips/4130.md, 26779 config/mips/5400.md, config/mips/5500.md, config/mips/crti.asm, 26780 config/mips/crtn.asm, config/mips/irix-crti.asm, 26781 config/mips/irix-crtn.asm, config/mips/libgcc-mips16.ver, 26782 config/mips/mips-dsp.md, config/mips/mips-dspr2.md, 26783 config/mips/mips-fixed.md, config/mips/sb1.md, 26784 config/mips/sr71k.md, config/mips/t-elf, config/mips/t-gofast, 26785 config/mips/t-iris6, config/mips/t-isa3264, 26786 config/mips/t-libgcc-mips16, config/mips/t-linux64, 26787 config/mips/t-mips, config/mips/t-r3900, config/mips/t-rtems, 26788 config/mips/t-sb1, config/mips/t-sde, config/mips/t-sdemtk, 26789 config/mips/t-slibgcc-irix, config/mips/t-sr71k, config/mips/t-st, 26790 config/mips/t-vr, config/mips/t-vxworks, config/mmix/t-mmix, 26791 config/mn10300/t-linux, config/mn10300/t-mn10300, 26792 config/pa/pa32-regs.h, config/pa/t-hpux-shlib, config/pa/t-linux, 26793 config/pa/t-linux64, config/pa/t-pa64, config/pdp11/t-pdp11, 26794 config/picochip/libgccExtras/clzsi2.asm, 26795 config/picochip/t-picochip, config/rs6000/darwin-ldouble-format, 26796 config/rs6000/darwin-libgcc.10.4.ver, 26797 config/rs6000/darwin-libgcc.10.5.ver, 26798 config/rs6000/libgcc-ppc-glibc.ver, config/rs6000/ppc-asm.h, 26799 config/rs6000/t-aix43, config/rs6000/t-aix52, 26800 config/rs6000/t-darwin, config/rs6000/t-fprules, 26801 config/rs6000/t-fprules-fpbit, config/rs6000/t-linux64, 26802 config/rs6000/t-lynx, config/rs6000/t-netbsd, 26803 config/rs6000/t-ppccomm, config/rs6000/t-ppcendian, 26804 config/rs6000/t-ppcgas, config/rs6000/t-rs6000, 26805 config/rs6000/t-rtems, config/rs6000/t-spe, 26806 config/rs6000/t-vxworks, config/s390/libgcc-glibc.ver, 26807 config/score/t-score-elf, config/sh/divcost-analysis, 26808 config/sh/libgcc-glibc.ver, config/sh/t-netbsd, config/sh/t-sh, 26809 config/sh/t-sh64, config/sh/t-superh, config/sh/t-symbian, 26810 config/sparc/libgcc-sparc-glibc.ver, config/sparc/sol2-bi.h, 26811 config/sparc/sol2-gas.h, config/sparc/sol2-gld-bi.h, 26812 config/sparc/t-elf, config/sparc/t-linux64, config/sparc/t-sol2, 26813 config/stormy16/stormy-abi, config/stormy16/t-stormy16, 26814 config/t-darwin, config/t-libunwind, config/t-libunwind-elf, 26815 config/t-linux, config/t-lynx, config/t-slibgcc-elf-ver, 26816 config/t-slibgcc-sld, config/t-sol2, config/t-vxworks, 26817 config/udivmod.c, config/udivmodsi4.c, config/v850/t-v850, 26818 config/v850/t-v850e, config/xtensa/t-xtensa, diagnostic.def, 26819 gdbinit.in, glimits.h, gstab.h, gsyms.h, java/ChangeLog, 26820 java/ChangeLog.ptr, java/ChangeLog.tree-ssa, libgcc-std.ver, 26821 limitx.h, version.c, xcoff.h: Add copyright and license notices. 26822 * config/h8300/genmova.sh: Include copyright and license notices 26823 in generated output. 26824 * config/h8300/mova.md: Regenerate. 26825 * doc/install.texi2html: Include word "Copyright" in copyright 26826 notice and use name "Free Software Foundation, Inc.". 26827 * ChangeLog, ChangeLog-2000, ChangeLog-2001, ChangeLog-2002, 26828 ChangeLog-2003, ChangeLog-2004, ChangeLog-2005, ChangeLog-2006, 26829 ChangeLog-2007, ChangeLog-2008: Correct dates. 26830 268312009-04-21 Eric Botcazou <ebotcazou@adacore.com> 26832 26833 * c-common.c (c_common_truthvalue_conversion): Use LOCATION to build 26834 NE_EXPR operations as well. 26835 * c-parser.c (c_parser_condition): Do not set location information on 26836 the condition. 26837 (c_parser_conditional_expression): Likewise. 26838 (c_parser_binary_expression): Set location information on operators. 26839 * c-typeck.c (build_unary_op) <TRUTH_NOT_EXPR>: Reset the location if 26840 TRUTH_NOT_EXPR has been folded. 26841 * fold-const.c (fold_truth_not_expr): Copy location information from 26842 the incoming expression to the outgoing one. 26843 * gimplify.c (shortcut_cond_r): Add locus parameter. Pass it to 26844 recursive calls on the LHS of the operator but pass that of the 26845 operator to recursive calls on the RHS of the operator. Set it 26846 on the COND_EXPR. 26847 (shortcut_cond_expr): Set the locus of the operator on the second 26848 COND_EXPR and that of the expression on the first in degenerate cases. 26849 Pass the locus of the expression to calls to shortcut_cond_r. 26850 Set the locus of the 'then' block on the associated jump, if any. 26851 (gimplify_boolean_expr): Add locus parameter. Set it on the COND_EXPR. 26852 (gimplify_expr) <TRUTH_ANDIF_EXPR>: Pass the locus of the outer 26853 expression to call to gimplify_boolean_expr. 26854 268552009-04-21 Kai Tietz <kai.tietz@onevision.com> 26856 26857 * config.gcc: Add additional configuration for 26858 i686-w64-mingw* and x86_64-w64-mingw* triplet. 26859 * config/i386/mingw-w64.h: New mingw-w64 specific header. 26860 (CPP_SPEC): Redefine for allowing -municode option. 26861 (STARTFILE_SPEC): Likewise. 26862 * config/i386/t-mingw-w64: New. 26863 * config/i386/mingw-w64.opt: New. 26864 (municode): Add new target option. 26865 * doc/invoke.texi (municode): Add documentation for new option. 26866 268672009-04-21 Ian Lance Taylor <iant@google.com> 26868 26869 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 26870 Correct test for number of arguments. 26871 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise. 26872 268732009-04-21 Andreas Schwab <schwab@linux-m68k.org> 26874 26875 * config/m68k/linux.h (FINALIZE_TRAMPOLINE): Use enum for second 26876 argument of emit_library_call. 26877 268782009-04-21 Richard Guenther <rguenther@suse.de> 26879 26880 PR middle-end/39829 26881 * gimple.c (walk_stmt_load_store_addr_ops): Catch addresses 26882 inside VIEW_CONVERT_EXPRs. 26883 268842009-04-21 Martin Jambor <mjambor@suse.cz> 26885 26886 * tree-switch-conversion.c (build_constructors): Split a long line. 26887 (constructor_contains_same_values_p): New function. 26888 (build_one_array): Create assigns of constants if possible, do not 26889 call mark_sym_for_renaming, call update_stmt. 26890 (build_arrays): Call make_ssa_name (create_tmp_var ()) instead of 26891 make_rename_temp. Do not call mark_symbols_for_renaming, call 26892 update_stmt. 26893 (gen_def_assigns): Do not call mark_symbols_for_renaming or 26894 find_new_referenced_vars, call update_stmt. 26895 (gen_inbound_check): Use create_tmp_var and create ssa names manually 26896 instead of calling make_rename_temp. Do not call 26897 find_new_referenced_vars or mark_symbols_for_renaming, call 26898 update_stmt. 26899 269002009-04-21 Richard Guenther <rguenther@suse.de> 26901 26902 PR tree-optimization/39827 26903 * tree-ssa-phiprop.c (propagate_with_phi): Check SSA_NAME is in range. 26904 (tree_ssa_phiprop): Pass the correct array size. 26905 269062009-04-21 Uros Bizjak <ubizjak@gmail.com> 26907 26908 * config/alpha/alpha.md (tune): Add cast to enum attr_tune. 26909 269102009-04-21 Manuel López-Ibáñez <manu@gcc.gnu.org> 26911 26912 PR 16202 26913 * c-typeck.c (lvalue_p): Move declaration ... 26914 * c-common.h (lvalue_p): ... to here. 26915 * c-common.c (candidate_equal_p): New. 26916 (add_tlist): Use it. 26917 (merge_tlist): Use it. 26918 (warn_for_collisions_1): Likewise. 26919 (warning_candidate_p): Accept more candidates. 26920 (verify_tree): A warning candidate can be an expression. Use 26921 candidate_equal_p. 26922 269232009-04-21 Ben Elliston <bje@au.ibm.com> 26924 26925 PR target/5267 26926 * doc/invoke.texi (RS/6000 and PowerPC Options): Add documentation 26927 for -mcall-eabi, -mcall-aixdesc, -mcall-freebsd and -mcall-openbsd 26928 options. Remove -mcall-solaris documentation. 26929 269302009-04-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 26931 26932 PR c++/13358 26933 * doc/invoke.texi (-Wlong-long): Update description. 26934 * c-lex (interpret_integer): Only warn if there was no previous 26935 overflow and -Wlong-long is enabled. 26936 * c-decl.c (declspecs_add_type): Drop redundant flags. 26937 * c.opt (Wlong-long): Init to -1. 26938 * c-opts.c (sanitize_cpp_opts): Synchronize cpp's warn_long_long 26939 and front-end warn_long_long. Wlong-long only depends on other 26940 flags if it is uninitialized. 26941 * c-parser.c (disable_extension_diagnostics): warn_long_long is 26942 the same for CPP and FE. 26943 (restore_extension_diagnostics): Likewise. 26944 269452009-04-20 Ian Lance Taylor <iant@google.com> 26946 26947 Fix enum conversions which are invalid in C++: 26948 * auto-inc-dec.c (attempt_change): Change 0 to SET in function call. 26949 * calls.c (store_one_arg): Change 0 to EXPAND_NORMAL in function call. 26950 * cse.c (hash_rtx_cb): Change 0 to VOIDmode in function call. 26951 * dbgcnt.c (dbg_cnt_set_limit_by_name): Add cast to enum type. 26952 * dbxout.c (dbxout_symbol): Change 0 to VOIDmode in function call. 26953 (dbxout_parms): Likewise. 26954 * df-core.c (df_set_flags): Change changeable_flags parameter to int. 26955 (df_clear_flags): Likewise. 26956 * df-problems.c (df_rd_bb_local_compute_process_def): Change 26957 top_flag parameter to int. 26958 (df_chain_create_bb_process_use): Likewise. 26959 (df_chain_add_problem): Change chain_flags parameter to unsigned int. 26960 Remove cast. 26961 * df-scan.c (df_ref_create): Change ref_flags parameter to int. 26962 (df_ref_create_structure, df_def_record_1): Likewise. 26963 (df_defs_record, df_uses_record, df_get_call_refs): Likewise. 26964 (df_notes_rescan): Change 0 to VOIDmode in function call. 26965 (df_get_call_refs, df_insn_refs_collect): Likewise. 26966 (df_bb_regs_collect): Likewise. 26967 (df_entry_block_defs_collect): Likewise. 26968 (df_exit_block_uses_collect): Likewise. 26969 * df.h: Update declarations. 26970 * double-int.c (double_int_divmod): Add cast to enum type. 26971 * dse.c (replace_inc_dec): Reverse parameters to gen_int_mode. 26972 * dwarf2out.c (new_reg_loc_descr): Add casts to enum type. 26973 (based_loc_descr): Likewise. 26974 (loc_descriptor_from_tree_1): Change first_op and second_op to 26975 enum dwarf_location_atom. Add cast to enum type. 26976 * expmed.c (init_expmed): Change 0 to SET in function call. 26977 * expr.c (init_expr_target): Change 0 to VOIDmode in function call. 26978 (expand_expr_real_1): Change 0 to EXPAND_NORMAL in function call. 26979 (do_store_flag): Likewise. 26980 * fixed-value.h (struct fixed_value): Change mode to enum 26981 machine_mode. 26982 * function.c (assign_parms): Change 0 to VOIDmode in function call. 26983 * genautomata.c (insert_automaton_decl): Change 1 to INSERT in 26984 function call. 26985 (insert_insn_decl, insert_decl, insert_state): Likewise. 26986 (automata_list_finish): Likewise. 26987 * genrecog.c (process_define_predicate): Add cast to enum type. 26988 * gensupport.c (init_predicate_table): Add cast to enum type. 26989 * gimple.c (gimple_build_return): Change 0 to ERROR_MARK in 26990 function call. 26991 (gimple_build_call_1, gimple_build_label): Likewise. 26992 (gimple_build_goto, gimple_build_asm_1): Likewise. 26993 (gimple_build_switch_1, gimple_build_cdt): Likewise. 26994 * gimple.h (GIMPLE_CHECK): Change 0 to ERROR_MARK in function call. 26995 (enum fallback): Rename from enum fallback_t. 26996 (fallback_t): Typedef as int. 26997 * gimple-low.c (lower_builtin_setjmp): Change TSI_SAME_STMT to 26998 GSI_SAME_STMT in function call. 26999 * ira.c (setup_class_subset_and_memory_move_costs): Add casts to 27000 enum type. 27001 (setup_reg_class_relations): Likewise. 27002 (setup_reg_class_nregs): Change cl to int. Add casts to enum type. 27003 (setup_prohibited_class_mode_regs): Add cast to enum type. 27004 (setup_prohibited_mode_move_regs): Likewise. 27005 * ira-costs.c (record_reg_classes): Change rclass to enum reg_class. 27006 (record_address_regs): Change i to enum reg_class. 27007 * lists.c (alloc_EXPR_LIST): Add cast to enum type. 27008 * machmode.h (GET_MODE_CLASS): Cast value to enum mode_class. 27009 (GET_MODE_WIDER_MODE): Cast value to enum machine_mode. 27010 (GET_MODE_2XWIDER_MODE): Likewise. 27011 (GET_CLASS_NARROWEST_MODE): Likewise. 27012 * omp-low.c (expand_omp_for): Add cast to enum type. 27013 * optabs.c (debug_optab_libfuncs): Add casts to enum type. 27014 * opts.c (enable_warning_as_error): Change kind to diagostic_t. 27015 * postreload.c (reload_cse_simplify_operands): Change rclass local 27016 to enum reg_class. 27017 * predict.c (combine_predictions_for_insn): Change best_predictor 27018 and predictor to enum br_predictor. 27019 (combine_predictions_for_bb): Likewise. 27020 (build_predict_expr): Change assignment to PREDICT_EXPR_OUTCOME to 27021 use SET_PREDICT_EXPR_OUTCOME. 27022 * real.c (real_arithmetic): Change icode to code in function call. 27023 * reginfo.c (init_move_cost): Add casts to enum type. 27024 (init_reg_sets_1, init_fake_stack_mems): Likewise. 27025 * regmove.c (regclass_compatible_p): Change class0 and class1 to 27026 enum reg_class. 27027 * reload.c (find_valid_class): Add casts to enum type. 27028 (push_reload): Change 0 to NO_REGS in function call. 27029 (find_reloads): Change this_alternative to array of enum 27030 reg_class. Remove some now-unnecessary casts. 27031 (make_memloc): Change 0 to VOIDmode in function call. 27032 * reload1.c (reload): Change 0 to VOIDmode in function call. 27033 (eliminate_regs_1, elimination_effects): Likewise. 27034 (eliminate_regs_in_insn): Likewise. 27035 (emit_input_reload_insns): Add cast to enum type. 27036 (delete_output_reload): Change 0 to VOIDmode in function call. 27037 * reorg.c (insn_sets_resource_p): Convert include_delayed_effects 27038 to enum type in function call. 27039 * tree.h (PREDICT_EXPR_OUTCOME): Add cast to enum type. 27040 (SET_PREDICT_EXPR_OUTCOME): Define. 27041 * tree-dump.c (get_dump_file_info): Change phase parameter to int. 27042 (get_dump_file_name, dump_begin, dump_enabled_p): Likewise. 27043 (dump_initialized_p, dump_flag_name, dump_end): Likewise. 27044 (dump_function): Likewise. 27045 * tree-dump.h: Update declarations. 27046 * tree-pass.h: Update declarations. 27047 * varasm.c (assemble_integer): Change mclass to enum mode_class. 27048 * config/arm/arm.c (thumb_legitimize_reload_address): Add cast to 27049 enum type. 27050 (arm_rtx_costs_1): Correct parenthesization. 27051 (arm_rtx_costs): Add casts to enum type. 27052 (adjacent_mem_locations): Reverse arguments to const_ok_for_op. 27053 (vfp_emit_fstmd): Use add_rg_note. 27054 (emit_multi_reg_push, emit_sfm): Likewise. 27055 (thumb_set_frame_pointer): Likewise. 27056 (arm_expand_prologue): Likewise. 27057 (arm_regno_class): Change return type to enum reg_class. 27058 (thumb1_expand_prologue): Use add_reg_note. 27059 * config/arm/arm-protos.h (arm_regno_class): Update declaration. 27060 * config/arm/arm.h (INITIALIZE_TRAMPOLINE): Change 0 to LCT_NORMAL 27061 in function call. 27062 * config/arm/gentune.sh: Add cast to enum type. 27063 * config/arm/arm-tune.md: Rebuild. 27064 * config/i386/i386.c (ix86_expand_prologue): Use add_reg_note. 27065 (ix86_split_fp_branch, predict_jump): Likewise. 27066 (ix86_expand_multi_arg_builtin): Change sub_code from enum 27067 insn_code to enum rtx_code. 27068 (ix86_builtin_vectorized_function): Add cast to enum type. 27069 * config/i386/i386.md (truncdfsf2): Change slot to enum 27070 ix86_stack_slot. 27071 (truncxf<mode>2, isinf<mode>2): Likewise. 27072 * config/i386/i386-c.c (ix86_pragma_target_parse): Add cast to 27073 enum type. 27074 * config/ia64/ia64.c (ia64_split_tmode_move): Use add_reg_note. 27075 (spill_restore_mem, do_spill, ia64_expand_prologue): Likewise. 27076 (insert_bundle_state): Change 1 to INSERT in function call. 27077 (ia64_add_bundle_selector_before): Likewise. 27078 * config/ia64/ia64.md (cpu attr): Add cast to enum type. 27079 (save_stack_nonlocal): Change 0 to LCT_NORMAL in function call. 27080 (restore_stack_nonlocal): Likewise. 27081 * config/mips/mips.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL in 27082 function call. 27083 * config/mips/mips.c (mips_binary_cost): Change 0 to SET in 27084 function call. 27085 (mips_rtx_costs): Likewise. 27086 (mips_override_options): Add casts to enum type. 27087 * config/mips/sdemtk.h (MIPS_ICACHE_SYNC): Change 0 to LCT_NORMAL 27088 in function call. 27089 * config/pa/pa.c (legitimize_pic_address): Use add_reg_note. 27090 (store_reg, set_reg_plus_d): Likewise. 27091 (hppa_expand_prologue, hppa_profile_hook): Likewise. 27092 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Add 27093 cast to enum type. 27094 (altivec_expand_vec_set_builtin): Change 0 to EXPAND_NORMAL in 27095 function call. 27096 (emit_unlikely_jump): Use add_reg_note. 27097 (rs6000_emit_allocate_stack): Likewise. 27098 (rs6000_frame_related, rs6000_emit_prologue): Likewise. 27099 (output_toc): Change 1 to INSERT in function call. 27100 (output_profile_hook): Change 0 to LCT_NORMAL in function call. 27101 (rs6000_initialize_trampoline): Likewise. 27102 (rs6000_init_dwarf_reg_sizes_extra): Change 0 to EXPAND_NORMAL in 27103 function call. 27104 * config/s390/s390.c (s390_rtx_costs): Add cast to enum type. 27105 (s390_expand_movmem): Change 0 to OPTAB_DIRECT in function call. 27106 (s390_expand_setmem, s390_expand_cmpmem): Likewise. 27107 (save_gprs): Use add_reg_note. 27108 (s390_emit_prologue): Likewise. 27109 (s390_expand_builtin): Change 0 to EXPAND_NORMAL in function call. 27110 * config/sparc/sparc.c (sparc_expand_prologue): Use add_reg_note. 27111 (sparc_fold_builtin): Add cast to enum type. 27112 * config/spu/spu.c (spu_emit_branch_or_set): Change ior_code to 27113 enum insn_code. 27114 (spu_expand_prologue): Use add_reg_note. 27115 (expand_builtin_args): Change 0 to EXPAND_NORMAL in function call. 27116 271172009-04-20 Ian Lance Taylor <iant@google.com> 27118 27119 * c-parser.c (c_parser_attributes): Change VEC back to tree list. 27120 (c_parser_postfix_expression_after_primary): Get VEC for list of 27121 arguments. Get original types of arguments. Call 27122 build_function_call_vec. 27123 (cached_expr_list_1, cached_expr_list_2): New static variables. 27124 (c_parser_expr_list): Change return type to VEC *. Add 27125 p_orig_types parameter. Change all callers. 27126 (c_parser_release_expr): New static function. 27127 (c_parser_vec_to_tree_list): New static function. 27128 * c-typeck.c (build_function_call): Rewrite to build a VEC and 27129 call build_function_call_vec. 27130 (build_function_call_vec): New function, based on old 27131 build_function_call. 27132 (convert_arguments): Remove nargs and argarray parameters. Change 27133 values to a VEC. Add origtypes parameter. 27134 (build_modify_expr): Add rhs_origtype parameter. Change all callers. 27135 (convert_for_assignment): Add origtype parameter. Change all 27136 callers. If warn_cxx_compat, check for conversion to an enum 27137 type when calling a function. 27138 (store_init_value): Add origtype parameter. Change all callers. 27139 (digest_init): Likewise. 27140 (struct init_node): Add origtype field. 27141 (add_pending_init): Add origtype parameter. Change all callers. 27142 (output_init_element): Likewise. 27143 (output_pending_init_elements): Pass origtype from init_node to 27144 output_init_element. 27145 (process_init_element): Pass origtype from c_expr to 27146 output_init_element. 27147 (c_finish_return): Add origtype parameter. Change all callers. 27148 * c-common.c (sync_resolve_size): Change params to VEC *. Change 27149 caller. 27150 (sync_resolve_params): Likewise. 27151 (sync_resolve_return): Change params to first_param. Change caller. 27152 (resolve_overloaded_builtins): Change params to VEC *. Change 27153 callers. Save first parameter around call to build_function_call_vec. 27154 * c-decl.c (finish_decl): Add origtype parameter. Change all 27155 callers. Call build_function_call_vec rather than 27156 build_function_call for cleanup. 27157 * c-tree.h: Update declarations. 27158 * c-common.h: Update declarations. 27159 * stub-objc.c (objc_rewrite_function_call): Change parameter from 27160 params to first_param. 27161 * target.h (struct gcc_target): Change resolve_overloaded_builtin 27162 params parameter from tree to void *. 27163 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 27164 Change arglist parameter to have type void *, and to be a pointer 27165 to a VEC. 27166 * config/rs6000/rs6000-protos.h 27167 (altivec_resolve_overloaded_builtin): Update declaration. 27168 * config/spu/spu-c.c (spu_resolved_overloaded_builtin): Change 27169 fnargs parameter to have type void *, and to be a pointer to a 27170 VEC. Call build_function_call_vec instead of 27171 build_function_call. 27172 * config/spu/spu-protos.h (spu_expand_builtin): Update declaration. 27173 271742009-04-20 Joey Ye <joey.ye@intel.com> 27175 Xuepeng Guo <xuepeng.guo@intel.com> 27176 H.J. Lu <hongjiu.lu@intel.com> 27177 27178 * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count. 27179 27180 * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro. 27181 (IX86_LEA_PRIORITY): Likewise. 27182 (distance_non_agu_define): New function. 27183 (distance_agu_use): Likewise. 27184 (ix86_lea_for_add_ok): Likewise. 27185 (ix86_dep_by_shift_count): Likewise. 27186 27187 * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we 27188 should split for LEA. 27189 27190 * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new 27191 function. 27192 (ix86_dep_by_shift_count): Likewise. 27193 271942009-04-20 Richard Guenther <rguenther@suse.de> 27195 27196 * expr.c (handled_component_p): Move ... 27197 * tree.h (handled_component_p): ... here. 27198 * tree.def: Re-order BIT_FIELD_REF, COMPONENT_REF, 27199 ARRAY_REF, ARRAY_RANGE_REF, VIEW_CONVERT_EXPR, IMAGPART_EXPR 27200 and REALPART_EXPR to be in one group. 27201 272022009-04-20 Richard Guenther <rguenther@suse.de> 27203 27204 * basic-block.h (get_all_dominated_blocks): Declare. 27205 * dominance.c (get_all_dominated_blocks): New function. 27206 * tree-cfg.c (get_all_dominated_blocks): Remove. 27207 (remove_edge_and_dominated_blocks): Adjust. 27208 * tree-ssa-phiprop.c (tree_ssa_phiprop_1): Fold in ... 27209 (tree_ssa_phiprop): ... here. Use get_all_dominated_blocks 27210 instead of recursing. 27211 272122009-04-20 Doug Kwan <dougkwan@google.com> 27213 27214 * cgraph.h (cgraph_node_ptr): New type for vector functions. 27215 (struct cgraph_node_set_def): New type. 27216 (cgraph_node_set) New type. Also declare vector functions. 27217 (struct cgraph_node_set_element_def): New type. 27218 (cgraph_node_set_element): Ditto. 27219 (cgraph_node_set_iterator): New iterator type. 27220 (cgraph_node_set_new, cgraph_node_set_find, cgraph_node_set_add, 27221 cgraph_node_set_remove, dump_cgraph_node_set, 27222 debug_cgraph_node_set): New prototypes. 27223 (csi_end_p, csi_next, csi_node, csi_start, cgraph_node_in_set_p, 27224 cgraph_node_set_size): New inlines. 27225 * tree-pass.h (struct cgraph_node_set_def): New decl to avoid 27226 including cgraph.h. 27227 (struct ipa_opt_pass): Add struct cgraph_node_set_def 27228 argument to function 'write_summary'. 27229 * ipa.c: Include ggc.h. 27230 (hash_cgraph_node_set_element, 27231 eq_cgraph_node_set_element, cgraph_node_set_new, 27232 cgraph_node_set_add, cgraph_node_set_remove, 27233 cgraph_node_set_find, dump_cgraph_node_set, 27234 debug_cgraph_node_set): New functions. 27235 * Makefile.in (ipa.o): Add dependency on GGC_H. 27236 272372009-04-20 Ira Rosen <irar@il.ibm.com> 27238 27239 PR tree-optimization/39675 27240 * tree-vect-loop.c (vect_transform_loop): Remove currently redundant 27241 check of the return code of vect_schedule_slp. Check that 27242 stmt_vec_info still exists for the statement, before checking its 27243 vectorization type. 27244 272452009-04-20 Michael Matz <matz@suse.de> 27246 27247 * Makefile.in (generated_files): Take out $(simple_generated_c). 27248 272492009-04-19 Dave Korn <dave.korn.cygwin@gmail.com> 27250 27251 * config/i386/cygwin-stdint.h (INTPTR_TYPE): Remove "long". 27252 (UINTPTR_TYPE): Likewise. 27253 272542009-04-19 Joseph Myers <joseph@codesourcery.com> 27255 27256 PR c/37481 27257 * c-typeck.c (digest_init): Check for initializing an array with a 27258 string literal. 27259 272602009-04-19 Joseph Myers <joseph@codesourcery.com> 27261 27262 PR c/19771 27263 * c-semantics.c (pop_stmt_list): Propagate 27264 STATEMENT_LIST_HAS_LABEL to parent statement list. 27265 272662009-04-19 Adam Nemet <anemet@caviumnetworks.com> 27267 27268 * config/mips/mips.h (mips_tune_attr): New macro. 27269 * config/mips/mips.md (cpu): Use it. 27270 272712009-04-19 Joseph Myers <joseph@codesourcery.com> 27272 27273 PR c/38243 27274 * c-decl.c (shadow_tag_warned): Diagnose use of restrict when 27275 declaring a tag. 27276 272772009-04-19 Diego Novillo <dnovillo@google.com> 27278 27279 * toplev.c (compile_file): Move call to coverage_finish ... 27280 * cgraphunit.c (ipa_passes): ... here. 27281 Call cgraph_process_new_functions. 27282 * ipa-utils.c (get_base_var): Handle CONSTRUCTOR. 27283 * Makefile.in (cgraphunit.o): Add dependency on COVERAGE_H. 27284 272852009-04-19 Jan Hubicka <jh@suse.cz> 27286 27287 * cgraph.c (cgraph_create_edge, cgraph_set_call_stmt): Set proper 27288 cfun. 27289 (dump_cgraph_node): Dump can throw external flag. 27290 * ipa-pure-const.c (propagate): Fix propagation of nothrow flags. 27291 272922009-04-19 Manuel López-Ibáñez <manu@gcc.gnu.org> 27293 27294 PR c/32061 27295 PR c++/36954 27296 * doc/invoke.texi: Add -Wlogical-op to -Wextra. 27297 * common.opt (Wlogical-op): Move from here... 27298 * c.opt (Wlogical-op): ... to here. 27299 * c-typeck.c (parser_build_binary_op): Update call to 27300 warn_logical_operator. 27301 * c-opts.c (c_common_post_options): Enable warn_logical_op with 27302 extra_warnings. 27303 * c-common.c (warn_logical_op): Update. 27304 * c-common.h (warn_logical_op): Update declaration. 27305 273062009-04-19 Eric Botcazou <ebotcazou@adacore.com> 27307 27308 * tree.c (protected_set_expr_location): Fix formatting. 27309 273102009-04-18 Joseph Myers <joseph@codesourcery.com> 27311 27312 PR c/27676 27313 * c-typeck.c (readonly_warning): new. 27314 (build_unary_op, build_modify_expr): Use readonly_warning for 27315 storing into something readonly but not const-qualified. 27316 273172009-04-18 Joseph Myers <joseph@codesourcery.com> 27318 27319 PR c/22367 27320 * c-typeck.c (build_unary_op): Check for taking address of 27321 expression of type void. 27322 273232009-04-18 Joseph Myers <joseph@codesourcery.com> 27324 27325 PR c/35210 27326 * c-typeck.c (build_function_call): Check for calling a function 27327 with qualified void return types. Call require_complete_type when 27328 generating a trap. 27329 273302009-04-18 Jan Hubicka <jh@suse.cz> 27331 27332 * cgraph.c (cgraph_make_edge, dump_cgraph_node, cgraph_set_call_stmt): 27333 Set nothrow flag. 27334 * cgraph.h (struct function): Reduce loop_nest to 30 bits; add 27335 can_throw_external flag. 27336 * ipa-reference.c (ipa_utils_reduced_inorder): Update call. 27337 * ipa-pure-const.c (ignore_edge): New function. 27338 (propagate): Compute order for NOTHROW computation; set NOTHROWs 27339 only over can_throw_external edges. 27340 (local_pure_const): Add nothrow flag. 27341 * ipa-utils.c (searchc): Add ignore_edge callback. 27342 (ipa_utils_reduced_inorder): Add ignore_edge callback. 27343 * ipa-utils.h (ipa_utils_reduced_inorder): Update prototype. 27344 (set_nothrow_function_flags): Update cgraph. 27345 * tree-cfg.c (verify_stmt): Relax nothrow checking when in IPA mode. 27346 273472009-04-18 Richard Guenther <rguenther@suse.de> 27348 27349 PR middle-end/39804 27350 * tree-ssa-ccp.c (fold_stmt_1): New function factored from ... 27351 (fold_stmt): ... this and ... 27352 (fold_stmt_inplace): ... this. 27353 (fold_stmt_1): Fold references in calls and asms. 27354 * tree-cfg.c (remove_useless_stmts_cond): Use fold_stmt. 27355 273562009-04-18 Kazu Hirata <kazu@codesourcery.com> 27357 27358 * tree-vrp.c (ssa_name_nonzero_p): Remove. 27359 * tree.h: Remove the prototype for ssa_name_nonzero_p. 27360 273612009-04-18 Kazu Hirata <kazu@codesourcery.com> 27362 27363 * tree.c (function_args_count): Remove. 27364 * tree.h: Remove the prototype for function_args_count. 27365 273662009-04-18 Kazu Hirata <kazu@codesourcery.com> 27367 27368 * tree-iterator.c (expr_only): Remove. 27369 * tree.h: Remove the prototype for expr_only. 27370 273712009-04-18 Kazu Hirata <kazu@codesourcery.com> 27372 27373 * reginfo.c (cannot_change_mode_set_regs): Remove. 27374 * rtl.h: Remove the prototype for cannot_change_mode_set_regs. 27375 273762009-04-08 Anatoly Sokolov <aesok@post.ru> 27377 27378 * config/avr/avr.md (*rotlsi3_8, *rotlsi3_16, *rotlsi3_24 ): Check 27379 whether operands 0 and 1 overlaps. 27380 273812009-04-18 Manuel López-Ibáñez <manu@gcc.gnu.org> 27382 27383 PR middle-end/36902 27384 * tree-vrp.c (check_array_ref): Pass a location_t instead of a 27385 pointer. Use warning_at instead of warning. 27386 (search_for_addr_array): Likewise. 27387 (check_array_bounds): Likewise. 27388 (check_all_array_refs): Check that the incoming edge is not in the 27389 list of edges to be removed. 27390 (check_all_array_refs): Avoid the temporal pointer. 27391 (vrp_visit_cond_stmt): Fix typo. 27392 (simplify_switch_using_ranges): Handle the case where the switch 27393 index is an integer constant. 27394 273952009-04-18 Adam Nemet <anemet@caviumnetworks.com> 27396 27397 * config/mips/mips.c (mips_final_postscan_insn): Make it static. 27398 273992009-04-18 Kazu Hirata <kazu@codesourcery.com> 27400 27401 * doc/extend.texi, doc/invoke.texi: Fix typos. 27402 274032009-04-17 Cary Coutant <ccoutant@google.com> 27404 27405 * tree-flow-inline.h (get_lineno): Fix inverted test. 27406 274072009-04-17 Diego Novillo <dnovillo@google.com> 27408 27409 * tree-ssa-pre.c (create_expression_by_pieces): Remove 27410 assertion for AVAIL_OUT. 27411 274122009-04-17 Mike Frysinger <vapier@gentoo.org> 27413 27414 PR target/38627 27415 * config/sh/lib1funcs.asm [__ELF__ && __linux__]: Add .note.GNU-stack. 27416 * config/sh/linux-atomic.asm: Likewise. 27417 274182009-04-17 Diego Novillo <dnovillo@google.com> 27419 27420 * except.c (debug_eh_tree): New. 27421 (struct eh_region, struct eh_status): Move ... 27422 * except.h: ... here. 27423 (add_type_for_runtime): Declare extern. 27424 (lookup_type_for_runtime): Likewise. 27425 (debug_eh_tree): Declare. 27426 * Makefile.in (GTFILES): List except.h before except.c 27427 274282009-04-17 Diego Novillo <dnovillo@google.com> 27429 27430 * omp-low.c (create_omp_child_function): Set DECL_CONTEXT for DECL. 27431 * cgraphunit.c (cgraph_build_static_cdtor): Likewise. 27432 * tree-dfa.c (find_referenced_vars_in): Factor out of ... 27433 (find_vars_r): ... here. 27434 * tree-flow.h (find_referenced_vars_in): Declare. 27435 * tree-ssa-pre.c (create_expression_by_pieces): Assert 27436 that AVAIL_OUT exists for BLOCK. 27437 * Makefile.in (CGRAPH_H): Add dependency on cif-code.def 27438 (tree-loop-distribution.o): Fix dependency on TREE_VECTORIZER_H. 27439 (tree-parloops.o): Likewise. 27440 274412009-04-17 Simon Baldwin <simonb@google.com> 27442 27443 * toplev.c (default_tree_printer): Add handling for %E format. 27444 274452009-04-17 Diego Novillo <dnovillo@google.com> 27446 27447 * tree-pretty-print.c (dump_generic_node): Add break after 27448 TREE_BINFO handler. Handle COMPLEX_TYPE, REAL_TYPE and 27449 FIXED_POINT_TYPE. Handle NULL TREE_TYPEs. Handle METHOD_TYPE and 27450 FUNCTION_TYPE together. Call print_struct_decl when printing 27451 structures and TDF_SLIM is not given. 27452 (print_struct_decl): Fix logic for detecting recursion. 27453 274542009-04-17 Rafael Avila de Espindola <espindola@google.com> 27455 27456 PR 31567 27457 * gcc.c (create_at_file): New. 27458 (compile_input_file_p): New. 27459 (do_spec_1): Use @args files for %i. Use create_at_file for %o. 27460 * main.c (main): Update call to toplev_main. 27461 * toplev.c (toplev_main): Change signature. Call expandargv. 27462 * toplev.h (toplev_main): Change signature. 27463 274642009-04-17 Eric Botcazou <ebotcazou@adacore.com> 27465 27466 * dwarf2out.c (field_byte_offset): Use the type size as the field size 27467 if the latter is not constant. 27468 274692009-04-17 David Edelsohn <edelsohn@gnu.org> 27470 27471 * dbxout.c (xcoff_debug_hooks): Add set_name_debug_nothing. 27472 274732009-04-17 Eric Botcazou <ebotcazou@adacore.com> 27474 27475 * dbxout.c (dbxout_block): Reinstate test on TREE_USED. 27476 * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit. 27477 274782009-04-17 Richard Guenther <rguenther@suse.de> 27479 27480 * tree-ssa-structalias.c (get_constraint_for_component_ref): 27481 Handle component references view-converting an invariant address. 27482 274832009-04-17 Adam Nemet <anemet@caviumnetworks.com> 27484 27485 * doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS, 27486 TARGET_MIN_ANCHOR_OFFSET, TARGET_MAX_ANCHOR_OFFSET, 27487 TARGET_HAVE_SRODATA_SECTION, TARGET_HAVE_TLS, 27488 TARGET_UNWIND_TABLES_DEFAULT, TARGET_TERMINATE_DW2_EH_FRAME_INFO): 27489 Use @deftypevr rather than @deftypevar. 27490 274912009-04-17 Richard Guenther <rguenther@suse.de> 27492 27493 * tree-ssa-forwprop.c (get_prop_dest_stmt): Clean up tuplification. 27494 (get_prop_source_stmt): Likewise. 27495 (can_propagate_from): Likewise. 27496 274972009-04-17 Andrew Stubbs <ams@codesourcery.com> 27498 27499 * configure.ac: Add new AC_SUBST for TM_ENDIAN_CONFIG, 27500 TM_MULTILIB_CONFIG and TM_MULTILIB_EXCEPTIONS_CONFIG. 27501 (--with-multilib-list): Add default value. 27502 * configure: Regenerate. 27503 * Makefile.in (TM_ENDIAN_CONFIG): Define. 27504 (TM_MULTILIB_CONFIG, TM_MULTILIB_EXCEPTIONS_CONFIG): Define. 27505 * config.gcc (sh-*-*): Switch to using TM_ENDIAN_CONFIG, 27506 TM_MULTILIB_CONFIG, and TM_MULTILIB_EXCEPTIONS_CONFIG. 27507 Don't add default cpu to multilib list unnecessarily, but do enable 27508 the relevant compiler option.. 27509 Add support for --with-multilib-list=<blank> and 27510 --with-multilib-list=!<somelib> to supress unwanted multilibs. 27511 * config/sh/t-sh (DEFAULT_ENDIAN, OTHER_ENDIAN): New variables. 27512 (MULTILIB_ENDIAN, MULTILIB_CPUS): Delete variables. 27513 (MULTILIB_OPTIONS): Redefine using OTHER_ENDIAN and 27514 TM_MULTILIB_CONFIG. 27515 (MULTILIB_EXCEPTIONS): Add TM_MULTILIB_EXCEPTIONS_CONFIG. 27516 (MULTILIB_OSDIRNAMES): New variable. 27517 * config/sh/t-1e: Delete file. 27518 * config/sh/t-mlib-sh1: Delete file. 27519 * config/sh/t-mlib-sh2: Delete file. 27520 * config/sh/t-mlib-sh2a: Delete file. 27521 * config/sh/t-mlib-sh2a-nofpu: Delete file. 27522 * config/sh/t-mlib-sh2a-single: Delete file. 27523 * config/sh/t-mlib-sh2a-single-only: Delete file. 27524 * config/sh/t-mlib-sh2e: Delete file. 27525 * config/sh/t-mlib-sh3e: Delete file. 27526 * config/sh/t-mlib-sh4: Delete file. 27527 * config/sh/t-mlib-sh4-nofpu: Delete file. 27528 * config/sh/t-mlib-sh4-single: Delete file. 27529 * config/sh/t-mlib-sh4-single-only: Delete file. 27530 * config/sh/t-mlib-sh4a: Delete file. 27531 * config/sh/t-mlib-sh4a-nofpu: Delete file. 27532 * config/sh/t-mlib-sh4a-single: Delete file. 27533 * config/sh/t-mlib-sh4a-single-only: Delete file. 27534 * config/sh/t-mlib-sh4al: Delete file. 27535 * config/sh/t-mlib-sh5-32media: Delete file. 27536 * config/sh/t-mlib-sh5-32media-nofpu: Delete file. 27537 * config/sh/t-mlib-sh5-64media: Delete file. 27538 * config/sh/t-mlib-sh5-64media-nofpu: Delete file. 27539 * config/sh/t-mlib-sh5-compact: Delete file. 27540 * config/sh/t-mlib-sh5-compact-nofpu: Delete file. 27541 * config/sh/t-linux: Don't override MULTILIB_EXCEPTIONS. 27542 * doc/install.texi (Options specification): Add 27543 --with-multilib-list and --with-endian. 27544 275452009-04-17 Rafael Avila de Espindola <espindola@google.com> 27546 27547 * Makefile.in (REVISION_s): Always include quotes. Change ifdef to use 27548 REVISION_c. 27549 (OBJS-common): Add plugin-version.o. 27550 (plugin-version.o): New. 27551 * gcc-plugin.h (plugin_gcc_version): New. 27552 (plugin_default_version_check): New. 27553 (plugin_init_func, plugin_init): Add version argument. 27554 * plugin-version.c: New. 27555 * plugin.c (str_plugin_gcc_version_name): New. 27556 (try_init_one_plugin): Read plugin_gcc_version from the plugin and 27557 pass it to the init function. 27558 (plugin_default_version_check): New. 27559 275602009-04-17 Richard Guenther <rguenther@suse.de> 27561 27562 * tree-ssa-alias.c (refs_may_alias_p_1): Do not use TBAA 27563 for decl-vs-decl disambiguation. 27564 275652009-04-17 Andreas Krebbel <krebbel1@de.ibm.com> 27566 27567 * config/s390/s390.h (s390_tune_attr): New macro definition. 27568 * config/s390/s390.md (cpu attribute): Map to s390_tune_attr. 27569 275702009-04-17 Richard Guenther <rguenther@suse.de> 27571 27572 * tree-ssa-ccp.c (struct fold_stmt_r_data): Remove. 27573 (fold_stmt_r): Likewise. 27574 (maybe_fold_reference): New function. 27575 (fold_gimple_assign): Handle cases fold_stmt_r did. 27576 (fold_stmt): Do not use fold_stmt_r. 27577 (fold_stmt_inplace): Likewise. 27578 275792009-04-17 Richard Guenther <rguenther@suse.de> 27580 27581 * tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p): Remove. 27582 (record_equivalences_from_stmt): Remove useless checks and 27583 simplifications. 27584 * tree-ssa-pre.c (eliminate): Avoid converting a constant if 27585 the type is already suitable. 27586 275872009-04-17 Paolo Bonzini <bonzini@gnu.org> 27588 27589 * config/sh/sh.h (FUNCTION_VALUE): Fix call to sh_promote_prototypes. 27590 275912009-04-17 Uros Bizjak <ubizjak@gmail.com> 27592 27593 * config/arm/sfp-machine.h (__gcc_CMPtype): New typedef. 27594 (CMPtype): Define as __gcc_CMPtype. 27595 275962009-04-17 Aurelien Jarno <aurelien@aurel32.net> 27597 27598 * config.gcc: Add soft-fp/t-softfp and i386/t-linux to tmake_file 27599 for i[34567]86-*-kfreebsd*-gnu*, x86_64-*-kfreebsd*-gnu*. 27600 276012009-04-17 Richard Guenther <rguenther@suse.de> 27602 27603 PR tree-optimization/39746 27604 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Remove 27605 special-casing for builtins and static variable use/def. 27606 (call_may_clobber_ref_p_1): Likewise. 27607 276082009-04-16 Ian Lance Taylor <iant@google.com> 27609 27610 * df.h: Include "timevar.h". 27611 (struct df_problem): Change tv_id field to timevar_id_t. 27612 * tree-pass.h: Include "timevar.h". 27613 (struct opt_pass): Change tv_id field to timevar_id_t. 27614 * timevar.h (timevar_id_t): Define TV_NONE. 27615 * passes.c (execute_one_ipa_transform_pass): Check for tv_id != 27616 TV_NONE rather than tv_id != 0. 27617 (execute_one_pass): Likewise. 27618 * Makefile.in (DF_H): Add $(TIMEVAR_H). 27619 (TREE_PASS_H): Define. Change all instances of tree-pass.h in 27620 dependencies to $(TREE_PASS_H). 27621 * bt-load.c (pass_branch_target_load_optimize1): Set tv_id field 27622 to TV_NONE. 27623 (pass_branch_target_load_optimize2): Likewise. 27624 * cfglayout.c (pass_into_cfg_layout_mode): Likewise. 27625 (pass_outof_cfg_layout_mode): Likewise. 27626 * cgraphbuild.c (pass_remove_cgraph_callee_edges): Likewise. 27627 (pass_rebuild_cgraph_edges): Likewise. 27628 (pass_remove_cgraph_callee_edges): Likewise. 27629 * df-core.c (pass_df_initialize_opt): Likewise. 27630 (pass_df_initialize_no_opt): Likewise. 27631 (pass_df_finish): Likewise. 27632 * emit-rtl.c (pass_unshare_all_rtl): Likewise. 27633 * except.c (pass_set_nothrow_function_flags): Likewise. 27634 (pass_convert_to_eh_region_ranges): Likewise. 27635 * final.c (pass_compute_alignments): Likewise. 27636 * function.c (pass_instantiate_virtual_regs): Likewise. 27637 (pass_init_function): Likewise. 27638 (pass_leaf_regs): Likewise. 27639 (pass_match_asm_constraints): Likewise. 27640 * gimple-low.c (pass_lower_cf): Likewise. 27641 (pass_mark_used_blocks): Likewise. 27642 * init-regs.c (pass_initialize_regs): Likewise. 27643 * integrate.c (pass_initial_value_sets): Likewise. 27644 * ira.c (pass_ira): Likewise. 27645 * jump.c (pass_cleanup_barriers): Likewise. 27646 * omp-low.c (pass_expand_omp): Likewise. 27647 (pass_lower_omp): Likewise. 27648 * matrix-reorg.c (pass_ipa_matrix_reorg): Likewise. 27649 * recog.c (pass_split_all_insns): Likewise. 27650 (pass_split_after_reload): Likewise. 27651 (pass_split_before_regstack): Likewise. 27652 (pass_split_before_sched2): Likewise. 27653 (pass_split_for_shorten_branches): Likewise. 27654 * reginfo.c (pass_reginfo_init): Likewise. 27655 (pass_subregs_of_mode_init): Likewise. 27656 (pass_subregs_of_mode_finish): Likewise. 27657 * passes.c (pass_postreload): Likewise. 27658 * stack-ptr-mod.c (pass_stack_ptr_mod): Likewise. 27659 * tree-cfg.c (pass_remove_useless_stmts): Likewise. 27660 (pass_warn_function_return): Likewise. 27661 (pass_warn_function_noreturn): Likewise. 27662 * tree-complex.c (pass_lower_complex): Likewise. 27663 (pass_lower_complex_O0): Likewise. 27664 * tree-if-conv.c (pass_if_conversion): Likewise. 27665 * tree-into-ssa.c (pass_build_ssa): Likewise. 27666 * tree-mudflap.c (pass_mudflap_1): Likewise. 27667 (pass_mudflap_2): Likewise. 27668 * tree-nomudflap.c (pass_mudflap_1): Likewise. 27669 (pass_mudflap_2): Likewise. 27670 * tree-nrv.c (pass_return_slot): Likewise. 27671 * tree-object-size.c (pass_object_sizes): Likewise. 27672 * tree-optimize.c (pass_all_optimizations): Likewise. 27673 (pass_early_local_passes): Likewise. 27674 (pass_all_early_optimizations): Likewise. 27675 (pass_cleanup_cfg): Likewise. 27676 (pass_cleanup_cfg_post_optimizing): Likewise. 27677 (pass_free_datastructures): Likewise. 27678 (pass_free_cfg_annotations): Likewise. 27679 (pass_fixup_cfg): Likewise. 27680 (pass_init_datastructures): Likewise. 27681 * tree-ssa.c (pass_early_warn_uninitialized): Likewise. 27682 (pass_late_warn_uninitialized): Likewise. 27683 (pass_update_address_taken): Likewise. 27684 * tree-ssa-ccp.c (pass_fold_builtins): Likewise. 27685 * tree-ssa-math-opts.c (pass_cse_reciprocals): Likewise. 27686 (pass_cse_sincos): Likewise. 27687 (pass_convert_to_rsqrt): Likewise. 27688 * tree-ssa-structalias.c (pass_build_alias): Likewise. 27689 * tree-stdarg.c (pass_stdarg): Likewise. 27690 * tree-tailcall.c (pass_tail_recursion): Likewise. 27691 (pass_tail_calls): Likewise. 27692 * tree-vect-generic.c (pass_lower_vector): Likewise. 27693 (pass_lower_vector_ssa): Likewise. 27694 * tree-vectorizer.c (pass_ipa_increase_alignment): Likewise. 27695 276962009-04-16 Joseph Myers <joseph@codesourcery.com> 27697 27698 * config/mips/mips.c (mips_rtx_cost_data): Use SOFT_FP_COSTS in 27699 XLR entry. 27700 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC, MIPS_ARCH_FLOAT_SPEC): 27701 Handle -march=xlr. 27702 * config/mips/xlr.md (ir_xlr_alu): Also accept insn types move, 27703 logical and signext. 27704 277052009-04-16 Kaz Kojima <kkojima@gcc.gnu.org> 27706 27707 PR target/39767 27708 * config/sh/predicates.md (arith_operand): Check if the operand 27709 of TRUNCATE is a REG. 27710 277112009-04-16 Kazu Hirata <kazu@codesourcery.com> 27712 27713 * cfgrtl.c (delete_insn_chain_and_edges): Remove. 27714 * rtl.h: Remove the prototype for delete_insn_chain_and_edges. 27715 277162009-04-16 Kazu Hirata <kazu@codesourcery.com> 27717 27718 * tree-iterator.c (tsi_split_statement_list_after, 27719 tsi_split_statement_list_before): Remove. 27720 * tree-iterator.h: Remove the prototypes for 27721 tsi_split_statement_list_after and tsi_split_statement_list_before. 27722 277232009-04-16 Kazu Hirata <kazu@codesourcery.com> 27724 27725 * tree-ssa-propagate.c (stmt_makes_single_load): Remove. 27726 * tree-ssa-propagate.h: Remove the prototype for 27727 stmt_makes_single_load. 27728 277292009-04-16 Kazu Hirata <kazu@codesourcery.com> 27730 27731 * emit-rtl.c (set_mem_attrs_from_reg): Remove. 27732 * rtl.h: Remove the prototype for set_mem_attrs_from_reg. 27733 277342009-04-16 Kazu Hirata <kazu@codesourcery.com> 27735 27736 * tree-iterator.c (EXPR_LAST_BODY): Remove. 27737 277382009-04-16 Kazu Hirata <kazu@codesourcery.com> 27739 27740 * except.c (eh_region_outer_p): Remove. 27741 * except.h: Remove the prototype for eh_region_outer_p. 27742 277432009-04-16 Kazu Hirata <kazu@codesourcery.com> 27744 27745 * function.c (current_function_assembler_name): Remove. 27746 * function.h: Remove the prototype for 27747 current_function_assembler_name. 27748 277492009-04-16 Ian Lance Taylor <iant@google.com> 27750 27751 * rtlanal.c (alloc_reg_note): New function, broken out of add_reg_note. 27752 (add_reg_note): Call alloc_reg_note. 27753 * rtl.h (alloc_reg_note): Declare. 27754 * combine.c (try_combine): Use alloc_reg_note. 27755 (recog_for_combine, move_deaths): Likewise. 27756 (distribute_notes): Use alloc_reg_note and add_reg_note. 27757 * haifa-sched.c (sched_create_recovery_edges): Use add_reg_note. 27758 * combine-stack-adj.c (adjust_frame_related_expr): Likewise. 27759 * reload1.c (eliminate_regs_1): Use alloc_reg_note. 27760 277612009-04-16 Vladimir Makarov <vmakarov@redhat.com> 27762 27763 PR rtl-optimization/39762 27764 * ira-int.h (ira_register_move_cost, ira_may_move_in_cost, 27765 ira_may_move_out_cost): Add comments about way of their usage. 27766 (ira_get_register_move_cost, ira_get_may_move_cost): New functions. 27767 27768 * ira-conflicts.c (process_regs_for_copy): Use function 27769 ira_get_register_move_cost instead of global 27770 ira_register_move_cost. 27771 27772 * ira-color.c (update_copy_costs, calculate_allocno_spill_cost, 27773 color_pass, move_spill_restore, update_curr_costs): Ditto. 27774 27775 * ira-lives.c (process_single_reg_class_operands): Ditto. 27776 27777 * ira-emit.c (emit_move_list): Ditto. 27778 27779 * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost. 27780 (record_reg_classes): Ditto. Use functions 27781 ira_get_register_move_cost and ira_get_may_move_cost instead of 27782 global vars ira_register_move_cost, ira_may_move_out_cost and 27783 ira_may_move_in_cost. 27784 (record_address_regs): Don't call ira_init_register_move_cost. 27785 Use function ira_get_may_move_cost instead of global 27786 ira_may_move_in_cost. 27787 (process_bb_node_for_hard_reg_moves): Use function 27788 ira_get_register_move_cost instead of global ira_register_move_cost. 27789 (ira_costs): Don't call ira_init_register_move_cost. 27790 277912009-04-16 Richard Guenther <rguenther@suse.de> 27792 27793 * tree-cfg.c (verify_gimple_assign_binary): 27794 Allow POINTER_PLUS_EXPR-like PLUS_EXPR for vectors. 27795 * ipa-struct-reorg.c (gen_size): Fold the built expressions. 27796 (create_general_new_stmt): Note that this function is broken. 27797 277982009-04-16 Rafael Avila de Espindola <espindola@google.com> 27799 27800 * common.opt (fhelp): Add Var(help_flag). 27801 * gcc-plugin.h (plugin_info): Add help. 27802 * plugin.c (plugin_name_args): Add help. 27803 (register_plugin_info): Set plugin->help. 27804 (print_help_one_plugin): New. 27805 (print_plugins_help): New. 27806 * plugin.h (print_plugins_help): New. 27807 * toplev.c (toplev_main): Call print_plugins_help if needed. 27808 278092009-04-16 Richard Guenther <rguenther@suse.de> 27810 27811 * gimple.c (gimple_copy): Do not clear addresses_taken bitmap. 27812 (gimple_ior_addresses_taken_1): New function. 27813 (gimple_ior_addresses_taken): Likewise. 27814 * gimple.h (struct gimple_statement_with_ops_base): Remove 27815 addresses_taken member. 27816 (gimple_ior_addresses_taken): Declare. 27817 (gimple_addresses_taken, gimple_addresses_taken_ptr, 27818 gimple_set_addresses_taken): Remove. 27819 * ipa-reference.c (mark_address): New function. 27820 (scan_stmt_for_static_refs): Use it for marking addresses taken. 27821 * tree-ssa-operands.c (add_to_addressable_set): Rename to ... 27822 (mark_address_taken): ... this. Just set TREE_ADDRESSABLE. 27823 (gimple_add_to_addresses_taken): Remove. 27824 (get_tmr_operands): Call mark_address_taken. 27825 (get_asm_expr_operands): Likewise. 27826 (get_expr_operands): Likewise. 27827 (build_ssa_operands): Do not clear the addresses_taken bitmap. 27828 (free_stmt_operands): Do not free it. 27829 * tree-ssa.c (delete_tree_ssa): Likewise. 27830 (execute_update_addresses_taken): Use gimple_ior_addresses_taken. 27831 278322009-04-16 Richard Guenther <rguenther@suse.de> 27833 27834 * gimple.h (walk_stmt_load_store_addr_ops): Declare. 27835 (walk_stmt_load_store_ops): Likewise. 27836 * gimple.c (get_base_loadstore): New function. 27837 (walk_stmt_load_store_addr_ops): Likewise. 27838 (walk_stmt_load_store_ops): Likewise. 27839 * ipa-pure-const.c (check_op): Simplify. 27840 (check_load, check_store): New functions. 27841 (check_stmt): Use walk_stmt_load_store_ops. 27842 * ipa-reference.c (mark_load): Adjust signature. 27843 (mark_store): Likewise. 27844 (scan_stmt_for_static_refs): Use walk_stmt_load_store_addr_ops. 27845 278462009-04-16 Rafael Avila de Espindola <espindola@google.com> 27847 27848 * gcc-plugin.h (plugin_event): Add PLUGIN_INFO. 27849 (plugin_info): New. 27850 * opts.c (common_handle_option): Don't call print_version. 27851 * plugin.c (plugin_name_args): Add version. 27852 (register_plugin_info): New. 27853 (register_callback): Handle PLUGIN_INFO. 27854 (try_init_one_plugin): New. 27855 (init_one_plugin): Use try_init_one_plugin. Only free plugin_name_args 27856 if failed to init. 27857 (finalize_one_plugin): New. 27858 (finalize_plugins): New. 27859 (print_one_plugin): New. 27860 (print_plugins_versions): New. 27861 * plugin.h (print_plugins_versions): New. 27862 (finalize_plugins): New. 27863 * toplev.c (compile_file): Don't call initialize_plugins. 27864 (print_version): Call print_plugins_versions. 27865 (toplev_main): Call initialize_plugins. Print version if needed. 27866 Call finalize_plugins. 27867 278682009-04-16 Rafael Avila de Espindola <espindola@google.com> 27869 27870 * common.opt (fversion): New. 27871 * gcc.c (print_version): New. 27872 (process_command): Don't print the version. Just set print_version. 27873 (main): Print version. Call subprocesses if print_version and 27874 verbose_flag are set. 27875 * opts.c (common_handle_option): Handle OPT_fversion. 27876 278772009-04-16 Richard Guenther <rguenther@suse.de> 27878 Ira Rosen <irar@il.ibm.com> 27879 27880 PR tree-optimization/39698 27881 * tree-vect-loop.c (get_initial_def_for_reduction): Use the 27882 type of the reduction variable. Only generate the def if 27883 it is needed. 27884 27885 * omp-low.c (expand_omp_for_generic): When converting to a pointer 27886 make sure to first convert to an integer of the same precision. 27887 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): Retain 27888 the type of the evolution correctly in computing the new 27889 induction variable base. 27890 278912009-04-16 Richard Guenther <rguenther@suse.de> 27892 27893 PR middle-end/39625 27894 * tree-cfg.c (make_blocks): Split statements with to-be 27895 abnormal SSA names on the lhs. 27896 278972009-04-16 Paolo Bonzini <bonzini@gnu.org> 27898 27899 * c-common.c (vector_targets_convertible_p, vector_types_convertible_p): 27900 Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p. 27901 * c-typeck.c (really_start_incremental_init): Likewise. 27902 * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove. 27903 (TARGET_INITIALIZER): Remove it. 27904 * target.h (struct target): Remove vector_opaque_p. 27905 * tree.c (build_opaque_vector_type): New. 27906 * tree.h (TYPE_VECTOR_OPAQUE): New. 27907 (build_opaque_vector_type): Declare. 27908 * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove. 27909 * config/rs6000/rs6000.c (build_opaque_vector_type, 27910 rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove. 27911 (rs6000_init_builtins): Use build_opaque_vector_type for 27912 opaque_V4SI_type_node. 27913 279142009-04-15 Catherine Moore <clm@codesourcery.com> 27915 27916 * debug.h (set_name): Declare. 27917 * dwarf2out.c (dwarf2out_set_name): Declare. 27918 (dwarf2_debug_hooks): Add set_name. 27919 (find_AT_string): New. 27920 (add_AT_string): Call find_AT_string. 27921 (dwarf2out_set_name): New. 27922 * cp/decl.c (grokdeclarator): Call set_name. 27923 * vmsdbgout.c (vmsdbg_debug_hooks): Add set_name_debug_nothing. 27924 * debug.c (do_nothing_debug_hooks): Likewise. 27925 * dbxout.c (dbx_debug_hooks): Likewise. 27926 * sdbout.c (sdb_debug_hooks): Likewise. 27927 279282009-04-15 Michael Eager <eager@eagercon.com> 27929 27930 * config/rs6000/rs6000.c (rs6000_function_value): Set function return 27931 reg for single-precision FPU. 27932 * config/rs6000/rs6000.md (movsi_internal1): Only for 27933 !TARGET_SINGLE_FPU. 27934 (movsi_internal1_single): New. Add pattern to move SI values to/from 27935 single-precision FP regs. 27936 279372009-04-15 Richard Guenther <rguenther@suse.de> 27938 27939 * omp-low.c (lower_rec_input_clauses): Build correct address 27940 expressions. 27941 (expand_omp_for_generic): Fix multiplication type. 27942 * tree-loop-distribution.c (build_size_arg): Build a size_t argument. 27943 (generate_memset_zero): Fix types. 27944 * tree-profile.c (prepare_instrumented_value): Correctly 27945 widen a pointer. 27946 279472009-04-15 Ian Lance Taylor <iant@google.com> 27948 27949 * c.opt (Wenum-compare): Enable for C and Objc. Initialize to -1. 27950 * c-opts.c (c_common_handle_option): For C, set warn_enum_compare 27951 for -Wall and for -Wc++-compat. 27952 (c_common_post_options): For C++, set warn_enum_compare if not 27953 already set. 27954 * c-tree.h (struct c_expr): Add field original_type. 27955 (build_external_ref): Update declaration. 27956 * c-parser.c (c_parser_braced_init): Set original_type. 27957 (c_parser_initelt): Likewise. 27958 (c_parser_expr_no_commas): Likewise. 27959 (c_parser_conditional_expression): Likewise. 27960 (c_parser_cast_expression): Likewise. 27961 (c_parser_unary_expression): Likewise. Pull setting of 27962 original_code to top of function. 27963 (c_parser_sizeof_expression): Set original_type. 27964 (c_parser_alignof_expression): Likewise. 27965 (c_parser_postfix_expression): Likewise. Pull setting of 27966 original_code to top of function. 27967 (c_parser_postfix_expression_after_paren_type): Set original_type. 27968 (c_parser_postfix_expression_after_primary): Likewise. 27969 (c_parser_expression): Likewise. 27970 * c-typeck.c (build_external_ref): Add type parameter. Change all 27971 callers. 27972 (c_expr_sizeof_expr): Set original_type field. 27973 (parser_build_unary_op): Likewise. 27974 (parser_build_binary_op): Likewise. Optionally warn about 27975 comparisons of enums of different types. 27976 (digest_init): Set original_type field. 27977 (really_start_incremental_init): Likewise. 27978 (push_init_level, pop_init_level): Likewise. 27979 * doc/invoke.texi (Warning Options): -Wenum-compare now 27980 supported in C. 27981 279822009-04-15 Richard Guenther <rguenther@suse.de> 27983 27984 * tree-ssa-pre.c (eliminate): When replacing a PHI node carry 27985 out a necessary conversion. 27986 * tree-ssa-sccvn.c (run_scc_vn): Also assign value-ids to 27987 names we didn't value number. 27988 * tree-mudflap.c (mf_build_check_statement_for): Use correct types. 27989 279902009-04-15 Richard Guenther <rguenther@suse.de> 27991 27992 PR tree-optimization/39764 27993 * tree-ssa-ccp.c (get_value): Canonicalize value with 27994 canonicalize_float_value. 27995 279962009-04-15 Jan Hubicka <jh@suse.cz> 27997 27998 * builtins.def (va_start, va_end, va_copy): Fix my previous commit. 27999 Wrong version of patch. 28000 280012009-04-15 Jan Hubicka <jh@suse.cz> 28002 28003 * builtins.def (va_start, va_end, va_copy): Mark nothrow. 28004 280052009-04-15 Nathan Sidwell <nathan@codesourcery.com> 28006 28007 * config/rs6000/rs6000.c (rs6000_init_builtins): Set TYPE_NAME of 28008 our distinct integral and vector types. 28009 280102009-04-15 Rafael Avila de Espindola <espindola@google.com> 28011 28012 * class.c (build_vtbl_ref_1): Remove call to assemble_external. 28013 * init.c (build_vtbl_address): Remove call to assemble_external. 28014 280152009-04-14 Daniel Jacobowitz <dan@codesourcery.com> 28016 28017 * config/rs6000/rs6000.c (rs6000_dwarf_register_span): Fix debug 28018 output for other floating point modes. 28019 280202009-04-14 Diego Novillo <dnovillo@google.com> 28021 28022 * diagnostic.c (diagnostic_report_diagnostic): Do not 28023 warn about loaded plugins for DK_ERROR and DK_WARNING. 28024 * c-decl.c (declspecs_add_type): Move call to 28025 invoke_plugin_callbacks ... 28026 * c-parser.c (c_parser_declspecs): ... here. 28027 * plugin.c (dump_active_plugins): Tidy output. 28028 280292009-04-14 Diego Novillo <dnovillo@google.com> 28030 Le-Chun Wu <lcwu@google.com> 28031 28032 * configure.ac: Add --enable-plugin support. 28033 Define ENABLE_PLUGIN and PLUGINLIBS when specified. 28034 * Makefile.in (PLUGIN_H): Define. 28035 Export ENABLE_PLUGIN and GMPINC to site.exp. 28036 Add PLUGINLIBS to link command. 28037 Add/modify dependencies for plugin.o and files including plugin.h. 28038 (plugin.o): New. 28039 * config.in: Regenerate. 28040 28041 * opts.c (common_handle_option): Handle OPT_fplugin_ and 28042 OPT_fplugin_arg_. 28043 280442009-04-14 Le-Chun Wu <lcwu@google.com> 28045 28046 * tree-pass.h (register_one_dump_file): Add a prototype for 28047 register_one_dump_file. 28048 * toplev.c (compile_file): Call initialize_plugins. 28049 (do_compile): Call invoke_plugin_callbacks. 28050 (toplev_main): Call invoke_plugin_callbacks. 28051 * common.opt: Add -fplugin= and -fplugin-arg-. 28052 * gcc-plugin.h: New public header file for plugins to include. 28053 * plugin.c: New source file. 28054 * plugin.h: New internal header file. 28055 * passes.c (register_one_dump_file): Make it external. 28056 28057 * c-parser.c (c_parser_declspecs): Call invoke_plugin_callbacks. 28058 280592009-04-14 Diego Novillo <dnovillo@google.com> 28060 28061 * doc/plugins.texi: New. 28062 * doc/gccint.texi: Add reference to Plugins chapter. 28063 * doc/invoke.texi: Document -fplugin and -fplugin-arg 28064 * diagnostic.c (diagnostic_report_diagnostic): Warn about 28065 loaded plugins, if any. 28066 * timevar.def (TV_PLUGIN_INIT): Define. 28067 (TV_PLUGIN_RUN): Define. 28068 * plugin.c: Include timevar.h 28069 (plugins_active_p): New. 28070 (dump_active_plugins): New. 28071 (debug_active_plugins): New. 28072 280732009-04-14 Joseph Myers <joseph@codesourcery.com> 28074 28075 * config/sol2.h (LINK_ARCH32_SPEC_BASE): Use %R with absolute 28076 library paths. 28077 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Likewise. 28078 280792009-04-14 Kazu Hirata <kazu@codesourcery.com> 28080 28081 * config/arm/arm.c (arm_rtx_costs_1): Treat a minus with a shift 28082 the same as a minus without a shift. 28083 280842009-04-14 Nick Clifton <nickc@redhat.com> 28085 28086 * config/stormy16/stormy16.md (ineqbranch_1): Do not assume that 28087 comparisons with small integers will always produce a short 28088 branch. 28089 280902009-04-14 Rafael Avila de Espindola <espindola@google.com> 28091 28092 Merge: 28093 2008-12-19 Diego Novillo <dnovillo@google.com> 28094 28095 * cgraph.c (dump_cgraph_node): Show memory address of NODE. 28096 280972009-04-14 Richard Guenther <rguenther@suse.de> 28098 28099 * tree-cfg.c (verify_gimple_assign_unary): Adjust vector code 28100 verification. 28101 (verify_gimple_assign_binary): Likewise. Handle shifts and 28102 rotates correctly. 28103 (verify_gimple_phi): Print the mismatched argument position. 28104 * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): 28105 Fix types. 28106 (vect_update_init_of_dr): Likewise. 28107 * matrix-reorg.c (transform_access_sites): Do what the 28108 comment suggests. 28109 * omp-low.c (expand_omp_atomic_pipeline): Use the correct types. 28110 281112009-04-13 Michael Eager <eager@eagercon.com> 28112 28113 * config/rs6000/rs6000-c.c: generate defines if rs6000_xilinx_fpu: 28114 _XFPU, _XFPU_SP_LITE, _XFPU_SP_FULL, _XFPU_DP_LITE, _XFPU_DP_FULL 28115 * config/rs6000/xilinx.h: New. Spec for powerpc-xilinx-eabi 28116 * config.gcc (powerpc-xilinx-eabi): add xilinx.h to tm_file, 28117 remove duplicate config 28118 281192009-04-13 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> 28120 28121 * ipa-inline.c (cgraph_decide_inlining_of_small_function): Dump 28122 file_name:line_number type locator of the call site. 28123 281242009-04-13 Vladimir Makarov <vmakarov@redhat.com> 28125 28126 * genautomata.c: Put blank after comma. 28127 (automaton_decls): New. 28128 (struct unit_usage): Add comments to member next. 28129 (store_alt_unit_usage): Keep the list ordered. 28130 (unit_present_on_list_p, equal_alternatives_p): New. 28131 (check_regexp_units_distribution): Check units distribution 28132 correctness correctly. 28133 (main): Don't write automata if error is found. Return correct 28134 exit code. 28135 28136 * config/m68k/cf.md (cfv4_ds): Remove. 28137 (cfv4_pOEP1, cfv4_sOEP1, cfv4_pOEP2,cfv4_sOEP2, cfv4_pOEP3, 28138 cfv4_sOEP3): Assign to cfv4_oep instead of cfv4_ds. 28139 28140 * config/rs6000/power4.md (lsuq_power4, iq_power4, fpq_power4, 28141 power4-load-ext, power4-store, power4-store-update, 28142 power4-fpstore, power4-fpstore-update, power4-two, power4-three, 28143 power4-insert, power4-compare, power4-lmul-cmp, power4-imul-cmp, 28144 power4-lmul, , power4-imul, power4-imul3, power4-sdiv, 28145 power4-sqrt, power4-isync): Modify reservation to make correct 28146 unit distribution to automata. 28147 28148 * config/rs6000/power5.md (iq_power5, fpq_power5, power5-store, 28149 power5-store-update, power5-two, power5-three, power5-lmul, 28150 power5-imul, power5-imul3, power5-sdiv, power5-sqrt): Ditto. 28151 281522009-04-13 Adam Nemet <anemet@caviumnetworks.com> 28153 28154 * except.c (pass_set_nothrow_function_flags): Set name and add 28155 TODO_dump_func. 28156 (set_nothrow_function_flags): Mention in the dump file when 28157 changing a function to nothrow. 28158 281592009-04-13 Ozkan Sezer <sezeroz@gmail.com> 28160 28161 PR/39066 28162 * gbl-ctors.h (DO_GLOBAL_CTORS_BODY): Use __SIZE_TYPE__ 28163 instead of unsigned long. 28164 281652009-04-13 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 28166 28167 * config/arm/arm.c (return_used_this_function): Remove. 28168 (arm_output_function_prologue): Remove use of 28169 return_used_this_function. 28170 (output_return_instruction): Replace use of 28171 return_used_this_function 28172 by cfun->machine->return_used_this_function. 28173 (arm_output_epilogue): Likewise. 28174 (arm_output_function_epilogue): Likewise. 28175 (thumb_unexpanded_epilogue): Likewise. 28176 * config/arm/arm.h (struct machine_function): 28177 New member return_used_this_function. 28178 281792009-04-12 Mark Mitchell <mark@codesourcery.com> 28180 28181 * doc/install.texi: Correct description of default directory for 28182 --with-gxx-include-dir. 28183 281842009-04-12 Eric Botcazou <ebotcazou@adacore.com> 28185 28186 * fold-const.c (build_range_check): Properly deal with enumeral and 28187 boolean base types. 28188 281892009-04-12 Steven Bosscher <steven@gcc.gnu.org> 28190 28191 * doc/invoke.texi (max_gcse_passes): Remove documentation. 28192 * params.def (PARAM_MAX_GCSE_PASSES): Remove. 28193 * params.h (MAX_GCSE_PASSES): Remove. 28194 * gcse.c (gcse_main): Run CPROP1, PRE or HOIST, and CPROP2 28195 in sequence. Remove ability to run multiple passes. 28196 (bypass_jumps): Report run as third CPROP pass. 28197 281982009-04-12 Adam Nemet <anemet@caviumnetworks.com> 28199 28200 PR middle-end/39651 28201 * except.c (can_throw_external): Look at each insn in a SEQUENCE 28202 when deciding whether the whole SEQUENCE can throw. 28203 282042009-04-12 Uros Bizjak <ubizjak@gmail.com> 28205 28206 PR target/39740 28207 * config/alpha/predicates.md (local_symbolic_operand): Return 1 for 28208 offseted label references. 28209 282102009-04-11 Jan Hubicka <jh@suse.cz> 28211 28212 * tree-ssa-pre.c (eliminate): Fix call of update_stmt. 28213 282142009-04-11 Richard Guenther <rguenther@suse.de> 28215 28216 PR middle-end/39732 28217 * tree-inline.c (declare_return_variable): Mark DECL_BY_REFERENCE 28218 return variables as TREE_ADDRESSABLE. 28219 282202009-04-11 Richard Guenther <rguenther@suse.de> 28221 28222 PR tree-optimization/39713 28223 * tree-ssa-sccvn.c (vn_get_expr_for): Make sure built 28224 reference trees have SSA_NAME operands. 28225 282262009-04-11 Richard Guenther <rguenther@suse.de> 28227 28228 PR c/39712 28229 * c-gimplify.c (c_gimplify_expr): Adjust check for mismatched 28230 address expressions. 28231 282322009-04-11 Dave Korn <dave.korn.cygwin@gmail.com> 28233 28234 * config/i386/cygwin-stdint.h (INT_LEAST32_TYPE): Update to 28235 match changes in Cygwin 1.7 28236 (UINT_LEAST32_TYPE, INT_FAST16_TYPE, INT_FAST32_TYPE, 28237 UINT_FAST16_TYPE, UINT_FAST32_TYPE): Likewise. 28238 282392009-04-10 Paolo Bonzini <bonzini@gnu.org> 28240 28241 PR tree-optimization/39701 28242 * doc/invoke.texi (Optimization Options): Document change in 28243 meaning and initialization of -fdelete-null-pointer-checks. 28244 282452009-04-10 H.J. Lu <hongjiu.lu@intel.com> 28246 28247 PR middle-end/39701 28248 * common.opt (-fdelete-null-pointer-checks): Initialize to 1. 28249 28250 * opts.c (decode_options): Don't set flag_delete_null_pointer_checks 28251 here. 28252 28253 * doc/invoke.texi: Update -fdelete-null-pointer-checks. 28254 282552009-04-10 Chao-ying Fu <fu@mips.com> 28256 28257 * doc/tm.texi (Instruction Output): Document 28258 TARGET_ASM_FINAL_POSTSCAN_INSN. 28259 * target.h (final_postscan_insn): New field in asm_out. 28260 * target-def.h (TARGET_ASM_FINAL_POSTSCAN_INSN): New define. 28261 (TARGET_ASM_OUT): Add TARGET_ASM_FINAL_POSTSCAN_INSN. 28262 * final.c (final_scan_insn): Call 28263 targetm.asm_out.final_postscan_insn after outputting 28264 an asm macro and a normal instruction. 28265 28266 * config/mips/mips.h (FINAL_PRESCAN_INSN): New define. 28267 * config/mips/mips-protos.h (mips_final_prescan_insn): Declare. 28268 * config/mips/mips.c (mips_at_reg_p): New for_each_rtx callback. 28269 (mips_final_prescan_insn, mips_final_postscan_insn): New functions. 28270 (TARGET_ASM_FINAL_POSTSCAN_INSN): New define. 28271 282722009-04-10 Paolo Bonzini <bonzini@gnu.org> 28273 28274 PR middle-end/39701 28275 * fold-const.c (tree_single_nonzero_warnv_p): Pass non-static 28276 variables as non-NULL even with -fdelete-null-pointer-checks. 28277 282782009-04-10 H.J. Lu <hongjiu.lu@intel.com> 28279 28280 * config/rs6000/darwin-vecsave.asm: Remove extra "*/". 28281 282822009-04-09 H.J. Lu <hongjiu.lu@intel.com> 28283 28284 PR target/39678 28285 * config/i386/i386.c (classify_argument): Handle SCmode with 28286 (bit_offset % 64) != 0. 28287 282882009-04-09 Sandra Loosemore <sandra@codesourcery.com> 28289 28290 * doc/invoke.texi (Optimize Options): Add cross-reference to 28291 -Q --help=optimizers examples. 28292 282932009-04-10 Ben Elliston <bje@au.ibm.com> 28294 28295 PR target/36800 28296 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Do not set 28297 regalign for the reg == fpr and TDmode case. 28298 282992009-04-09 David Ayers <ayers@fsfe.org> 28300 28301 PR objc/29200 28302 * objc/objc-act.c (warn_with_method): Remove helper function. 28303 (check_duplicates): Call warning and inform directly. 28304 (really_start_method): Likewise. 28305 283062009-04-09 Paolo Bonzini <bonzini@gnu.org> 28307 28308 * expmed.c (expand_divmod): Always use a comparison for a division 28309 by a large unsigned integer. 28310 28311 * fold-const.c (tree_single_nonzero_warnv_p): Always treat decls 28312 for things others than variables or functions as nonzero. 28313 283142009-04-09 Nick Clifton <nickc@redhat.com> 28315 28316 * unwind-compat.c: Change copyright header to refer to version 28317 3 of the GNU General Public License with version 3.1 of the 28318 GCC Runtime Library Exception and to point readers at the 28319 COPYING3 and COPYING3.RUNTIME files and the FSF's license web page. 28320 * config/alpha/crtfastmath.c: Likewise. 28321 * config/alpha/linux-unwind.h: Likewise. 28322 * config/alpha/qrnnd.asm: Likewise. 28323 * config/alpha/vms-crt0-64.c: Likewise. 28324 * config/alpha/vms-crt0.c: Likewise. 28325 * config/alpha/vms-dwarf2.asm: Likewise. 28326 * config/alpha/vms-dwarf2eh.asm: Likewise. 28327 * config/alpha/vms-psxcrt0-64.c: Likewise. 28328 * config/alpha/vms-psxcrt0.c: Likewise. 28329 * config/alpha/vms_tramp.asm: Likewise. 28330 * config/arc/initfini.c: Likewise. 28331 * config/arc/lib1funcs.asm: Likewise. 28332 * config/arm/bpabi-v6m.S: Likewise. 28333 * config/arm/bpabi.S: Likewise. 28334 * config/arm/bpabi.c: Likewise. 28335 * config/arm/crti.asm: Likewise. 28336 * config/arm/crtn.asm: Likewise. 28337 * config/arm/ieee754-df.S: Likewise. 28338 * config/arm/ieee754-sf.S: Likewise. 28339 * config/arm/lib1funcs.asm: Likewise. 28340 * config/arm/libunwind.S: Likewise. 28341 * config/arm/linux-atomic.c: Likewise. 28342 * config/arm/mmintrin.h: Likewise. 28343 * config/arm/pr-support.c: Likewise. 28344 * config/arm/unaligned-funcs.c: Likewise. 28345 * config/arm/unwind-arm.c: Likewise. 28346 * config/arm/unwind-arm.h: Likewise. 28347 * config/avr/libgcc.S: Likewise. 28348 * config/bfin/crti.s: Likewise. 28349 * config/bfin/crtlibid.s: Likewise. 28350 * config/bfin/crtn.s: Likewise. 28351 * config/bfin/lib1funcs.asm: Likewise. 28352 * config/bfin/linux-unwind.h: Likewise. 28353 * config/cris/arit.c: Likewise. 28354 * config/cris/cris_abi_symbol.c: Likewise. 28355 * config/darwin-64.c: Likewise. 28356 * config/darwin-crt2.c: Likewise. 28357 * config/darwin-crt3.c: Likewise. 28358 * config/darwin.h: Likewise. 28359 * config/dbxelf.h: Likewise. 28360 * config/dfp-bit.c: Likewise. 28361 * config/dfp-bit.h: Likewise. 28362 * config/elfos.h: Likewise. 28363 * config/fixed-bit.c: Likewise. 28364 * config/fixed-bit.h: Likewise. 28365 * config/fp-bit.c: Likewise. 28366 * config/fp-bit.h: Likewise. 28367 * config/fr30/crti.asm: Likewise. 28368 * config/fr30/crtn.asm: Likewise. 28369 * config/fr30/lib1funcs.asm: Likewise. 28370 * config/freebsd-spec.h: Likewise. 28371 * config/frv/cmovd.c: Likewise. 28372 * config/frv/cmovh.c: Likewise. 28373 * config/frv/cmovw.c: Likewise. 28374 * config/frv/frvbegin.c: Likewise. 28375 * config/frv/frvend.c: Likewise. 28376 * config/frv/lib1funcs.asm: Likewise. 28377 * config/glibc-stdint.h: Likewise. 28378 * config/h8300/clzhi2.c: Likewise. 28379 * config/h8300/crti.asm: Likewise. 28380 * config/h8300/crtn.asm: Likewise. 28381 * config/h8300/ctzhi2.c: Likewise. 28382 * config/h8300/fixunssfsi.c: Likewise. 28383 * config/h8300/lib1funcs.asm: Likewise. 28384 * config/h8300/parityhi2.c: Likewise. 28385 * config/h8300/popcounthi2.c: Likewise. 28386 * config/i386/ammintrin.h: Likewise. 28387 * config/i386/att.h: Likewise. 28388 * config/i386/avxintrin.h: Likewise. 28389 * config/i386/biarch64.h: Likewise. 28390 * config/i386/bmmintrin.h: Likewise. 28391 * config/i386/cpuid.h: Likewise. 28392 * config/i386/cross-stdarg.h: Likewise. 28393 * config/i386/crtfastmath.c: Likewise. 28394 * config/i386/crtprec.c: Likewise. 28395 * config/i386/cygming-crtbegin.c: Likewise. 28396 * config/i386/cygming-crtend.c: Likewise. 28397 * config/i386/cygwin.asm: Likewise. 28398 * config/i386/emmintrin.h: Likewise. 28399 * config/i386/gmm_malloc.h: Likewise. 28400 * config/i386/gthr-win32.c: Likewise. 28401 * config/i386/i386.h: Likewise. 28402 * config/i386/immintrin.h: Likewise. 28403 * config/i386/linux-unwind.h: Likewise. 28404 * config/i386/linux64.h: Likewise. 28405 * config/i386/mm3dnow.h: Likewise. 28406 * config/i386/mmintrin-common.h: Likewise. 28407 * config/i386/mmintrin.h: Likewise. 28408 * config/i386/nmmintrin.h: Likewise. 28409 * config/i386/pmm_malloc.h: Likewise. 28410 * config/i386/pmmintrin.h: Likewise. 28411 * config/i386/smmintrin.h: Likewise. 28412 * config/i386/sol2-c1.asm: Likewise. 28413 * config/i386/sol2-ci.asm: Likewise. 28414 * config/i386/sol2-cn.asm: Likewise. 28415 * config/i386/sol2-gc1.asm: Likewise. 28416 * config/i386/tmmintrin.h: Likewise. 28417 * config/i386/unix.h: Likewise. 28418 * config/i386/w32-unwind.h: Likewise. 28419 * config/i386/wmmintrin.h: Likewise. 28420 * config/i386/x86-64.h: Likewise. 28421 * config/i386/x86intrin.h: Likewise. 28422 * config/i386/xmmintrin.h: Likewise. 28423 * config/ia64/crtbegin.asm: Likewise. 28424 * config/ia64/crtend.asm: Likewise. 28425 * config/ia64/crtfastmath.c: Likewise. 28426 * config/ia64/crti.asm: Likewise. 28427 * config/ia64/crtn.asm: Likewise. 28428 * config/ia64/fde-glibc.c: Likewise. 28429 * config/ia64/lib1funcs.asm: Likewise. 28430 * config/ia64/linux-unwind.h: Likewise. 28431 * config/ia64/quadlib.c: Likewise. 28432 * config/ia64/unwind-ia64.c: Likewise. 28433 * config/linux.h: Likewise. 28434 * config/m32c/m32c-lib1.S: Likewise. 28435 * config/m32c/m32c-lib2-trapv.c: Likewise. 28436 * config/m32c/m32c-lib2.c: Likewise. 28437 * config/m32r/initfini.c: Likewise. 28438 * config/m68hc11/larith.asm: Likewise. 28439 * config/m68hc11/m68hc11-crt0.S: Likewise. 28440 * config/m68k/cf.md: Likewise. 28441 * config/m68k/crti.s: Likewise. 28442 * config/m68k/crtn.s: Likewise. 28443 * config/m68k/lb1sf68.asm: Likewise. 28444 * config/m68k/linux-unwind.h: Likewise. 28445 * config/mcore/crti.asm: Likewise. 28446 * config/mcore/crtn.asm: Likewise. 28447 * config/mcore/lib1.asm: Likewise. 28448 * config/mips/linux-unwind.h: Likewise. 28449 * config/mips/loongson.h: Likewise. 28450 * config/mips/mips16.S: Likewise. 28451 * config/mmix/crti.asm: Likewise. 28452 * config/mmix/crtn.asm: Likewise. 28453 * config/pa/fptr.c: Likewise. 28454 * config/pa/hpux-unwind.h: Likewise. 28455 * config/pa/lib2funcs.asm: Likewise. 28456 * config/pa/linux-atomic.c: Likewise. 28457 * config/pa/linux-unwind.h: Likewise. 28458 * config/pa/milli64.S: Likewise. 28459 * config/pa/quadlib.c: Likewise. 28460 * config/pa/stublib.c: Likewise. 28461 * config/picochip/libgccExtras/adddi3.asm: Likewise. 28462 * config/picochip/libgccExtras/ashlsi3.asm: Likewise. 28463 * config/picochip/libgccExtras/ashlsi3.c: Likewise. 28464 * config/picochip/libgccExtras/ashrsi3.asm: Likewise. 28465 * config/picochip/libgccExtras/ashrsi3.c: Likewise. 28466 * config/picochip/libgccExtras/cmpsi2.asm: Likewise. 28467 * config/picochip/libgccExtras/divmod15.asm: Likewise. 28468 * config/picochip/libgccExtras/divmodhi4.asm: Likewise. 28469 * config/picochip/libgccExtras/divmodsi4.asm: Likewise. 28470 * config/picochip/libgccExtras/longjmp.asm: Likewise. 28471 * config/picochip/libgccExtras/lshrsi3.asm: Likewise. 28472 * config/picochip/libgccExtras/lshrsi3.c: Likewise. 28473 * config/picochip/libgccExtras/parityhi2.asm: Likewise. 28474 * config/picochip/libgccExtras/popcounthi2.asm: Likewise. 28475 * config/picochip/libgccExtras/setjmp.asm: Likewise. 28476 * config/picochip/libgccExtras/subdi3.asm: Likewise. 28477 * config/picochip/libgccExtras/ucmpsi2.asm: Likewise. 28478 * config/picochip/libgccExtras/udivmodhi4.asm: Likewise. 28479 * config/picochip/libgccExtras/udivmodsi4.asm: Likewise. 28480 * config/rs6000/750cl.h: Likewise. 28481 * config/rs6000/altivec.h: Likewise. 28482 * config/rs6000/biarch64.h: Likewise. 28483 * config/rs6000/crtresfpr.asm: Likewise. 28484 * config/rs6000/crtresgpr.asm: Likewise. 28485 * config/rs6000/crtresxfpr.asm: Likewise. 28486 * config/rs6000/crtresxgpr.asm: Likewise. 28487 * config/rs6000/crtsavfpr.asm: Likewise. 28488 * config/rs6000/crtsavgpr.asm: Likewise. 28489 * config/rs6000/darwin-asm.h: Likewise. 28490 * config/rs6000/darwin-fallback.c: Likewise. 28491 * config/rs6000/darwin-fpsave.asm: Likewise. 28492 * config/rs6000/darwin-ldouble.c: Likewise. 28493 * config/rs6000/darwin-tramp.asm: Likewise. 28494 * config/rs6000/darwin-unwind.h: Likewise. 28495 * config/rs6000/darwin-vecsave.asm: Likewise. 28496 * config/rs6000/darwin-world.asm: Likewise. 28497 * config/rs6000/e500crtres32gpr.asm: Likewise. 28498 * config/rs6000/e500crtres64gpr.asm: Likewise. 28499 * config/rs6000/e500crtres64gprctr.asm: Likewise. 28500 * config/rs6000/e500crtrest32gpr.asm: Likewise. 28501 * config/rs6000/e500crtrest64gpr.asm: Likewise. 28502 * config/rs6000/e500crtresx32gpr.asm: Likewise. 28503 * config/rs6000/e500crtresx64gpr.asm: Likewise. 28504 * config/rs6000/e500crtsav32gpr.asm: Likewise. 28505 * config/rs6000/e500crtsav64gpr.asm: Likewise. 28506 * config/rs6000/e500crtsav64gprctr.asm: Likewise. 28507 * config/rs6000/e500crtsavg32gpr.asm: Likewise. 28508 * config/rs6000/e500crtsavg64gpr.asm: Likewise. 28509 * config/rs6000/e500crtsavg64gprctr.asm: Likewise. 28510 * config/rs6000/eabi-ci.asm: Likewise. 28511 * config/rs6000/eabi-cn.asm: Likewise. 28512 * config/rs6000/eabi.asm: Likewise. 28513 * config/rs6000/linux-unwind.h: Likewise. 28514 * config/rs6000/linux64.h: Likewise. 28515 * config/rs6000/paired.h: Likewise. 28516 * config/rs6000/paired.md: Likewise. 28517 * config/rs6000/ppc64-fp.c: Likewise. 28518 * config/rs6000/ppu_intrinsics.h: Likewise. 28519 * config/rs6000/rs6000.h: Likewise. 28520 * config/rs6000/si2vmx.h: Likewise. 28521 * config/rs6000/sol-ci.asm: Likewise. 28522 * config/rs6000/sol-cn.asm: Likewise. 28523 * config/rs6000/spe.h: Likewise. 28524 * config/rs6000/spu2vmx.h: Likewise. 28525 * config/rs6000/sysv4.h: Likewise. 28526 * config/rs6000/tramp.asm: Likewise. 28527 * config/rs6000/vec_types.h: Likewise. 28528 * config/s390/linux-unwind.h: Likewise. 28529 * config/s390/tpf-unwind.h: Likewise. 28530 * config/score/crti.asm: Likewise. 28531 * config/score/crtn.asm: Likewise. 28532 * config/sh/crt1.asm: Likewise. 28533 * config/sh/crti.asm: Likewise. 28534 * config/sh/crtn.asm: Likewise. 28535 * config/sh/divtab-sh4-300.c: Likewise. 28536 * config/sh/divtab-sh4.c: Likewise. 28537 * config/sh/divtab.c: Likewise. 28538 * config/sh/lib1funcs-4-300.asm: Likewise. 28539 * config/sh/lib1funcs-Os-4-200.asm: Likewise. 28540 * config/sh/lib1funcs.asm: Likewise. 28541 * config/sh/lib1funcs.h: Likewise. 28542 * config/sh/linux-atomic.asm: Likewise. 28543 * config/sh/linux-unwind.h: Likewise. 28544 * config/sh/shmedia.h: Likewise. 28545 * config/sh/sshmedia.h: Likewise. 28546 * config/sh/ushmedia.h: Likewise. 28547 * config/sparc/crtfastmath.c: Likewise. 28548 * config/sparc/linux-unwind.h: Likewise. 28549 * config/sparc/sol2-c1.asm: Likewise. 28550 * config/sparc/sol2-ci.asm: Likewise. 28551 * config/sparc/sol2-cn.asm: Likewise. 28552 * config/spu/divmodti4.c: Likewise. 28553 * config/spu/divv2df3.c: Likewise. 28554 * config/spu/float_disf.c: Likewise. 28555 * config/spu/float_unsdidf.c: Likewise. 28556 * config/spu/float_unsdisf.c: Likewise. 28557 * config/spu/float_unssidf.c: Likewise. 28558 * config/spu/mfc_multi_tag_release.c: Likewise. 28559 * config/spu/mfc_multi_tag_reserve.c: Likewise. 28560 * config/spu/mfc_tag_release.c: Likewise. 28561 * config/spu/mfc_tag_reserve.c: Likewise. 28562 * config/spu/mfc_tag_table.c: Likewise. 28563 * config/spu/multi3.c: Likewise. 28564 * config/spu/spu_internals.h: Likewise. 28565 * config/spu/spu_intrinsics.h: Likewise. 28566 * config/spu/spu_mfcio.h: Likewise. 28567 * config/spu/vec_types.h: Likewise. 28568 * config/spu/vmx2spu.h: Likewise. 28569 * config/stormy16/stormy16-lib2.c: Likewise. 28570 * config/svr4.h: Likewise. 28571 * config/sync.c: Likewise. 28572 * config/v850/lib1funcs.asm: Likewise. 28573 * config/vxlib-tls.c: Likewise. 28574 * config/vxlib.c: Likewise. 28575 * config/vxworks-dummy.h: Likewise. 28576 * config/xtensa/crti.asm: Likewise. 28577 * config/xtensa/crtn.asm: Likewise. 28578 * config/xtensa/ieee754-df.S: Likewise. 28579 * config/xtensa/ieee754-sf.S: Likewise. 28580 * config/xtensa/lib1funcs.asm: Likewise. 28581 * config/xtensa/lib2funcs.S: Likewise. 28582 * config/xtensa/linux-unwind.h: Likewise. 28583 * config/xtensa/unwind-dw2-xtensa.c: Likewise. 28584 * config/xtensa/unwind-dw2-xtensa.h: Likewise. 28585 * coretypes.h: Likewise. 28586 * crtstuff.c: Likewise. 28587 * defaults.h: Likewise. 28588 * dwarf2.h: Likewise. 28589 * emutls.c: Likewise. 28590 * gbl-ctors.h: Likewise. 28591 * gcov-io.h: Likewise. 28592 * ginclude/float.h: Likewise. 28593 * ginclude/iso646.h: Likewise. 28594 * ginclude/stdarg.h: Likewise. 28595 * ginclude/stdbool.h: Likewise. 28596 * ginclude/stddef.h: Likewise. 28597 * ginclude/stdfix.h: Likewise. 28598 * ginclude/stdint-gcc.h: Likewise. 28599 * ginclude/tgmath.h: Likewise. 28600 * gthr-aix.h: Likewise. 28601 * gthr-dce.h: Likewise. 28602 * gthr-gnat.c: Likewise. 28603 * gthr-gnat.h: Likewise. 28604 * gthr-lynx.h: Likewise. 28605 * gthr-mipssde.h: Likewise. 28606 * gthr-nks.h: Likewise. 28607 * gthr-posix.c: Likewise. 28608 * gthr-posix.h: Likewise. 28609 * gthr-posix95.h: Likewise. 28610 * gthr-rtems.h: Likewise. 28611 * gthr-single.h: Likewise. 28612 * gthr-solaris.h: Likewise. 28613 * gthr-tpf.h: Likewise. 28614 * gthr-vxworks.h: Likewise. 28615 * gthr-win32.h: Likewise. 28616 * gthr.h: Likewise. 28617 * libgcc2.c: Likewise. 28618 * libgcc2.h: Likewise. 28619 * libgcov.c: Likewise. 28620 * tsystem.h: Likewise. 28621 * typeclass.h: Likewise. 28622 * unwind-c.c: Likewise. 28623 * unwind-compat.h: Likewise. 28624 * unwind-dw2-fde-compat.c: Likewise. 28625 * unwind-dw2-fde-darwin.c: Likewise. 28626 * unwind-dw2-fde-glibc.c: Likewise. 28627 * unwind-dw2-fde.c: Likewise. 28628 * unwind-dw2-fde.h: Likewise. 28629 * unwind-dw2.c: Likewise. 28630 * unwind-dw2.h: Likewise. 28631 * unwind-generic.h: Likewise. 28632 * unwind-pe.h: Likewise. 28633 * unwind-sjlj.c: Likewise. 28634 * unwind.inc: Likewise. 28635 * config/arm/neon-gen.ml: Change generated copyright header to 28636 refer to version 3 of the GNU General Public License with 28637 version 3.1 of the GCC Runtime Library Exception and to point 28638 readers at the COPYING3 and COPYING3.RUNTIME files and the 28639 FSF's license web page. 28640 * config/arm/arm_neon.h: Regenerate. 28641 286422009-04-09 Jakub Jelinek <jakub@redhat.com> 28643 28644 * config/cris/cris.md: Change copyright header to refer to version 28645 3 of the GNU General Public License. 28646 * doc/install.texi2html: Change copyright header to refer to version 28647 3 of the GNU General Public License and to point readers at the 28648 COPYING3 file and the FSF's license web page. 28649 * config/vax/linux.h: Likewise. 28650 286512009-04-09 Paolo Bonzini <bonzini@gnu.org> 28652 28653 * config/i386/i386.md (cmpcc): New. 28654 * config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG. 28655 (sync_compare_and_swap_cc*): Delete. 28656 28657 * config/s390/s390.c (s390_compare_emitted): Remove. 28658 (s390_emit_compare): Handle MODE_CC s390_compare_op0 like 28659 s390_compare_emitted used to be handled. Assert that modes match. 28660 (s390_emit_compare_and_swap): Use s390_emit_compare, do not 28661 refer to sync_compare_and_swap_ccsi. 28662 * config/s390/s390.h (s390_compare_emitted): Remove. 28663 * config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0 28664 instead of s390_compare_emitted. 28665 (stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0 28666 instead of s390_compare_emitted. 28667 * config/s390/s390.md (cmpcc): New. 28668 (sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber 28669 CC_REGNUM, do not pretend it's set. 28670 (sync_compare_and_swap_cc*): Delete. 28671 * config/s390/predicates.md (cc_reg_operand): New. 28672 28673 * expr.c (sync_compare_and_swap_cc): Delete. 28674 * optabs.h (sync_compare_and_swap_cc): Delete. 28675 * optabs.c (prepare_cmp_insn): Ignore which specific CCmode 28676 is being used with can_compare_p. 28677 (emit_cmp_and_jump_insn_1): Likewise when looking in the optab. 28678 (find_cc_set): New. 28679 (expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc, 28680 look for a MODE_CC set instead. Use emit_store_flag. 28681 (expand_compare_and_swap_loop): Likewise, with some additional 28682 complication to avoid a force_reg when useless. Use 28683 emit_cmp_and_jump_insns. 28684 * genopinit.c (optabs): Delete sync_compare_and_swap_cc. 28685 * doc/md.texi (sync_compare_and_swap_cc): Merge with 28686 sync_compare_and_swap documentation. 28687 286882009-04-09 Jan Hubicka <jh@suse.cz> 28689 28690 * except.c (find_prev_try): Break out from .... 28691 (duplicate_eh_regions): ... here; properly update prev_try pointers 28692 when duplication part of tree. 28693 (dump_eh_tree): Improve dumping. 28694 (verify_eh_region): New. 28695 (verify_eh_tree): Use it. 28696 286972009-04-06 Richard Guenther <rguenther@suse.de> 28698 28699 * c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC 28700 &ARRAY addresses by adjusting their types and prepending 28701 a conversion. 28702 * tree-cfg.c (verify_gimple_assign_single): Verify that 28703 addresses are correct. 28704 287052009-04-09 Richard Guenther <rguenther@suse.de> 28706 28707 * tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant 28708 indices into an array reference if possible. 28709 * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars): 28710 Fold POINTER_PLUS_EXPR statements with invariant address. 28711 287122009-04-09 Alan Modra <amodra@bigpond.net.au> 28713 28714 PR target/39634 28715 * config.gcc (powerpc64-*-linux*): Always build biarch. 28716 287172009-04-09 Joseph Myers <joseph@codesourcery.com> 28718 28719 PR c/39613 28720 * c-typeck.c (do_case): If case label is not an INTEGER_CST, fold 28721 it and pedwarn if this results in an INTEGER_CST. 28722 287232009-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 28724 28725 * doc/install.texi: Update minimum GMP version. Remove obsolete 28726 text in MPFR section. 28727 287282009-04-08 Jakub Jelinek <jakub@redhat.com> 28729 28730 * dwarf2out.c (class_scope_p): New static inline. 28731 (class_or_namespace_scope_p): Use it. 28732 (gen_variable_die): Use DW_TAG_member tag for static data member 28733 declarations instead of DW_TAG_variable. 28734 28735 PR middle-end/39573 28736 * omp-low.c (expand_omp_taskreg): Finalize taskreg static local_decls 28737 variables. 28738 287392009-04-08 Richard Guenther <rguenther@suse.de> 28740 28741 * tree-ssa-sccvn.c (valueize_refs): Do not continue to 28742 valueize random data. 28743 287442009-04-08 David Edelsohn <edelsohn@gnu.org> 28745 28746 * config.gcc (aix tm_file): Add aix-stdint.h. 28747 (aix tm clause use_gcc_stdint): Set to wrap. 28748 * config/rs6000/aix-stdint.h: New file. 28749 287502009-04-08 Richard Guenther <rguenther@suse.de> 28751 28752 PR middle-end/36291 28753 * tree-dfa.c (add_referenced_var): Do not recurse into 28754 global initializers. 28755 * tree-ssa-ccp.c (get_symbol_constant_value): Add newly 28756 exposed variables. 28757 (fold_const_aggregate_ref): Likewise. 28758 287592009-04-08 Paolo Bonzini <bonzini@gnu.org> 28760 28761 * recog.c (ordered_comparison_operator): New. 28762 * gensupport.c (std_preds): Add it. 28763 * doc/md.texi (Machine-Independent Predicates): Document it. 28764 287652009-04-08 Jan Hubicka <jh@suse.cz> 28766 28767 * tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging. 28768 * function.h (rtl_eh): Remove exception_handler_label_map. 28769 * except.c (ehl_hash, ehl_eq, add_ehl_entry, 28770 remove_exception_handler_label, for_each_eh_label_1): Remove. 28771 (rtl_remove_unreachable_regions): Remove. 28772 (convert_from_eh_region_ranges): Do not remove unreachable regions. 28773 (find_exception_handler_labels): Don't build the hashtable. 28774 (maybe_remove_eh_handler): Remove. 28775 (for_each_eh_label): Rewrite to walk the tree. 28776 (rest_of_handle_eh): Do not cleanup cfg prior EH construction. 28777 * except.h (maybe_remove_eh_handler): Remove. 28778 * passes.c (init_optimization_passes): Schedule second EH cleanup 28779 before out-of-ssa. 28780 * cfgrtl.c (rtl_delete_block, rtl_merge_blocks, 28781 cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler. 28782 287832009-04-08 Paolo Bonzini <bonzini@gnu.org> 28784 28785 * genoutput.c (validate_optab_operands): New. 28786 (gen_insn, gen_expand): Call it. 28787 28788 * genflags.c (gen_insn): Detect misused iterators. 28789 (main): Pass line_no to gen_insn, exit with status 1 on error. 28790 28791 * genextract.c (line_no): Make global. 28792 (VEC_safe_set_locstr): Change assertion to error message. 28793 (main): Exit with status 1 on error. 28794 287952009-04-08 Joseph Myers <joseph@codesourcery.com> 28796 28797 PR c/39614 28798 PR c/39673 28799 * c-common.h (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR, 28800 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST, 28801 EXPR_INT_CONST_OPERANDS): Remove duplicate definitions. 28802 * c-convert.c (convert): Do not call fold on results of conversion 28803 functions when the result is a C_MAYBE_CONST_EXPR. 28804 * c-parser.c (c_parser_postfix_expression): Do not fold condition 28805 of __builtin_choose_expr. 28806 * c-typeck.c (remove_c_maybe_const_expr): New. 28807 (build_unary_op, build_conditional_expr, build_compound_expr, 28808 build_binary_op, c_objc_common_truthvalue_conversion): Call 28809 remove_c_maybe_const_expr on any input C_MAYBE_CONST_EXPR with 28810 integer operands. 28811 288122009-04-08 Bingfeng Mei <bmei@broadcom.com> 28813 28814 * fold-const.c (const_binop): Combine two VECTOR_CST under operation 28815 CODE to produce a new one. Add a prototype to use fold_convert_const 28816 288172009-04-08 Danny Smith <dannysmith@users.sourceforge.net> 28818 28819 PR bootstrap/39660 28820 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Don't 28821 mix declarations and code. 28822 288232009-04-08 Ben Elliston <bje@au.ibm.com> 28824 28825 * gcc.c: Replace `CC' with `GCC' throughout. 28826 288272009-04-07 H.J. Lu <hongjiu.lu@intel.com> 28828 28829 * doc/invoke.texi: Document Atom support. 28830 288312009-04-07 Jason Merrill <jason@redhat.com> 28832 28833 PR c++/25185 28834 * c-common.h, c-common.c: Add flag_pretty_templates. 28835 * c-opts.c (c_common_handle_option): Set it. 28836 * c.opt: Add -fno-pretty-templates. 28837 * doc/invoke.texi (C++ Dialect Options): Likewise. 28838 288392009-04-07 Uros Bizjak <ubizjak@gmail.com> 28840 28841 * config/ia64/ia64.c (ia64_builtins): Add IA64_BUILTIN_HUGE_VALQ. 28842 (ia64_init_builtins): Handle IA64_BUILTIN_HUGE_VALQ. 28843 (ia64_expand_builtin): Likewise. 28844 288452009-04-07 Martin Jambor <mjambor@suse.cz> 28846 28847 * tree-ssa-alias.c (refs_may_alias_p_1): Check for 28848 is_gimple_min_invariant rather than CONSTANT_CLASS_P so that invariant 28849 ADDR_EXPRS are include too. 28850 288512009-04-07 Richard Guenther <rguenther@suse.de> 28852 28853 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Non-aliased 28854 decls are only used if passes as parameters or if they are 28855 local statics and the call is not to a builtin. 28856 (call_may_clobber_ref_p_1): Likewise. 28857 288582009-04-07 Paolo Bonzini <bonzini@gnu.org> 28859 28860 * expr.c (do_store_flag): Remove last argument. Simplify code 28861 to avoid duplication of tests already done by can_compare_p. 28862 (expand_expr_real_1): Adjust caller. 28863 288642009-04-07 Paolo Bonzini <bonzini@gnu.org> 28865 28866 * optabs.c (can_compare_p): Test the predicate of a 28867 cbranch and cstore pattern. 28868 288692009-04-07 Paolo Bonzini <bonzini@gnu.org> 28870 28871 * expr.c (convert_move): Use emit_store_flag instead of 28872 "emulating" it. 28873 288742009-04-07 Paolo Bonzini <bonzini@gnu.org> 28875 28876 * config/i386/i386.c (ix86_compare_emitted): Remove. 28877 (ix86_expand_compare, ix86_expand_branch): Handle MODE_CC 28878 ix86_compare_op0 like ix86_compare_emitted used to be handled. 28879 * config/i386/i386.h (ix86_compare_emitted): Remove. 28880 * config/i386/i386.md (stack_protect_test): Set ix86_compare_op0 28881 instead of ix86_compare_emitted. 28882 * config/i386/sync.md (sync_compare_and_swap_cc): Likewise. 28883 288842009-04-07 Andrew Stubbs <ams@codesourcery.com> 28885 28886 * config.gcc (sh-*-*): Add sysroot-suffix.h to tm_file. 28887 Add t-sysroot-suffix to tmake_file. 28888 * config/print-sysroot-suffix.sh: New file. 28889 * config/t-sysroot-suffix: New file. 28890 288912009-04-07 Ben Elliston <bje@au.ibm.com> 28892 28893 * libgcc2.c (INFINITY): Use __builtin_huge_val, not __builtin_inf, 28894 as the latter produces a warning when the target does not support 28895 infinity. 28896 288972009-04-07 Ben Elliston <bje@au.ibm.com> 28898 28899 * dfp.c: Replace type punning assignments with memcpy throughout. 28900 * Makefile.in (dfp.o-warn): Remove. 28901 289022009-04-07 Alan Modra <amodra@bigpond.net.au> 28903 28904 PR target/39634 28905 * config.gcc: Merge powerpc-*-linux* and powerpc64-*-linux*. 28906 Include soft-fp/t-softfp after rs6000/t-linux64. 28907 289082009-04-06 Eric Botcazou <ebotcazou@adacore.com> 28909 28910 * stor-layout.c (set_sizetype): Use the full precision of their 28911 machine mode for bitsize types. 28912 289132009-04-06 H.J. Lu <hongjiu.lu@intel.com> 28914 28915 * config/i386/i386.md: Revert 2 accidental checkins. 28916 289172009-04-06 Joey Ye <joey.ye@intel.com> 28918 Xuepeng Guo <xuepeng.guo@intel.com> 28919 H.J. Lu <hongjiu.lu@intel.com> 28920 28921 Atom pipeline model, tuning and insn selection. 28922 * config.gcc (atom): Add atom config options and target. 28923 28924 * config/i386/atom.md: New. 28925 28926 * config/i386/i386.c (atom_cost): New cost. 28927 (m_ATOM): New macro flag. 28928 (initial_ix86_tune_features): Set m_ATOM. 28929 (x86_accumulate_outgoing_args): Likewise. 28930 (x86_arch_always_fancy_math_387): Likewise. 28931 (processor_target): Add Atom cost. 28932 (cpu_names): Add Atom cpu name. 28933 (override_options): Set Atom ISA. 28934 (ix86_issue_rate): New case PROCESSOR_ATOM. 28935 (ix86_adjust_cost): Likewise. 28936 28937 * config/i386/i386.h (TARGET_ATOM): New target macro. 28938 (ix86_tune_indices): Add X86_TUNE_OPT_AGU. 28939 (TARGET_OPT_AGU): New target option. 28940 (target_cpu_default): Add TARGET_CPU_DEFAULT_atom. 28941 (processor_type): Add PROCESSOR_ATOM. 28942 28943 * config/i386/i386.md (cpu): Add new value "atom". 28944 (use_carry, movu): New attr. 28945 (atom.md): Include atom.md. 28946 (adddi3_carry_rex64): Set attr "use_carry". 28947 (addqi3_carry): Likewise. 28948 (addhi3_carry): Likewise. 28949 (addsi3_carry): Likewise. 28950 (*addsi3_carry_zext): Likewise. 28951 (subdi3_carry_rex64): Likewise. 28952 (subqi3_carry): Likewise. 28953 (subhi3_carry): Likewise. 28954 (subsi3_carry): Likewise. 28955 (x86_movdicc_0_m1_rex64): Likewise. 28956 (*x86_movdicc_0_m1_se): Likewise. 28957 (x86_movsicc_0_m1): Likewise. 28958 (*x86_movsicc_0_m1_se): Likewise. 28959 (*adddi_1_rex64): Emit add insn as much as possible. 28960 (*addsi_1): Likewise. 28961 (return_internal): Set atom_unit. 28962 (return_internal_long): Likewise. 28963 (return_pop_internal): Likewise. 28964 (*rcpsf2_sse): Set atom_sse_attr attr. 28965 (*qrt<mode>2_sse): Likewise. 28966 (*prefetch_sse): Likewise. 28967 28968 * config/i386/i386-c.c (ix86_target_macros_internal): New case 28969 PROCESSOR_ATOM. 28970 (ix86_target_macros_internal): Likewise. 28971 28972 * config/i386/sse.md (cpu): Set attr "atom_sse_attr". 28973 (*prefetch_sse_rex): Likewise. 28974 (sse_rcpv4sf2): Likewise. 28975 (sse_vmrcpv4sf2): Likewise. 28976 (sse_sqrtv4sf2): Likewise. 28977 (<sse>_vmsqrt<mode>2): Likewise. 28978 (sse_ldmxcsr): Likewise. 28979 (sse_stmxcsr): Likewise. 28980 (*sse_sfence): Likewise. 28981 (sse2_clflush): Likewise. 28982 (*sse2_mfence): Likewise. 28983 (*sse2_lfence): Likewise. 28984 (avx_movup<avxmodesuffixf2c><avxmodesuffix>): Set attr "movu". 28985 (<sse>_movup<ssemodesuffixf2c>): Likewise. 28986 (avx_movdqu<avxmodesuffix>): Likewise. 28987 (avx_lddqu<avxmodesuffix>): Likewise. 28988 (sse2_movntv2di): Change attr "type" to "ssemov". 28989 (sse2_movntsi): Likewise. 28990 (rsqrtv8sf2): Change attr "type" to "sseadd". 28991 (sse3_addsubv2df3): Set attr "atom_unit". 28992 (sse3_h<plusminus_insn>v4sf3): Likewise. 28993 (*sse2_pmaddwd): Likewise. 28994 (*vec_extractv2di_1_rex64): Likewise. 28995 (*vec_extractv2di_1_avx): Likewise. 28996 (sse2_psadbw): Likewise. 28997 (ssse3_phaddwv8hi3): Likewise. 28998 (ssse3_phaddwv4hi3): Likewise. 28999 (ssse3_phadddv4si3): Likewise. 29000 (ssse3_phadddv2si3): Likewise. 29001 (ssse3_phaddswv8hi3): Likewise. 29002 (ssse3_phaddswv4hi3): Likewise. 29003 (ssse3_phsubwv8hi3): Likewise. 29004 (ssse3_phsubwv4hi3): Likewise. 29005 (ssse3_phsubdv4si3): Likewise. 29006 (ssse3_phsubdv2si3): Likewise. 29007 (ssse3_phsubswv8hi3): Likewise. 29008 (ssse3_phsubswv4hi3): Likewise. 29009 (ssse3_pmaddubsw128): Likewise. 29010 (sse3_pmaddubsw: Likewise. 29011 (ssse3_palignrti): Likewise. 29012 (ssse3_palignrdi): Likewise. 29013 290142009-04-06 Gerald Pfeifer <gerald@pfeifer.com> 29015 29016 * doc/install.texi (Specific): Fix two cross-references to MinGW. 29017 290182009-04-06 Richard Guenther <rguenther@suse.de> 29019 29020 PR tree-optimization/28868 29021 * tree-ssa-pre.c (inserted_phi_names): New bitmap to keep track 29022 of which PHI results we inserted. 29023 (insert_into_preds_of_block): Record inserted PHIs. 29024 (eliminate): Eliminate redundant PHI nodes. 29025 (init_pre): Init inserted_phi_names. 29026 290272009-04-06 Richard Guenther <rguenther@suse.de> 29028 29029 PR tree-optimization/39643 29030 * tree-ssa-ccp.c (ccp_fold): Fold REALPART_EXPRs and 29031 IMAGPART_EXPRs of complex constants. 29032 (execute_fold_all_builtins): If we folded a call queue 29033 TODO_update_address_taken. 29034 290352009-04-06 Jan Hubicka <jh@suse.cz> 29036 29037 PR middle-end/39659 29038 * except.c (remove_unreachable_regions): Propagate may_contain_throw 29039 flag. 29040 290412009-04-06 Andrew Stubbs <ams@codesourcery.com> 29042 29043 * config/sh/lib1funcs.asm (ic_invalidate): Move ICBI out of the 29044 delay slot. 29045 (ic_invalidate_array): Likewise. 29046 290472009-04-06 Hariharan Sandanagobalane <hariharan@picochip.com> 29048 29049 * calls.c (emit_library_call_value_1): Fix a problem with parameter 29050 alignment for library calls. 29051 290522009-04-06 Danny Smith <dannysmith@users.sourceforge.net> 29053 29054 * config.gcc (mingw32 tm_file): Add mingw-stdint.h. 29055 (mingw32 tm clause use_gcc_stdint): Set to wrap. 29056 * config/i386/mingw-stdint.h: New file. 29057 290582009-04-05 Richard Guenther <rguenther@suse.de> 29059 29060 PR tree-optimization/39648 29061 * tree-ssa-sccvn.c (vn_reference_fold_indirect): Work around 29062 our &A vs. &A[0] IL deficiencies. 29063 290642009-04-04 Jan Hubicka <jh@suse.cz> 29065 29066 * except.c (sjlj_find_directly_reachable_regions): Be ready for 29067 removed toplevel regions. 29068 (sjlj_mark_call_sites): Likewise. 29069 290702009-04-04 Dave Korn <dave.korn.cygwin@gmail.com> 29071 29072 * config.gcc (cygwin tm_file): Add cygwin-stdint.h. 29073 (cygwin tm clause use_gcc_stdint): Set to wrap. 29074 * config/i386/cygwin-stdint.h: New file. 29075 290762009-04-04 Richard Guenther <rguenther@suse.de> 29077 29078 * Makefile.in (tree-ssa-copy.o): Add $(CFGLOOP_H) dependency. 29079 * tree-ssa-copy.c (init_copy_prop): Do not propagate through 29080 single-argument PHIs if we are in loop-closed SSA form. 29081 * tree-vect-loop-manip.c (slpeel_add_loop_guard): Pass extra guards 29082 for the pre-condition. 29083 (slpeel_tree_peel_loop_to_edge): Likewise. 29084 (vect_build_loop_niters): Take an optional sequence to append stmts. 29085 (vect_generate_tmps_on_preheader): Likewise. 29086 (vect_do_peeling_for_loop_bound): Take extra guards for the 29087 pre-condition. 29088 (vect_do_peeling_for_alignment): Adjust. Unconditionally apply 29089 the cost model check. 29090 (vect_loop_versioning): Take stmt and stmt list to put pre-condition 29091 guards if we are going to peel. Do not apply versioning in that case. 29092 * tree-vectorizer.h (vect_loop_versioning): Adjust declaration. 29093 (vect_do_peeling_for_loop_bound): Likewise. 29094 * tree-vect-loop.c (vect_transform_loop): If we are peeling for 29095 loop bound only record extra pre-conditions, do not apply loop 29096 versioning. 29097 290982009-04-04 Richard Guenther <rguenther@suse.de> 29099 29100 * tree-ssa-operands.c (pop_stmt_changes): Remove automatic 29101 renaming code. 29102 291032009-04-04 Jan Hubicka <jh@suse.cz> 29104 29105 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Use 29106 last_basic_block for size of bb->index indexed array. 29107 * bt-load.c (compute_defs_uses_and_gen, compute_kill, 29108 compute_out, link_btr_uses, build_btr_def_use_webs, 29109 build_btr_def_use_webs, migrate_btr_defs): Likewise. 29110 291112009-04-04 Jan Hubicka <jh@suse.cz> 29112 29113 * except.c (remove_eh_handler_and_replace): Break out from ... 29114 (remove_eh_handler): ... here. 29115 (bring_to_root): New function. 29116 (remove_unreachable_regions): Collect MUST_NOT_THROW, unify runtime 29117 handled ones, bring others to root of tree. 29118 291192009-04-04 Jan Hubicka <jh@suse.cz> 29120 29121 * tree-eh.c (tree_empty_eh_handler_p): Pattern match more curefully. 29122 (all_phis_safe_to_merge): New function. 29123 (update_info): New structure. 29124 (make_eh_edge_and_update_phi, update_eh_edges): New functions. 29125 (cleanup_empty_eh): Update SSA if possible. 29126 291272009-04-04 Richard Guenther <rguenther@suse.de> 29128 29129 * tree-ssa.c (verify_ssa): With -O0 we do not need VOPs. 29130 * tree-ssa-operands.c (append_vdef): Do not append VOPs at -O0. 29131 (append_vuse): Likewise. 29132 291332009-04-04 Jakub Jelinek <jakub@redhat.com> 29134 29135 * unwind-dw2.h (_Unwind_FrameState): Add REG_UNDEFINED enum value. 29136 * unwind-dw2.c (execute_cfa_program): Set how to REG_UNDEFINED 29137 instead of REG_UNSAVED for DW_CFA_undefined. 29138 (uw_update_context_1): Handle REG_UNDEFINED the same as REG_UNSAVED. 29139 (uw_update_context): If RA column is REG_UNDEFINED, mark it as 29140 outermost frame. 29141 291422009-04-04 Richard Earnshaw <rearnsha@arm.com> 29143 29144 PR target/39501 29145 * arm.md (movsfcc): Disable if not TARGET_HARD_FLOAT. 29146 291472009-04-04 Richard Guenther <rguenther@suse.de> 29148 29149 PR tree-optimization/8781 29150 PR tree-optimization/37892 29151 * tree-ssa-sccvn.h (vn_reference_fold_indirect): Declare. 29152 * tree-ssa-sccvn.c (vn_reference_fold_indirect): New function. 29153 (valueize_refs): Call it for *& valueizations. 29154 (shared_reference_ops_from_ref): Rename to ... 29155 (valueize_shared_reference_ops_from_ref): ... this and valueize. 29156 (shared_reference_ops_from_call): Rename to ... 29157 (valueize_shared_reference_ops_from_call): ... this and valueize. 29158 (vn_reference_lookup): Update. 29159 (visit_reference_op_call): Likewise. 29160 * tree-ssa-pre.c (phi_translate_1): Fold *&. 29161 (eliminate): Value-replace the call address in call statements. 29162 291632009-04-04 Richard Guenther <rguenther@suse.de> 29164 29165 PR tree-optimization/39636 29166 * tree-ssa-forwprop.c 29167 (forward_propagate_addr_into_variable_array_index): Check for 29168 GIMPLE_ASSIGN before accessing the rhs code. 29169 291702009-04-03 Jason Merrill <jason@redhat.com> 29171 29172 * stor-layout.c (set_sizetype): Set TYPE_CANONICAL. 29173 291742009-04-03 Steve Ellcey <sje@cup.hp.com> 29175 29176 * config/ia64/ia64.md (extendsfdf2, extendsfxf2, extenddfxf2, 29177 truncdfsf2, truncxfsf2, truncxfdf2, floatdixf2, fix_truncsfdi2, 29178 fix_truncdfdi2, fix_truncxfdi2, fix_truncxfdi2_alts, floatunsdisf2, 29179 floatunsdidf2, floatunsdixf2, fixuns_truncsfdi2, fixuns_truncdfdi2, 29180 fixuns_truncxfdi2, fixuns_truncxfdi2_alts, divsi3_internal, 29181 smuldi3_highpart, umuldi3_highpart, ctzdi2, *getf_exp_xf, 29182 divdi3_internal_lat, divdi3_internal_thr, mulditi3, *mulditi3_internal, 29183 umulditi3, *umulditi3_internal, addsf3, mulsf3, abssf2, negsf2, 29184 *nabssf2, sminsf3, smaxsf3, *maddsf4, *msubsf4, *nmulsf3, *nmaddsf4, 29185 *nmaddsf4_alts, divsf3, *sqrt_approx, sqrtsf2, sqrtsf2_internal_thr, 29186 adddf3, *adddf3_trunc, muldf3, *muldf3_trunc, absdf2, negdf2, *nabsdf2, 29187 smindf3, smaxdf3, *madddf4, *madddf4_trunc, *msubdf4, *msubdf4_trunc, 29188 *nmuldf3, *nmuldf3_trunc, *nmadddf4, *nmadddf4_alts, *nmadddf4_truncsf, 29189 *nmadddf4_truncsf_alts, divdf3, sqrtdf2, sqrtdf2_internal_thr, divxf3, 29190 sqrtxf2, sqrtxf2_internal_thr, *recip_approx): 29191 Use fr_reg_or_fp01_operand instead of fr_register_operand 29192 29193 * config/ia64/div.md (extend<mode>rf2, truncrf<mode>2, 29194 recip_approx_rf, divsf3_internal_thr, divsf3_internal_lat, 29195 divdf3_internal_thr, divdf3_internal_lat divxf3_internal): Ditto. 29196 291972009-04-03 Vladimir Makarov <vmakarov@redhat.com> 29198 29199 PR rtl-optimization/39607 29200 PR rtl-optimization/39631 29201 29202 Revert: 29203 29204 2009-03-30 Vladimir Makarov <vmakarov@redhat.com> 29205 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out 29206 instead of DF_LR_OUT. 29207 * ira-lives.c (process_bb_node_lives): Ditto. 29208 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in} 29209 instead of DF_LR_{OUT,IN}. 29210 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto. 29211 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto. 29212 292132009-04-03 Steven Bosscher <steven@gcc.gnu.org> 29214 29215 * omp-low.c (pass_expand_omp): Don't claim to provide PROP_gimple_lomp. 29216 (execute_lower_omp): Always run but take the short way out if -fopenmp 29217 is not given. 29218 (gate_lower_omp): Remove, forcing the pass manager to always run the 29219 pass and always set PROP_gimple_lomp. 29220 (pass_lower_omp): Remove gate function. 29221 * matrix-reorg.c (pass_ipa_matrix_reorg): Don't claim to provide 29222 PROP_trees. Instead, require it. 29223 * ipa-cp.c (pass_ipa_cp): Likewise. 29224 * ipa-inline.c (pass_early_inline): Don't claim to provide PROP_cfg. 29225 (pass_ipa_early_inline, pass_inline_parameters, pass_ipa_inline): Idem. 29226 * tree-profile.c (pass_tree_profile): Don't claim to provide PROP_cfg 29227 and PROP_gimple_leh. 29228 292292009-04-03 Richard Guenther <rguenther@suse.de> 29230 29231 PR middle-end/13146 29232 PR tree-optimization/23940 29233 PR tree-optimization/33237 29234 PR middle-end/33974 29235 PR middle-end/34093 29236 PR tree-optimization/36201 29237 PR tree-optimization/36230 29238 PR tree-optimization/38049 29239 PR tree-optimization/38207 29240 PR tree-optimization/38230 29241 PR tree-optimization/38301 29242 PR tree-optimization/38585 29243 PR middle-end/38895 29244 PR tree-optimization/38985 29245 PR tree-optimization/39299 29246 * tree-ssa-structalias.h: Remove. 29247 * tree-ssa-operands.h (NULL_USE_OPERAND_P): Make of type use_operand_p. 29248 (NULL_DEF_OPERAND_P): Make of type def_operand_p. 29249 (struct vuse_element_d): Remove. 29250 (struct vuse_vec_d): Likewise. 29251 (VUSE_VECT_NUM_ELEM, VUSE_VECT_ELEMENT_NC, VUSE_ELEMENT_PTR_NC, 29252 VUSE_ELEMENT_VAR_NC, VUSE_VECT_ELEMENT, VUSE_ELEMENT_PTR, 29253 SET_VUSE_VECT_ELEMENT, SET_VUSE_ELEMENT_VAR, SET_VUSE_ELEMENT_PTR, 29254 VUSE_ELEMENT_VAR): Likewise. 29255 (struct voptype_d): Likewise. 29256 (NUM_VOP_FREE_BUCKETS): Likewise. 29257 (struct ssa_operands): Remove vop_free_buckets and mpt_table fields. 29258 (struct stmt_operands_d): Remove. 29259 (VUSE_OP_PTR, VUSE_OP, SET_VUSE_OP, VUSE_NUM, VUSE_VECT, 29260 VDEF_RESULT_PTR, VDEF_RESULT, VDEF_OP_PTR, VDEF_OP, SET_VDEF_OP, 29261 VDEF_NUM, VDEF_VECT): Likewise. 29262 (copy_virtual_operands): Remove. 29263 (operand_build_cmp): Likewise. 29264 (create_ssa_artificial_load_stmt): Likewise. 29265 (enum ssa_op_iter_type): Remove ssa_op_iter_vdef. 29266 (struct ssa_operand_iterator_d): Remove vuses, vdefs, mayusesm 29267 vuse_index and mayuse_index members. Pack and move done and iter_type 29268 members to the front. 29269 (SSA_OP_VMAYUSE): Remove. 29270 (SSA_OP_VIRTUAL_USES): Adjust. 29271 (FOR_EACH_SSA_VDEF_OPERAND): Remove. 29272 (unlink_stmt_vdef): Declare. 29273 (add_to_addressable_set): Remove. 29274 * tree-vrp.c (stmt_interesting_for_vrp): Adjust. 29275 (vrp_visit_stmt): Likewise. 29276 * doc/tree-ssa.texi (Alias analysis): Update. 29277 * doc/invoke.texi (max-aliased-vops): Remove docs. 29278 (avg-aliased-vops): Likewise. 29279 * tree-into-ssa.c (syms_to_rename): Remove. 29280 (need_to_update_vops_p): Likewise. 29281 (need_to_initialize_update_ssa_p): Rename to ... 29282 (update_ssa_initialized_fn): ... this. Track function we are 29283 initialized for. 29284 (symbol_marked_for_renaming): Simplify. 29285 (add_new_name_mapping): Do not set need_to_update_vops_p. 29286 (dump_currdefs): Use SYMS_TO_RENAME. 29287 (rewrite_update_stmt): Always walk all uses/defs. 29288 (dump_update_ssa): Adjust. 29289 (init_update_ssa): Take function argument. Track what we are 29290 initialized for. 29291 (delete_update_ssa): Reset SYMS_TO_RENAME and update_ssa_initialized_fn. 29292 (create_new_def_for): Initialize for cfun, assert we are initialized 29293 for cfun. 29294 (mark_sym_for_renaming): Simplify. 29295 (mark_set_for_renaming): Do not initialize update-ssa. 29296 (need_ssa_update_p): Simplify. Take function argument. 29297 (name_mappings_registered_p): Assert we ask for the correct function. 29298 (name_registered_for_update_p): Likewise. 29299 (ssa_names_to_replace): Likewise. 29300 (release_ssa_name_after_update_ssa): Likewise. 29301 (update_ssa): Likewise. Use SYMS_TO_RENAME. 29302 (dump_decl_set): Do not print a newline. 29303 (debug_decl_set): Do it here. 29304 (dump_update_ssa): And here. 29305 * tree-ssa-loop-im.c (move_computations): Adjust. 29306 (movement_possibility): Likewise. 29307 (determine_max_movement): Likewise. 29308 (gather_mem_refs_stmt): Likewise. 29309 * tree-dump.c (dequeue_and_dump): Do not handle SYMBOL_MEMORY_TAG 29310 or NAME_MEMORY_TAG. 29311 * tree-complex.c (update_all_vops): Remove. 29312 (expand_complex_move): Adjust. 29313 * tree-ssa-loop-niter.c (chain_of_csts_start): Use NULL_TREE. 29314 Simplify test for memory referencing statement. Exclude 29315 non-invariant ADDR_EXPRs. 29316 * tree-pretty-print.c (dump_generic_node): Do not handle memory tags. 29317 * tree-loop-distribution.c (generate_memset_zero): Adjust. 29318 (rdg_flag_uses): Likewise. 29319 * tree-tailcall.c (suitable_for_tail_opt_p): Remove memory-tag 29320 related code. 29321 (tree_optimize_tail_calls_1): Also split the 29322 edge from the entry block if we have degenerate PHI nodes in 29323 the first basic block. 29324 * tree.c (init_ttree): Remove memory-tag related code. 29325 (tree_code_size): Likewise. 29326 (tree_node_structure): Likewise. 29327 (build7_stat): Re-write to be build6_stat. 29328 * tree.h (MTAG_P, TREE_MEMORY_TAG_CHECK, TMR_TAG): Remove. 29329 (SSA_VAR_P): Adjust. 29330 (struct tree_memory_tag): Remove. 29331 (struct tree_memory_partition_tag): Likewise. 29332 (union tree_node): Adjust. 29333 (build7): Re-write to be build6. 29334 * tree-pass.h (pass_reset_cc_flags): Remove. 29335 (TODO_update_address_taken): New flag. 29336 (pass_simple_dse): Remove. 29337 * ipa-cp.c (ipcp_update_callgraph): Update SSA form. 29338 * params.h (MAX_ALIASED_VOPS): Remove. 29339 (AVG_ALIASED_VOPS): Likewise. 29340 * omp-low.c (expand_omp_taskreg): Update SSA form. 29341 * tree-ssa-dse.c (dse_optimize_stmt): Properly query if the rhs 29342 aliases the lhs in a copy stmt. 29343 * tree-ssa-dse.c (struct address_walk_data): Remove. 29344 (memory_ssa_name_same): Likewise. 29345 (memory_address_same): Likewise. 29346 (get_kill_of_stmt_lhs): Likewise. 29347 (dse_possible_dead_store_p): Simplify, use the oracle. Handle 29348 unused stores. Look through PHI nodes into post-dominated regions. 29349 (dse_optimize_stmt): Simplify. Properly remove stores. 29350 (tree_ssa_dse): Compute dominators. 29351 (execute_simple_dse): Remove. 29352 (pass_simple_dse): Likewise. 29353 * ipa-reference.c (scan_stmt_for_static_refs): Open-code 29354 gimple_loaded_syms and gimple_stored_syms computation. 29355 * toplev.c (dump_memory_report): Dump alias and pta stats. 29356 * tree-ssa-sccvn.c (vn_reference_compute_hash): Simplify. 29357 (vn_reference_eq): Likewise. 29358 (vuses_to_vec, copy_vuses_from_stmt, vdefs_to_vec, 29359 copy_vdefs_from_stmt, shared_lookup_vops, shared_vuses_from_stmt, 29360 valueize_vuses): Remove. 29361 (get_def_ref_stmt_vuses): Simplify. Rename to ... 29362 (get_def_ref_stmt_vuse): ... this. 29363 (vn_reference_lookup_2): New function. 29364 (vn_reference_lookup_pieces): Use walk_non_aliased_vuses for 29365 walking equivalent vuses. Simplify. 29366 (vn_reference_lookup): Likewise. 29367 (vn_reference_insert): Likewise. 29368 (vn_reference_insert_pieces): Likewise. 29369 (visit_reference_op_call): Simplify. 29370 (visit_reference_op_load): Likewise. 29371 (visit_reference_op_store): Likewise. 29372 (init_scc_vn): Remove shared_lookup_vuses initialization. 29373 (free_scc_vn): Remove shared_lookup_vuses freeing. 29374 (sort_vuses, sort_vuses_heap): Remove. 29375 (get_ref_from_reference_ops): Export. 29376 * tree-ssa-sccvn.h (struct vn_reference_s): Replace vuses 29377 vector with single vuse pointer. 29378 (vn_reference_lookup_pieces, vn_reference_lookup, 29379 vn_reference_insert, vn_reference_insert_pieces): Adjust prototypes. 29380 (shared_vuses_from_stmt): Remove. 29381 (get_ref_from_reference_ops): Declare. 29382 * tree-ssa-loop-manip.c (slpeel_can_duplicate_loop_p): Adjust. 29383 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Remove 29384 memory-tag related code. 29385 * tree-ssa-ccp.c (get_symbol_constant_value): Remove memory-tag code. 29386 (likely_value): Add comment, skip static-chain of call statements. 29387 (surely_varying_stmt_p): Adjust. 29388 (gimplify_and_update_call_from_tree): Likewise. 29389 (execute_fold_all_builtins): Do not rebuild alias info. 29390 (gimplify_and_update_call_from_tree): Properly update VOPs. 29391 * tree-ssa-loop-ivopts.c (get_ref_tag): Remove. 29392 (copy_ref_info): Remove memory-tag related code. 29393 * tree-call-cdce.c (tree_call_cdce): Rename the VOP. 29394 * ipa-pure-const.c (check_decl): Remove memory-tag related code. 29395 (check_stmt): Open-code gimple_loaded_syms and gimple_stored_syms 29396 computation. 29397 * tree-ssa-dom.c (gimple_p): Remove typedef. 29398 (eliminate_redundant_computations): Adjust. 29399 (record_equivalences_from_stmt): Likewise. 29400 (avail_expr_hash): Likewise. 29401 (avail_expr_eq): Likewise. 29402 * tree-ssa-propagate.c (update_call_from_tree): Properly update VOPs. 29403 (stmt_makes_single_load): Likewise. 29404 (stmt_makes_single_store): Likewise. 29405 * tree-ssa-alias.c: Rewrite completely. 29406 (debug_memory_partitions, dump_mem_ref_stats, debug_mem_ref_stats, 29407 debug_mem_sym_stats, dump_mem_sym_stats_for_var, 29408 debug_all_mem_sym_stats, debug_mp_info, update_mem_sym_stats_from_stmt, 29409 delete_mem_ref_stats, create_tag_raw, dump_points_to_info, 29410 dump_may_aliases_for, debug_may_aliases_for, new_type_alias): 29411 Remove public functions. 29412 (pass_reset_cc_flags): Remove. 29413 (pass_build_alias): Move ... 29414 * tree-ssa-structalias.c (pass_build_alias): ... here. 29415 * tree-ssa-alias.c (may_be_aliased): Move ... 29416 * tree-flow-inline.h (may_be_aliased): ... here. 29417 tree-ssa-alias.c (struct count_ptr_d, count_ptr_derefs, 29418 count_uses_and_derefs): Move ... 29419 * gimple.c: ... here. 29420 * gimple.h (count_uses_and_derefs): Declare. 29421 * tree-ssa-alias.c (dump_alias_stats, ptr_deref_may_alias_global_p, 29422 ptr_deref_may_alias_decl_p, ptr_derefs_may_alias_p, 29423 same_type_for_tbaa, nonaliasing_component_refs_p, decl_refs_may_alias_p, 29424 indirect_ref_may_alias_decl_p, indirect_refs_may_alias_p, 29425 ref_maybe_used_by_call_p, ref_maybe_used_by_stmt_p, 29426 call_may_clobber_ref_p, stmt_may_clobber_ref_p, maybe_skip_until, 29427 get_continuation_for_phi, walk_non_aliased_vuses, walk_aliased_vdefs): 29428 New functions. 29429 * tree-dfa.c (refs_may_alias_p): Move ... 29430 * tree-ssa-alias.c (refs_may_alias_p): ... here. Extend. 29431 * tree-ssa-alias.h: New file. 29432 * tree-ssa-sink.c (is_hidden_global_store): Adjust. 29433 (statement_sink_location): Likewise. 29434 * opts.c (decode_options): Do not adjust max-aliased-vops or 29435 avg-aliased-vops values. 29436 * timevar.def (TV_TREE_MAY_ALIAS): Remove. 29437 (TV_CALL_CLOBBER): Likewise. 29438 (TV_FLOW_SENSITIVE): Likewise. 29439 (TV_FLOW_INSENSITIVE): Likewise. 29440 (TV_MEMORY_PARTITIONING): Likewise. 29441 (TV_ALIAS_STMT_WALK): New timevar. 29442 * tree-ssa-loop-ivcanon.c (empty_loop_p): Adjust. 29443 * tree-ssa-address.c (create_mem_ref_raw): Use build6. 29444 (get_address_description): Remove memory-tag related code. 29445 * tree-ssa-ifcombine.c (bb_no_side_effects_p): Adjust. 29446 * treestruct.def (TS_MEMORY_TAG, TS_MEMORY_PARTITION_TAG): Remove. 29447 * tree-eh.c (cleanup_empty_eh): Do not leave stale SSA_NAMEs 29448 and immediate uses in statements. Document. 29449 * gimple-pretty-print.c (dump_gimple_mem_ops): Adjust. 29450 (dump_symbols): Remove. 29451 (dump_gimple_mem_ops): Do not dump loaded or stored syms. 29452 * alias.c (get_deref_alias_set): New function split out from ... 29453 (get_alias_set): ... here. 29454 * alias.h (get_deref_alias_set): Declare. 29455 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Remove unused 29456 type parameter. Remove restrict pointer handling. Create a 29457 ref-all pointer in case type-based alias sets do not conflict. 29458 (vect_analyze_data_refs): Remove SMT related code. 29459 * tree-vect-stmts.c (vectorizable_store): Re-instantiate TBAA assert. 29460 (vectorizable_load): Likewise. 29461 * tree-data-ref.h (struct dr_alias): Remove symbol_tag field. 29462 (DR_SYMBOL_TAG, DR_VOPS): Remove. 29463 * tree-data-ref.c (dr_may_alias_p): Use the alias-oracle. 29464 Ignore vops and SMTs. 29465 (dr_analyze_alias): Likewise.. 29466 (free_data_ref): Likewise. 29467 (create_data_ref): Likewise. 29468 (analyze_all_data_dependences): Likewise. 29469 (get_references_in_stmt): Adjust. 29470 * tree-flow-inline.h (gimple_aliases_computed_p, 29471 gimple_addressable_vars, gimple_call_clobbered_vars, 29472 gimple_call_used_vars, gimple_global_var, may_aliases, memory_partition, 29473 factoring_name_p, mark_call_clobbered, clear_call_clobbered, 29474 compare_ssa_operands_equal, symbol_mem_tag, set_symbol_mem_tag, 29475 gimple_mem_ref_stats): Remove. 29476 (gimple_vop): New function. 29477 (op_iter_next_use): Remove vuses and mayuses cases. 29478 (op_iter_next_def): Remove vdefs case. 29479 (op_iter_next_tree): Remove vuses, mayuses and vdefs cases. 29480 (clear_and_done_ssa_iter): Do not set removed fields. 29481 (op_iter_init): Likewise. Skip vuse and/or vdef if requested. 29482 Assert we are not iterating over vuses or vdefs if not also 29483 iterating over uses or defs. 29484 (op_iter_init_use): Likewise. 29485 (op_iter_init_def): Likewise. 29486 (op_iter_next_vdef): Remove. 29487 (op_iter_next_mustdef): Likewise. 29488 (op_iter_init_vdef): Likewise. 29489 (compare_ssa_operands_equal): Likewise. 29490 (link_use_stmts_after): Handle vuse operand. 29491 (is_call_used): Use is_call_clobbered. 29492 (is_call_clobbered): Global variables are always call clobbered, 29493 query the call-clobbers bitmap. 29494 (mark_call_clobbered): Ignore global variables. 29495 (clear_call_clobbered): Likewise. 29496 * tree-ssa-coalesce.c (create_outofssa_var_map): Adjust 29497 virtual operands sanity check. 29498 * tree.def (NAME_MEMORY_TAG, SYMBOL_MEMORY_TAG, MEMORY_PARTITION_TAG): 29499 Remove. 29500 (TARGET_MEM_REF): Remove TMR_TAG operand. 29501 * tree-dfa.c (add_referenced_var): Initialize call-clobber state. 29502 Remove call-clobber related code. 29503 (remove_referenced_var): Likewise. Do not clear mpt or symbol_mem_tag. 29504 (dump_variable): Do not dump SMTs, memory stats, may-aliases or 29505 partitions or escape reason. 29506 (get_single_def_stmt, get_single_def_stmt_from_phi, 29507 get_single_def_stmt_with_phi): Remove. 29508 (dump_referenced_vars): Tidy. 29509 (get_ref_base_and_extent): Allow bare decls. 29510 (collect_dfa_stats): Adjust. 29511 * graphite.c (rename_variables_in_stmt): Adjust. 29512 (graphite_copy_stmts_from_block): Likewise. 29513 (translate_clast): Likewise. 29514 * tree-ssa-pre.c (struct bb_bitmap_sets): Add expr_dies bitmap. 29515 (EXPR_DIES): New. 29516 (translate_vuse_through_block): Use the oracle. 29517 (phi_translate_1): Adjust. 29518 (value_dies_in_block_x): Use the oracle. Cache the outcome 29519 in EXPR_DIES. 29520 (valid_in_sets): Check if the VUSE for 29521 a REFERENCE is available. 29522 (eliminate): Do not remove stmts during elimination, 29523 instead queue and remove them afterwards. 29524 (do_pre): Do not rebuild alias info. 29525 (pass_pre): Run TODO_rebuild_alias before PRE. 29526 * tree-ssa-live.c (remove_unused_locals): Remove memory-tag code. 29527 * tree-sra.c (sra_walk_function): Use gimple_references_memory_p. 29528 (mark_all_v_defs_stmt): Remove. 29529 (mark_all_v_defs_seq): Adjust. 29530 (sra_replace): Likewise. 29531 (scalarize_use): Likewise. 29532 (scalarize_copy): Likewise. 29533 (scalarize_init): Likewise. 29534 (scalarize_ldst): Likewise. 29535 (todoflags): Remove. 29536 (tree_sra): Do not rebuild alias info. 29537 (tree_sra_early): Adjust. 29538 (pass_sra): Run TODO_update_address_taken before SRA. 29539 * tree-predcom.c (set_alias_info): Remove. 29540 (prepare_initializers_chain): Do not call it. 29541 (mark_virtual_ops_for_renaming): Adjust. 29542 (mark_virtual_ops_for_renaming_list): Remove. 29543 (initialize_root_vars): Adjust. 29544 (initialize_root_vars_lm): Likewise. 29545 (prepare_initializers_chain): Likewise. 29546 * tree-ssa-copy.c (may_propagate_copy): Remove memory-tag related code. 29547 (may_propagate_copy_into_stmt): Likewise. 29548 (merge_alias_info): Do nothing for now. 29549 (propagate_tree_value_into_stmt): Adjust. 29550 (stmt_may_generate_copy): Likewise. 29551 * tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): Do 29552 not mark symbols for renaming. 29553 (forward_propagate_addr_expr): Match up push/pop_stmt_changes 29554 with the same statement, make sure to update the new pointed-to one. 29555 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not copy 29556 call statements, do not mark symbols for renaming. 29557 (mark_operand_necessary): Dump something. 29558 (ref_may_be_aliased): New function. 29559 (mark_aliased_reaching_defs_necessary_1): New helper function. 29560 (mark_aliased_reaching_defs_necessary): Likewise. 29561 (mark_all_reaching_defs_necessary_1): Likewise. 29562 (mark_all_reaching_defs_necessary): Likewise. 29563 (propagate_necessity): Do not process virtual PHIs. For 29564 non-aliased loads mark all reaching definitions as necessary. 29565 For aliased loads and stores mark the immediate dominating 29566 aliased clobbers as necessary. 29567 (visited): New global static. 29568 (perform_tree_ssa_dce): Free visited bitmap after propagating 29569 necessity. 29570 (remove_dead_phis): Perform simple dead virtual PHI removal. 29571 (remove_dead_stmt): Properly unlink virtual operands when 29572 removing stores. 29573 (eliminate_unnecessary_stmts): Schedule PHI removal after 29574 stmt removal. 29575 * tree-ssa-ter.c (is_replaceable_p): Adjust. 29576 (process_replaceable): Likewise. 29577 (find_replaceable_in_bb): Likewise. 29578 * tree-ssa.c (verify_ssa_name): Verify all VOPs are 29579 based on the single gimple vop. 29580 (verify_flow_insensitive_alias_info): Remove. 29581 (verify_flow_sensitive_alias_info): Likewise. 29582 (verify_call_clobbering): Likewise. 29583 (verify_memory_partitions): Likewise. 29584 (verify_alias_info): Likewise. 29585 (verify_ssa): Adjust.. 29586 (execute_update_addresses_taken): Export. Update SSA 29587 manually. Optimize only when optimizing. Use a local bitmap. 29588 (pass_update_address_taken): Remove TODO_update_ssa, add 29589 TODO_dump_func. 29590 (pass_update_address_taken): Just use TODO_update_address_taken. 29591 (init_tree_ssa): Do not initialize addressable_vars. 29592 (verify_ssa): Verify new VUSE / VDEF properties. 29593 Verify that all stmts definitions have the stmt as SSA_NAME_DEF_STMT. 29594 Do not call verify_alias_info. 29595 (delete_tree_ssa): Clear the VUSE, VDEF operands. 29596 Do not free the loaded and stored syms bitmaps. Reset the escaped 29597 and callused solutions. Do not free addressable_vars. 29598 Remove memory-tag related code. 29599 (warn_uninitialized_var): Aliases are always available. 29600 * tree-ssa-loop-prefetch.c (gather_memory_references): Adjust. 29601 * lambda-code.c (can_put_in_inner_loop): Adjust. 29602 (can_put_after_inner_loop): Likewise. 29603 (perfect_nestify): Likewise. 29604 * tree-vect-stmts.c (vect_stmt_relevant_p): Adjust. 29605 (vect_gen_widened_results_half): Remove CALL_EXPR handling. 29606 (vectorizable_conversion): Do not mark symbols for renaming. 29607 * tree-inline.c (remap_gimple_stmt): Clear VUSE/VDEF. 29608 (expand_call_inline): Unlink the calls virtual operands before 29609 replacing it. 29610 (tree_function_versioning): Do not call update_ssa if we are not 29611 updating clones. Simplify. 29612 * tree-ssa-phiprop.c (phivn_valid_p): Adjust. 29613 (propagate_with_phi): Likewise.. 29614 * tree-outof-ssa.c (create_temp): Remove memory tag and call 29615 clobber code. Assert we are not aliased or global. 29616 * tree-flow.h: Include tree-ssa-alias.h 29617 (enum escape_type): Remove. 29618 (struct mem_sym_stats_d): Likewise. 29619 (struct mem_ref_stats_d): Likewise. 29620 (struct gimple_df): Add vop member. Remove global_var, 29621 call_clobbered_vars, call_used_vars, addressable_vars, 29622 aliases_compted_p and mem_ref_stats members. Add syms_to_rename, 29623 escaped and callused members. 29624 (struct ptr_info_def): Remove all members, add points-to solution 29625 member pt. 29626 (struct var_ann_d): Remove in_vuse_list, in_vdef_list, 29627 call_clobbered, escape_mask, mpt and symbol_mem_tag members. 29628 * Makefile.in (TREE_FLOW_H): Add tree-ssa-alias.h. 29629 (tree-ssa-structalias.o): Remove tree-ssa-structalias.h. 29630 (tree-ssa-alias.o): Likewise. 29631 (toplev.o): Add tree-ssa-alias.h 29632 (GTFILES): Remove tree-ssa-structalias.h, add tree-ssa-alias.h. 29633 * gimple.c (gimple_set_bb): Fix off-by-one error. 29634 (is_gimple_reg): Do not handle memory tags. 29635 (gimple_copy): Also copy virtual operands. 29636 Delay updating the statement. Do not reset loaded and stored syms. 29637 (gimple_set_stored_syms): Remove. 29638 (gimple_set_loaded_syms): Likewise. 29639 (gimple_call_copy_skip_args): Copy the virtual operands 29640 and mark the new statement modified. 29641 * tree-ssa-structalias.c (may_alias_p): Remove. 29642 (set_uids_in_ptset): Take the alias set to prune with as 29643 parameter. Fold in the alias test of may_alias_p. 29644 (compute_points_to_sets): Compute whether a ptr is dereferenced 29645 in a local sbitmap. 29646 (process_constraint): Deal with &ANYTHING on the lhs, reject all 29647 other ADDRESSOF constraints on the lhs. 29648 (get_constraint_for_component_ref): Assert that we don't get 29649 ADDRESSOF constraints from the base of the reference. 29650 Properly generate UNKNOWN_OFFSET for DEREF if needed. 29651 (struct variable_info): Remove collapsed_to member. 29652 (get_varinfo_fc): Remove. 29653 (new_var_info): Do not set collapsed_to. 29654 (dump_constraint): Do not follow cycles. 29655 (dump_constraint_graph): Likewise. 29656 (build_pred_graph): Likewise. 29657 (build_succ_graph): Likewise. 29658 (rewrite_constraints): Likewise. 29659 (do_simple_structure_copy): Remove. 29660 (do_rhs_deref_structure_copy): Remove. 29661 (do_lhs_deref_structure_copy): Remove. 29662 (collapse_rest_of_var): Remove. 29663 (do_structure_copy): Re-implement. 29664 (pta_stats): New global variable. 29665 (dump_pta_stats): New function. 29666 (struct constraint_expr): Make offset signed. 29667 (UNKNOWN_OFFSET): Define special value. 29668 (dump_constraint): Dump UNKNOWN_OFFSET as UNKNOWN. 29669 (solution_set_expand): New helper function split out from ... 29670 (do_sd_constraint): ... here. 29671 (solution_set_add): Handle UNKNOWN_OFFSET. Handle negative offsets. 29672 (do_ds_constraint): Likewise. 29673 (do_sd_constraint): Likewise. Do not special-case ESCAPED = *ESCAPED 29674 and CALLUSED = *CALLUSED. 29675 (set_union_with_increment): Make inc argument signed. 29676 (type_safe): Remove. 29677 (get_constraint_for_ptr_offset): Handle unknown and negative 29678 constant offsets. 29679 (first_vi_for_offset): Handle offsets before start. Bail 29680 out early for offsets beyond the variable extent. 29681 (first_or_preceding_vi_for_offset): New function. 29682 (init_base_vars): Add ESCAPED = ESCAPED + UNKNOWN_OFFSET constraint. 29683 Together with ESCAPED = *ESCAPED this properly computes reachability. 29684 (find_what_var_points_to): New function. 29685 (find_what_p_points_to): Implement in terms of find_what_var_points_to. 29686 (pt_solution_reset, pt_solution_empty_p, pt_solution_includes_global, 29687 pt_solution_includes_1, pt_solution_includes, pt_solutions_intersect_1, 29688 pt_solutions_intersect): New functions. 29689 (compute_call_used_vars): Remove. 29690 (compute_may_aliases): New main entry into PTA computation. 29691 * gimple.h (gimple_p): New typedef. 29692 (struct gimple_statement_base): Remove references_memory_p. 29693 (struct gimple_statement_with_memory_ops_base): Remove 29694 vdef_ops, vuse_ops, stores and loads members. Add vdef and vuse 29695 members. 29696 (gimple_vuse_ops, gimple_set_vuse_ops, gimple_vdef_ops, 29697 gimple_set_vdef_ops, gimple_loaded_syms, gimple_stored_syms, 29698 gimple_set_references_memory): Remove. 29699 (gimple_vuse_op, gimple_vdef_op, gimple_vuse, gimple_vdef, 29700 gimple_vuse_ptr, gimple_vdef_ptri, gimple_set_vuse, gimple_set_vdef): 29701 New functions. 29702 * tree-cfg.c (move_block_to_fn): Fix off-by-one error. 29703 (verify_expr): Allow RESULT_DECL. 29704 (gimple_duplicate_bb): Do not copy virtual operands. 29705 (gimple_duplicate_sese_region): Adjust. 29706 (gimple_duplicate_sese_tail): Likewise. 29707 (mark_virtual_ops_in_region): Remove. 29708 (move_sese_region_to_fn): Do not call it. 29709 * passes.c (init_optimization_passes): Remove pass_reset_cc_flags 29710 and pass_simple_dse. 29711 (execute_function_todo): Handle TODO_update_address_taken, 29712 call execute_update_addresses_taken for TODO_rebuild_alias. 29713 (execute_todo): Adjust. 29714 (execute_one_pass): Init dump files early. 29715 * ipa-struct-reorg.c (finalize_var_creation): Do not mark vars 29716 call-clobbered. 29717 (create_general_new_stmt): Clear vops. 29718 * tree-ssa-reassoc.c (get_rank): Adjust. 29719 * tree-vect-slp.c (vect_create_mask_and_perm): Do not mark 29720 symbols for renaming. 29721 * params.def (PARAM_MAX_ALIASED_VOPS): Remove. 29722 (PARAM_AVG_ALIASED_VOPS): Likewise. 29723 * tree-ssanames.c (init_ssanames): Allocate SYMS_TO_RENAME. 29724 (duplicate_ssa_name_ptr_info): No need to copy the shared bitmaps. 29725 * tree-ssa-operands.c: Simplify for new virtual operand representation. 29726 (operand_build_cmp, copy_virtual_operands, 29727 create_ssa_artificial_load_stmt, add_to_addressable_set, 29728 gimple_add_to_addresses_taken): Remove public functions. 29729 (unlink_stmt_vdef): New function. 29730 297312009-04-03 Alan Modra <amodra@bigpond.net.au> 29732 29733 * config.gcc (powerpc-*-linux*): Merge variants. 29734 297352009-04-02 Chao-ying Fu <fu@mips.com> 29736 James Grosbach <james.grosbach@microchip.com> 29737 29738 * config/mips/mips.c (mips_frame_info): Add acc_mask, num_acc, 29739 num_cop0_regs, acc_save_offset, cop0_save_offset, acc_sp_offset, 29740 cop0_sp_offset. 29741 (machine_function): Add interrupt_handler_p, use_shadow_register_set_p, 29742 keep_interrupts_masked_p, use_debug_exception_return_p. 29743 (mips_attribute_table): Add interrupt, use_shadow_register_set, 29744 keep_interrupts_masked, use_debug_exception_return. 29745 (mips_interrupt_type_p, mips_use_shadow_register_set_p, 29746 mips_keep_interrupts_masked_p, mips_use_debug_exception_return_p): 29747 New functions. 29748 (mips_function_ok_for_sibcall): Return false for interrupt handlers. 29749 (mips_print_operand): Process COP0 registers to print $0 .. $31 29750 correctly for GAS to process. 29751 (mips_interrupt_extra_call_saved_reg_p): New function. 29752 (mips_cfun_call_saved_reg_p): For interrupt handlers, we need to check 29753 extra registers. 29754 (mips_cfun_might_clobber_call_saved_reg_p): Likewise. 29755 (mips_compute_frame_info): Add supports for interrupt context that 29756 includes doubleword accumulators and COP0 registers. 29757 (mips_for_each_saved_acc): New function. 29758 (mips_for_each_saved_gpr_and_fpr): Change the function name from 29759 mips_for_each_saved_reg. 29760 (mips_save_reg): Save accumulators. 29761 (mips_kernel_reg_p): A new for_each_rtx callback. 29762 (mips_expand_prologue): Support interrupt handlers. 29763 (mips_restore_reg): Restore accumulators. 29764 (mips_expand_epilogue): Support interrupt handlers. 29765 (mips_can_use_return_insn): Return false for interrupt handlers. 29766 (mips_epilogue_uses): New function. 29767 * config/mips/mips.md (UNSPEC_ERET, UNSPEC_DERET, UNSPEC_DI, 29768 UNSPEC_EHB, UNSPEC_RDPGPR, UNSPEC_COP0): New UNSPEC. 29769 (mips_eret, mips_deret, mips_di, mips_ehb, mips_rdpgpr, 29770 cop0_move): New instructions. 29771 * config/mips/mips-protos.h (mips_epilogue_uses): Declare. 29772 * config/mips/mips.h (K0_REG_NUM, K1_REG_NUM, KERNEL_REG_P): New 29773 defines. 29774 (COP0_STATUS_REG_NUM, COP0_CAUSE_REG_NUM, COP0_EPC_REG_NUM): 29775 New defines. 29776 (CAUSE_IPL, SR_IPL, SR_EXL, SR_IE): New defines. 29777 (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): For 29778 interrupt handlers, we use K0 as the temporary register. 29779 (EPILOGUE_USES): Change to a function call. 29780 * config/mips/sde.h (MIPS_EPILOGUE_TEMP_REGNUM): For interrupt 29781 handlers, we use K0 as the temporary register. 29782 29783 * doc/extend.texi (Function Attributes): Document interrupt, 29784 use_shadow_register_set, keep_interrupts_masked, 29785 use_debug_exception_return for MIPS attributes. 29786 297872009-04-03 Alan Modra <amodra@bigpond.net.au> 29788 29789 * config.gcc (powerpc64-*-gnu*): Add rs6000/default64.h to tm_file. 29790 Remove a number of t-files from tmake_file. 29791 * config/rs6000/sysv4.opt (mprototype): Name variable target_prototype. 29792 * config/rs6000/sysv4.h (TARGET_PROTOTYPE): Define. 29793 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set 29794 target_prototype, not TARGET_PROTOTYPE. 29795 (LINK_OS_GNU_SPEC): Define. 29796 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Delete tramp.S 29797 and darwin-ldoubdle.c. 29798 297992009-04-02 Michael Meissner <meissner@linux.vnet.ibm.com> 29800 29801 PR driver/39293 29802 * gcc.c (save_temps_flag): Add support for -save-temps=obj. 29803 (cpp_options): Ditto. 29804 (default_compilers): Ditto. 29805 (display_help): Ditto. 29806 (process_command): Ditto. 29807 (do_spec_1): Ditto. 29808 (set_input): Use lbasename instead of duplicate code. 29809 (save_temps_prefix): New static for -save-temps=obj. 29810 (save_temps_length): Ditto. 29811 29812 * doc/invoke.texi (-save-temps=obj): Document new variant to 29813 -save-temps switch. 29814 298152009-04-02 Jeff Law <law@redhat.com> 29816 29817 * reload1.c (fixup_eh_region_notes): Remove write-only "trap_count" 29818 variable. 29819 298202009-04-02 H.J. Lu <hongjiu.lu@intel.com> 29821 29822 * configure.ac: Support -Bstatic/-Bdynamic for linker version > 2. 29823 * configure: Regenerated. 29824 298252009-04-02 Rafael Avila de Espindola <espindola@google.com> 29826 29827 * c-decl.c (merge_decls): Make sure newdecl and olddecl don't 29828 share the argument list. 29829 298302009-04-02 Rafael Avila de Espindola <espindola@google.com> 29831 29832 Merge 29833 29834 2009-02-12 Diego Novillo <dnovillo@google.com> 29835 29836 * varpool.c (debug_varpool): New. 29837 * cgraph.h (debug_varpool): Declare. 29838 298392009-04-02 Jan Hubicka <jh@suse.cz> 29840 29841 * passes.c (init_optimization_passes): Remove two copies of ehcleanup 29842 pass. 29843 298442009-04-02 H.J. Lu <hongjiu.lu@intel.com> 29845 29846 * config/i386/i386.c (ix86_abi): Move initialization to ... 29847 (override_options): Here. 29848 298492009-04-02 Christian Bruel <christian.bruel@st.com> 29850 29851 * config/sh/sh.c (sh_dwarf_register_span): New function. 29852 (TARGET_DWARF_REGISTER_SPAN): Define. 29853 * config/sh/sh-protos.h (sh_dwarf_register_span): Declare. 29854 298552009-04-02 Ira Rosen <irar@il.ibm.com> 29856 29857 PR tree-optimization/39595 29858 * tree-vect-slp.c (vect_build_slp_tree): Check that the size of 29859 interleaved loads group is not greater than the SLP group size. 29860 298612009-04-02 Rafael Avila de Espindola <espindola@google.com> 29862 29863 * builtins.c (is_builtin_name): New. 29864 (called_as_built_in): Use is_builtin_name. 29865 * tree.h (is_builtin_name): New. 29866 * varasm.c (incorporeal_function_p): Use is_builtin_name 29867 298682009-04-02 Andrew Stubbs <ams@codesourcery.com> 29869 29870 * config/sh/linux-unwind.h: Disable when inhibit_libc is defined. 29871 298722009-04-02 Dodji Seketeli <dodji@redhat.com> 29873 29874 PR c++/26693 29875 * c-decl.c (clone_underlying_type): Move this ... 29876 * c-common.c (set_underlying_type): ... here. 29877 Also, make sure the function properly sets TYPE_STUB_DECL() on 29878 the newly created typedef variant type. 29879 * c-common.h (is_typedef_decl, set_underlying_type): Declare ... 29880 * c-common.c (is_typedef_decl, set_underlying_type): ... new entry 29881 points. 29882 298832009-04-02 Richard Guenther <rguenther@suse.de> 29884 29885 PR tree-optimization/37221 29886 * tree-flow.h (degenerate_phi_result): Declare. 29887 * tree-ssa-dom.c (degenerate_phi_result): Export. 29888 * tree-scalar-evolution.c (analyze_initial_condition): If 29889 the initial condition is defined by a degenerate PHI node 29890 use the degenerate value. 29891 298922009-04-01 Eric Botcazou <ebotcazou@adacore.com> 29893 29894 PR rtl-optimization/39588 29895 * combine.c (merge_outer_ops): Do not set the constant when this 29896 is not necessary. 29897 (simplify_shift_const_1): Do not modify it either in this case. 29898 298992009-04-01 Steven Bosscher <steven@gcc.gnu.org> 29900 29901 * config/ia64/ia64.c (ia64_handle_option): Inform user that Itanium1 29902 tuning is deprecated if -mtune value is set to an Itanium1 variant. 29903 299042009-04-01 Janis Johnson <janis187@us.ibm.com> 29905 29906 PR c/29027 29907 * c-lex.c (interpret_float): Default (no suffix) is double. 29908 299092009-04-1 Xinliang David Li <davidxl@google.com> 29910 29911 * config/i386/i386.c (legitimate_constant_p): Recognize 29912 all one vector constant. 29913 299142009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29915 29916 * config/vax/vax.c: Add #includes to silence warnings. 29917 Change #include order to silence two warnings. 29918 299192009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29920 29921 * config/vax/linux.h (TARGET_DEFAULT): Add the MASK_QMATH flag bit. 29922 (ASM_SPEC): Pass -k to the assembler for PIC code. 29923 299242009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29925 29926 * config.gcc: Add vax-*-linux* to the switch. 29927 * config/vax/linux.h: New file. (TARGET_VERSION, 29928 TARGET_OS_CPP_BUILTINS, TARGET_DEFAULT, CPP_SPEC, LINK_SPEC): Define. 29929 299302009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29931 29932 * config/vax/vax.c (vax_output_int_move, adjacent_operands_p): 29933 Use predicate macros instead of GET_CODE() == foo. 29934 * config/vax/vax.md (movsi_2, movstrictqi, and<mode>3, ashrsi3, 29935 ashlsi3, rotrsi3, <unnamed>): Likewise. 29936 299372009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29938 29939 * config/vax/builtins.md (jbbssiqi, jbbssihi, jbbssisi, jbbcciqi, 29940 jbbccihi, jbbccisi): Remova trailing whitespace. 29941 * config/vax/constraints.md: Likewise. 29942 * config/vax/elf.h (ASM_PREFERRED_EH_DATA_FORMAT): Likewise. 29943 * config/vax/openbsd1.h (OBSD_OLD_GAS): Likewise. 29944 * config/vax/predicates.md: Likewise. 29945 * config/vax/vax.c (print_operand_address, vax_output_int_move, 29946 vax_expand_addsub_di_operands, adjacent_operands_p): Likewise. 29947 * config/vax/vax.h: Likewise. 29948 * config/vax/vax.md (nonlocal_goto): Likewise. 29949 299502009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29951 29952 * config/vax/vax.c (vax_float_literal, vax_output_int_move) 29953 (indirectable_address_p, adjacent_operands_p): Add spaces around 29954 braces. 29955 * config/vax/vax-protos.h (adjacent_operands_p): Likewise. 29956 299572009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29958 29959 * config/vax/vax.c (legitimate_constant_address_p, 29960 legitimate_constant_p, indirectable_address_p, nonindexed_address_p, 29961 index_term_p, reg_plus_index_p, legitimate_address_p, 29962 vax_mode_dependent_address_p): Update comments to match functions 29963 modified by the recent int->bool conversion. 29964 299652009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29966 29967 * config/vax/builtins.md: Update copyright message. 29968 * config/vax/constraints.md: Likewise. 29969 * config/vax/netbsd-elf.h: Likewise. 29970 * config/vax/predicates.md: Likewise. 29971 * config/vax/vax-protos.h: Likewise. 29972 * config/vax/vax.c: Likewise. 29973 * config/vax/vax.h: Likewise. 29974 * config/vax/vax.md: Likewise. 29975 * config/vax/vax.opt: Likewise. 29976 299772009-04-01 Jan-Benedict Glaw <jbglaw@jbglaw-dev.homezone.telefonica.de> 29978 29979 * config/vax/builtins.md (ffssi2, ffssi2_internal, 29980 sync_lock_test_and_set<mode>, sync_lock_release<mode>): Fix indention. 29981 * config/vax/constraints.md (B, R): Likewise. 29982 * config/vax/predicates.md (external_memory_operand, 29983 nonimmediate_addsub_di_operand): Likewise. 29984 * config/vax/vax.c (vax_output_int_add): Likewise. 29985 * config/vax/vax.md (movsi, movsi_2, mov<mode>, call_value, 29986 untyped_call): Likewise. 29987 299882009-04-01 Matt Thomas <matt@3am-software.com> 29989 29990 * config/vax/predicates.md: New file. 29991 (symbolic_operand, local_symbolic_operand, external_symbolic_operand, 29992 external_const_operand, nonsymbolic_operand, external_memory_operand, 29993 indirect_memory_operand, indexed_memory_operand, 29994 illegal_blk_memory_operand, illegal_addsub_di_memory_operand, 29995 nonimmediate_addsub_di_operand, general_addsub_di_operand): New 29996 predicate. 29997 * config/vax/constraints.md: New file. 29998 (Z0, U06, U08, U16, CN6, S08, S16, I, J, K, L, M, N, O, G, Q, B, R, T): 29999 New constraint. 30000 * config/vax/builtins.md: New file. 30001 (ffssi2, ffssi2_internal, sync_lock_test_and_set<mode>, jbbssiqi, 30002 jbbssihi, jbbssisi, sync_lock_release<mode>, jbbcciqi, jbbccihi, 30003 jbbccisi): Define. 30004 * config/vax/vax.opt (mqmath): Add option. 30005 * config/vax/vax.md (isfx): Extend with DI. 30006 (VAXintQH, VAXintQHSD): Define. 30007 (tst<mode>, cmp<mode>, *bit<mode>, movmemhi1, truncsiqi2, truncsihi2, 30008 mulsidi3, add<mode>3, sub<mode>, mul<mode>3, div<mode>3, and<mode>, 30009 and<mode>_const_int, ior<mode>3, xor<mode>3, neg<mode>2, 30010 one_cmpl<mode>2, ashlsi3, lshrsi3, rotlsi3): Update constraints. 30011 (movdi): Update constraints and use vax_output_int_move(). 30012 (movsi, movsi_2, pushlclsymreg, pushextsymreg, movlclsymreg, 30013 movextsymreg, adddi3, adcdi3, subdi3, sbcdi3, pushextsym, movextsym, 30014 pushlclsym, movlclsym, movaddr<mode>, pushaddr<mode>, 30015 nonlocal_goto): New. 30016 (mov<mode>): Extend accepted operand types. 30017 (subdi3_old): Rename from subdi3, change update constraints and use 30018 a new implementation. 30019 * config/vax/vax.h (PCC_BITFIELD_TYPE_MATTERS): Add space. 30020 (FRAME_POINTER_CFA_OFFSET, IRA_COVER_CLASSES, CLASS_MAX_NREGS, 30021 MOVE_RATIO, CLEAR_RATIO): Define. 30022 (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P, 30023 CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Delete. 30024 (PRINT_OPERAND): Redefine using a function instead of inlined code. 30025 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Define. 30026 (split_quadword_operands): Make static and really allow variable 30027 splitting. 30028 (print_operand_address): Update for PIC generation. 30029 (print_operand, vax_builtin_setjmp_frame_value, vax_output_int_subtract, 30030 indexable_address_p, fixup_mathdi_operand, 30031 vax_expand_addsub_di_operands, adjacent_operands_p): New. 30032 (vax_float_literal, legitimate_constant_p, 30033 indirectable_constant_address_p, index_term_p, 30034 reg_plus_index_p): Return bool instead of int. 30035 (vax_rtx_costs): Fix cost for CONST_INT, indent and use HOST_WIDE_INT 30036 where needed. 30037 (vax_output_int_move, vax_output_int_add): Extend to allow PIC 30038 generation. 30039 (vax_output_conditional_branch): Indent. 30040 (legitimate_constant_address_p, indirectable_constant_address_p, 30041 indirectable_address_p, nonindexed_address_p, legitimate_address_p, 30042 vax_mode_dependent_address_p): Return bool instead of int, update for 30043 PIC generation. 30044 * config/vax/vax-protos.h (legitimate_constant_address_p, 30045 legitimate_constant_p, legitimate_address_p, 30046 vax_mode_dependent_address_p): Change declaration to bool. 30047 (legitimate_pic_operand_p, adjacent_operands_p, print_operand, 30048 vax_expand_addsub_di_operands, vax_output_int_subtract, 30049 vax_output_movmemsi): Declare. 30050 (split_quadword_operands, vax_float_literal): Delete declaration. 30051 * config/vax/netbsd-elf.h (CC1_SPEC, CC1PLUS_SPEC) Define. 30052 * config/vax/elf.h (NO_EXTERNAL_INDIRECT_ADDRESS, 30053 VAX_CC1_AND_CC1PLUS_SPEC, ASM_PREFERRED_EH_DATA_FORMAT, 30054 ASM_OUTPUT_DWARF_PCREL): Define. 30055 (ASM_SPEC): Change definition to allow PIC generation. 30056 300572009-04-01 Steve Ellcey <sje@cup.hp.com> 30058 30059 * doc/sourcebuild.texi: Update front-end requirements. 30060 300612009-04-01 Jakub Jelinek <jakub@redhat.com> 30062 30063 PR target/39226 30064 * config/rs6000/rs6000.md (andsi3_internal5_nomc, 30065 anddi3_internal2_nomc, anddi3_internal3_nomc): Removed. 30066 (booldi3_internal3): Use boolean_or_operator instead of 30067 boolean_operator. 30068 300692009-04-01 Joseph Myers <joseph@codesourcery.com> 30070 30071 PR c/39605 30072 * c-decl.c (grokdeclarator): Pedwarn for file-scope array 30073 declarator whose size is not an integer constant expression but 30074 folds to an integer constant, then treat it as a constant 30075 subsequently. 30076 300772009-04-01 Richard Guenther <rguenther@suse.de> 30078 30079 * fold-const.c (fold_plusminus_mult_expr): Do not fold 30080 i * 4 + 2 to (i * 2 + 1) * 2. 30081 300822009-04-01 Jakub Jelinek <jakub@redhat.com> 30083 30084 PR c/37772 30085 * c-parser.c (c_parser_asm_statement): Skip until close paren and 30086 return if c_parser_asm_string_literal returned NULL. 30087 300882009-04-01 Nick Clifton <nickc@redhat.com> 30089 30090 * config/m32c/m32c.h (LIBGCC2_UNITS_PER_WORD): Define if not 30091 already defined. 30092 * config/m32c/t-m32c (LIB2FUNCS_EXTRA): Add m32c-lib2-trapv.c. 30093 * config/m32c/m32c-lib2.c: Remove unused typedefs. Rename the 30094 other typedefs to avoid conflicts with libgcc2.c. Define labels 30095 to gain 16-bit bit-manipulation functions from libgcc2.c and then 30096 include it. 30097 * config/m32c/m32c-lib2-trapv.c: New file. Define labels 30098 to gain 16-bit trapping arithmetic functions from libgcc2.c and 30099 then include it. 30100 301012009-04-01 Rafael Avila de Espindola <espindola@google.com> 30102 30103 * varasm.c (default_function_rodata_section): Declare DOT as 30104 const char*. 30105 301062009-04-01 Kai Tietz <kai.tietz@onevision.com> 30107 Andrey Galkin <agalkin@hypercom.com> 30108 30109 PR/39492 30110 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): 30111 Make object_name unique for each process. 30112 301132009-04-01 Jakub Jelinek <jakub@redhat.com> 30114 30115 PR other/39591 30116 * omp-low.c (remove_exit_barrier): Don't optimize if there are any 30117 addressable variables in the parallel that could go out of scope while 30118 running queued tasks. 30119 301202009-04-01 Anatoly Sokolov <aesok@post.ru> 30121 30122 * config/avr/avr.h (avr_case_values_threshold): Remove declaration. 30123 (CASE_VALUES_THRESHOLD): Redefine. 30124 * config/avr/avr.c (avr_override_options): Remove initialization of 30125 avr_case_values_threshold variable. 30126 (avr_case_values_threshold): Remove variable. Add new function. 30127 * config/avr/avr-protos.h (avr_case_values_threshold): Declare. 30128 * config/avr/avr.opt (mno-tablejump): Remove option. 30129 * doc/invoke.texi (AVR Options): Remove -mno-tablejump. 30130 301312009-04-01 DJ Delorie <dj@redhat.com> 30132 30133 * varasm.c (default_function_rodata_section): Don't assume 30134 anything about where the first '.' in the section name is. 30135 301362009-04-01 Alan Modra <amodra@bigpond.net.au> 30137 30138 * config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete redundant 30139 rs6000_emit_stack_tie. 30140 301412009-03-31 Ian Lance Taylor <iant@google.com> 30142 30143 * tree-eh.c (tree_remove_unreachable_handlers): Compare 30144 gimple_code with GIMPLE_RESX, not RESX. 30145 301462009-03-31 Joseph Myers <joseph@codesourcery.com> 30147 30148 * c-common.c (c_get_ident): New. 30149 (c_common_nodes_and_builtins): Call it for type names that may be NULL. 30150 301512009-04-01 Ben Elliston <bje@au.ibm.com> 30152 30153 * config/rs6000/sysv4.opt (msdata): Improve option description. 30154 301552009-03-31 Steve Ellcey <sje@cup.hp.com> 30156 30157 * config/ia64/ia64.md (divsf3_internal_lat): Remove. 30158 (divdf3_internal_lat): Remove. 30159 (divxf3_internal_lat): Remove. 30160 (divxf3_internal_thr): Remove. 30161 (divxf): Use divxf3_internal. 30162 * config/ia64/div.md (divsf3_internal_lat): New. 30163 (divdf3_internal_lat): New. 30164 (divxf3_internal): New. 30165 301662009-03-31 Joseph Myers <joseph@codesourcery.com> 30167 30168 PR c/448 30169 * Makefile.in (USE_GCC_STDINT): Define. 30170 (stmp-int-hdrs): Install stdint.h if applicable. 30171 * c-common.c (CHAR16_TYPE): Define in terms of UINT_LEAST16_TYPE 30172 if known. 30173 (CHAR32_TYPE): Define in terms of UINT_LEAST32_TYPE if known. 30174 (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, INT64_TYPE, 30175 UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE, 30176 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 30177 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 30178 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 30179 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 30180 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 30181 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. 30182 (c_common_nodes_and_builtins): Initialize 30183 underlying_wchar_type_node. Do not initialize 30184 signed_wchar_type_node or unsigned_wchar_type_node. Initialize 30185 nodes for new types. 30186 (c_stddef_cpp_builtins): Define macros for new types. 30187 * c-common.h (CTI_SIGNED_WCHAR_TYPE, CTI_UNSIGNED_WCHAR_TYPE): 30188 Remove. 30189 (CTI_UNDERLYING_WCHAR_TYPE, CTI_SIG_ATOMIC_TYPE, CTI_INT8_TYPE, 30190 CTI_INT16_TYPE, CTI_INT32_TYPE, CTI_INT64_TYPE, CTI_UINT8_TYPE, 30191 CTI_UINT16_TYPE, CTI_UINT32_TYPE, CTI_UINT64_TYPE, 30192 CTI_INT_LEAST8_TYPE, CTI_INT_LEAST16_TYPE, CTI_INT_LEAST32_TYPE, 30193 CTI_INT_LEAST64_TYPE, CTI_UINT_LEAST8_TYPE, CTI_UINT_LEAST16_TYPE, 30194 CTI_UINT_LEAST32_TYPE, CTI_UINT_LEAST64_TYPE, CTI_INT_FAST8_TYPE, 30195 CTI_INT_FAST16_TYPE, CTI_INT_FAST32_TYPE, CTI_INT_FAST64_TYPE, 30196 CTI_UINT_FAST8_TYPE, CTI_UINT_FAST16_TYPE, CTI_UINT_FAST32_TYPE, 30197 CTI_UINT_FAST64_TYPE, CTI_INTPTR_TYPE, CTI_UINTPTR_TYPE): Define. 30198 (signed_wchar_type_node, unsigned_wchar_type_node): Remove. 30199 (underlying_wchar_type_node, sig_atomic_type_node, int8_type_node, 30200 int16_type_node, int32_type_node, int64_type_node, 30201 uint8_type_node, uint16_type_node, c_uint32_type_node, 30202 c_uint64_type_node, int_least8_type_node, int_least16_type_node, 30203 int_least32_type_node, int_least64_type_node, 30204 uint_least8_type_node, uint_least16_type_node, 30205 uint_least32_type_node, uint_least64_type_node, 30206 int_fast8_type_node, int_fast16_type_node, int_fast32_type_node, 30207 int_fast64_type_node, uint_fast8_type_node, uint_fast16_type_node, 30208 uint_fast32_type_node, uint_fast64_type_node, intptr_type_node, 30209 uintptr_type_node): Define. 30210 * c-cppbuiltin.c (builtin_define_constants, 30211 builtin_define_type_minmax): New. 30212 (builtin_define_stdint_macros): Define more macros. 30213 (c_cpp_builtins): Define more limit macros. 30214 (type_suffix): New. 30215 (builtin_define_type_max): Define in terms of 30216 builtin_define_type_minmax. Remove is_long parameter. All 30217 callers changed. 30218 * config.gcc (use_gcc_stdint): Define. 30219 (tm_file): Add glibc-stdint.h for targets using glibc or uClibc. 30220 Add newlib-stdint.h for generic targets. 30221 * config/glibc-stdint.h, config/newlib-stdint.h, 30222 ginclude/stdint-gcc.h, ginclude/stdint-wrap.h: New. 30223 * config/m32c/m32c.h (UINTPTR_TYPE): Define. 30224 * config/score/score.h (UINTPTR_TYPE): Define. 30225 * config/sol2.h (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, 30226 INT32_TYPE, INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, 30227 UINT64_TYPE, INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 30228 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 30229 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 30230 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 30231 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 30232 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Define. 30233 * config/spu/spu.h (STDINT_LONG32): Define. 30234 * configure.ac (use_gcc_stdint): Substitute. 30235 * configure: Regenerate. 30236 * doc/cpp.texi (__SIG_ATOMIC_TYPE__, __INT8_TYPE__, 30237 __INT16_TYPE__, __INT32_TYPE__, __INT64_TYPE__, __UINT8_TYPE__, 30238 __UINT16_TYPE__, __UINT32_TYPE__, __UINT64_TYPE__, 30239 __INT_LEAST8_TYPE__, __INT_LEAST16_TYPE__, __INT_LEAST32_TYPE__, 30240 __INT_LEAST64_TYPE__, __UINT_LEAST8_TYPE__, __UINT_LEAST16_TYPE__, 30241 __UINT_LEAST32_TYPE_, __UINT_LEAST64_TYPE__, __INT_FAST8_TYPE__, 30242 __INT_FAST16_TYPE__, __INT_FAST32_TYPE__, __INT_FAST64_TYPE__, 30243 __UINT_FAST8_TYPE__, __UINT_FAST16_TYPE__, __UINT_FAST32_TYPE__, 30244 __UINT_FAST64_TYPE__, __INTPTR_TYPE__, __UINTPTR_TYPE__, 30245 __WINT_MAX__, __SIZE_MAX__, __PTRDIFF_MAX__, __UINTMAX_MAX__, 30246 __SIG_ATOMIC_MAX__, __INT8_MAX__, __INT16_MAX__, __INT32_MAX__, 30247 __INT64_MAX__, __UINT8_MAX__, __UINT16_MAX__, __UINT32_MAX__, 30248 __UINT64_MAX__, __INT_LEAST8_MAX__, __INT_LEAST16_MAX__, 30249 __INT_LEAST32_MAX__, __INT_LEAST64_MAX__, __UINT_LEAST8_MAX__, 30250 __UINT_LEAST16_MAX__, __UINT_LEAST32_MAX__, __UINT_LEAST64_MAX__, 30251 __INT_FAST8_MAX__, __INT_FAST16_MAX__, __INT_FAST32_MAX__, 30252 __INT_FAST64_MAX__, __UINT_FAST8_MAX__, __UINT_FAST16_MAX__, 30253 __UINT_FAST32_MAX__, __UINT_FAST64_MAX__, __INTPTR_MAX__, 30254 __UINTPTR_MAX__, __WCHAR_MIN__, __WINT_MIN__, __SIG_ATOMIC_MIN__, 30255 __INT8_C, __INT16_C, __INT32_C, __INT64_C, __UINT8_C, __UINT16_C, 30256 __UINT32_C, __UINT64_C, __INTMAX_C, __UINTMAX_C): Document. 30257 * doc/tm.texi (SIG_ATOMIC_TYPE, INT8_TYPE, INT16_TYPE, INT32_TYPE, 30258 INT64_TYPE, UINT8_TYPE, UINT16_TYPE, UINT32_TYPE, UINT64_TYPE, 30259 INT_LEAST8_TYPE, INT_LEAST16_TYPE, INT_LEAST32_TYPE, 30260 INT_LEAST64_TYPE, UINT_LEAST8_TYPE, UINT_LEAST16_TYPE, 30261 UINT_LEAST32_TYPE, UINT_LEAST64_TYPE, INT_FAST8_TYPE, 30262 INT_FAST16_TYPE, INT_FAST32_TYPE, INT_FAST64_TYPE, 30263 UINT_FAST8_TYPE, UINT_FAST16_TYPE, UINT_FAST32_TYPE, 30264 UINT_FAST64_TYPE, INTPTR_TYPE, UINTPTR_TYPE): Document. 30265 302662009-03-31 Bernd Schmidt <bernd.schmidt@analog.com> 30267 30268 * loop-iv.c (suitable_set_for_replacement): Renamed from 30269 simplify_using_assignment; changed to return bool and to accept new 30270 args DEST and SRC. Return true iff we find a source/destination pair 30271 that can be used to make a replacement, and fill SRC and DEST if so. 30272 Remove arg ALTERED. Don't deal with altered regs here. All callers 30273 changed. 30274 (simplify_using_initial_values): Deal with altered regs here and track 30275 more precisely the effect they have on the validity of our expression. 30276 30277 * loop-iv.c (simplify_using_condition): A condition of the form 30278 (EQ REG CONST) can be used to simply make a substitution. 30279 (simplify_using_initial_values): Keep track of conditions we have seen 30280 and keep using them to simplify new expressions, while applying the 30281 same substitutions to them as to the expression. 30282 30283 * simplify-rtx.c (simplify_relational_operation_1): Simplify 30284 (LTU (PLUS a C) C) or (LTU (PLUS a C) a) to (GEU a -C); likewise with 30285 GEU/LTU reversed. 30286 30287 * loop-iv.c (determine_max_iter): New arg OLD_NITER. All callers 30288 changed. Use this when trying to improve the upper bound. 30289 Generate the comparison by using simplify_gen_relational. 30290 30291 * loop-iv.c (simple_rhs_p): Allow more kinds of expressions. 30292 30293 * loop-iv.c (replace_single_def_regs, replace_in_expr): New static 30294 functions. 30295 (simplify_using_assignment, simplify_using_initial_values): Call 30296 replace_in_expr to make replacements. Call replace_single_def_regs 30297 once on the initial version of the expression. 30298 302992009-03-31 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 30300 30301 PR target/27237 30302 * doc/invoke.texi (ARM Options): Update documentation for -mthumb. 30303 303042009-03-31 Richard Guenther <rguenther@suse.de> 30305 30306 PR middle-end/31029 30307 * fold-const.c (fold_binary): Fold X +- Y CMP X to Y CMP 0 for 30308 equality comparisons. Fold C - X CMP X if C % 2 == 1. 30309 303102009-03-31 Richard Guenther <rguenther@suse.de> 30311 30312 * tree.h (div_if_zero_remainder): Declare. 30313 * fold-const.c (div_if_zero_remainder): Export. 30314 * tree-ssa-forwprop.c 30315 (forward_propagate_addr_into_variable_array_index): Handle 30316 constant array index addition outside of the variable index. 30317 303182009-03-31 Joseph Myers <joseph@codesourcery.com> 30319 30320 PR target/39592 30321 * config/i386/i386.md (*floatunssi<mode>2_1, two unnamed 30322 define_splits, floatunssi<mode>2): Require x87 conversions from 30323 DImode to be permitted. 30324 303252009-03-31 Joseph Myers <joseph@codesourcery.com> 30326 30327 PR preprocessor/15638 30328 * c-common.c (c_cpp_error): Handle CPP_DL_FATAL. 30329 303302009-03-31 Richard Guenther <rguenther@suse.de> 30331 30332 PR middle-end/23401 30333 PR middle-end/27810 30334 * tree.h (DECL_GIMPLE_FORMAL_TEMP_P): Remove. 30335 (struct tree_decl_with_vis): Remove gimple_formal_temp member. 30336 * tree-eh.c (lower_eh_constructs_2): Move LHS assignment to 30337 a separate statement. 30338 * gimplify.c (pop_gimplify_context): Remove formal temp handling. 30339 (lookup_tmp_var): Likewise. 30340 (is_gimple_formal_tmp_or_call_rhs): Remove. 30341 (is_gimple_reg_or_call_rhs): Rename to ... 30342 (is_gimple_reg_rhs_or_call): ... this. 30343 (is_gimple_mem_or_call_rhs): Rename to ... 30344 (is_gimple_mem_rhs_or_call): ... this. 30345 (internal_get_tmp_var): Use is_gimple_reg_rhs_or_call. Set 30346 DECL_GIMPLE_REG_P only if is_formal is true. 30347 (gimplify_compound_lval): Use is_gimple_reg. Remove workaround 30348 for non-proper post-modify expression gimplification. 30349 (gimplify_self_mod_expr): For post-modify expressions gimplify 30350 the lvalue to a minimal lvalue. 30351 (rhs_predicate_for): Remove formal temp case. 30352 (gimplify_modify_expr_rhs): Likewise. 30353 (gimplify_addr_expr): Use is_gimple_reg. 30354 (gimplify_expr): Remove formal temp cases. 30355 (gimple_regimplify_operands): Likewise. 30356 * tree-ssa-pre.c (get_or_alloc_expr_for): Treat EXC_PTR_EXPR 30357 and FILTER_EXPR like constants. 30358 * gimple.c (walk_gimple_op): Fix val_only initialization, use 30359 is_gimple_reg. 30360 (is_gimple_formal_tmp_rhs): Remove. 30361 (is_gimple_reg_rhs): Remove special casing. 30362 (is_gimple_mem_rhs): Fix. 30363 (is_gimple_reg): Move DECL_GIMPLE_REG_P handling earlier. 30364 (is_gimple_formal_tmp_var): Remove. 30365 (is_gimple_formal_tmp_reg): Likewise. 30366 (is_gimple_min_lval): Allow invariant component ref parts. 30367 * gimple.h (is_gimple_formal_tmp_rhs, is_gimple_formal_tmp_var, 30368 is_gimple_formal_tmp_reg): Remove declarations. 30369 * tree-cfg.c (verify_expr): Verify that variables with address 30370 taken do not have DECL_GIMPLE_REG_P set. 30371 * tree-mudflap.c (mf_build_check_statement_for): Use 30372 force_gimple_operand instead of gimplify_expr. 30373 303742009-03-31 Ayal Zaks <zaks@il.ibm.com> 30375 30376 * modulo-sched.c (sms_schedule_by_order): Pass the actual 30377 schedulable rows to compute_split_row. 30378 303792009-03-31 Ben Elliston <bje@au.ibm.com> 30380 30381 PR target/31635 30382 * config/rs6000/rs6000.c (rs6000_handle_option): Handle 30383 OPT_mvrsave. 30384 303852009-03-31 Alan Modra <amodra@bigpond.net.au> 30386 30387 * doc/invoke.texi (RS/6000 and PowerPC Options):Document mtls-markers. 30388 * configure.ac (HAVE_AS_TLS_MARKERS): New gas feature check. 30389 * configure: Regenerate. 30390 * config.in: Regenerate. 30391 * config/rs6000/rs6000.opt (mtls-markers): Add. 30392 * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Define. 30393 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv): Add splitter. 30394 (tls_ld_aix, tls_ld_sysv): Likewise. 30395 (tls_gd, tls_gd_call_aix, tls_gd_call_sysv): New insns. 30396 (tls_ld, tls_ld_call_aix, tls_ld_call_sysv): Likewise. 30397 303982009-03-31 Alan Modra <amodra@bigpond.net.au> 30399 30400 * config/spu/spu.c (spu_expand_prologue): Delete redundant code. 30401 304022009-03-30 Jan Hubicka <jh@suse.cz> 30403 30404 * tree-eh.c (make_eh_edges): Set probability 100% to first edge 30405 out of RESX. 30406 (tree_remove_unreachable_handlers): Cleanup EH predecestor 30407 detection and label handling. 30408 304092009-03-30 Vladimir Makarov <vmakarov@redhat.com> 30410 30411 * ira-int.h (ira_allocno): Rename left_conflicts_num to 30412 left_conflicts_size. 30413 (ALLOCNO_LEFT_CONFLICTS_NUM): Rename to 30414 ALLOCNO_LEFT_CONFLICTS_SIZE. 30415 30416 * ira-color.c (allocno_spill_priority, push_allocno_to_stack, 30417 remove_allocno_from_bucket_and_push, 30418 allocno_spill_priority_compare, push_allocnos_to_stack, 30419 setup_allocno_available_regs_num): Use ALLOCNO_LEFT_CONFLICTS_SIZE 30420 instead of ALLOCNO_LEFT_CONFLICTS_NUM. 30421 (setup_allocno_left_conflicts_num): Ditto. Rename to 30422 setup_allocno_left_conflicts_size. 30423 (put_allocno_into_bucket): Use ALLOCNO_LEFT_CONFLICTS_SIZE 30424 instead of ALLOCNO_LEFT_CONFLICTS_NUM and 30425 setup_allocno_left_conflicts_size instead of 30426 setup_allocno_left_conflicts_num. 30427 30428 * ira-build.c (ira_create_allocno): Use 30429 ALLOCNO_LEFT_CONFLICTS_SIZE instead of 30430 ALLOCNO_LEFT_CONFLICTS_NUM. 30431 304322009-03-30 Vladimir Makarov <vmakarov@redhat.com> 30433 30434 * reload.c (push_reload, find_dummy_reload): Use df_get_live_out 30435 instead of DF_LR_OUT. 30436 30437 * ira-lives.c (process_bb_node_lives): Ditto. 30438 30439 * ira-color.c (ira_loop_edge_freq): Use df_get_live_{out,in} 30440 instead of DF_LR_{OUT,IN}. 30441 30442 * ira-emit.c (generate_edge_moves, add_ranges_and_copies): Ditto. 30443 30444 * ira-build.c (create_bb_allocnos, create_loop_allocnos): Ditto. 30445 304462009-03-30 Jan Hubicka <jh@suse.cz> 30447 30448 * except.c (label_to_region_map): Fix thinko. 30449 304502009-03-30 Steve Ellcey <sje@cup.hp.com> 30451 30452 PR middle-end/38237 30453 * tree.h (tree_find_value): New declaration. 30454 * tree.c (tree_find_value): New function. 30455 * varasm.c (assemble_external): Avoid duplicate entries on lists. 30456 304572009-03-30 Jakub Jelinek <jakub@redhat.com> 30458 30459 PR debug/39563 30460 * c-decl.c (struct c_binding): Add locus field. 30461 (bind): Add locus argument, set locus field from it. 30462 (pop_scope): For b->nested VAR_DECL or FUNCTION_DECL, 30463 add a DECL_EXTERNAL copy of b->decl to current BLOCK_VARS. 30464 (push_file_scope, pushtag, pushdecl, pushdecl_top_level, 30465 implicitly_declare, undeclared_variable, lookup_label, 30466 declare_label, c_make_fname_decl, c_builtin_function, 30467 c_builtin_function_ext_scope, store_parm_decls_newstyle): Adjust 30468 bind callers. 30469 304702009-03-30 H.J. Lu <hongjiu.lu@intel.com> 30471 30472 PR target/38781 30473 * config/i386/i386.c (classify_argument): Check total size of 30474 structure. 30475 304762009-03-30 Martin Jambor <mjambor@suse.cz> 30477 30478 * ipa-prop.h (jump_func_type): Rename IPA_UNKNOWN, IPA_CONST, 30479 IPA_CONST_MEMBER_PTR, and IPA_PASS_THROUGH to IPA_JF_UNKNOWN, 30480 IPA_JF_CONST, IPA_JF_CONST_MEMBER_PTR, and IPA_JF_PASS_THROUGH 30481 respectively. 30482 30483 * tree-dfa.c (get_ref_base_and_extent): Return -1 maxsize if 30484 seen_variable_array_ref while also traversing a union. 30485 30486 * tree-inline.c (optimize_inline_calls): Do not call 30487 cgraph_node_remove_callees. 30488 * cgraphbuild.c (remove_cgraph_callee_edges): New function. 30489 (pass_remove_cgraph_callee_edges): New variable. 30490 * passes.c (init_optimization_passes): Add 30491 pass_remove_cgraph_callee_edges after early inlining and before all 30492 late intraprocedural passes. 30493 30494 * omp-low.c (expand_omp_taskreg): Always set current_function_decl. 30495 304962009-03-30 Paolo Bonzini <bonzini@gnu.org> 30497 30498 * config/sparc/sparc.md (*nand<V64mode>_vis, *nand<V32mode>_vis): 30499 Fix typos in names. 30500 305012009-03-30 Paolo Bonzini <bonzini@gnu.org> 30502 30503 * combine.c (simplify_comparison): Use have_insn_for. 30504 * dojump.c (do_jump): Likewise. 30505 305062009-03-30 Paolo Bonzini <bonzini@gnu.org> 30507 30508 * config/sparc/sparc.c (sparc_compare_emitted): Remove. 30509 (gen_compare_reg, emit_v9_brxx_insn): Handle MODE_CC 30510 sparc_compare_op0 like sparc_compare_emitted used to be handled. 30511 (sparc_expand_compare_and_swap_12): Set sparc_compare_op0 30512 instead of sparc_compare_emitted. 30513 * config/sparc/sparc.h (sparc_compare_emitted): Remove. 30514 * config/sparc/sparc.md (stack_protect_test): Set sparc_compare_op0 30515 instead of sparc_compare_emitted. 30516 305172009-03-30 Paolo Bonzini <bonzini@gnu.org> 30518 30519 * bb-reorder.c (partition_hot_cold_basic_blocks): Do not 30520 enter/exit cfglayout mode. 30521 (pass_partition_block): Require it. 30522 * combine.c (find_single_use, reg_dead_at_p): Use CFG. 30523 (combine_instructions): Track basic blocks instead of labels. 30524 (update_cfg_for_uncondjump): New. 30525 (try_combine): Use it. Update jumps after rescanning. 30526 (pass_combine): Require PROP_cfglayout. 30527 * passes.c (pass_outof_cfg_layout_mode): Move after regmove. 30528 305292009-03-30 Paolo Bonzini <bonzini@gnu.org> 30530 30531 * cfglayout.c (pass_into_cfg_layout_mode, pass_outof_cfg_layout_mode): 30532 Provide/destroy PROP_cfglayout respectively. 30533 * gcse.c (pass_jump_bypass, pass_gcse): Require it. 30534 * tree-pass.h (PROP_cfglayout): New. 30535 305362009-03-30 Paolo Bonzini <bonzini@gnu.org> 30537 30538 * fold-const.c (const_binop, fold_convert_const_real_from_fixed, 30539 fold_convert_const_fixed_from_fixed, 30540 fold_convert_const_fixed_from_int, 30541 fold_convert_const_fixed_from_real, fold_negate_const): Do not 30542 set TREE_CONSTANT_OVERFLOW. 30543 * tree.def: Remove mention of TREE_CONSTANT_OVERFLOW. 30544 * tree.h (TREE_CONSTANT_OVERFLOW): Delete. 30545 305462009-03-30 Ira Rosen <irar@il.ibm.com> 30547 30548 * tree-vect-loop-manip.c: New file. 30549 * tree-vectorizer.c: Update documentation and included files. 30550 (vect_loop_location): Make extern. 30551 (rename_use_op): Move to tree-vect-loop-manip.c 30552 (rename_variables_in_bb, rename_variables_in_loop, 30553 slpeel_update_phis_for_duplicate_loop, 30554 slpeel_update_phi_nodes_for_guard1, 30555 slpeel_update_phi_nodes_for_guard2, slpeel_make_loop_iterate_ntimes, 30556 slpeel_tree_duplicate_loop_to_edge_cfg, slpeel_add_loop_guard, 30557 slpeel_can_duplicate_loop_p, slpeel_verify_cfg_after_peeling, 30558 set_prologue_iterations, slpeel_tree_peel_loop_to_edge, 30559 find_loop_location): Likewise. 30560 (new_stmt_vec_info): Move to tree-vect-stmts.c. 30561 (init_stmt_vec_info_vec, free_stmt_vec_info_vec, free_stmt_vec_info, 30562 get_vectype_for_scalar_type, vect_is_simple_use, 30563 supportable_widening_operation, supportable_narrowing_operation): 30564 Likewise. 30565 (bb_in_loop_p): Move to tree-vect-loop.c. 30566 (new_loop_vec_info, destroy_loop_vec_info, 30567 reduction_code_for_scalar_code, report_vect_op, 30568 vect_is_simple_reduction, vect_is_simple_iv_evolution): Likewise. 30569 (vect_can_force_dr_alignment_p): Move to tree-vect-data-refs.c. 30570 (vect_supportable_dr_alignment): Likewise. 30571 * tree-vectorizer.h (tree-data-ref.h): Include. 30572 (vect_loop_location): Declare. 30573 Reorganize function declarations according to the new file structure. 30574 * tree-vect-loop.c: New file. 30575 * tree-vect-analyze.c: Remove. Move functions to tree-vect-data-refs.c, 30576 tree-vect-stmts.c, tree-vect-slp.c, tree-vect-loop.c. 30577 * tree-vect-data-refs.c: New file. 30578 * tree-vect-patterns.c (timevar.h): Don't include. 30579 * tree-vect-stmts.c: New file. 30580 * tree-vect-transform.c: Remove. Move functions to tree-vect-stmts.c, 30581 tree-vect-slp.c, tree-vect-loop.c. 30582 * Makefile.in (OBJS-common): Remove tree-vect-analyze.o and 30583 tree-vect-transform.o. Add tree-vect-data-refs.o, tree-vect-stmts.o, 30584 tree-vect-loop.o, tree-vect-loop-manip.o, tree-vect-slp.o. 30585 (tree-vect-analyze.o): Remove. 30586 (tree-vect-transform.o): Likewise. 30587 (tree-vect-data-refs.o): Add rule. 30588 (tree-vect-stmts.o, tree-vect-loop.o, tree-vect-loop-manip.o, 30589 tree-vect-slp.o): Likewise. 30590 (tree-vect-patterns.o): Remove redundant dependencies. 30591 (tree-vectorizer.o): Likewise. 30592 * tree-vect-slp.c: New file. 30593 305942009-03-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 30595 30596 * optc-gen.awk: Warn if an option flag has multiple different 30597 help strings. 30598 305992009-03-30 Sebastian Pop <sebastian.pop@amd.com> 30600 30601 * doc/invoke.texi (-floop-interchange, -floop-strip-mine, 30602 -floop-block): Document dependences on PPL, CLooG and Graphite. 30603 306042009-03-30 Joseph Myers <joseph@codesourcery.com> 30605 30606 PR rtl-optimization/323 30607 * c-common.c (c_fully_fold, convert_and_check, 30608 c_common_truthvalue_conversion): Handle EXCESS_PRECISION_EXPR. 30609 (c_fully_fold_internal): Disallow EXCESS_PRECISION_EXPR. 30610 * c-common.def (EXCESS_PRECISION_EXPR): New. 30611 * c-cppbuiltin.c (builtin_define_float_constants): Define 30612 constants with enough digits for long double. 30613 * c-lex.c (interpret_float): Interpret constant with excess 30614 precision where appropriate. 30615 * c-opts.c (c_common_post_options): Set 30616 flag_excess_precision_cmdline. Give an error for 30617 -fexcess-precision=standard for C++ for processors where the 30618 option is significant. 30619 * c-parser.c (c_parser_conditional_expression): Handle excess 30620 precision in condition. 30621 * c-typeck.c (convert_arguments): Handle arguments with excess 30622 precision. 30623 (build_unary_op): Move excess precision outside operation. 30624 (build_conditional_expr): Likewise. 30625 (build_compound_expr): Likewise. 30626 (build_c_cast): Do cast on operand of EXCESS_PRECISION_EXPR. 30627 (build_modify_expr): Handle excess precision in RHS. 30628 (convert_for_assignment): Handle excess precision in converted 30629 value. 30630 (digest_init, output_init_element, process_init_element): Handle 30631 excess precision in initializer. 30632 (c_finish_return): Handle excess precision in return value. 30633 (build_binary_op): Handle excess precision in operands and add 30634 excess precision as needed for operation. 30635 * common.opt (-fexcess-precision=): New option. 30636 * config/i386/i386.h (X87_ENABLE_ARITH, X87_ENABLE_FLOAT): New. 30637 * config/i386/i386.md (float<SSEMODEI24:mode><X87MODEF:mode>2): 30638 For standard excess precision, output explicit conversion to and 30639 truncation from XFmode. 30640 (*float<SSEMODEI24:mode><X87MODEF:mode>2_1, 30641 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387_with_temp, 30642 *float<SSEMODEI24:mode><X87MODEF:mode>2_i387, two unnamed 30643 define_splits, floatdi<X87MODEF:mode>2_i387_with_xmm, two unnamed 30644 define_splits, *floatunssi<mode>2_1, two unnamed define_splits, 30645 floatunssi<mode>2, add<mode>3, sub<mode>3, mul<mode>3, divdf3, 30646 divsf3, *fop_<mode>_comm_i387, *fop_<mode>_1_i387, 30647 *fop_<MODEF:mode>_2_i387, *fop_<MODEF:mode>_3_i387, 30648 *fop_df_4_i387, *fop_df_5_i387, *fop_df_6_i387, two unnamed 30649 define_splits, sqrt<mode>2): Disable where appropriate for 30650 standard excess precision. 30651 * convert.c (convert_to_real): Do not shorten arithmetic to type 30652 for which excess precision would be used. 30653 * defaults.h (TARGET_FLT_EVAL_METHOD_NON_DEFAULT): Define. 30654 * doc/invoke.texi (-fexcess-precision=): Document option. 30655 (-mfpmath=): Correct index entry. 30656 * flags.h (enum excess_precision, flag_excess_precision_cmdline, 30657 flag_excess_precision): New. 30658 * langhooks.c (lhd_post_options): Set 30659 flag_excess_precision_cmdline. 30660 * opts.c (common_handle_option): Handle -fexcess-precision=. 30661 * toplev.c (flag_excess_precision_cmdline, flag_excess_precision, 30662 init_excess_precision): New. 30663 (lang_dependent_init_target): Call init_excess_precision. 30664 * tree.c (excess_precision_type): New. 30665 * tree.h (excess_precision_type): Declare. 30666 306672009-03-30 Joseph Myers <joseph@codesourcery.com> 30668 30669 PR c/35235 30670 * c-typeck.c (build_component_ref): Do not copy qualifiers from 30671 non-lvalue to component. 30672 306732009-03-29 Joseph Myers <joseph@codesourcery.com> 30674 30675 PR preprocessor/34695 30676 * Makefile.in (c-opts.o): Depend on c-tree.h. 30677 * c-common.c: Move down include of diagnostic.h. 30678 (done_lexing, c_cpp_error): New. 30679 * c-common.h (done_lexing): Declare. 30680 * c-decl.c (c_write_global_declarations): Don't check cpp_errors 30681 (parse_in). 30682 * c-opts.c: Include c-tree.h. 30683 (c_common_init_options): Set preprocessor error callback. 30684 (c_common_handle_option): Do not set preprocessor 30685 inhibit_warnings, warnings_are_errors, warn_system_headers, 30686 pedantic_errors or inhibit_warnings flags. 30687 (c_common_post_options): Do not check cpp_errors (parse_in). 30688 (c_common_finish): Do not output dependencies if there were 30689 errors. Do not check return value of cpp_finish. 30690 * c-ppoutput.c (pp_file_change): Set input_location. 30691 * c-tree.h (c_cpp_error): Declare. 30692 * diagnostic.c (diagnostic_set_info_translated): Also initialize 30693 override_column. 30694 (diagnostic_build_prefix): Check override_column. 30695 * diagnostic.h (diagnostic_info): Add override_column field. 30696 (diagnostic_override_column): Define. 30697 306982009-03-28 Paolo Bonzini <bonzini@gnu.org> 30699 30700 * c-common.c (c_expand_expr, c_staticp): Remove. 30701 * c-common.def (COMPOUND_LITERAL_EXPR): Delete. 30702 * c-common.h (emit_local_var, c_staticp, COMPOUND_LITERAL_EXPR_DECL, 30703 COMPOUND_LITERAL_EXPR_DECL_EXPR): Remove. 30704 * c-gimplify.c (gimplify_compound_literal_expr, 30705 optimize_compound_literals_in_ctor): Remove. 30706 (c_gimplify_expr): Remove COMPOUND_LITERAL_EXPR handling. 30707 * c-objc-common.h (LANG_HOOKS_STATICP): Remove. 30708 * c-semantics.c (emit_local_var): Remove. 30709 30710 * langhooks-def.h (lhd_expand_expr): Remove. 30711 * langhooks.c (lhd_expand_expr): Remove. 30712 * langhooks.h (LANG_HOOKS_DEF): Remove LANG_HOOKS_EXPAND_EXPR. 30713 30714 * expr.c (expand_expr_real_1): Move COMPOUND_LITERAL_EXPR 30715 handling from c-semantics.c; don't call into langhook. 30716 (expand_expr_addr_expr_1): Check that we don't get non-GENERIC trees. 30717 * gimplify.c (gimplify_compound_literal_expr, 30718 optimize_compound_literals_in_ctor): Move from c-gimplify.c. 30719 (gimplify_init_constructor): Call optimize_compound_literals_in_ctor. 30720 (gimplify_modify_expr_rhs, gimplify_expr): Handle COMPOUND_LITERAL_EXPR 30721 as was done in c-gimplify.c. 30722 * tree.c (staticp): Move COMPOUND_LITERAL_EXPR handling from c_staticp. 30723 * tree.h (COMPOUND_LITERAL_EXPR_DECL, COMPOUND_LITERAL_EXPR_DECL_EXPR): 30724 Move from c-common.h. 30725 * tree.def (COMPOUND_LITERAL_EXPR): Move from c-common.def. 30726 30727 * tree.c (staticp): Do not call langhook. 30728 * langhooks.c (lhd_staticp): Delete. 30729 * langhooks-def.h (lhd_staticp): Delete prototype. 30730 (LANG_HOOKS_STATICP): Delete. 30731 (LANG_HOOKS_INITIALIZER): Delete LANG_HOOKS_STATICP. 30732 30733 * doc/c-tree.texi (Expression nodes): Refer to DECL_EXPRs 30734 instead of DECL_STMTs. 30735 307362009-03-29 Joseph Myers <joseph@codesourcery.com> 30737 30738 PR c/456 30739 PR c/5675 30740 PR c/19976 30741 PR c/29116 30742 PR c/31871 30743 PR c/35198 30744 * builtins.c (fold_builtin_sincos): Build COMPOUND_EXPR in 30745 void_type_node. 30746 (fold_call_expr): Return a NOP_EXPR from folding rather than the 30747 contained expression. 30748 * c-common.c (c_fully_fold, c_fully_fold_internal, c_save_expr): New. 30749 (c_common_truthvalue_conversion): Use c_save_expr. Do not fold 30750 conditional expressions for C. 30751 (decl_constant_value_for_optimization): Move from 30752 decl_constant_value_for_broken_optimization in c-typeck.c. Check 30753 whether optimizing and that the expression is a VAR_DECL not of 30754 array type instead of doing such checks in the caller. Do not 30755 check pedantic. Call gcc_unreachable for C++. 30756 * c-common.def (C_MAYBE_CONST_EXPR): New. 30757 * c-common.h (c_fully_fold, c_save_expr, 30758 decl_constant_value_for_optimization): New prototypes. 30759 (C_MAYBE_CONST_EXPR_PRE, C_MAYBE_CONST_EXPR_EXPR, 30760 C_MAYBE_CONST_EXPR_INT_OPERANDS, C_MAYBE_CONST_EXPR_NON_CONST, 30761 EXPR_INT_CONST_OPERANDS): Define. 30762 * c-convert.c (convert): Strip nops from expression. 30763 * c-decl.c (groktypename): Take extra parameters expr and 30764 expr_const_operands. Update call to grokdeclarator. 30765 (start_decl): Update call to grokdeclarator. Add statement for 30766 expressions used in type of decl. 30767 (grokparm): Update call to grokdeclarator. 30768 (push_parm_decl): Update call to grokdeclarator. 30769 (build_compound_literal): Add parameter non_const and build a 30770 C_MAYBE_COSNT_EXPR if applicable. 30771 (grokdeclarator): Take extra parameters expr and 30772 expr_const_operands. Track expressions used in declaration 30773 specifiers and declarators. Fold array sizes and track whether 30774 they are constant expressions and whether they are integer 30775 constant expressions. 30776 (parser_xref_tag): Set expr and expr_const_operands fields in 30777 return value. 30778 (grokfield): Update call to grokdeclarator. 30779 (start_function): Update call to grokdeclarator. 30780 (build_null_declspecs): Set expr and expr_const_operands fields in 30781 return value. 30782 (declspecs_add_type): Handle expressions in typeof specifiers. 30783 * c-parser.c (c_parser_declspecs): Set expr and 30784 expr_const_operands fields for declaration specifiers. 30785 (c_parser_enum_specifier): Likewise. 30786 (c_parser_struct_or_union_specifier): Likewise. 30787 (c_parser_typeof_specifier): Likewise. Update call to 30788 groktypename. Fold expression as needed. Return expressions with 30789 type instead of adding statements. 30790 (c_parser_attributes): Update calls to c_parser_expr_list. 30791 (c_parser_statement_after_labels): Fold expression before passing 30792 to objc_build_throw_stmt. 30793 (c_parser_condition): Fold expression. 30794 (c_parser_asm_operands): Fold expression. 30795 (c_parser_conditional_expression): Use c_save_expr. Update call 30796 to build_conditional_expr. 30797 (c_parser_alignof_expression): Update call to groktypename. 30798 (c_parser_postfix_expression): Preserve C_MAYBE_CONST_EXPR as 30799 original_code. Fold expression argument of va_arg. Create 30800 C_MAYBE_CONST_EXPR to preserve side effects of expressions in type 30801 argument to va_arg. Update calls to groktypename. Fold array 30802 index for offsetof. Verify that first argument to 30803 __builtin_choose_expr has integer type. 30804 (c_parser_postfix_expression_after_paren_type): Update calls to 30805 groktypename and build_compound_literal. Handle expressions with 30806 side effects in type name. 30807 (c_parser_postfix_expression_after_primary): Update call to 30808 c_parser_expr_list. Set original_code for calls to 30809 __builtin_constant_p. 30810 (c_parser_expr_list): Take extra parameter fold_p. Fold 30811 expressions if requested. 30812 (c_parser_objc_type_name): Update call to groktypename. 30813 (c_parser_objc_synchronized_statement): Fold expression. 30814 (c_parser_objc_receiver): Fold expression. 30815 (c_parser_objc_keywordexpr): Update call to c_parser_expr_list. 30816 (c_parser_omp_clause_num_threads, c_parser_omp_clause_schedule, 30817 c_parser_omp_atomic, c_parser_omp_for_loop): Fold expressions. 30818 * c-tree.h (CONSTRUCTOR_NON_CONST): Define. 30819 (struct c_typespec): Add elements expr and expr_const_operands. 30820 (struct c_declspecs): Add elements expr and expr_const_operands. 30821 (groktypename, build_conditional_expr, build_compound_literal): 30822 Update prototypes. 30823 (in_late_binary_op): Declare. 30824 * c-typeck.c (note_integer_operands): New function. 30825 (in_late_binary_op): New variable. 30826 (decl_constant_value_for_broken_optimization): Move to c-common.c 30827 and rename to decl_constant_value_for_optimization. 30828 (default_function_array_conversion): Do not strip nops. 30829 (default_conversion): Do not call 30830 decl_constant_value_for_broken_optimization. 30831 (build_array_ref): Do not fold result. 30832 (c_expr_sizeof_expr): Fold operand. Use C_MAYBE_CONST_EXPR for 30833 result when operand is a VLA. 30834 (c_expr_sizeof_type): Update call to groktypename. Handle 30835 expressions included in type name. Use C_MAYBE_CONST_EXPR for 30836 result when operand names a VLA type. 30837 (build_function_call): Update call to build_compound_literal. 30838 Only fold result for calls to __builtin_* functions. Strip 30839 NOP_EXPR from INTEGER_CST returned from such functions. Fold 30840 the function designator. 30841 (convert_arguments): Fold arguments. Update call to 30842 convert_for_assignment. 30843 (build_unary_op): Handle increment and decrement of 30844 C_MAYBE_CONST_EXPR. Move lvalue checks for increment and 30845 decrement earlier. Fold operand of increment and decrement. 30846 Handle address of C_MAYBE_CONST_EXPR. Only fold expression being 30847 built for integer operand. Wrap returns that are INTEGER_CSTs 30848 without being integer constant expressions or that have integer 30849 constant operands without being INTEGER_CSTs. 30850 (lvalue_p): Handle C_MAYBE_CONST_EXPR. 30851 (build_conditional_expr): Add operand ifexp_bcp. Track whether 30852 result is an integer constant expression or can be used in 30853 unevaluated parts of one and avoid folding and wrap as 30854 appropriate. Fold operands before possibly doing -Wsign-compare 30855 warnings. 30856 (build_compound_expr): Wrap result for C99 if operands can be used 30857 in integer constant expressions. 30858 (build_c_cast): Update call to digest_init. Do not ignore 30859 overflow from casting floating-point constants to integers. Wrap 30860 results that could be confused with integer constant expressions, 30861 null pointer constants or floating-point constants. 30862 (c_cast_expr): Update call to groktypename. Handle expressions 30863 included in type name. 30864 (build_modify_expr): Handle modifying a C_MAYBE_CONST_EXPR. Fold 30865 lhs inside possible SAVE_EXPR. Fold RHS before assignment. 30866 Update calls to convert_for_assignment. 30867 (convert_for_assignment): Take new parameter 30868 null_pointer_constant. Do not strip nops or call 30869 decl_constant_value_for_broken_optimization. Set 30870 in_late_binary_op for conversions to boolean. 30871 (store_init_value): Update call to digest_init. 30872 (digest_init): Take new parameter null_pointer_constant. Do not 30873 call decl_constant_value_for_broken_optimization. pedwarn for 30874 initializers not constant expressions. Update calls to 30875 convert_for_assignment. 30876 (constructor_nonconst): New. 30877 (struct constructor_stack): Add nonconst element. 30878 (really_start_incremental_init, push_init_level, pop_init_level): 30879 Handle constructor_nonconst and nonconst element. 30880 (set_init_index): Call constant_expression_warning for array 30881 designators. 30882 (output_init_element): Fold value. Set constructor_nonconst as 30883 applicable. pedwarn for initializers not constant expressions. 30884 Update call to digest_init. Call constant_expression_warning 30885 where constant initializers are required. 30886 (process_init_element): Use c_save_expr. 30887 (c_finish_goto_ptr): Fold expression. 30888 (c_finish_return): Fold return value. Update call to 30889 convert_for_assignment. 30890 (c_start_case): Fold switch expression. 30891 (c_process_expr_stmt): Fold expression. 30892 (c_finish_stmt_expr): Create C_MAYBE_CONST_EXPR as needed to 30893 ensure statement expression is not evaluated in constant expression. 30894 (build_binary_op): Track whether results are integer constant 30895 expressions or may occur in such, disable folding and wrap results 30896 as applicable. Fold operands for -Wsign-compare warnings unless 30897 in_late_binary_op. 30898 (c_objc_common_truthvalue_conversion): Handle results folded to 30899 integer constants that are not integer constant expressions. 30900 * doc/extend.texi: Document when typeof operands are evaluated, 30901 that condition of __builtin_choose_expr is an integer constant 30902 expression, and more about use of __builtin_constant_p in 30903 initializers. 30904 309052009-03-29 Richard Guenther <rguenther@suse.de> 30906 30907 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Properly 30908 propagate addresses of array references. 30909 309102009-03-29 Steven Bosscher <steven@gcc.gnu.org> 30911 30912 * regmove.c (perhaps_ends_bb_p): Remove. 30913 (optimize_reg_copy_1): Don't call perhaps_ends_bb_p. Get basic block 30914 from INSN and check that the main loop stays within that basic block. 30915 (optimize_reg_copy_1, optimize_reg_copy_3, fixup_match_2): Likewise. 30916 (regmove_forward_pass): Split out from regmove_optimize. Use 30917 FOR_EACH_BB and FOR_BB_INSNS instead of traversing the insns stream. 30918 (regmove_backward_pass): Split out from regmove_optimize. Use 30919 FOR_EACH_BB_REVERSE and FOR_BB_INSNS_REVERS_SAFE. 30920 (regmove_optimize): Simplify. 30921 309222009-03-29 H.J. Lu <hongjiu.lu@intel.com> 30923 30924 PR target/39545 30925 * config/i386/i386.c (classify_argument): Ignore flexible array 30926 member in struct and warn ABI change. 30927 309282009-03-29 H.J. Lu <hongjiu.lu@intel.com> 30929 30930 * config/i386/i386-protos.h (ix86_agi_dependent): New. 30931 30932 * config/i386/i386.c (ix86_agi_dependent): Rewrite. 30933 (ix86_adjust_cost): Updated. 30934 309352009-03-29 Jan Hubicka <jh@suse.cz> 30936 30937 PR middle-end/28850 30938 * tree-pass.h (pass_cleanup_eh): New function. 30939 (remove_unreachable_regions): Break code handling RTL 30940 to rtl_remove_unreachable_regions; remove ERT_MUST_NOT_THROW 30941 that can not be reached by runtime. 30942 (can_be_reached_by_runtime): New function. 30943 (label_to_region_map): New function. 30944 (num_eh_regions): New function. 30945 (rtl_remove_unreachable_regions): New function. 30946 (convert_from_eh_region_ranges): Call rtl_remove_unreachable_regions. 30947 (remove_eh_region): New function. 30948 * except.h: Include sbitmap and vecprim. 30949 (remove_eh_region, remove_unreachable_regions, label_to_region_map, 30950 num_eh_regions): Declare. 30951 * passes.c (init_optimization_passes): Schedule cleanup_eh. 30952 * Makefile.in (EXCEPT_H): New; replace all uses of except.h by it. 30953 * tree-eh.c (tree_remove_unreachable_handlers): New function. 30954 (tree_empty_eh_handler_p): New function. 30955 (cleanup_empty_eh): New function. 30956 (cleanup_eh): New function. 30957 (pass_cleanup_eh): New function. 30958 309592009-03-29 Jan Hubicka <jh@suse.cz> 30960 30961 * except.c (verify_eh_tree): Fix handling of fun!=cfun; be ready 30962 for removed regions. 30963 309642009-03-29 Jan Hubicka <jh@suse.cz> 30965 30966 * except.c (dump_eh_tree): Dump all datastructures. 30967 309682009-03-29 Jan Hubicka <jh@suse.cz> 30969 30970 * except.c (duplicate_eh_regions_0): Handle AKA bitmap. 30971 (duplicate_eh_regions_1): Likewise. 30972 (duplicate_eh_regions): Likewise; cleanup code gorwing the region 30973 vector; call EH verification. 30974 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1): 30975 Be ready for region being removed. 30976 309772009-03-29 Jan Hubicka <jh@suse.cz> 30978 30979 * bitmap.c (bitmap_last_set_bit): New function. 30980 * bitmap.h (bitmap_last_set_bit): Declare. 30981 309822009-03-29 David Ayers <ayers@fsfe.org> 30983 30984 PR objc/27377 30985 * c-typeck.c (build_conditional_expr): Emit ObjC warnings 30986 by calling objc_compare_types and surpress warnings about 30987 incompatible C pointers that are compatible ObjC pointers. 30988 309892009-03-29 Adam Nemet <anemet@caviumnetworks.com> 30990 30991 * cgraphbuild.c (build_cgraph_edges, rebuild_cgraph_edges): Don't 30992 call initialize_inline_failed. 30993 (initialize_inline_failed): Move it from here ... 30994 * cgraph.c (initialize_inline_failed): ... to here. 30995 (cgraph_create_edge): Call initialize_inline_failed rather than 30996 setting inline_failed directly. 30997 309982009-03-29 Ben Elliston <bje@au.ibm.com> 30999 31000 PR target/32542 31001 * sysv4.opt (msdata): Improve comment. 31002 * linux64.h (ASM_SPEC32): Do not pass -memb when -msdata is given. 31003 * sysv4.h (SVR4_ASM_SPEC): Likewise. 31004 310052009-03-29 Ben Elliston <bje@au.ibm.com> 31006 31007 PR target/30451 31008 * config/rs6000/rs6000.md (*movti_ppc64): Correct the order of 31009 load and store attributes. 31010 310112009-03-29 Ben Elliston <bje@au.ibm.com> 31012 31013 * config/i386/i386.c (enum ix86_builtins): Add IX86_BUILTIN_HUGE_VALQ. 31014 (ix86_init_builtins): Add built-in function __builtin_huge_valq. 31015 (ix86_expand_builtin): Handle IX86_BUILTIN_HUGE_VALQ. 31016 * doc/extend.texi (X86 Built-in Functions): Add index entries for 31017 __builtin_infq and __builtin_huge_valq. 31018 310192009-03-28 Anatoly Sokolov <aesok@post.ru> 31020 31021 * config/avr/avr.c (avr_mcu_t): Add atmega8c1, atmega16c1 and 31022 atmega8m1 devices. 31023 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 31024 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.) 31025 310262009-03-28 Xinliang David Li <davidxl@google.com> 31027 31028 * tree-ssa-ccp.c (ccp_finalize): Add dbg_count support. 31029 (do_dbg_cnt): New function. 31030 310312009-03-28 Jan Hubicka <jh@suse.cz> 31032 31033 Merge from pretty-ipa: 31034 31035 2009-03-27 Jan Hubicka <jh@suse.cz> 31036 31037 * cgraph.c (dump_cgraph_node): Add replace output flag by process. 31038 * tree-pass.h (function_called_by_processed_nodes_p): Declare. 31039 * passes.c (function_called_by_processed_nodes_p): New. 31040 * ipa-pure-const.c (check_call): Fix handling of operands. 31041 (analyze_function): Dump debug output for skipped bodies. 31042 (local_pure_const): Use function_called_by_processed_nodes_p. 31043 * dwarf2out.c (reference_to_unused): Use output. 31044 * passes.c (do_per_function_toporder): Likewise. 31045 31046 2008-11-12 Jan Hubicka <jh@suse.cz> 31047 31048 * tree-pass.h (pass_fixup_cfg, pass_local_pure_const): Declare. 31049 * ipa-pure-const.c (funct_state_d): Add can throw field; make 31050 state_set_in_source enum 31051 (check_decl): Ignore memory tags; do not set fake looping flags; 31052 dump diagnostics. 31053 (check_operand, check_tree, check_rhs_var, check_lhs_var, 31054 get_asm_expr_operands, scan_function_op, scan_function_stmt): Remove. 31055 (check_call, analyze_function): Rewrite. 31056 (check_stmt): New. 31057 (add_new_function): Update call of analyze_function. 31058 (generate_summary): Add call of analyze_function. 31059 (propagate): Propagate can_throw; handle state_set_in_source correctly. 31060 (local_pure_const): New function. 31061 (pass_local_pure_const): New pass. 31062 * ipa-inline.c (inline_transform): Set after_inlining. 31063 * tree-eh.c (stmt_can_throw_external): New. 31064 * tree-optimize.c (execute_fixup_cfg): Do not set after_inlining; 31065 work with aliasing built. 31066 * tree-flow.h (stmt_can_throw_external): New. 31067 * passes.c (init_optimization_passes): Schedule fixup_cfg pass early; 31068 and local pure/const pass in early and late optimization queue. 31069 310702009-03-28 Martin Jambor <mjambor@suse.cz> 31071 31072 * fold-const.c (get_pointer_modulus_and_residue): New parameter 31073 allow_func_align. 31074 (fold_binary): Allow function decl aligment consideration is the 31075 second argument is integer constant one. 31076 * tree-ssa-forwprop.c (simplify_bitwise_and): New function. 31077 (tree_ssa_forward_propagate_single_use_vars): Handle assing statements 31078 with BIT_AND_EXPR on the RHS by calling simplify_bitwise_and. 31079 310802009-03-28 Jan Hubicka <jh@suse.cz> 31081 31082 * dwarf2out.c (dwarf2out_begin_prologue): Use crtl->nothrow 31083 * tree-eh.c (stmt_could_throw_p): Remove check for WEAK decls. 31084 * function.h (rtl_data): Add nothrow flag. 31085 * except.c (set_nothrow_function_flags): Use crtl->nothrow; 31086 set DECL_NOTHROW for AVAILABLE functions. 31087 310882009-03-28 Jakub Jelinek <jakub@redhat.com> 31089 31090 * config/rs6000/rs6000-c.c (rs6000_macro_to_expand): If macro 31091 following vector keyword has expansion starting with pixel or bool 31092 keyword, expand vector to __vector and pixel or bool to __pixel or 31093 __bool. 31094 31095 PR c++/39554 31096 * opts.c (warning_disallowed_functions, warn_disallowed_functions, 31097 warn_if_disallowed_function_p): Removed. 31098 (common_handle_option): Don't handle OPT_Wdisallowed_function_list_. 31099 * c-parser.c (c_parser_postfix_expression_after_primary): Don't call 31100 warning_if_disallowed_function_p. 31101 * flags.h (warn_if_disallowed_function_p, 31102 warn_disallowed_functions): Removed. 31103 * common.opt (Wdisallowed-function-list=): Removed. 31104 * doc/invoke.texi (-Wdisallowed-function-list=): Removed. 31105 311062009-03-28 Richard Guenther <rguenther@suse.de> 31107 31108 PR tree-optimization/38723 31109 * tree-ssa-pre.c (compute_avail): Add all default definitions to 31110 the entry block. 31111 311122009-03-28 Jan Hubicka <jh@suse.cz> 31113 31114 * tree-ssa-structalias.c (ipa_pta_execute): Fix bogus node->analyzed 31115 test introduced by my previous patch. 31116 311172009-03-28 Richard Guenther <rguenther@suse.de> 31118 31119 * tree-ssa-copy.c (copy_prop_visit_phi_node): Do not leave 31120 the PHIs value undefined. 31121 311222009-03-28 Jan Hubicka <jh@suse.cz> 31123 31124 * tree-pass.h (pass_fixup_cfg): New pass. 31125 * ipa-inline.c (inline_transform): Set 31126 always_inline_functions_inlined/after_inlining. 31127 * tree-optimize.c (execute_fixup_cfg): Do not set them here. 31128 (pass_fixup_cfg): New pass. 31129 * passes.c (init_optimization_passes): Add fixup_cfg. 31130 311312009-03-28 Richard Guenther <rguenther@suse.de> 31132 31133 PR tree-optimization/38458 31134 * tree-ssa-copy.c (copy_prop_visit_phi_node): For the first 31135 argument use the arguments copy-of value. 31136 311372009-03-28 Richard Guenther <rguenther@suse.de> 31138 31139 PR tree-optimization/38180 31140 * tree-ssa-ccp.c (get_default_value): Simplify. 31141 (likely_value): Likewise. 31142 (surely_varying_stmt_p): Properly handle VOP case. 31143 (ccp_initialize): Likewise. 31144 (ccp_fold): Handle propagating through *&. 31145 (fold_const_aggregate_ref): Also handle decls. 31146 311472009-03-28 Jan Hubicka <jh@suse.cz> 31148 31149 * cgraph.c (dump_cgraph_node): Add replace output flag by process. 31150 * cgraph.h (cgraph_node): Likewise. 31151 * cgraphunit.c (cgraph_process_new_functions): Set process flag. 31152 (cgraph_reset_node): Use process flag. 31153 (cgraph_mark_functions_to_output): Likewise. 31154 (cgraph_expand_function): Likewise. 31155 (cgraph_expand_all_functions): Likewise. 31156 (cgraph_output_in_order): Likewise. 31157 * dwarf2out.c (reference_to_unused): Likewise. 31158 * passes.c do_per_function_toporder): Likewise. 31159 311602009-03-28 Jan Hubicka <jh@suse.cz> 31161 31162 Bring from lto-branch: 31163 31164 2008-09-03 Doug Kwan <dougkwan@google.com> 31165 31166 * cgraphbuild.c (initialize_inline_failed): Use cgraph_inline_failed_t 31167 enums instead of reason strings. 31168 * cgraph.c (cgraph_create_edge): Same. 31169 (cgraph_inline_failed_string): New function. 31170 * cgraph.h (cgraph_inline_failed_t): New enum type. 31171 (cgraph_inline_failed_string): New prototype. 31172 (struct cgraph_edge): Change type of INLINED_FAILED from constant 31173 char pointer to cgraph_inline_failed_t. 31174 (cgraph_inline_p): Adjust prototype to use cgraph_inline_failed_t. 31175 (cgraph_default_inline_p): Ditto. 31176 * cgraphunit.c (cgraph_inline_p): Change type of parameter REASON 31177 to cgraph_inline_failed_t pointer. 31178 * cif-code.def: New file. 31179 * ipa-inline.c (cgraph_mark_inline_edge): Use an enum instead of a 31180 reason string. 31181 (cgraph_check_inline_limits): Change type of REASON to pointer to 31182 cgraph_inline_failed_t. Replace reason strings with enums. 31183 (cgraph_default_inline_p): Ditto. 31184 (cgraph_recursive_inlining_p): Ditto. 31185 (update_caller_keys): Change type of FAILED_REASON to 31186 cgraph_inline_failed_t. 31187 (cgraph_set_inline_failed): Change type of REASON to pointer to 31188 cgraph_inline_failed_t. Call cgraph_inline_failed_string to 31189 convert enums to strings for text output. 31190 (cgraph_decide_inlining_of_small_function): Change FAILED_REASON 31191 to be of type cgraph_inline_failed_t. Replace reason strings with 31192 enums. Call cgraph_inline_failed_string to covert enums 31193 to strings for text output. 31194 (cgraph_decide_inlining): Replace reason strings with enums. 31195 (cgraph_decide_inlining_incrementally): Change type of FAILED_REASON 31196 to cgraph_inline_failed_t type. Call cgraph_inline_failed_string 31197 for text output. 31198 * tree-inline.c (expand_call_inline): Change type of REASON 31199 to cgraph_inline_failed_t. Replace reason strings with enums. 31200 Call cgraph_inline_failed_string for text output. 31201 * Makefile.in (CGRAPH_H): Add cif-code.def to dependencies. 31202 (cgraph.o): Ditto. 31203 312042009-03-28 Jan Hubicka <jh@suse.cz> 31205 31206 * cgraph.c (cgraph_node, cgraph_remove_node, dump_cgraph_node, 31207 cgraph_clone_node): Remove master clone handling. 31208 (cgraph_is_master_clone, cgraph_master_clone): Remove. 31209 * cgraph.h (master_clone): Remove. 31210 (cgraph_is_master_clone, cgraph_master_clone): Remove. 31211 * ipa-type-escape.c (type_escape_execute): Remove use of master clone. 31212 (tree-ssa-structalias.c (ipa_pta_execute): Likewise. 31213 312142009-03-28 Jan Hubicka <jh@suse.cz> 31215 31216 * cgraph.c (cgraph_function_body_availability): Functions declared 31217 inline are always safe to assume that it is not going to be replaced. 31218 312192009-03-28 Richard Guenther <rguenther@suse.de> 31220 31221 PR tree-optimization/38513 31222 * tree-ssa-pre.c (eliminate): Remove redundant stores. 31223 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle 31224 EXC_PTR_EXPR and FILTER_EXPR. 31225 (get_ref_from_reference_ops): Likewise. 31226 312272009-03-28 Richard Guenther <rguenther@suse.de> 31228 31229 PR tree-optimization/38968 31230 * tree-vect-analyze.c (vect_compute_data_ref_alignment): 31231 Use FLOOR_MOD_EXPR to compute misalignment. 31232 312332009-03-28 Richard Guenther <rguenther@suse.de> 31234 31235 PR tree-optimization/37795 31236 * tree.h (combine_comparisons): Declare. 31237 * fold-const.c (combine_comparisons): Export. 31238 * tree-ssa-ifcombine.c (ifcombine_ifandif): Optimize two successive 31239 comparisons. 31240 (ifcombine_iforif): Use combine_comparisons. 31241 312422009-03-28 Jan Hubicka <jh@suse.cz> 31243 31244 * tree-eh.c (inlinable_call_p): New function. 31245 (make_eh_edges): Use it. 31246 (verify_eh_edges): Use it. 31247 (stmt_can_throw_external, stmt_can_throw_internal): Use it. 31248 * except.c (reachable_next_level): Add inlinable_function argument 31249 (sjlj_find_directly_reachable_regions): Update. 31250 (add_reachable_handler): Do not set saw_any_handlers. 31251 (reachable_next_level): Handle MUST_NOT_THROW more curefully. 31252 (foreach_reachable_handler, can_throw_internal_1, can_throw_external_1): 31253 Add new inlinable call parameter. 31254 (can_throw_internal, can_throw_external): Update. 31255 * except.h (can_throw_internal_1, can_throw_external_1, 31256 foreach_reachable_handler): Update declaration. 31257 312582009-03-28 Joseph Myers <joseph@codesourcery.com> 31259 31260 * config/arm/t-arm-coff, config/h8300/coff.h, 31261 config/i386/i386-aout.h, config/i386/i386-coff.h, 31262 config/libgloss.h, config/m68k/coff.h, config/m68k/m68k-aout.h, 31263 config/pdp11/2bsd.h, config/rs6000/aix41.h, 31264 config/rs6000/aix41.opt, config/rs6000/t-newas, config/sh/coff.h, 31265 fix-header.c, fixproto, gen-protos.c, protoize.c, scan-decls.c, 31266 scan-types.sh, scan.c, scan.h, sort-protos, sys-protos.h, 31267 sys-types.h: Remove. 31268 * Makefile.in: Remove protoize and fixproto support and references 31269 in comments. 31270 (SYSCALLS.c.X-warn, TARGET_GETGROUPS_T, STMP_FIXPROTO, 31271 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, FIXPROTO_DEFINES): 31272 Remove. 31273 (ALL_HOST_OBJS): Remove $(PROTO_OBJS). 31274 (MOSTLYCLEANFILES): Remove protoize$(exeext) and 31275 unprotoize$(exeext). 31276 (rest.encap): Don't depend on $(STMP_FIXPROTO) 31277 (.PHONY): Don't depend on proto. 31278 (libgcc-support): Don't depend on $(STMP_FIXPROTO). 31279 (proto, PROTO_OBJS, protoize$(exeext), unprotoize$(exeext), 31280 protoize.o, unprotoize.o, SYSCALLS.c.X, test-protoize-simple, 31281 deduced.h, GEN_PROTOS_OBJS, build/gen-protos$(build_exeext), 31282 build/gen-protos.o, build/scan.o, xsys-protos.h, 31283 build/fix-header$(build_exeext), build/fix-header.o, 31284 build/scan-decls.o, fixhdr.ready, stmp-fixproto, 31285 stmp-install-fixproto): Remove. 31286 (mostlyclean): Don't remove xsys-protos.hT, SYSCALLS.c.X, 31287 SYSCALLS.c or fixproto files. 31288 (install-common): Don't install protoize. 31289 (install-headers-tar, install-headers-cpio, install-headers-cp): 31290 Don't depend on $(STMP_FIXPROTO). 31291 (install-mkheaders): Don't depend on $(STMP_FIXPROTO). Don't 31292 install fixproto files or write out fixproto settings. 31293 (uninstall): Don't uninstall protoize. 31294 * config.gcc (use_fixproto): Remove. 31295 (arm-*-coff*, armel-*-coff*, h8300-*-*, i[34567]86-*-aout*, 31296 i[34567]86-*-coff*, m68k-*-aout*, m68k-*-coff*, pdp11-*-bsd, 31297 rs6000-ibm-aix4.[12]*, powerpc-ibm-aix4.[12]*, sh-*-*): Remove. 31298 * config/m32r/t-linux (STMP_FIXPROTO): Remove. 31299 * config/m68k/m68k.c: Remove M68K_TARGET_COFF-conditional code. 31300 * config/mips/t-iris (FIXPROTO_DEFINES): Remove. 31301 * config/pa/t-pa-hpux (FIXPROTO_DEFINES): Remove. 31302 * config/pdp11/pdp11.c: Remove TWO_BSD-conditional code. 31303 * config/t-svr4 (FIXPROTO_DEFINES): Remove. 31304 * config/t-vxworks (STMP_FIXPROTO): Remove. 31305 * configure.ac (AC_TYPE_GETGROUPS, TARGET_GETGROUPS_T, 31306 STMP_FIXPROTO): Remove. 31307 * config.in, configure: Regenerate. 31308 * crtstuff.c (gid_t, uid_t): Don't undefine. 31309 * doc/install.texi: Change m68k-coff to m68k-elf in example. 31310 (arm-*-coff, arm-*-aout: Remove target entries. 31311 (*-ibm-aix*): Mention removal of support for AIX 4.2 and older. 31312 Remove mention of AIX 4.1. 31313 (m68k-*-*): Remove mention of m68k-*-aout and m68k-*-coff*. 31314 * doc/invoke.texi (Running Protoize): Remove. 31315 * doc/trouble.texi (Actual Bugs): Remove mention of fixproto. 31316 (Protoize Caveats): Remove. 31317 * tsystem.h: Update comments on headers assumed to exist. 31318 313192009-03-27 Vladimir Makarov <vmakarov@redhat.com> 31320 31321 * genautomata.c: Add a new year to the copyright. Add a new 31322 reference. 31323 (struct insn_reserv_decl): Add comments for member bypass_list. 31324 (find_bypass): Remove. 31325 (insert_bypass): New. 31326 (process_decls): Use insert_bypass. 31327 (output_internal_insn_latency_func): Output all bypasses with the 31328 same input insn in one switch case. 31329 31330 * rtl.def (define_bypass): Describe bypass choice. 31331 * doc/md.texi (define_bypass): Ditto. 31332 313332009-03-27 Richard Guenther <rguenther@suse.de> 31334 31335 * gimplify.c (mark_addressable): Export. 31336 * tree-flow.h (mark_addressable): Declare. 31337 * tree-ssa-loop-manip.c (create_iv): Mark the base addressable. 31338 * tree-ssa.c (verify_phi_args): Verify that address taken 31339 variables have TREE_ADDRESSABLE set. 31340 313412009-03-27 Richard Guenther <rguenther@suse.de> 31342 31343 * fold-const.c (build_fold_addr_expr_with_type_1): Rename back to ... 31344 (build_fold_addr_expr_with_type): ... this. Remove in_fold handling. 31345 Do not mark decls TREE_ADDRESSABLE. 31346 (build_fold_addr_expr): Adjust. 31347 (fold_addr_expr): Remove. 31348 (fold_unary): Use build_fold_addr_expr. 31349 (fold_comparison): Likewise. 31350 (split_address_to_core_and_offset): Likewise. 31351 * coverage.c (tree_coverage_counter_addr): Mark the array decl 31352 TREE_ADDRESSABLE. 31353 * gimplify.c (mark_addressable): Do not exclude RESULT_DECLs. 31354 (gimplify_modify_expr_to_memcpy): Mark source and destination 31355 addressable. 31356 * omp-low.c (create_omp_child_function): Mark the object decl 31357 TREE_ADDRESSABLE. 31358 (lower_rec_input_clauses): Mark the var we take the address of 31359 TREE_ADDRESSABLE. 31360 (lower_omp_taskreg): Mark the sender decl TREE_ADDRESSABLE. 31361 313622009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31363 31364 PR middle-end/39315 31365 * cfgexpand.c (expand_one_stack_var_at): Change alignment 31366 limit to MAX_SUPPORTED_STACK_ALIGNMENT. 31367 313682009-03-27 Richard Guenther <rguenther@suse.de> 31369 31370 PR tree-optimization/39120 31371 * tree-ssa-structalias.c (handle_rhs_call): Fill out return 31372 constraints. 31373 (handle_lhs_call): Process return constraints. Add escape 31374 constraints if necessary. 31375 (handle_const_call): Fill out return constraints. Make nested 31376 case more precise. Avoid consttmp if possible. 31377 (handle_pure_call): Fill out return constraints. Avoid 31378 callused if possible. 31379 (find_func_aliases): Simplify call handling. 31380 313812009-03-27 Richard Guenther <rguenther@suse.de> 31382 31383 PR tree-optimization/39120 31384 * tree-ssa-structalias.c (do_sd_constraint): Do not use CALLUSED 31385 as a representative. 31386 (solve_graph): Do propagate CALLUSED. 31387 (handle_pure_call): Use a scalar constraint from CALLUSED for 31388 the return value. 31389 (find_what_p_points_to): CALLUSED shall not appear in poins-to 31390 solutions. 31391 313922009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31393 31394 PR c/39323 31395 * c-common.c (handle_aligned_attribute): Properly check alignment 31396 overflow. Use (1U << i) instead of (1 << i). 31397 31398 * emit-rtl.c (get_mem_align_offset): Use "unsigned int" for align. 31399 31400 * expr.h (get_mem_align_offset): Updated. 31401 31402 * tree.h (tree_decl_common): Change align to "unsigned int" and 31403 move it before pointer_alias_set. 31404 314052009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31406 Jakub Jelinek <jakub@redhat.com> 31407 31408 PR target/38034 31409 * config/ia64/sync.md (cmpxchg_rel_<mode>): Replace input 31410 gr_register_operand with gr_reg_or_0_operand. 31411 (cmpxchg_rel_di): Likewise. 31412 (sync_lock_test_and_set<mode>): Likewise. 31413 314142009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31415 31416 * jump.c (rtx_renumbered_equal_p): Use subreg_get_info. 31417 (true_regnum): Likewise. 31418 31419 * rtlanal.c (subreg_info): Moved to ... 31420 * rtl.h (subreg_info): Here. New. 31421 (subreg_get_info): New. 31422 31423 * rtlanal.c (subreg_get_info): Make it extern. 31424 314252009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31426 31427 PR target/39472 31428 * config/i386/i386.c (ix86_abi): New. 31429 (override_options): Handle -mabi=. 31430 (ix86_function_arg_regno_p): Replace DEFAULT_ABI with ix86_abi. 31431 (ix86_call_abi_override): Likewise. 31432 (init_cumulative_args): Likewise. 31433 (function_arg_advance): Likewise. 31434 (function_arg_64): Likewise. 31435 (function_arg): Likewise. 31436 (ix86_pass_by_reference): Likewise. 31437 (ix86_function_value_regno_p): Likewise. 31438 (ix86_build_builtin_va_list_abi): Likewise. 31439 (setup_incoming_varargs_64): Likewise. 31440 (is_va_list_char_pointer): Likewise. 31441 (ix86_init_machine_status): Likewise. 31442 (ix86_reg_parm_stack_space): Use enum calling_abi on call_abi. 31443 (ix86_function_type_abi): Return enum calling_abi. Rewrite 31444 for 64bit. Replace DEFAULT_ABI with ix86_abi. 31445 (ix86_function_abi): Make it static and return enum calling_abi. 31446 (ix86_cfun_abi): Return enum calling_abi. Replace DEFAULT_ABI 31447 with ix86_abi. 31448 (ix86_fn_abi_va_list): Updated. 31449 31450 * config/i386/i386.h (ix86_abi): New. 31451 (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi. 31452 (CONDITIONAL_REGISTER_USAGE): Likewise. 31453 (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi. 31454 (machine_function): Likewise. 31455 31456 * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI 31457 with ix86_abi. 31458 * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise. 31459 (STACK_BOUNDARY): Likewise. 31460 * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise. 31461 31462 * config/i386/i386.opt (mabi=): New. 31463 31464 * config/i386/i386-protos.h (ix86_cfun_abi): Changed to 31465 return enum calling_abi. 31466 (ix86_function_type_abi): Likewise. 31467 (ix86_function_abi): Removed. 31468 31469 * doc/invoke.texi: Document -mabi= option for x86. 31470 314712009-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 31472 31473 * builtins.c (real_dconstp): Delete. 31474 (fold_builtin_logarithm): Remove inaccurate log(e) special case. 31475 314762009-03-27 Dodji Seketeli <dodji@redhat.com> 31477 Jakub Jelinek <jakub@redhat.com> 31478 31479 PR debug/37959 31480 * dwarf2out.c (dwarf_attr_name): Handle DW_AT_explicit attribute. 31481 (gen_subprogram_die): When a function is explicit, generate the 31482 DW_AT_explicit attribute. 31483 * langhooks.h (struct lang_hooks_for_decls): Add 31484 function_decl_explicit_p langhook. 31485 * langhooks-def.h (LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P): Define. 31486 (LANG_HOOKS_DECLS): Add LANG_HOOKS_FUNCTION_DECL_EXPLICIT_P. 31487 314882009-03-27 Jakub Jelinek <jakub@redhat.com> 31489 31490 * builtins.c (fold_builtin_memory_op): Optimize memmove 31491 into memcpy if we can prove source and destination don't overlap. 31492 31493 * tree-inline.c: Include gt-tree-inline.h. 31494 (clone_fn_id_num): New variable. 31495 (clone_function_name): New function. 31496 (tree_function_versioning): Use it. 31497 * Makefile.in (GTFILES): Add tree-inline.c. 31498 314992009-03-27 Mark Mitchell <mark@codesourcery.com> 31500 31501 * BASE-VER: Change to 4.5.0. 31502 315032009-03-27 Xinliang David Li <davidxl@google.com> 31504 31505 PR tree-optimization/39557 31506 * tree-ssa.c (warn_uninitialized_vars): free postdom info. 31507 315082009-03-27 Xinliang David Li <davidxl@google.com> 31509 31510 PR tree-optimization/39548 31511 * tree-ssa-copy.c (copy_prop_visit_phi_node): Add copy 31512 candidate check. 31513 315142009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31515 31516 * c-common.c (pointer_int_sum): Use %wd on return from 31517 tree_low_cst. 31518 315192009-03-27 H.J. Lu <hongjiu.lu@intel.com> 31520 31521 * c-common.c (pointer_int_sum): Use HOST_WIDE_INT_PRINT_DEC 31522 on return from tree_low_cst. 31523 315242009-03-27 Andrew Pinski <andrew_pinski@playstation.sony.com> 31525 31526 PR c++/36799 31527 * ginclude/stdarg.h (va_copy): Define also for 31528 __GXX_EXPERIMENTAL_CXX0X__. 31529 315302009-03-27 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 31531 31532 PR c++/35652 31533 * builtins.h (c_strlen): Do not warn here. 31534 * c-typeck.c (build_binary_op): Adjust calls to pointer_int_sum. 31535 * c-common.c (pointer_int_sum): Take an explicit location. 31536 Warn about offsets out of bounds. 31537 * c-common.h (pointer_int_sum): Adjust declaration. 31538 315392009-03-26 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31540 31541 * doc/invoke.texi (i386 and x86-64 Windows Options): Fix texinfo 31542 markup glitch. 31543 315442009-03-26 Jakub Jelinek <jakub@redhat.com> 31545 31546 PR c++/39554 31547 * opts.c (warn_if_disallowed_function_p): Don't assume 31548 get_callee_fndecl must return non-NULL. 31549 315502009-03-26 Vladimir Makarov <vmakarov@redhat.com> 31551 31552 PR rtl-optimization/39522 31553 * reload1.c (reload_as_needed): Invalidate reg_last_reload_reg too 31554 when reg_reloaded_valid is set. 31555 315562009-03-26 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 31557 31558 * config/spu/divv2df3.c: New file. 31559 * config/spu/t-spu-elf (LIB2FUNCS_STATIC_EXTRA): Add it. 31560 (DPBIT_FUNCS): Filter out _div_df. 31561 315622009-03-26 Bernd Schmidt <bernd.schmidt@analog.com> 31563 31564 * config/bfin/bfin.c (bfin_optimize_loop): If the LSETUP goes before 31565 a jump insn, count that jump in the distance to the loop start. 31566 315672009-03-25 Kaz Kojima <kkojima@gcc.gnu.org> 31568 31569 PR target/39523 31570 * config/sh/sh.c (calc_live_regs): Fix condition for global 31571 registers except PIC_OFFSET_TABLE_REGNUM. 31572 315732009-03-25 Kai Tietz <kai.tietz@onevision.com> 31574 31575 PR/39518 31576 * doc/invoke.texi (-mconsole): New. 31577 (-mcygwin): New. 31578 (-mno-cygwin): New. 31579 (-mdll): New. 31580 (-mnop-fun-dllimport): New. 31581 (-mthread): New. 31582 (-mwin32): New. 31583 (-mwindows): New. 31584 (sub section "i386 and x86-64 Windows Options"): New. 31585 315862009-03-25 Ralf Corsépius <ralf.corsepius@rtems.org> 31587 31588 * config/arm/rtems-elf.h: Remove LINK_GCC_C_SEQUENCE_SPEC. 31589 * config/rs6000/t-rtems: Remove MULTILIB_EXTRA_OPTS. 31590 315912009-03-25 Richard Guenther <rguenther@suse.de> 31592 31593 PR middle-end/39497 31594 * Makefile.in (dfp.o-warn): Use -fno-strict-aliasing instead 31595 of -Wno-error. 31596 315972009-03-25 Andrey Belevantsev <abel@ispras.ru> 31598 31599 * config/ia64/ia64.c (ia64_set_sched_flags): Zero spec_info->mask when 31600 neither of haifa/selective schedulers are working. 31601 316022009-03-25 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31603 31604 * doc/invoke.texi (Debugging Options): Fix description of 31605 -fno-merge-debug-strings. 31606 316072009-03-24 Hans-Peter Nilsson <hp@axis.com> 31608 31609 * config/cris/libgcc.ver: New version-script. 31610 * config/cris/t-linux (SHLIB_MAPFILES): Use it. 31611 31612 * configure.ac <GAS features, nop mnemonic>: Add pattern 31613 crisv32-*-* for "nop". 31614 <GAS features, Thread-local storage>: Add item for CRIS and CRIS v32. 31615 * configure: Regenerate. 31616 316172009-03-24 Ira Rosen <irar@il.ibm.com> 31618 31619 PR tree-optimization/39529 31620 * tree-vect-transform.c (vect_create_data_ref_ptr): Call 31621 mark_sym_for_renaming for the tag copied to the new vector 31622 pointer. 31623 316242009-03-24 Arthur Loiret <aloiret@debian.org> 31625 31626 * config.host (alpha*-*-linux*): Use driver-alpha.o and alpha/x-alpha. 31627 * config/alpha/linux.h (host_detect_local_cpu): Declare, add to 31628 EXTRA_SPEC_FUNCTIONS. 31629 (MCPU_MTUNE_NATIVE_SPECS, DRIVER_SELF_SPECS): New macros. 31630 * config/alpha/driver-alpha.c, config/alpha/x-alpha: New. 31631 * doc/invoke.texi (DEC Alpha Options): Document 'native' value for 31632 -march and -mtune options. 31633 316342009-03-24 Ralf Corsépius <ralf.corsepius@rtems.org> 31635 31636 * config/m68k/t-rtems: Add m5329 multilib. 31637 316382009-03-24 Dodji Seketeli <dodji@redhat.com> 31639 Jakub Jelinek <jakub@redhat.com> 31640 31641 PR debug/39524 31642 * dwarf2out.c (gen_variable_die): Avoid adding duplicate declaration 31643 nodes. 31644 316452009-03-23 Jakub Jelinek <jakub@redhat.com> 31646 31647 PR c/39495 31648 * c-parser.c (c_parser_omp_for_loop): Call c_parser_binary_expression 31649 instead of c_parser_expression_conv, if original_code isn't one of the 31650 4 allowed comparison codes, fail. 31651 316522009-03-23 Richard Guenther <rguenther@suse.de> 31653 31654 * cgraph.h (struct cgraph_node): Reorder fields for 64-bit hosts. 31655 * tree.h (struct tree_type): Likewise. 31656 * reload.h (struct insn_chain): Likewise. 31657 * dwarf2out.c (struct dw_loc_descr_struct): Likewise. 31658 * function.h (struct function): Likewise. 31659 * tree-ssa-structalias.c (struct equiv_class_label): Likewise. 31660 316612009-03-23 Jakub Jelinek <jakub@redhat.com> 31662 31663 PR tree-optimization/39516 31664 * lambda-code.c (perfect_nestify): Fix type of the uboundvar variable. 31665 316662009-03-23 Bingfeng Mei <bmei@broadcom.com> 31667 31668 * config.gcc (need_64bit_hwint): Make clear that need_64bit_hwint 31669 should be set true if BITS_PER_WORD of target is bigger than 32 31670 316712009-03-22 Hans-Peter Nilsson <hp@axis.com> 31672 31673 * config/cris/linux.h (CRIS_LINK_SUBTARGET_SPEC): 31674 Translate -B-options to -rpath-link. Correct existing 31675 rpath-link and conditionalize on !nostdlib. 31676 316772009-03-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31678 31679 * doc/extend.texi (Function Attributes, Variable Attributes): 31680 Fix typos. 31681 * doc/invoke.texi (Debugging Options, Optimize Options) 31682 (i386 and x86-64 Options, MCore Options): Likewise. 31683 316842009-03-20 Jakub Jelinek <jakub@redhat.com> 31685 31686 PR debug/37890 31687 * dwarf2out.c (gen_namespace_die): Add context_die argument and use 31688 it for block local namespace aliases. 31689 (gen_decl_die): Pass context_die to gen_namespace_die. 31690 316912009-03-19 Jakub Jelinek <jakub@redhat.com> 31692 31693 PR c/39495 31694 * c-omp.c (c_finish_omp_for): Allow NE_EXPR with TREE_TYPE (decl)'s 31695 minimum or maximum value. 31696 316972009-03-19 Alexandre Oliva <aoliva@redhat.com> 31698 31699 * reginfo.c (globalize_reg): Recompute derived reg sets. 31700 317012009-03-19 Ozkan Sezer <sezeroz@gmail.com> 31702 31703 PR target/39063 31704 * libgcc2.c (mprotect): Do not use signed arguments for 31705 VirtualProtect, use DWORD arguments. Also fix the 'may 31706 be used uninitialized' warning for the np variable. 31707 317082009-03-19 Jakub Jelinek <jakub@redhat.com> 31709 31710 PR target/39496 31711 * config/i386/i386.c (ix86_function_regparm): Don't optimize local 31712 functions using regparm calling conventions when not optimizing. 31713 (ix86_function_sseregparm): Similarly for sseregparm calling 31714 conventions. 31715 317162009-03-19 Li Feng <nemokingdom@gmail.com> 31717 31718 PR middle-end/39500 31719 * tree-data-ref.c (analyze_subscript_affine_affine): There is no 31720 dependence if the first conflict is after niter iterations. 31721 317222009-03-19 Hans-Peter Nilsson <hp@axis.com> 31723 31724 PR middle-end/38609 31725 * config/cris/cris.h (FRAME_POINTER_REQUIRED): Force for all 31726 functions with dynamic stack-pointer adjustments. 31727 317282009-03-19 Ben Elliston <bje@au.ibm.com> 31729 31730 * doc/invoke.texi (RS/6000 and PowerPC Options): Fix -msdata-data 31731 option; change to -msdata=data. 31732 317332009-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31734 31735 * c.opt: Unify help texts for -Wdeprecated, -Wsystem-headers, 31736 and -fopenmp. 31737 317382009-03-18 Eric Botcazou <ebotcazou@adacore.com> 31739 31740 PR target/35180 31741 * config/sparc/sparc.md (do_builtin_setjmp_setup): Prettify asm output. 31742 317432009-03-18 Sandra Loosemore <sandra@codesourcery.com> 31744 31745 * doc/invoke.texi (Code Gen Options): Expand discussion of 31746 -fno-common. 31747 317482009-03-18 Jakub Jelinek <jakub@redhat.com> 31749 31750 * dse.c (struct group_info): Reorder fields for 64-bit hosts. 31751 * matrix-reorg.c (struct matrix_info): Likewise. 31752 * tree-ssa-loop-ivopts.c (struct ivopts_data): Likewise. 31753 * rtl.h (struct mem_attrs): Likewise. 31754 * df.h (struct df): Likewise. 31755 * tree-data-ref.h (struct data_dependence_relation): Likewise. 31756 * ira-int.h (struct ira_allocno): Likewise. 31757 * df-scan.c (struct df_collection_rec): Likewise. 31758 * ira.c (struct equivalence): Likewise. 31759 * function.c (struct temp_slot): Likewise. 31760 * cfgloop.h (struct loop): Likewise. 31761 31762 PR debug/39485 31763 * function.c (use_register_for_decl): When not optimizing, disregard 31764 register keyword for variables with types containing methods. 31765 317662009-03-18 Sebastian Pop <sebastian.pop@amd.com> 31767 31768 PR middle-end/39447 31769 * graphite.c (exclude_component_ref): Renamed contains_component_ref_p. 31770 (is_simple_operand): Call contains_component_ref_p before calling data 31771 reference analysis that would fail on COMPONENT_REFs. 31772 31773 * tree-vrp.c (search_for_addr_array): Fix formatting. 31774 317752009-03-18 Richard Guenther <rguenther@suse.de> 31776 31777 * tree-vect-transform.c (vect_loop_versioning): Fold the 31778 generated comparisons. 31779 * tree-vectorizer.c (set_prologue_iterations): Likewise. 31780 (slpeel_tree_peel_loop_to_edge): Likewise. 31781 317822009-03-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 31783 31784 PR middle-end/37805 31785 * opts.c (print_specific_help): In addition to `undocumented', 31786 accept `separate' and `joined' flags if passed alone. Describe 31787 output by the first matched one of those. 31788 (common_handle_option): Skip over empty strings. 31789 * gcc.c (display_help): Fix help string for `--help='. 31790 * doc/invoke.texi (Option Summary, Overall Options): With 31791 `--help=', classes and qualifiers can both be repeated, but 31792 only the latter can be negated. One should not pass only 31793 negated qualifiers. Fix markup and examples. 31794 31795 Revert 31796 2008-10-14 Jakub Jelinek <jakub@redhat.com> 31797 PR middle-end/37805 31798 * opts.c (common_handle_option): Don't ICE on -fhelp=joined 31799 and -fhelp=separate. 31800 318012009-03-17 Jing Yu <jingyu@google.com> 31802 31803 PR middle-end/39378 31804 * function.h (struct rtl_data): Move is_thunk from here... 31805 (struct function): ...to here. 31806 * cp/method.c (use_thunk): Change is_thunk from crtl to cfun. 31807 * varasm.c (assemble_start_function): Change is_thunk from crtl to 31808 cfun. 31809 * config/alpha/alpha.c (alpha_sa_mask): Change is_thunk from crtl to 31810 cfun. 31811 (alpha_does_function_need_gp, alpha_start_function): Likewise. 31812 (alpha_output_function_end_prologue): Likewise. 31813 (alpha_end_function, alpha_output_mi_thunk_osf): Likewise. 31814 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likewise. 31815 (rs6000_output_function_epilogue): Likewise. 31816 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Likewise. 31817 318182009-03-17 Uros Bizjak <ubizjak@gmail.com> 31819 31820 PR target/39482 31821 * config/i386/i386.md (*truncdfsf_mixed): Avoid combining registers 31822 from different units in a single alternative. 31823 (*truncdfsf_i387): Ditto. 31824 (*truncxfsf2_mixed): Ditto. 31825 (*truncxfdf2_mixed): Ditto. 31826 318272009-03-17 Jakub Jelinek <jakub@redhat.com> 31828 31829 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Allow 31830 non-NAMESPACE_DECL IMPORTED_DECL_ASSOCIATED_DECL. 31831 31832 PR debug/39474 31833 * tree-ssa-live.c (remove_unused_locals): Don't remove local 31834 unused non-artificial variables when not optimizing. 31835 31836 PR debug/39471 31837 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): Emit 31838 DW_TAG_imported_module even if decl is IMPORTED_DECL with 31839 NAMESPACE_DECL in its DECL_INITIAL. 31840 31841 PR middle-end/39443 31842 * optabs.c (set_user_assembler_libfunc): New function. 31843 * expr.h (set_user_assembler_libfunc): New prototype. 31844 * c-common.c: Include libfuncs.h. 31845 (set_builtin_user_assembler_name): Call set_user_assembler_libfunc 31846 for memcmp, memset, memcpy, memmove and abort. 31847 * Makefile.in (c-common.o): Depend on libfuncs.h. 31848 31849 PR debug/39412 31850 * dwarf2out.c (gen_inlined_enumeration_type_die, 31851 gen_inlined_structure_type_die, gen_inlined_union_type_die, 31852 gen_tagged_type_instantiation_die): Removed. 31853 (gen_decl_die): For TYPE_DECL_IS_STUB with non-NULL decl_origin 31854 do nothing. 31855 318562009-03-17 Janis Johnson <janis187@us.ibm.com> 31857 31858 PR testsuite/38526 31859 * Makefile.in (site.exp): Rename TEST_GCC_EXEC_PREFIX and comment 31860 its use. 31861 (check-%): Don't set GCC_EXEC_PREFIX when invoking runtest. 31862 (check-parallel-%): Ditto. 31863 (check-consistency): Ditto. 31864 318652009-03-17 Kai Tietz <kai.tietz@onevision.com> 31866 31867 * ipa-struct-reorg.c (create_general_new_stmt): Initialize 31868 local variable rhs by NULL_TREE. 31869 318702009-03-17 H.J. Lu <hongjiu.lu@intel.com> 31871 31872 PR target/39477 31873 * doc/extend.texi: Correct register behavior for regparm on Intel 386. 31874 318752009-03-17 H.J. Lu <hongjiu.lu@intel.com> 31876 31877 PR target/39476 31878 * config/i386/i386.c (ix86_function_regparm): Rewrite for 64bit. 31879 318802009-03-17 H.J. Lu <hongjiu.lu@intel.com> 31881 31882 PR target/39473 31883 * config/i386/i386.c (ix86_expand_call): Check extra clobbers 31884 for ms->sysv ABI calls only in 64bit mode. 31885 31886 * config/i386/i386.md (untyped_call): Support 32bit. 31887 318882009-03-16 H.J. Lu <hongjiu.lu@intel.com> 31889 31890 * doc/extend.texi: Replace x86_65 with x86_64. 31891 318922009-03-16 Jakub Jelinek <jakub@redhat.com> 31893 31894 PR tree-optimization/39455 31895 * tree-ssa-loop-niter.c (number_of_iterations_lt_to_ne): Fix types 31896 mismatches for POINTER_TYPE_P (type). 31897 (number_of_iterations_le): Likewise. 31898 318992009-03-16 Hariharan Sandanagobalane <hariharan@picochip.com> 31900 31901 * config/picochip/picochip.c: Removed profiling support. 31902 * config/picochip/picochip.md: Removed profiling instruction. 31903 * config/picochip/picochip.h: Removed profiling builtin. 31904 319052009-03-16 Joseph Myers <joseph@codesourcery.com> 31906 31907 * doc/install.texi (--with-host-libstdcxx): Document. 31908 319092009-03-14 Anatoly Sokolov <aesok@post.ru> 31910 31911 PR target/34299 31912 * config/avr/avr.c (avr_handle_fndecl_attribute): Move code for 31913 generate a warning if the function name does not begin with 31914 "__vector" and the function has either the 'signal' or 'interrupt' 31915 attribute, from here to ... 31916 (avr_declare_function_name): ...here. New function. 31917 * config/avr/avr.h (ASM_DECLARE_FUNCTION_NAME): Redefine. 31918 * config/avr/avr-protos.h (avr_declare_function_name): Declare. 31919 319202009-03-14 Jakub Jelinek <jakub@redhat.com> 31921 31922 PR bootstrap/39454 31923 * cse.c (fold_rtx): Don't modify original const_arg1 when 31924 canonicalizing SHIFT_COUNT_TRUNCATED shift count, do it on a 31925 separate variable instead. 31926 * rtlanal.c (nonzero_bits1) <case ASHIFTRT>: Don't assume anything 31927 from out of range shift counts. 31928 (num_sign_bit_copies1) <case ASHIFTRT, case ASHIFT>: Similarly. 31929 319302009-03-13 Catherine Moore <clm@codesourcery.com> 31931 31932 * config/i386/x-mingw32 (host-mingw32.o): Replace 31933 diagnostic.h with $(DIAGNOSTIC_H). 31934 319352009-03-12 Jakub Jelinek <jakub@redhat.com> 31936 31937 PR target/39431 31938 * config/i386/predicates.md (cmpxchg8b_pic_memory_operand): New 31939 predicate. 31940 * config/i386/sync.md (sync_compare_and_swap<mode>, 31941 sync_compare_and_swap_cc<mode>): For DImode with -m32 -fpic check 31942 if operands[1] is cmpxchg8b_pic_memory_operand, if not force address 31943 into a register. 31944 (sync_double_compare_and_swapdi_pic, 31945 sync_double_compare_and_swap_ccdi_pic): Require operand 1 to be 31946 cmpxchg8b_pic_memory_operand instead of just memory_operand. 31947 319482009-03-12 H.J. Lu <hongjiu.lu@intel.com> 31949 31950 PR target/39445 31951 * config/i386/i386.c (ix86_expand_push): Don't set memory alignment. 31952 319532009-03-12 H.J. Lu <hongjiu.lu@intel.com> 31954 31955 PR target/39327 31956 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits. 31957 (avx_addsubv4df3): Likewise. 31958 (*avx_addsubv4sf3): Likewise. 31959 (sse3_addsubv4sf3): Likewise. 31960 319612009-03-12 H.J. Lu <hongjiu.lu@intel.com> 31962 31963 PR target/38824 31964 * config/i386/i386.md: Compare REGNO on the new peephole2 patterns. 31965 319662009-03-12 Vladimir Makarov <vmakarov@redhat.com> 31967 31968 PR debug/39432 31969 * ira-int.h (struct allocno): Fix comment for calls_crossed_num. 31970 * ira-conflicts.c (ira_build_conflicts): Prohibit call used 31971 registers for allocnos created from user-defined variables. 31972 319732009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 31974 31975 PR target/39181 31976 * config/spu/spu.c (spu_expand_mov): Handle invalid subregs 31977 of non-integer mode as well. 31978 319792009-03-11 Adam Nemet <anemet@caviumnetworks.com> 31980 31981 * gimplify.c (gimplify_call_expr): Don't set CALL_CANNOT_INLINE_P 31982 for functions for which the parameter types are unknown. 31983 319842009-03-11 Jakub Jelinek <jakub@redhat.com> 31985 31986 PR target/39137 31987 * cfgexpand.c (get_decl_align_unit): Use LOCAL_DECL_ALIGNMENT macro. 31988 * defaults.h (LOCAL_DECL_ALIGNMENT): Define if not yet defined. 31989 * config/i386/i386.h (LOCAL_DECL_ALIGNMENT): Define. 31990 * config/i386/i386.c (ix86_local_alignment): For 31991 -m32 -mpreferred-stack-boundary=2 use 32-bit alignment for 31992 long long variables on the stack to avoid dynamic realignment. 31993 Allow the first argument to be a decl rather than type. 31994 * doc/tm.texi (LOCAL_DECL_ALIGNMENT): Document. 31995 319962009-03-11 Nick Clifton <nickc@redhat.com> 31997 31998 PR target/5362 31999 * config/mcore/mcore.opt: Remove deprecated m4align and m8align 32000 options. 32001 Add description to mno-lsim option. 32002 * config/mcore/mcore.h: Remove comment about deprecated m4align 32003 option. 32004 (TARGET_DEFAULT): Remove deprecated MASK_M8ALIGN. 32005 * doc/invoke.texi: Add description of mno-lsim and 32006 mstack-increment options. 32007 32008 * config/fr30/fr30.opt: Document the -mno-lsim option. 32009 * doc/invoke.texi: Add descriptions of the FR30's -msmall-model 32010 and -mno-lsim options. 32011 320122009-03-11 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32013 32014 * fold-const.c (fold_comparison): Only call fold_inf_compare 32015 if the mode supports infinities. 32016 320172009-03-11 Jason Merrill <jason@redhat.com> 32018 32019 PR debug/39086 32020 * tree-nrv.c (tree_nrv): Don't do this optimization if the front 32021 end already did. Notice GIMPLE_CALL modifications of the result. 32022 Don't copy debug information from an ignored decl or a decl from 32023 another function. 32024 320252009-03-10 Richard Guenther <rguenther@suse.de> 32026 Nathan Froyd <froydnj@codesourcery.com> 32027 32028 PR middle-end/37850 32029 * libgcc2.c (__mulMODE3): Use explicit assignments to form the result. 32030 (__divMODE3): Likewise. 32031 320322009-03-09 Jakub Jelinek <jakub@redhat.com> 32033 32034 PR tree-optimization/39394 32035 * gimplify.c (gimplify_type_sizes): Gimplify DECL_SIZE and 32036 DECL_SIZE_UNIT of variable length FIELD_DECLs. 32037 320382009-03-09 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 32039 32040 * recog.c (verfiy_changes): Disallow renaming of hard regs in 32041 inline asms for register asm ("") declarations. 32042 320432009-03-09 Eric Botcazou <ebotcazou@adacore.com> 32044 32045 * fold-const.c (fold_unary): Fix comment. 32046 320472009-03-07 Jan Hubicka <jh@suse.cz> 32048 32049 PR target/39361 32050 * tree-inline.c (setup_one_parameter): Do replacement of const 32051 argument by constant in SSA form. 32052 320532009-03-07 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32054 32055 PR middle-end/38028 32056 * function.c (assign_parm_setup_stack): Use STACK_SLOT_ALIGNMENT to 32057 determine alignment passed to assign_stack_local. 32058 (assign_parms_unsplit_complex): Likewise. 32059 * except.c (sjlj_build_landing_pads): Likewise. 32060 320612009-03-06 Jakub Jelinek <jakub@redhat.com> 32062 32063 PR middle-end/39360 32064 * tree-flow.h (add_referenced_var): Return bool instead of void. 32065 * tree-dfa.c (add_referenced_var): Return result of 32066 referenced_var_check_and_insert call. 32067 * tree-inline.c (expand_call_inline): Call add_referenced_var instead 32068 of referenced_var_check_and_insert. 32069 32070 PR debug/39372 32071 * dwarf2out.c (add_abstract_origin_attribute): Return origin_die. 32072 (gen_variable_die): Emit DW_AT_location on abstract static variable's 32073 DIE, don't emit it if abstract origin already has it. 32074 * tree-cfg.c (remove_useless_stmts_bind): GIMPLE_BINDs with any 32075 BLOCK_NONLOCALIZED_VARS in its gimple_bind_block aren't useless. 32076 320772009-03-06 Jan-Benedict Glaw <jbglaw@lug-owl.de> 32078 32079 * genpreds.c (needs_variable): Fix parentheses at variable name 32080 detection. 32081 (write_tm_constrs_h): Indent generated code. 32082 320832009-03-06 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 32084 32085 * doc/extend.texi (Function Attributes): Add documentation 32086 for isr attributes. 32087 320882009-03-06 Jakub Jelinek <jakub@redhat.com> 32089 32090 PR debug/39387 32091 * dwarf2out.c (dwarf2out_imported_module_or_decl_1): For IMPORTED_DECL 32092 take locus from its DECL_SOURCE_LOCATION instead of input_location. 32093 320942009-03-05 Bernd Schmidt <bernd.schmidt@analog.com> 32095 32096 * config/bfin/bfin.c (bfin_discover_loop): When retrying fails, mark 32097 the loop as bad. 32098 320992009-03-05 Jakub Jelinek <jakub@redhat.com> 32100 32101 PR debug/39379 32102 * tree-cfg.c (remove_useless_stmts_bind): Don't remove GIMPLE_BINDs 32103 with blocks containing IMPORTED_DECLs in BLOCK_VARS. 32104 321052009-03-05 Uros Bizjak <ubizjak@gmail.com> 32106 32107 * config/i386/i386.md (R8_REG, R9_REG): New constants. 32108 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Use named 32109 constants instead of magic numbers. 32110 (HARD_REGNO_CALLER_SAVE_MODE): Ditto. 32111 (QI_REG_P): Ditto. 32112 * config/i386/i386.c (x86_64_int_parameter_registers): Ditto. 32113 (x86_64_ms_abi_int_parameter_registers): Ditto. 32114 (x86_64_int_return_registers): Ditto. 32115 (ix86_maybe_switch_abi): Ditto. 32116 (ix86_expand_call): Ditto for clobbered_registers array. 32117 (ix86_hard_regno_mode_ok): Ditto. 32118 (x86_extended_QIreg_mentioned_p): Ditto. 32119 321202009-03-05 J"orn Rennecke <joern.rennecke@arc.com> 32121 32122 PR tree-optimization/39349 32123 * cse.c (cse_insn): Fix loop to stop at VOIDmode. 32124 32125 * combine.c (gen_lowpart_for_combine): Use omode when generating 32126 clobber. 32127 321282009-03-04 J"orn Rennecke <joern.rennecke@arc.com> 32129 32130 PR rtl-optimization/39235 32131 * loop-iv.c (get_simple_loop_desc): Use XCNEW. 32132 321332009-03-04 Zdenek Dvorak <ook@ucw.cz> 32134 32135 * graphite.c (nb_reductions_in_loop): Update simple_iv arguments. 32136 321372009-03-04 Richard Guenther <rguenther@suse.de> 32138 32139 PR tree-optimization/39362 32140 * tree-ssa-sccvn.c (visit_use): Stores and copies from SSA_NAMEs 32141 that occur in abnormal PHIs should be varying. 32142 321432009-03-04 Zdenek Dvorak <ook@ucw.cz> 32144 32145 * tree-scalar-evolution.c (analyze_scalar_evolution_in_loop): 32146 Extend comments. 32147 (simple_iv): Take loop as an argument instead of statement. 32148 * tree-scalar-evolution.h (simple_iv): Declaration changed. 32149 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update calls 32150 to simple_iv. 32151 * tree-ssa-loop-ivopts.c (determine_biv_step, find_givs_in_stmt_scev): 32152 Ditto. 32153 * tree-parloops.c (loop_parallel_p, canonicalize_loop_ivs): Ditto. 32154 * matrix-reorg.c (analyze_transpose): Ditto. 32155 * tree-data-ref.c (dr_analyze_innermost): Ditto. 32156 * tree-vect-analyze.c (vect_analyze_data_refs): Ditto. 32157 * tree-predcom.c (ref_at_iteration): Ditto. 32158 * tree-ssa-loop-prefetch.c (idx_analyze_ref): Ditto. 32159 321602009-03-04 Richard Guenther <rguenther@suse.de> 32161 32162 PR tree-optimization/39358 32163 * tree-ssa-structalias.c (do_sd_constraint): Fix check for 32164 escaped_id and callused_id. 32165 (solve_graph): Likewise. 32166 321672009-03-04 Richard Guenther <rguenther@suse.de> 32168 32169 PR tree-optimization/39339 32170 * tree-sra.c (try_instantiate_multiple_fields): Make it 32171 no longer ICE on the above. 32172 321732009-03-03 Joseph Myers <joseph@codesourcery.com> 32174 32175 * emit-rtl.c (adjust_address_1): Reduce offset to a signed value 32176 that fits within Pmode. 32177 321782009-03-03 Steve Ellcey <sje@cup.hp.com> 32179 32180 PR middle-end/10109 32181 * tm.texi (LIBCALL_VALUE): Update description. 32182 321832009-03-03 Steve Ellcey <sje@cup.hp.com> 32184 32185 PR middle-end/34443 32186 * doc/extend.texi (section): Update description. 32187 321882009-03-03 H.J. Lu <hongjiu.lu@intel.com> 32189 32190 PR middle-end/39345 32191 * tree-inline.c (remapped_type): New. 32192 (can_be_nonlocal): Call remapped_type instead of remap_type. 32193 321942009-03-03 Jakub Jelinek <jakub@redhat.com> 32195 32196 PR fortran/39354 32197 * gimplify.c (goa_stabilize_expr): Handle tcc_comparison, 32198 TRUTH_ANDIF_EXPR and TRUTH_ORIF_EXPR. 32199 322002009-03-03 Richard Guenther <rguenther@suse.de> 32201 32202 PR middle-end/39272 32203 * tree.c (tree_nonartificial_location): New function. 32204 * tree.h (tree_nonartificial_location): Declare. 32205 * builtins.c (expand_builtin_memory_chk): Provide location 32206 of the call location for artificial function pieces. 32207 (maybe_emit_chk_warning): Likewise. 32208 (maybe_emit_sprintf_chk_warning): Likewise. 32209 (maybe_emit_free_warning): Likewise. 32210 * expr.c (expand_expr_real_1): Likewise. 32211 322122009-03-03 Jakub Jelinek <jakub@redhat.com> 32213 32214 PR tree-optimization/39343 32215 * tree-ssa-ccp.c (maybe_fold_offset_to_address): Don't check if 32216 COMPONENT_REF t has ARRAY_TYPE. 32217 322182009-03-02 Sebastian Pop <sebastian.pop@amd.com> 32219 32220 PR middle-end/39335 32221 * tree-parloops.c (canonicalize_loop_ivs): Call fold_convert 32222 when the type precision of the induction variable should be 32223 larger than the type precision of nit. 32224 (gen_parallel_loop): Update use of canonicalize_loop_ivs. 32225 * graphite.c (graphite_loop_normal_form): Same. 32226 * tree-flow.h (canonicalize_loop_ivs): Update declaration. 32227 322282009-03-02 Uros Bizjak <ubizjak@gmail.com> 32229 32230 * config/i386/i386.md (ST?_REG, MM?_REG): New constants. 32231 (*call_1_rex64_ms_sysv): Use named constants instead of magic 32232 numbers to describe clobbered registers. 32233 (*call_value_0_rex64_ms_sysv): Ditto. 32234 * config/i386/mmx.md (mmx_emms): Ditto. 32235 (mmx_femms): Ditto. 32236 322372009-03-02 Richard Sandiford <rdsandiford@googlemail.com> 32238 32239 * config/mips/mips.c (mips_mdebug_abi_name): Fix the handling 32240 of ABI_64. 32241 322422009-03-02 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32243 32244 * config/spu/spu.c (TARGET_SECTION_TYPE_FLAGS): Define. 32245 (spu_section_type_flags): New function. 32246 322472009-03-02 Uros Bizjak <ubizjak@gmail.com> 32248 32249 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not copy 32250 reg_class_contents of FLOAT_REGS into a temporary. 32251 322522009-03-02 Richard Guenther <rguenther@suse.de> 32253 Ira Rosen <irar@il.ibm.com> 32254 32255 PR tree-optimization/39318 32256 * tree-vect-transform.c (vectorizable_call): Transfer the EH region 32257 information to the vectorized statement. 32258 322592009-03-01 Uros Bizjak <ubizjak@gmail.com> 32260 32261 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Do not shadow "i" 32262 variable. Use defined names instead of magic constants for REX SSE 32263 registers. 32264 322652009-03-01 Richard Guenther <rguenther@suse.de> 32266 32267 PR tree-optimization/39331 32268 * omp-low.c (lower_send_shared_vars): Do not receive new 32269 values for the reference of DECL_BY_REFERENCE parms or results. 32270 322712009-03-01 Jan Hubicka <jh@suse.cz> 32272 32273 PR debug/39267 32274 * tree.h (BLOCK_NONLOCALIZED_VARS, BLOCK_NUM_NONLOCALIZED_VARS, 32275 BLOCK_NONLOCALIZED_VAR): New macros. 32276 (tree_block): Add nonlocalized_vars. 32277 * dwarf2out.c (gen_formal_parameter_die, gen_variable_die, 32278 gen_decl_die): Add origin argument. Allow generation of die with 32279 origin at hand only. 32280 (gen_member_die, gen_type_die_with_usage, force_decl_die, 32281 declare_in_namespace, gen_namescpace_die, dwarf2out_decl): Update use 32282 of gen_*. 32283 (gen_block_die): Fix checking for unused blocks. 32284 (process_scope_var): Break out from .... ; work with origins only. 32285 (decls_for_scope) ... here; process nonlocalized list. 32286 (dwarf2out_ignore_block): Look for nonlocalized vars. 32287 * tree-ssa-live.c (remove_unused_scope_block_p): Look for nonlocalized 32288 vars. 32289 (dump_scope_block): Dump them. 32290 * tree-inline.c (remap_decls): Handle nonlocalized vars. 32291 (remap_block): Likewise. 32292 (can_be_nonlocal): New predicate. 32293 (copy_bind_expr, copy_gimple_bind): Update use of remap_block. 32294 322952009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 32296 32297 * configure: Regenerate. 32298 322992009-03-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> 32300 32301 * optc-gen.awk: No need to duplicate option flags twice. 32302 Reuse help texts for duplicate options which do not have any. 32303 32304 * gcc.c (display_help): Document --version. 32305 32306 * gcc.c (main): If print_help_list and verbose_flag, ensure 32307 driver output comes before subprocess output. 32308 32309 * optc-gen.awk: Assign all remaining fields to help string, 32310 space-separated, for multi-line help in *.opt. 32311 32312 * doc/invoke.texi (Warning Options): -Wsync-nand is C/C++ only. 32313 -Wno-pedantic-ms-format is for MinGW targets only. 32314 32315 * doc/options.texi (Option file format): Fix bad indentation, 32316 restoring dropped sentence. 32317 323182009-02-28 Jan Hubicka <jh@suse.cz> 32319 32320 * tree-inline.c (tree_function_versioning): Output debug info. 32321 323222009-02-28 Jan Hubicka <jh@suse.cz> 32323 32324 PR debug/39267 32325 * tree-inline.c (setup_one_parameter): Do not copy propagate 32326 arguments when not optimizing. 32327 323282009-02-28 H.J. Lu <hongjiu.lu@intel.com> 32329 32330 PR target/39327 32331 * config/i386/sse.md (avx_addsubv8sf3): Correct item bits. 32332 (avx_addsubv4df3): Likewise. 32333 (*avx_addsubv4sf3): Likewise. 32334 (sse3_addsubv4sf3): Likewise. 32335 (*avx_addsubv2df3): Likewise. 32336 (sse3_addsubv2df3): Likewise. 32337 (avx_unpckhps256): Correct item selectors. 32338 (avx_unpcklps256): Likewise. 32339 (avx_unpckhpd256): Likewise. 32340 (avx_unpcklpd256): Likewise. 32341 323422009-02-28 Jan Hubicka <jh@suse.cz> 32343 32344 * tree-inline.c (expand_call_inline): Avoid duplicate declarations of 32345 static vars. 32346 (copy_arguments_for_versioning): If var is declared don't declare it. 32347 (tree_function_versioning): First setup substitutions and then copy 32348 args. 32349 323502009-02-27 Jan Hubicka <jh@suse.cz> 32351 32352 PR debug/39267 32353 * cgraph.h (varpool_output_debug_info): Remove. 32354 * cgraphunit.c (varpool_output_debug_info): Remove. 32355 * dwarf2out.c (deferred_locations_struct): New struct 32356 (deferred_locations): New type. 32357 (deferred_locations_list): New static var. 32358 (deffer_location): New function. 32359 (gen_variable_die): Use it. 32360 (decls_for_scope): Output info on local static vars. 32361 (dwarf2out_finish): Process deferred locations. 32362 * varpool.c (varpool_output_debug_info): Remove. 32363 323642009-02-27 Jan Hubicka <jh@suse.cz> 32365 32366 PR debug/39267 32367 * tree.h (TREE_PROTECTED): Fix comment. 32368 (BLOCK_HANDLER_BLOCK): Remove. 32369 (struct tree_block): Remove handler_block add body_block. 32370 (inlined_function_outer_scope_p): New. 32371 (is_body_block): Remove. 32372 * dbxout.c (dbxout_block): Remove BLOCK_HANDLER_BLOCK. 32373 * dwarf2out.c (is_inlined_entry_point): Remove. 32374 (add_high_low_attributes): Use inlined_function_outer_scope_p. 32375 (gen_block_die): Use is_inlined_entry_point check. Remove body block 32376 code. 32377 * langhooks.h (struct lang_hooks): Remove no_bodu_blocks. 32378 * gimplify.c (gimplify_expr): Gimplify body blocks. 32379 * tree-ssa-live.c (remove_unused_scope_block_p): Allow removing wrapper 32380 block with multiple subblocks. 32381 (dump_scope_block): Prettier output; dump more flags and info. 32382 (dump_scope_blocks): New. 32383 (remove_unused_locals): Use dump_scope_blocks. 32384 * tree-flow.h (dump_scope_blocks): Declare. 32385 * tree-cfg.c (execute_build_cfg): Dump scope blocks. 32386 * stmt.c (is_body_block): Remove. 32387 * tree-inline.c (remap_block): Copy BODY_BLOCK info. 32388 * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): Remove. 32389 323902009-02-27 Sebastian Pop <sebastian.pop@amd.com> 32391 32392 PR middle-end/39308 32393 * graphite.c (graphite_loop_normal_form): Do not call 32394 number_of_iterations_exit from a gcc_assert. 32395 323962009-02-27 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> 32397 32398 * config/s390/s390.c (s390_swap_cmp): Look for conditional 32399 jumps if COND is NULL. 32400 (find_cond_jump): New function. 32401 (s390_z10_optimize_cmp): Handling for reg-reg compares added. 32402 * config/s390/s390.md: Remove z10_cobra attribute value. 32403 324042009-02-26 Uros Bizjak <ubizjak@gmail.com> 32405 32406 * config/alpha/alpha.h (alpha_expand_mov): Return false if 32407 force_const_mem returns NULL_RTX. 32408 324092009-02-26 Jan Hubicka <jh@suse.cz> 32410 32411 PR debug/39267 32412 * cgraph.h (varpool_output_debug_info): Remove. 32413 * cgraphunit.c (varpool_output_debug_info): Remove. 32414 * dwarf2out.c (deferred_locations_struct): New struct 32415 (deferred_locations): New type. 32416 (deferred_locations_list): New static var. 32417 (deffer_location): New function. 32418 (gen_variable_die): Use it. 32419 (decls_for_scope): Output info on local static vars. 32420 (dwarf2out_finish): Process deferred locations. 32421 * varpool.c (varpool_output_debug_info): Remove. 32422 324232009-02-25 H.J. Lu <hongjiu.lu@intel.com> 32424 32425 PR rtl-optimization/39241 32426 * jump.c (rtx_renumbered_equal_p): Remove 2 superfluous calls 32427 to subreg_offset_representable_p. 32428 324292009-02-25 Paolo Bonzini <bonzini@gnu.org> 32430 32431 * regmove.c (regmove_optimize): Conform to struct rtl_opt_pass 32432 execute function prototype. Get f and nregs from max_reg_num 32433 and get_insns. Remove the first backward pass as it's dead, 32434 guard the forward pass by flag_expensive_optimizations. 32435 (rest_of_handle_regmove): Delete. 32436 (pass_regmove): Replace it with regmove_optimize. 32437 324382009-02-25 Martin Jambor <mjambor@suse.cz> 32439 32440 PR tree-optimization/39259 32441 * tree-inline.c (initialize_cfun): Remove asserts for calls_setjmp and 32442 calls_alloca function flags. 32443 (copy_bb): Set calls_setjmp and alls_alloca function flags if such 32444 calls are detected. 32445 324462009-02-25 Paolo Bonzini <bonzini@gnu.org> 32447 32448 * regmove.c (discover_flags_reg, flags_set_1, mark_flags_life_zones, 32449 flags_set_1_rtx, flags_set_1_set): Delete. 32450 (regmove_optimize): Do not call mark_flags_life_zones. 32451 324522009-02-24 Julian Brown <julian@codesourcery.com> 32453 32454 PR target/35965 32455 * config/arm/arm.c (require_pic_register): Only set 32456 cfun->machine->pic_reg once per function. 32457 324582009-02-24 Sandra Loosemore <sandra@codesourcery.com> 32459 32460 * doc/invoke.texi (Link Options): Document an easier way to pass 32461 options that take arguments to the GNU linker using -Xlinker and -Wl. 32462 324632009-02-24 Steve Ellcey <sje@cup.hp.com> 32464 32465 PR target/33785 32466 * doc/tm.texi (TARGET_C99_FUNCTIONS): Fix description. 32467 324682009-02-24 Richard Guenther <rguenther@suse.de> 32469 32470 PR debug/39285 32471 * dwarf2out.c (gen_enumeration_type_die): Handle CONST_DECLs. 32472 324732009-02-24 Richard Guenther <rguenther@suse.de> 32474 Zdenek Dvorak <ook@ucw.cz> 32475 32476 PR tree-optimization/39233 32477 * tree-ssa-loop-ivopts.c (add_candidate_1): Do not except pointers 32478 from converting them to a generic type. 32479 324802009-02-23 Sebastian Pop <sebastian.pop@amd.com> 32481 32482 PR tree-optimization/39260 32483 * graphite.c (harmful_stmt_in_bb): Stop a SCoP when the basic block 32484 contains a condition with a real type. 32485 (build_scop_conditions_1): Conditions are always last_stmt of a bb. 32486 324872009-02-23 Jason Merrill <jason@redhat.com> 32488 32489 PR c++/38880 32490 * varasm.c (initializer_constant_valid_p) [PLUS_EXPR]: Check 32491 narrowing_initializer_constant_valid_p. 32492 (narrowing_initializer_constant_valid_p): Don't return 32493 null_pointer_node for adding a pointer to itself. 32494 324952009-02-23 Jan Hubicka <jh@suse.cz> 32496 32497 PR c/12245 32498 * ggc.h (htab_create_ggc): Use ggc_free to free hashtable when 32499 resizing. 32500 325012009-02-23 Jan Hubicka <jh@suse.cz> 32502 32503 PR tree-optimization/37709 32504 * tree.c (block_ultimate_origin): Move here from dwarf2out. 32505 * tree.h (block_ultimate_origin): Declare. 32506 * dwarf2out.c (block_ultimate_origin): Move to tree.c 32507 * tree-ssa-live.c (remove_unused_scope_block_p): 32508 Eliminate blocks containig no instructions nor live variables nor 32509 nested blocks. 32510 (dump_scope_block): New function. 32511 (remove_unused_locals): Enable removal of dead blocks by default; 32512 enable dumping at TDF_DETAILS. 32513 325142009-02-21 H.J. Lu <hongjiu.lu@intel.com> 32515 32516 * config/i386/i386.c (classify_argument): Don't allow COImode 32517 and OImode. 32518 (function_arg_advance_32): Don't allow OImode. 32519 (function_arg_32): Likewise. 32520 (function_value_32): Likewise. 32521 (return_in_memory_32): Likewise. 32522 (function_arg_64): Remove OImode comment. 32523 325242009-02-21 H.J. Lu <hongjiu.lu@intel.com> 32525 32526 PR target/39261 32527 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use 32528 ix86_expand_vector_set for V4DImode in 64bit mode only. 32529 (ix86_expand_vector_init_one_var): Likewise. 32530 325312009-02-21 Sebastian Pop <sebastian.pop@amd.com> 32532 32533 * graphite.c (graphite_trans_loop_block): Adjust tile size to 51. 32534 325352009-02-21 Richard Sandiford <rdsandiford@googlemail.com> 32536 32537 PR bootstrap/39257 32538 * loop-iv.c: Revert last change. 32539 * emit-rtl.c: Likewise. 32540 325412009-02-21 H.J. Lu <hongjiu.lu@intel.com> 32542 32543 PR target/39256 32544 * config/i386/i386.c (type_natural_mode): Remove an extra 32545 space in the warning message. 32546 (function_value_32): Handle 32-byte vector modes. 32547 (return_in_memory_32): Likewise. 32548 325492009-02-21 Richard Sandiford <rdsandiford@googlemail.com> 32550 32551 * loop-iv.c (truncate_value): New function. 32552 (iv_subreg, get_iv_value, iv_number_of_iterations): Use it instead 32553 of lowpart_subreg. 32554 (lowpart_subreg): Move to... 32555 * emit-rtl.c: ...here. 32556 325572009-02-21 Danny Smith <dannysmith@users.sourceforge.net> 32558 32559 * config/i386/winnt.c (i386_pe_asm_output_aligned_decl_common): Revert 32560 accidental and undocumented change at revision 140860. 32561 325622009-02-21 Joseph Myers <joseph@codesourcery.com> 32563 32564 * config/arm/arm.c (arm_gimplify_va_arg_expr): Update prototype to 32565 take gimple_seq * arguments. 32566 (arm_mangle_type): Use CONST_CAST_TREE on type argument passed to 32567 types_compatible_p langhook. 32568 325692009-02-20 Mark Mitchell <mark@codesourcery.com> 32570 Joseph Myers <joseph@codesourcery.com> 32571 32572 * config/arm/arm.c (arm_builtin_va_list): New function. 32573 (arm_expand_builtin_va_start): Likewise. 32574 (arm_gimplify_va_arg_expr): Likewise. 32575 (TARGET_BUILD_BUILTIN_VA_LIST): Define. 32576 (TARGET_BUILD_BUILTIN_VA_START): Likewise. 32577 (TARGET_BUILD_BUILTIN_VA_ARG_EXPR): Likewise. 32578 (va_list_type): New variable. 32579 (arm_mangle_type): Mangle va_list_type appropriately. 32580 325812009-02-20 Jakub Jelinek <jakub@redhat.com> 32582 32583 PR middle-end/39157 32584 * Makefile.in (loop-invariant.o): Depend on $(PARAMS_H). 32585 * params.h (LOOP_INVARIANT_MAX_BBS_IN_LOOP): Define. 32586 * params.def (loop-invariant-max-bbs-in-loop): New parameter. 32587 * opts.c (decode_options): Set loop-invariant-max-bbs-in-loop 32588 parameter to 1000 for -O1 by default. 32589 * doc/invoke.texi (loop-invariant-max-bbs-in-loop): Document new 32590 parameter. 32591 * loop-invariant.c: Include params.h. 32592 (move_loop_invariants): Don't call move_single_loop_invariants on 32593 very large loops. 32594 325952009-02-20 Jaka Mocnik <jaka@xlab.si> 32596 32597 * calls.c (emit_library_call_value_1): Use slot_offset instead of 32598 offset when calculating bounds for indexing stack_usage_map. Fixes 32599 a buffer overflow with certain target setups. 32600 326012009-02-20 Jakub Jelinek <jakub@redhat.com> 32602 32603 PR target/39240 32604 * calls.c (expand_call): Clear try_tail_call if caller and callee 32605 disagree in promotion of function return value. 32606 326072009-02-19 Jakub Jelinek <jakub@redhat.com> 32608 32609 PR target/39175 32610 * c-common.c (c_determine_visibility): If visibility changed and 32611 DECL_RTL has been already set, call make_decl_rtl to update symbol 32612 flags. 32613 326142009-02-19 H.J. Lu <hongjiu.lu@intel.com> 32615 32616 PR c++/39188 32617 * varasm.c (assemble_variable): Don't check DECL_NAME when 32618 globalizing a variable. 32619 326202009-02-19 Joseph Myers <joseph@codesourcery.com> 32621 32622 PR c/38483 32623 * builtins.c (gimplify_va_arg_expr): Evaluate the va_list 32624 expression before any __builtin_trap call. 32625 * c-typeck.c (build_function_call): Convert and check function 32626 arguments before generating a call to a trap. Evaluate the 32627 function arguments before the trap. 32628 326292009-02-19 Uros Bizjak <ubizjak@gmail.com> 32630 32631 PR target/39228 32632 * config/i386/i386.md (isinfxf2): Split from isinf<mode>2. 32633 (UNSPEC_FXAM_MEM): New unspec. 32634 (fxam<mode>2_i387_with_temp): New insn and split pattern. 32635 (isinf<mode>2): Use MODEF mode iterator. Force operand[1] through 32636 memory using fxam<mode>2_i387_with_temp to remove excess precision. 32637 326382009-02-19 Richard Guenther <rguenther@suse.de> 32639 32640 PR tree-optimization/39207 32641 PR tree-optimization/39074 32642 * tree-ssa-structalias.c (storedanything_id, var_storedanything, 32643 storedanything_tree): New. 32644 (do_ds_constraint): Simplify ANYTHING shortcutting. Update 32645 the STOREDANYTHING solution if the lhs solution contains ANYTHING. 32646 (build_succ_graph): Add edges from STOREDANYTHING to all 32647 non-direct nodes. 32648 (init_base_vars): Initialize STOREDANYTHING. 32649 (compute_points_to_sets): Free substitution info after 32650 building the succ graph. 32651 (ipa_pta_execute): Likewise. 32652 32653 * tree-ssa-structalias.c (struct variable_info): Add may_have_pointers 32654 field. 32655 (do_ds_constraint): Do not add to special var or non-pointer 32656 field solutions. 32657 (type_could_have_pointers): Split out from ... 32658 (could_have_pointers): ... here. For arrays use the element type. 32659 (create_variable_info_for): Initialize may_have_pointers. 32660 (new_var_info): Likewise. 32661 (handle_lhs_call): Make the HEAP variable unknown-sized. 32662 (intra_create_variable_infos): Use a type with pointers for 32663 PARM_NOALIAS, make it unknown-sized. 32664 326652009-02-18 H.J. Lu <hongjiu.lu@intel.com> 32666 32667 PR target/39224 32668 * config/i386/i386.c (ix86_return_in_memory): Properly check ABI. 32669 326702009-02-18 Jason Merrill <jason@redhat.com> 32671 32672 PR target/39179 32673 * tree-ssa-ccp.c (get_symbol_constant_value): Don't assume zero 32674 value if DECL_EXTERNAL. 32675 * tree-sra.c (sra_walk_gimple_assign): Likewise. 32676 * target.h (gcc_target::binds_local_p): Clarify "module". 32677 * tree.h (TREE_PUBLIC): Clarify "module". 32678 326792009-02-17 Xuepeng Guo <xuepeng.guo@intel.com> 32680 32681 PR target/38891 32682 * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move the hunk of 32683 initialization for MS_ABI prior to the hunk of !TARGET_MMX. 32684 326852009-02-17 H.J. Lu <hongjiu.lu@intel.com> 32686 32687 PR target/39082 32688 * c.opt (Wabi): Support C and ObjC. 32689 (Wpsabi): New. 32690 32691 * c-opts.c (c_common_handle_option): Handle OPT_Wabi. 32692 32693 * config/i386/i386.c (classify_argument): Warn once about the ABI 32694 change when passing union with long double. 32695 32696 * doc/invoke.texi: Update -Wabi for warning psABI changes. 32697 326982009-02-18 Joseph Myers <joseph@codesourcery.com> 32699 32700 PR c/35447 32701 * c-parser.c (c_parser_compound_statement): Always enter and leave 32702 a scope. 32703 327042009-02-17 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 32705 32706 PR target/34587 32707 * config/darwin.h (SUPPORTS_INIT_PRIORITY): Define. 32708 327092009-02-18 Jakub Jelinek <jakub@redhat.com> 32710 32711 PR tree-optimization/36922 32712 * tree-data-ref.c (initialize_matrix_A): Handle BIT_NOT_EXPR. 32713 * tree-scalar-evolution.c (interpret_rhs_expr, instantiate_scev_1): 32714 Likewise. 32715 327162009-02-17 Richard Sandiford <rdsandiford@googlemail.com> 32717 32718 * config/mips/mips.c (mips_override_options): Set flag_dwarf2_cfi_asm 32719 to 0 for EABI64. 32720 327212009-02-17 Richard Sandiford <rdsandiford@googlemail.com> 32722 32723 * config/mips/mips.md (type): Reclassify lui_movf as "unknown". 32724 327252009-02-17 Richard Sandiford <rdsandiford@googlemail.com> 32726 32727 * config/mips/mips.c (mips_gimplify_va_arg_expr): Fix invalid 32728 tree sharing. 32729 327302009-02-17 Ruan Beihong <ruanbeihong@gmail.com> 32731 Richard Sandiford <rdsandiford@googlemail.com> 32732 32733 * config/mips/mips.c (CODE_FOR_loongson_biadd): Delete. 32734 * config/mips/loongson.md (reduc_uplus_<mode>): Rename to... 32735 (loongson_biadd): ...this. 32736 327372009-02-17 Richard Guenther <rguenther@suse.de> 32738 32739 PR tree-optimization/39202 32740 * tree-ssa-structalias.c (do_structure_copy): Before collapsing 32741 a var make sure to follow existing collapses. 32742 327432009-02-17 Richard Guenther <rguenther@suse.de> 32744 32745 PR middle-end/39214 32746 * langhooks.c (lhd_print_error_function): Check for NULL block. 32747 327482009-02-17 Richard Guenther <rguenther@suse.de> 32749 32750 PR tree-optimization/39204 32751 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number 32752 of the PHI arg. 32753 327542009-02-17 Uros Bizjak <ubizjak@gmail.com> 32755 32756 * config/soft-fp/double.h: Update from glibc CVS. 32757 327582009-02-17 Richard Guenther <rguenther@suse.de> 32759 32760 PR tree-optimization/39207 32761 * tree-ssa-structalias.c (find_what_p_points_to): Do not emit 32762 strict-aliasing warnings for pointers pointing to NULL. 32763 327642009-02-16 Joseph Myers <joseph@codesourcery.com> 32765 32766 PR c/35446 32767 * c-parser.c (c_parser_braced_init): Call pop_init_level when 32768 skipping until next close brace. 32769 327702009-02-16 H.J. Lu <hongjiu.lu@intel.com> 32771 32772 PR target/37049 32773 * config/i386/i386.c (ix86_expand_push): Set memory alignment 32774 to function argument boundary. 32775 327762009-02-16 Hariharan Sandanagobalane <hariharan@picochip.com> 32777 32778 * config/picochip/picochip.md (lea_add): Allow any nonimmediate 32779 in the lea_add. Reload eventually constraints it properly. 32780 * config/picochip/constraints.md: Remove the target constraint 32781 "b", since it is not needed anymore. 32782 327832009-02-16 Jakub Jelinek <jakub@redhat.com> 32784 32785 * gthr-dce.h: Uglify function parameter and local variable names. 32786 * gthr-gnat.h: Likewise. 32787 * gthr-mipssde.h: Likewise. 32788 * gthr-nks.h: Likewise. 32789 * gthr-posix95.h: Likewise. 32790 * gthr-posix.h: Likewise. 32791 * gthr-rtems.h: Likewise. 32792 * gthr-single.h: Likewise. 32793 * gthr-solaris.h: Likewise. 32794 * gthr-tpf.h: Likewise. 32795 * gthr-vxworks.h: Likewise. 32796 * gthr-win32.h: Likewise. 32797 327982009-02-15 H.J. Lu <hongjiu.lu@intel.com> 32799 32800 PR target/39196 32801 * config/i386/i386.md: Restrict the new peephole2 to move 32802 between MMX/SSE registers. 32803 328042009-02-15 Richard Guenther <rguenther@suse.de> 32805 32806 Revert 32807 2009-02-13 Richard Guenther <rguenther@suse.de> 32808 32809 * configure.ac: Enable LFS. 32810 * configure: Re-generate. 32811 * config.in: Likewise. 32812 328132009-02-13 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 32814 32815 * config/spu/spu_internals.h (spu_sr, spu_sra, spu_srqw, 32816 spu_srqwbyte, spu_srqwbytebc): Define. 32817 * config/spu/spu-builtins.def (spu_sr, spu_sra, spu_srqw, 32818 spu_srqwbyte, spu_srqwbytebc): New overloaded builtins. 32819 * config/spu/spu.md ("shrqbybi_<mode>", "shrqbi_<mode>", 32820 "shrqby_<mode>"): New insn-and-split patterns. 32821 * config/spu/spu.c (expand_builtin_args): Determine and return 32822 number of operands using spu_builtin_description data. 32823 (spu_expand_builtin_1): Use it. 32824 328252009-02-13 Steve Ellcey <sje@cup.hp.com> 32826 32827 PR target/38056 32828 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Check 32829 TARGET_CONST_GP. 32830 328312009-02-13 H.J. Lu <hongjiu.lu@intel.com> 32832 32833 PR target/39149 32834 * config/i386/i386.c (override_options): Correct warning 32835 messages for -malign-loops, -malign-jumps and -malign-functions. 32836 328372009-02-13 H.J. Lu <hongjiu.lu@intel.com> 32838 32839 PR target/39152 32840 * config/i386/i386.md: Restrict the new peephole2 to move 32841 between the general purpose registers. 32842 328432009-02-13 H.J. Lu <hongjiu.lu@intel.com> 32844 32845 PR target/39162 32846 * config/i386/i386.c (type_natural_mode): Add a new argument. 32847 Return the original mode and warn ABI change if vector size is 32byte. 32848 (function_arg_advance): Updated. 32849 (function_arg): Likewise. 32850 (ix86_function_value): Likewise. 32851 (ix86_return_in_memory): Likewise. 32852 (ix86_sol10_return_in_memory): Likewise. 32853 (ix86_gimplify_va_arg): Likewise. 32854 (function_arg_32): Don't warn ABX ABI change here. 32855 (function_arg_64): Likewise. 32856 328572009-02-13 Bernd Schmidt <bernd.schmidt@analog.com> 32858 32859 * loop-iv.c (implies_p): In the final case, test that operands 0 32860 of the two comparisons match. 32861 32862 * config/bfin/bfin.c (find_prev_insn_start): New function. 32863 (bfin_optimize_loop): Use it in some cases instead of PREV_INSN. 32864 (find_next_insn_start): Move. 32865 328662009-02-13 Richard Guenther <rguenther@suse.de> 32867 32868 * configure.ac: Enable LFS. 32869 * configure: Re-generate. 32870 * config.in: Likewise. 32871 328722009-02-13 Joseph Myers <joseph@codesourcery.com> 32873 32874 PR c/35444 32875 * c-parser.c (c_parser_parms_list_declarator): Discard pending 32876 sizes on syntax error after some arguments have been parsed. 32877 328782009-02-12 Jakub Jelinek <jakub@redhat.com> 32879 32880 * doc/invoke.texi (-fira): Remove. 32881 328822009-02-12 H.J. Lu <hongjiu.lu@intel.com> 32883 32884 * caller-save.c: Replace regclass.c with reginfo.c in comments. 32885 * recog.c: Likewise. 32886 * rtl.h: Likewise. 32887 328882009-02-12 Uros Bizjak <ubizjak@gmail.com> 32889 32890 * longlong.h (sub_ddmmss): New for ia64. Ported from GMP 4.2. 32891 (umul_ppmm): Likewise. 32892 (count_leading_zeros): Likewise. 32893 (count_trailing_zeros): Likewise. 32894 (UMUL_TIME): Likewise. 32895 328962009-02-12 H.J. Lu <hongjiu.lu@intel.com> 32897 32898 * config.gcc (ia64*-*-linux*): Add ia64/t-fprules-softfp and 32899 soft-fp/t-softfp to tmake_file. 32900 32901 * config/ia64/ia64.c (ia64_soft_fp_init_libfuncs): New. 32902 (ia64_expand_compare): Use HPUX library for TFmode only for HPUX. 32903 (ia64_builtins) [IA64_BUILTIN_COPYSIGNQ, IA64_BUILTIN_FABSQ, 32904 IA64_BUILTIN_INFQ]: New. 32905 (ia64_init_builtins): Initialize __builtin_infq, 32906 __builtin_fabsq and __builtin_copysignq if not HPUX. 32907 (ia64_expand_builtin): Handle IA64_BUILTIN_COPYSIGNQ, 32908 IA64_BUILTIN_FABSQ and IA64_BUILTIN_INFQ. 32909 32910 * config/ia64/lib1funcs.asm (__divtf3): Define only if 32911 SHARED is defined. 32912 (__fixtfti): Likewise. 32913 (__fixunstfti): Likewise. 32914 (__floattitf): Likewise. 32915 32916 * config/ia64/libgcc-glibc.ver: New. 32917 * config/ia64/t-fprules-softfp: Likewise. 32918 * config/ia64/sfp-machine.h: Likewise. 32919 32920 * config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): New. 32921 (LIBGCC2_TF_CEXT): Likewise. 32922 (TF_SIZE): Likewise. 32923 (TARGET_INIT_LIBFUNCS): Likewise. 32924 32925 * config/ia64/t-glibc (SHLINB_MAPFILES): 32926 Add $(srcdir)/config/ia64/libgcc-glibc.ver. 32927 329282009-02-12 H.J. Lu <hongjiu.lu@intel.com> 32929 32930 * config/i386/i386.c (construct_container): Rewrite processing 32931 BLKmode with X86_64_SSE_CLASS. 32932 329332009-02-12 Paolo Bonzini <bonzini@gnu.org> 32934 32935 PR target/39152 32936 * config/i386/i386.md: Replace simplify_replace_rtx with 32937 replace_rtx in the new peephole2. 32938 329392009-02-12 Nathan Sidwell <nathan@codesourcery.com> 32940 32941 * doc/invoke.texi (Optimize Options): Stop claiming inlining and 32942 loop unrolling do not happen at -O2. 32943 329442009-02-12 Michael Matz <matz@suse.de> 32945 32946 * gcc.c (ASM_DEBUG_SPEC): Check for -g0. 32947 329482009-02-12 Jakub Jelinek <jakub@redhat.com> 32949 32950 * dwarf2out.c (dwarf2out_finish): Force output of comp_unit_die 32951 for -g3. 32952 329532009-02-12 Ben Elliston <bje@au.ibm.com> 32954 32955 * config/rs6000/rs6000.md (allocate_stack): Use _stack form of 32956 patterns when updating the back chain. Missed in the 2009-02-10 32957 change. 32958 329592009-02-11 Janis Johnson <janis187@us.ibm.com> 32960 32961 * doc/extend.texi (Decimal Floating Types): Update identifier of 32962 draft TR and list of missing support. 32963 329642009-02-11 Jakub Jelinek <jakub@redhat.com> 32965 32966 PR middle-end/39154 32967 * gimplify.c (omp_notice_variable): If adding GOVD_SEEN 32968 bit to variable length decl's flags, add it also to its 32969 pointer replacement variable. 32970 329712009-02-11 Uros Bizjak <ubizjak@gmail.com> 32972 Jakub Jelinek <jakub@redhat.com> 32973 32974 PR target/39118 32975 * config/i386/i386.md (UNSPEC_MEMORY_BLOCKAGE): New constant. 32976 (memory_blockage): New expander. 32977 (*memory_blockage): New insn pattern. 32978 * config/i386/i386.c (ix86_expand_prologue): Use memory_blockage 32979 instead of general blockage at the end of function prologue when 32980 frame pointer is used to access red zone area. Do not emit blockage 32981 when profiling, it is emitted in generic code. 32982 (ix86_expand_epilogue): Emit memory_blockage at the beginning of 32983 function epilogue when frame pointer is used to access red zone area. 32984 329852009-02-11 Paolo Bonzini <bonzini@gnu.org> 32986 32987 PR target/38824 32988 * config/i386/i386.md: Add two new peephole2 to avoid mov followed 32989 by arithmetic with memory operands. 32990 * config/i386/predicates.md (commutative_operator): New. 32991 329922009-02-10 Janis Johnson <janis187@us.ibm.com> 32993 32994 * doc/extend.texi (Fixed-Point Types): Break long paragraphs into 32995 bulleted lists. 32996 329972009-02-10 Eric Botcazou <ebotcazou@adacore.com> 32998 32999 * alias.h (record_alias_subset): Declare. 33000 * alias.c (record_alias_subset): Make global. 33001 330022009-02-10 Nick Clifton <nickc@redhat.com> 33003 33004 * tree-parloops.c: Change license to GPLv3. 33005 * ipa-struct-reorg.c: Change license to GPLv3. 33006 * ipa-struct-reorg.h: Change license to GPLv3. 33007 330082009-02-10 Steve Ellcey <sje@cup.hp.com> 33009 33010 PR c/39084 33011 * c-decl.c (start_struct): Return NULL on error. 33012 330132009-02-10 Jakub Jelinek <jakub@redhat.com> 33014 33015 PR middle-end/39124 33016 * cfgloopmanip.c (remove_path): Call remove_bbs after 33017 cancel_loop_tree, not before it. 33018 33019 PR target/39139 33020 * function.h (struct function): Add has_local_explicit_reg_vars bit. 33021 * gimplify.c (gimplify_bind_expr): Set it if local DECL_HARD_REGISTER 33022 VAR_DECLs were seen. 33023 * tree-ssa-live.c (remove_unused_locals): Recompute 33024 cfun->has_local_explicit_reg_vars. 33025 * tree-ssa-sink.c (statement_sink_location): Don't sink BLKmode 33026 copies or clearings if cfun->has_local_explicit_reg_vars. 33027 330282009-02-10 Uros Bizjak <ubizjak@gmail.com> 33029 33030 PR target/39118 33031 * config/i386/i386.c (expand_prologue): Emit blockage at the end 33032 of function prologue when frame pointer is used to access 33033 red zone area. 33034 330352009-02-10 Richard Guenther <rguenther@suse.de> 33036 33037 PR middle-end/39127 33038 * gimplify.c (gimple_regimplify_operands): Always look if 33039 we need to create a temporary. 33040 330412009-02-10 Richard Guenther <rguenther@suse.de> 33042 33043 PR tree-optimization/39132 33044 * tree-loop-distribution.c (todo): New global var. 33045 (generate_memset_zero): Trigger TODO_rebuild_alias. 33046 (tree_loop_distribution): Return todo. 33047 330482009-02-10 H.J. Lu <hongjiu.lu@intel.com> 33049 33050 PR target/39119 33051 * config/i386/i386.c (x86_64_reg_class): Remove X86_64_AVX_CLASS. 33052 (x86_64_reg_class_name): Removed. 33053 (classify_argument): Return 0 if bytes > 32. Return 0 if the 33054 first one isn't X86_64_SSE_CLASS or any other ones aren't 33055 X86_64_SSEUP_CLASS when size > 16bytes. Don't turn 33056 X86_64_SSEUP_CLASS into X86_64_SSE_CLASS if the preceded one 33057 is X86_64_SSEUP_CLASS. Set AVX modes to 1 X86_64_SSE_CLASS 33058 and 3 X86_64_SSEUP_CLASS. 33059 (construct_container): Remove X86_64_AVX_CLASS. Handle 4 33060 registers with 1 X86_64_SSE_CLASS and 3 X86_64_SSEUP_CLASS. 33061 330622009-02-10 Ben Elliston <bje@au.ibm.com> 33063 33064 * config/rs6000/rs6000.md (allocate_stack): Always use an update 33065 form instruction to update the stack back chain word, even if the 33066 user has disabled the generation of update instructions. 33067 (movdi_<mode>_update_stack): New. 33068 (movsi_update_stack): Likewise. 33069 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Likewise, 33070 always use an update form instruction to update the stack back 33071 chain word. 33072 330732009-02-09 Sebastian Pop <sebastian.pop@amd.com> 33074 33075 PR middle-end/38953 33076 * graphite.c (if_region_set_false_region): After moving a region in 33077 the false branch of a condition, remove the empty dummy basic block. 33078 (gloog): Remove wrong fix for PR38953. 33079 330802009-02-09 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 33081 33082 * config/spu/spu.c (array_to_constant): Fix (latent) wrong-code 33083 generation due to implicit sign extension. 33084 330852009-02-09 Eric Botcazou <ebotcazou@adacore.com> 33086 33087 PR middle-end/38981 33088 * tree-ssa-coalesce.c (add_coalesce): Cap the costs of coalesce pairs 33089 at MUST_COALESCE_COST-1 instead of MUST_COALESCE_COST. 33090 330912009-02-09 Richard Guenther <rguenther@suse.de> 33092 33093 PR middle-end/35202 33094 * convert.c (convert_to_real): Disable (float)fn((double)x) 33095 to fnf(x) conversion if errno differences may occur and 33096 -fmath-errno is set. 33097 330982009-02-07 Anatoly Sokolov <aesok@post.ru> 33099 33100 * config/avr/avr.c (avr_mcu_t): Add ata6289 device. 33101 * config/avr/avr.h (LINK_SPEC, CRT_BINUTILS_SPECS): (Ditto.). 33102 * config/avr/t-avr (MULTILIB_MATCHES): (Ditto.). 33103 331042009-02-06 Joseph Myers <joseph@codesourcery.com> 33105 33106 PR c/35434 33107 * c-common.c (handle_alias_attribute): Disallow attribute for 33108 anything not a FUNCTION_DECL or VAR_DECL. 33109 331102009-02-06 Janis Johnson <janis187@us.ibm.com> 33111 33112 PR c/39035 33113 * real.c (do_compare): Special-case compare of zero against 33114 decimal float value. 33115 331162009-02-06 Joseph Myers <joseph@codesourcery.com> 33117 33118 PR c/36432 33119 * c-decl.c (grokdeclarator): Don't treat [] declarators in fields 33120 as indicating flexible array members unless the field itself is 33121 being declarared as the incomplete array. 33122 331232009-02-06 Jan Hubicka <jh@suse.cz> 33124 33125 PR tree-optimization/38844 33126 * ipa-inline.c (try_inline): Stop inlining recursion when edge 33127 is already inlined. 33128 331292009-02-06 Richard Guenther <rguenther@suse.de> 33130 33131 PR middle-end/38977 33132 * tree-cfg.c (need_fake_edge_p): Force a fake edge for 33133 fork because we may expand it as __gcov_fork. 33134 331352009-02-06 Nick Clifton <nickc@redhat.com> 33136 33137 * config/m32c/m32c.h (PCC_BITFIELD_TYPE_MATTERS): Define to zero. 33138 331392009-02-06 Paolo Bonzini <bonzini@gnu.org> 33140 33141 PR tree-optimization/35659 33142 * tree-ssa-sccvn.c (vn_constant_eq, vn_reference_eq, vn_nary_op_eq 33143 vn_phi_eq): Shortcut if hashcode does not match. 33144 (vn_reference_op_compute_hash): Do not call iterative_hash_expr for 33145 NULL operands. 33146 * tree-ssa-pre.c (pre_expr_hash): Look at hashcode if available, 33147 and avoid iterative_hash_expr. 33148 (FOR_EACH_VALUE_ID_IN_SET): New. 33149 (value_id_compare): Remove. 33150 (sorted_array_from_bitmap_set): Use FOR_EACH_VALUE_ID_IN_SET to 33151 sort expressions by value id. 33152 331532009-02-05 Kaz Kojima <kkojima@gcc.gnu.org> 33154 33155 PR target/38991 33156 * config/sh/predicates.md (general_movsrc_operand): Don't check 33157 the subreg of system registers here. 33158 331592009-02-05 Jakub Jelinek <jakub@redhat.com> 33160 33161 PR c++/39106 33162 * cgraphunit.c (cgraph_function_versioning): Clear also DECL_VIRTUAL_P 33163 on the copied decl. 33164 331652009-02-05 Paolo Bonzini <bonzini@gnu.org> 33166 33167 PR rtl-optimization/39110 33168 * rtlanal.c (rtx_addr_can_trap_p_1): Shortcut unaligned 33169 addresses, not aligned ones. 33170 331712009-02-05 Daniel Berlin <dberlin@dberlin.org> 33172 Richard Guenther <rguenther@suse.de> 33173 33174 PR tree-optimization/39100 33175 * tree-ssa-structalias.c (do_ds_constraint): Actually do what the 33176 comment says and add edges. 33177 331782009-02-05 Joseph Myers <joseph@codesourcery.com> 33179 33180 PR c/35435 33181 * c-common.c (handle_tls_model_attribute): Ignore attribute for 33182 non-VAR_DECLs without checking DECL_THREAD_LOCAL_P. 33183 331842009-02-04 Tobias Grosser <grosser@fim.uni-passau.de> 33185 33186 * graphite.c (bb_in_sese_p, sese_build_livein_liveouts_use, 33187 sese_build_livein_liveouts_bb, sese_build_livein_liveouts, 33188 register_bb_in_sese, new_sese, free_sese): Moved. 33189 (dot_scop_1, build_scop_loop_nests, build_loop_iteration_domains, 33190 outermost_loop_in_scop, build_scop_iteration_domain, 33191 expand_scalar_variables_ssa_name, get_vdef_before_scop, 33192 limit_scops): Use bb_in_sese_p instead of bb_in_scop_p. 33193 Use loop_in_sese_p instead of loop_in_scop_p. 33194 (new_graphite_bb, gloog): Do not initialize SCOP_BBS_B. 33195 (new_scop, free_scop): Remove SCOP_LOOP2CLOOG_LOOP and SCOP_BBS_B. 33196 (scopdet_basic_block_info): Fix bug in scop detection. 33197 (new_loop_to_cloog_loop_str, hash_loop_to_cloog_loop, 33198 eq_loop_to_cloog_loop): Remove. 33199 (nb_loops_around_loop_in_scop, nb_loop 33200 ref_nb_loops): Moved here... 33201 * graphite.h (ref_nb_loops): ... from here. 33202 (struct scop): Remove bbs_b bitmap and loop2cloog_loop. 33203 (loop_domain_dim, loop_iteration_vector_dim): Remove. 33204 (SCOP_BBS_B, bb_in_scop_p, loop_in_scop_p): Removed. 33205 332062009-02-04 Paolo Bonzini <bonzini@gnu.org> 33207 Hans-Peter Nilsson <hp@axis.com> 33208 33209 PR rtl-optimization/37889 33210 * rtlanal.c (rtx_addr_can_trap_p_1): Add offset and size arguments. 33211 Move offset handling from PLUS to before the switch. Use new 33212 arguments when considering SYMBOL_REFs too. 33213 (rtx_addr_can_trap_p): Pass dummy offset and size. 33214 (enum may_trap_p_flags): Remove. 33215 (may_trap_p_1): Pass size from MEM_SIZE. 33216 33217 PR rtl-optimization/38921 33218 * loop-invariant.c (find_invariant_insn): Use may_trap_or_fault_p. 33219 * rtl.h (may_trap_after_code_motion_p): Delete prototype. 33220 * rtlanal.c (may_trap_after_code_motion_p): Delete. 33221 (may_trap_p, may_trap_or_fault_p): Pass 0/1 as flags. 33222 332232009-02-04 H.J. Lu <hongjiu.lu@intel.com> 33224 33225 AVX Programming Reference (January, 2009) 33226 * config/i386/sse.md (*vpclmulqdq): New. 33227 332282009-02-04 Jakub Jelinek <jakub@redhat.com> 33229 33230 PR tree-optimization/38977 33231 PR gcov-profile/38292 33232 * calls.c (special_function_p): Disregard __builtin_ prefix. 33233 332342009-02-04 Hariharan Sandanagobalane <hariharan@picochip.com> 33235 33236 * config/picochip/picochip.c (GO_IF_LEGITIMATE_ADDRESS): Disallow 33237 non-indexable addresses even before reload. 33238 332392009-02-03 Joseph Myers <joseph@codesourcery.com> 33240 33241 PR c/29129 33242 * c-decl.c (grokdeclarator): Mark [*] arrays in field declarators 33243 as having variable size. Do not give an error for unnamed 33244 parameters with [*] declarators. Give a warning for type names 33245 with [*] declarators and mark them as variable size. 33246 * c-parser.c (c_parser_sizeof_expression): Do not give an error 33247 for sizeof applied to [*] type names. 33248 332492009-02-03 Andrew Pinski <andrew_pinski@playstation.sony.com> 33250 33251 PR C++/36607 33252 * convert.c (convert_to_integer): Treat OFFSET_TYPE like INTEGER_TYPE. 33253 332542009-02-03 Jakub Jelinek <jakub@redhat.com> 33255 33256 * gcc.c (process_command): Update copyright notice dates. 33257 * gcov.c (print_version): Likewise. 33258 * gcov-dump.c (print_version): Likewise. 33259 * mips-tfile.c (main): Likewise. 33260 * mips-tdump.c (main): Likewise. 33261 332622009-02-03 Joseph Myers <joseph@codesourcery.com> 33263 33264 PR c/35433 33265 * c-typeck.c (composite_type): Set TYPE_SIZE and TYPE_SIZE_UNIT 33266 for composite type involving a zero-length array type. 33267 332682009-02-03 Jakub Jelinek <jakub@redhat.com> 33269 33270 PR target/35318 33271 * function.c (match_asm_constraints_1): Skip over 33272 initial optional % in the constraint. 33273 33274 PR inline-asm/39059 33275 * c-parser.c (c_parser_postfix_expression): If fixed point is not 33276 supported, don't accept FIXED_CSTs. 33277 * c-decl.c (finish_declspecs): Error if fixed point is not supported 33278 and _Sat is used without _Fract/_Accum. Set specs->type to 33279 integer_type_node for cts_fract/cts_accum if fixed point is not 33280 supported. 33281 332822009-02-02 Catherine Moore <clm@codesourcery.com> 33283 33284 * sde.h (SUBTARGET_ARM_SPEC): Don't assemble -fpic code as -mabicalls. 33285 332862009-02-02 Richard Sandiford <rdsandiford@googlemail.com> 33287 33288 * config/mips/mips.h (FILE_HAS_64BIT_SYMBOLS): New macro. 33289 (ABI_HAS_64BIT_SYMBOLS): Use it. 33290 (DWARF2_ADDR_SIZE): Use it instead of ABI_HAS_64BIT_SYMBOLS. 33291 332922009-02-02 Paul Brook <paul@codesourcery.com> 33293 33294 * config/arm/arm.md (arm_addsi3): Add r/r/k alternative. 33295 332962009-02-02 Jakub Jelinek <jakub@redhat.com> 33297 33298 PR inline-asm/39058 33299 * recog.h (asm_operand_ok): Add constraints argument. 33300 * recog.c (asm_operand_ok): Likewise. If it is set, for digits 33301 recurse on matching constraint. 33302 (check_asm_operands): Pass constraints as 3rd argument to 33303 asm_operand_ok. Don't look up matching constraint here. 33304 * stmt.c (expand_asm_operands): Pass NULL as 3rd argument 33305 to asm_operand_ok. 33306 333072009-02-02 Ben Elliston <bje@au.ibm.com> 33308 33309 * doc/tm.texi (Storage Layout): Fix TARGET_ALIGN_ANON_BITFIELD and 33310 TARGET_NARROW_VOLATILE_BITFIELD macro names. 33311 333122009-01-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 33313 33314 * doc/install.texi (hppa*-hp-hpux*): Update binutils and linker 33315 information. Remove some obsolete information. Reorganize. 33316 33317 * config/pa/fptr.c: Revert license to GPL 2. 33318 * config/pa/milli64.S: Likewise. 33319 333202009-01-31 Dave Korn <dave.korn.cygwin@gmail.com> 33321 33322 PR target/38904 33323 * mkmap-flat.awk (END): Use pe_dll command-line arg to pass 33324 LIBRARY name in, instead of hard-coding it. 33325 * config.gcc (i[34567]86-*-pe | i[34567]86-*-cygwin*): Add an 33326 extra target make frag to tmake_files according to EH model. 33327 (i[34567]86-*-mingw* | x86_64-*-mingw*): Likewise. 33328 * config/i386/t-dw2-eh, config/i386/t-sjlj-eh: Add new target 33329 frags that define makefile variable EH_MODEL appropriately. 33330 * config/i386/cygming.h (DWARF2_UNWIND_INFO): Add comment. 33331 * config/i386/cygwin.h (LIBGCC_EH_EXTN): Define to nothing or 33332 to "-sjlj" according to type of EH configured. 33333 (LIBGCC_SONAME): Concatenate it to shared library base name. 33334 * config/i386/mingw32.h (LIBGCC_EH_EXTN): Define to "_dw2" or 33335 to "_sjlj" according to type of EH configured. 33336 (LIBGCC_SONAME): Concatenate it to shared library base name. 33337 * config/i386/t-cygming (SHLIB_SONAME): Use EH_MODEL. 33338 (SHLIB_LINK): Add missing semicolon to if-else construct. 33339 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as 33340 string value of "pe_dll" command-line option. 33341 * config/i386/t-cygwin (SHLIB_EH_EXTENSION): New helper. 33342 (SHLIB_SONAME): Use it when overriding t-cygming default. 33343 (SHLIB_IMPLIB): Override t-cygming default. 33344 (SHLIB_MKMAP_OPTS): Pass library name to mkmap-flat.awk as 33345 string value of "pe_dll" command-line option. 33346 333472009-01-31 Dave Korn <dave.korn.cygwin@gmail.com> 33348 33349 PR target/38952 33350 * config/i386/i386.c (ix86_builtin_setjmp_frame_value): New. 33351 (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Override default to point at it. 33352 333532009-01-31 Richard Guenther <rguenther@suse.de> 33354 33355 PR tree-optimization/38937 33356 * tree-ssa-structalias.c (do_sd_constraint): Do not shortcut 33357 computing the transitive closure. 33358 333592009-01-30 Richard Guenther <rguenther@suse.de> 33360 33361 PR tree-optimization/39041 33362 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): 33363 Propagate variable indices only if the types match for this stmt. 33364 333652009-01-30 Jakub Jelinek <jakub@redhat.com> 33366 33367 PR target/39013 33368 * c-decl.c (pop_scope): Set DECL_EXTERNAL for functions declared 33369 inline but never defined. 33370 333712009-01-30 Wolfgang Gellerich <gellerich@de.ibm.com> 33372 33373 * config/s390/s390.md (*insv<mode>_reg_extimm): Removed. 33374 (*insv_h_di_reg_extimm): New insn. 33375 (*insv_l<mode>_reg_extimm): New insn. 33376 333772009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com> 33378 33379 * config/picochip/picochip.c (flag_conserve_stack): set 33380 PARAM_LARGE_STACK_FRAME and PARAM_STACK_FRAME_GROWTH to zero under 33381 fconserve-stack. Reduce call-overhead used by inliner. 33382 333832009-01-30 Hariharan Sandanagobalane <hariharan@picochip.com> 33384 33385 PR/38157 33386 * common.opt (flag_conserve_stack): Initialised to zero. 33387 333882009-01-30 Kai Tietz <kai.tietz@onevision.com> 33389 33390 PR/39002 33391 * config/i386/i386.c (ix86_can_use_return_insn_p): Check for nsseregs. 33392 (ix86_expand_epilogue): Take nsseregs in account to use proper restore 33393 method. 33394 333952009-01-29 H.J. Lu <hongjiu.lu@intel.com> 33396 33397 * ira-color.c (allocno_reload_assign): Update comments. 33398 * regmove.c (regmove_optimize): Likewise. 33399 33400 * ra.h: Removed. 33401 334022009-01-29 Robert Millan <rmh@aybabtu.com> 33403 33404 * config.gcc: Recognize GNU/kOpenSolaris (*-*-kopensolaris*-gnu). 33405 * config/i386/kopensolaris-gnu.h: New file. Undefine 33406 `MD_UNWIND_SUPPORT'. 33407 * config/kopensolaris-gnu.h: New file (based on kfreebsd-gnu.h). 33408 334092009-01-29 Kazu Hirata <kazu@codesourcery.com> 33410 33411 PR tree-optimization/39007 33412 * tree-loop-distribution.c (generate_builtin): Use 33413 recompute_dominator to compute the immediate dominator of the 33414 basic block just after the loop. 33415 334162009-01-29 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 33417 33418 * config/i386/sol2-10.h [!HAVE_AS_IX86_DIFF_SECT_DELTA] 33419 (ASM_OUTPUT_DWARF_PCREL): Define. 33420 334212009-01-29 Vladimir Makarov <vmakarov@redhat.com> 33422 33423 * doc/tm.texi (TARGET_IRA_COVER_CLASSES): Modify description. 33424 * doc/passes.texi: Remove entries about regclass, local-alloc, and 33425 global. Modify entries about regmove and IRA. 33426 33427 * ra-conflict.c: Remove the file. 33428 33429 * reload.c (push_reload, find_dummy_reload): Remove flag_ira. 33430 33431 * tree-pass.h (pass_local_alloc, pass_global_alloc): Remove. 33432 (pass_regclass_init): Rename to pass_reginfo_init. 33433 33434 * cfgloopanal.c (estimate_reg_pressure_cost): Remove flag_ira. 33435 33436 * toplev.h (flag_ira): Remove. 33437 33438 * caller-save.c (setup_save_areas): Remove flag_ira. 33439 33440 * ira-color.c (ira_reuse_stack_slot, ira_mark_new_stack_slot): Ditto. 33441 33442 * global.c: Remove the file. 33443 33444 * opts.c (decode_options): Remove flag_ira. 33445 33446 * hard-reg-set.h (losing_caller_save_reg_set): Remove. 33447 33448 * regmove.c: Modify file description. 33449 (find_use_as_address, try_auto_increment): Define them only if 33450 AUTO_INC_DEC is defined. 33451 (replacement_quality, replace_in_call_usage, fixup_match_1, 33452 stable_and_no_regs_but_for_p): Remove. 33453 (reg_set_in_bb): Make it static. 33454 (regmove_optimize): Remove flag_ira and code which worked for 33455 !flag_ira. 33456 33457 * local-alloc.c: Remove the file. 33458 33459 * common.opt (fira): Remove. 33460 33461 * ira.c: Include except.h. 33462 (eliminable_regset): Move from global.c. 33463 (mark_elimination): Ditto. Remove flag_ira. 33464 (reg_renumber, struct equivalence, reg_equiv, equiv_mem, 33465 equiv_mem_modified, validate_equiv_mem_from_store, 33466 validate_equiv_mem, equiv_init_varies_p, equiv_init_movable_p, 33467 contains_replace_regs, memref_referenced_p, memref_used_between_p, 33468 no_equiv, recorded_label_ref): Move from local-alloc.c. 33469 (update_equiv_regs): Ditto. Make it static. 33470 (print_insn_chain, print_insn_chains): Move it from global.c. 33471 (pseudo_for_reload_consideration_p): Ditto. Remove flag_ira. 33472 (build_insn_chain): Ditto. Make it static. 33473 (ra_init_live_subregs): Move from ra-conflict.c. Make it static. 33474 Rename to init_live_subregs. 33475 (gate_ira): Remove flag_ira. 33476 33477 * regclass.c: Rename reginfo.c. Change file description. 33478 (FORBIDDEN_INC_DEC_CLASSES): Remove. 33479 (reg_class_superclasses, forbidden_inc_dec_class, in_inc_dec): Remove. 33480 (init_reg_sets_1): Remove code for evaluation of 33481 reg_class_superclasses and losing_caller_save_reg_set. 33482 (init_regs): Remove init_reg_autoinc. 33483 (struct costs, costs, init_cost, ok_for_index_p_nonstrict, 33484 ok_for_base_p_nonstrict): Remove. 33485 (regclass_init): Rename to reginfo_init. Don't initialize init_cost. 33486 (pass_regclass_init): Rename to pass_reginfo_init. Modify 33487 corresponding entries. 33488 (dump_regclass, record_operand_costs, scan_one_insn, 33489 init_reg_autoinc, regclass, record_reg_classes, copy_cost, 33490 record_address_regs, auto_inc_dec_reg_p): Remove. 33491 (gt-regclass.h): Rename to gt-reginfo.h. 33492 33493 * rtl.h (dump_global_regs, retry_global_alloc, 33494 build_insn_chain, dump_local_alloc, update_equiv_regs): Remove. 33495 33496 * Makefile.in (RA_H): Remove. 33497 (OBJS-common): Remove global.o, local-alloc.o, and ra-conflict.o. 33498 Rename regclass.o to reginfo.o. 33499 (regclass.o): Rename to reginfo.o. Rename gt-regclass.h to 33500 gt-reginfo.h. 33501 (global.o, local-alloc.o, ra-conflict.o): Remove entries. 33502 (GTFILES): Rename regclass.c to reginfo.c. 33503 33504 * passes.c (init_optimization_passes): Remove pass_local_alloc and 33505 pass_global_alloc. Rename pass_regclass_init to pass_reginfo_init. 33506 33507 * reload1.c (compute_use_by_pseudos, reload, count_pseudo, 33508 count_spilled_pseudo, find_reg, alter_reg, delete_output_reload): 33509 Remove flag_ira. 33510 (finish_spills): Ditto. Remove code for !flag_ira. 33511 335122009-01-29 Kenneth Zadeck <zadeck@naturalbridge.com> 33513 33514 PR middle-end/35854 33515 * doc/invoke.texi (rtl debug options): Complete rewrite. 33516 * auto-inc-dec.c (pass_inc_dec): Rename pass from "auto-inc-dec" 33517 to auto_inc_dec". 33518 * mode-switching.c (pass_mode_switching): Rename pass from 33519 "mode-sw" to "mode_sw". 33520 * except.c (pass_convert_to_eh_ranges): Rename pass from 33521 "eh-ranges" to "eh_ranges". 33522 * lower-subreg.c (pass_lower_subreg): Renamed pass from "subreg" 33523 to "subreg1". 33524 33525 335262009-01-29 Andrey Belevantsev <abel@ispras.ru> 33527 Alexander Monakov <amonakov@ispras.ru> 33528 33529 PR middle-end/38857 33530 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard 33531 register. 33532 (move_exprs_to_boundary): Change return type and pass through 33533 should_move from move_op. Relax assert. Update usage ... 33534 (schedule_expr_on_boundary): ... here. Use should_move instead of 33535 cant_move. 33536 (move_op_orig_expr_found): Indicate that insn was disconnected from 33537 stream. 33538 (code_motion_process_successors): Do not call after_merge_succs 33539 callback if original expression was not found when traversing any of 33540 the branches. 33541 (code_motion_path_driver): Change return type. Update prototype. 33542 (move_op): Update comment. Add a new parameter (should_move). Update 33543 prototype. Set *should_move based on indication provided by 33544 move_op_orig_expr_found. 33545 335462009-01-28 Pat Haugen <pthaugen@us.ibm.com> 33547 33548 * doc/invoke.texi (avoid-indexed-addresses): Document new option. 33549 * config/rs6000/rs6000-protos.h (avoiding_indexed_address_p): Declare. 33550 * config/rs6000/rs6000.opt (avoid-indexed-addresses): New option. 33551 * config/rs6000/rs6000.c (rs6000_override_options): Default 33552 avoid-indexed-addresses on for Power6, off for everything else. 33553 (avoiding_indexed_address_p): New function. 33554 (rs6000_legitimize_address): Use it. 33555 (rs6000_legitimate_address): Likewise. 33556 * config/rs6000/rs6000.md (movXX_updateX): Likewise 33557 335582009-01-28 Kazu Hirata <kazu@codesourcery.com> 33559 33560 PR tree-optimization/38997 33561 * tree-loop-distribution.c (generate_memset_zero): Use 33562 POINTER_PLUS_EXPR for a pointer addition. 33563 335642009-01-28 Andreas Krebbel <krebbel1@de.ibm.com> 33565 33566 * config/s390/s390.md (bswap<mode>2): New pattern added. 33567 335682009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com> 33569 33570 * config/s390/s390.md (*tls_load_31): Added type attribute. 33571 335722009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com> 33573 33574 * config/s390/s390.md: Fix a few comments. 33575 335762009-01-28 Wolfgang Gellerich <gellerich@de.ibm.com> 33577 33578 * config/s390/s390.md (*tmsi_reg): Fixed z10prop attribute. 33579 (*tm<mode>_full): Fixed z10prop attribute. 33580 (*tst<mode>_extimm): Fixed z10prop attribute. 33581 (*tst<mode>_cconly_extimm): Fixed z10prop attribute. 33582 (*tstqiCCT_cconly): Fixed z10prop attribute. 33583 (*cmpsi_ccu_zerohi_rlsi): Fixed z10prop attribute. 33584 (*movsi_larl): Fixed z10prop attribute. 33585 (*movsi_zarch): Fixed z10prop attribute. 33586 (*movsi_eas): Fixed z10prop attribute. 33587 (*movhi): Fixed z10prop attribute. 33588 (*movqi): Fixed z10prop attribute. 33589 (*movstrictqi): Fixed z10prop attribute. 33590 (*mov<mode>): Fixed z10prop attribute. 33591 (*movcc): Fixed z10prop attribute. 33592 (*sethighpartdi_64): Fixed z10prop attribute. 33593 (*zero_extendhi<mode>2_z10): Fixed z10prop attribute. 33594 (*negdi2_sign_cc): Fixed z10prop attribute. 33595 (*negdi2_sign): Fixed z10prop attribute. 33596 (*absdi2_sign_cc): Fixed z10prop attribute. 33597 (*absdi2_sign): Fixed z10prop attribute. 33598 (*negabsdi2_sign_cc): Fixed z10prop attribute. 33599 (*negabsdi2_sign): Fixed z10prop attribute. 33600 (*cmp_and_trap_signed_int<mode>): Fixed z10prop attribute. 33601 (*cmp_and_trap_unsigned_int<mode>): Fixed z10prop attribute. 33602 (doloop_si64): Fixed z10prop attribute. 33603 (doloop_si31): Fixed z10prop attribute. 33604 (doloop_long): Fixed z10prop attribute. 33605 (indirect_jump): Fixed z10prop attribute. 33606 (nop): Fixed z10prop attribute. 33607 (main_base_64): Fixed z10prop attribute. 33608 (reload_base_64): Fixed z10prop attribute. 33609 336102009-01-28 Jakub Jelinek <jakub@redhat.com> 33611 33612 PR rtl-optimization/38740 33613 * reorg.c (gate_handle_delay_slots): Avoid dbr scheduling 33614 if !optimize. 33615 * config/mips/mips.c (mips_reorg): Likewise. 33616 336172009-01-28 Richard Guenther <rguenther@suse.de> 33618 33619 PR tree-optimization/38926 33620 * tree-ssa-pre.c (add_to_value): Assert we add only expressions 33621 with the correct value id to a value. 33622 (do_regular_insertion): Use the value number of edoubleprime 33623 for the value number of the expr. 33624 33625 Revert 33626 2008-08-21 Richard Guenther <rguenther@suse.de> 33627 33628 * tree-ssa-pre.c (insert_into_preds_of_block): Before inserting 33629 a PHI ask VN if it is already available. 33630 * tree-ssa-sccvn.h (vn_phi_lookup): Declare. 33631 * tree-ssa-sccvn.c (vn_phi_lookup): Export. 33632 336332009-01-28 Jakub Jelinek <jakub@redhat.com> 33634 33635 PR middle-end/38934 33636 * tree-vrp.c (extract_range_from_assert): For LE_EXPR and LT_EXPR 33637 set to varying whenever max has TREE_OVERFLOW set, similarly 33638 for GE_EXPR and GT_EXPR and TREE_OVERFLOW min. 33639 336402009-01-28 Richard Guenther <rguenther@suse.de> 33641 33642 PR middle-end/38908 33643 * tree-ssa.c (warn_uninitialized_var): Do not warn for seemingly 33644 uninitialized aggregate uses in call arguments. 33645 336462009-01-28 Paolo Bonzini <bonzini@gnu.org> 33647 33648 PR tree-optimization/38984 33649 * tree-ssa-structalias.c (get_constraints_for_1): Do not use 33650 the nothing_id variable if -fno-delete-null-pointer-checks. 33651 336522009-01-28 Uros Bizjak <ubizjak@gmail.com> 33653 33654 PR target/38988 33655 * config/i386/i386.md (set_rip_rex64): Wrap operand 1 in label_ref. 33656 (set_got_offset_rex64): Ditto. 33657 336582009-01-27 H.J. Lu <hongjiu.lu@intel.com> 33659 33660 PR target/38941 33661 * doc/extend.texi: Improve local variable with asm reg. 33662 336632009-01-27 Adam Nemet <anemet@caviumnetworks.com> 33664 33665 * c.opt (Wpacked-bitfield-compat): Change init value to -1. 33666 * c-opts.c (c_common_post_options): If -W*packed-bitfield-compat 33667 was not supplied then set warn_packed_bitfield_compat to the 33668 default value of 1. 33669 * stor-layout.c (place_field): Check warn_packed_bitfield_compat 33670 against 1. 33671 336722009-01-27 Richard Guenther <rguenther@suse.de> 33673 33674 PR tree-optimization/38503 33675 * cfgexpand.c (expand_gimple_basic_block): Ignore 33676 GIMPLE_CHANGE_DYNAMIC_TYPE during expansion. 33677 * tree-ssa-structalias.c (set_uids_in_ptset): Do not prune 33678 variables that cannot have TBAA applied. 33679 (compute_points_to_sets): Do not remove GIMPLE_CHANGE_DYNAMIC_TYPE 33680 statements. 33681 336822009-01-27 Uros Bizjak <ubizjak@gmail.com> 33683 33684 PR middle-end/38969 33685 * calls.c (initialize_argument_information): Do not wrap complex 33686 arguments in SAVE_EXPR. 33687 336882009-01-26 Andreas Tobler <a.tobler@schweiz.org> 33689 33690 * config/t-vxworks (LIBGCC2_INCLUDES): Fix typo. 33691 (INSTALL_LIBGCC): Revert typo commit. 33692 336932009-01-26 Richard Guenther <rguenther@suse.de> 33694 33695 PR tree-optimization/38745 33696 * tree-ssa-alias.c (update_alias_info_1): Exclude RESULT_DECL 33697 from special handling. 33698 336992009-01-26 Richard Guenther <rguenther@suse.de> 33700 33701 PR tree-optimization/38745 33702 * tree-ssa.c (execute_update_addresses_taken): Do not include 33703 variables that cannot possibly be a register in not_reg_needs. 33704 Do not clear TREE_ADDRESSABLE on vars that may not become 33705 registers. 33706 * tree-ssa.c (update_alias_info_1): Include those in the set 33707 of addressable vars. 33708 337092009-01-26 Richard Guenther <rguenther@suse.de> 33710 33711 PR middle-end/38851 33712 * Makefile.in (tree-ssa-dse.o): Add langhooks.h. 33713 * tree-ssa-dse.c: Include langhooks.h 33714 (execute_simple_dse): Remove stores with zero size. 33715 337162009-01-24 Jakub Jelinek <jakub@redhat.com> 33717 33718 PR c/38957 33719 * c-typeck.c (c_finish_return): Handle POINTER_PLUS_EXPR the same way 33720 as PLUS_EXPR. 33721 337222009-01-24 Julian Brown <julian@codesourcery.com> 33723 33724 * config/arm/t-linux-eabi (LIB2FUNCS_STATIC_EXTRA): Add 33725 config/arm/linux-atomic.c. 33726 * config/arm/linux-atomic.c: New. 33727 337282009-01-24 Eric Botcazou <ebotcazou@adacore.com> 33729 33730 * config/sparc/linux.h (DBX_REGISTER_NUMBER): Delete. 33731 * config/sparc/linux64.h (DBX_REGISTER_NUMBER): Likewise. 33732 * config/sparc/sysv4.h (DBX_REGISTER_NUMBER): Likewise. 33733 337342009-01-24 H.J. Lu <hongjiu.lu@intel.com> 33735 33736 PR c/38938 33737 * c-opts.c (c_common_handle_option): Update warn_pointer_sign 33738 properly. 33739 337402009-01-24 Sebastian Pop <sebastian.pop@amd.com> 33741 33742 PR tree-optimization/38953 33743 * graphite.c (graphite_verify): Add a call to verify_loop_closed_ssa. 33744 (scop_adjust_phis_for_liveouts): Initialize false_i to zero. 33745 (gloog): Split the exit of the scop when the scop exit is a loop exit. 33746 (graphite_transform_loops): Only call cleanup_tree_cfg if gloog 33747 changed the CFG. 33748 337492009-01-24 Paul Brook <paul@codesourcery.com> 33750 33751 * config/arm/neon.md (neon_type): Move to arm.md. 33752 (neon_mov<VSTRUCT>): Add neon_type attribute. 33753 * config/arm/arm.md (neon_type): Move to here. 33754 (conds): Add "unconditioal" and use as default for NEON insns. 33755 337562009-01-24 Ben Elliston <bje@au.ibm.com> 33757 33758 * bitmap.h (BITMAP_FREE): Eliminate `implicit conversion from 33759 void *' warning from -Wc++-compat. 33760 * Makefile.in (dominance.o-warn): Remove. 33761 337622009-01-23 Paolo Bonzini <bonzini@gnu.org> 33763 33764 PR tree-optimization/38932 33765 * fold-const.c (fold_unary_ignore_overflow): New. 33766 * tree.h (fold_unary_ignore_overflow): Declare. 33767 * tree-ssa-ccp.c (ccp_fold): Use fold_unary_ignore_overflow. 33768 * tree-ssa-sccvn.c (visit_reference_op_load, 33769 simplify_unary_expression): Likewise. 33770 337712009-01-22 Adam Nemet <anemet@caviumnetworks.com> 33772 33773 * c-decl.c (finish_struct): Move code to set DECL_PACKED after 33774 DECL_BIT_FIELD is alreay known. Also inherit packed for bitfields 33775 regardless of their type. 33776 * c-common.c (handle_packed_attribute): Don't ignore packed on 33777 bitfields. 33778 * c.opt (Wpacked-bitfield-compat): New warning option. 33779 * stor-layout.c (place_field): Warn if offset of a field changed. 33780 * doc/extend.texi (packed): Mention the ABI change. 33781 * doc/invoke.texi (-Wpacked-bitfield-compat): Document. 33782 (Warning Options): Add it to the list. 33783 337842009-01-22 H.J. Lu <hongjiu.lu@intel.com> 33785 33786 * c-opts.c (c_common_post_options): Fix a typo in comments. 33787 337882009-01-22 Steve Ellcey <sje@cup.hp.com> 33789 33790 PR middle-end/38615 33791 * gimplify.c (gimplify_init_constructor): Fix promotion of const 33792 variables to static. 33793 * doc/invoke.texi (-fmerge-all-constants): Update description. 33794 337952009-01-22 Uros Bizjak <ubizjak@gmail.com> 33796 33797 PR target/38931 33798 * config/i386/i386.md (*movsi_1): Use type "mmx" for alternative 2. 33799 (*movdi_1_rex64): Use type "mmx" for alternative 5. 33800 338012009-01-22 Richard Earnshaw <rearnsha@arm.com> 33802 33803 * arm.h (DATA_ALIGNMENT): Align structures, unions and arrays to 33804 a word boundary. 33805 (LOCAL_ALIGNMENT): Similarly. 33806 338072009-01-22 Mark Shinwell <shinwell@codesourcery.com> 33808 Joseph Myers <joseph@codesourcery.com> 33809 33810 * config/arm/arm.c (all_architectures): Add iWMMXt2 entry. 33811 * config/arm/arm-cores.def: New ARM_CORE entry for iWMMXt2. 33812 * config/arm/arm-tune.md: Regenerate. 33813 * doc/invoke.texi (ARM Options): Document -mcpu=iwmmxt2 and 33814 -march=iwmmxt2. 33815 338162009-01-22 Mark Shinwell <shinwell@codesourcery.com> 33817 33818 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Bump EABI 33819 version number to five. 33820 338212009-01-22 Dodji Seketeli <dodji@redhat.com> 33822 33823 PR c++/38930 33824 * c-decl.c (clone_underlying_type): Revert PR c++/26693 changes. 33825 * c-common.c (set_underlying_type): Likewise. 33826 (is_typedef_decl ): Likewise 33827 * tree.h: Likewise 33828 (set_underlying_type): Likewise. 33829 (is_typedef_type): Likewise. 33830 338312009-01-21 Vladimir Makarov <vmakarov@redhat.com> 33832 33833 PR middle-end/38587 33834 * ira-color.c (coalesce_spill_slots): Don't coalesce allocnos 33835 crossing setjmps. 33836 338372009-01-21 Dave Korn <dave.korn.cygwin@gmail.com> 33838 33839 PR bootstrap/37660 33840 * config/i386/cygwin.h (SHARED_LIBGCC_SPEC): New helper macro. 33841 (LIBGCC_SPEC): Don't define. 33842 (REAL_LIBGCC_SPEC): Define instead, using SHARED_LIBGCC_SPEC. 33843 338442009-01-21 Uros Bizjak <ubizjak@gmail.com> 33845 33846 PR rtl-optimization/38879 33847 * alias.c (base_alias_check): Unaligned access via AND address can 33848 alias all surrounding object types except those with sizes equal 33849 or wider than the size of unaligned access. 33850 338512009-01-21 Dodji Seketeli <dodji@redhat.com> 33852 33853 PR c++/26693 33854 * c-decl.c (clone_underlying_type): Move this ... 33855 * c-common.c (set_underlying_type): ... here. 33856 Also, make sure the function properly sets TYPE_STUB_DECL() on 33857 the newly created typedef variant type. 33858 (is_typedef_decl ): New entry point. 33859 * tree.h: Added a new member member_types_needing_access_check to 33860 struct tree_decl_non_common. 33861 (set_underlying_type): New entry point. 33862 (is_typedef_type): Likewise. 33863 338642009-01-21 Bingfeng Mei <bmei@broadcom.com> 33865 33866 * alias.c (walk_mems_1, walk_mems_2, insn_alias_sets_conflict_p): 33867 Check whether two instructions have memory references that 33868 belong to conflicting alias sets. walk_mems_1 and walk_mems_2 33869 are helper functions for traversing. 33870 * alias.h (insn_alias_sets_confilict_p): New prototypes. 33871 * ddg.c (add_inter_loop_mem_dep): Call insn_alias_sets_conflict_p 33872 not to draw dependency edge for instructions with non-conflicting 33873 alias sets. 33874 338752009-01-20 Joseph Myers <joseph@codesourcery.com> 33876 33877 PR other/38758 33878 * longlong.h: Update copyright years. Use soft-fp license notice. 33879 Sync __clz_tab declaration with glibc. 33880 338812009-01-20 Steve Ellcey <sje@cup.hp.com> 33882 33883 PR target/30687 33884 * doc/extend.texi (syscall_linkage): New. 33885 (version_id): Modify. 33886 338872009-01-20 Andrew Pinski <andrew_pinski@playstation.sony.com> 33888 Richard Guenther <rguenther@suse.de> 33889 33890 PR tree-optimization/38747 33891 PR tree-optimization/38748 33892 * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Disable the VCE 33893 conversion if the base address is an indirect reference and the 33894 aliasing sets could cause issues. 33895 338962009-01-20 Sebastian Pop <sebastian.pop@amd.com> 33897 33898 * common.opt (fgraphite, fgraphite-identity): Add comment for 33899 explaining why these options are not documented. 33900 339012009-01-20 Sebastian Pop <sebastian.pop@amd.com> 33902 33903 * graphite.c (stmt_simple_for_scop_p): Also handle cases when 33904 gimple_call_lhs is NULL. 33905 339062009-01-20 Paolo Bonzini <bonzini@gnu.org> 33907 33908 PR target/38868 33909 * emit-rtl.c (adjust_address_1): Make sure memref is never 33910 overwritten. 33911 339122009-01-20 Ben Elliston <bje@au.ibm.com> 33913 33914 * libgcov.c (__gcov_execl, __gcov_execlp, __gcov_execle): Remove 33915 const qualifier from arg parameter. Remove unnecessary cast to char *. 33916 * gcov-io.h (__gcov_execl, __gcov_execlp, __gcov_execle): Remove 33917 const qualifier from arg 2. 33918 339192009-01-19 Iain Sandoe <iain.sandoe@sandoe-acoustics.co.uk> 33920 33921 * config/darwin.h: Add static-libgfortran to LINK_SPEC. 33922 339232009-01-19 Vladimir Makarov <vmakarov@redhat.com> 33924 33925 PR c/38869 33926 * rtl.h (reinit_regs): New prototype. 33927 * regclass.c: Include ira.h. 33928 (reinit_regs): New. 33929 * Makefile.in (regclass.o): Add ira.h. 33930 * config/i386/i386.c (ix86_maybe_switch_abi): Use reinit_regs. 33931 339322009-01-18 H.J. Lu <hongjiu.lu@intel.com> 33933 33934 PR target/38736 33935 * c-common.c (handle_aligned_attribute): Use 33936 ATTRIBUTE_ALIGNED_VALUE instead of BIGGEST_ALIGNMENT for 33937 default alignment value. 33938 33939 * c-cppbuiltin.c (c_cpp_builtins): Define __BIGGEST_ALIGNMENT__. 33940 33941 * defaults.h (ATTRIBUTE_ALIGNED_VALUE): New. 33942 * config/i386/i386.h (ATTRIBUTE_ALIGNED_VALUE): Likewise. 33943 33944 * doc/extend.texi: Update __attribute__ ((aligned)). Document 33945 __BIGGEST_ALIGNMENT__. 33946 33947 * doc/tm.texi: Document ATTRIBUTE_ALIGNED_VALUE. 33948 339492009-01-18 Richard Guenther <rguenther@suse.de> 33950 33951 PR tree-optimization/38819 33952 * tree-flow.h (operation_could_trap_helper_p): Declare. 33953 * tree-eh.c (operation_could_trap_helper_p): Export. 33954 * tree-ssa-sccvn.h (vn_nary_may_trap): Declare. 33955 * tree-ssa-sccvn.c (vn_nary_may_trap): New function. 33956 * tree-ssa-pre.c (insert_into_preds_of_block): Check if we 33957 are about to insert a possibly trapping instruction and fail 33958 in this case. 33959 339602009-01-18 Andreas Schwab <schwab@suse.de> 33961 33962 * doc/install.texi (Configuration): Remove obsolete paragraph 33963 about use of --with-gnu-ld with --with-gnu-as. 33964 339652009-01-18 Kazu Hirata <kazu@codesourcery.com> 33966 33967 * doc/extend.texi, doc/gimple.texi, doc/invoke.texi, 33968 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi: Fix typos. 33969 Follow spelling conventions. 33970 339712009-01-18 Ben Elliston <bje@au.ibm.com> 33972 33973 * bitmap.c (bitmap_obstack_alloc_stat): Adjust cast to eliminate 33974 C++ warning about implicit conversion from void * to struct 33975 bitmap_head_def *. 33976 (bitmap_obstack_free): Likewise for bitmap_element *. 33977 * Makefile.in (bitmap.o-warn): Remove. 33978 339792009-01-17 Dave Korn <dave.korn.cygwin@gmail.com> 33980 33981 * Makefile.in (BACKENDLIBS): Reorder to match dependencies. 33982 339832009-01-17 Sebastian Pop <sebastian.pop@amd.com> 33984 Tobias Grosser <tobi.grosser@amd.com> 33985 33986 * graphite.c (graphite_trans_scop_block): Do not block single 33987 nested loops. 33988 339892009-01-16 Alexandre Oliva <aoliva@redhat.com> 33990 33991 * ebitmap.h (ebitmap_iter_init): Initialize all fields. 33992 * ipa-struct-reorg.c (gen_struct_type): Replace known-true 33993 test with assertion. 33994 339952009-01-16 Richard Guenther <rguenther@suse.de> 33996 33997 PR tree-optimization/38835 33998 PR middle-end/36227 33999 * fold-const.c (fold_binary): Remove PTR + INT -> (INT)(PTR p+ INT) 34000 and INT + PTR -> (INT)(PTR p+ INT) folding. 34001 * tree-ssa-address.c (create_mem_ref): Properly use POINTER_PLUS_EXPR. 34002 340032009-01-16 Adam Nemet <anemet@caviumnetworks.com> 34004 34005 PR target/38554 34006 * expmed.c (expand_shift): With SHIFT_COUNT_TRUNCATED, don't lift 34007 the subreg from a lowpart subreg if it is also casting the value. 34008 340092009-01-16 Sebastian Pop <sebastian.pop@amd.com> 34010 Tobias Grosser <tobi.grosser@amd.com> 34011 34012 * graphite.c (compare_prefix_loops): New. 34013 (build_scop_canonical_schedules): Rewritten. 34014 (graphite_transform_loops): Move build_scop_canonical_schedules 34015 after build_scop_iteration_domain. 34016 340172009-01-16 Sebastian Pop <sebastian.pop@amd.com> 34018 Tobias Grosser <tobi.grosser@amd.com> 34019 34020 * graphite.c (add_conditions_to_domain): Add the loops to 34021 the dimension of the iteration domain. Do copy the domain 34022 only when it exists. 34023 (build_scop_conditions_1): Do not call add_conditions_to_domain. 34024 (add_conditions_to_constraints): New. 34025 (can_generate_code_stmt, can_generate_code): Removed. 34026 (gloog): Do not call can_generate_code. 34027 (graphite_transform_loops): Call add_conditions_to_constraints 34028 after building the iteration domain. 34029 340302009-01-16 Jakub Jelinek <jakub@redhat.com> 34031 34032 PR tree-optimization/38789 34033 * tree-ssa-threadedge.c 34034 (record_temporary_equivalences_from_stmts_at_dest): Ignore calls to 34035 __builtin_constant_p. 34036 340372009-01-16 Kenneth Zadeck <zadeck@naturalbridge.com> 34038 34039 * dce.c (delete_unmarked_insns): Reversed the order that insns are 34040 examined before deleting them. 34041 340422009-01-16 Richard Earnshaw <rearnsha@arm.com> 34043 34044 * function.c (aggregate_value_p): Correctly extract the function 34045 type from CALL_EXPR_FN lookup. 34046 340472009-01-16 Hariharan Sandanagobalane <hariharan@picochip.com> 34048 34049 * config/picochip/picochip.c (picochip_override_options): Revert 34050 CFI asm flag disable commited previously. 34051 340522009-01-15 Sebastian Pop <sebastian.pop@amd.com> 34053 Tobias Grosser <tobi.grosser@amd.com> 34054 Jan Sjodin <jan.sjodin@amd.com> 34055 34056 * graphite.c (scan_tree_for_params): On substractions negate 34057 all the coefficients of the term. 34058 (clast_to_gcc_expression_red): New. Handle reduction expressions 34059 of more than two operands. 34060 (clast_to_gcc_expression): Call clast_to_gcc_expression_red. 34061 (get_vdef_before_scop): Handle also the case of default definitions. 34062 340632009-01-15 Richard Sandiford <rdsandiford@googlemail.com> 34064 34065 * caller-save.c (add_used_regs_1, add_used_regs): New functions. 34066 (insert_one_insn): Use them instead of REG_DEAD and REG_INC notes. 34067 Also use them when walking CALL_INSN_FUNCTION_USAGE. 34068 340692009-01-15 H.J. Lu <hongjiu.lu@intel.com> 34070 Joey Ye <joey.ye@intel.com> 34071 34072 PR middle-end/37843 34073 * cfgexpand.c (expand_stack_alignment): Don't update stack 34074 boundary nor check incoming stack boundary here. 34075 (gimple_expand_cfg): Update stack boundary and check incoming 34076 stack boundary here. 34077 340782009-01-15 Kenneth Zadeck <zadeck@naturalbridge.com> 34079 34080 * dce.c (find_call_stack_args, delete_unmarked_insns): Fixed comments. 34081 340822009-01-14 Jakub Jelinek <jakub@redhat.com> 34083 34084 PR rtl-optimization/38245 34085 * calls.c (expand_call): Add stack arguments to 34086 CALL_INSN_FUNCTION_USAGE even for pure calls (when 34087 ACCUMULATE_OUTGOING_ARGS) and even for args partially passed 34088 in regs and partially in memory or BLKmode arguments. 34089 (emit_library_call_value_1): Add stack arguments to 34090 CALL_INSN_FUNCTION_USAGE even for pure calls (when 34091 ACCUMULATE_OUTGOING_ARGS). 34092 * dce.c: Include tm_p.h. 34093 (find_call_stack_args): New function. 34094 (deletable_insn_p): Call it for CALL_P insns. Add ARG_STORES 34095 argument. 34096 (mark_insn): Call find_call_stack_args for CALL_Ps. 34097 (prescan_insns_for_dce): Walk insns backwards in bb rather than 34098 forwards. Allocate and free arg_stores bitmap if needed, pass it 34099 down to deletable_insn_p, don't mark stores set in arg_stores 34100 bitmap, clear the bitmap at the beginning of each bb. 34101 * Makefile.in (dce.o): Depend on $(TM_P_H). 34102 341032009-01-14 Michael Meissner <gnu@the-meissners.org> 34104 34105 PR target/22599 34106 * config/i386/i386.c (print_operand): Add tests for 'D', 'C', 'F', 'f' 34107 to make sure the insn is a conditional test (bug 22599). Reformat a 34108 few long lines. 34109 341102009-01-14 Sebastian Pop <sebastian.pop@amd.com> 34111 34112 PR middle-end/38431 34113 * graphite.c (get_vdef_before_scop, scop_adjust_vphi): New. 34114 (scop_adjust_phis_for_liveouts): Call scop_adjust_vphi. 34115 (gloog): Do not call cleanup_tree_cfg. 34116 (graphite_transform_loops): Call cleanup_tree_cfg after all 34117 scops have been code generated. 34118 341192009-01-14 Basile Starynkevitch <basile@starynkevitch.net> 34120 * doc/gty.texi (Invoking the garbage collector): Added new node 34121 and section documenting ggc_collect. 34122 341232009-01-14 Richard Guenther <rguenther@suse.de> 34124 34125 PR tree-optimization/38826 34126 PR middle-end/38477 34127 * tree-ssa-structalias.c (emit_alias_warning): Emit the pointer 34128 initialization notes only if we actually emitted a warning. 34129 (intra_create_variable_infos): Add constraints for a result decl 34130 that is passed by hidden reference. 34131 (build_pred_graph): Mark all related variables non-direct on 34132 address-taking. 34133 341342009-01-14 Nick Clifton <nickc@redhat.com> 34135 34136 * ira-conflicts.c: Include addresses.h for the definition of 34137 base_reg_class. 34138 (ira_build_conflicts): Use base_reg_class instead of BASE_REG_CLASS. 34139 * Makefile.in: Add a dependency of ira-conflicts.o on addresses.h. 34140 341412009-01-13 Vladimir Makarov <vmakarov@redhat.com> 34142 34143 PR target/38811 34144 * Makefile.in (ira-lives.o): Add except.h. 34145 34146 * ira-lives.c: Include except.h. 34147 (process_bb_node_lives): Process can_throw_internal. 34148 341492009-01-13 Jakub Jelinek <jakub@redhat.com> 34150 34151 PR rtl-optimization/38774 34152 * combine.c (simplify_set): When undoing cc_use change, don't do 34153 PUT_CODE on the newly created comparison, but instead put back the 34154 old comparison. 34155 341562009-01-13 Joseph Myers <joseph@codesourcery.com> 34157 34158 * doc/invoke.texi (ARM Options): Update lists of -mcpu and -march 34159 values. Remove duplicate arm8 entry. 34160 341612009-01-13 Sebastian Pop <sebastian.pop@amd.com> 34162 34163 PR tree-optimization/38786 34164 * graphite.c (expand_scalar_variables_ssa_name): New, outlined from 34165 the SSA_NAME case of expand_scalar_variables_expr. 34166 Set the type of an expression to the type of its assign statement. 34167 (expand_scalar_variables_expr): Also gather the scalar computation 34168 used to index the memory access. Do not pass loop_p. 34169 Fix comment. Stop recursion on tcc_constant or tcc_declaration. 34170 (expand_scalar_variables_stmt): Pass to expand_scalar_variables_expr 34171 the gimple_stmt_iterator where it inserts new code. 34172 Do not pass loop_p. 34173 (copy_bb_and_scalar_dependences): Do not pass loop_p. 34174 (translate_clast): Update call to copy_bb_and_scalar_dependences. 34175 341762009-01-13 Sebastian Pop <sebastian.pop@amd.com> 34177 34178 * graphite.h (debug_value): Removed. 34179 * graphite.c (debug_value): Removed. 34180 341812009-01-13 Richard Earnshaw <rearnsha@arm.com> 34182 34183 * config/arm/arm.c (output_move_double): Don't synthesize thumb-2 34184 ldrd/strd with two 32-bit instructions. 34185 341862009-01-13 Richard Earnshaw <rearnsha@arm.com> 34187 34188 * config/arm/arm.c (struct processors): Pass for speed down into 34189 cost helper functions. 34190 (const_ok_for_op): Handle COMPARE and inequality nodes. 34191 (arm_rtx_costs_1): Rewrite. 34192 (arm_size_rtx_costs): Update prototype. 34193 (arm_rtx_costs): Pass speed down to helper functions. 34194 (arm_slowmul_rtx_costs): Rework cost calculations. 34195 (arm_fastmul_rtx_costs, arm_xscale_rtx_costs): Likewise. 34196 (arm_9e_rtx_costs): Likewise. 34197 341982009-01-13 Uros Bizjak <ubizjak@gmail.com> 34199 34200 * config/alpha/alpha.c (alpha_legitimate_address_p): Explicit 34201 relocations of local symbols wider than UNITS_PER_WORD are not valid. 34202 (alpha_legitimize_address): Do not split local symbols wider than 34203 UNITS_PER_WORD into HIGH/LO_SUM parts. 34204 342052009-01-13 Danny Smith <dannysmith@users.sourceforge.net> 34206 34207 PR bootstrap/38580 34208 * gcc.c (process_command): Replace call to execvp with calls 34209 to pex_one and exit. 34210 342112009-01-03 Anatoly Sokolov <aesok@post.ru> 34212 34213 PR target/29141 34214 * config/avr/t-avr (LIB1ASMFUNCS): Add _tablejump_elpm. 34215 * config/avr/libgcc.S (__do_global_ctors, __do_global_dtors): Add 34216 variant for devices with 3-byte PC. 34217 (__tablejump_elpm__): New. 34218 342192009-01-12 Jakub Jelinek <jakub@redhat.com> 34220 34221 PR c/32041 34222 * c-parser.c (c_parser_postfix_expression): Allow `->' in 34223 offsetof member-designator, handle it as `[0].'. 34224 342252009-01-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34226 34227 * pa.c (pa_asm_output_mi_thunk): Use pc-relative branch to thunk 34228 function when not using named sections on targets with named sections 34229 if branch distance is less than 262132. 34230 342312009-01-12 Richard Earnshaw <rearnsha@arm.com> 34232 34233 * combine.c (combine_instructions): Recompute 34234 optimize_this_for_speed_p for each BB in the main combine loop. 34235 342362009-01-12 Tomas Bily <tbily@suse.cz> 34237 34238 PR middlend/38385 34239 * tree-loop-distribution.c (prop_phis): New function. 34240 (generate_builtin): Call prop_phis. 34241 342422009-01-12 Jakub Jelinek <jakub@redhat.com> 34243 34244 PR tree-optimization/38807 34245 * tree-ssa-reassoc.c (remove_visited_stmt_chain): Don't look at 34246 gimple_visited_p unless stmt is GIMPLE_ASSIGN. 34247 342482009-01-11 Adam Nemet <anemet@caviumnetworks.com> 34249 34250 * expmed.c (store_bit_field_1): Properly truncate the paradoxical 34251 subreg of op0 to the original op0. 34252 342532009-01-11 Laurent GUERBY <laurent@guerby.net> 34254 34255 * doc/sourcebuild.texi (Source Tree): Move up intl and fixinc. 34256 342572009-01-11 Markus Schoepflin <markus.schoepflin@comsoft.de> 34258 34259 PR debug/7055 34260 * mips-tfile.c (parse_def): Fix parsing of def strings 34261 starting with digits. 34262 342632009-01-10 Jakub Jelinek <jakub@redhat.com> 34264 34265 PR target/38695 34266 * config/arm/arm.c (arm_is_long_call_p): Don't call 34267 arm_function_in_section_p if decl isn't a FUNCTION_DECL. 34268 342692009-01-09 Steven Bosscher <steven@gcc.gnu.org> 34270 34271 * regrename.c (regrename_optimize): Fix dumping. 34272 (find_oldest_value_reg): Preserve REG_POINTER. 34273 (copy_hardreg_forward_1): Likewise. 34274 342752009-01-09 Diego Novillo <dnovillo@google.com> 34276 34277 * gimple.h (struct gimple_statement_base) <uid>: Document 34278 the restrictions on its use. 34279 (gimple_uid): Tidy. 34280 (gimple_set_uid): Tidy. 34281 342822009-01-09 Jakub Jelinek <jakub@redhat.com> 34283 34284 * config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add 34285 zero guard even if align_bytes != 0 and count is smaller than 34286 size_needed. 34287 342882009-01-09 Vladimir Makarov <vmakarov@redhat.com> 34289 34290 PR rtl-optimization/38495 34291 * ira-emit.c (print_move_list, ira_debug_move_list): New functions. 34292 (add_range_and_copies_from_move_list): Print all added ranges. 34293 Add ranges to memory optimized destination. 34294 342952009-01-09 Jakub Jelinek <jakub@redhat.com> 34296 34297 PR target/38686 34298 PR target/38708 34299 * config/i386/i386.c (override_options): Reject 34300 -mstringop-strategy=rep_8byte with -m32. 34301 (ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed 34302 to 1. Do count comparison against epilogue_size_needed at compile 34303 time even when count_exp was constant forced into register. For 34304 size_needed don't jump to epilogue, instead just avoid aligning 34305 and invoke the body algorithm. If need_zero_guard, add zero guard 34306 even if count is non-zero, but smaller than size_needed + number of 34307 bytes that could be stored for alignment. 34308 (ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed 34309 to 1. If need_zero_guard, add zero guard even if count is non-zero, 34310 but smaller than size_needed + number of bytes that could be stored 34311 for alignment. Compare size_needed with epilogue_size_needed instead 34312 of desired_align - align, don't adjust size_needed, pass 34313 epilogue_size_needed to the epilogue expanders. 34314 34315 PR c/35742 34316 * c-pretty-print.c (pp_c_expression): Handle GOTO_EXPR like BIND_EXPR. 34317 343182009-01-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34319 34320 * pa.c (last_address): Change to unsigned. 34321 (update_total_code_bytes): Change argument to unsigned. Don't 34322 check if insn addresses are set. 34323 (pa_output_function_epilogue): Set last_address to UINT_MAX if insn 34324 addresses are not set. 34325 (pa_asm_output_mi_thunk): Handle wrap when updating last_address. 34326 343272009-01-09 Nick Clifton <nickc@redhat.com> 34328 34329 * config/sh/symbian.c: Replace uses of DECL_INLINE with 34330 DECL_DECLARED_INLINE_P. 34331 343322009-01-09 Jakub Jelinek <jakub@redhat.com> 34333 34334 PR middle-end/38347 34335 * dojump.c (do_jump_by_parts_zero_rtx): Use mode instead of 34336 GET_MODE (op0) in operand_subword_force calls. 34337 34338 PR middle-end/38771 34339 * fold-const.c (fold_unary): For COMPOUND_EXPR and COND_EXPR, 34340 fold_convert arg0 operands to TREE_TYPE (op0) first. 34341 343422009-01-08 Vladimir Makarov <vmakarov@redhat.com> 34343 34344 * params.def (ira-max-conflict-table-size): Decrease default value 34345 to 1000. 34346 343472009-01-08 Jakub Jelinek <jakub@redhat.com> 34348 34349 PR tree-optimization/37031 34350 * lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy 34351 on parameter_set. 34352 (build_access_matrix): Reserve correct size for AM_MATRIX vector, 34353 allocate it using gc instead of heap, use VEC_quick_push instead of 34354 VEC_safe_push. 34355 * graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc 34356 instead of heap, use VEC_quick_push instead of VEC_safe_push. 34357 * tree-data-ref.h (struct access_matrix): Change matrix to gc 34358 allocated vector from heap allocated. 34359 * lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector. 34360 * tree-loop-linear.c (linear_transform_loops): Allocate nest 34361 vector only after perfect_loop_nest_depth call. 34362 343632009-01-08 Sebastian Pop <sebastian.pop@amd.com> 34364 Jan Sjodin <jan.sjodin@amd.com> 34365 34366 PR tree-optimization/38559 34367 * graphite.c (debug_value, copy_constraint, 34368 swap_constraint_variables, scale_constraint_variable, ): New. 34369 (get_lower_bound, get_upper_bound): Removed. 34370 (graphite_trans_bb_strip_mine): Clean up this code that works 34371 only for constant number of iterations. Fully copy upper and 34372 lower bound constraints, not only the constant part of them. 34373 * graphite.h (debug_value): Declared. 34374 343752009-01-08 Ira Rosen <irar@il.ibm.com> 34376 34377 PR tree-optimization/37194 34378 * tree-vect-transform.c (vect_estimate_min_profitable_iters): 34379 Don't add the cost of cost model guard in prologue to scalar 34380 outside cost in case of known number of iterations. 34381 343822009-01-07 Nathan Froyd <froydnj@codesourcery.com> 34383 Alan Modra <amodra@bigpond.net.au> 34384 34385 * config/rs6000/rs6000.c (rs6000_legitimize_address): Check for 34386 non-word-aligned REG+CONST addressing. 34387 343882009-01-07 Uros Bizjak <ubizjak@gmail.com> 34389 34390 PR target/38706 34391 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call 34392 free_after_compilation when outputting a thunk. 34393 (alpha_output_mi_thunk_osf): Assert that we are processing a thunk. 34394 Do not call free_after_compilation here. 34395 343962009-01-07 Uros Bizjak <ubizjak@gmail.com> 34397 34398 * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE. 34399 (ix86_valid_target_attribute_inner_p): Ditto. 34400 344012009-01-07 Jan Sjodin <jan.sjodin@amd.com> 34402 34403 PR tree-optimization/38492 34404 PR tree-optimization/38498 34405 * tree-check.c (operator_is_linear, scev_is_linear_expression): New. 34406 * tree-chrec.h (scev_is_linear_expression): Declared. 34407 * graphite.c (graphite_cannot_represent_loop_niter): New. 34408 (scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter. 34409 (graphite_loop_normal_form): Use gcc_assert. 34410 (scan_tree_for_params): Use CASE_CONVERT. 34411 (phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New. 34412 (build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes. 34413 Use gcc_assert. Discard scops that contain unhandled cases. 34414 (build_scop_conditions): Return a boolean status for unhandled cases. 34415 (strip_mine_profitable_p): Print the loop number, not its depth. 34416 (is_interchange_valid): Pass the depth of the loop nest, don't 34417 recompute it wrongly. 34418 (graphite_trans_bb_block): Same. 34419 (graphite_trans_bb_block): Print tentative of loop blocking. 34420 (graphite_trans_scop_block): Do not print that the loop has been 34421 blocked. 34422 (graphite_transform_loops): Do not handle scops that contain condition 34423 scalar phi nodes. 34424 344252009-01-07 H.J. Lu <hongjiu.lu@intel.com> 34426 34427 AVX Programming Reference (December, 2008) 34428 * config/i386/avxintrin.h (_mm256_stream_si256): New. 34429 (_mm256_stream_pd): Likewise. 34430 (_mm256_stream_ps): Likewise. 34431 34432 * config/i386/i386.c (ix86_builtins): Add IX86_BUILTIN_MOVNTDQ256, 34433 IX86_BUILTIN_MOVNTPD256 and IX86_BUILTIN_MOVNTPS256. 34434 (ix86_special_builtin_type): Add VOID_FTYPE_PV4DI_V4DI. 34435 (bdesc_special_args): Add __builtin_ia32_movntdq256, 34436 __builtin_ia32_movntpd256 and __builtin_ia32_movntps256. 34437 (ix86_init_mmx_sse_builtins): Handle VOID_FTYPE_PV4DI_V4DI. 34438 (ix86_expand_special_args_builtin): Likewise. 34439 34440 * config/i386/sse.md (AVXMODEDI): New. 34441 (avx_movnt<mode>): Likewise. 34442 (avx_movnt<mode>): Likewise. 34443 (<sse>_movnt<mode>): Remove AVX support. 34444 (sse2_movntv2di): Likewise. 34445 344462009-01-07 Richard Guenther <rguenther@suse.de> 34447 34448 PR middle-end/38751 34449 * fold-const.c (extract_muldiv): Remove obsolete comment. 34450 (fold_plusminus_mult_expr): Undo MINUS_EXPR 34451 to PLUS_EXPR canonicalization for the canonicalization. 34452 344532009-01-07 Gerald Pfeifer <gerald@pfeifer.com> 34454 34455 * doc/install.texi (alpha*-dec-osf*): Remove note on 32-bit 34456 hosted cross-compilers generating less efficient code. 34457 344582009-01-06 Richard Sandiford <rdsandiford@googlemail.com> 34459 34460 * function.h (rtl_data): Add a dbr_scheduled_p field. 34461 * reorg.c (dbr_schedule): Set it. 34462 (gate_handle_delay_slots): Check it. 34463 * config/mips/mips.c (mips_base_delayed_branch): Delete. 34464 (mips_reorg): Check flag_delayed_branch instead of 34465 mips_base_delayed_branch. 34466 (mips_override_options): Don't set mips_base_delayed_branch 34467 or flag_delayed_branch. 34468 344692009-01-06 Richard Sandiford <rdsandiford@googlemail.com> 34470 34471 PR rtl-optimization/38426. 34472 * ira.c (ira): Set current_function_is_leaf earlier. 34473 344742009-01-06 Jakub Jelinek <jakub@redhat.com> 34475 34476 PR rtl-optimization/38722 34477 * combine.c (try_combine): Don't modify PATTERN (i3) and notes 34478 too early, only set a flag and modify after last possible 34479 undo_all point. 34480 344812009-01-06 Janis Johnson <janis187@us.ibm.com> 34482 34483 PR c/34252 34484 * ginclude/float.h: Rename DECnn_DEN to DECnn_SUBNORMAL_MIN. 34485 * real.c (decimal_single_format): Correct values of emin and emax. 34486 (decimal_double_format): Ditto. 34487 (decimal_quad_format): Ditto. 34488 * c-cppbuiltin.c (builtin_define_decimal_float_constants): Adjust 34489 computation of DECnn_MIN and DECnn_MAX for corrected values of 34490 emin and emax. Define __DECnn_SUBNORMAL_MIN__ instead of 34491 __DECnn_MIN__, and adjust its computation for the corrected value 34492 of emin. 34493 344942009-01-06 Jan Hubicka <jh@suse.cz> 34495 34496 PR target/38744 34497 * config/i386/i386.c (ix86_expand_call): Use ARRAY_SIZE. 34498 344992009-01-06 Gerald Pfeifer <gerald@pfeifer.com> 34500 34501 * doc/contrib.texi (Contributors): Slightly adjust the end note. 34502 Add Robert Clark to the list of testers. 34503 345042009-01-06 Jan Hubicka <jh@suse.cz> 34505 Kai Tietz <kai.tietz@onevision.com> 34506 34507 * config/i386/i386.md (*msabi_syvabi): Add SSE regs clobbers. 34508 * config/i386/i386.c (ix86_expand_call): Add clobbers. 34509 345102009-01-06 Jan Hubicka <jh@suse.cz> 34511 Kai Tietz <kai.tietz@onevision.com> 34512 34513 * config/i386/i386.h (CONDITIONAL_CALL_USAGE): SSE regs are not used 34514 for w64 ABI. 34515 * config/i386/i386.c (struct ix86_frame): Add padding0 and nsseregs. 34516 (ix86_nsaved_regs): Count only general purpose regs. 34517 (ix86_nsaved_sseregs): New. 34518 (ix86_compute_frame_layout): Update nsseregs; set preferred alignment 34519 to 16 for w64; compute padding and size of sse reg save area. 34520 (ix86_emit_save_regs, ix86_emit_save_regs_using_mov): Save only 34521 general purpose regs. 34522 (ix86_emit_save_sse_regs_using_mov): New. 34523 (ix86_expand_prologue): Save SSE regs if needed. 34524 (ix86_emit_restore_regs_using_mov): Use only general purpose regs. 34525 (ix86_emit_restore_sse_regs_using_mov): New. 34526 (ix86_expand_epilogue): Save SSE regs if needed. 34527 345282009-01-06 Jan Hubicka <jh@suse.cz> 34529 Kai Tietz <kai.tietz@onevision.com> 34530 34531 * config/i386/i386.h (ACCUMULATE_OUTGOING_ARGS): Enable for MSABI 34532 * config/i386/i386.c (init_cumulative_args): Disallow calls of MSABI 34533 functions when accumulate outgoing args is off. 34534 345352009-01-06 H.J. Lu <hongjiu.lu@intel.com> 34536 34537 PR bootstrap/38742 34538 * ira-color.c (ira_reuse_stack_slot): Check ENABLE_IRA_CHECKING 34539 before using pseudos_have_intersected_live_ranges_p. 34540 34541 * ira-int.h (ira_assert): Always define. 34542 345432009-01-06 H.J. Lu <hongjiu.lu@intel.com> 34544 34545 AVX Programming Reference (December, 2008) 34546 * config/i386/avxintrin.h (_mm_permute2_pd): Removed. 34547 (_mm256_permute2_pd): Likewise. 34548 (_mm_permute2_ps): Likewise. 34549 (_mm256_permute2_ps): Likewise. 34550 * config/i386/i386.md (UNSPEC_VPERMIL2): Likewise. 34551 * config/i386/sse.md (avx_vpermil2<mode>3): Likewise. 34552 34553 * config/i386/i386.c (ix86_builtins): Remove 34554 IX86_BUILTIN_VPERMIL2PD, IX86_BUILTIN_VPERMIL2PS, 34555 IX86_BUILTIN_VPERMIL2PD256 and IX86_BUILTIN_VPERMIL2PS256. 34556 (ix86_builtin_type): Remove V8SF_FTYPE_V8SF_V8SF_V8SI_INT, 34557 V4DF_FTYPE_V4DF_V4DF_V4DI_INT, V4SF_FTYPE_V4SF_V4SF_V4SI_INT 34558 and V2DF_FTYPE_V2DF_V2DF_V2DI_INT. 34559 (bdesc_args): Remove __builtin_ia32_vpermil2pd, 34560 __builtin_ia32_vpermil2ps, __builtin_ia32_vpermil2pd256 and 34561 __builtin_ia32_vpermil2ps256. 34562 (ix86_init_mmx_sse_builtins): Updated. 34563 (ix86_expand_args_builtin): Likewise. 34564 345652009-01-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34566 34567 * pa.c (output_call): Relocate non-jump insns in the delay slot of 34568 long absolute calls when generating PA 2.0 code. 34569 345702009-01-05 Vladimir Makarov <vmakarov@redhat.com> 34571 34572 PR rtl-optimization/38583 34573 * params.h (IRA_MAX_CONFLICT_TABLE_SIZE): New macro. 34574 34575 * params.def (ira-max-conflict-table-size): New. 34576 34577 * doc/invoke.texi (ira-max-conflict-table-size): Decribe. 34578 34579 * ira.h (ira_conflicts_p): New external definition. 34580 34581 * ira-conflicts.c (build_conflict_bit_table): Do not build too big 34582 table. Report this. Return result of building. 34583 (ira_build_conflicts): Use ira_conflicts_p. Check result of 34584 building conflict table. 34585 34586 * ira-color.c (fast_allocation): Use num instead of ira_allocnos_num. 34587 (ira_color): Use ira_conflicts_p. 34588 34589 * global.c: Include ira.h. 34590 (pseudo_for_reload_consideration_p, build_insn_chain): Use 34591 ira_conflicts_p. 34592 34593 * Makefile.in (global.o): Add ira.h. 34594 34595 * ira-build.c (mark_all_loops_for_removal, 34596 propagate_some_info_from_allocno): New. 34597 (remove_unnecessary_allocnos): Call 34598 propagate_some_info_from_allocno. 34599 (remove_low_level_allocnos): New. 34600 (remove_unnecessary_regions): Add parameter. Call 34601 mark_all_loops_for_removal and remove_low_level_allocnos. Pass 34602 parameter to remove_unnecessary_regions. 34603 (ira_build): Remove all regions but root if the conflict table was 34604 not built. Update conflict hard regs for allocnos crossing calls. 34605 34606 * ira.c (ira_conflicts_p): New global. 34607 (ira): Define and use ira_conflicts_p. 34608 34609 * reload1.c (compute_use_by_pseudos, reload, count_pseudo, 34610 count_spilled_pseudo, find_reg, alter_reg, finish_spills, 34611 emit_input_reload_insns, delete_output_reload): Use ira_conflicts_p. 34612 346132009-01-06 Ben Elliston <bje@au.ibm.com> 34614 34615 * gengtype-lex.l (YY_NO_INPUT): Define. 34616 346172009-01-05 Andrew Pinski <andrew_pinski@playstation.sony.com> 34618 34619 PR c/34911 34620 * c-common.c (handle_vector_size_attribute): Also reject 34621 BOOLEAN_TYPE types. 34622 346232009-01-05 Sebastian Pop <sebastian.pop@amd.com> 34624 34625 PR tree-optimization/38492 34626 * graphite.c (rename_map_elt, debug_rename_elt, 34627 debug_rename_map_1, debug_rename_map, new_rename_map_elt, 34628 rename_map_elt_info, eq_rename_map_elts, 34629 get_new_name_from_old_name, bb_in_sese_p): Moved around. 34630 (sese_find_uses_to_rename_use): Renamed sese_build_livein_liveouts_use. 34631 (sese_find_uses_to_rename_bb): Renamed sese_build_livein_liveouts_bb. 34632 (sese_build_livein_liveouts): New. 34633 (new_sese, free_sese): New. 34634 (new_scop): Call new_sese. 34635 (free_scop): Call free_sese. 34636 (rename_variables_from_edge, rename_phis_end_scop): Removed. 34637 (register_old_new_names): Renamed register_old_and_new_names. 34638 (register_scop_liveout_renames, add_loop_exit_phis, 34639 insert_loop_close_phis, struct igp, 34640 default_liveout_before_guard, add_guard_exit_phis, 34641 insert_guard_phis, copy_renames): New. 34642 (translate_clast): Call insert_loop_close_phis and insert_guard_phis. 34643 (sese_add_exit_phis_edge): Renamed scop_add_exit_phis_edge. 34644 (rewrite_into_sese_closed_ssa): Renamed scop_insert_phis_for_liveouts. 34645 (scop_adjust_phis_for_liveouts): New. 34646 (gloog): Call scop_adjust_phis_for_liveouts. 34647 34648 * graphite.h (struct sese): Documented. Added fields liveout, 34649 num_ver and livein. 34650 (SESE_LIVEOUT, SESE_LIVEIN, SESE_LIVEIN_VER, SESE_NUM_VER): New. 34651 (new_sese, free_sese, sese_build_livein_liveouts): Declared. 34652 (struct scop): Added field liveout_renames. 34653 (SCOP_LIVEOUT_RENAMES): New. 34654 346552009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> 34656 34657 PR tree-optimization/38510 34658 * graphite.c (recompute_all_dominators): Call mark_irreducible_loops. 34659 (translate_clast): Call recompute_all_dominators before 34660 graphite_verify. 34661 (gloog): Call recompute_all_dominators before graphite_verify. 34662 346632009-01-05 Harsha Jagasia <harsha.jagasia@amd.com> 34664 Jan Sjodin <jan.sjodin@amd.com> 34665 34666 PR tree-optimization/38500 34667 * graphite.c (create_sese_edges): Call fix_loop_structure after 34668 splitting blocks. 34669 346702009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com> 34671 34672 * config.gcc: Add m32r*-*-rtems*. 34673 * config/m32r/rtems.h: New file. 34674 346752009-01-05 Ben Elliston <bje@au.ibm.com> 34676 34677 * Makefile.in (.po.gmo): Use mkinstalldirs, not test -d || mkdir. 34678 (.po.pox): Likewise. 34679 (po/gcc.pot): Likewise. 34680 346812009-01-04 David S. Miller <davem@davemloft.net> 34682 34683 * config/sparc/sparc.h (SECONDARY_MEMORY_NEEDED_RTX): Delete. 34684 (STARTING_FRAME_OFFSET): Always set to zero. 34685 346862009-01-04 Richard Sandiford <rdsandiford@googlemail.com> 34687 34688 * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Add commentary. 34689 * tree-cfg.c (verify_gimple_assign_binary): Allow shifts of 34690 fixed-point types, and vectors of the same. 34691 346922009-01-04 Richard Sandiford <rdsandiford@googlemail.com> 34693 34694 * config/mips/sync.md (*mb_barrier): Rename to... 34695 (*memory_barrier): ...this. 34696 346972009-01-04 Jonathan Wakely <jwakely.gcc@gmail.com> 34698 34699 * doc/extend.texi (Function Attributes): Move @cindex after @item 34700 for 'artificial' and 'flatten'. Fix grammar for 'externally_visible' 34701 and put in alphabetical order. Fix 'target' name and put in order. 34702 * doc/invoke.texi (-Wstrict-null-sentinel, -fipa-matrix-reorg): Fix 34703 typos. 34704 347052009-01-04 Uros Bizjak <ubizjak@gmail.com> 34706 34707 * config/s390/s390.md (UNSPEC_MB): Rename from UNSPECV_MB. 34708 (memory_barrier): Expand as unspec instead of unspec_volatile. 34709 Remove mem:BLK from insn operands. Use Pmode scratch register. 34710 (*memory_barrier): Define as unspec instead of unspec_volatile. 34711 Use (match_dup 0) as input operand. 34712 34713 * config/sparc/sparc.md (UNSPEC_MEMBAR): Rename from UNSPECV_MEMBAR. 34714 * config/sparc/sync.md (memory_barrier): Expand as unspec instead of 34715 unspec_volatile. Remove mem:BLK from insn operands. Use Pmode 34716 scratch register. Remove operand 1. 34717 (*stbar): Define as unspec instead of unspec_volatile. 34718 Use (match_dup 0) as input operand, remove (const_int 8). 34719 (*membar): Define as unspec instead of unspec_volatile. 34720 Use (match_dup 0) as input operand, remove input operand 2. 34721 34722 * config/xtensa/xtensa.md (UNSPEC_MEMW): Rename from UNSPECV_MEMW. 34723 (memory_barrier): Expand as unspec instead of unspec_volatile. 34724 Remove mem:BLK from insn operands. Use Pmode scratch register. 34725 (*memory_barrier): Define as unspec instead of unspec_volatile. 34726 Use (match_dup 0) as input operand. 34727 34728 * config/ia64/sync.md (memory_barrier): Redefine as expander pattern. 34729 Remove mem:BLK from insn operands. Use Pmode scratch register. 34730 Set volatile flag on operand 0. 34731 (*memory_barrier): New insn pattern. 34732 34733 * config/rs6000/sync.md (memory_barrier): Remove mem:BLK from 34734 insn operands. 34735 (*memory_barrier): Use (match_dup 0) as input operand. 34736 34737 * config/mips/sync.md (memory_barrier): Redefine as expander pattern. 34738 Remove mem:BLK from insn operands. Use Pmode scratch register. 34739 Set volatile flag on operand 0. 34740 (*mb_internal): New insn pattern. 34741 34742 * config/alpha/sync.md (*memory_barrier): Rename from *mb_internal. 34743 347442009-01-04 Steven Bosscher <steven@gcc.gnu.org> 34745 34746 PR middle-end/38586 34747 * function.c (struct temp_slot): Move to the section of the file 34748 that deals with temp slots. Remove field 'address'. 34749 (temp_slot_address_table): New hash table of address -> temp slot. 34750 (struct temp_slot_address_entry): New struct, items for the table. 34751 (temp_slot_address_compute_hash, temp_slot_address_hash, 34752 temp_slot_address_eq, insert_temp_slot_address): Support functions 34753 for the new table. 34754 (find_temp_slot_from_address): Rewrite to use the new hash table. 34755 (remove_unused_temp_slot_addresses): Remove addresses of temp 34756 slots that have been made available. 34757 (remove_unused_temp_slot_addresses_1): Call-back for htab_traverse, 34758 worker function for remove_unused_temp_slot_addresses. 34759 (assign_stack_temp_for_type): Don't clear the temp slot address list. 34760 Add the temp slot address to the address -> temp slot map. 34761 (update_temp_slot_address): Update via insert_temp_slot_address. 34762 (free_temp_slots): Call remove_unused_temp_slot_addresses. 34763 (pop_temp_slots): Likewise. 34764 (init_temp_slots): Allocate the address -> temp slot map, or empty 34765 the map if it is already allocated. 34766 (prepare_function_start): Initialize temp slot processing. 34767 347682009-01-04 Steven Bosscher <steven@gcc.gnu.org> 34769 34770 PR middle-end/38584 34771 * cfgexpand.c (estimate_stack_frame_size): Simplify the estimate: 34772 Calculate the size of all stack vars assuming no packing of stack 34773 vars will happen, replacing a quadratic algorithm with a linear one. 34774 347752009-01-03 Jakub Jelinek <jakub@redhat.com> 34776 34777 PR target/38707 34778 * expmed.c (store_bit_field_1): Don't modify op0 if movstrict insn 34779 can't be used. 34780 347812009-01-03 Diego Novillo <dnovillo@google.com> 34782 34783 * doc/contrib.texi: Update contributions. 34784 347852009-01-03 Jakub Jelinek <jakub@redhat.com> 34786 34787 PR c++/38705 34788 * builtins.c (fold_builtin_memory_op): Give up if either operand 34789 is volatile. Set srctype or desttype to non-qualified version 34790 of the other type. 34791 34792 PR c/38700 34793 * builtins.c (fold_builtin_expect): Only check DECL_WEAK for VAR_DECLs 34794 and FUNCTION_DECLs. 34795 347962009-01-02 Kenneth Zadeck <zadeck@naturalbridge.com> 34797 34798 PR rtl-optimization/35805 34799 * df-problems.c (df_lr_finalize): Add recursive call to resolve lr 34800 problem if fast dce is able to remove any instructions. 34801 * dce.c (dce_process_block): Fix dump message. 34802 348032009-01-02 Mark Mitchell <mark@codesourcery.com> 34804 34805 PR 33649 34806 * tree-ssa-pre.c (compute_antic): Correct loop bounds. 34807 348082009-01-02 Jakub Jelinek <jakub@redhat.com> 34809 34810 PR middle-end/38690 34811 * tree-flow.h (op_code_prio, op_prio): New prototypes. 34812 * tree-pretty-print.c (op_code_prio): New function. 34813 (op_prio): No longer static. Use op_code_prio. 34814 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs): 34815 Use op_prio and op_code_prio to determine if () should be 34816 printed around operand(s) or not. 34817 34818 * gimple-pretty-print.c (dump_unary_rhs, dump_binary_rhs, 34819 dump_gimple_call, dump_gimple_switch, dump_gimple_cond, 34820 dump_gimple_label, dump_gimple_try, dump_symbols, dump_gimple_phi, 34821 dump_gimple_mem_ops, dump_bb_header, dump_bb_end, pp_cfg_jump): Use 34822 pp_character instead of pp_string for single letter printing. 34823 348242009-01-02 Richard Sandiford <rdsandiford@googlemail.com> 34825 34826 * doc/extend.texi: Fix '#pragma GCC option' typo. 34827 348282009-01-02 Richard Guenther <rguenther@suse.de> 34829 34830 * doc/install.texi (--enable-checking): Mention different 34831 default for stage1. 34832 (--enable-stage1-checking): Document. 34833 348342009-01-01 Andrew Pinski <pinskia@gmail.com> 34835 34836 PR middle-end/30142 34837 * tree-cfg.c (verify_expr): Add INDIRECT_REF case. Change MODIFY_EXPR 34838 case to be an error. 34839 348402009-01-02 Ben Elliston <bje@au.ibm.com> 34841 34842 * config/fp-bit.h (pack_d): Constify argument. 34843 * config/fp-bit.c (makenan): Constify return type. Remove casts. 34844 (isnan): Constify argument. 34845 (isinf): Likewise. 34846 (iszero): Likewise. 34847 (pack_d): Likewise. 34848 (_fpadd_parts): Constify return type. 34849 (_fpmul_parts): Likewise. 34850 (_fpdiv_parts): Likewise. 34851 348522009-01-01 Jakub Jelinek <jakub@redhat.com> 34853 34854 PR c/36489 34855 * c-typeck.c (add_pending_init): Add IMPLICIT argument. Only 34856 warn about overwriting initializer with side-effects or 34857 -Woverride-init if !IMPLICIT. 34858 (output_init_element): Likewise. Pass IMPLICIT down to 34859 add_pending_init. 34860 (process_init_element): Add IMPLICIT argument. Pass it down 34861 to output_init_element. 34862 (push_init_element, pop_init_level, set_designator): Adjust 34863 process_init_element callers. 34864 (set_nonincremental_init, set_nonincremental_init_from_string): 34865 Adjust add_pending_init callers. 34866 (output_pending_init_elements): Adjust output_init_element callers. 34867 * c-tree.h (process_init_element): Adjust prototype. 34868 * c-parser.c (c_parser_initelt, c_parser_initval): Adjust 34869 process_init_element callers. 34870 34871 34872Copyright (C) 2009 Free Software Foundation, Inc. 34873 34874Copying and distribution of this file, with or without modification, 34875are permitted in any medium without royalty provided the copyright 34876notice and this notice are preserved. 34877