12004-12-31 Richard Henderson <rth@redhat.com> 2 3 PR tree-opt/19042 4 * tree-sra.c (decide_block_copy): Force use_block_copy false 5 for complex values. 6 72004-12-31 Richard Henderson <rth@redhat.com> 8 9 PR middle-end/17799 10 * function.c (use_register_for_decl): Check DECL_IGNORED_P instead 11 of DECL_ARTIFICIAL. 12 (assign_parms_augmented_arg_list): Set DECL_IGNORED_P. 13 * c-decl.c (build_compound_literal): Likewise. 14 * dwarf2asm.c (dw2_force_const_mem): Likewise. 15 * gimplify.c (create_artificial_label): Likewise. 16 * tree-inline.c (expand_call_inline): Likewise. 17 * var-tracking.c (vt_initialize): Likewise. 18 * tree-outof-ssa.c (create_temp): Copy DECL_IGNORED_P. 19 202004-12-31 Andrew Pinski <pinskia@physics.uc.edu> 21 22 PR target/19211 23 * config/darwin.c (machopic_legitimize_pic_address): If the orig 24 is subregister return orig. 25 262004-12-31 Zdenek Dvorak <dvorakz@suse.cz> 27 28 * tree-scalar-evolution.c (instantiate_parameters_1): Copy the 29 expression only if needed. 30 312004-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 32 33 * pa-hpux.h (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Define. 34 352004-12-31 Hans-Peter Nilsson <hp@bitrange.com> 36 37 PR target/18701 38 * combine.c (combine_simplify_rtx): Do not allow paradoxical 39 subregs of MEM. 40 41 PR target/18701 42 * combine.c (gen_lowpart_for_combine): When stripping SUBREG of 43 MEM, adjust imode and isize. 44 452004-12-30 Richard Henderson <rth@redhat.com> 46 47 * config/ia64/ia64.c (hfa_element_mode): Return false for 48 zero-sized top-level aggregates. 49 502004-12-30 Jan Hubicka <jh@suse.cz> 51 52 PR target/18019 53 * i386.md (movqi_1): Fix -Os instruction choice. 54 552004-12-30 Steven Bosscher <stevenb@suse.de> 56 57 * global.c (regclass_intersect): Remove. 58 (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead. 59 602004-12-30 Richard Henderson <rth@redhat.com> 61 62 * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for 63 aggregates with XF/XCmode. 64 652004-12-29 Richard Henderson <rth@redhat.com> 66 67 * target.h (targetm.calls.arg_partial_bytes): New. 68 * target-def.h (TARGET_ARG_PARTIAL_BYTES): New. 69 * calls.c (store_unaligned_arguments_into_pseudos): Update for 70 partial in bytes. 71 (load_register_parameters): Likewise. 72 (store_one_arg): Likewise. 73 (initialize_argument_information): Use targetm.calls.arg_partial_bytes. 74 (emit_library_call_value_1): Likewise. 75 * expr.c (block_move_libcall_safe_for_call_parm): Likewise. 76 (emit_push_insn): Update for partial in bytes. 77 * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 78 * function.c (assign_parm_find_entry_rtl): Use 79 targetm.calls.arg_partial_bytes. Update for result in bytes. 80 (locate_and_pad_parm): Update for partial in bytes. 81 * system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison. 82 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New. 83 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare. 84 * doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from 85 FUNCTION_ARG_PARTIAL_NREGS. 86 87 * config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h, 88 config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h, 89 config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h, 90 config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 91 92 * config/alpha/alpha.c (alpha_arg_partial_bytes): New. 93 (TARGET_ARG_PARTIAL_BYTES): New. 94 * config/alpha/alpha.h, config/alpha/unicosmk.h, 95 config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 96 97 * config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... 98 * config/arm/arm.c (arm_arg_partial_bytes): ... here. 99 (TARGET_ARG_PARTIAL_BYTES): New. 100 101 * config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... 102 * config/cris/cris.c (cris_arg_partial_bytes): ... here. 103 (TARGET_ARG_PARTIAL_BYTES): New. 104 105 * config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 106 * config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from 107 fr30_function_arg_partial_nregs. Adjust to return bytes. 108 (TARGET_ARG_PARTIAL_BYTES): New. 109 * config/fr30/fr30-protos.h: Update. 110 111 * config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 112 * config/frv/frv.c (frv_arg_partial_bytes): Rename from 113 frv_function_arg_partial_nregs. Adjust to return bytes. 114 (TARGET_ARG_PARTIAL_BYTES): New. 115 * config/frv/frv-protos.h: Update. 116 117 * config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 118 * config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from 119 ia64_function_arg_partial_nregs. Adjust to return bytes. 120 (TARGET_ARG_PARTIAL_BYTES): New. 121 * config/ia64/ia64-protos.h: Update. 122 123 * config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 124 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from 125 function_arg_partial_nregs. Adjust to return bytes. 126 (TARGET_ARG_PARTIAL_BYTES): New. 127 * config/iq2000/iq2000-protos.h: Update. 128 129 * config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 130 * config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from 131 function_arg_partial_nregs. Adjust to return bytes. 132 (TARGET_ARG_PARTIAL_BYTES): New. 133 * config/m32r/m32r-protos.h: Update. 134 135 * config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 136 * config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from 137 mcore_function_arg_partial_nregs. Adjust to return bytes. 138 (TARGET_ARG_PARTIAL_BYTES): New. 139 * config/mcore/mcore-protos.h: Update. 140 141 * config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 142 * config/mips/mips.c (mips_arg_partial_bytes): Rename from 143 function_arg_partial_nregs. Adjust to return bytes. 144 (TARGET_ARG_PARTIAL_BYTES): New. 145 * config/mips/mips-protos.h: Update. 146 147 * config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 148 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from 149 function_arg_partial_nregs. Adjust to return bytes. 150 (TARGET_ARG_PARTIAL_BYTES): New. 151 * config/mn10300/mn10300-protos.h: Update. 152 153 * config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... 154 * config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here. 155 (TARGET_ARG_PARTIAL_BYTES): New. 156 157 * config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 158 * config/pa/pa.c (pa_arg_partial_bytes): Rename from 159 function_arg_partial_nregs. Handle 32-bit. Adjust to return bytes. 160 (TARGET_ARG_PARTIAL_BYTES): New. 161 * config/pa/pa-protos.h: Update. 162 163 * config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 164 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from 165 function_arg_partial_nregs. Adjust to return bytes. 166 (TARGET_ARG_PARTIAL_BYTES): New. 167 * config/rs6000/rs6000-protos.h: Update. 168 169 * config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... 170 * config/sh/sh.c (sh_arg_partial_bytes): ... here. 171 (TARGET_ARG_PARTIAL_BYTES): New. 172 173 * config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 174 * config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from 175 function_arg_partial_nregs. Adjust to return bytes. 176 (TARGET_ARG_PARTIAL_BYTES): New. 177 * config/sparc/sparc-protos.h: Update. 178 179 * config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. 180 * config/v850/v850.c (v850_arg_partial_bytes): Rename from 181 function_arg_partial_nregs. Adjust to return bytes. 182 (TARGET_ARG_PARTIAL_BYTES): New. 183 * config/v850/v850-protos.h: Update. 184 1852004-12-30 Hans-Peter Nilsson <hp@bitrange.com> 186 187 * config/mmix/mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Define. 188 * config/mmix/mmix.c (mmix_asm_output_internal_label): New 189 function. 190 * config/mmix/mmix-protos.h (mmix_asm_output_internal_label): 191 Prototype. 192 1932003-12-29 Richard Henderson <rth@redhat.com> 194 195 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True. 196 1972004-12-29 Jeff Law <law@redhat.com> 198 199 * tree-outof-ssa.c (insert_backedge_copies): New function. 200 (rewrite_out_of_ssa): Use it. 201 2022004-12-29 Ira Rosen <irar@il.ibm.com> 203 204 PR tree-optimization/18179 205 * tree-vectorizer.c (vect_get_base_and_offset): Call get_inner_reference 206 and vect_analyze_offset_expr. 207 (vect_create_addr_base_for_vector_ref): Build address_base by combining 208 base and initial_offset fields of vect_stmt_info. 209 (vect_update_inits_of_dr): Update offset of data-ref instead of its 210 access-fn. Remove argument. 211 (vect_update_inits_of_drs): Call vect_update_inits_of_dr with new 212 arguments. 213 (vect_compute_data_ref_alignment): Check misalignment info in 214 vect_stmt_info. Remove argument. 215 (vect_compute_data_refs_alignment): Call vect_compute_data_ref_alignment 216 with correct argument. 217 (vect_analyze_data_ref_access): Check access info in vect_stmt_info. 218 (vect_analyze_pointer_ref_access): Update step and initial_offset fields 219 of vect_stmt_info. 220 (vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the 221 fields of stmt_vec_info. 222 (vect_analyze_data_refs): Find vectype and pass it to 223 vect_get_memtag_and_dr. 224 (vect_get_first_index): Remove. 225 (vect_compute_array_base_alignment): Remove. 226 (vect_compute_array_ref_alignment): Remove 227 (vect_create_data_ref_ptr): Use TYPE_SIZE_UNIT instead GET_MODE_SIZE. 228 (vect_gen_niters_for_prolog_loop): Use TREE_CONSTANT instead 229 host_integerp. 230 (vectorizable_load): Use size arithmetics. 231 2322004-12-29 Ira Rosen <irar@il.ibm.com> 233 234 PR tree-optimization/18179 235 * tree-vectorizer.c (vect_get_base_and_offset): Rename (previous name 236 vect_get_base_and_bit_offset). 237 (vect_get_memtag_and_dr): Rename (previous name vect_get_symbl_and_dr). 238 2392004-12-29 Ira Rosen <irar@il.ibm.com> 240 241 PR tree-optimization/18179 242 * tree-vectorizer.h (struct _stmt_vec_info): Add new fields: 243 initial_offset, step, misalignment and base_aligned_p and macros 244 to access them. 245 * tree-vectorizer.c (vect_analyze_offset_expr): New function. 246 (new_stmt_vec_info): Initialize the new fields of stmt_vec_info. 247 248 (vect_create_data_ref_ptr): Fix printings. 249 2502004-12-29 Ira Rosen <irar@il.ibm.com> 251 252 PR tree-optimization/18179 253 * tree-vectorizer.c (vect_get_symbl_and_dr): Reorganize. Add memtag 254 retrieval. 255 (vect_analyze_data_refs): Remove memtag retrieval. 256 2572004-12-28 Richard Henderson <rth@redhat.com> 258 259 PR inline-asm/15740 260 * gimplify.c (gimplify_asm_expr): Move resolve asm names ... 261 * c-typeck.c (build_asm_expr): ... here. Validate input 262 constraints. Mark memory inputs addressable. 263 2642004-12-28 Hans-Peter Nilsson <hp@bitrange.com> 265 266 PR target/18321 267 * config/mmix/mmix.c (mmix_expand_epilogue): Change type of 268 variable offset to HOST_WIDE_INT. Remove obsolete comment. Fix 269 spacing. 270 2712004-12-28 Andrew Pinski <pinskia@physics.uc.edu> 272 273 * fold-const.c (fold_build_cleanup_point_expr): For a RETURN_EXPR, 274 we only need a cleanup point expression when the expression on the 275 left hand side of the MODIFIY_EXPR inside the return has side 276 effects. 277 2782004-12-28 Dorit Naishlos <dorit@il.ibm.com> 279 280 * tree-vectorizer.c (vect_mark_relevant) First argument changed from 281 varray_type to varray_type*. 282 (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist 283 when calling vect_mark_relevant. 284 2852004-12-28 Alan Modra <amodra@bigpond.net.au> 286 287 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't 288 generate non-offsettable DImode lo_sum addresses. 289 2902004-12-28 Zdenek Dvorak <dvorakz@suse.cz> 291 292 PR rtl-optimization/19103 293 * loop-iv.c (iv_number_of_iterations): Fix typo. 294 2952004-12-28 Andreas Jaeger <aj@suse.de> 296 297 * genrecog.c (compute_predicate_codes): Avoid warning. 298 2992004-12-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 300 301 * vax.c (vax_address_cost, vax_rtx_cost): Correct casts. 302 (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. 303 3042004-12-27 Jeff Law <law@redhat.com> 305 306 * tree-ssa-dom.c (thread_across_edge): Remove broken code to 307 avoid threading into a loop. 308 3092004-12-27 Richard Henderson <rth@redhat.com> 310 311 PR target/17406 312 * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR 313 note for allocate_stack_worker insn. 314 3152004-12-27 Jason Merrill <jason@redhat.com> 316 317 * doc/tm.texi (TARGET_RELAXED_ORDERING): Document. 318 * target.h (struct gcc_target): Add relaxed_ordering field. 319 * target-def.h (TARGET_RELAXED_ORDERING): Define default. 320 (TARGET_INITIALIZER): Add it. 321 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define. 322 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define. 323 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define. 324 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define. 325 3262004-12-27 Roger Sayle <roger@eyesopen.com> 327 328 PR driver/16118 329 * doc/invoke.texi: Document the interaction between -save-temps 330 and -x. 331 3322004-12-27 David Edelsohn <edelsohn@gnu.org> 333 334 * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs): 335 Do not break apart constant pool addresses. 336 (rs6000_emit_move): Only force source into REG if target is MEM. 337 3382004-12-27 Mark Mitchell <mark@codesourcery.com> 339 340 PR c++/19148 341 * gimplify.c (gimplify_cond_expr): Add post_p parameter. 342 (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr. 343 (gimplify_expr): Likewise. 344 3452004-12-27 Richard Henderson <rth@redhat.com> 346 347 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW. 348 3492004-12-26 Richard Henderson <rth@redhat.com> 350 351 * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result 352 of type_natural_mode to examine_argument. 353 354 * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New. 355 (movv2sf_internal_rex64): New. 356 (mov<MMXMODEI>_internal): Use no register preferences at all. 357 (movv2sf_internal): Likewise. 358 3592004-12-26 Richard Henderson <rth@redhat.com> 360 361 * simplify-rtx.c (simplify_relational_operation_1): Don't simplify 362 plus/minus across EQ for floating-point. 363 3642004-12-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 365 366 PR target/17643 367 * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when 368 generating code for the portable runtime. 369 3702004-12-25 Richard Henderson <rth@redhat.com> 371 372 * expr.c (clear_storage): Validate CONST0_RTX extant. Special case 373 complex modes. 374 3752004-12-25 Zdenek Dvorak <dvorakz@suse.cz> 376 377 PR rtl-optimization/19078 378 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic, 379 determine_use_iv_cost_outer): Fix computing of cost for the original 380 bivs. 381 (dump_use): Handle case related_cands == NULL. 382 3832004-12-25 Marek Michalkiewicz <marekm@amelek.gda.pl> 384 385 PR target/19059 386 * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4 387 to avr2. 388 * config/avr/avr.h (LINK_SPEC): Ditto. 389 * config/avr/t-avr (MULTILIB_MATCHES): Ditto. 390 3912004-12-25 Alan Modra <amodra@bigpond.net.au> 392 393 PR target/19137 394 * config/rs6000/rs6000.md (movti_power, movti_string): Relax 395 operand[1] predicate to input_operand, and add r<-n alternative. 396 Move TImode const_double_operand splitter to where it belongs. 397 3982004-12-25 Alan Modra <amodra@bigpond.net.au> 399 400 PR target/19147 401 * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. 402 4032004-12-24 Uros Bizjak <uros@kss-loka.si> 404 405 * config/i386/i386.md (*fix_trunc{d,s,h}i_1): 406 Rename to *fix_trunc{d,s,h}i_i387. 407 (fix_trunc{d,s}fdi2): Reorder tests. 408 4092004-12-24 Daniel Berlin <dberlin@dberlin.org> 410 411 Fix PR debug/14638 412 413 * tree.h (DECL_DEBUG_ALIAS_OF): New macro. 414 * var-tracking.c (track_expr_p): Don't disqualify tracking of variables 415 that are aliases of variables we want to track, unless the 416 original variable is also ignored for debugging purposes. 417 (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic. 418 * tree-outof-ssa.c (create_temp): Note who we are a debug alias of. 419 * dwarf2out.c (dwarf2out_var_location): Add us to the location of 420 the decl we are an alias of. 421 4222004-12-24 Alan Modra <amodra@bigpond.net.au> 423 424 PR target/19142 425 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow 426 DFmode for 32-bit again. 427 4282004-12-23 Roger Sayle <roger@eyesopen.com> 429 430 * reload.c (regno_clobbered_p): Add a gcc_assert that regno 431 refers to a hard register. 432 4332004-12-23 Mark Mitchell <mark@codesourcery.com> 434 435 * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p. 436 4372004-12-23 DJ Delorie <dj@redhat.com> 438 439 * genrecog.c (did_you_mean_codes): New. 440 (compute_predicate_codes): Fail unmatched codes. 441 4422004-12-23 Eric Christopher <echristo@redhat.com> 443 444 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add 445 assert for machine=mips for !TARGET_IRIX. 446 * config/mips/linux.h: Remove machine=mips assert. 447 * config/mips/netbsd.h: Ditto. 448 * config/mips/openbsd.h: Ditto. 449 4502004-12-23 Dale Johannesen <dalej@apple.com> 451 452 * tree.c (iterative_hash_expr): Canonicalize builtins. 453 4542004-12-23 Alexandre Oliva <aoliva@redhat.com> 455 456 PR target/16819 457 * calls.c (load_register_parameters): Don't call use_regs when 458 nregs is zero. 459 4602004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr> 461 462 PR middle-end/17746 463 * expr.c (get_inner_reference): Add 'keep_aligning' parameter. 464 Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT 465 platforms only if keep_aligning is true. 466 (expand_assignment): Adjust call to get_inner_reference. 467 (expand_expr_addr_expr_1): Likewise. 468 (expand_expr_real_1): Likewise. 469 * dojump.c (do_jump): Likewise. 470 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. 471 * fold-const.c (optimize_bit_field_compare): Likewise. 472 (decode_field_reference): Likewise. 473 (split_address_to_core_and_offset): Likewise. 474 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise. 475 * tree.h (get_inner_reference): Adjust prototype. 476 4772004-12-23 Richard Henderson <rth@redhat.com> 478 479 * config/i386/i386.c (override_options): Revert last change 480 wrt fancy 387 math. 481 4822004-12-23 Richard Henderson <rth@redhat.com> 483 484 * config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3, 485 ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized 486 vector operate patterns. 487 4882004-12-23 Richard Henderson <rth@redhat.com> 489 490 * config/i386/i386.c (ix86_expand_vector_move): Tidy. 491 (ix86_expand_vector_move_misalign): New. 492 (ix86_misaligned_mem_ok): Remove. 493 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. 494 * config/i386/i386-protos.h: Update. 495 * config/i386/i386.md (SSEMODEI): Rename from SSEINT16. 496 (MMXMODEI): Rename from MMXINT8. 497 (SSEMODE, MMXMODE, movmisalign<mode>): New. 498 4992004-12-23 Mark Mitchell <mark@codesourcery.com> 500 501 PR c++/16405 502 * gimplify.c (gimplify_modify_expr_rhs): Handle 503 INDIRECT_REF/ADDR_EXPR combinations. 504 5052004-12-22 Richard Henderson <rth@redhat.com> 506 507 * config/alpha/alpha.c (alpha_expand_mov): Split out ... 508 (alpha_expand_movmisalign): ... misaligned vector support. 509 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. 510 * config/alpha/alpha-protos.h: Update. 511 * config/alpha/alpha.md (VEC): New macro. 512 (movv8qi, movv4hi, movv2si): Compress with VEC. 513 (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise. 514 (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise. 515 (movmisalign<mode>): New. 516 5172004-12-22 Richard Henderson <rth@redhat.com> 518 519 * optabs.h (OTI_movmisalign, movmisalign_optab): New. 520 * optabs.c (init_optabs): Create it. 521 * genopinit.c (optabs): Initialize it. 522 * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it. 523 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. 524 * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. 525 * target.h (vectorize.misaligned_mem_ok): Remove. 526 * targhooks.c (default_vect_misaligned_mem_ok): Remove. 527 * doc/md.texi (movmisalign): New. 528 * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. 529 5302004-12-22 Richard Henderson <rth@redhat.com> 531 532 * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg 533 to __v2si. 534 (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise. 535 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or 536 const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd, 537 __builtin_ia32_storehpd, __builtin_ia32_storelpd. 538 (ix86_expand_builtin): Update to match. 539 (ix86_expand_vector_init): Use sse2_loadlpd. 540 * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd. 541 (vec_extractv2df): Use sse2_storelpd, sse2_storehpd. 542 (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New. 543 (sse2_movhpd): Remove. 544 5452004-12-23 Alan Modra <amodra@bigpond.net.au> 546 547 PR target/18751 548 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return 549 false for anything larger than 32 bits in 32-bit code. 550 5512004-12-22 Richard Henderson <rth@redhat.com> 552 553 * config/i386/i386.md (btsq, btrq, btcq): Fix modes. 554 (bt peepholes): Likewise. 555 556 * varasm.c (force_const_mem): Call set_mem_align. 557 5582004-12-22 Richard Henderson <rth@redhat.com> 559 560 * config/i386/predicates.md (sse_comparison_operator): Fix 561 typo in ieee test. 562 (arith_or_logical_operator): Downcase codes. 563 5642004-12-23 Kaz Kojima <kkojima@gcc.gnu.org> 565 566 PR target/18511 567 * reload1.c (emit_output_reload_insns): Check if OLD is a hard 568 register before calling regno_clobbered_p. 569 * reload.c: Update comment for regno_clobbered_p. 570 5712004-12-22 Richard Henderson <rth@redhat.com> 572 573 * config/i386/i386.c (override_options): Respect user disable of 574 fancy 387 math, sse, mmx. 575 (construct_container): Generate error if we need an sse regster 576 and sse has been disabled. 577 * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables 578 later sse generations. Disabling mmx also disables 3dnow. 579 5802004-12-22 Daniel Berlin <dberlin@dberlin.org> 581 582 * tree-inline.c (struct inline_data): Remove inlined_fns. 583 (expand_call_inline): Remove dead code setting 584 inlined_fns. 585 (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS. 586 * tree.h (struct tree_decl): Remove inlined_fns. 587 5882004-12-22 Roger Sayle <roger@eyesopen.com> 589 590 * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code. 591 5922004-12-23 Alan Modra <amodra@bigpond.net.au> 593 594 PR target/18896 595 * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P 596 for real and imaginary parts if the parm is addressable. 597 (assign_parms_unsplit_complex): If parm addressable, save real 598 and imaginary parts to a stack temp. Pass assign_parm_data_all. 599 (assign_parms): Adjust assign_parms_unsplit_complex call. 600 6012004-12-22 Daniel Berlin <dberlin@dberlin.org> 602 603 * tree.h (DECL_PTA_ALIASVAR): Dead. 604 (struct tree_decl): Remove alias_var field. 605 6062004-12-22 Nathan Sidwell <nathan@codesourcery.com> 607 608 * system.h (IN_RANGE): Restore HOST_WIDE_INT cast. 609 * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE. 610 6112004-12-22 Richard Henderson <rth@redhat.com> 612 Uros Bizjak <uros@kss-loka.si> 613 614 * config/i386/i386.md (truncdfsf2): Don't create stack temp when 615 using sse math only. Use truncdfsf2_with_temp. 616 (truncdfsf2_with_temp): New. 617 (truncdfsf_fast_i387): Rename from truncdfsf2_noop. Add memory 618 output alternative. 619 (truncdfsf_mixed): Rename from truncdfsf2_1_sse. Compress duplicate 620 alternatives. 621 (truncdfsf_fast_sse): Rename from truncdfsf2_2. Remove f alternative. 622 (truncdfsf2_3, truncdfsf2_sse_only): Remove. 623 (truncdfsf_i387): Rename from truncdfsf2_1. Compress duplicates. 624 (truncdfsf_fast_mixed): New. 625 (truncdfsf splitters): Remove all except the 387 load/store split. 626 (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with 627 respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and 628 TARGET_MIX_SSE_I387. 629 (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed. 630 (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop. 631 (*truncxf{s,d}f2_i387): New patterns. 632 (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1. 633 (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2, 634 rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2, 635 nearbyint{s,d}f2): Use renamed patterns. 636 6372004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 638 639 * tree.h (TYPE_SIZES_GIMPLIFIED): New. 640 * function.c (gimplify_parm_type): Don't gimplify type if already done. 641 * gimplify.c (gimplify_decl_expr): Likewise. 642 (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED. Examine nested 643 array types. 644 6452004-12-22 Richard Henderson <rth@redhat.com> 646 647 * gimplify.c (eval_save_expr): Remove. 648 (gimplify_one_sizepos): Unshare expr before gimplifying. 649 * stor-layout.c (variable_size): Revert 2004-12-19 change. 650 (layout_decl): Revert 2004-12-18 change. 651 (layout_type): Revert 2004-12-21 change. 652 6532004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 654 655 * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types. 656 6572004-12-22 Mark Mitchell <mark@codesourcery.com> 658 659 * Makefile.in (install-common): Remove special-case code for when 660 SPECS is defined. 661 6622004-12-22 Jan Beulich <jbeulich@novell.com> 663 664 * config.gcc: Add dbxelf.h to NetWare's tm_file. 665 * config/i386/netware-crt0.c: Prototype __init_environment and 666 __deinit_environment prior to their definition. 667 (__init_environment): Correct invokation of constructor function. 668 * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use 669 builtin_define_std rather than builtin_define on IAPX386. 670 * config/i386/nwld.h: Disable stabs debugging info with the linker 671 this file supports. 672 * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for 673 the output. Add -posix to the options as that is the more compatible 674 mode. 675 * gthr-nks.h: Formatting. 676 (__gthread_mutex_init_function): Kill the dubious use of 677 NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes 678 were not meant to be recursive. 679 (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, 680 __gthread_recursive_mutex_init_function, 681 __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock, 682 __gthread_recursive_mutex_unlock): New. 683 6842004-12-22 Alexandre Oliva <aoliva@redhat.com> 685 686 * config/mips/t-linux64: Remove code that messed with $(SPECS). 687 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move 688 n32 to the front. 689 (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): 690 Removed. 691 * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle 692 -mabi-fake-default. 693 (SUBTARGET_TARGET_SWITCHES): Likewise. 694 6952004-12-21 Andrew Pinski <pinskia@physics.uc.edu> 696 697 PR c++/18984 698 * pointer-set.c (pointer_set_contains): Add back. 699 * pointer-set.h (pointer_set_contains): Add back. 700 7012004-12-21 Richard Henderson <rth@redhat.com> 702 703 * gimplify.c (eval_save_expr): New. 704 (gimplify_one_sizepos): Use it. 705 * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE. 706 7072004-12-21 Nathan Sidwell <nathan@codesourcery.com> 708 709 * system.c (IN_RANGE): Use plain unsigned, not unsigned 710 HOST_WIDE_INT. 711 * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE, 712 VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE, 713 POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE, 714 FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE, 715 QUAL_UNION_TYPE): Reorder for better code efficiency. 716 (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise. 717 (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise. 718 * tree.h (INDIRECT_REF_P): Reorder checks for better optimization. 719 (IS_EXPR_CODE_CLASS): Use IN_RANGE. 720 (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better 721 optimization. 722 7232004-12-21 David O'Brien <obrien@FreeBSD.org> 724 725 * config/freebsd-spec.h: Use KSE pthread lib for -pthread. 726 7272004-12-21 James A. Morrison <phython@gcc.gnu.org> 728 729 PR c/18963 730 * c-decl.c (pushdecl): Remove block trying to merge static function 731 declarations at block scope to file scope declarations. 732 7332004-12-21 James A. Morrison <phython@gcc.gnu.org> 734 735 PR c/18596 736 * c-parse.in (initdcl): Don't process a declaration if start_decl fails. 737 (notype_initdcl): Don't process a declaration if start_decl fails. 738 * c-decl.c (start_decl): Fail if grokdeclarator fails. 739 (grokdeclarator): Fail if a function definition has an invalid storage 740 class. 741 * c-typeck.c (start_init): Treat error_mark_node the same as 0. 742 7432004-12-21 Richard Henderson <rth@redhat.com> 744 745 * config/i386/i386.c (x86_sse_split_regs): Rename from 746 x86_sse_partial_regs. 747 * config/i386/i386.h (x86_sse_split_regs): Likewise. 748 (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS. 749 * config/i386/i386.md (*): Update to match. Remove two 750 floatsisf splitters that use it. 751 752 * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove. 753 754 * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove. 755 * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove. 756 * config/i386/i386.md (truncdfsf2_1_sse): Don't test it. 757 (truncdfsf2_2, truncdfsf2_sse_only): Likewise. 758 (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove. 759 (truncdfsf2_sse_only_nooverlap): Remove. 760 761 * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove. 762 7632004-12-21 Eric Botcazou <ebotcazou@libertysurf.fr> 764 765 * expr.c (emit_group_load_1): Return the source if the move 766 is a regular move between complex values. 767 7682004-12-20 Roger Sayle <roger@eyesopen.com> 769 770 PR middle-end/18683 771 * config/rs6000/rs6000.c (current_file_function_operand): Only check 772 current_function_decl's DECL_RTL if it has already been set. 773 7742004-12-20 Roger Sayle <roger@eyesopen.com> 775 776 PR middle-end/18683 777 * function.c (pop_function_context_from): Don't reset reg_renumber. 778 7792004-12-20 Eric Botcazou <ebotcazou@libertysurf.fr> 780 781 PR middle-end/18776 782 * expr.c (write_complex_part): Use a subreg if the original object 783 is a hard reg that spans an even number of regs or a MEM. 784 (read_complex_part): Likewise. 785 7862004-12-20 Mark Mitchell <mark@codesourcery.com> 787 788 * Makefile.in (install-common): Do not install the specs file 789 unless SPECS is defined. 790 7912004-12-20 Zdenek Dvorak <dvorakz@suse.cz> 792 793 PR rtl-optimization/18942 794 * simplify-rtx.c (simplify_relational_operation_1): Simplify 795 x + cst1 == cst2 to x == cst2 - cst1. Made static. 796 7972004-12-20 Matt Austern <austern@apple.com> 798 799 PR c++/19044 800 * c-common.c (set_builtin_user_assembler_name): New. 801 * c-common.h (set_builtin_user_assembler_name): Declare. 802 * c-decl.c (finish_decl): Use set_builtin_user_assembler_name 803 8042004-12-20 Diego Novillo <dnovillo@redhat.com> 805 806 PR tree-optimization/19080 807 808 Merge from tree-cleanup-branch 809 810 * tree-flow-inline.h (clear_call_clobbered): New function. 811 * tree-ssa-alias.c (init_alias_info): Call it. 812 8132004-12-20 Richard Henderson <rth@redhat.com> 814 815 * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok 816 check. 817 8182004-12-20 Steven Bosscher <stevenb@suse.de> 819 Andrew Pinski <pinskia@physics.uc.edu> 820 821 PR middle-end/18191 822 PR middle-end/18965 823 PR middle-end/18999 824 * expr.c (categorize_ctor_elements_1): Count the total number 825 of elements in the constructor. 826 (categorize_ctor_elements): Return it in a new argument. 827 * tree.h (categorize_ctor_elements): Adjust prototype. 828 * gimplify.c (gimplify_init_ctor_eval_range): New. 829 (gimplify_init_ctor_eval): Gimplify RANGE_EXPR. 830 (gimplify_init_constructor): Block clear the object if the 831 constructor has fewer elements than the object type. Only try 832 to add assignments to individual elements when we have to. 833 8342004-12-20 Richard Henderson <rth@redhat.com> 835 836 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use 837 long_long_integer_type_node in building V2DI_type_node. 838 839 * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size. 840 * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise. 841 8422004-12-20 Ben Elliston <bje@au.ibm.com> 843 844 * doc/md.texi (Expander Definitions): Use @emph instead of @strong 845 around Note: text to workaround a limitation of the Info format. 846 * doc/cpp.texi (Invocation): Likewise. 847 * doc/cppopts.texi: Likewise. 848 8492004-12-19 Dale Johannesen <dalej@apple.com> 850 851 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Don't 852 reference operand 1 of ADDR_EXPRs. 853 8542004-12-19 Mark Mitchell <mark@codesourcery.com> 855 856 * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro. 857 * output.h (assemble_name_raw): Declare it. 858 * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it. 859 * varasm.c (assemble_name_raw): New function. 860 (assemble_name): Use it. 861 (default_internal_label): Likewise. 862 * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise. 863 * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document. 864 8652004-12-19 Richard Henderson <rth@redhat.com> 866 867 PR 18067 868 * stor-layout.c (variable_size): Force creation of a SAVE_EXPR. 869 8702003-12-19 Steven Bosscher <stevenb@suse.de> 871 872 * config/i386/i386.c (ix86_split_to_parts): Use an array with 873 four elements for decoding a CONST_DOUBLE on 64 bits targets. 874 8752004-12-19 Bernardo Innocenti <bernie@develer.com> 876 877 * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant 878 definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS. 879 8802004-12-18 Daniel Berlin <dberlin@dberlin.org> 881 882 * lambda-code.c (can_convert_to_perfect_nest): Make checking 883 match up with what perfect_nestify can actually handle. 884 (perfect_nestify): Don't return false in the phi node loop. 885 8862004-12-18 Richard Henderson <rth@redhat.com> 887 888 * config/i386/i386.md (SSEINT16): New. 889 (movv16qi, movv8hi, movv4si, movv2di): Compress via macros. 890 (movv16qi_internal, movv8hi_internal, movv4si_internal, 891 movv2di_internal): Compress via macros. Add SSE zero alternative. 892 Fix pure SSE alternatives to use 'x' instead of 'Y'. 893 (MMXINT8): New. 894 (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal, 895 movv2si_internal): Compress via macros. 896 (SSEPUSH, MMXPUSH): New. 897 (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df, 898 pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros. 899 9002004-12-18 Richard Henderson <rth@redhat.com> 901 902 PR middle-end/16417 903 * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion 904 comment. 905 * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes 906 checks. 907 * c-tree.h (struct lang_decl): Remove pending_sizes. 908 * function.c: Include tree-gimple.h 909 (assign_parm_setup_reg): Remove callee-copies code. 910 (gimplify_parm_type, gimplify_parameters): New functions. 911 (expand_pending_sizes): Remove. 912 (expand_function_start): Don't call it. 913 * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL. 914 (gimplify_body): Add do_parms argument. Use gimplify_parameters. 915 (gimplify_function_tree): Setup cfun. Update gimplify_body call. 916 * tree-gimple.h (gimplify_body): Update decl. 917 * tree-inline.c (initialize_inlined_parameters): Update gimplify_body 918 call. 919 * tree.h (gimplify_parameters): Declare. 920 * Makefile.in (function.o): Depend on TREE_GIMPLE_H. 921 9222004-12-18 Richard Henderson <rth@redhat.com> 923 924 * c-decl.c (finish_struct): Add DECL_EXPR for variable sized 925 structures seen inside functions. 926 9272004-12-18 Richard Henderson <rth@redhat.com> 928 929 * c-decl.c (grokdeclarator): Save variable array size before 930 subtracting 1, rather than after. 931 9322004-12-18 Eric Botcazou <ebotcazou@libertysurf.fr> 933 934 PR middle-end/15486 935 * varasm.c (asm_emit_uninitialised): Return early if 936 a custom section is requested. 937 (assemble_variable): Revert 2002-03-15 patch. 938 9392004-12-18 Richard Henderson <rth@redhat.com> 940 941 * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr. 942 9432004-12-18 Zdenek Dvorak <dvorakz@suse.cz> 944 945 PR tree-optimization/18800 946 * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter. 947 * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field. 948 (ALWAYS_PRUNE_CAND_SET_BOUND): New macro. 949 (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field. 950 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune): 951 New functions. 952 (iv_ca_extend): Return number of candidates in the set. 953 (try_add_cand_for): Add argument to iv_ca_extend calls. 954 (try_improve_iv_set): Use iv_ca_prune. 955 * doc/invoke.texi (iv-always-prune-cand-set-bound): Document. 956 9572004-12-18 Zdenek Dvorak <dvorakz@suse.cz> 958 959 PR rtl-optimization/19001 960 * loop-iv.c (iv_number_of_iterations): Record assumptions for loops 961 with power of two step to 'infinite' field. 962 9632004-12-18 Roger Sayle <roger@eyesopen.com> 964 965 * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h. 966 (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h. 967 (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h. 968 (tree-mudflap.o): Depend upon gt-tree-mudflap.h. 969 (expr.o): Depend upon gt-expr.h. 970 (regclass.o): Depend upon gt-regclass.h. 971 (bitmap.o): Depend upon gt-bitmap.h. 972 (lists.o): Depend upon gt-lists.h. 973 974 (cfgexpand.o): Don't depend upon gt-tree-cfg.h. 975 976 (GTFILES): Remove fold-const.c. 977 (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h): 978 Remove rules. 979 9802004-12-18 Richard Henderson <rth@redhat.com> 981 982 * stor-layout.c (layout_decl): Unshare size expressions copied 983 from the type. 984 985 * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when 986 BOTTOM is a power of two. 987 9882004-12-18 Richard Henderson <rth@redhat.com> 989 990 * tree-nested.c (save_tmp_var): New. 991 (struct walk_stmt_info): Add is_lhs. 992 (walk_stmts) <MODIFY_EXPR>: Be more accurate with setting of 993 val_only; set is_lhs. 994 (convert_nonlocal_reference): Use save_tmp_var when is_lhs; 995 clear is_lhs when appropriate. 996 (convert_local_reference): Likewise. 997 9982004-12-18 Richard Earnshaw <rearnsha@arm.com> 999 1000 * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA 1001 compatibility code. 1002 10032004-12-18 Roger Sayle <roger@eyesopen.com> 1004 1005 * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p. 1006 Take a max_cost argument to avoid scanning large blocks, by returning 1007 a Boolean instead of a total. Include the cost of a "fstp %st(0)" 1008 instruction required to pop dead values off of a register stack. 1009 10102004-12-18 Roger Sayle <roger@eyesopen.com> 1011 1012 PR middle-end/18548 1013 * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0 1014 and op1 are all registers (or constants) before expanding the RTL 1015 comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. 1016 10172004-12-18 Eric Botcazou <ebotcazou@libertysurf.fr> 1018 1019 PR rtl-optimization/16968 1020 * loop.c (scan_loop): Stop scanning the loop for movable 1021 insns as soon as an optimization barrier is encountered. 1022 10232004-12-17 Zack Weinberg <zack@codesourcery.com> 1024 1025 PR 18897 1026 * toplev.c (compile_file): Call process_pending_assemble_externals 1027 just before targetm.asm_out.file_end. 1028 10292004-12-17 Diego Novillo <dnovillo@redhat.com> 1030 1031 tree-optimization/18501 1032 * tree-optimize.c (init_tree_optimization_passes): Run 1033 pass_late_warn_uninitialized before the last DCE run. 1034 10352004-12-17 Richard Henderson <rth@redhat.com> 1036 1037 * config/i386/i386.c (x86_64_reg_class_name): Re-indent. 1038 (classify_argument, examine_argument, construct_container, 1039 merge_classes): Remove prototypes. 1040 (type_natural_mode): Split out from ... 1041 (function_arg): ... here. 1042 (gen_reg_or_parallel): Remove alt_mode argument. Update callers. 1043 Use orig_mode unless it's BLKmode. 1044 (construct_container): Add orig_mode argument. Update callers. 1045 Use gen_reg_or_parallel for SSE registers. 1046 (ix86_function_value): Use type_natural_mode. 1047 (ix86_gimplify_va_arg): Likewise. 1048 (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in 1049 SSE registers; always accept all MMX, 3DNOW modes in MMX registers. 1050 * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include 1051 VALID_MMX_REG_MODE. 1052 * config/i386/i386.md (attribute mode): Add V1DF. 1053 (movsi_1): Use 'x' instead of 'Y' constraints. 1054 (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise. 1055 (movdi_1_rex64_nointerunit): Likewise. 1056 (movdf_nointeger, movdf_integer): Likewise. Handle SSE1. 1057 (movsf_1, movsf_1_nointerunit): Line up constraint alternatives. 1058 (swapsf): Use fp_register_operand, don't disable for TARGET_SSE. 1059 (swapdf): Likewise. 1060 (swapxf): Enable only for TARGET_80387. 1061 (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX. 1062 (movtf): Remove double-check for TARGET_64BIT. 1063 (movv2df_internal): Enable for SSE1. 1064 (movv8hi_internal, movv16qi_internal): Likewise. 1065 (movv2df, movv8hi, movv16qi): Likewise. 1066 (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise. 1067 (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal, 1068 movv8qi_internal, movv4hi_internal, movv2sf_internal, 1069 movv2df_internal, movv8hi_internal, movv16qi_internal, 1070 movti_internal): Add leading '*' to name. 1071 10722004-12-17 Dale Johannesen <dalej@apple.com> 1073 1074 * c-decl.c (diagnose_mismatched_decls): Accept mismatched 1075 function types: void with previous implicit int. 1076 10772004-12-17 Andreas Krebbel <krebbel1@de.ibm.com> 1078 1079 * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to 1080 s390_sr_alias_set. 1081 10822004-12-17 Jan Beulich <jbeulich@novell.com> 1083 1084 PR target/17603 1085 * config/i386/i386.c (enum x86_64_reg_class): Define 1086 X86_64_COMPLEX_X87_CLASS. 1087 (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS. 1088 (merge_classes): Handle X86_64_COMPLEX_X87_CLASS. 1089 (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS. 1090 (examine_argument): X86_64_COMPLEX_X87_CLASS requires two 1091 registers when dealing with a return value. 1092 (construct_container): Handle X86_64_COMPLEX_X87_CLASS. 1093 Eliminate impossible case of two X87/X87UP pairs (this now is 1094 being expressed by a single COMPLEX_X87). 1095 (x86_libcall_value): XCmode gets returned in st0/st1. 1096 10972004-12-17 Steven Bosscher <stevenb@suse.de> 1098 1099 * tree.c (type_contains_placeholder_1): Always return false 1100 for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder. 1101 11022004-12-17 Uros Bizjak <uros@kss-loka.si> 1103 1104 * config/i386/i386.md (extendsfdf2, *extendsfdf2_1, 1105 *extendsfdf2_1_sse_only): Unify enable constraint with 1106 respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH 1107 and TARGET_MIX_SSE_I387. 1108 (*extendsfdf2_i387): New insn pattern. 1109 (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix 1110 register constraint for operand 0. 1111 (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse. 1112 (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387. 1113 11142004-12-16 Andrew Pinski <pinskia@physics.uc.edu> 1115 1116 PR target/19041 1117 * config/darwin.c (machopic_symbol_defined_p): Return false 1118 if the binds local and is a common symbol. 1119 11202004-12-16 Richard Henderson <rth@redhat.com> 1121 1122 * config/i386/i386.md (extv, extzv, insv): Revalidate the 1123 operand with ext_register_operand. 1124 11252004-12-16 Kazu Hirata <kazu@cs.umass.edu> 1126 1127 * global.c: Fix a comment typo. 1128 11292004-12-16 Eric Botcazou <ebotcazou@libertysurf.fr> 1130 Roger Sayle <roger@eyesopen.com> 1131 1132 PR tree-optimization/18707 1133 * cfgloopmanip.c (create_preheader): Move the preheader 1134 only if the latch was falling through to the header. 1135 11362004-12-16 Danny Smith <dannysmith@users.sourceforge.net> 1137 1138 PR target/18997 1139 * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0. 1140 11412004-12-16 Richard Henderson <rth@redhat.com> 1142 Aldy Hernandez <aldyh@redhat.com> 1143 1144 * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace 1145 hard registers. 1146 11472004-12-16 H.J. Lu <hongjiu.lu@intel.com> 1148 1149 PR other/18508 1150 * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix 1151 to back up the existing shared library. 1152 * config/arm/t-netbsd (SHLIB_LINK): Likewise. 1153 * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. 1154 * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. 1155 * config/sh/t-linux (SHLIB_LINK): Likewise. 1156 * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. 1157 * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. 1158 * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. 1159 * config/t-slibgcc-sld (SHLIB_LINK): Likewise. 1160 1161 * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary 1162 file. 1163 11642004-12-16 Richard Henderson <rth@redhat.com> 1165 1166 * Makefile.in (MD_DEPS, s-mddeps): New. 1167 (s-config, s-conditions, s-flags, s-codes, s-constants, s-emit, 1168 s-recog, s-opinit, s-extract, s-peep, s-attr, s-attrtab, s-output, 1169 s-preds): Depend on MD_DEPS instead of md_file. 1170 (genobjnames): Add genmddeps.o 1171 (build/genmddeps, build/genmddeps.o): New. 1172 (mostlyclean): Remove mddeps.mk. 1173 * genmddeps.c: New file. 1174 * gensupport.c (include_callback): New. 1175 (process_include): Call it. 1176 * gensupport.h (include_callback): Declare. 1177 11782004-12-16 Nathan Sidwell <nathan@codesourcery.com> 1179 1180 * local-alloc.c (block_alloc): Replace IN_RANGE with simple 1181 comparison. 1182 1183 * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs. 1184 11852004-12-16 Mark Dettinger <dettinge@de.ibm.com> 1186 1187 * config/s390/s390.c (struct processor_costs): Two new fields: 1188 madbr, maebr. 1189 (s390_rtx_costs): Added handling of multipy and add in SFmode. 1190 More precise values for cost of multiply and add. 1191 11922004-12-15 Richard Henderson <rth@redhat.com> 1193 1194 PR target/19028 1195 * config/i386/i386.md (sse compare splitter): Test for SF and DFmode 1196 explicitly instead of using VALID_SSE_REG_MODE. 1197 11982004-12-15 Richard Henderson <rth@redhat.com> 1199 1200 PR target/19005 1201 * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with 1202 optimize_size. 1203 (swapqi_1): Rename from swapqi. Enable only for no partial reg 1204 stall and optimize_size. 1205 (swapqi_2): New. 1206 (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode. 1207 (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override. 1208 12092004-12-16 Uros Bizjak <uros@kss-loka.si> 1210 1211 * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387): 1212 Also enable for TARGET_MIX_SSE_I387. 1213 12142004-12-16 Uros Bizjak <uros@kss-loka.si> 1215 1216 * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only, 1217 sqrt{s,d}f2_i387): Unify enable constraint with respect to 1218 TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387, 1219 TARGET_SSE_MATH and TARGET_MIX_SSE_I387. 1220 (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed. 1221 (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse. 1222 (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387. 1223 (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387. 1224 (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387. 1225 12262004-12-16 Uros Bizjak <uros@kss-loka.si> 1227 1228 * config/i386/i386.md (*fop_?f_comm_{,sse,nosse}, 1229 *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable 1230 constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2, 1231 TARGET_SSE_MATH and TARGET_MIX_SSE_I387. 1232 (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed. 1233 (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387. 1234 (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387. 1235 12362004-12-15 H.J. Lu <hongjiu.lu@intel.com> 1237 1238 PR target/18153 1239 * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports 1240 -Bstatic/-Bdynamic option. 1241 * config.in: Regenerated. 1242 * configure: Likewise. 1243 1244 * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static 1245 -lunwind if possible. 1246 12472004-12-15 Daniel Berlin <dberlin@dberlin.org> 1248 1249 * cfgloop.c (flow_loops_dump): Don't print out levels. 1250 (flow_loops_find): Don't set loop->levels. 1251 (flow_loops_level_compute): Make void. 1252 * cfgloop.h (struct loops): Remove levels member. 1253 Add comment about loops in parray possibly being NULL. 1254 12552004-12-15 Alexandre Oliva <aoliva@redhat.com> 1256 1257 * reload.c (SMALL_REGISTER_CLASS_P): New. 1258 (push_secondary_reload, find_reusable_reload, find_reloads): Use 1259 it instead of testing only the class size. 1260 12612004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr> 1262 1263 PR c++/17972 1264 * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS 1265 on the STMT_EXPR wrapping up the inlined body. 1266 12672004-12-15 Vladimir Makarov <vmakarov@redhat.com> 1268 Steven Bosscher <stevenb@suse.de> 1269 PR middle end/17340 1270 1271 * global.c: Update comments in a few places. 1272 (check_earlyclobber): Return true if there are early clobber 1273 classes. 1274 (calculate_local_reg_bb_info): Do not try to mark earlyclobber 1275 regs if there are none. 1276 (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav, 1277 make_accurate_live_analysis): Rename pavin, pavout to live_pavin, 1278 live_pavout. 1279 (modify_bb_reg_pav): Remove. 1280 (calculate_reg_pav): Use code from modify_bb_reg_pav. 1281 (temp_bitmap): New variable. 1282 (calculate_reg_pav): Allocate/deallocate temp_bitmap. 1283 12842004-12-15 Richard Henderson <rth@redhat.com> 1285 1286 PR target/19010 1287 * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true 1288 for TImode vectors. 1289 (gen_reg_or_parallel): New. 1290 (function_arg): Use it. 1291 (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately, 1292 MMX and 3DNOW separately. 1293 (ix86_rtx_costs): Simplify FLOAT_EXTEND case. 1294 (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately. 1295 * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ... 1296 (VALID_SSE_REG_MODE): ... here. 1297 12982004-12-15 David Edelsohn <edelsohn@gnu.org> 1299 1300 * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy. 1301 13022004-12-15 Ian Lance Taylor <ian@wasabisystems.com> 1303 1304 * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of 1305 COMPARE of MULT. 1306 * config/arm/arm.md (mulsi3_compare0): Don't check 1307 arm_arch_xscale. 1308 (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise. 1309 (mulsi3addsi_compare0_scratch): Likewise. 1310 13112004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr> 1312 1313 PR other/18665 1314 * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2. 1315 Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. 1316 * libgcc2.c (__addvsi3): Rename to __addvSI3. 1317 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1318 (__addvdi3): Rename to __addvDI3. 1319 (__subvsi3): Rename to __subvSI3. Use word type for the result. 1320 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1321 (__subvdi3): Rename to __subvDI3. 1322 (_mulvsi3): Rename to _mulvSI3. 1323 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1324 (_mulvdi3): Rename to _mulvDI3. 1325 (__negvsi2): Rename to __negvSI2. 1326 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1327 (__negvdi2): Rename to __negvDI2. 1328 (__absvsi2): Rename to __absvSI2. 1329 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1330 (__absvdi2): Rename to __absvDI2. 1331 * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1332 (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2, 1333 __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate 1334 symbol and declare. 1335 (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if 1336 COMPAT_SIMODE_TRAPPING_ARITHMETIC. 1337 13382004-12-15 Kazuhiro Inaoka <inaoka.kazuhiro@reneasas.com> 1339 1340 * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE): 1341 Use DWARF2_DEBUG. 1342 1343 * config/m32r.c (m32r_legitimize_pic_address): Changed 1344 to support GOTOFF relocation. 1345 * config/m32r.md (UNSPEC_GOTOFF): New. 1346 (gotoff_load_addr): New. 1347 13482004-12-15 Richard Sandiford <rsandifo@redhat.com> 1349 1350 * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to 1351 decide whether an argument is double-word aligned. 1352 13532004-12-15 Richard Henderson <rth@redhat.com> 1354 1355 * config/i386/i386.md: Fix missing modes on cmove splitters. 1356 13572004-12-15 Jan Beulich <jbeulich@novell.com> 1358 1359 * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h. 1360 13612004-12-15 Uros Bizjak <uros@kss-loka.si> 1362 1363 * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2, 1364 *floatsisf2_i387, *floatsisf2_sse, floatdisf2, 1365 *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse, 1366 floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse, 1367 floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387, 1368 *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2): 1369 Unify enable constraint with respect to TARGET_80387, TARGET_SSE, 1370 TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387. 1371 (*float?i?f_i387): Rename to *float?i?f2_mixed. 1372 (*float?i?f2_1): Rename to *float?i?f2_i387. 1373 (*float?i?f2_i387_only): Rename to *float?i?f2_i387. 1374 (float?ixf2): Penalize integer register operand. 1375 13762004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1377 1378 PR c++/17242 1379 * configure.ac: Add GAS check for HP-UX .nsubspa comdat. 1380 * configure, config.in: Rebuilt. 1381 * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete 1382 defines. 1383 * config/pa/pa.c (pa_select_section): Allow uninitialized variables in 1384 one-only (comdat) subspaces. 1385 * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define. 1386 (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are 1387 true. 1388 (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common. 1389 13902004-12-14 Ian Lance Taylor <ian@wasabisystems.com> 1391 1392 * combine.c (combine_validate_cost): Consider cost of 1393 undobuf.other_insn rather than always allowing the recombination 1394 if it is set. 1395 13962004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1397 1398 * pa-host.c (MAP_FAILED): Define if not defined. 1399 (pa_gt_pch_use_address): Handle short reads. 1400 14012004-12-14 Richard Henderson <rth@redhat.com> 1402 1403 PR target/17990 1404 * config/i386/i386.c (x86_use_bt): New. 1405 (ix86_expand_unary_operator): Use MEM_P. 1406 (ix86_expand_fp_absneg_operator): New. 1407 * config/i386/i386.h (x86_use_bt): Declare. 1408 (TARGET_USE_BT): New. 1409 * config/i386/i386-protos.h: Update. 1410 * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator. 1411 (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise. 1412 (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs, 1413 negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if, 1414 abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs, 1415 absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove. 1416 (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, 1417 absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New. Merge all 1418 neg and abs splitters. Handle DFmode in general regs in 64-bit mode. 1419 (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math. 1420 (btsq, btrq, btcq): New. Add peepholes as well. 1421 (movv4sf_internal splitter): Postpone til after reload. 1422 (movv2di_internal splitter): Likewise. 1423 * config/i386/predicates.md (const_0_to_63_operand): New. 1424 (absneg_operator): New. 1425 14262004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1427 1428 * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P): 1429 Check register number and that reg_renumber is nonzero before using it. 1430 14312004-12-14 Steve Ellcey <sje@cup.hp.com> 1432 1433 * doc/invoke.texi (IA-64 options): Add existing options that 1434 weren't already listed. 1435 14362004-12-14 Jeff Law <law@redhat.com> 1437 1438 * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target 1439 partition to conflict_graph_merge_regs. 1440 14412004-12-14 Uttam Pawar <uttamp@us.ibm.com> 1442 Janis Johnson <janis187@us.ibm.com> 1443 1444 * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors 1445 for vector types with invalid component types. 1446 14472004-12-14 Jakub Jelinek <jakub@redhat.com> 1448 1449 PR middle-end/18951 1450 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2, 1451 expand_builtin_mathfn_3): Avoid using arguments passed to 1452 save_expr after that call. 1453 1454 * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend 1455 LOAD_EXTEND_OP is not defined. 1456 (fold): Likewise. If flag_syntax_only, don't depend on BITS_PER_WORD. 1457 14582004-12-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 1459 1460 * tree.def, doc/c-tree.texi: Correctly document restrictions on the 1461 shift width. 1462 14632004-12-14 Kazu Hirata <kazu@cs.umass.edu> 1464 1465 * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1. 1466 14672004-12-14 Richard Earnshaw <rearnsha@arm.com> 1468 1469 PR target/18973 1470 arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs) 1471 (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling 1472 property to flags. 1473 14742004-12-14 Diego Novillo <dnovillo@redhat.com> 1475 1476 * tree-gimple.c (get_base_address): Update documentation. 1477 14782004-12-13 Richard Henderson <rth@redhat.com> 1479 1480 PR middle-end/17930 1481 * passes.c (rest_of_clean_state): Fix computation of 1482 preferred_incoming_stack_boundary. 1483 14842004-12-13 Wolfgang Bangerth <bangerth@dealii.org> 1485 1486 * reload.h: Remove struct needs and its only use. 1487 14882004-12-13 Roger Sayle <roger@eyesopen.com> 1489 1490 PR rtl-optimization/18928 1491 * simplify_rtx.c (plus_minus_operand_p): New function to encode 1492 the test for suitable operands for calls to simplify_plus_minus. 1493 Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P. 1494 (simplify_binary_operation): Use plus_minus_operand_p. 1495 14962004-12-13 Alexandre Oliva <aoliva@redhat.com> 1497 1498 PR tree-opt/16951 1499 * tree-inline.c (setup_one_parameter): Don't directly map a 1500 parameter to the address of another variable of the same 1501 function. 1502 15032004-13-12 Steven Bosscher <stevenb@suse.de> 1504 1505 * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we 1506 can never create autoinc insns after reload. 1507 15082004-12-13 Jeff Law <law@redhat.com> 1509 Kazu Hirata <kazu@cs.umass.edu> 1510 1511 PR tree-optimization/18694 1512 * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a 1513 PHI argument is set from a PHI_RESULT in the same block and the 1514 PHI argument is not the same as the PHI result. 1515 15162004-12-13 David Edelsohn <edelsohn@gnu.org> 1517 1518 * xcoffout.c (xcoffout_declare_function): Always strip storage 1519 class encoding. 1520 15212004-12-13 Andrew Pinski <pinskia@physics.uc.edu> 1522 1523 PR target/18964 1524 * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic 1525 problem, adding a space at the end of the string before concatenation. 1526 15272004-12-13 Kazu Hirata <kazu@cs.umass.edu> 1528 1529 * c-common.c (fname_as_string): Free namep if we are returning 1530 cstr.text. 1531 1532 * tree-ssa-dom.c (record_edge_info): Fix memory leak. 1533 15342004-12-13 Andrew Pinski <pinskia@physics.uc.edu> 1535 1536 * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND. 1537 15382004-12-13 Kazu Hirata <kazu@cs.umass.edu> 1539 1540 * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by 1541 doing a pointer comparison. 1542 1543 * tree-ssa-dom.c (record_equivalences_from_phis): Add a 1544 comment. 1545 1546 * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment 1547 typos. 1548 15492004-12-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 1550 1551 * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to 1552 the list rather than replacing the existing value. 1553 15542004-12-13 Richard Henderson <rth@redhat.com> 1555 1556 * cfg.c (dump_flow_info): Don't dump pseudo info after reload. 1557 15582004-12-13 Richard Henderson <rth@redhat.com> 1559 1560 * Makefile.in (insn-preds.o): Depend on REGS_H. 1561 * genpreds.c (write_insn_preds_c): Include regs.h. 1562 * config/i386/predicates.md (index_register_operand): Use 1563 REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P. 1564 1565 * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'. 1566 * config/i386/i386.md (lea_general_1, lea_general_1_zext, 1567 lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext, 1568 adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea, 1569 ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea, 1570 ashlqi3_1_lea): Use 'l' for index register operand. 1571 (ashldi3_1_rex64 splitter): Use index_register_operand. 1572 (ashlsi3_1 splitter): Be more careful with modes. 1573 15742004-12-13 Danny Smith <dannysmith@users.sourceforge.net> 1575 1576 PR target/18459 1577 * defaults.h (TARGET_USE_JCR_SECTION): New macro. 1578 * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it. 1579 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override 1580 default. 1581 15822004-12-13 Uros Bizjak <uros@kss-loka.si> 1583 1584 PR target/14941 1585 PR target/18503 1586 * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd): 1587 Fix wrong vec_merge selector bitmask. 1588 15892004-12-12 Richard Henderson <rth@redhat.com> 1590 1591 PR rtl-opt/17186 1592 * reg-stack.c (move_nan_for_stack_reg): New. 1593 (subst_stack_regs_pat): Use it. 1594 (move_for_stack_reg): Handle source register not live with a nan. 1595 15962004-12-12 Richard Henderson <rth@redhat.com> 1597 1598 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch 1599 errors across operations. 1600 16012004-12-12 Di-an Jan <dianj@freeshell.org> 1602 1603 * doc/passes.texi (Pass Manager): Correct list of source files. 1604 16052004-12-12 Richard Henderson <rth@redhat.com> 1606 1607 * expr.c (emit_move_change_mode): New. 1608 (emit_move_via_alt_mode): Use it. 1609 16102004-12-12 Nathanael Nerode <neroden@gcc.gnu.org> 1611 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1612 1613 PR middle-end/17564 1614 * dojump.c (do_compare_and_jump): Only canonicalize function pointers 1615 in a comparison if both sides are function pointers. 1616 16172004-12-12 Richard Henderson <rth@redhat.com> 1618 1619 PR target/18932 1620 * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand 1621 and compare_operator to propagate the input CC mode to the output. 1622 * config/i386/predicates.md (compare_operator): New. 1623 16242004-12-12 Andrew Pinski <pinskia@physics.uc.edu> 1625 1626 PR tree-opt/18040 1627 * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR, 1628 CONVERT_EXPR cases. 1629 (handled_component_p): Likewise. 1630 16312004-12-12 Kazu Hirata <kazu@cs.umass.edu> 1632 1633 * reg-stack.c (convert_regs_2): Free stack. 1634 1635 * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix 1636 comment typos. 1637 16382004-12-12 Daniel Berlin <dberlin@dberlin.org> 1639 1640 * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null. 1641 * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real 1642 inner loop. 1643 16442004-12-12 Diego Novillo <dnovillo@redhat.com> 1645 1646 * tree-gimple.c (get_base_address): Update documentation. 1647 16482004-12-12 Kazu Hirata <kazu@cs.umass.edu> 1649 1650 * lcm.c (optimize_mode_switching): Free ptr even when mode_set 1651 is NULL_RTX. 1652 16532004-12-12 Roger Sayle <roger@eyesopen.com> 1654 1655 * reg-stack.c (change_stack): Avoid placing the new top-of-stack in 1656 its correct location during popping if we need to permute the stack 1657 afterwards. Attempt to preserve the original stack ordering. 1658 16592004-12-12 Kazu Hirata <kazu@cs.umass.edu> 1660 1661 * lcm.c (optimize_mode_switching): Free insert and delete in 1662 the "for" loop. 1663 16642004-12-11 David Edelsohn <edelsohn@gnu.org> 1665 Ulrich Weigand <uweigand@de.ibm.com> 1666 1667 PR target/18641 1668 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all 1669 constants into all register classes intersecting with FLOAT_REGS 1670 via memory. 1671 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same. 1672 * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when 1673 choosing register preferences. 1674 (movdi_internal64): Same. 1675 16762004-12-11 Kazu Hirata <kazu@cs.umass.edu> 1677 1678 * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX 1679 before we release an SSA_NAME. 1680 16812004-12-11 Roger Sayle <roger@eyesopen.com> 1682 1683 PR middle-end/18921 1684 * fold-const.c (fold_unwidened_comparison): Use omit_one_operand 1685 instead of constant_boolean_node as arg0 may have side-effects. 1686 16872004-12-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 1688 1689 * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH 1690 file to anonymous private map. 1691 16922004-12-10 Roger Sayle <roger@eyesopen.com> 1693 1694 PR target/18002 1695 PR middle-end/18424 1696 * dojump.c (do_jump): When attempting to reverse the effects of 1697 fold_single_bit_test, we need to STRIP_NOPS and narrowing type 1698 conversions, and handle BIT_XOR_EXPR that's used to invert the 1699 sense of the single bit test. 1700 17012004-12-10 Devang Patel <dpatel@apple.com> 1702 1703 PR 18732 1704 * gcc.c (main): Do not break out of loop when error is reported while 1705 processing one source file. 1706 17072004-12-10 Diego Novillo <dnovillo@redhat.com> 1708 1709 * tree-into-ssa.c (REWRITE_THIS_STMT): Define. 1710 (mark_def_sites): Clear REWRITE_THIS_STMT for statements that 1711 don't need any operands rewritten. 1712 (rewrite_stmt): Ignore statements that don't need to be 1713 rewritten. 1714 (rewrite_operand): Validate that an existing SSA_NAME is 1715 identical to the current reaching definition of the operand. 1716 17172004-12-10 Diego Novillo <dnovillo@redhat.com> 1718 1719 * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function. 1720 * tree-vectorizer.c (vectorizable_load): Call it. 1721 * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare. 1722 * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming. 1723 17242004-12-10 Kazu Hirata <kazu@cs.umass.edu> 1725 1726 * regmove.c (combine_stack_adjustments_for_block): Free 1727 memlist if it hasn't been freed. 1728 17292004-12-10 Ziemowit Laski <zlaski@apple.com> 1730 1731 * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC 1732 pointer field is set before dereferencing it. 1733 17342004-12-10 Andrew Pinski <pinskia@physics.uc.edu> 1735 1736 PR middle-end/18903 1737 * tree-cfg.c (remove_bb): Put the moved label at the beginning 1738 of the basic block. 1739 17402004-12-10 Kazu Hirata <kazu@cs.umass.edu> 1741 1742 * tree-data-ref.c (free_data_refs): Free each data_reference 1743 object. 1744 1745 * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a 1746 call to is_gimple_min_invariant if we know the result. 1747 17482004-12-10 Jeff Law <law@redhat.com> 1749 1750 * tree-ssa-alias.c (setup_pointers_and_addressables): Remove 1751 redundant test of v_ann->mem_tag_kind. 1752 1753 * tree-ssa-operands.c (get_indirect_ref_operands): Remove 1754 redundant conditional clearing opf_kill_def. 1755 17562004-12-10 Richard Sandiford <rsandifo@redhat.com> 1757 1758 * config/frv/frv-modes.def: Fix comment typos. 1759 (CC_NZ): Define new mode. 1760 * config/frv/frv-protos.h (frv_select_cc_mode): Declare. 1761 (condexec_intop_cmp_operator): Delete. 1762 * config/frv/frv.c (comparison_string): New function. 1763 (frv_print_operand): Use it to handle 'c' and 'C'. 1764 (relational_operator): Redefine in terms of integer_relational_operator 1765 and float_relational_operator. 1766 (signed_relational_operator, unsigned_relational_operator): Delete. 1767 (integer_relational_operator): New predicate, combining the above. 1768 Check the mode of the first operand but leave frv.md to check the rest. 1769 (float_relational_operator): Just check the mode of the first operand 1770 and leave frv.md to check the rest. 1771 (intop_compare_operator): Assume the result is compared with zero 1772 in mode CC_NZmode. Allow PLUS and MINUS. Leave frv.md to check 1773 the operand predicates. 1774 (condexec_intop_cmp_operator): Delete. 1775 (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests) 1776 (frv_hard_regno_mode_ok): Handle CC_NZmode. 1777 (frv_select_cc_mode): New function. 1778 * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode. 1779 (REVERSIBLE_CC_MODE): Include CC_NZmode. 1780 (PREDICATE_CODES): Replace entries for signed_relational_operand and 1781 unsigned_relational_operator with one for integer_relational_operator. 1782 Delete entry for condexec_intop_cmp_operator. 1783 * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz) 1784 (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns. 1785 (*combo_intop_compare2, *combo_intop_compare4): Delete. 1786 (*combo_intop_compare1): Change mode to CC_NZ. 1787 (*combo_intop_compare2): Likewise. Renamed from *combo_intop_compare3. 1788 (branch_{un,}signed_true, branch_{un,}signed_false) 1789 (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed) 1790 (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed) 1791 (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed) 1792 (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed) 1793 (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed) 1794 (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these 1795 pattern pairs. Use integer_relational_operator. Remove mode from 1796 icc_operand. 1797 17982004-12-10 Mark Dettinger <dettinge@de.ibm.com> 1799 1800 * config/s390/s390.c (struct processor_costs): New fields ml, 1801 sqdbr, sqebr. 1802 (s390_rtx_costs): Added the missing handling of multiply & add, 1803 square root, and umulsidi. 1804 18052004-12-10 Kazu Hirata <kazu@cs.umass.edu> 1806 1807 * expmed.c (synth_mult): Initialize new_limit.latency before 1808 making a recursive call. 1809 18102004-12-10 Nick Clifton <nickc@redhat.com> 1811 1812 * config/mn10300/mn10300.c (legitimate_address_p): Reject address 1813 whose index is itself the sum of two other parts. 1814 18152004-12-10 Alan Modra <amodra@bigpond.net.au> 1816 1817 * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink. 1818 18192004-12-10 Uros Bizjak <uros@kss-loka.si> 1820 1821 * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi". 1822 18232004-12-09 Richard Henderson <rth@redhat.com> 1824 1825 PR c/18282 1826 * attribs.c (decl_attributes): Use relayout_decl. 1827 * c-common.c (handle_mode_attribute): Copy all relevant type 1828 parameters from the new underlying integral type. 1829 18302004-12-09 Richard Henderson <rth@redhat.com> 1831 1832 * c-common.c (shorten_compare): Don't special-case min/maxval 1833 for C enumerations. 1834 18352004-12-09 Richard Sandiford <rsandifo@redhat.com> 1836 1837 * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether 1838 the request subreg is entirely contained in the requested component. 1839 (simplify_gen_subreg): Return null for CONCATs that are rejected 1840 by simplify_subreg. 1841 * expmed.c (store_bit_field): Create a temporary when changing the 1842 value to an integer mode. 1843 18442004-12-09 David Edelsohn <edelsohn@gnu.org> 1845 1846 * real.c (ibm_extended): Correct comment. 1847 18482004-12-09 Stan Shebs <shebs@apple.com> 1849 1850 * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros 1851 formerly in darwin-tramp.asm. 1852 * config/rs6000/darwin-tramp.asm: Include darwin-asm.h. 1853 * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros. 1854 * config/rs6000/t-darwin: Add dependencies. 1855 18562004-12-09 Richard Henderson <rth@redhat.com> 1857 1858 PR target/17025 1859 * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. 1860 (test_qi_1, andqi_2): Do not promote to simode. 1861 18622004-12-09 Andrew Pinski <pinskia@physics.uc.edu> 1863 1864 PR tree-opt/18904 1865 * tree-chrec.c (chrec_convert): Use fold_convert 1866 instead of convert. 1867 18682004-12-09 Matt Rice <ratmice@yahoo.com> 1869 1870 PR preprocessor/18102 1871 * c-incpath.c (remove_duplicates): Check for construct 1872 equality. 1873 18742004-12-09 Dorit Naishlos <dorit@il.ibm.com> 1875 1876 * genopinit.c (vec_realign_store_optab): Initialization removed. 1877 * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed. 1878 * optabs.h (optab_index): OTI_vec_realign_store Removed. 1879 (vec_realign_store_optab): Removed. 1880 * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed. 1881 * target.h (builtin_mask_for_store): Removed. 1882 * tree.def (REALIGN_STORE_EXPR): Removed. 1883 * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed. 1884 (altivec_builtin_mask_for_store): Removed. 1885 (altivec_init_builtins): Removed initialization of 1886 altivec_builtin_mask_for_store. 1887 1888 * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. 1889 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New. 1890 18912004-12-09 Nathan Sidwell <nathan@codesourcery.com> 1892 1893 * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs. 1894 1895 * tree.def (SET_TYPE): Remove. 1896 (CONSTRUCTOR): Update description. 1897 * builtins.c (type_to_class) Remove SET_TYPE case. 1898 * dbxout.c (dbxout_type): Likewise. 1899 * dwarf2out.c (is_base_type): Likewise. 1900 (gen_set_type_die): Remove. 1901 (gen_type_die): Remove SET_TYPE case. 1902 * expr.c (count_type_elements): Likewise. 1903 (mostly_zeroes_p): Likewise. 1904 (store_constructor): Likewise. 1905 * print_tree.c (print_node): Likewise. 1906 * stor-layout.c (layout_type): Likewise. 1907 * tree-browser.c (browse_tree): Likewise. 1908 * tree-inline.c (remap_type): Likewise. 1909 * tree-pretty-print.c (dump_generic_node): Likewise. 1910 * tree.c (type_contains_plaeholder_1, type_hash_eq, 1911 variably_modified_type_p, initializer_zerop): Likewise. 1912 * tree.h (SET_OR_ARRAY_CHECK): Remove. 1913 (AGGREGATE_TYPE_P): Remove SET_TYPE check. 1914 (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK. 1915 * typeclass.h (enum type_class): Remove set_type_class. 1916 * varasm.c (const_hash_1): Remove SET_TYPE case. 1917 (compare_constant, copy_constant, output_constant): Likewise. 1918 * config/i386/i386.c (classify_argument): Likewise. 1919 * config/ia64/ia64.c (hfa_element_mode): Likewise. 1920 * config/sparc/sparc.c (sparc_type_code): Likewise. 1921 1922 PR c++/16681 1923 * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case. 1924 19252004-12-08 Richard Henderson <rth@redhat.com> 1926 1927 * config/i386/i386.md: Use FLAGS_REG everywhere. 1928 19292004-12-08 Eric Christopher <echristo@redhat.com> 1930 1931 * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite 1932 to avoid call to default function. 1933 19342004-12-08 Zack Weinberg <zack@codesourcery.com> 1935 1936 PR 17982 1937 * varasm.c (pending_assemble_externals): New static. 1938 (assemble_external_real): Meat of assemble_external split out 1939 to this new function. 1940 (process_pending_assemble_externals): New function. 1941 (assemble_external): Use gcc_assert. If flag_unit_at_a_time 1942 is true and the basic test passes, merely cons the decl onto 1943 the pending list to be handled later. 1944 * tree.h: Declare process_pending_assemble_externals. 1945 * cgraphunit.c (cgraph_optimize): Call it. 1946 1947 * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL. 1948 19492004-12-08 Kazu Hirata <kazu@cs.umass.edu> 1950 1951 * cfgloopmanip.c (create_preheader): Speed up by "unrolling" 1952 and simplifying FOR_EACH_EDGE. 1953 19542004-12-08 Richard Sandiford <rsandifo@redhat.com> 1955 1956 * config/frv/frv.c (frv_sort_insn_group): Always initialize 1957 packet_group->nop. 1958 19592004-12-08 Nathan Sidwell <nathan@codesourcery.com> 1960 1961 PR c++/18672 1962 * gimplify.c (canonicalize_addr_expr): Cope with array of 1963 incomplete type. 1964 (gimplify_conversion): Remove redundant checks. 1965 1966 * doc/trouble.texi (Non-bugs): Clarify empty loop removal. 1967 19682004-12-08 Uros Bizjak <uros@kss-loka.si> 1969 1970 * config/i386/i386.c (output_387_binary_op, 1971 ix86_prepare_fp_compare_args): Fix is_sse condition. 1972 19732004-12-07 Uros Bizjak <uros@kss-loka.si> 1974 1975 * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx 1976 argument. 1977 1978 * config/i386/i386.c (output_fp_compare): Fix is_sse condition. 1979 Use EFLAGS_P only when fcomi insn should be used. Fix handling 1980 of eflags_p variable. Change alt table accordingly. For non-fcomi 1981 compare insn always use trailing fnstsw insn. Fix intmode 1982 calculation for ficom insn. 1983 (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call 1984 ix86_free_from_memory when "pushed" is specified. 1985 (ix86_expand_branch): Change call to ix86_split_fp_branch. 1986 1987 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf): 1988 Change eflags_p parameter in call to output_fp_compare. 1989 (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove. 1990 (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to 1991 *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p 1992 parameter in call to output_fp_compare. 1993 (*cmpfp_2_u): Remove. 1994 (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter 1995 in call to output_fp_compare. 1996 (*ficom_1): Remove insn definition and corresponding define_split. 1997 (*cmpfp_si): New insn definition. 1998 (*fp_jcc_8): New insn definition. Add new splitters for 1999 "memory_operand" and "register_operand". 2000 (define_split): Add new parameter in call to ix86_split_fp_branch. 2001 2002 config/i386/predicates.md (float_operator): New predicate. 2003 20042004-12-08 Kazu Hirata <kazu@cs.umass.edu> 2005 2006 * c-common.c (verify_tree): Don't check code length if we know 2007 we are handling tcc_unary. 2008 * print_tree.c (print_node): Remove code to handle RTL 2009 appearing as a part of a tree node. 2010 * tree-gimple.c (recalculate_side_effects): Rename fro as len. 2011 * tree.c (build1_stat): Don't check TREE_CODE_LENGTH. 2012 (PROCESS_ARG): Don't refer to fro. 2013 (build2_stat, build3_stat, build4_stat): Don't compute fro. 2014 20152004-12-07 Roger Sayle <roger@eyesopen.com> 2016 2017 PR middle-end/18293 2018 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier. 2019 (expand_mult): Special case powers of two to avoid synth_mult. 2020 * loop.c (product_cheap_p): Handle case where expand_mult does 2021 require/generate any instructions (i.e. multiplication by zero). 2022 20232004-12-07 Richard Henderson <rth@redhat.com> 2024 2025 * tree-pretty-print.c (dump_array_domain): Split out from 2026 dump_generic_node; fix off-by-one error on zero-based array bounds. 2027 (dump_generic_node): Use it. 2028 (print_declaration): Likewise. 2029 20302004-12-08 Richard Guenther <richard.guenther@uni-tuebingen.de> 2031 2032 * doc/invoke.texi: Adjust default values for 2033 large-function-growth and inline-unit-growth to match 2034 params.def. Clarify used algorithm. 2035 20362004-12-07 David Mosberger <davidm@hpl.hp.com> 2037 2038 PR target/18443 2039 * config/ia64/ia64.c (ia64_assemble_integer): Add support for 2040 emitting unaligned pointer-sized integers. 2041 20422004-12-07 Steven Bosscher <stevenb@suse.de> 2043 2044 PR c/18867 2045 * c-typeck.c (c_start_case): Set orig_type to error_mark_node 2046 when the type of the controlling expression is not a valid type. 2047 20482004-12-07 Steven Bosscher <stevenb@suse.de> 2049 2050 PR tree-optimization/17340 2051 * tree-ssa-pre.c (compute_antic): Fix comment. 2052 (compute_avail): Do not recurse, instead do a DFS using a stack 2053 and a loop. 2054 (execute_pre): Adjust. 2055 20562004-12-07 Ziemowit Laski <zlaski@apple.com> 2057 2058 * c-tree.h (struct lang_type): Rename 'objc_protocols' field 2059 to 'objc_info'. 2060 20612004-12-07 Eric Christopher <echristo@redhat.com> 2062 2063 PR target/16317 2064 * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define. 2065 20662004-12-07 Eric Christopher <echristo@redhat.com> 2067 2068 * config/mips/mips-protos.h (mips_valid_pointer_mode): Move 2069 prototype... 2070 * config/mips/mips.c: ... here. Make static. 2071 20722004-12-07 Eric Christopher <echristo@redhat.com> 2073 2074 PR target/18442 2075 * config/mips/mips.c (mips_vector_mode_supported_p): New function. 2076 (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above. 2077 20782004-12-07 Kazu Hirata <kazu@cs.umass.edu> 2079 2080 * c-common.c, expr.c, fold-const.c, print-tree.c, 2081 tree-gimple.c, tree-inline.c, tree-pretty-print.c, 2082 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of 2083 first_rtl_op with TREE_CODE_LENGTH. 2084 * tree.c (first_rtl_op): Remove. 2085 Replace uses of first_rtl_op with TREE_CODE_LENGTH. 2086 * tree.h: Remove the prototype for first_rtl_op. 2087 20882004-12-07 David Edelsohn <edelsohn@gnu.org> 2089 2090 * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK): 2091 Revert 2004-12-01 change. 2092 20932004-12-06 Ziemowit Laski <zlaski@apple.com> 2094 2095 * c-tree.h (struct lang_type): Add 'objc_protocols' field. 2096 20972004-12-06 DJ Delorie <dj@redhat.com> 2098 2099 * reload.c (find_valid_class): Fix logic to test inner mode as well. 2100 (push_reload): Pass inner mode. 2101 21022004-12-06 Eric Christopher <echristo@redhat.com> 2103 2104 * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document. 2105 21062004-12-06 Aldy Hernandez <aldyh@redhat.com> 2107 2108 * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1. 2109 21102004-12-06 Zdenek Dvorak <dvorakz@suse.cz> 2111 Kazu Hirata <kazu@cs.umass.edu> 2112 2113 PR tree-optimization/18601 2114 * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed. 2115 (tree_forwarder_block_p): Do not consider blocks that are its own 2116 successors forwarders. 2117 (cleanup_forwarder_blocks, remove_forwarder_block): New functions. 2118 (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of 2119 thread_jumps. 2120 * tree-flow.h (bb_ann_d): Remove forwardable. 2121 21222004-12-06 Kazu Hirata <kazu@cs.umass.edu> 2123 2124 * expr.c (expand_expr_real_1): Remove an "if" whose condition 2125 is always false. 2126 21272004-12-06 Roger Sayle <roger@eyesopen.com> 2128 2129 * c-gimplify.c (gimplify_c_loop): Improve initial implementations 2130 for loops whose conditions are known at compile-time. 2131 * gimplify.c (append_to_statement_list_1): Remove side_effects 2132 parameter, this function should never be called if its false. 2133 (append_to_statement_list): Only call append_to_statement_list_1 2134 if t is non-NULL tree with side-effects. 2135 (append_to_statement_list_force): Likewise, if t is not NULL. 2136 21372004-12-06 J"orn Rennecke <joern.rennecke@st.com> 2138 2139 * bt-load.c (btr_def_s): New member own_end; 2140 (add_btr_to_live_range): Add second parameter. Changed caller. 2141 (clear_btr_from_live_range): Clear btrs_live_at_end bit 2142 for the register its definition basic block if own_end is set. 2143 (augment_live_range): Also take btrs_live_at_end into account. 2144 (combine_btr_defs): Don't bother with 2145 other_def->other_btr_uses_after_use if it pertains to a different 2146 register. 2147 (move_btr_def): Set def->other_btr_uses_before_def after 2148 calling combine_btr_defs." 2149 2150 * bt-load.c (augment_live_range): New argument full_range. 2151 Changed all callers. 2152 2153 * bt-load.c (move_tr_def): Set other_tr_uses_before_def 2154 taking new btr assignment into account. 2155 21562004-12-05 Daniel Berlin <dberlin@dberlin.org> 2157 2158 * tree-ssa-alias.c (create_global_var): Use void_type_node, 2159 not size_type_node. 2160 21612004-12-05 Kazu Hirata <kazu@cs.umass.edu> 2162 2163 * expr.c (expand_expr_real_1): Abort on COND_EXPR of 2164 VOID_TYPE. 2165 21662004-12-05 Richard Henderson <rth@redhat.com> 2167 2168 PR target/18841 2169 * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New. 2170 (builtin_setjmp_receiver_er_sl_1): Use it. 2171 (builtin_setjmp_receiver_er_1): Likewise. 2172 (builtin_setjmp_receiver_er, exception_receiver_er): Remove. 2173 (builtin_setjmp_receiver): Don't split for explicit relocs until 2174 after reload. 2175 (exception_receiver): Likewise. 2176 21772004-12-05 Andrew Pinski <pinskia@physics.uc.edu> 2178 2179 * mklibgcc.in (vis_hide): Add the prototype for the test. 2180 21812004-12-05 Roger Sayle <roger@eyesopen.com> 2182 2183 * c-typeck.c (c_finish_loop): Improve initial implementations 2184 for loops whose conditions are known at compile-time. 2185 21862004-12-05 Kazu Hirata <kazu@cs.umass.edu> 2187 2188 * builtins.c: Fix comment typos. 2189 21902004-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2191 2192 PR middle-end/18730 2193 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When 2194 the first/last insn is a sequence, return the first/last insn of the 2195 sequence. 2196 2197 PR bootstrap/18804 2198 * mklibgcc.in (vis_hide): Use implementation instead of declaration 2199 for test function. 2200 22012004-12-04 Richard Henderson <rth@redhat.com> 2202 2203 * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to 2204 use ofs in BWX two byte special case. 2205 (alpha_expand_unaligned_store): Likewise. 2206 22072004-12-04 Kazu Hirata <kazu@cs.umass.edu> 2208 2209 * gcse.c (gcse_main): Add a comment. 2210 22112004-12-04 Andrew Pinski <pinskia@physics.uc.edu> 2212 2213 PR middle-end/17909 2214 * builtins.c (fold_builtin_next_arg): Export and return true 2215 when there is a warning or an error. 2216 (expand_builtin_va_start): When fold_builtin_next_arg returns true, 2217 return const0_rtx. 2218 (expand_builtin): Likewise. 2219 * gimplify.c (gimplify_call_expr): Error out if there is not 2220 enough arguments to va_start. Call fold_builtin_next_arg also 2221 on the second argument. 2222 * tree.h (fold_builtin_next_arg): Prototype. 2223 22242004-12-04 Alan Modra <amodra@bigpond.net.au> 2225 2226 * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/. 2227 Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK, 2228 SHLIB_INSTALL, and SHLIBUNWIND_INSTALL. 2229 * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of 2230 shlib_dir and shlib_so_name. 2231 * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise. 2232 * config/t-libunwind-elf (SHLIB_NAME): Likewise. 2233 * config/t-slibgcc-darwin (SHLIB_NAME): Likewise. 2234 * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise. 2235 * config/t-slibgcc-sld (SHLIB_NAME): Likewise. 2236 (SHLIB_LINK): Don't use shlib_dir when creating symlink. 2237 22382004-12-03 Roger Sayle <roger@eyesopen.com> 2239 2240 * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook. 2241 22422004-12-03 Richard Henderson <rth@redhat.com> 2243 2244 * alias.c (component_uses_parent_alias_set): Rename from 2245 can_address_p. Return bool. Reverse the sense of the result. 2246 Reinstate the check for alias set zero. 2247 (get_alias_set): Update to match. 2248 * alias.h (component_uses_parent_alias_set): Likewise. 2249 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. 2250 * expr.c (expand_assignment): Likewise. 2251 * expr.h: Remove commented out prototypes that were moved to alias.h. 2252 22532004-12-03 Richard Henderson <rth@redhat.com> 2254 2255 * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New. 2256 (TARGET_CANNOT_FORCE_CONST_MEM): New. 2257 22582004-12-04 Alan Modra <amodra@bigpond.net.au> 2259 2260 PR middle end/18718 2261 * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are 2262 in pairs. 2263 * sched-ebb.c (schedule_ebb): Likewise. 2264 22652004-12-03 Andreas Schwab <schwab@suse.de> 2266 2267 * Makefile.in (HOSTHOOKS_DEF_H): Define. 2268 (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H). 2269 (host-default.o): Likewise. 2270 22712004-12-03 Eric Christopher <echristo@redhat.com> 2272 2273 * config/stormy16/stormy16.md (pushqi, popqi, pushhi, 2274 pophi): Add number of arguments to name so that the 2275 pattern is recognized as a named pattern. 2276 22772004-12-03 Janis Johnson <janis187@us.ibm.com> 2278 2279 * doc/extend.texi (AltiVec Builtins): Fix info about signedness. 2280 22812004-12-03 Andreas Tobler <a.tobler@schweiz.ch> 2282 2283 * config/rs6000/rs6000.c (rs6000_override_options): Protect 2284 darwin_one_byte_bool with #if. 2285 22862004-12-03 Paolo Bonzini <bonzini@gnu.org> 2287 2288 * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN. 2289 22902004-12-03 H.J. Lu <hongjiu.lu@intel.com> 2291 2292 * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART. 2293 22942004-12-03 Richard Sandiford <rsandifo@redhat.com> 2295 2296 * configure.ac: Move TL_AC_GCC_VERSION into initialization section. 2297 Set libstdcxx_incdir directly. 2298 * configure: Regenerate. 2299 23002004-12-03 Kazu Hirata <kazu@cs.umass.edu> 2301 2302 * tree-ssa-dom.c (record_equivalences_from_phis): Remove an 2303 "if" whose condition is always true. 2304 2305 * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of 2306 INSN_P. 2307 23082004-12-02 Stan Shebs <shebs@apple.com> 2309 2310 * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit 2311 Darwin default to one-byte bools. 2312 23132004-12-02 Richard Henderson <rth@redhat.com> 2314 2315 PR 18774 2316 * simplify-rtx.c (simplify_immed_subreg): Fail complex modes. 2317 23182004-12-03 Ben Elliston <bje@au.ibm.com> 2319 2320 * doc/cfg.texi (Edges): Update. Document the edge_iterator data 2321 type and its methods. 2322 23232004-12-02 Richard Henderson <rth@redhat.com> 2324 2325 * expr.c (write_complex_part): Use simplify_gen_subreg when the 2326 submode is at least as large as a word. 2327 (read_complex_part): Likewise. 2328 23292004-12-02 H.J. Lu <hongjiu.lu@intel.com> 2330 2331 PR bootstrap/18532 2332 * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for 2333 multilib at a time. Don't build the default set. Don't add 2334 EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove 2335 filter for shared libunwind and libgcc. 2336 23372004-12-02 Roger Sayle <roger@eyesopen.com> 2338 2339 PR target/18759 2340 * config/i386/i386.c (override_options): If -fomit-frame-pointer has 2341 already been specified, ignore the -momit-leaf-frame-pointer option. 2342 23432004-12-02 H.J. Lu <hongjiu.lu@intel.com> 2344 2345 * varasm.c (make_decl_rtl): Add the missing `;'. 2346 23472004-12-02 Andrew Pinski <pinskia@physics.uc.edu> 2348 2349 * tree.c (is_attribute_p): Split out to .. 2350 (is_attribute_with_length_p): Here. Use IDENTIFIER_LENGTH instead 2351 of strlen and compare the string lengths before calling strcmp. 2352 (lookup_attribute): Call is_attribute_with_length_p instead of 2353 is_attribute_p. 2354 23552004-12-02 Devang Patel <dpatel@apple.com> 2356 2357 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused. 2358 * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused. 2359 * config/i386/darwin.h (CC1_SPEC): Same. 2360 23612004-12-02 Richard Henderson <rth@redhat.com> 2362 2363 * optabs.c (lowpart_subreg_maybe_copy): New. 2364 (expand_unop, expand_abs_nojump): Use it. 2365 23662004-12-02 J"orn Rennecke <joern.rennecke@st.com> 2367 2368 * sh.md (extv, extzv): Add pattern predicate. 2369 23702004-12-02 Kazu Hirata <kazu@cs.umass.edu> 2371 2372 * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF 2373 is not null. 2374 2375 * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF 2376 is not null. 2377 2378 * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST. 2379 23802004-12-02 Jeff Law <law@redhat.com> 2381 2382 * tree-eh.c: Revert yesterday's change. 2383 23842004-12-02 Andrew Pinski <pinskia@physics.uc.edu> 2385 2386 * varasm.c (decode_reg_name): Revert change to check for zero 2387 length strings. 2388 (make_decl_rtl): Make sure that we call decode_reg_name only 2389 when needed. 2390 23912004-12-02 Dorit Naishlos <dorit@il.ibm.com> 2392 2393 PR tree-opt/18716 2394 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set 2395 then and else labels. 2396 23972004-12-02 Andreas Schwab <schwab@suse.de> 2398 2399 * Makefile.in (WERROR_FLAGS): Renamed from WERROR. 2400 (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR). 2401 (STAGE2_FLAGS_TO_PASS): Likewise. 2402 2403 * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR. 2404 24052004-12-02 Richard Sandiford <rsandifo@redhat.com> 2406 2407 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version. Remove 2408 now-redundant AC_SUBSTs. 2409 * aclocal.m4: Include ../config/gcc-version.m4. 2410 * configure: Regenerate. 2411 24122004-12-02 Alan Modra <amodra@bigpond.net.au> 2413 2414 * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the 2415 #ifdef RELOCATABLE_NEEDS_FIXUP. 2416 24172004-12-01 Roger Sayle <roger@eyesopen.com> 2418 2419 PR target/9908 2420 * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct 2421 Intel assembler syntax by using %A1 instead of %*%1. 2422 24232004-12-01 Richard Henderson <rth@redhat.com> 2424 2425 * expr.c (expand_assignment): Handle CONCAT both as a final 2426 destination and as a middle point. 2427 24282004-12-01 Jeff Law <law@redhat.com> 2429 2430 * tree-eh.c (save_eptr, save_filt): Now file scoped statics. 2431 (honor_protect_cleanup_actions): Only create save_eptr and 2432 save_filt if they do not already exist. 2433 (lower_eh_constructs): Wipe all knowledge of save_eptr and 2434 save_filt before returning. 2435 24362004-12-02 Kazu Hirata <kazu@cs.umass.edu> 2437 2438 * tree-phinodes.c (remove_phi_arg_num): Fix a comment. 2439 24402004-12-02 Alan Modra <amodra@bigpond.net.au> 2441 2442 PR target/16952 2443 * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace 2444 #ifdef RELOCATABLE_NEEDS_FIXUP with if. 2445 * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms 2446 of target_flags_explicit. 2447 * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch 2448 case. Define as 0 for non-biarch. 2449 24502004-12-01 Zack Weinberg <zack@codesourcery.com> 2451 2452 * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK): 2453 Change temporary file tag from a prefix to an infix. 2454 24552004-12-02 Andreas Schwab <schwab@suse.de> 2456 2457 * gcc.c (struct option_map): Add entry for "--pass-exit-codes". 2458 24592004-12-01 Andrew Pinski <pinskia@physics.uc.edu> 2460 2461 PR tree-opt/18763 2462 PR tree-opt/18746 2463 * tree-ssa-alias.c (init_alias_info): Get statement operands for all 2464 the statements if aliases_computed_p is true. 2465 24662004-12-01 Mark Mitchell <mark@codesourcery.com> 2467 2468 * Makefile.in (WERROR): New variable. 2469 (STRICT2_WARN): Use it. 2470 (STAGE2_FLAGS_TO_PASS): Likewise. 2471 * config/i386/x-mingw32 (WERROR): Add -Wno-format. 2472 24732004-12-01 Richard Henderson <rth@redhat.com> 2474 2475 * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR 2476 offsetting. 2477 24782004-12-01 Diego Novillo <dnovillo@redhat.com> 2479 2480 PR tree-optimization/18291 2481 * tree-ssa-copy.c (merge_alias_info): Fix merging of 2482 flow-sensitive alias information. If the new pointer has no 2483 name tag, copy it from the original pointer. Otherwise, make 2484 sure that the pointed-to sets have a common intersection. 2485 24862004-12-01 Richard Henderson <rth@redhat.com> 2487 2488 PR rtl-opt/15289 2489 * emit-rtl.c (gen_complex_constant_part): Remove. 2490 (gen_realpart, gen_imagpart): Remove. 2491 * rtl.h (gen_realpart, gen_imagpart): Remove. 2492 * expmed.c (extract_bit_field): Remove CONCAT hack catering to 2493 gen_realpart/gen_imagpart. 2494 * expr.c (write_complex_part, read_complex_part): New. 2495 (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push, 2496 emit_move_complex_push, emit_move_complex, emit_move_ccmode, 2497 emit_move_multi_word): Split out from ... 2498 (emit_move_insn_1): ... here. 2499 (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part. 2500 <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part. 2501 * function.c (assign_parm_setup_reg): Hard-code transformations 2502 instead of using gen_realpart/gen_imagpart. 2503 2504 * expr.c (optimize_bitfield_assignment_op): Split out from ... 2505 (expand_assignment): ... here. Use handled_component_p to gate 2506 get_inner_reference code. Simplify MEM handling. Special case 2507 CONCAT destinations. 2508 2509 * expmed.c (store_bit_field): Use simplify_gen_subreg instead 2510 of gen_rtx_SUBREG directly. 2511 25122004-12-01 David Edelsohn <edelsohn@gnu.org> 2513 Nathan Sidwell <nathan@codesourcery.com> 2514 2515 PR target/17107 2516 * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER. 2517 (sgt): Same. 2518 (sle): Same. 2519 (slt): Same. 2520 25212004-12-01 Nathan Sidwell <nathan@codesourcery.com> 2522 2523 PR middle-end/18667 2524 * params.c (set_param_value): Add range check. 2525 * params.def: Add min and max values. Reformat long strings. 2526 * params.h (struct param_info): Add min and max fields. 2527 (enum compiler_param): Adjust DEFPARAM. 2528 * toplev.c (lang_independent_params): Likewise. 2529 25302004-12-01 Alan Modra <amodra@bigpond.net.au> 2531 2532 PR target/12817 2533 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. 2534 25352004-12-01 Joseph S. Myers <joseph@codesourcery.com> 2536 2537 * doc/standards.texi: Update for C99 TC2. 2538 25392004-11-30 Jeff Law <law@redhat.com> 2540 2541 * sbitmap.c (sbitmap_any_common_bits): New function. 2542 * sbitmap.h (sbitmap_any_common_bits): Prototype. 2543 * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits 2544 No longer allocate/free "psp", "pss" sbitmaps. 2545 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for 2546 the "res" sbitmap. 2547 (group_aliases): Similarly. 2548 25492004-11-30 Nathan Sidwell <nathan@codesourcery.com> 2550 2551 * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid 2552 uninitialized variable. 2553 25542004-11-30 Eric Christopher <echristo@redhat.com> 2555 2556 * fold-const.c (fold_widened_comparison): Make sure that we're 2557 passing an INTEGER_TYPE to int_fits_type_p. 2558 (fold): Clean up comment. 2559 25602004-11-30 Zack Weinberg <zack@codesourcery.com> 2561 2562 * mklibgcc.in: Correct calculation of libgcc_s_soname and 2563 libunwind_soname. Use $out, not $outS, in commands for 2564 no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above 2565 library build rules, make $libunwind_so and $libgcc_s_so 2566 depend on them in the normal fashion, and filter those objects 2567 out of @shlib_objs@. 2568 25692004-11-30 Janis Johnson <janis187@us.ibm.com> 2570 2571 * config/rs6000/altivec.h (vec_step_help): Support const vector types. 2572 25732004-11-30 Andrew Pinski <pinskia@physics.uc.edu> 2574 2575 PR tree-opt/18298 2576 * tree-optimize.c (init_tree_optimization_passes): Add a may_alias 2577 pass right after fold builtins. 2578 25792004-11-30 Andreas Krebbel <krebbel1@de.ibm.com> 2580 2581 * config/s390/s390-modes.def: Added cc modes documentation. 2582 * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode, 2583 s390_expand_addcc): Added cc mode comments. 2584 * config/s390/s390.md: Removed old cc mode documentation. 2585 25862004-11-30 Mark Dettinger <dettinge@de.ibm.com> 2587 2588 * config/s390/s390.c (struct processor_costs): New data type. 2589 (s390_cost, z900_cost, z990_cost): New global variables. 2590 (override_options): Initialize s390_cost. 2591 (s390_rtx_costs): Reimplement. 2592 25932004-11-29 Daniel Berlin <dberlin@dberlin.org> 2594 2595 Fix PR tree-optimization/18673 2596 2597 * tree-ssa-pre.c: Remove splay-tree.h include. 2598 (bitmap_value_replace_in_set): Fix to add if it does not exist. 2599 (find_or_generate_expression): Remove now-wrong condition. 2600 (create_expression_by_pieces): Fix condition and comment reason 2601 for it. 2602 (insert_aux): Fix condition and comment reasons for it. 2603 Factor insertion code from here. 2604 (insert_into_preds_of_block): To here. Fix conditions in factored 2605 function and comment reasons for them. 2606 26072004-11-30 Ira Rosen <irar@il.ibm.com> 2608 2609 PR tree-opt/18607 2610 * tree-vectorizer.c (vect_analyze_data_refs): Use temporary 2611 variable for data_reference when looking for memtag. 2612 26132004-11-30 Jakub Jelinek <jakub@redhat.com> 2614 2615 * c-opts.c (check_deps_environment_vars): If spec != NULL, set 2616 deps_seen. 2617 26182004-11-30 Dorit Naishlos <dorit@il.ibm.com> 2619 2620 * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use 2621 tree_low_cst instead of TREE_INT_CST_LOW. 2622 26232004-11-30 Dorit Naishlos <dorit@il.ibm.com> 2624 2625 PR target/18173 2626 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for 2627 decls that are assembled before vectorization takes place. 2628 (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1. 2629 26302004-11-30 Ulrich Weigand <uweigand@de.ibm.com> 2631 2632 * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks 2633 if local_alloc modified jumps. 2634 26352004-11-30 Alan Modra <amodra@bigpond.net.au> 2636 2637 * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL 2638 on TLS symbols. 2639 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS 2640 check. 2641 26422004-11-30 Zack Weinberg <zack@codesourcery.com> 2643 2644 * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h 2645 * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS. 2646 2647 * mklibgcc.in: Drastic restructure for comprehensibility. 2648 Remove the old hidden-directive hack. 2649 Eliminate support for .txt files in LIB2ADD etc (never used). 2650 Eliminate support for assembly source files in LIB2ADDEH* and 2651 LIBUNWIND (also never used). 2652 Build up dependency lists for libraries incrementally. 2653 If we have SHLIB_LINK, compile each file twice, once for the 2654 static and once for the shared library; also probe for 2655 -fvisibility=hidden in the generated libgcc.mk. If found, 2656 pass that and -DHIDE_EXPORTS to the compilation of every C 2657 source file going into the static library. If found, generate 2658 hidden-directive lists for every assembly source file going 2659 into the static library, but incorporate them with -include 2660 instead of ld -r. 2661 Write comments into generated libgcc.mk to facilitate debugging. 2662 * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc. 2663 * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP. 2664 2665 * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in 2666 -Zdynamiclib case. 2667 26682004-11-29 Richard Henderson <rth@redhat.com> 2669 2670 * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR. 2671 (handled_component_p): Likewise. 2672 * alias.c (can_address_p): Reformat and simplify. Handle 2673 REAL/IMAGPART_EXPR. Do not disable addressability based on 2674 alias set zero. 2675 * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate 2676 check for REAL/IMAGPART_EXPR. 2677 * gimplify.c (gimplify_compound_lval): Likewise. 2678 * tree-cfg.c (verify_expr): Likewise. 2679 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. 2680 * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise. 2681 (convert_local_reference): Likewise. 2682 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise. 2683 26842004-11-30 Alan Modra <amodra@bigpond.net.au> 2685 2686 * expr.c (emit_group_load_1): Don't die on const_int orig_src. 2687 26882004-11-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2689 2690 PR pch/14940 2691 * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files. 2692 * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj 2693 and host_xmake_file using new host configuration files. 2694 26952004-11-29 Roger Sayle <roger@eyesopen.com> 2696 2697 * reg-stack.c (change_stack): Improve algorithm used to pop regs 2698 off the stack to maximize ffreep usage and reduce fxch count. 2699 27002004-11-30 James A. Morrison <phython@gcc.gnu.org> 2701 2702 PR middle-end/18596 2703 * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node 2704 on errors. 2705 27062004-11-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2707 2708 * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle 2709 REDUCE_BIT_FIELD by applying it to result, not input, of conversion. 2710 27112004-11-30 Ben Elliston <bje@au.ibm.com> 2712 2713 * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H). 2714 27152004-11-29 Andrew Pinski <pinskia@physics.uc.edu> 2716 2717 PR c/18479 2718 * c-common.c (handle_visibility_attribute): When the type decl 2719 is really a identifier node, warn about being ignored and return. 2720 27212004-11-29 Richard Henderson <rth@redhat.com> 2722 2723 * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node. 2724 27252004-11-29 Steven Bosscher <stevenb@suse.de> 2726 2727 * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): 2728 Remove CASE_DROPS_THROUGH checks, it is never defined. 2729 * cfglyout.c (fixup_reorder_chain): Likewise. 2730 * cfgrtl.c (rtl_verify_flow_info): Likewise. 2731 * stmt.c (expand_case): Likewise. 2732 * cfgbuild.c (make_edges): Likewise. Also remove force_fallthru, 2733 it is now always 0. 2734 * system.h (CASE_DROPS_THROUGH): Poison. 2735 * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH. 2736 * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH. 2737 2738 * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH. 2739 27402004-11-29 Andrew Pinski <pinskia@physics.uc.edu> 2741 2742 PR middle-end/18725 2743 * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be 2744 shared always. 2745 27462004-11-29 Diego Novillo <dnovillo@redhat.com> 2747 2748 PR tree-optimization/18712 2749 * tree-into-ssa.c (insert_phi_nodes_for): Pass argument 2750 WORK_STACK by reference. 2751 Call VEC_safe_push instead of VEC_quick_push. 2752 Update all users. 2753 27542004-11-29 Daniel Jacobowitz <dan@codesourcery.com> 2755 2756 PR c/7544 2757 * Makefile.in (c-lang.o): Update dependencies. 2758 * c-lang.c: Include "c-pragma.h". 2759 (finish_file): Call maybe_apply_pending_pragma_weaks. 2760 * c-pragma.c (maybe_apply_pending_pragma_weaks): New function. 2761 * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype. 2762 27632004-11-29 Richard Henderson <rth@redhat.com> 2764 2765 PR target/17224 2766 * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets 2767 outside the referenced object. 2768 27692004-11-29 Kazu Hirata <kazu@cs.umass.edu> 2770 2771 * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use 2772 EDGE_PRED instead of PHI_ARG_EDGE. 2773 * tree-ssa-live.c: Likewise. 2774 * tree-ssa-loop-manip.c: Likewise. 2775 * tree-ssa.c: Likewise. 2776 2777 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by 2778 simplifying edge manipulation. 2779 2780 * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using 2781 EDGE_COUNT. 2782 2783 * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge 2784 only when needed. 2785 2786 * cfg.c (flow_obstack): Remove. 2787 (flow_firstobj): Likewise. 2788 (init_flow): Remove all uses of flow_obstack. 2789 27902004-11-29 Alan Modra <amodra@bigpond.net.au> 2791 2792 * varasm.c (default_elf_select_section_1): Only pass DECL_P decl 2793 to named_section. 2794 27952004-11-29 Nathan Sidwell <nathan@codesourcery.com> 2796 2797 * opts.c (decode_options): Do not set max-inline-insns-rtl. 2798 (common_handle_option): Likewise. 2799 * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove. 2800 * params.h (MAX_INLINE_INSNS_RTL): Remove. 2801 * doc/invoke.texi (max-inline-insns-rtl): Remove. 2802 28032004-11-29 Alan Modra <amodra@bigpond.net.au> 2804 2805 PR target/9571 2806 * varasm.c (default_elf_select_section_1): Pass decl to named_section. 2807 28082004-11-28 Andrew Pinski <pinskia@physics.uc.edu> 2809 2810 PR middle-end/18164 2811 * gimplify.c (gimplify_asm_expr): If the length of an output operand 2812 is zero, do not process it, just let it go through. 2813 28142004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2815 Diego Novillo <dnovillo@redhat.com> 2816 2817 PR/18662, also backported from tree-cleanup-branch. 2818 * tree-ssa-ccp.c (substitute_and_fold): If replaced anything, 2819 always call maybe_clean_eh_stmt and modify_stmt. 2820 28212004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2822 2823 PR/18664 2824 * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR): 2825 Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def. 2826 * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR, 2827 add an inverse VIEW_CONVERT_EXPR to const_val. 2828 2829 PR/18657 2830 * tree-nested.c (check_for_nested_with_variably_modified): New. 2831 (create_nesting_tree): Call it. 2832 2833 * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove 2834 special code for assigning to non-pointer. 2835 (is_escape_site): If RHS is a conversion between pointer and integer 2836 types, this is an escape site. 2837 2838 * gcse.c (insert_store): Error if try to insert store on abnormal edge. 2839 (store_motion): Don't move store if any edge we'd want to move it 2840 to is abnormal. 2841 2842 * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with 2843 non-zero lower bound. 2844 2845 * expr.c (categorize_ctor_elements_1, case STRING_CST): New case. 2846 28472004-11-28 Matt Kraai <kraai@alumni.cmu.edu> 2848 2849 PR diagnostic/17594 2850 * opts.c (find_opt): Require that the input match a switch exactly 2851 or that the switch take a joined option to be interpreted as a 2852 match for another language. 2853 28542004-11-28 Andrew Pinski <pinskia@physics.uc.edu> 2855 2856 * timevar.def (TV_TREE_REDPHI): New timevar. 2857 * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id. 2858 28592004-11-28 Nathanael Nerode <neroden@gcc.gnu.org> 2860 2861 PR preprocessor/17651 2862 * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply 2863 flag_no_line_commands. 2864 * c-ppoutput.c (pp_file_change): Remove now-redundant check of 2865 flag_no_output. 2866 28672004-11-28 Theodore A. Roth <troth@openavr.org> 2868 2869 * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a 2870 warning if the function name does not begin with "__vector" and the 2871 function has either the 'signal' or 'interrupt' attribute. 2872 28732004-11-28 Theodore A. Roth <troth@openavr.org> 2874 2875 * config/avr/avr.c (avr_mcu_types): Add entries for atmega48, 2876 atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165, 2877 atmega325, atmega3250, atmega645 and atmega6450. 2878 * config/avr/avr.h (LINK_SPEC): Ditto. 2879 (LIB_SPEC): Ditto. 2880 (LIBGCC_SPEC): Ditto. 2881 (CRT_BINUTILS_SPECS): Ditto. 2882 * config/avr/t-avr (MULTILIB_MATCHES): Ditto. 2883 28842004-11-28 Nathanael Nerode <neroden@gcc.gnu.org> 2885 2886 PR preprocessor/17610 2887 * testsuite/gcc.dg/cpp/empty-include.c: New testcase. 2888 28892004-11-28 Jeff Law <law@redhat.com> 2890 2891 * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New. 2892 (pass_maybe_create_global_var): New. 2893 * tree-pass.h (pass_maybe_create_global_var): Declare. 2894 * tree-optimize.c (init_tree_optimization_passes): Link in 2895 pass_maybe_create_global_var. 2896 28972004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2898 2899 * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment. 2900 29012004-11-28 Ulrich Weigand <uweigand@de.ibm.com> 2902 2903 PR rtl-optimization/18420 2904 * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change. 2905 29062004-11-28 Steven Bosscher <stevenb@suse.de> 2907 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2908 2909 * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define. 2910 * config/vax/vax.md (casesi): Emit a test-and-branch to make sure 2911 that the case is in range, to make sure the casesi insn is always 2912 in range and never falls through. 2913 (casesi1): Add comment to explain why casesi never falls through. 2914 Remove the unnamed special case casesi pattern. 2915 29162004-11-28 Hans-Peter Nilsson <hp@bitrange.com> 2917 2918 PR target/18331 2919 * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from 2920 "*movdicc_real". Only match reversible comparisons. 2921 ("*movdicc_real_nonreversible"): New pattern, split from 2922 "*movdicc_real". Match only nonreversible comparisons. Exclude 2923 reversed alternatives. 2924 ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"): 2925 Similar. 2926 29272004-11-27 Richard Henderson <rth@redhat.com> 2928 2929 * config/ia64/ia64.md: Move all define_predicate's ... 2930 * config/ia64/predicates.md: ... here. New file. 2931 29322004-11-27 Per Bothner <per@bothner.com> 2933 2934 PR bootstrap/18142 2935 Re-applied following, with two modifications: add a URL for the 2936 fixed cctools; only exit if $build = $target. 2937 2938 2004-10-18 Kelley Cook <kcook@gcc.gnu.org> 2939 * configure.ac (powerpc-*-darwin*): Require assembler to support 2940 .machine directive. 2941 * configure: Regenerate. 2942 29432004-11-28 David Edelsohn <edelsohn@gnu.org> 2944 2945 PR target/16800 2946 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of 2947 EQ, GTU, and LTU costs. Add costs for GT, LT, and UNORDERED. 2948 Distinguish between SImode and DImode CONST_INT. 2949 29502004-11-28 Andreas Fischer <a_fisch@gmx.de> 2951 Alan Modra <amodra@bigpond.net.au> 2952 2953 PR target/16343 2954 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow 2955 functions, strings and thread-local vars. 2956 29572004-11-28 Alan Modra <amodra@bigpond.net.au> 2958 2959 * config/rs6000/rs6000.h (WORLD_SAVE_P): Define. 2960 * config/rs6000/darwin.h (WORLD_SAVE_P): Define. 2961 * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P 2962 to allow non-darwin ABIs to optimize away code. 2963 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. 2964 29652004-11-27 Kazu Hirata <kazu@cs.umass.edu> 2966 2967 * tree.c (operand_equal_for_phi_arg_p): New. 2968 * tree.h: Add a prototype for operand_equal_for_phi_arg_p. 2969 * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c: 2970 Replace operand_equal_p with operand_for_phi_arg_p 2971 appropriately. 2972 2973 * bb-reorder.c (find_traces_1_round): Speed up by using 2974 EDGE_COUNT instead of FOR_EACH_EDGE. 2975 2976 * fold-const.c, config/i386/linux64.h: Fix comment typos. 2977 29782004-11-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2979 2980 PR pch/14940 2981 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change. 2982 29832004-11-27 Kazu Hirata <kazu@cs.umass.edu> 2984 2985 * config/i386/linux.h: Fix a comment typo. 2986 * doc/extend.texi: Fix a typo. 2987 29882004-11-27 Jeff Law <law@redhat.com> 2989 2990 * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks 2991 are merged. 2992 29932004-11-27 Jakub Jelinek <jakub@redhat.com> 2994 2995 * config/i386/linux64.h (REG_NAME): Define. 2996 29972004-11-27 Jakub Jelinek <jakub@redhat.com> 2998 2999 * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is 3000 unsigned and type signed, build ABS_EXPR with signed_type (ctype) 3001 and only afterwards convert to ctype. 3002 30032004-11-27 Richard Sandiford <rsandifo@redhat.com> 3004 3005 * config/mips/mips-protos.h (function_arg_boundary): Declare. 3006 * config/mips/mips.h (PARM_BOUNDARY): Simplify definition. 3007 (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise. 3008 (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function. 3009 * config/mips/mips.c (function_arg_boundary): New function. 3010 Impose a maximum alignment of STACK_BOUNDARY. 3011 30122004-11-27 Jakub Jelinek <jakub@redhat.com> 3013 3014 PR rtl-optimization/17825 3015 * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) 3016 or not. 3017 30182004-11-27 Alan Modra <amodra@bigpond.net.au> 3019 3020 PR target/12769 3021 * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie 3022 from rs6000_default_long_calls for libcalls. 3023 30242004-11-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3025 3026 * expmed.c (extract_bit_field): When extracting from non-integer mode, 3027 force a SUBREG into a register because we may be taking a further 3028 SUBREG of it. 3029 30302004-11-27 Di-an Jan <dianj@freeshell.org> 3031 3032 * doc/contrib.texi (Tim Josling): Remove nesting quotation marks. 3033 30342004-11-26 Robert Millan <robertmh@gnu.org> 3035 3036 Changes for k*bsd-gnu support. 3037 * config/i386/linux.h: Define REG_NAME to allow overriding of 3038 register names in sc structure. 3039 * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead 3040 of sc->reg. 3041 * config.gcc: Detect x86_64-k*bsd-gnu systems. 3042 30432004-11-26 Jeff Law <law@redhat.com> 3044 3045 * tree-ssa.c (verify_flow_sensitive_alias_info): Don't 3046 retrieve annotations or pointer info before it's necessary. 3047 Reorder tests for early continue of the loop. Manually CSE 3048 SSA_NAME_VAR. 3049 30502004-11-26 Eric Botcazou <ebotcazou@libertysurf.fr> 3051 3052 * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'. 3053 * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0. 3054 (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC. 3055 * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move 3056 to a fixed reg if the source is the Return Address register. 3057 Implement new Rule 15. 3058 * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC. 3059 * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 3060 sparc_dwarf_handle_frame_unspec. 3061 (gen_save_register_window): New function. 3062 (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc. 3063 (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec. 3064 (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement. 3065 Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns. 3066 (sparc_asm_function_prologue): Do not emit call frame debugging info. 3067 (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement. 3068 (sparc_expand_epilogue): Likewise. 3069 (sparc_dwarf_handle_frame_unspec): New function. 3070 * config/sparc/sparc.md (save_register_window): Remove. 3071 (save_register_windowdi): Rewrite modelled on the callframe debug info. 3072 (save_register_windowsi): Likewise. 3073 30742004-11-26 Alexandre Oliva <aoliva@redhat.com> 3075 3076 * config/frv/frv-protos.h: Guard ifcvt functions declarations with 3077 BB_HEAD, not BLOCK_HEAD. 3078 30792004-11-26 Alexandre Oliva <aoliva@redhat.com> 3080 3081 * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone 3082 scratch insns that set a register live at the join point. 3083 30842004-11-26 Kazu Hirata <kazu@cs.umass.edu> 3085 3086 * cse.c, tree-ssa-operands.c: Fix comment typos. 3087 3088 * tree-cfg.c (tree_split_edge): Speed up by using find_edge. 3089 30902004-11-26 James A. Morrison <phython@gcc.gnu.org> 3091 3092 PR target/18510 3093 * doc/extend.texi (SPARC VIS Built-in Functions): New section. 3094 30952004-11-26 Kazu Hirata <kazu@cs.umass.edu> 3096 3097 * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the 3098 check that tests if all edges go to the same destination. 3099 3100 * bitmap.c (bitmap_find_bit): Speed up by traversing from 3101 head->first if that seems profitable. 3102 31032004-11-25 Jeff Law <law@redhat.com> 3104 3105 * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars. 3106 * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT. 3107 (pass_loop_done): Use TV_TREE_LOOP_FINI. 3108 31092004-11-26 Alan Modra <amodra@bigpond.net.au> 3110 3111 PR rtl-optimization/16356 3112 * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with 3113 separate output register and one less jump. Enable for powerpc64. 3114 (floatdisf2): Adjust for above. 3115 31162004-11-25 Bob Wilson <bob.wilson@acm.org> 3117 3118 * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0. 3119 (GCC_DRIVER_HOST_INITIALIZATION): Define. 3120 31212004-11-25 Andrew Pinski <pinskia@physics.uc.edu> 3122 3123 PR middle-end/17957 3124 * tree-complex.c (vector_inner_type): New variable moved from 3125 build_word_mode_vector_type. 3126 (vector_last_type): Likewise. 3127 (vector_last_nunits): Likewise. 3128 (build_word_mode_vector_type): Use the new variables. 3129 * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H). 3130 (GTFILES): Add tree-complex.c. 3131 (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules. 3132 31332004-11-25 Bob Wilson <bob.wilson@acm.org> 3134 3135 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define 3136 __XTENSA_WINDOWED_ABI__. 3137 31382004-11-25 Richard Henderson <rth@redhat.com> 3139 3140 * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument. Save 3141 args_size adjustments for calls even with cfa as stack pointer. 3142 Search calls for stack adjustments after the insn is issued. 3143 (dwarf2out_frame_debug): Add after_p argument; pass it on. 3144 * dwarf2out.h (dwarf2out_frame_debug): Update to match. 3145 * final.c (final_start_function, final_scan_insn): Likewise. 3146 31472004-11-25 Richard Henderson <rth@redhat.com> 3148 3149 PR c++/6764 3150 * reload1.c (set_initial_eh_label_offset): New. 3151 (set_initial_label_offsets): Use it. 3152 31532004-11-25 Kaz Kojima <kkojima@gcc.gnu.org> 3154 3155 * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks 3156 before calling life_analysis and release them after. 3157 31582004-11-25 Kazu Hirata <kazu@cs.umass.edu> 3159 3160 * tree-ssa-forwprop.c (substitute_single_use_vars): Remove 3161 duplicate code. 3162 31632004-11-25 Andrew Pinski <pinskia@physics.uc.edu> 3164 3165 * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not 3166 BITMAP_OBSTACK_ALLOC. 3167 (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE. 3168 31692004-11-25 Andrew Pinski <pinskia@physics.uc.edu> 3170 3171 parts of PR rtl-opt/18463, rtl-opt/17647 3172 * cse.c (canon_for_address): New function. 3173 (find_best_addr): Call canon_for_address before getting the 3174 address's cost when checking if we should take that address. 3175 31762004-11-25 Kazu Hirata <kazu@cs.umass.edu> 3177 3178 * tree-phinodes.c (add_phi_arg): Take "tree" instead of 3179 "tree *" as the first argument. 3180 * tree-flow.h: Update the prototype of add_phi_arg. 3181 * lambda-code.c, tree-cfg.c, tree-into-ssa.c, 3182 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c, 3183 tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c, 3184 tree-vectorizer.c: Update all call sites of add_phi_arg. 3185 31862004-11-25 Nathan Sidwell <nathan@codesourcery.com> 3187 3188 * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove. 3189 * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove. 3190 (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC. 3191 (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE. 3192 31932004-11-25 Andrew MacLeod <amacleod@redhat.com> 3194 3195 PR tree-optimization/18587 3196 * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag 3197 call clobbered caches as invalid. 3198 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New. Flag 3199 indicating whether the call clobbered operand cache is valid. 3200 (ssa_ro_call_cache_valid): New. Flag indicating whether the 3201 pure/const call operand cache is valid. 3202 (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New. Cached 3203 list of operands for cached call virtual operands. 3204 (clobbered_aliased_loads, clobbered_aliased_stores, 3205 ro_call_aliased_load): New. flags caching whether alias bits are 3206 to be set in call stmt's. 3207 (fini_ssa_operands): Remove call operand caches if present. 3208 (get_expr_operands, get_asm_expr_operands, 3209 get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand. 3210 (get_call_expr_operands): Add call clobbered variables first. 3211 (add_stmt_operand): Take stmt annotation rather than stmt as a param. 3212 (add_call_clobber_ops, add_call_read_ops): Use the call operand cache 3213 if it is valid, otherise fill the cache. 3214 * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern. 3215 * tree-flow.h (struct var_ann_d): Add in_vuse_list and 3216 in_v_may_def_list bits. 3217 * tree-ssa-operands.c (cleanup_v_may_defs): New. Clear the 3218 in_list bits for the v_may_def elements and empty the operand 3219 build array 3220 (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant 3221 VUSES by checking the in_v_may_def_list bit. 3222 (append_v_may_def, append_vuse): Use the in_list bit rather than 3223 scanning the array for duplicates. 3224 32252004-11-25 Ulrich Weigand <uweigand@de.ibm.com> 3226 3227 * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF 3228 displacements are not short. 3229 32302004-11-25 Ulrich Weigand <uweigand@de.ibm.com> 3231 3232 * config/s390/s390.c (legitimize_pic_address): Use s390_load_address 3233 to load addresses. 3234 32352004-11-25 Mark Mitchell <mark@codesourcery.com> 3236 3237 PR c++/18001 3238 * c-common.h (lvalue_use): Move here from c-ctypeck.c. 3239 (lvalue_or_else): Declare. 3240 * c-common.c (lvalue_or_else): Move here from c-typeck.c. 3241 * c-typeck.c (lvalue_use): Remove. 3242 (lvalue_or_else): Remove. 3243 3244 PR c++/18556 3245 * toplev.c (check_global_declarations): Set DECL_IGNORED_P on 3246 unemitted variables with static storage duration. 3247 32482004-11-25 Gerald Pfeifer <gerald@pfeifer.com> 3249 3250 * tree-cfg.c (tree_verify_flow_info): Do not terminate error() 3251 message with \n. 3252 32532004-11-25 Nathan Sidwell <nathan@codesourcery.com> 3254 3255 * config/rs6000/altivec.md (VIshort): New mode macro. 3256 (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace 3257 with ... 3258 (altivec_vaddu<VI_char>s): ... this. 3259 (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace 3260 with ... 3261 (altivec_vadds<VI_char>s): ... this. 3262 (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace 3263 with ... 3264 (altivec_vsubu<VI_char>s): ... this. 3265 (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace 3266 with ... 3267 (altivec_vsubs<VI_char>s): ... this. 3268 (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace 3269 with ... 3270 (altivec_vavgu<VI_char>): ... this. 3271 (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace 3272 with ... 3273 (altivec_vavgs<VI_char>): ... this. 3274 (altivec_vmsumubm, altivec_vmsumuhm): Replace with ... 3275 (altivec_vmsumu<VI_char>m): ... this. 3276 (altivec_vmsummbm, altivec_vmsummhm): Replace 3277 with ... 3278 (altivec_vmsumm<VI_char>m): ... this. 3279 (altivec_vandc): Remove. 3280 (*andc<mode>3): Renamed to ... 3281 (andc<mode>3): ... here. Swap operand 1 and 2 numbering. 3282 (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace 3283 with ... 3284 (altivec_vrl<VI_char>): ... this. 3285 (altivec_vslb, altivec_vslh, altivec_vslw): Replace 3286 with ... 3287 (altivec_vsl<VI_char>): ... this. 3288 (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace 3289 with ... 3290 (altivec_vsr<VI_char>): ... this. 3291 (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace 3292 with ... 3293 (altivec_vsra<VI_char>): ... this. 3294 (altivec_vsum4sbs, altivec_vsum4shs): Replace with ... 3295 (altivec_vsum4s<VI_char>s): ... this. 3296 (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace 3297 with ... 3298 (altivec_vperm_<mode>): ... this. 3299 (altivec_vsel_4sf): Rename to ... 3300 (altivec_vsel_v4sf): ... here. 3301 (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace 3302 with ... 3303 (altivec_vsel_<mode>): ... this. 3304 (altivec_vsldoi_4si, altivec_vsldoi_8hi, 3305 altivec_vsldoi_16qi): Rename to ... 3306 (altivec_vsldoi_v4si, altivec_vsldoi_v8hi, 3307 altivec_vsldoi_v16qi): ... here. 3308 (altivec_vsldoi_4sf): Rename to ... 3309 (altivec_vsldoi_v4sf): ... here. 3310 (altivec_predicate_v4si, altivec_predicate_v8hi, 3311 altivec_predicate_v16qi): Replace with ... 3312 (altivec_predicate_<mode>): ... this. 3313 (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace 3314 with ... 3315 (altivec_lve<VI_char>x): ... this. 3316 (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace 3317 with ... 3318 (altivec_stve<VI_char>x): ... this. 3319 (absv16qi2, absv8hi2, absv4si2): Replace 3320 with ... 3321 (abs<mode>2): ... this. 3322 (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace 3323 with ... 3324 (altivec_abss_<mode>): ... this. 3325 (vec_realign_load_v16qi, vec_realign_load_v8hi, 3326 vec_realign_load_v4si): Replace with ... 3327 (vec_realign_load_<mode>): ... this. 3328 * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked 3329 insn names. 3330 (rs6000_expand_ternop_builtin): Likewise. 3331 33322004-11-25 Andrew Haley <aph@redhat.com> 3333 3334 * gcc.c (process_command): Don't supply -v to linker. 3335 33362004-11-25 Joseph S. Myers <joseph@codesourcery.com> 3337 3338 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs 3339 instead of `%s' in diagnostic. 3340 33412004-11-25 Nathan Sidwell <nathan@codesourcery.com> 3342 3343 * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust. 3344 (FREE_REG_SET): Adjust. 3345 * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap. 3346 * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ... 3347 (BITMAP_ALLOC): ... here. 3348 (BITMAP_OBSTACK_FREE): Rename to ... 3349 (BITMAP_FREE): Don't check for NULL bitmap here. 3350 * tree-ssa-pre.c (value_insert_into_set_bitmap, 3351 bitmap_set_new): Use new names. 3352 3353 * bt-load.c (migrate_btr_defs): Remove unneeded NULL check. 3354 * df.c (df_free): Likewise. 3355 * ra-build.c (ra_build_free, ra_build_free_all): Likewise. 3356 * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise. 3357 3358 * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ... 3359 (ALLOC_REG_SET): ... here. 3360 (FREE_REG_SET): Adjust. 3361 (XMALLOC_REG_SET, XFREE_REG_SET): Remove. 3362 * bb-reorder.c (fix_crossing_conditional_branches): Adjust. 3363 * cfglayout.c (cfg_layout_duplicate_bb): Adjust. 3364 * cfgrtl.c (rtl_split_block, rtl_split_edge, 3365 safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust. 3366 * flow.c (update_life_info, calculate_global_regs_live, 3367 allocate_bb_life_data, init_propagate_block_info): Adjust. 3368 * global.c (build_insn_chain): Adjust. 3369 * ifcvt.c (dead_or_predicable): Adjust. 3370 * loop-iv.c (simplify_using_initial_values): Adjust. 3371 * recog.c (peephole2_optimize): Adjust. 3372 * sched-deps.c (init_deps_global): Adjust. 3373 33742004-11-25 Ralf Corsepius <ralf.corsepius@rtems.org> 3375 3376 * config.gcc (avr-*-rtems*): Fix typo. 3377 33782004-11-25 J"orn Rennecke <joern.rennecke@st.com> 3379 3380 * sh.c (sh_output_mi_thunk): Do not call regset_release_memory. 3381 33822004-11-24 Jeff Law <law@redhat.com> 3383 3384 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce 3385 the number of queries to random elements in the ai->written_vars 3386 bitmap. 3387 33882004-11-24 Roger Sayle <roger@eyesopen.com> 3389 3390 * config/i386/i386.c (override_options): Disable x87 fancy math 3391 intrinsics if -mfpmath= doesn't include 387 (default on x86_64). 3392 33932004-11-24 Roger Sayle <roger@eyesopen.com> 3394 3395 * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a 3396 system header conflict on AIX 5.2. 3397 * configure: Regenerate. 3398 33992004-11-24 Kazu Hirata <kazu@cs.umass.edu> 3400 3401 * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx 3402 instead of calling phi_arg_from_edge. 3403 3404 * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge 3405 with e->dest_idx. 3406 34072004-11-24 Ben Elliston <bje@au.ibm.com> 3408 3409 * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove. 3410 * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise. 3411 * config/i386/i386-protos.h (i386_dwarf_output_addr_const): 3412 Likewise. 3413 34142004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3415 3416 * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS. 3417 3418 * tree-inline.c (copy_body_r): Explicitly copy a constant if the 3419 type will be remapped. 3420 34212004-11-24 Steven Bosscher <stevenb@suse.de> 3422 3423 * c-opts.c (c_common_post_options): Don't clear 3424 flag_inline_functions. 3425 * dojump.c (clear_pending_stack_adjust): Remove check on 3426 flag_inline_functions, it's always true. 3427 * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter 3428 that can never trigger. 3429 * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at 3430 flag_inline_trees, now that flag_inline_functions is never 3431 cleared. 3432 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set 3433 flag_inline_functions at optimization levels greater than 3434 or equal to 3. This is already done by default. 3435 34362004-11-24 Kazu Hirata <kazu@cs.umass.edu> 3437 3438 * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx 3439 instead to find the PHI argument. Do not take I as an 3440 argument. 3441 (eliminate_phi): Adjust the call to eliminate_build. Do not 3442 take I as an argument. 3443 (rewrite_trees): Adjust the call to eliminate_phi. 3444 34452004-11-24 Richard Sandiford <rsandifo@redhat.com> 3446 3447 * optabs.h (force_expand_binop): Declare. 3448 * optabs.c (force_expand_binop): Export. 3449 * stmt.c (shift_return_value): Delete. 3450 (expand_return): Don't call it. 3451 * expr.h (shift_return_value): Declare. 3452 * calls.c (shift_returned_value): Delete in favor of... 3453 (shift_return_value): ...this new function. Leave the caller to check 3454 for non-BLKmode values passed in the msb of a register. Take said mode 3455 and a shift direction as argument. Operate on the hard function value, 3456 not a pseudo. 3457 (expand_call): Adjust accordingly. 3458 * function.c (expand_function_start): If a non-BLKmode return value 3459 is padded at the last significant end of the return register, use the 3460 return value's natural mode for the DECL_RESULT, not the mode of the 3461 padded register. 3462 (expand_function_end): Shift the same sort of return values left by 3463 the appropriate amount. 3464 34652004-11-24 Matt Austern <austern@apple.com> 3466 3467 * recog.c (recog_memoized_1): Remove. 3468 * recog.h (recog_memoized_1): Remove declaration. 3469 (recog_memoized): Change from macro to inline function. 3470 34712004-11-24 Devang Patel <dpatel@apple.com> 3472 3473 PR/18555 3474 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot. 3475 * config/darwin-c.c (darwin_register_frameworks): Use sysroot. 3476 34772004-11-24 Devang Patel <dpatel@apple.com> 3478 3479 * gcc.c (process_command): Supply -v to linker. 3480 34812004-11-24 David Edelsohn <edelsohn@gnu.org> 3482 Paolo Bonzini <bonzini@gnu.org> 3483 3484 * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec 3485 vector modes without ALTIVEC_ABI. Use GCC vector instead of 3486 synthetic vector. 3487 (rs6000_pass_by_reference): Split conditional into pieces. Use 3488 GCC vector instead of synthetic vector. 3489 34902004-11-24 Aldy Hernandez <aldyh@redhat.com> 3491 3492 * tree.c (recompute_tree_invarant_for_addr_expr): The address of a 3493 thread-local variable is invariant. 3494 34952004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3496 3497 * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE): 3498 Handle TYPE_REF_CAN_ALIAS_ALL. 3499 (print_declaration): Print array dimensions like dump_generic_node. 3500 3501 * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and 3502 ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them. 3503 35042004-11-24 Nathan Sidwell <nathan@codesourcery.com> 3505 3506 * bitmap.c (INLINE): Do not define. 3507 (bitmap_elem_to_freelist, bitmap_element_free, 3508 bitmap_element_allocate, bitmap_clear, bitmap_element_zerop, 3509 bitmap_element_link, bitmap_find_bit): Use inline keyword/macro. 3510 35112004-11-24 Kazu Hirata <kazu@cs.umass.edu> 3512 3513 * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to 3514 find the index of a PHI argument. Use e->dest_idx instead. 3515 Replace hint with index. 3516 3517 * tree-ssa-dom.c (cprop_into_successor_phis): Replace index 3518 with indx. 3519 35202004-11-24 Diego Novillo <dnovillo@redhat.com> 3521 3522 * tree-ssa-alias.c (merge_pointed_to_info): Fix comment 3523 regarding PT_MALLOC. 3524 35252004-11-24 Joseph Myers <joseph@codesourcery.com> 3526 3527 * config/i386/i386.c (optimization_options): Use 3528 SUBTARGET_OPTIMIZATION_OPTIONS. 3529 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define. 3530 (TARGET_SUBTARGET_DEFAULT): Don't include 3531 MASK_OMIT_LEAF_FRAME_POINTER. 3532 35332004-11-24 Mark Mitchell <mark@codesourcery.com> 3534 3535 * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE): 3536 Define to false. 3537 35382004-11-24 Joseph Myers <joseph@codesourcery.com> 3539 3540 * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): 3541 Use amd64 instead of 64. 3542 35432004-11-24 Mark Mitchell <mark@codesourcery.com> 3544 Joseph Myers <joseph@codesourcery.com> 3545 3546 * crtstuff.c (IN_LIBGCC2): Define it. 3547 (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY 3548 instead of HAVE_LD_RO_RW_SECTION_MIXING. 3549 * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro. 3550 * dwarf2out.c (named_section_eh_frame_section): Check 3551 EH_TABLES_CAN_BE_READ_ONLY. 3552 * except.c (default_exception_section): Likewise. 3553 * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define. 3554 * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document. 3555 35562004-11-24 Kazu Hirata <kazu@cs.umass.edu> 3557 3558 * tree-ssa-pre.c (phi_translate): Use find_edge to find the 3559 index of a PHI argument. 3560 3561 * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use 3562 find_edge to find the index of a PHI argument. 3563 35642004-11-24 Steven Bosscher <stevenb@suse.de> 3565 3566 * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR 3567 and LABELED_BLOCK_EXPR. 3568 * gimplify.c (gimplify_labeled_block_expr): Remove. 3569 (gimplify_exit_block_expr): Remove. 3570 (gimplify_expr): Don't call them. 3571 * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR 3572 and LABELED_BLOCK_EXPR. 3573 (estimate_num_insns_1): Likewise. 3574 (walk_tree): Likewise. 3575 * tree-pretty-print.c (dump_generic_node): Don't handle 3576 EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. 3577 * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def. 3578 (LABELED_BLOCK_EXPR): Likewise. 3579 * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h. 3580 (LABELED_BLOCK_BODY): Likewise. 3581 (EXIT_BLOCK_LABELED_BLOCK): Likewise. 3582 (EXIT_BLOCK_RETURN): Removed. 3583 35842004-11-24 Steven Bosscher <stevenb@suse.de> 3585 3586 * cfgrtl.c (rtl_delete_block): Fix comment. 3587 * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG 3588 or BLOCK_END insn notes. 3589 * jump.c (squeeze_notes): Likewise. 3590 * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and 3591 EH_REGION_END notes, we never have them to begin with. 3592 * sched-deps.c (sched_analyze_insn): When updating loop notes, 3593 verify that we have indeed only recorded loop notes. 3594 (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes. 3595 Only record loop notes. 3596 3597 * cfgexpand.c (tree_expand_cfg): Fix comment. 3598 3599 * passes.c (rest_of_compilation): Don't do a second call to 3600 convert_from_eh_region_ranges from here, it's already called 3601 from cfgexpand.c. 3602 * except.c (resolve_fixup_regions): Remove. 3603 (remove_fixup_regions): Remove. 3604 (convert_from_eh_region_ranges_1): Remove. 3605 (convert_from_eh_region_ranges): Remove the case where EH is 3606 not already lowered at the tree level. We always lower there. 3607 36082004-11-24 Paolo Bonzini <bonzini@gnu.org> 3609 3610 PR c++/16882 3611 * tree.c (make_vector_type): Move qualifiers to the vector type, 3612 use the inner type's main variant and build a main variant for 3613 the vector type if necessary. 3614 (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS. 3615 36162004-11-24 Eric Botcazou <ebotcazou@libertysurf.fr> 3617 3618 * target.h (late_rtl_prologue_epilogue): Remove. 3619 * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove. 3620 * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE. 3621 * passes.c (rest_of_handle_prologue_epilogue): Remove and move 3622 remaining bits to... 3623 (rest_of_handle_flow2): ...here. 3624 (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue. 3625 * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove. 3626 36272004-11-23 Mark Mitchell <mark@codesourcery.com> 3628 3629 * hwint.h (HOST_LONG_LONG_FORMAT): New macro. Use it throughout. 3630 * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define. 3631 * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document. 3632 36332004-11-24 Daniel Jacobowitz <dan@codesourcery.com> 3634 3635 * config/i386/i386.c (override_options): Move 3636 SUBTARGET_OVERRIDE_OPTIONS before defaulting 3637 flag_omit_frame_pointer. 3638 36392004-11-23 Richard Henderson <rth@redhat.com> 3640 3641 * rtl.h (validate_subreg): Declare. 3642 * emit-rtl.c (validate_subreg): New. 3643 (gen_rtx_SUBREG): Use it. 3644 * simplify-rtx.c (simplify_subreg): Likewise. 3645 (simplify_gen_subreg): Likewise. Remove duplicate asserts. 3646 * expr.c (emit_move_insn_1): Tidy complex move code. Use memory 3647 fallback whenever gen_realpart/gen_imagpart would not be able to 3648 create SUBREGs. 3649 36502004-11-23 Richard Henderson <rth@redhat.com> 3651 3652 * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of 3653 hard-coding avoiding calls to gen_rtx_SUBREG. Split complex return 3654 modes to CONCAT. 3655 36562004-11-23 Diego Novillo <dnovillo@redhat.com> 3657 3658 PR tree-optimization/18618 3659 * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare. 3660 (insert_phi_nodes_for): Change third argument to VEC(basic_block). 3661 * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap). 3662 Update all users. 3663 (stmts_to_rescan): Likewise. 3664 (const_and_copies_stack): Likewise. 3665 (nonzero_vars_stack): Likewise. 3666 (vrp_variables_stack): Likewise. 3667 36682004-11-23 Richard Henderson <rth@redhat.com> 3669 3670 * cse.c (record_jump_cond_subreg): New. 3671 (record_jump_cond): Use it instead of gen_lowpart. 3672 36732004-11-23 Daniel Jacobowitz <dan@codesourcery.com> 3674 Joseph Myers <joseph@codesourcery.com> 3675 3676 * config/sol2-c.c (solaris_register_pragmas): Use 3677 c_register_pragma_with_expansion. 3678 * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define. 3679 * c-pragma.c (c_register_pragma): Update call to 3680 cpp_register_pragma. 3681 (c_register_pragma_with_expansion): New function. 3682 (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION. 3683 * c-pragma.h (c_register_pragma_with_expansion): New prototype. 3684 * doc/extend.texi (Solaris Pragmas): Mention macro expansion for 3685 #pragma align. 3686 * doc/tm.texi (c_register_pragma_with_expansion, 3687 HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document. 3688 36892004-11-23 Richard Henderson <rth@redhat.com> 3690 3691 * combine.c (gen_lowpart_for_combine): Factor out mode of x as well 3692 as mode sizes into local temporaries. Unify failure path. 3693 36942004-11-23 Richard Henderson <rth@redhat.com> 3695 3696 * emit-rtl.c, rtl.h (subreg_hard_regno): Remove. 3697 * caller-save.c (mark_set_regs): Use subreg_regno instead. 3698 * final.c (alter_subreg): Likewise. 3699 * local-alloc.c (reg_is_born): Likewise. 3700 37012004-11-23 Richard Henderson <rth@redhat.com> 3702 3703 * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly 3704 instead of using a SUBREG temporary. 3705 37062004-11-23 Kazu Hirata <kazu@cs.umass.edu> 3707 3708 * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering 3709 two checks. 3710 37112004-11-23 Zack Weinberg <zack@codesourcery.com> 3712 3713 * function.h (struct function): Remove calls_longjmp. 3714 (current_function_calls_longjmp): Delete. 3715 * tree.h (ECF_LONGJMP): Delete. 3716 (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN) 3717 (ECF_LIBCALL_BLOCK): Everybody slide down one. 3718 (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments. 3719 * builtins.c (expand_builtin_longjmp): Don't set 3720 current_function_calls_longjmp. 3721 * calls.c (special_function_p): Mark longjmp and siglongjmp 3722 with ECF_NORETURN, not ECF_LONGJMP. 3723 (emit_call_1, expand_call, emit_library_call_value_1): 3724 Don't check for ECF_LONGJMP. 3725 * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt) 3726 (need_fake_edge_p): Likewise. 3727 3728 * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP. 3729 * system.h: Poison NON_SAVING_SETJMP. 3730 * function.c (use_register_for_decl) 3731 * gcse.c (compute_hash_table_work, compute_store_table) 3732 * postreload-gcse.c (record_opr_changes) 3733 * reload.c (find_equiv_reg) 3734 * reload1.c (reload) 3735 * config/i386/i386.c (ix86_can_use_return_insn_p): 3736 Remove code conditional on NON_SAVING_SETJMP. 3737 * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP. 3738 3739 * config/i386/sysv3.h: Delete file. 3740 * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete. 3741 37422004-11-23 Dorit Naishlos <dorit@il.ibm.com> 3743 3744 * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if 3745 the vectorization factor is greater than the iteration count. 3746 (vect_gen_niters_for_prolog_loop): No need to calculate min if the 3747 iteration count is known. 3748 3749 (vect_build_symbol_bound): Removed. Its functionality moved to 3750 vect_generate_tmps_on_preheader. 3751 (vect_generate_tmps_on_preheader): Moved content of 3752 vect_build_symbol_bound here instead of calling it. Changed some 3753 variables names. 3754 3755 (vect_build_loop_niters): We don't expect a new_bb to be generated - 3756 use gcc_assert. 3757 (vect_gen_niters_for_prolog_loop): Likewise. 3758 (vect_gen_niters_for_prolog_loo): Likewise. 3759 3760 (slpeel_make_loop_iterate_ntimes): Use buildN instead of build. 3761 (slpeel_add_loop_guard): Likewise. 3762 (slpeel_tree_peel_loop_to_edge): Likewise. 3763 (vect_do_peeling_for_alignment): Likewise. 3764 3765 (vect_get_first_index): Missing space. 3766 37672004-11-23 Ulrich Weigand <uweigand@de.ibm.com> 3768 3769 * config/s390/s390.md ("*iordi3"): Mark commutative. 3770 ("*iorsi3_zarch", "*iorsi3_esa"): Likewise. 3771 37722004-11-23 Kazu Hirata <kazu@cs.umass.edu> 3773 3774 * tree-phinode.c (resize_phi_node): Abort when LEN is strictly 3775 greater than PHI_ARG_CAPACITY. 3776 (reserve_phi_args_for_new_edge): Initialize the new PHI 3777 argument to NULL_TREE. Increment PHI_NUM_ARGS. 3778 (add_phi_arg): Add a PHI argument to the slot given by 3779 E->dest_idx. 3780 (remove_phi_arg_num): Do not write to PHI_ARG_EDGE. 3781 * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx. 3782 * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI 3783 argument by looking at PHI_ARG_DEF. 3784 (verify_phi_args): Check for a missing PHI argument. Remove 3785 the check for duplicate PHI arguments. 3786 * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED. 3787 (phi_arg_d): Remove e. 3788 3789 * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up 3790 by restricting to the case with two outgoing edges. 3791 37922004-11-23 Andreas Krebbel <krebbel1@de.ibm.com> 3793 3794 * config/s390/s390.c (s390_backchain_string): Removed. 3795 (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info) 3796 (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg): 3797 Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and 3798 TARGET_KERNEL_BACKCHAIN to reflect the new options. 3799 * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros. 3800 (TARGET_KERNEL_BACKCHAIN): Removed. 3801 (TARGET_BACKCHAIN): Former triple state option change to a target flag. 3802 (TARGET_PACKED_STACK): New macro. 3803 (TARGET_SWITCHES): New switches added. 3804 (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain" 3805 removed. 3806 (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK. 3807 * config/s390/s390.md ("allocate_stack", "restore_stack_block") 3808 ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect 3809 the change in target switch semantics. 3810 * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed. 3811 (TARGET_DEFAULT): MASK_BACKCHAIN added. 3812 * doc/invoke.texi: Added documentation for the new/changed options. 3813 38142004-11-23 Uros Bizjak <uros@kss-loka.si> 3815 3816 PR rtl-optimization/18614 3817 * simplify-rtx.c (simplify_binary_operation): Do not 3818 simplify inner elements of constant arguments of 3819 VEC_CONCAT insn. 3820 38212004-11-23 Eric Botcazou <ebotcazou@libertysurf.fr> 3822 3823 * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use 3824 0 instead of NULL. 3825 38262004-11-23 Kazu Hirata <kazu@cs.umass.edu> 3827 3828 * tree-phinode.c (make_phi_node): Use a new variable, 3829 capacity, to receive the return value of ideal_phi_node_len. 3830 38312004-11-23 Eric Botcazou <ebotcazou@libertysurf.fr> 3832 3833 * gthr-solaris.h (__gthread_recursive_mutex_t): New type. 3834 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to 3835 __gthread_recursive_mutex_init_function. 3836 (__gthread_key_create): Properly cast -1. 3837 (__gthread_recursive_mutex_init_function): New function. 3838 (__gthread_recursive_mutex_lock): Rewrite. 3839 (__gthread_recursive_mutex_trylock): Likewise. 3840 (__gthread_recursive_mutex_unlock): Likewise. 3841 38422004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org> 3843 3844 * config/c4x/t-rtems: New. 3845 * config.gcc: Reflect having added c4x/t-rtems. 3846 38472004-11-23 Dorit Naishlos <dorit@il.ibm.com> 3848 3849 PR tree-opt/18403 3850 PR tree-opt/18505 3851 * tree-vectorizer.c (vect_create_data_ref_ptr): Use 3852 lang_hooks.types.type_for_size instead of integer_type_node for the 3853 type of ptr_update. 3854 38552004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org> 3856 3857 * config.gcc (h8300-*-rtems*): Use h8300/t-rtems. 3858 38592004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org> 3860 3861 * config/arm/t-rtems: New. 3862 * config.gcc: Reflect having added arm/t-rtems. 3863 38642004-11-23 Kazu Hirata <kazu@cs.umass.edu> 3865 3866 * tree-cfg.c (tree_execute_on_growing_pred): New. 3867 (tree_cfg_hooks): Add tree_execute_on_growing_pred. 3868 * tree-flow.h: Add a prototype for 3869 reserve_phi_args_for_new_edge. 3870 * tree-phinodes.c (reserve_phi_args_for_new_edge): New. 3871 (add_phi_arg): Don't resize a PHI array. 3872 38732004-11-23 Ralf Corsepius <ralf.corsepius@rtems.org> 3874 3875 * config.gcc: Add avr-*-rtems*. 3876 * config/avr/t-rtems: New. 3877 * config/avr/rtems.h: New. 3878 38792004-11-22 Daniel Berlin <dberlin@dberlin.org> 3880 3881 * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's 3882 always the same as op1. Use bitmap_ior_into and bitmap_and_into. 3883 Add comment to function. 3884 38852004-11-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 3886 3887 PR pch/14940 3888 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__. 3889 3890 PR rtl-optimization/14838 3891 * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a 3892 note. 3893 (get_last_nonnote_insn): Don't assume last insn is a note. 3894 38952004-11-22 Roger Sayle <roger@eyesopen.com> 3896 3897 * fold-const.c (nondestructive_fold_binary_to_constant): Rename 3898 to fold_binary_to_constant. 3899 (nondestructive_fold_unary_to_constant): Likewise, rename to 3900 fold_unary_to_constant. 3901 (fold_relational_hi_lo): Update call to fold_binary_to_constant. 3902 * tree.h (nondestructive_fold_binary_to_constant): Update prototype. 3903 (nondestructive_fold_unary_to_constant): Likewise. 3904 * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant 3905 and fold_binary_to_constant. 3906 * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros. 3907 (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY 3908 and EXEC_UNARY with calls to fold_*nary_to_constant. 3909 * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros. 3910 (idx_find_step): Replace uses of EXEC_BINARY with calls to 3911 fold_binary_to_constant. 3912 39132004-11-22 Nick Clifton <nickc@redhat.com> 3914 3915 * sbitmap.c (sbitmap_union_of_preds): Remove redundant 3916 initialisation of 'e'. 3917 39182004-11-22 Roger Sayle <roger@eyesopen.com> 3919 3920 * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro. 3921 * config/i386/i386.c (override_options): Set MASK_NO_FANCY_MATH_387 3922 automatically for targets without TARGET_80387. 3923 * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2, 3924 sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2, 3925 *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3, 3926 fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2, 3927 *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2, 3928 *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3, 3929 *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2, 3930 atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2, 3931 atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2, 3932 acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2, 3933 log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2, 3934 fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2, 3935 logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2, 3936 expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2, 3937 exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2, 3938 rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2, 3939 floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2, 3940 frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2, 3941 frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2): 3942 Simplify conditionals using TARGET_USE_FANCY_MATH_387. 3943 39442004-11-22 Dale Johannesen <dalej@apple.com> 3945 3946 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Conditionalize 3947 properly and comment. 3948 39492004-11-22 James A. Morrison <phython@gcc.gnu.org 3950 3951 * config/sparc/sparc.c: Include insn-codes.h and langhooks.h. 3952 (sparc_init_builtins): New function. 3953 (sparc_init_vis_builtins): Create builtin functions for VIS 3954 instructions. 3955 (sparc_expand_builtin): Expand builtin functions for VIS instructions. 3956 (TARGET_INIT_BUILTINS): Define to sparc_init_builtins. 3957 (TARGET_EXPAND_BUILTIN): Define to sparc_expand_builtin. 3958 (def_builtin): New macro for creating builtin functions. 3959 * config/sparc/sparc.md (P): New mode macro for pointer types. 3960 (UNSPEC_FPACK16, UNSPEC_FPACK32, UNSPEC_FPACKFIX, UNSPEC_FEXPAND, 3961 UNSPEC_FPMERGE, UNSPEC_MUL16AL, UNSPEC_MUL8UL, UNSPEC_MULDUL, 3962 UNSPEC_ALIGNDATA, UNSPEC_ALIGNADDR, UNSPEC_PDIST): New constants. 3963 (fpack16_vis, fpackfix_vis, fpack32_vis, fexpand_vis, fpmerge_vis, 3964 fmul8x16_vis, fmul8x16au_vis, fmul8x16al_vis, fmul8sux16_vis, 3965 fmul8ulx16_vis, fmuld8sux16_vis, fmuld8ulx16_vis, pdist_vis, 3966 faligndata<V64:mode>_vis, alignaddr<P:mode>_vis): New patterns. 3967 39682004-11-22 Devang Patel <dpatel@apple.com> 3969 3970 * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks. 3971 39722004-11-22 Devang Patel <dpatel@apple.com> 3973 3974 * tree-if-conv.c (if_convertable_phi_p): Rename to ... 3975 (if_convertible_phi_p): ... new name. 3976 (if_convertable_modify_expr_p): Rename to ... 3977 (if_convertible_modify_expr_p): ... new name. 3978 (if_convertable_stmt_p): Rename to ... 3979 (if_convertible_stmt_p): ... new name. 3980 (if_convertable_bb_p): Rename to ... 3981 (if_convertible_bb_p): ... new name. 3982 (if_convertable_loop_p): Rename to ... 3983 (if_convertible_loop_p): ... new name. 3984 39852004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr> 3986 3987 PR target/18444 3988 * configure.ac (threading): Accept 'posix95'. 3989 * configure: Regenerate. 3990 * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6, 3991 include sol26.h and default to posix95 threads if have_pthread_h. 3992 (sparc-*-solaris2*): Likewise. 3993 * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined. 3994 * gthr-posix95.h: New file. 3995 * config/sol26.h: New file. 3996 * doc/install.texi (--enable-threads): Document 'posix95'. 3997 39982004-11-23 Ben Elliston <bje@au.ibm.com> 3999 4000 * pointer-set.h (pointer_set_contains): Remove. 4001 * pointer-set.c (pointer_set_contains): Likewise. 4002 40032004-11-22 Dale Johannesen <dalej@apple.com> 4004 4005 * calls.c (expand_call): Do not call preserve_temp_slots. 4006 40072004-11-22 Kazu Hirata <kazu@cs.umass.edu> 4008 4009 * tree-flow.h: Remove the prototype for remove_phi_arg. 4010 Add a prototype for remove_phi_args. 4011 * tree-phinodes.c (remove_phi_arg): Remove. 4012 (remove_phi_args): New. 4013 * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead 4014 of remove_phi_arg. 4015 4016 * cfg.c (unchecked_make_edge): Call execute_on_growing_pred 4017 after making an edge. 4018 (remove_edge): Call execute_on_shrinking_pred before removing 4019 an edge. 4020 (redirect_edge_succ): Call execute_on_growing_pred and 4021 execute_on_shrinking_pred. 4022 * cfghooks.c (execute_on_growing_pred): New. 4023 (execute_on_shrinking_pred): Likewise. 4024 * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and 4025 execute_on_shrinking_pred. 4026 Add prototypes for execute_on_growing_pred and 4027 execute_on_shrinking_pred. 4028 * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to 4029 execute_on_growing_pred and execute_on_shrinking_pred. 4030 (cfg_layout_rtl_cfg_hook): Likewise. 4031 * tree-cfg.c (tree_cfg_hooks): Likewise. 4032 4033 * tree-cfg.c (tree_execute_on_shrinking_pred): New. 4034 (tree_cfg_hooks): Use it. 4035 * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args. 4036 (ssa_redirect_edge): Don't call remove_phi_arg_num. 4037 4038 * tree-phinodes.c (remove_phi_arg_num): Make it static. 4039 * tree-flow.h: Remove the corresponding prototype. 4040 4041 * tree-ssa.c (ssa_remove_edge): Remove. 4042 * tree-flow.h: Remove the corresponding prototype. 4043 * tree-cfg.c: Replace ssa_remove_edge with remove_edge. 4044 * basic-block.h: Likewise. 4045 * tree-if-conv.c: Likewise. 4046 * tree-ssa-threadupdate.c: Likewise. 4047 40482004-11-23 Ben Elliston <bje@au.ibm.com> 4049 4050 * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of 4051 @table to list the BSI methods. Use individual @findex directives 4052 instead of one with a comma-separated list of index entries. 4053 40542004-11-22 Zdenek Dvorak <dvorakz@suse.cz> 4055 4056 PR tree-optimization/18529 4057 * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function. 4058 (simple_operand_p): Use STRIP_NOPS. Consider SSA names simple. 4059 (fold): Call fold_to_nonsharp_ineq_using_bound. 4060 * tree-ssa-loop-niter.c (simplify_replace_tree): New function. 4061 (number_of_iterations_cond): Fold the expressions before futher 4062 processing. 4063 (tree_simplify_using_condition): Handle case when cond or expr is 4064 an EQ_EXPR specially. 4065 40662004-11-22 Daniel Berlin <dberlin@dberlin.org> 4067 4068 * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be 4069 SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes. 4070 40712004-11-22 David Edelsohn <edelsohn@gnu.org> 4072 Fariborz Jahanian <fjahanian@apple.com> 4073 4074 * config/rs6000/rs6000.c (rs6000_return_in_memory): Test 4075 TARGET_ALTIVEC_ABI. 4076 (function_arg_boundary): Align 8 to 16 byte vectors like SPE. 4077 Align 16 byte and larger vectors like Altivec. 4078 (function_arg_advance): Pass any 16 byte vector like Altivec vector. 4079 (function_arg): Same. 4080 (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI. 4081 40822004-11-22 Andrew Pinski <pinskia@physics.uc.edu> 4083 4084 PR tree-opt/18572 4085 * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying 4086 it. 4087 40882004-11-22 Richard Henderson <rth@redhat.com> 4089 4090 * function.c (assign_parm_setup_block): Revert 11-13 change to 4091 forcably re-mode a (possibly BLKmode) hard register. 4092 40932004-11-22 Eric Botcazou <ebotcazou@libertysurf.fr> 4094 4095 * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN. 4096 40972004-11-22 David Edelsohn <edelsohn@gnu.org> 4098 4099 * config/rs6000/power4.md: Remove delay between dispatch and issue 4100 associated with dispatch group slots 3 and 4. 4101 * config/rs6000/power5.md: Same. 4102 41032004-11-21 Jeff Law <law@redhat.com> 4104 4105 * cfg.c (cached_make_edge): Use find_edge rather than an inlined 4106 variant. 4107 * cfgbuild.c (make_edges): Likewise. 4108 * cfghooks.c (can_duplicate_block_p): Likewise. 4109 * cfgloop.c (loop_latch_edge): Likewise. 4110 * cfgloopmanip.c (force_single_succ_latches): Likewise. 4111 * cfgrtl.c (rtl_flow_call_edges_add): Likewise. 4112 * predict.c (predict_loops, propagate_freq): Likewise. 4113 * tracer.c (tail_duplicate): Likewise. 4114 * tree-cfg.c (disband_implicit_edges): Likewise. 4115 (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise. 4116 41172004-11-22 Nick Clifton <nickc@redhat.com> 4118 4119 * sbitmap.c (sbitmap_union_of_preds): Remove redundant 4120 initialisation of 'e'. 4121 41222004-11-22 Kazu Hirata <kazu@cs.umass.edu> 4123 4124 PR rtl-optimization/18599 4125 * regrename.c (copyprop_hardreg_forward): Speed up by putting 4126 BB_VISITED flags on basic blocks as we process them. 4127 41282004-11-22 Nathan Sidwell <nathan@codesourcery.com> 4129 4130 PR target/18531 4131 * config/rs6000/altivec.md (VI_char): New mode attribute. 4132 (addv16qi3, addv8hi3, addv4ai3): Replace with ... 4133 (add<mode>3): ... this. 4134 (subv16qi3, subv8hi3, subv4ai3): Replace with ... 4135 (sub<mode>3): ... this. 4136 (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ... 4137 (smax<mode>3): ... this. 4138 (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ... 4139 (smin<mode>3): ... this. 4140 (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ... 4141 (umax<mode>3): ... this. 4142 (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ... 4143 (umin<mode>3): ... this. 4144 (andv16qi3, andv8hi3, andv4ai3): Replace with ... 4145 (and<mode>3): ... this. 4146 (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ... 4147 (ior<mode>3): ... this. 4148 (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ... 4149 (xor<mode>3): ... this. 4150 (andv16qi3, andv8hi3, andv4ai3): Replace with ... 4151 (and<mode>3): ... this. 4152 (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ... 4153 (ior<mode>3): ... this. 4154 (altivec_vnor): Replace with ... 4155 (altivec_nor<mode>): ... this. 4156 (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ... 4157 (one_cmpl<mode>2): ... this. 4158 (altivec_vandc): New expander. 4159 (*andc<mode>3): New insn. 4160 * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names. 4161 41622004-11-22 Dorit Naishlos <dorit@il.ibm.com> 4163 4164 PR tree-opt/18536 4165 * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when 4166 creating iv instead of integer_type. 4167 (vect_build_loop_niters): Remove redundant code. 4168 (vect_transform_loop_bound): Removed (duplicates functionality of 4169 make_loop_iterate_ntimes. 4170 (vect_gen_niters_for_prolog_loop): Add documentation. Call 4171 lang_hooks.types.type_for_size to create a type of the required size. 4172 Use that type instead of integer_type. Remove redundant code. 4173 (vect_update_niters_after_peeling): Use type of niters instead of 4174 integer_type. 4175 (vect_transform_loop): Unify handling of known and unknown loop bound 4176 cases. Call make_loop_iterate_ntimes instead of 4177 vect_transform_loop_bound. 4178 41792004-11-22 Andrew Pinski <pinskia@physics.uc.edu> 4180 4181 PR target/18217 4182 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to 4183 (LIB2ADDEH): Here. 4184 41852004-11-22 Dorit Naishlos <dorit@il.ibm.com> 4186 4187 PR tree-opt/18544 4188 * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found. 4189 41902004-11-22 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 4191 4192 * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on 4193 m32r*linux. 4194 * config/m32r/t-linux (SHLIB_MAPFILES): Override to use 4195 m32r/libgcc-glibc.ver. 4196 * config/m32r/libgcc-glibc.ver: Add New file. 4197 41982004-11-22 Nathan Sidwell <nathan@codesourcery.com> 4199 4200 * bitmap.h (struct bitmap_obstack): New obstack type. 4201 (struct bitmap_head_def): Replace using_obstack with obstack 4202 pointer. 4203 (bitmap_default_obstack): New. 4204 (bitmap_initialize): Make inline, does not do allocation. 4205 (bitmap_release_memory): Remove. 4206 (bitmap_obstack_initialize, bitmap_obstack_release): Declare. 4207 (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc, 4208 bitmap_obstack_free, bitmap_malloc_free): Declare. 4209 (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust. 4210 (BITMAP_FREE): Replace with ... 4211 (BITMAP_OBSTACK_FREE): ... this. 4212 (BITMAP_XFREE): Adjust. 4213 (BITMAP_INIT_ONCE): Remove. 4214 * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove. 4215 (bitmap_default_obstack): New. 4216 (bitmap_elem_to_freelist): Adjust. 4217 (bitmap_element_allocate): Adjust. Break initialization into ... 4218 (bitmap_obstack_initialize): ... here. 4219 (bitmap_release_memory): Replace with ... 4220 (bitmap_obstack_release): ... this. 4221 (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc, 4222 bitmap_obstack_free, bitmap_malloc_free): New. 4223 (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use 4224 bitmap_initialize. 4225 (bitmap_initialize): Move to bitmap.h. 4226 * gengtype.c (open_base_files): Add obstack.h to ifiles. 4227 * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h. 4228 * basic-block.h (INIT_REG_SET): Allocate from reg_obstack. 4229 (INITIALIZE_REG_SET): Remove. 4230 (FREE_REG_SET): Use BITMAP_OBSTACK_FREE. 4231 (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove. 4232 (flow_obstack): Do not declare. 4233 (reg_obstack): Declare. 4234 * regs.h: Include obstack.h. 4235 * tree-optimize.c (tree_rest_of_compilation): Initialize and 4236 release bitmap obstack here. 4237 * bb-reorder.c: #include regs, not basic-block. 4238 (fix_crossing_conditional_branches): Allocate regsets from 4239 reg_obstack. 4240 * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or 4241 obstack.h. 4242 * caller-save.c: Include regs.h earlier. 4243 * cfg.c: Do not include basic-block.h or obstack.h. 4244 (reg_obstack): Define. 4245 * cfganal.c: Include obstack.h 4246 * cfgcleanyp.c: Do not include basic-block.h. Include regs.h 4247 earlier. 4248 * cfglayout.c: Do not include obstack.h. 4249 (flow_obstack): Remove declaration. 4250 (cfg_layout_duplicate_bb): Use reg_obstack. 4251 * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h. 4252 * cfgrtl.c (rtl_split_block): Use reg_obstack. 4253 (force_nonfallthru_and_redirect, rtl_split_edge): Likewise. 4254 (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust. 4255 (cfg_layout_split_edge): Use reg_obstack. 4256 * cse.c: Include regs.h earlier. 4257 * ddg.c: Do not include basic-block.h. 4258 * dominance.c: Inlude obstack.h. 4259 * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust. 4260 (calculate_global_regs_live): Likewise. 4261 (allocate_bb_life_data): Use reg_obstack. 4262 (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET. 4263 * global.c: Do not include basic-block.h. 4264 (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust. 4265 * graph.c: Include obstack.h. 4266 * haifa-sched.c: Do not include basic-block.h. 4267 * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust. 4268 * local-alloc.c: Do not include basic-block.h. 4269 * loop-init.c, loop-invariant.c: Include obstack.h. 4270 * loop-iv.c: Likewise. 4271 (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET, 4272 adjust. 4273 * loop-unroll.c, loop-unswitch.c: Inlude obstack.h. 4274 * modulo-sched.c: Do not include basic-block.h. 4275 * passes.c (rest_of_handle_final): Do not call 4276 regset_release_memory. 4277 * ra-debug.c: Include regs.h earlier. Do not include 4278 basic-block.h. 4279 * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust. 4280 * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET. 4281 (allocate_reg_info): Do not call MAX_REGNO_REG_SET. 4282 (regset_release_memory): Remove. 4283 * resource.c: Do not include basic-block.h. 4284 * rtlanal.c: Do not include basic-block.h. 4285 * sbitmap.c: Include obstack.h. 4286 * sched-deps.c: Do not include basic-block.h. 4287 (reg_pending_sets_head, reg_pending_clobbers_head, 4288 reg_pending_uses_head): Remove. 4289 (init_deps_global): Use OBSTACK_ALLOC_REG_SET. 4290 * sched-ebb.c: Do not include basic-block.h. 4291 * sched-rgn.c: Likewise. 4292 * tree-if-conv.c (get_loop_body_in_if_conv_order): Use 4293 BITMAP_XFREE. 4294 * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE. 4295 * tree-sra.c (decide_instantiations): Adjust bitmap 4296 initialization. 4297 * tree-ssa-dce.c: Include obstack.h. 4298 * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack. 4299 (value_insert_into_set_bitmap): Remove useless bitmap_clear. 4300 (bitmap_set_new): Likewise. 4301 (init_pre): Initialize bitmap obstack. 4302 (fini_pre): Release bitmap obstack. 4303 * tree-ssanames.c (ssa_names_to_rewrite): Make static. 4304 (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL. 4305 (mark_for_rewrite, unmark_for_rewrite): Likewise. 4306 (marked_ssa_names): Likewise. 4307 (init_ssanames): Use BITMAP_XMALLOC. 4308 (fini_ssanames): Use BITMAP_XFREE. 4309 * web.c: Include obstack.h 4310 43112004-11-22 Nick Clifton <nickc@redhat.com> 4312 4313 * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge 4314 predecessor in the first for-loop. 4315 43162004-11-21 Stan Shebs <shebs@apple.com> 4317 4318 * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add 4319 UNION_TYPE case. 4320 (function_arg): Move darwin test up, sniff mode first for 4321 efficiency, test for union type. 4322 43232004-11-21 Dale Johannesen <dalej@apple.com> 4324 4325 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Define. 4326 43272004-11-21 Jeff Law <law@redhat.com> 4328 4329 * tree-ssa.c (verify_use): Fix comment. 4330 (verify_phi_args): Check that the number of incoming edges matches 4331 the number of PHI arguments. Check that each PHI argument is 4332 either an SSA_NAME or an invariant. Coalesce tests for PHIs for 4333 dead or duplicated edges. Clear e->aux earlier and avoid separate 4334 loop to clear e->aux and test for missed edges. 4335 (verify_ssa): Remove first walk over statements. Move checking 4336 of PHI args into verify_phi_args. Move checking of statements 4337 with aliased stores and V_MAY_DEFS into the remaining loop over 4338 the statements. Register defs by walking through the formal 4339 SSA_NAME table. 4340 43412004-11-21 Roger Sayle <roger@eyesopen.com> 4342 4343 PR middle-end/18520 4344 * dojump.c (compare_from_rtx): Clarify mode argument in function 4345 description. Correct order of mode/cmp_mode arguments in call to 4346 simplify_relational_operation. Check "tem" for COMPARISON_P. 4347 43482004-11-21 Paolo Bonzini <bonzini@gnu.org> 4349 David Edelsohn <edelsohn@gnu.org> 4350 4351 PR target/17836 4352 * config/rs6000/rs6000.c (rs6000_return_in_memory): Return 4353 synthetic vectors in memory. 4354 (function_arg_boundary): Align large synthetic vectors. 4355 (rs6000_pass_by_reference): Pass synthetic vectors in memory. 4356 43572004-11-21 Jeff Law <law@redhat.com> 4358 4359 * cfg.c (update_bb_profile_for_threading): Do not rescale the 4360 successor probabilities if they are not going to change. Pull 4361 division out of loop if we do need to rescale successor probabilities. 4362 4363 * tree-ssa-threadupdate.c (redirection_data_hash): Use the 4364 index of the destination block for the hash value rather than 4365 hashing a pointer. 4366 43672004-11-20 Joseph S. Myers <joseph@codesourcery.com> 4368 4369 * c-typeck.c (build_array_ref): Don't check for index == 0. Make 4370 checks for neither argument being an array or pointer (swapping 4371 the arguments if necessary), the array argument being a pointer to 4372 or array of functions and for -Wchar-subscripts warnings upfront. 4373 43742004-11-20 Jeff Law <law@redhat.com> 4375 4376 * regrename.c (copyprop_hardreg_forward): Only search for a 4377 previously processed block if the current block only has one 4378 predecessor. 4379 43802004-11-20 Kazu Hirata <kazu@cs.umass.edu> 4381 4382 * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment 4383 typos. 4384 * config/arm/arm.c: Follow spelling conventions. 4385 43862004-11-20 Richard Earnshaw <rearnsha@arm.com> 4387 4388 * arm.c (arm_override_options): Use arm_ld_sched rather than testing 4389 a bit in tune_flags. 4390 (const_double_needs_minipool): Likewise. Split most of the code out 4391 into ... 4392 (arm_const_double_inline_cost): ... new function here. 4393 * arm-protos.h (arm_const_double_inline_cost): Add prototype. 4394 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double- 4395 word constants of length 2, 3 and 4 insns respectively. 4396 (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint. 4397 * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc] 4398 constraints. Set insn lenghts accordingly. 4399 44002004-11-19 Jeff Law <law@redhat.com> 4401 4402 * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with 4403 a hash table. Extensive modifications throughout to support 4404 that change. 4405 (struct el): New. 4406 (struct local_info): New. 4407 (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE 4408 fields. 4409 (redirection_data): Now a hashtable. 4410 (redirection_data_hash, redirection_data_eq): New. 4411 (lookup_redirection_data, create_duplicates): New. 4412 (create_edge_and_update_destionation_phis): New. 4413 (fixup_template_block, redirect_edges): New. 4414 (thread_block): Use hash table traversals instead of loops over 4415 varray entries or incoming edge vectors. 4416 44172004-11-19 Kazu Hirata <kazu@cs.umass.edu> 4418 4419 * basic-block.h (edge_def): Add dest_idx. 4420 * cfg.c (unchecked_make_edge): Initialize dest_idx. 4421 (remove_edge): Simplify the disconnection of an edge from its 4422 destination. 4423 (redirect_edge_succ): Likewise. 4424 * cfghooks.c (verify_flow_info): Check the consistency of 4425 dest_idx for each edge. 4426 44272004-11-19 Aldy Hernandez <aldyh@redhat.com> 4428 4429 * simplify-rtx.c (simplify_ternary_operation): Use 4430 gen_int_mode. 4431 44322004-11-19 Kazu Hirata <kazu@cs.umass.edu> 4433 4434 * tree-cfg.c (reinstall_phi_args): New. 4435 (tree_split_edge): Use it after redirecting an edge. Don't 4436 modify PHI_ARG_EDGE. 4437 44382004-11-19 Andreas Tobler <a.tobler@schweiz.ch> 4439 4440 * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only 4441 if checking is enabled. 4442 44432004-11-19 Joseph S. Myers <joseph@codesourcery.com> 4444 4445 * c-decl.c (push_scope): Remove "\n" from end of diagnostic for 4446 too many nested scopes. 4447 44482004-11-19 Dorit Naishlos <dorit@il.ibm.com> 4449 4450 PR tree-opt/18181 4451 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme 4452 changed to suppoer uses-after-loop and to void creating flow paths 4453 that shouldn't exist. 4454 (slpeel_update_phi_nodes_for_guard): Takes additional two arguments. 4455 Modified to fit the new peeling scheme. Avoid quadratic behavior. 4456 (slpeel_add_loop_guard): Takes additional argument. 4457 (slpeel_verify_cfg_after_peeling): New function. 4458 (vect_update_ivs_after_vectorizer): Takes additional argument. Updated 4459 documentation. Use 'exit-bb' instead of creating 'new-bb'. 4460 (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit 4461 the new peeling scheme. 4462 (copy_phi_nodes): Function removed. Its functionality moved to 4463 update_phis_for_duplicate_loop. 4464 (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes 4465 moved here. Added documentation. Modified to fit the new peeling scheme. 4466 (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not 4467 needed - done in slpeel_tree_peel_loop_to_edge. 4468 (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted. 4469 (vect_do_peeling_for_loop_bound): Add documentation. Call 4470 slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer 4471 with additional argument. 4472 (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling. 4473 4474 (vect_finish_stmt_generation): Avoid 80 column oveflow. 4475 44762004-11-19 Dorit Naishlos <dorit@il.ibm.com> 4477 4478 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two 4479 arguments removed. 4480 (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes 4481 without last two arguments. Update single_exit of loops. 4482 (vect_update_niters_after_peeling): Removed. Its functionality was 4483 moved to vect_do_peeling_for_alignment. 4484 (vect_do_peeling_for_loop_bound): New name for function previously 4485 called vect_transform_for_unknown_loop_bound. 4486 (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes 4487 instead of code that duplicates the same functionality. 4488 (vect_do_peeling_for_alignment): Functionality of 4489 vect_update_niters_after_peeling moved here. 4490 (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound - 4491 previously named vect_transform_for_unknown_loop_bound - for both known 4492 and unknown loop bound cases. 4493 44942004-11-19 Dorit Naishlos <dorit@il.ibm.com> 4495 4496 * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function 4497 previously called verify_loop_for_duplication. All conditions compacted 4498 into one compound condition. Removed debug dumps. 4499 (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the 4500 functionality moved to vect_can_advance_ivs_p, and some to 4501 vect_analyze_loop_form. 4502 (vect_can_advance_ivs_p): New function. Contains functionality that was 4503 taken out of vect_analyze_loop_with_symbolic_num_of_iters. 4504 (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p. 4505 (vect_analyze_operations): Call vect_can_advance_ivs_p and 4506 slpeel_can_duplicate_loop_p. 4507 (vect_get_loop_niters): Added documentation. 4508 (vect_analyze_loop_form): Check the loop entry always - not only in case 4509 of unknown loop bound. Create preheader and exit bb if necessary. Apply 4510 a check that used to take place in 4511 vect_analyze_loop_with_symbolic_num_of_iters. 4512 (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING. 4513 Remove redundant call to rewrite_into_loop_closed_ssa. 4514 (vect_compute_data_refs_alignment): Removed obsolete comment. 4515 45162004-11-19 Dorit Naishlos <dorit@il.ibm.com> 4517 4518 * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for 4519 function previously called tree_duplicate_loop_to_edge. 4520 (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function 4521 previously called tree_duplicate_loop_to_edge_cfg. 4522 (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to 4523 function name. 4524 (slpeel_update_phi_nodes_for_guard): Likewise. 4525 (slpeel_make_loop_iterate_ntimes): Likewise. 4526 (slpeel_add_loop_guard): Likewise. 4527 (allocate_new_names, free_new_names): Function declaration moved to top 4528 of file. 4529 (rename_use_op, rename_def_op): Likewise. 4530 (rename_variables_in_bb, rename_variables_in_loop): Likewise. 4531 (vect_generate_tmps_on_preheader): Function declaration moved. 4532 (vect_transform_for_unknown_loop_bound): Added missing function 4533 declaration. 4534 45352004-11-19 Andrew Pinski <pinskia@physics.uc.edu> 4536 4537 PR tree-opt/18507 4538 * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree). 4539 Define a VEC(tree_on_heap) for head. 4540 (register_new_def): Change second argument to be a VEC(tree_on_heap). 4541 * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap). 4542 (tree_ssa_dominator_optimize): Initialize block_defs_stack with 4543 the VEC(tree_on_heap) function. Also free it before returning. 4544 (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE 4545 for block_defs_stack. 4546 (restore_currdefs_to_original_value): Use VEC_length instead of 4547 VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP. 4548 (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE 4549 for block_defs_stack. 4550 * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap). 4551 (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE 4552 for block_defs_stack. 4553 (ssa_register_new_def): Likewise. 4554 (ssa_rewrite_initialize_block): Likewise. 4555 (rewrite_finalize_block): Use VEC_length instead of 4556 VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP. 4557 (ssa_rewrite_finalize_block): Likewise. 4558 (register_new_def): Change second argument to be a VEC(tree_on_heap). 4559 Use VEC_safe_push instead of VARRAY_PUSH_TREE. 4560 (rewrite_blocks): Initialize block_defs_stack with 4561 the VEC(tree_on_heap) function. Also free it before returning. 4562 (rewrite_ssa_into_ssa): Likewise. 4563 45642004-11-19 Fariborz Jahanian <fjahanian@apple.com> 4565 4566 * config/darwin.c (machopic_data_defined_p): return 1 for 4567 MACHOPIC_DEFINED_FUNCTION. 4568 45692004-11-19 Jeff Law <law@redhat.com> 4570 4571 * tree-ssa.c (verify_ssa): Remove redundant checking of PHI 4572 arguments. 4573 45742004-11-19 Paul Brook <paul@codesourcery.com> 4575 4576 PR target/17735 4577 * varasm.c (default_assemble_integer): Allow pointer-sized values. 4578 Expand comment. 4579 45802004-11-19 Nick Clifton <nickc@redhat.com> 4581 4582 * config/stormy16/stormy16.c (combine_bnp): Add code to handle 4583 zero_extension and lshiftrt insns. 4584 Replace uses of XEXP(...) with either SET_DEST() or SET_SRC() 4585 where appropriate. 4586 * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns 4587 to handle bp and bn insn patterns with a zero_extend rtx 4588 inside them. 4589 45902004-11-19 Ian Lance Taylor <ian@wasabisystems.com> 4591 4592 * config/arm/arm.md (generic_sched): Make const. 4593 45942004-11-19 Kazu Hirata <kazu@cs.umass.edu> 4595 4596 * emit-rtl.c (classify_insn): Make it static. 4597 * rtl.h: Remove the corresponding prototype. 4598 4599 * integrate.c (has_func_hard_reg_initial_val, 4600 get_func_hard_reg_initial_val): Make them static. 4601 * integrate.h: Remove the corresponding prototypes. 4602 46032004-11-19 Ben Elliston <bje@au.ibm.com> 4604 4605 * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0. 4606 (dw2_asm_output_delta_sleb128): Likewise. 4607 * dwarf2asm.c (dw2_asm_output_pcrel): Likewise. 4608 (dw2_asm_output_delta_sleb128): Likewise. 4609 46102004-11-19 Adam Nemet <anemet@lnxw.com> 4611 4612 * tree-ssa-alias.c: Fix comment. 4613 46142004-11-19 Kazu Hirata <kazu@cs.umass.edu> 4615 4616 * tree-outof-ssa.c: Fix a comment typo. 4617 46182004-11-19 Ben Elliston <bje@au.ibm.com> 4619 4620 * predict.h (predict_insn): Remove extern declaration. 4621 * predict.c (predict_insn): Make static. 4622 46232004-11-19 Alan Modra <amodra@bigpond.net.au> 4624 4625 * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs. 4626 46272004-11-18 Nicolas Pitre <nico@cam.org> 4628 4629 * config/arm/arm.c (const_double_needs_minipool): New function to 4630 determine if a CONST_DOUBLE should be pushed to the minipool. 4631 (note_invalid_constants): Use it. 4632 46332004-11-18 Paul Brook <paul@codesourcery.com> 4634 4635 * config/arm/arm.c (target_float_switch): New variable.. 4636 (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and 4637 target_float_switch. 4638 * config/arm/arm.h (target_float_switch): Declare. 4639 (ARM_FLAG_SOFT_FLOAT): Remove. 4640 (TARGET_SWITCHES): Remove hard-float and soft-float. 4641 (TARGET_OPTIONS): Add hard-float and soft-float. 4642 (TARGET_DEFAULT_FLOAT_ABI): Define. 4643 * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define 4644 (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT. 4645 * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT. 4646 * config/arm/netbsd-elf.h: Ditto. 4647 * config/arm/netbsd.h: Ditto. 4648 * config/arm/pe.h: Ditto. 4649 * config/arm/unknown-elf.h: Ditto. 4650 * config/arm/wince-pe.h: Ditto. 4651 * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define. 4652 * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define. 4653 * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define. 4654 46552004-11-18 Nathan Sidwell <nathan@codesourcery.com> 4656 4657 * config/rs6000/altivec.md (VI, VF, V): New mode macros. 4658 (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi, 4659 altivec_lvx_4sf): Rename and replace with ... 4660 (altivec_lvx_<mode>): ... mode macro version. 4661 (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi, 4662 altivec_stvx_4sf): Rename and replace with ... 4663 (altivec_stvx_<mode>): ... mode macro version. 4664 (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ... 4665 (mov<mode>): ... mode macro version. 4666 (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1, 4667 *movv4sf_internal1): Replace with ... 4668 (*mov<mode>_internal): ... mode macro version. 4669 (get_vrsave_internal, *set_vrsave_internal, *save_world, 4670 *restore_world): Unquote output statements. 4671 * config/rs6000/rs6000.c (altivec_expand_ld_builtin, 4672 altivec_expand_st_builtin): Adjust insn names. 4673 46742004-11-18 Aldy Hernandez <aldyh@redhat.com> 4675 4676 * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert 4677 previous change. 4678 (rs6000_override_options): Likewise. 4679 (spe_build_register_parallel): Handle complex doubles on e500v2. 4680 (rs6000_spe_function_arg): Likewise. 4681 (function_arg): Likewise. 4682 (rs6000_function_value): Likewise. 4683 (rs6000_libcall_value): Likewise. 4684 46852004-11-18 Andrew Pinski <pinskia@physics.uc.edu> 4686 4687 * ifcvt.c (find_if_block): Move the check for the number of edges 4688 above the loops checking for complex edges. 4689 Remove the counting of edges as we use EDGE_COUNT now. 4690 46912004-11-18 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn> 4692 4693 * config/m32r/linux.h (TARGET_ASM_FILE_END): Set 4694 TARGET_ASM_FILE_END to file_end_indicate_exec_stack. 4695 46962004-11-18 Andreas Schwab <schwab@suse.de> 4697 4698 * config/i386/i386.md (define_peephole2): Revert last change. 4699 47002004-11-18 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.comn> 4701 4702 * config/m32r/linux.h (TARGET_ASM_FILE_END): Set 4703 TARGET_ASM_FILE_END to file_end_indicate_exec_stack. 4704 47052004-11-18 Diego Novillo <dnovillo@redhat.com> 4706 4707 * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead 4708 of FOR_EACH_BB. 4709 47102004-11-18 Jon Grimm <jgrimm2@us.ibm.com> 4711 4712 * Makefile.in (macro_list): Depend on s-macro_list. 4713 (s-macro_list): New target. 4714 47152004-11-18 Nathan Sidwell <nathan@codesourcery.com> 4716 4717 PR target/17107 4718 * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ... 4719 (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here. 4720 (fold_range_test): Adjust. 4721 (fold_truthop): Use it. 4722 * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ... 4723 (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here. 4724 47252004-11-18 Uros Bizjak <uros@kss-loka.si> 4726 4727 * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to 4728 insn split constraint. 4729 (define_peephole2): Remove unneeded "&& 1" from peephole2 4730 constraints. 4731 47322004-11-18 Ben Elliston <bje@au.ibm.com> 4733 4734 * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item 4735 element for bsi_prev; use @findex instead. 4736 47372004-11-18 Ben Elliston <bje@au.ibm.com> 4738 4739 * opts.h (add_input_filename): Remove extern declaration. 4740 * opts.c (add_input_filename): Make static. 4741 47422004-11-17 Mark Mitchell <mark@codesourcery.com> 4743 4744 * config/i386/i386.c (i386_solaris_elf_named_section): Mark with 4745 ATTRIBUTE_UNUSED. 4746 47472004-11-17 Zack Weinberg <zack@codesourcery.com> 4748 4749 * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN. 4750 * system.h: Poison it. 4751 * doc/tm.texi: Delete its documentation. 4752 47532004-11-18 Daniel Jacobowitz <dan@codesourcery.com> 4754 Mark Mitchell <mark@codesourcery.com> 4755 4756 * config/i386/sol2-10.h, config/i386/t-sol2-10: New files. 4757 * config/i386/i386.c (i386_solaris_elf_named_section): New 4758 function. 4759 * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10. 4760 * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle 4761 64-bit. 4762 (ASM_QUAD): Don't undefine for biarch targets. 4763 * config/i386/t-sol2: Introduce multilib support. 4764 47652004-11-18 Ben Elliston <bje@au.ibm.com> 4766 4767 * cgraphunit.c: Replace "it's" with "its" and fix a typo. 4768 47692004-11-18 Ben Elliston <bje@au.ibm.com> 4770 4771 * cgraph.h: Replace "it's" with "its" throughout. 4772 47732004-11-18 Ben Elliston <bje@au.ibm.com> 4774 4775 * doc/rtl.texi (Flags): Grammar fix. 4776 47772004-11-17 Kazu Hirata <kazu@cs.umass.edu> 4778 4779 * expmed.c (alg_code): Add alg_unknown. 4780 (alg_hash_entry): New. 4781 (NUM_ALG_HASH_ENTRIES): Likewise. 4782 (alg_hash): Likewise. 4783 (synth_mult): Cache the result into alg_hash. 4784 47852004-11-17 Zack Weinberg <zack@codesourcery.com> 4786 4787 * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with 4788 config/rs6000/libgcc-ppc64.ver. 4789 47902004-11-17 Kazu Hirata <kazu@cs.umass.edu> 4791 4792 * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when 4793 checking if an unconditional return is followed by a barrier. 4794 4795 * jump.c (condjump_p): Remove unreachable code. 4796 4797 * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h, 4798 tree-chrec.h, tree-flow.h, tree-scalar-evolution.h, 4799 tree-ssa-live.h, tree.h: Remove unused prototypes. 4800 48012004-11-17 Jeff Law <law@redhat.com> 4802 4803 * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader. 4804 (edge_to_cases_elt): Renamed from edge_to_case_leader. 4805 (edge_to_cases_hash): Renamed from edge_to_case_leader_hash. 4806 (edge_to_cases_eq): Renamed from edge_to_case_leader_eq. 4807 (edge_to_cases_cleanup, recording_case_labels_p): New functions. 4808 (get_cases_for_edge): New function. 4809 (start_recording_case_labels, end_recording_case_labels): Similarly. 4810 (record_switch_edge): Don't muck with the CASE_LABEL. Instead 4811 chain equivalent CASE_LABEL_EXPRs together. 4812 (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill. 4813 (make_switch_expr_edges): Do not record edge/cases here. 4814 (cleanup_tree_cfg): Record cases around the call to thread_jumps. 4815 (split_critical_edges): Record cases around the edge splitting code. 4816 (cleanup_dead_labels): Use CASE_LABEL again. 4817 (tree_redirect_edge_and_branch): If we have a mapping from edge 4818 to cases, use it to handle redirections. Else do it the slow way. 4819 * tree.h (CASE_LEADER_OR_LABEL): Kill. 4820 (CASE_LABEL): Revert to just looking at the tree's second operand. 4821 * tree.c (get_case_label): Kill. 4822 48232004-11-17 Diego Novillo <dnovillo@redhat.com> 4824 4825 PR tree-optimization/18307 4826 * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and 4827 'orig' are the same node. 4828 (collect_points_to_info_r): Do not call merge_pointed_to_info 4829 when the PHI argument is identical to the LHS. 4830 48312004-11-17 Steven Bosscher <stevenb@suse.de> 4832 4833 * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying 4834 to insert the exit or entry block. 4835 (ssa_prop_init): Use add_control_edge to seed the algorithm. 4836 48372004-11-16 Zack Weinberg <zack@codesourcery.com> 4838 4839 * mkmap-flat.awk, mkmap-symver.awk: If the last version 4840 assigned to a symbol was '%exclude', do not emit it anywhere. 4841 If leading_underscore is true, prefix all symbols from the 4842 version scripts with a leading underscore before comparing 4843 them with nm output or emitting them. Remove support for dot 4844 symbols. 4845 * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk. 4846 (SHLIB_MAPFILES): Use libgcc-std.ver. 4847 (SHLIB_MKMAP_OPTS): Enable leading-underscore mode. 4848 (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP). 4849 * config/sh/t-linux: Use the normal libgcc-std.ver, plus 4850 libgcc-excl.ver and libgcc-glibc.ver. 4851 4852 * config/sh/libgcc-excl.ver: New file. 4853 * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete. 4854 48552004-11-16 Daniel Berlin <dberlin@dberlin.org> 4856 4857 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap 4858 the test when the edge has the opposite meaning, not when 4859 the first argument is invariant. 4860 48612004-11-16 Aldy Hernandez <aldyh@redhat.com> 4862 4863 * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2 4864 doubles. 4865 (rs6000_complex_function_value): Handle e500 v2 variant. 4866 48672004-11-16 Daniel Berlin <dberlin@dberlin.org> 4868 4869 Fix PR tree-optimization/18519 4870 4871 * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg. 4872 * tree-pass.h: Add TODO_cleanup_cfg. 4873 * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg. 4874 (ccp_finalize): Remove call to cleanup_cfg. 4875 * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func. 4876 (pass_cd_dce): Ditto. 4877 (perform_tree_ssa_dce): Remove call to cleanup_cfg, 4878 dump_function_to_file. 4879 * tree-ssa-loop-ch.c (copy_loop_headers): Remove call 4880 to cleanup_cfg. 4881 (pass_ch): Add TODO_cleanup_cfg. 4882 * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to 4883 cleanup_cfg. 4884 (pass_loop_done): Add TODO_cleanup_cfg. 4885 * tree-ssa-phiopt.c (pass_phiopt): Ditto. 4886 (tree_ssa_phiopt): Remove call to cleanup_cfg. 4887 48882004-11-16 Devang Patel <dpatel@apple.com> 4889 4890 * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use. 4891 48922004-11-16 Kazu Hirata <kazu@cs.umass.edu> 4893 4894 * expmed.c, ra-colorize.c: Fix comment typos. 4895 4896 * doc/tm.texi: Fix typos. 4897 48982004-11-16 Daniel Jacobowitz <dan@codesourcery.com> 4899 Mark Mitchell <mark@codesourcery.com> 4900 4901 PR target/6123 4902 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and 4903 __pic__ if PIC. 4904 49052004-11-16 Ulrich Weigand <uweigand@de.ibm.com> 4906 4907 * regmove.c (regmove_optimize): Use lowpart_subreg instead of 4908 gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG. 4909 49102004-11-16 Devang Patel <dpatel@apple.com> 4911 4912 * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check. 4913 49142004-11-16 Eric Christopher <echristo@redhat.com> 4915 4916 * config/mips/mips.c: Use rtl _P predicates. 4917 * config/mips/mips.h: Ditto. 4918 * config/mips/mips.md: Ditto. 4919 49202004-11-16 Fariborz Jahanian <fjahanian@apple.com> 4921 4922 * config/rs6000/altivec.md (altivec_vandc): Canonicalize 4923 the pattern. 4924 49252004-11-16 Andreas Krebbel <krebbel1@de.ibm.com> 4926 4927 * config/s390/s390.c (s390_cc_modes_compatible): New function. 4928 (TARGET_CC_MODES_COMPATIBLE): Target macro defined. 4929 49302004-11-16 Kaz Kojima <kkojima@gcc.gnu.org> 4931 4932 PR target/18447 4933 * config/sh/sh.c (prepare_move_operands): Emit blockage insns 4934 before and after the insns for getting GOT address in non-PIC 4935 TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling 4936 is enabled. 4937 49382004-11-16 Andreas Krebbel <krebbel1@de.ibm.com> 4939 4940 * cse.c (struct change_cc_mode_args): New structure. 4941 (cse_change_cc_mode_insn): New function. 4942 (cse_change_cc_mode): Use validate_change to perfom changes. 4943 (cse_change_cc_mode_insns, cse_condition_code_reg): 4944 Call cse_change_cc_mode_insn. 4945 49462004-11-16 Steven Bosscher <stevenb@suse.de> 4947 4948 * stack.h: Remove. 4949 49502004-11-16 Steven Bosscher <stevenb@suse.de> 4951 4952 * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8. 4953 49542004-11-15 Dale Johannesen <dalej@apple.com> 4955 4956 * tree-flow.h (add_referenced_temp_var): Remove name from prototype. 4957 49582004-11-15 Dale Johannesen <dalej@apple.com> 4959 4960 * profile.c (compute_branch_probabilities): Prevent 4961 crash with EH in RTL-based profiling. 4962 49632004-11-16 Kazu Hirata <kazu@cs.umass.edu> 4964 4965 * tree-cfg.c (verify_expr): Replace TREE_OPERAND with 4966 COND_EXPR_COND. 4967 * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. 4968 * tree-ssa-dom.c (thread_across_edge): Likewise. 4969 * tree-vectorizer.c (vect_transform_loop_bound): Replace 4970 TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or 4971 COND_EXPR_ELSE. 4972 4973 * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument. 4974 (tree_flow_call_edges_add): Update the call to 4975 bsi_commit_edge_inserts. 4976 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. 4977 * profile.c (branch_prob): Likewise. 4978 * tree-mudflap.c (mf_decl_cache_locals): Likewise. 4979 * tree-sra.c (scalarize_function): Likewise. 4980 * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. 4981 * tree-ssa-pre.c (fini_pre): Likewise. 4982 * tree-flow.h: Update the prototype for 4983 bsi_commit_edge_inserts. 4984 49852004-11-15 Eric Christopher <echristo@redhat.com> 4986 4987 * sched-deps.c (set_sched_group_p): Delete. 4988 (delete_all_dependencies): New function. 4989 (fixup_sched_groups): Use. New function. 4990 (sched_analyze_insn): Use. 4991 49922004-11-15 Joseph S. Myers <joseph@codesourcery.com> 4993 4994 * c-common.c (binary_op_error): Don't allow LROTATE_EXPR, 4995 RROTATE_EXPR or unknown code. 4996 * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR, 4997 LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR, 4998 UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR 4999 or unknown code. 5000 50012004-11-15 Joseph S. Myers <joseph@codesourcery.com> 5002 5003 PR c/18498 5004 * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width 5005 after processing the declarator. 5006 50072004-11-15 Aldy Hernandez <aldyh@redhat.com> 5008 5009 * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with 5010 vec_duplicate. 5011 (altivec_vspltb): Same. 5012 (altivec_vspltw): Same. 5013 (altivec_vspltisb): Same. 5014 (altivec_vspltish): Same. 5015 (altivec_vspltisw): Same. 5016 (altivec_vspltisw_v4sf): Same. 5017 (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW, 5018 UNSPEC_VSPLTISH. 5019 Move "End of vector xor's" comment to the right place. 5020 50212004-11-15 Steve Ellcey <sje@cup.hp.com> 5022 5023 * config/ia64/ia64.md (*movtf_internal): Use destination_operand 5024 instead of nonimmediate_operand. 5025 50262004-11-15 Mark Mitchell <mark@codesourcery.com> 5027 5028 * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand. 5029 * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise. 5030 * config/sol2.c (solaris_output_init_fini): Update calls to 5031 ASM_OUTPUT_CALL. Include "rtl.h". 5032 50332004-11-15 Mark Mitchell <mark@codesourcery.com> 5034 5035 * config/sol2-c.c (cmn_err_char_table): Add "p". 5036 50372004-11-15 Mark Mitchell <mark@codesourcery.com> 5038 5039 * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove. 5040 * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here. 5041 50422004-11-15 Mark Mitchell <mark@codesourcery.com> 5043 5044 * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely 5045 within the multilib directory. 5046 50472004-11-15 Nick Clifton <nickc@redhat.com> 5048 5049 * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add 5050 builtin assert of cpu=xstormy16. 5051 50522004-11-15 Nathan Sidwell <nathan@codesourcery.com> 5053 5054 * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized 5055 variable. 5056 50572004-11-14 Richard Henderson <rth@redhat.com> 5058 5059 PR 18480 5060 * calls.c (struct arg_data): Add parallel_value. 5061 (precompute_register_parameters): Set it. 5062 (load_register_parameters): Use it. 5063 (store_one_arg): Also set it here. 5064 50652004-11-14 Zdenek Dvorak <dvorakz@suse.cz> 5066 5067 PR tree-optimization/18431 5068 * fold-const.c (associate_trees): Do not produce x + 0. 5069 (fold_widened_comparison, fold_sign_changed_comparison): New functions. 5070 (fold): Use them. 5071 * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type): 5072 Moved ... 5073 * tree.c (upper_bound_in_type, lower_bound_in_type): Here. 5074 * tree.h (upper_bound_in_type, lower_bound_in_type): Declare. 5075 50762004-11-14 Eric Botcazou <ebotcazou@libertysurf.fr> 5077 5078 * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example. 5079 50802004-11-14 Kazu Hirata <kazu@cs.umass.edu> 5081 5082 * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c, 5083 value-prof.c: Fix comment typos. 5084 50852004-11-14 Stan Shebs <shebs@apple.com> 5086 5087 Basic ABI changes for passing structs by value in 64-bit Darwin. 5088 * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag. 5089 (rs6000_override_options): Set it for 64-bit Darwin. 5090 (rs6000_parse_abi_options): Add testing options to change it. 5091 (rs6000_return_in_memory): Test whether the type is one 5092 that can be passed in registers. 5093 (darwin64_function_arg_advance): New. 5094 (function_arg_advance): Call it, plus add recursion depth 5095 argument and test when counting off arguments. 5096 (rs6000_darwin64_function_arg): New. 5097 (function_arg): Call it. 5098 (setup_incoming_varargs): Add argument to function_arg_advance. 5099 (rs6000_darwin64_function_value): New. 5100 (rs6000_function_value): Call it. 5101 * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg. 5102 * config/rs6000/rs6000-protos.h: Update decl of 5103 function_arg_advance. 5104 51052004-11-14 Andrew Pinski <pinskia@physics.uc.edu> 5106 5107 PR c/17279 5108 * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we 5109 support TImode before adding __int128_t and __uint128_t types. 5110 51112004-11-14 Dorit Naishlos <dorit@il.ibm.com> 5112 5113 PR tree-opt/18400 5114 * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations. 5115 (vect_transform_loop_bound): Set loop->nb_iterations. 5116 51172004-11-14 Dorit Naishlos <dorit@il.ibm.com> 5118 Andrew Pinski <pinskia@physics.uc.edu> 5119 5120 PR tree-opt/18425 5121 * tree-vectorize.c (vect_build_loop_niters): Do not insert 5122 NULL into the instruction stream. Initialize new_bb to NULL. 5123 (vect_update_ivs_after_vectorizer): Likewise. 5124 (vect_gen_niters_for_prolog_loop): Likewise. 5125 51262004-11-14 Zdenek Dvorak <dvorakz@suse.cz> 5127 5128 PR tree-optimization/18431 5129 * tree-flow.h (stmt_references_memory_p): Declare. 5130 * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p. 5131 * tree-ssa.c (stmt_references_memory_p): New function. 5132 51332004-11-14 Andreas Schwab <schwab@suse.de> 5134 5135 * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on 5136 $(EXPR_H). 5137 51382004-11-14 Kazu Hirata <kazu@cs.umass.edu> 5139 5140 * c-common.c (walk_stmt_tree): Remove. 5141 * c-common.h: Remove the corresponding prototype. 5142 5143 * emit-rtl.c (push_to_full_sequence): Remove. 5144 * rtl.h: Remove the corresponding prototype. 5145 5146 * cselib.c, expr.c: Fix comment typos. 5147 51482004-11-13 Richard Henderson <rth@redhat.com> 5149 5150 * calls.c (precompute_register_parameters): Force all PARALLELs 5151 into pseudo registers. 5152 (load_register_parameters): Copy PARALLELs into hard registers. 5153 * function.c (assign_parm_setup_block): Copy PARALLELS into 5154 pseudo registers. Do emit_group_store in conversion_insns. 5155 * expr.c (emit_group_load_1): Rename from emit_group_load, take 5156 tmps as an argument. Move final copy loop ... 5157 (emit_group_load): ... here. New function. 5158 (emit_group_load_into_temps, emit_group_move_into_temps): New. 5159 * expr.h: Declare them. 5160 51612004-11-14 Kazu Hirata <kazu@cs.umass.edu> 5162 5163 * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c, 5164 tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN 5165 with PHI_CHAIN where appropriate. 5166 51672004-11-13 Dale Johannesen <dalej@apple.com> 5168 5169 * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype. 5170 (tree_block_label): Ditto. 5171 (flush_pending_stmts): Ditto. 5172 (insert_edge_copies): Ditto. 5173 (expr_invariant_in_loop_p): Ditto. 5174 (TDF_USE_OPS): Parenthesize definition. 5175 (TDF_USE_VOPS): Ditto. 5176 51772004-11-13 David Edelsohn <edelsohn@gnu.org> 5178 5179 * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5. 5180 * config/rs6000/aix52.h (ASM_CPU_SPEC): Same. 5181 (atoll): Declare. 5182 * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define. 5183 51842004-11-14 Joseph Myers <joseph@codesourcery.com> 5185 5186 * config/i386/i386.c (override_options): Move loop to set default 5187 tuning to correct place. 5188 51892004-11-13 Zak Kipling <zak@transversal.com> 5190 5191 PR target/18300 5192 * config/i386/i386.c (classify_argument): Fix infinite loop when 5193 passing object with 3 or more base classes by value. 5194 51952004-11-13 Eric Botcazou <ebotcazou@libertysurf.fr> 5196 5197 * doc/md.texi (constraints) <% modifier>: Mention that it is 5198 useless when the two alternatives are strictly identical. 5199 52002004-11-13 Richard Henderson <rth@redhat.com> 5201 5202 * expmed.c (extract_split_bit_field): Temporarily disable call to 5203 extract_force_align_mem_bit_field. 5204 52052004-11-13 Kazu Hirata <kazu@cs.umass.edu> 5206 5207 * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment 5208 formatting. 5209 5210 * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c, 5211 lambda-code.c, postreload.c, predict.c, tree-sra.c, 5212 tree-ssa-loop-manip.c, tree.c: Fix comment typos. 5213 52142004-11-13 Kelley Cook <kcook@gcc.gnu.org> 5215 5216 * doc/install.texi (automake): Correctly document that everything now 5217 will use automake 1.9.3. 5218 52192004-11-13 Hans-Peter Nilsson <hp@bitrange.com> 5220 5221 PR target/18347 5222 * config/mmix/mmix.c (mmix_function_outgoing_value): Handle 5223 TImode. Sorry for other non-complex larger-than-64-bit modes. 5224 * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define. 5225 52262004-11-13 Kelley Cook <kcook@gcc.gnu.org> 5227 5228 * doc/install.texi (automake): Document that everything now uses 1.9. 5229 52302004-11-13 Bernd Schmidt <bernd.schmidt@analog.com> 5231 5232 * cse.c (cse_insn): Stores in a libcall sequence can invalidate 5233 previous loads. 5234 52352004-11-13 Kazu Hirata <kazu@cs.umass.edu> 5236 5237 * tree.h: Fix comment typos. 5238 52392004-11-13 Steven Bosscher <stevenb@suse.de> 5240 5241 * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and 5242 HARD_REGISTER_NUM_P. 5243 5244 * cselib.c (new_cselib_val): Make comment correct and more detailed. 5245 * flow.c (mark_set_1): Likewise. 5246 5247 * except.c (duplicate_eh_region_1, duplicate_eh_region_2, 5248 duplicate_eh_regions): Remove. 5249 * except.h (duplicate_eh_regions): Remove prototype. 5250 * integrate.c (get_label_from_map, copy_rtx_and_substitute, 5251 global_const_equiv_varray): Remove. 5252 * integrate.h (get_label_from_map, copy_rtx_and_substitute, 5253 global_const_equiv_varray, set_label_in_map): Remove prototypes, 5254 extern declaration, and #define. 5255 (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove. 5256 (struct inline_remap): Remove. 5257 * varray.c (struct element): Remove entry for const_equiv_data. 5258 * varray.h (struct const_equiv_data): Remove. 5259 (enum varray_data_enum) <VARRAY_DATA_CONST_EQUIV>: Remove. 5260 (union varray_data_tag) <const_equiv>: Remove. 5261 (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV, 5262 VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove. 5263 5264 * regstack.c (record_label_references): Remove unused function. 5265 5266 * rtl.def (VALUE): Update comment. 5267 (LABEL_REF): Remove unused operand 2. 5268 * rtl.h (struct rtx_def): Update for removed accessor macros. 5269 (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN, 5270 REG_LOOP_TEST_P): Remove. 5271 (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments. 5272 * web.c (entry_register): Don't copy REG_LOOP_TEST_P. 5273 * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove. 5274 52752004-11-13 James A. Morrison <phython@gcc.gnu.org> 5276 Eric Botcazou <ebotcazou@libertysurf.fr> 5277 5278 PR target/18230 5279 * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector 5280 patterns. 5281 * config/sparc/sparc.md (V64I): New macro for 64-bit modes. 5282 (V32I): New macro for 32-bit modes. 5283 (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64, 5284 iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64, 5285 xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter, 5286 xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32, 5287 one_cmpldi_sp64): Use V64I instead of DI. 5288 (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si, 5289 xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI. 5290 (addv2si3, addv4hi3, addv2hi3): Remove % modifier. 5291 (nandv64i_vis, nandv32i_vis): New patterns. 5292 52932004-11-12 Mike Stump <mrs@apple.com> 5294 5295 * Makefile.in: Add html support. 5296 * java/Make-lang.in: Likewise. 5297 * fortran/Make-lang.in: Likewise. 5298 * treelang/Make-lang.in: Likewise. 5299 * doc/install.texi: Likewise. 5300 * doc/makefile.texi: Likewise. 5301 * doc/sourcebuild.texi: Likewise. 5302 53032004-11-13 Kazu Hirata <kazu@cs.umass.edu> 5304 5305 * tree-ssa-loop-manip.c: Fix a comment typo. 5306 53072004-11-12 Mike Stump <mrs@apple.com> 5308 5309 * doc/cppinternals.texi (Index): Fix html generation with makeinfo by 5310 renaming this node to Concept Index. 5311 * doc/gccint.texi (Index): Likewise. Also minor formatting tweaks 5312 to more closely match gcc.texi. 5313 53142004-11-12 Jeff Law <law@redhat.com> 5315 5316 * tree-cfg.c (hashtab.h): Include. 5317 (struct edge_to_case_leader_elt): New structure. 5318 (edge_to_case_leader): New. 5319 (edge_to_case_leader_hash): New hashtable hasing function. 5320 (edge_to_case_leader_eq): New hashtable equality function. 5321 (record_switch_edge): New function. 5322 (get_case_leader_for_edge, get_case_leader_for_edge): New functions. 5323 (make_switch_expr_edges): Build the edge-to-case-leader 5324 hash table. Tear down the hash table when we're done. 5325 (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of 5326 CASE_LABEL. 5327 (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes. 5328 (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update 5329 to use new concept of case leaders to reduce overhead of 5330 redirecting outgoing edges from switch statements. 5331 * tree.c (get_case_label): New function. 5332 * tree.h (CASE_LABEL): Define in terms of get_case_label. 5333 (CASE_LEADER_OR_LABEL): Define. 5334 53352004-11-12 Ziemowit Laski <zlaski@apple.com> 5336 5337 * varasm.c (output_addressed_constants): For CONST_DECLs, 5338 output the initializer if present. 5339 53402004-11-12 Ziemowit Laski <zlaski@apple.com> 5341 5342 * config/rs6000/darwin.h: Fix confusing typo in comment. 5343 53442004-11-12 Devang Patel <dpatel@apple.com> 5345 5346 * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P. 5347 53482004-11-12 Devang Patel <dpatel@apple.com> 5349 5350 * tree-if-conv.c (clean_predicate_lists): Use loop header 5351 and latch directly. 5352 53532004-11-12 Richard Henderson <rth@redhat.com> 5354 5355 PR 17778 5356 * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New. 5357 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. 5358 (TARGET_96_ROUND_53_LONG_DOUBLE): New. 5359 * config/i386/i386-modes.def (XF): Use it. 5360 53612004-11-11 Geoffrey Keating <geoffk@apple.com> 5362 5363 * Makefile.in (macro_list): Use move-if-change to avoid spurious 5364 rebuilds. 5365 53662004-11-12 Mark Mitchell <mark@codesourcery.com> 5367 5368 PR c++/18416 5369 * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL 5370 when deciding whether to pass a variable to 5371 cgraph_varpool_finalize_decl or assemble_variable. 5372 * toplev.c (check_global_declarations): Do not clear DECL_RTL. 5373 53742004-11-12 Kazu Hirata <kazu@cs.umass.edu> 5375 5376 * tree-vectorizer.c: Fix a comment typo. 5377 53782004-11-12 Bernd Schmidt <bernd.schmidt@analog.com> 5379 5380 * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref. 5381 53822004-11-12 Diego Novillo <dnovillo@redhat.com> 5383 5384 * tree-scalar-evolution.c (analyzable_condition): Remove 5385 superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs. 5386 53872004-11-12 Ralf Corsepius <ralf.corsepius@rtems.org> 5388 5389 * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY): 5390 Remove m505/roe multilib variant. 5391 53922004-11-12 Eric Botcazou <ebotcazou@libertysurf.fr> 5393 5394 * expr.c (emit_group_load) <CONCAT>: Use extract_bit_field 5395 to load from the stack. 5396 53972004-11-12 Richard Henderson <rth@redhat.com> 5398 5399 * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI. 5400 (exact_log2): Rename from exact_log2_wide, use CTZ_HWI. 5401 * toplev.h (FL2T__): Remove. 5402 (CLZ_HWI): Rename from FL2T_CLZ__. 5403 (CTZ_HWI): New. 5404 (floor_log2): Simplify. 5405 (exact_log2): New. 5406 54072004-11-12 Sebastian Pop <pop@cri.ensmp.fr> 5408 5409 * tree-data-ref.c (analyze_subscript_affine_affine): Correctly 5410 compute the first overlapping iterations. 5411 54122004-11-12 Sebastian Pop <pop@cri.ensmp.fr> 5413 5414 PR middle-end/18005 5415 * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure 5416 that arguments of EXACT_DIV_EXPR are INTEGER_CST. 5417 54182004-11-12 Steven Bosscher <stevenb@suse.de> 5419 5420 PR tree-optimization/18419 5421 * tree-ssa.c (walk_use_def_chains_1): Make the visited map a 5422 pointer set instead of a bitmap. 5423 (walk_use_def_chains): Create, pass and clean up that pointer_set. 5424 5425 * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited 5426 field an sbitmap. 5427 (init_alias_info): Allocate and zero it here. 5428 (delete_alias_info): Delete it here. 5429 (collect_points_to_info_for): Use it. 5430 54312004-11-11 Kazu Hirata <kazu@cs.umass.edu> 5432 5433 * alias.c (record_alias_subset, addr_side_effect_eval): 5434 Make them static. 5435 * alias.h: Remove the prototype for record_alias_subset. 5436 * expr.h: Remove the commented-out prototype for 5437 record_alias_subset. 5438 * rtl.h: Remove the prototype for addr_side_effect_eval. 5439 5440 * cfglayout.c (choose_inner_scope): Make it static. 5441 * rtl.h: Remove the corresponding prototype. 5442 5443 * cfgloopmanip.c (update_single_exits_after_duplication, 5444 unloop): Make them static. 5445 * cfgloop.h: Remove the corresponding prototypes. 5446 5447 * c-typeck.c (c_size_in_bytes, record_maybe_used_decl): 5448 Make them static. 5449 * c-tree.h: Remove the corresponding prototypes. 5450 5451 * explow.c (round_push): Make it static. 5452 * expr.h: Remove the corresponding prototype. 5453 5454 * varasm.c (get_named_section_flags, decl_tls_model): Make 5455 them static. 5456 * output.h: Remove the prototype for get_named_section_flags. 5457 * tree.h: Remove the prototype for decl_tls_model. 5458 54592004-11-11 Kazu Hirata <kazu@cs.umass.edu> 5460 5461 * function.c (expand_function_end): Remove an "if" statement 5462 that always triggers. 5463 * stmt.c (expand_null_return_1): Likewise. 5464 54652004-11-11 James E. Wilson <wilson@specifixinc.com> 5466 5467 * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode. 5468 (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED, 5469 CLASS_MAX_NREGS): Likewise. 5470 54712004-11-11 Zdenek Dvorak <dvorakz@suse.cz> 5472 5473 PR tree-optimization/17742 5474 * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle 5475 MINUS_EXPR correctly. 5476 54772004-11-11 Sebastian Pop <pop@cri.ensmp.fr> 5478 5479 * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): 5480 Give up as soon as the evolution is known not computable. 5481 54822004-11-11 Nathan Sidwell <nathan@codesourcery.com> 5483 5484 PR target/16457 5485 * config/rs6000/rs6000.c (mask64_2_operand): Stub to call 5486 mask64_1or2_operand. 5487 (mask64_1or2_operand): Broken out of mask64_2_operand, add flag 5488 to spot rlwinm opportunities. 5489 (and64_2_operand): Use mask_1or2_operand. 5490 * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible. 5491 54922004-11-11 Dorit Naishlos <dorit@il.ibm.com> 5493 5494 * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis. 5495 (vect_update_ivs_after_vectorizer): Update function documentation. 5496 Avoid quadratic behavior and direct write to PHI_ARG_DEF. 5497 54982004-11-11 Kazu Hirata <kazu@cs.umass.edu> 5499 5500 * config/arm/arm.c: Fix a comment typo. 5501 55022004-11-11 Nathan Sidwell <nathan@codesourcery.com> 5503 5504 * bitmap.h (nBITMAP_WORD_BITS): Remove. 5505 (BITMAP_WORD_BITS): Force unsigned by use of 1u. 5506 (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove 5507 unnecessary casts. 5508 (bitmap_first_set_bit): Return unsigned, use ctzl. 5509 (bitmap_last_set_bit): Remove. 5510 * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator 5511 unsigned. 5512 (bitmap_first_set_bit): Return unsigned, require non-empty bitmap, 5513 remove special case code for two word elements. 5514 (bitmap_last_set_bit): Remove. 5515 * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of 5516 bitmap_first_set_bit with bitmap_empty_p. 5517 * tree-outof-ssa.c (analyze_edges_for_bb): Likewise. 5518 * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than 5519 bitmap_last_bit_set. 5520 55212004-11-11 Nathan Sidwell <nathan@codesourcery.com> 5522 5523 PR target/16796 5524 * config/rs6000/rs6000.md: Add DF & SF reg move peepholes. 5525 5526 PR target/16458 5527 * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an 5528 unsigned equality compare when we know the operands are unsigned. 5529 55302004-11-10 Peter S. Mazinger <ps.m@gmx.net> 5531 5532 * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define 5533 __PIC__ and __pic__ only if TARGET_ABICALLS. 5534 (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__. 5535 (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass 5536 -KPIC only if not -mno-abicalls. 5537 5538 * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h 5539 * config/sparc/linux.h, config/sparc/linux64.h 5540 (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic. 5541 5542 * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__. 5543 * config/pa/pa/linux.h (CPP_SPEC): Likewise. 5544 * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise. 5545 * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise. 5546 55472004-11-11 Paul Brook <paul@codesourcery.com> 5548 5549 * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC 5550 register if current_function_uses_pic_offset_table is set. 5551 55522004-11-10 David Edelsohn <edelsohn@gnu.org> 5553 5554 * config/rs6000/rs6000.md (define_attr "type"): Add two and three. 5555 Change multi-instruction sequences to new attribute. 5556 * config/rs6000/{40x.md,440.md,603.md,6xx.md, 5557 7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md, 5558 rios1.md,rios2.md,rs64.md}: Add descriptions for two and three. 5559 55602004-11-10 Daniel Berlin <dberlin@dberlin.org> 5561 5562 * tree-data-ref.c (build_classic_dist_vector): If either loop 5563 is outside of the nest we asked about, the dependence can't 5564 matter. 5565 (build_classic_dir_vector): Ditto. 5566 55672004-11-10 Zdenek Dvorak <dvorakz@suse.cz> 5568 5569 * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in 5570 right order. 5571 (force_var_cost): Determine cost of addition and multiplication more 5572 precisely. 5573 (get_computation_cost_at): Add cost for computing address elements to 5574 the final cost. 5575 5576 * fold-const.c (fold): Attempt to use ptr_difference_const whenever 5577 one of the arguments of MINUS_EXPR is an address. 5578 (split_address_to_core_and_offset): New function. 5579 (ptr_difference_const): Handle case when one of the operands is a 5580 pointer. 5581 * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr. 5582 (ptr_difference_cost): Pass addresses instead of objects to 5583 ptr_difference_const. 5584 55852004-11-10 Nathan Sidwell <nathan@codesourcery.com> 5586 5587 * tree.c (tree_check_failed): Emit general error if the list of 5588 node types is empty. 5589 55902004-11-10 Eric Botcazou <ebotcazou@libertysurf.fr> 5591 5592 * config/sparc/sparc.c (function_arg_union_value): New 'slotno' 5593 argument. When the union is passed in the 6th slot, build a 5594 PARALLEL with only one element. 5595 (function_arg): Adjust call to function_arg_union_value. 5596 (function_value): Likewise. 5597 55982004-11-10 Fariborz Jahanian <fjahanian@apple.com> 5599 5600 PR tree-optimization/17892 5601 * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for 5602 MINUS_EXPR operator. 5603 56042004-11-10 James A. Morrison <phython@gcc.gnu.org> 5605 5606 PR target/18230 5607 config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute. 5608 (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns. 5609 56102004-11-10 Steven Bosscher <stevenb@suse.de> 5611 5612 * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New. 5613 (struct basic_block_def): Remove local_set and cond_local_set 5614 fields. Update comment for global_live_at_start. 5615 * flow.c (calculate_global_regs_live): Allocate local_sets and 5616 cond_local_sets here as arrays of bitmaps previously stored in 5617 bb->local_set and bb->cond_local_set. Use xmalloc instead of 5618 obstack allocated bitmaps. 5619 56202004-11-09 H.J. Lu <hongjiu.lu@intel.com> 5621 5622 PR target/18380 5623 * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it 5624 hidden. 5625 5626 * unwind-dw2.c (_Unwind_FindTableEntry): Removed. 5627 56282004-11-09 Jeff Law <law@redhat.com> 5629 5630 * cfganal.c (flow_dfs_compute_reverse_execute): Accept new 5631 argument holding last unvisited block. Start search for 5632 unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK. 5633 (connect_infinite_loops_to_exit): Supply last unvisited block 5634 to flow_dfs_compute_reverse_execute. 5635 56362004-10-22 Aldy Hernandez <aldyh@redhat.com> 5637 5638 * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500 5639 doubles. 5640 (floatunssidf2): Same. 5641 (floatsidf2): Same. 5642 ("extendsfdf2"): New expander. 5643 (*extendsfdf2_fpr): Rename. 5644 (*truncdfsf2_fpr): Same. 5645 (*negdf2_fpr): Same. 5646 (*absdf2_fpr): Same. 5647 (*nabsdf2_fpr): Same. 5648 (*adddf3_fpr): Same. 5649 (*subdf3_fpr): Same. 5650 (*muldf3_fpr): Same. 5651 (*divdf3_fpr): Same. 5652 5653 * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment. 5654 ("spe_fix_truncdfsi2"): Same. 5655 (spe_floatunssidf2): Same. 5656 (spe_floatsidf2): Same. 5657 56582004-11-09 Joseph S. Myers <joseph@codesourcery.com> 5659 5660 PR c/18322 5661 * c-common.c (fname_decl): Don't use line number of decl in 5662 diagnostic. 5663 56642004-11-09 Ulrich Weigand <uweigand@de.ibm.com> 5665 5666 * config/s390/s390-protos.h (s390_pool_operand): Remove. 5667 * config/s390/s390.c (s390_pool_operand): Likewise. 5668 (s390_extra_constraint_str): Handle 'B' constraints. 5669 * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints. 5670 * config/s390/s390.md: Document 'B' constraints. 5671 ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of 5672 s390_pool_operand to prevent insns with two literal pool 5673 references. Make pattern commutative. 5674 ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use 5675 'B' constraint instead of s390_pool_operand. 5676 56772004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5678 5679 * tree-cfg.c (create_bb): Remove unnecessary memset. 5680 56812004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5682 5683 * tree-ssa-threadupdate.c (copy_phis_to_block): Remove. 5684 (thread_block): Call flush_pending_stmt instead of 5685 copy_phis_to_block. 5686 56872004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5688 5689 * loop-iv.c (iv_number_of_iterations): Make it static. 5690 * cfgloop.h: Remove the corresponding prototype. 5691 56922004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5693 5694 * function.c (combine_temp_slots, assign_parms, 5695 expand_pending_sizes): Make them static. 5696 * tree.h: Remove the corresponding prototypes. 5697 56982004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5699 5700 * emit-rtl.c (copy_most_rtx): Remove. 5701 * rtl.h: Remove the corresponding prototype. 5702 57032004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5704 5705 * cfgloop.c (flow_loops_update): Remove. 5706 * cfgloop.h: Remove the corresponding prototype. 5707 57082004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5709 5710 * conflict.c (mark_reg, conflict_graph_compute): Remove. 5711 * basic-block.h: Remove the prototype for 5712 conflict_graph_compute. 5713 57142004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5715 5716 * tree-if-conv.c (add_to_dst_predicate_list): Change the 5717 second argument to basic_block. 5718 (tree_if_convert_cond_expr): Update call sites. 5719 57202004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5721 5722 * fold-const.c (pedantic_non_lvalue): Make it static. 5723 * tree.h: Remove the corresponding prototype. 5724 57252004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5726 5727 * optabs.c (prepare_operand): Make it static. 5728 * optabs.h: Remove the corresponding prototype. 5729 57302004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5731 5732 * reload1.c (reloads_conflict, gen_reload): Make them static. 5733 * reload.h: Remove the corresponding prototypes. 5734 57352004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5736 5737 * reload.c (refers_to_mem_for_reload_p, 5738 refers_to_regno_for_reload_p): Make them static. 5739 * reload.h: Remove the corresponding prototypes. 5740 57412004-11-09 James A. Morrison <phython@gcc.gnu.org> 5742 Eric Botcazou <ebotcazou@libertysurf.fr> 5743 5744 PR target/18230 5745 * doc/md.texi (SPARC constraints): Document 'Y' constraint. 5746 * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes. 5747 * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function. 5748 (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p. 5749 (fp_zero_operand): Accept MODE_VECTOR_INT modes. 5750 (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes. 5751 (sparc_cannot_force_const_mem): Return false for CONST_VECTOR. 5752 (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for 5753 MODE_VECTOR_INT modes. 5754 (sparc_extra_constraint_check): Add new constraint 'Y'. 5755 * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS. 5756 * config/sparc/sparc.md (V32): New mode macro for 32-bit modes. 5757 (V64): New mode macro for 64-bit modes. 5758 (movsf): Use V32 for mode instead of SF. 5759 (movsf_insn_vis): Use V32 for mode instead of SF. Add 'Y' constraint 5760 alongside 'G' constraint. 5761 (movdf): Use V64 for mode instead of DF. 5762 (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead 5763 of DF. Add 'Y' constraint alongside 'G' constraint. 5764 (multi-isn and misaligned mems DFmode splitters): Use V64 for mode 5765 instead of DF. 5766 57672004-11-09 Ulrich Weigand <uweigand@de.ibm.com> 5768 5769 * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for 5770 integer NEG and ABS. 5771 * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute. 5772 ("*negdi2_31"): Reimplement using a splitter. 5773 ("*negdi2_cc", "*negdi2_cconly"): New insns. 5774 ("*negdi2_sign", "*negdi2_sign_cc"): Likewise. 5775 ("*negsi2_cc", "*negsi2_cconly"): Likewise. 5776 ("*negdf2_cc", "*negdf2_cconly"): Likewise. 5777 ("*negsf2_cc", "*negsf2_cconly"): Likewise. 5778 ("*absdi2_cc", "*absdi2_cconly"): New insns. 5779 ("*absdi2_sign", "*absdi2_sign_cc"): Likewise. 5780 ("*abssi2_cc", "*abssi2_cconly"): Likewise. 5781 ("*absdf2_cc", "*absdf2_cconly"): Likewise. 5782 ("*abssf2_cc", "*abssf2_cconly"): Likewise. 5783 ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns. 5784 ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise. 5785 ("*negabssi2_cc", "*negabssi2_cconly"): Likewise. 5786 ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise. 5787 ("*negabssf2_cc", "*negabssf2_cconly"): Likewise. 5788 57892004-11-09 Ulrich Weigand <uweigand@de.ibm.com> 5790 5791 * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition 5792 when eliminating an UNSPEC_CMPINT. 5793 (s390_secondary_input_reload_class): Fix test for CC register reload. 5794 (s390_secondary_output_reload_class): Likewise. 5795 (s390_expand_cmpmem): Swap operands. Use gen_cmpint. 5796 * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove. 5797 ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New 5798 insn patterns with splitters. 5799 58002004-11-09 David Edelsohn <edelsohn@gnu.org> 5801 5802 * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU. 5803 * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns. 5804 58052004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5806 5807 * tree-phinodes.c (phi_reverse): New. 5808 * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb): 5809 Use it. 5810 * tree-flow.h: Add a prototype for phi_reverse. 5811 58122004-11-09 Kazu Hirata <kazu@cs.umass.edu> 5813 5814 * tree-ssa-loop-ivopts.c: Fix a comment typo. 5815 58162004-11-09 James A. Morrison <phython@gcc.gnu.org> 5817 5818 PR pch/14940 5819 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__ 5820 definitions. 5821 58222004-11-09 Joseph S. Myers <joseph@codesourcery.com> 5823 5824 * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument" 5825 instead of "arg" in diagnostics. 5826 58272004-11-09 Joseph S. Myers <joseph@codesourcery.com> 5828 5829 * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h, 5830 c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c, 5831 gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c, 5832 tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, 5833 config/avr/avr.c, config/c4x/c4x.c, config/darwin.c, 5834 config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c, 5835 config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c, 5836 config/iq2000/iq2000.c, config/m32r/m32r.c, 5837 config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h, 5838 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c, 5839 config/ns32k/ns32k.c, config/rs6000/host-darwin.c, 5840 config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, 5841 config/sh/symbian.c, config/stormy16/stormy16.c, 5842 config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %< 5843 and %> as appropriate. Use %' as apostrophe in diagnostics where 5844 applicable. Use %< and %> in place of '' quotes where applicable. 5845 Use %qs in place of %<%s%>. Consistently quote __builtin function 5846 names. 5847 58482004-11-09 Hans-Peter Nilsson <hp@bitrange.com> 5849 5850 * gdbinit.in (pbb, pbm): New macros. 5851 58522004-11-08 Jeff Law <law@redhat.com> 5853 5854 * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than 5855 implementing it inline. 5856 5857 * cfganal.c (find_edge): Search pred->succs or succ->preds, 5858 whichever is shorter. 5859 58602004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5861 5862 * passes.c (rest_of_handle_jump): Remove dead code. 5863 58642004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5865 5866 * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to 5867 the last used element in the worklist. 5868 58692004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5870 5871 * tree-inline.c (remap_save_expr): Make it static. 5872 * tree-inline.h: Remove the corresponding prototype. 5873 58742004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5875 5876 * tree-ssa-loop-niter.c (upper_bound_in_type, 5877 lower_bound_in_type): Make them static. 5878 * tree.h: Remove the corresponding prototypes. 5879 58802004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5881 5882 * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them 5883 static. 5884 * tree-ssa-live.h: Remove the corresponding prototypes. 5885 58862004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5887 5888 * tree-if-conv.c (tree_if_conversion): Make it static. 5889 * tree-flow.h: Remove the corresponding prototype. 5890 58912004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5892 5893 * tree-ssa-operands.c (build_ssa_operands): Make it static. 5894 * tree-flow.h: Remove the corresponding prototype. 5895 58962004-11-08 Andrew Pinski <pinskia@physics.uc.edu> 5897 5898 PR tree-opt/18299 5899 * tree-inline.c (copy_body_r): Change "t = t" to empty 5900 statement instead of "t". 5901 59022004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5903 5904 * modulo-sched.c (create_partial_schedule, 5905 free_partial_schedule, reset_partial_schedule, 5906 ps_add_node_check_conflicts, rotate_partial_schedule): Make 5907 them static. 5908 59092004-11-08 Richard Henderson <rth@redhat.com> 5910 5911 * expmed.c (extract_force_align_mem_bit_field): Correct handling at 5912 the end of a page. 5913 59142004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5915 5916 * sched-deps.c (add_insn_mem_dependence): Make it static. 5917 * sched-int.h: Remove the corresponding prototypes. 5918 59192004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5920 5921 * flow.c (allocate_bb_life_data): Make it static. 5922 * basic-block.h: Remove the corresponding prototype. 5923 59242004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5925 5926 * calls.c (split_complex_values, split_complex_types): Make 5927 them static. 5928 * expr.h: Remove the corresponding prototypes. 5929 59302004-11-08 Richard Earnshaw <rearnsha@arm.com> 5931 5932 * arm.c (arm_handle_notshared_attribute): Wrap declaration and use 5933 with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES. 5934 59352004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5936 5937 * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if" 5938 statements that always trigger. 5939 59402004-11-08 Kazu Hirata <kazu@cs.umass.edu> 5941 5942 * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c, 5943 tree-scalar-evolution.c, tree-ssa-loop-im.c, 5944 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c, 5945 tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where 5946 appropriate. 5947 59482004-11-08 Ben Elliston <bje@au.ibm.com> 5949 5950 * cgraph.h (cgraph_calls_p): Remove. 5951 * cgraph.c (cgraph_calls_p): Likewise. 5952 5953 * varray.h (varray_copy): Remove. 5954 * varray.c (varray_copy): Likewise. 5955 59562004-11-07 Andrew Pinski <pinskia@physics.uc.edu> 5957 5958 PR target/18269 5959 * config/darwin.c (machopic_indirect_data_reference): 5960 Call gen_macho_high and gen_macho_low instead of 5961 checking the mode and calling gen_macho_high_di directly. 5962 * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. 5963 * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns 5964 to darwin.md. 5965 (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic, 5966 load_macho_picbase, macho_low, macho_high): Removed. 5967 (builtin_setjmp_receiver): Call gen_macho_high and 5968 gen_macho_low instead of checking the mode and calling 5969 gen_macho_high_di directly. 5970 * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant. 5971 (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st): 5972 Moved from rs6000.md. 5973 (macho_high): New expander. 5974 (macho_high_si): Renamed version of macho_high from rs6000.md. 5975 (macho_low): New expander. 5976 (macho_low_si): Renamed version of macho_low from rs6000.md. 5977 (load_macho_picbase): New expander. 5978 (load_macho_picbase_si): Renamed version of load_macho_picbase 5979 from rs6000.md. 5980 (macho_correct_pic): New expander. 5981 (macho_correct_pic_si): Renamed version of macho_correct_pic 5982 from rs6000.md. 5983 59842004-11-07 Joseph S. Myers <joseph@codesourcery.com> 5985 5986 * c-decl.c (finish_struct): Use complete sentences for diagnostic 5987 for structures or unions with no members or named members. 5988 59892004-11-07 Joseph S. Myers <joseph@codesourcery.com> 5990 5991 * c-typeck.c (build_unary_op): Replace unreachable diagnostic for 5992 taking address of bit-field by assertion. 5993 59942004-11-06 Ulrich Weigand <uweigand@de.ibm.com> 5995 5996 * config/s390/s390.md (attribute "op_type"): Default to "NN". 5997 (attribute "atype"): Default to "agen". 5998 (attribute "length"): Default to 6. 5999 (define_asm_attibutes): Remove. 6000 ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa", 6001 "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf", 6002 "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"): 6003 Do not set type attribute to "cs" where already default. 6004 ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm", 6005 "*negdi2_31"): 6006 Do not set type attribute to "other" where already default. 6007 ("movti", "*movdi_64", "*movdi_31", "*movdf_31", 6008 "*strlendi", "*strlensi", 6009 "*movmem_long_64", "*movmem_long_31", 6010 "*clrmem_long_64", "*clrmem_long_31", 6011 "*cmpmem_long_64", "*cmpmem_long_31", 6012 "*cmpint_si", "*cmpint_di", 6013 "addti3", "*adddi3_31z", "*adddi3_31", 6014 "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31", 6015 "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg", 6016 "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm", 6017 "*pool_entry", "pool_align", "pool_section_start", 6018 "pool_section_end", "main_pool", "reload_base_31", "pool"): 6019 Do not set op_type attribute to "NN" where already default. 6020 ("*extractqi", "*extracthi", "*zero_extendhisi2_31", 6021 "*zero_extendqisi2_31", "*zero_extendqihi2_31", 6022 "fix_truncdfsi2_ibm", "floatsidf2_ibm"): 6023 Do not set atype attribute to "agen" where already default. 6024 ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type. 6025 60262004-11-06 Richard Sandiford <rsandifo@redhat.com> 6027 6028 * config/mips/t-iris6 (tp-bit.c): Fix target filename. 6029 60302004-11-06 Richard Sandiford <rsandifo@redhat.com> 6031 6032 PR target/16830 6033 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the 6034 R3000 and R4000 macros on IRIX. 6035 60362004-11-06 Andreas Schwab <schwab@suse.de> 6037 6038 PR target/16286 6039 * config/rs6000/altivec.h: Replace bool by __bool and pixel by 6040 __pixel. 6041 60422004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6043 6044 * tree-ssa-copyrename.c (rename_ssa_copies): Make it static. 6045 60462004-11-06 Ulrich Weigand <uweigand@de.ibm.com> 6047 6048 * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition 6049 matches no insns already matched by other reservations. 6050 * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition 6051 matches no insns already matched by other reservations. 6052 ("x_ss"): Remove, replace by ... 6053 ("x_cs"): ... this new reservation. Check type instead of op_type. 6054 Update bypasses to use x_cs instead of x_ss. 6055 ("x_nn"): Remove, replace by ... 6056 ("x_other"): ... this new reservation. Check type instead of op_type. 6057 Add x_other and x_branch to bypasses. 6058 ("x_vs"): New reservation. 6059 * config/s390/s390.md (attribute "type"): Default according to op_type. 6060 ("*execute"): Set type to "cs". 6061 60622004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6063 6064 * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR 6065 if we are in GIMPLE. 6066 60672004-11-06 Hans-Peter Nilsson <hp@bitrange.com> 6068 6069 PR rtl-optimization/17933 6070 * rtlanal.c (dead_or_set_regno_p): Break out common code to... 6071 (covers_regno_p): New function. Handle SETs of PARALLEL, 6072 and defer the rest to... 6073 (covers_regno_no_parallel_p): New function. 6074 60752004-11-06 Eric Botcazou <ebotcazou@libertysurf.fr> 6076 6077 * config/sparc/sparc.c (function_arg_record_value_1): Skip 6078 fields with zero length. 6079 (function_arg_record_value_2): Likewise. 6080 (function_arg_record_value_3): Use smallest_mode_for_size 6081 instead of mode_for_size. 6082 (function_arg_union_value): Return naked register for unions 6083 with zero length. 6084 60852004-11-06 Eric Botcazou <ebotcazou@libertysurf.fr> 6086 6087 * config/sparc/sparc.c (scan_record_type): Handle vector types. 6088 (function_arg_slotno): Handle vector types specially. 6089 (function_arg_record_value_1): Split fields with vector type and 6090 BLKmode into their subparts. 6091 (function_arg_record_value_2): Likewise. Be prepared to handle 6092 more than 2 registers per field. 6093 (function_arg_union_value): Increment regno inside the loop. 6094 (function_arg_vector_value): New function. 6095 (function_arg): Use it to split fields with vector type and 6096 BLKmode into their subparts and build a PARALLEL. Treat 6097 other vector types like floats. 6098 (function_value): Likewise. 6099 (sparc_pass_by_reference): Handle vector types. 6100 (sparc_return_in_memory): Likewise. 6101 61022004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6103 6104 * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if" 6105 statement that never triggers. 6106 61072004-11-06 Ulrich Weigand <uweigand@de.ibm.com> 6108 6109 * config/s390/2064.md ("z_o2", "z_o3"): Remove. 6110 * config/s390/2084.md ("x_o2", "x_o3"): Remove. 6111 ("x_fdivd"): Use also for fsqrtd type. 6112 ("x_fdivs"): Use also for fsqrts type. 6113 * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types. 6114 ("fix_truncdfsi2_ieee"): Set type to "ftoi". 6115 ("fix_truncdfsi2_ibm"): Set type to "other". 6116 ("floatdidf2", "floatdisf2"): Do not clobber CC. 6117 ("floatsidf2", "floatsidf2_ieee"): Likewise. 6118 ("floatsisf2", "floatsisf2_ieee"): Likewise. 6119 ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand". 6120 ("truncdfsf2_ibm"): Only allow "nonimmediate_operand". Use LER 6121 instead of LRER. 6122 ("extendsfdf2_ibm"): Do not set atype. Set type to "floads". 6123 ("sqrtdf2"): Set type to "fsqrtd". 6124 ("sqrtsf2"): Set type to "fsqrts". 6125 61262004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6127 6128 * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a 6129 pointer to the last PHI node in the new PHI chain. 6130 61312004-11-06 Kaz Kojima <kkojima@gcc.gnu.org> 6132 6133 * config/sh/sh.c (prepare_move_operands): Emit a use of r12 6134 for non-PIC TLS_MODEL_INITIAL_EXEC case. 6135 61362004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6137 6138 * expmed.c: Fix a comment typo. 6139 61402004-11-06 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 6141 6142 PR target/18106 6143 * config/i386/cygming.h 6144 [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined. 6145 61462004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6147 6148 * config/sh/sh4a.md: Fix copyright. 6149 61502004-11-06 Kazu Hirata <kazu@cs.umass.edu> 6151 6152 * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC 6153 with GCC. 6154 61552004-11-05 David Edelsohn <edelsohn@gnu.org> 6156 6157 * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf 6158 when carry not used. Suggested by Torbjorn Granlund. 6159 6160 * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg 6161 operand[1] unnecessarily. Suggested by Eric Christopher. 6162 (rs6000_adjust_cost): Increase latency of store to wider load. 6163 (rs6000_rtx_costs): mulli only allows 16-bit constants. 6164 61652004-11-05 Stan Shebs <shebs@apple.com> 6166 6167 * config/rs6000/rs6000.c (machopic_output_stub): Output 6168 ldu instead of lwzu for 64-bit stubs. 6169 61702004-11-05 Richard Henderson <rth@redhat.com> 6171 6172 * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case 6173 size 2 with BWX. 6174 (alpha_expand_unaligned_store): Likewise. 6175 61762004-11-05 Richard Henderson <rth@redhat.com> 6177 6178 * expmed.c (extract_force_align_mem_bit_field): New. 6179 (extract_split_bit_field): Call it. 6180 61812004-11-05 Richard Henderson <rth@redhat.com> 6182 6183 * ia64.md (UNSPEC_SHRP): New. 6184 (dshift_count_operand): New. 6185 (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New. 6186 * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP. 6187 61882004-11-05 Joseph S. Myers <joseph@codesourcery.com> 6189 6190 * c-typeck.c (output_init_element): Return early if value is 6191 error_mark_node. 6192 61932004-11-05 James E Wilson <wilson@specifixinc.com> 6194 6195 * invoke.texi (-fno-guess-branch-probability): Rewrite. 6196 6197 * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change 6198 1 to UNSPEC_GR_SPILL. 6199 62002004-11-05 Andreas Krebbel <krebbel1@de.ibm.com> 6201 6202 * config/s390/s390.c (s390_fixed_condition_code_regs): New function. 6203 (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined. 6204 62052004-11-05 Nathan Sidwell <nathan@codesourcery.com> 6206 6207 * bitmap.h (enum bitmap_bits): Remove. 6208 (bitmap_operation): Remove. 6209 (bitmap_and, bitmap_and_into, bitmap_and_compl, 6210 bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor, 6211 bitmap_xor_into): Prototype. 6212 * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New. 6213 (bitmap_operation): Remove. 6214 (bitmap_and, bitmap_and_into, bitmap_and_compl, 6215 bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor, 6216 bitmap_xor_into): New. 6217 (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust. 6218 6219 PR tree-optimization/18307 6220 * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST 6221 and ORIG being the same node. 6222 62232004-11-04 Geoffrey Keating <geoffk@apple.com> 6224 6225 * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory. 6226 (install-mkheaders): Install the version built for the 6227 host, not for the build machine. 6228 * configure.ac: Always run fixincludes. 6229 (all_outputs): Remove mkheaders. 6230 * configure: Regenerate. 6231 * fixinc.in: Move to fixincludes/. 6232 * mkfixinc.sh: Likewise. 6233 * mkheaders.in: Likewise. 6234 * README-fixinc: Likewise. 6235 62362004-11-05 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com> 6237 6238 PR target/18263 6239 * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the 6240 equivalent on the A4. 6241 62422004-11-05 Joseph S. Myers <joseph@codesourcery.com> 6243 6244 * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi, 6245 doc/cppopts.texi, doc/extend.texi, doc/fragments.texi, 6246 doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi, 6247 doc/implement-c.texi, doc/install.texi, doc/invoke.texi, 6248 doc/libgcc.texi, doc/md.texi, doc/passes.texi, 6249 doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi, 6250 doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi, 6251 doc/trouble.texi: Correct end-of-sentence markup and markup of 6252 "etc.", "e.g." and "i.e.". Use @code in various places where 6253 appropriate. 6254 62552004-11-05 Joseph S. Myers <joseph@codesourcery.com> 6256 6257 * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi, 6258 doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi, 6259 doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing 6260 whitespace. 6261 62622004-11-04 Mark Mitchell <mark@codesourcery.com> 6263 6264 * config/arm/arm.c (arm_handle_notshared_attribute): New function. 6265 * doc/extend.texi: Document "notshared" attribute. 6266 62672004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6268 6269 * tree-phinodes.c (make_phi_node): Make it static. 6270 * tree.h: Remove the prototypes for make_phi_node. 6271 62722004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6273 6274 * stmt.c (expand_asm, expand_asm_operands): Make them static. 6275 * tree.h: Remove the prototypes for expand_asm and 6276 expand_asm_operands. 6277 62782004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6279 6280 * passes.c (rest_of_compilation): Make it static. 6281 * toplev.h: Remove the prototype for rest_of_compilation. 6282 62832004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6284 6285 * jump.c (cleanup_barriers): Use delete_insn instead of 6286 delete_barrier. 6287 (delete_barrier): Remove. 6288 * rtl.h: Remove the corresponding prototype. 6289 62902004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6291 6292 * expr.c (mostly_zero_p): Make it static. 6293 * tree.h: Remove the prototype for mostly_zeros_p. 6294 62952004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6296 6297 * cfgrtl.c (force_nonfallthru_and_redirect): Make it static. 6298 62992004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6300 6301 * builtins.c (expand_builtin_return_addr, 6302 expand_builtin_longjmp, expand_builtin_trap): Make them static. 6303 * expr.h: Remove the prototypes for expand_builtin_longjmp and 6304 expand_builtin_trap. 6305 * tree.h: Remove the prototype for expand_builtin_return_addr. 6306 63072004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6308 6309 * tree-cfg.c (find_taken_edge): Reject VAL begin NULL. 6310 * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge 6311 with VAL being NULL. 6312 63132004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6314 6315 * cfghooks.c (delete_basic_block): Remove code to truncate 6316 edge vectors. 6317 63182004-11-04 Andrew Pinski <pinskia@physics.uc.edu> 6319 6320 * flow.c (init_propagate_block_info): Change the type of i to 6321 unsigned. 6322 63232004-11-04 Ulrich Weigand <uweigand@de.ibm.com> 6324 6325 PR tree-optimization/18184 6326 * c-typeck.c (comptypes): Do not treat pointers of different 6327 modes or alias-all flags as equivalent. 6328 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise. 6329 63302004-11-04 Joseph S. Myers <joseph@codesourcery.com> 6331 6332 * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't 6333 reference specific C parser files in examples. 6334 63352004-11-04 Richard Sandiford <rsandifo@redhat.com> 6336 6337 PR target/15342 6338 * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs 6339 as OP_INOUT if the instruction is predicated. 6340 63412004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6342 6343 * bitmap.h: Fix a comment typo. Follow spelling conventions. 6344 * tree-vectorizer.c: Fix a comment typo. 6345 63462004-11-04 Kazu Hirata <kazu@cs.umass.edu> 6347 6348 * sdbout.c (SDB_GENERATE_FAKE): Remove. 6349 (gen_fake_label): Don't use SDB_GENERATE_FAKE. 6350 * system.h: Poison SDB_GENERATE_FAKE. 6351 * doc/tm.texi (SDB_GENERATE_FAKE): Remove. 6352 63532004-11-04 Ulrich Weigand <uweigand@de.ibm.com> 6354 6355 * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL. 6356 63572004-11-04 Eric Botcazou <ebotcazou@libertysurf.fr> 6358 6359 PR other/18277 6360 * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert 6361 2004-10-29 patch 6362 63632004-11-04 Nathan Sidwell <nathan@codesourcery.com> 6364 6365 * predict.c (propagate_freq): Make bitno unsigned. Move 6366 npredecessors update out of loop. 6367 6368 * bitmap.h (bitmap_iterator): Remove word_bit and bit 6369 fields. Rename others. 6370 (bmp_iter_common_next_1, bmp_iter_single_next_1, 6371 bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next, 6372 bmp_iter_and_not_next_1, bmp_iter_and_not_init, 6373 bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init, 6374 bmp_iter_and_next): Remove. 6375 (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init, 6376 bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): 6377 New. 6378 (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP, 6379 EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust. 6380 6381 * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove. 6382 * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior, 6383 bitmap_and_into, bitmap_ior_into as appropriate. 6384 * except.c (remove_eh_handler): Likewise. 6385 * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise. 6386 * tree-dfa.c (mark_new_vars_to_rename): Likewise. 6387 * tree-ssa-alias.c (merge_pointed_to_info): Likewise. 6388 * tree-ssa-live.h (live_merge_and_clear): Likewise. 6389 * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for): 6390 Likewise. 6391 6392 * bitmap.c (bitmap_print): Make bitno unsigned. 6393 * bt-load.c (clear_btr_from_live_range, 6394 btr_def_live_range): Likewise. 6395 * caller-save.c (save_call_clobbered_regs): Likewise. 6396 * cfganal.c (compute_dominance_frontiers_1): Likewise. 6397 * cfgcleanup.c (thread_jump): Likewise. 6398 * cfgrtl.c (safe_insert_insn_on_edge): Likewise. 6399 * conflict.c (conflict_graph_compute): Likewise. 6400 * ddg.c (add_deps_for_use): Likewise. 6401 * df.c (df_refs_update): Likewise. 6402 * except.c (remove_eh_handler): Likewise. 6403 * flow.c (verify_local_live_at_start, update_life_info, 6404 initialize_uninitialized_subregs, propagate_one_insn, 6405 free_propagate_block_info, propagate_block, find_use_as_address, 6406 reg_set_to_hard_reg_set): Likewise. 6407 * gcse.c (clear_modify_mem_tables): Likewise. 6408 * global.c (global_conflicts, build_insn_chain): Likewise. 6409 * ifcvt.c (dead_or_predicable): Likewise. 6410 * local-alloc.c (update_equiv_regs): Likewise. 6411 * loop.c (load_mems): Likewise. 6412 * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): 6413 Likewise. 6414 * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill): 6415 Likewise. 6416 * reload1.c (order_regs_for_reload, finish_spills): Likewise. 6417 * sched-deps.c (sched_analyze_insn, free_deps): Likewise. 6418 * sched-rgn.c (propagate_deps 6419 * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise. 6420 * tree-dfa.c (dump_dfa_stats 6421 tree-into-ssa.c (compute_global_livein, insert_phi_nodes, 6422 insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags): 6423 Likewise. 6424 * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars, 6425 free_temp_expr_table, find_replaceable_exprs): Likewise. 6426 * tree-sra.c (scan_function, scalarize_parms): Likewise. 6427 * tree-ssa-alias.c (init_alias_info, 6428 compute_points_to_and_addr_escape, 6429 compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise. 6430 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise. 6431 * tree-ssa-live.c (new_tree_live_info, live_worklist, 6432 calculate_live_on_entry, calculate_live_on_exit, compare_pairs, 6433 sort_coalesce_list, build_tree_conflict_graph, dump_live_info 6434 tree-ssa-loop-manip.c (add_exit_phis_var): Likewise. 6435 tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, 6436 add_call_read_ops): Likewise. 6437 * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise. 6438 * tree-ssa-live.h (num_var_partitions): Return unsigned. 6439 64402004-11-03 Dorit Naishlos <dorit@il.ibm.com> 6441 6442 PR tree-optimization/18009 6443 * tree-vectorizer.h (enum dr_alignment_support): New type. 6444 (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed. 6445 (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a 6446 single data_reference (instead of a varray of references). 6447 * tree-vectorizer.c (new_loop_vec_info): Likewise. 6448 (vect_gen_niters_for_prolog_loop): Likewise. 6449 (vect_update_inits_of_drs): Likewise. 6450 6451 (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to 6452 vect_enhance_data_refs_alignment. 6453 (vect_do_peeling_for_alignment): Likewise. 6454 (vect_enhance_data_refs_alignment): Decide if and by how much to peel; 6455 this functionality used to be in vect_analyze_data_refs_alignment. 6456 Also update DR_MISALIGNMENT due to peeling; this functionality used to 6457 be in vect_update_inits_of_drs and vect_do_peeling_for_alignment). 6458 (vect_analyze_data_refs_alignment): Decision on whether and by how much 6459 to peel moved to vect_enhance_data_refs_alignment. Call 6460 vect_supportable_dr_alignment. 6461 6462 (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE. 6463 (vect_compute_data_refs_alignment): Return bool. Consider return value 6464 of vect_compute_data_ref_alignment and return true/false accordingly. 6465 (vect_enhance_data_refs_alignment): Consider return value of 6466 vect_compute_data_refs_alignment and return true/false accordingly. 6467 6468 (vect_supportable_dr_alignment): New function. 6469 (vectorizable_store): Call vect_supportable_dr_alignment. 6470 (vectorizable_load): Call vect_supportable_dr_alignment. Alignment 6471 support checks moved from here to vect_supportable_dr_alignment. 6472 6473 (vect_transform_loop): Avoid 80 columns overflow. 6474 64752004-11-03 Andrew Pinski <pinskia@physics.uc.edu> 6476 6477 * timevar.c (timevar_enable): Change from 6478 static. 6479 (timevar_push): Rename to ... 6480 (timevar_push_1): this and remove the 6481 enabled check. 6482 (timevar_pop): Rename to ... 6483 (timevar_pop_1): this and remove the 6484 enabled check. 6485 * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops. 6486 (timevar_pop): New macro. 6487 (timevar_push): New macro. 6488 (timevar_enable): Declare. 6489 64902004-11-03 Andrew Pinski <pinskia@physics.uc.edu> 6491 6492 * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared 6493 libgcc for shared libraries. 6494 64952004-11-03 Ulrich Weigand <uweigand@de.ibm.com> 6496 6497 * config/s390/s390-protos.h (s390_split_access_reg): Add prototype. 6498 * config/s390/s390.c (s390_split_access_reg): New function. 6499 (regclass_map): Add access registers. 6500 (get_thread_pointer): Use access register instead of UNSPEC_TP. 6501 * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38. 6502 (ACCESS_REGNO_P, ACCESS_REG_P): New macros. 6503 (TP_REGNUM): New define. 6504 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, 6505 REG_ALLOC_ORDER): Add access registers. 6506 (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, 6507 CANNOT_CHANGE_MODE_CLASS): Support access registers. 6508 (enum reg_class): Add ACCESS_REGS. 6509 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. 6510 (REG_CLASS_FROM_LETTER): Add 't' constraint. 6511 (REGISTER_NAMES): Add access registers. 6512 * config/s390/s390.md (UNSPEC_TP): Remove. 6513 ("*movdi_64"): Add access register alternatives. Provide splitters 6514 to split DImode access register <-> GPR moves into SImode moves. 6515 ("*movsi_zarch", "*movsi_esa"): Add access register alternatives. 6516 ("movstrictsi"): Likewise. 6517 ("get_tp_64", "get_tp_31"): Reimplement using access registers. 6518 ("set_tp_64", "set_tp_31"): Likewise. 6519 ("*set_tp"): New insn. 6520 65212004-11-03 Kazu Hirata <kazu@cs.umass.edu> 6522 6523 * tree-phinodes.c (resize_phi_node): Copy only a portion of 6524 the PHI node currently in use. 6525 65262004-11-03 Andrew Pinski <pinskia@physics.uc.edu> 6527 6528 PR tree-opt/18231 6529 * tree.c (staticp) <case FUNCTION_DECL>: Nested functions are static 6530 also. 6531 65322004-11-03 Andrew MacLeod <amacleod@redhat.com> 6533 6534 PR tree-optimization/18270 6535 * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming 6536 abnormal edges, commit all pending stmts on incoming edges. 6537 65382004-11-03 Ulrich Weigand <uweigand@de.ibm.com> 6539 6540 * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not 6541 cause extra costs. Generate canonical RTL. 6542 65432004-11-02 Daniel Berlin <dberlin@dberlin.org> 6544 6545 * lambda-code.c (lambda_compute_auxillary_space): Update comments. 6546 (lambda_compute_target_space). Ditto. 6547 * lambda.h (lambda_trans_matrix): Ditto. 6548 (lambda_linear_expression): Ditto. 6549 (lambda_body_vector): Ditto. 6550 (lambda_loopnest): Ditto. 6551 * tree-loop-linear.c (gather_interchange_stats): Combine tests, 6552 update comments, and remove pointless addition of 0. 6553 (linear_transform_loops): Update comments. 6554 65552004-11-03 Sebastian Pop <pop@cri.ensmp.fr> 6556 6557 * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of 6558 CEIL_MOD_EXPR. 6559 65602004-11-03 Jeff Law <law@redhat.com> 6561 6562 * predict.c (struct block_info_def): Kill "tovisit" field. 6563 (propagate_freq): Accept new "tovisit" parameter. Change 6564 read/write access methods for "tovisit" to check the "tovisit" 6565 bitmap instead of a bit in block_info_def. 6566 (estimate_loops_at_level): Allocate "tovisit" bitmap. Pass 6567 it to propagate_freq. 6568 6569 * stmt.c (expand_case): Speed up code to detect duplicate case 6570 label targets and count unique case label targets. 6571 65722004-11-03 Kazu Hirata <kazu@cs.umass.edu> 6573 6574 * cppdefault.c, cppdefault.h, timevar.h: Update copyright. 6575 65762004-11-03 Kazu Hirata <kazu@cs.umass.edu> 6577 6578 * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting. 6579 65802004-11-03 Kazu Hirata <kazu@cs.umass.edu> 6581 6582 * tree-cfg.c (find_taken_edge): Abort if we are given a 6583 statement that is neither COND_EXPR nor SWITCH_EXPR. 6584 65852004-11-02 Zdenek Dvorak <dvorakz@suse.cz> 6586 6587 * fold-const.c (fold): Reassociate also (x - mult) + mult and 6588 (mult - x) + mult. Cast operands of expression after applying 6589 distributive law to the correct types. Apply distributive law 6590 to a * c - b * c for all non-float types. 6591 65922004-11-02 Geoffrey Keating <geoffk@apple.com> 6593 6594 * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just 6595 because we don't want to run them now; instead, set them to 6596 stmp-install-fixproto or stmp-install-fixinc. 6597 * Makefile.in (stmp-install-fixproto): New. 6598 (stmp-install-fixinc): New. 6599 * configure: Regenerate. 6600 66012004-11-02 Nathan Sidwell <nathan@codesourcery.com> 6602 6603 * flow.c (init_propagate_block_info): Use bitmap_empty_p on result 6604 of bitmap_xor. 6605 66062004-11-02 Ziemowit Laski <zlaski@apple.com> 6607 6608 * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. 6609 (c_types_compatible_p): Move function definition... 6610 * c-objc-common.c (c_types_compatible_p): ...here. 6611 * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from 6612 c-lang.c. 6613 66142004-11-02 Steven Bosscher <stevenb@suse.de> 6615 6616 * cfgloop.h (struct loop): Update comment. 6617 * cse.c (cse_main): Remove obsolete comment. 6618 6619 * expr.h (gen_cond_trap): Move prototype under functions provided 6620 by optabs.c. 6621 (canonicalize_condition, get_condition): Move to... 6622 * rtl.h (canonicalize_condition, get_condition): ...here. 6623 (branch_target_load_optimize): Add comment that this function is 6624 in bt-load.c. 6625 * loop.c (canonicalize_condition, get_condition): Move to... 6626 * rtlanal.c (canonicalize_condition, get_condition): ...here. 6627 * sched-deps.c (get_condition): Rename to sched_get_condition. 6628 (add_dependence): Update this caller. 6629 66302004-11-02 Andrew Pinski <pinskia@physics.uc.edu> 6631 6632 PR tree-opt/16808 6633 * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure 6634 that the vops get marked for renaming. 6635 66362004-11-02 Andreas Krebbel <krebbel1@de.ibm.com> 6637 6638 * config/s390/s390.md ("movcc"): Set type attribute. 6639 66402004-11-02 Kazu Hirata <kazu@cs.umass.edu> 6641 6642 * tree-phinodes.c (add_phi_arg): Add an assertion that the 6643 edge already exists. 6644 66452004-11-02 Kazu Hirata <kazu@cs.umass.edu> 6646 6647 * tree-phinodes.c (remove_phi_arg_num): Do not zero the 6648 element that's being removed. 6649 66502004-11-02 Kazu Hirata <kazu@cs.umass.edu> 6651 6652 * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI 6653 arguments using PENDING_STMT. 6654 (thread_block): Call copy_phis_to_block after redirecting an 6655 edge. 6656 66572004-11-02 Nathan Sidwell <nathan@codesourcery.com> 6658 6659 * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl, 6660 bitmap_and_compl_into, bitmap_ior, bitmap_iot_into, 6661 bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void. 6662 (bitmap_ior_and_compl_into): Produce bool. 6663 (bitmap_union_of_diff): Rename to ... 6664 (bitmap_ior_and_compl): ... here. Produce bool. 6665 * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use 6666 bitmap_operation directly. 6667 (bitmap_union_of_diff): Rename to ... 6668 (bitmap_ior_and_compl): ... here. Return bool, use 6669 bitmap_operation directly. 6670 * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl. 6671 (df_ru_transfer_function, df_lr_transfer_function): Likewise. 6672 * global.c (modify_bb_reg_pav): Likewise. 6673 6674 * bitmap.h (bitmap_equal_p): Return bool. 6675 (bitmap_intersect_p, bitmap_intersect_compl_p): Declare. 6676 * bitmap.c (bitmap_equal_p): Return bool. Compare directly. 6677 (bitmap_intersect_p, bitmap_intersect_compl_p): New. 6678 * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and 6679 bitmap_intersect_compl_p. 6680 * ifcvt (dead_or_predicable): Likewise. 6681 66822004-11-02 Nathan Sidwell <nathan@codesourcery.com> 6683 6684 PR rtl-optimization/17104 6685 * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small 6686 loads in zero_extend. 6687 66882004-11-02 Danny Smith <dannysmith@users.sourceforge.net> 6689 6690 PR debug/18242 6691 * toplev.c (debug_type_names): Remove "dwarf-1". 6692 66932004-11-02 Ben Elliston <bje@au.ibm.com> 6694 6695 * timevar.h (timevar_get): Remove. 6696 * timevar.c (timevar_get): Remove unused function. 6697 66982004-11-02 Joseph S. Myers <joseph@codesourcery.com> 6699 6700 * doc/include/texinfo.tex: Update from Texinfo CVS. 6701 67022004-11-02 Ben Elliston <bje@au.ibm.com> 6703 6704 * cppdefault.h (cpp_SYSROOT): Remove. 6705 * cppdefault.c (cpp_SYSROOT): Likewise. 6706 67072004-11-01 Andrew MacLeod <amacleod@redhat.com> 6708 6709 PR tree-optimization/16447 6710 * tree-cfg.c (bsi_commit_one_edge_insert): Rename from 6711 bsi_commit_edge_inserts_1, and make funtion external. Return new block. 6712 (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert. 6713 * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing. 6714 * tree-flow.h (bsi_commit_one_edge_insert): Extern decl. 6715 * tree-outof-ssa.c (rewrite_trees): Don't commit edges here. 6716 (same_stmt_list_p): New. Return TRUE if edge is to be forwarded. 6717 (identical_copies_p): New. Return true is two copies are the same. 6718 (identical_stmt_lists_p): New. Return true if stmt lists are the same. 6719 (analyze_edges_for_bb): New. Determine how best to insert edge stmts 6720 for a basic block. 6721 (perform_edge_inserts): New. Determine what to do with all stmts that 6722 have been inserted on edges. 6723 (remove_ssa_form): Analyze and commit edges from here. 6724 67252004-11-01 Andrew Pinski <pinskia@physics.uc.edu> 6726 6727 PR bootstrap/18232 6728 * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct. 6729 (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p. 6730 (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. 6731 (EXECUTE_IF_AND_IN_BITMAP): Likewise. 6732 67332004-11-01 Joseph S. Myers <joseph@codesourcery.com> 6734 6735 PR c/18239 6736 * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst 6737 parameter declarations. 6738 67392004-11-01 Andreas Krebbel <krebbel1@de.ibm.com> 6740 6741 * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group. 6742 (s390_secondary_input_reload_class) 6743 (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc 6744 register. 6745 (s390_expand_cmpmem): Enable cmpmem implementation. 6746 * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): 6747 Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS. 6748 (REG_CLASS_FROM_LETTER): New constraint 'c' added. 6749 * config/s390/s390.md ("movcc"): New insn pattern. 6750 * doc/md.texi: Document 'c' constraint for s390. 6751 67522004-11-01 Nathan Sidwell <nathan@codesourcery.com> 6753 6754 PR c++/18064 6755 * doc/extend.texi (Deprecated Features): Deprecate G++ covariant 6756 extension. 6757 67582004-10-16 Daniel Berlin <dberlin@dberlin.org> 6759 6760 Fix PR tree-optimization/17672 6761 Fix PR tree-optimization/18168 6762 6763 * lambda-code.c (lambda_lattice_compute_base): Fix reversed 6764 assert test. 6765 (gcc_tree_to_linear_expression): Add extra to existing constant. 6766 (depth_of_nest): Factor out function used in various places. 6767 (gcc_loop_to_lambda_loop): Clean up code a little bit. No 6768 functional changes. 6769 (find_induction_var_from_exit_cond): Stop guessing, and just 6770 get the right answer :). 6771 (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation. 6772 Print out message about result of attempt to create perfect nest. 6773 (lbv_to_gcc_expression): Add type argument, use it to do math 6774 and induction variable creation. 6775 (lle_to_gcc_expression): Ditto. 6776 (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as 6777 oldiv. Pass type argument to lle_to_gcc_expression and 6778 lbv_to_gcc_expression. 6779 Reset number of iterations after transformation. 6780 (perfect_nestify): Remove useless pre-allocation, and cleanup 6781 a small amount. 6782 6783 * tree-data-ref.c (build_classic_dist_vector): Return false for 6784 dependences completely outside of the loop nest we asked about. 6785 (build_classic_dir_vector): Ditto. 6786 (compute_data_dependences_for_loop): Only add dependence relations 6787 inside the loop we asked about. 6788 6789 * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT. 6790 Compute immediate uses. 6791 6792 * tree-optimize.c: Move linear_transform_loops to before ivcanon. 6793 67942004-11-01 Kazu Hirata <kazu@cs.umass.edu> 6795 6796 * tree-cfg.c (thread_jumps): Fix a comment typo. 6797 67982004-11-01 Kazu Hirata <kazu@cs.umass.edu> 6799 6800 * tree-cfg.c (thread_jumps): Fix a comment typo. 6801 68022004-10-31 Nicolas Pitre <nico@cam.org> 6803 6804 * config/arm/ieee754-sf.S (floatdisf): Fix regression with 6805 values smaller than 2^32. 6806 68072004-10-31 Jeff Law <law@redhat.com> 6808 6809 * cfgloop.h (struct loop): Remove unused "nodes" field. 6810 * timevar.def (TV_TREE_LOOP_BOUNDS): New. 6811 * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body 6812 instead of calling flow_bb_inside_loop_p for every basic block 6813 in the function. 6814 * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS. 6815 68162004-10-31 Graham Stott <graham.stott@btinternet.com> 6817 6818 * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo. Use 6819 INT_5_BITS instead of VAL_5_BITS_P. 6820 68212004-10-31 Roger Sayle <roger@eyesopen.com> 6822 6823 PR middle-end/14521 6824 * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F' 6825 for consistent quoting in diagnostic messages. 6826 (expand_call_inline): Likewise. 6827 * tree-optimize.c (tree_rest_of_compilation): Likewise. 6828 * tree-ssa.c (warn_uninitialized_var): Likewise. 6829 (warn_uninitialized_phi): Likewise. 6830 68312004-10-31 Richard Sandiford <rsandifo@redhat.com> 6832 6833 * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter 6834 mode check. 6835 68362004-10-31 Kazu Hirata <kazu@cs.umass.edu> 6837 6838 * c-common.c: Fix a comment typo. 6839 68402004-10-31 Jason Merrill <jason@redhat.com> 6841 6842 PR middle-end/17526 6843 * tree-gimple.c (is_gimple_mem_rhs): Also require a val for 6844 aggregate types that are not BLKmode. 6845 68462004-10-30 Ziemowit Laski <zlaski@apple.com> 6847 6848 * c-common.h (objc_lookup_ivar): Add second parameter to 6849 prototype. 6850 * c-typeck.c (build_external_ref): After looking up symbol, 6851 pass it to objc_lookup_ivar() to decide whether it or the 6852 ivar should be used, rather than deciding the issue locally. 6853 * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter, 6854 which is simply returned in the non-ObjC case. 6855 68562004-10-30 Danny Smith <dannysmith@users.sourceforge.net> 6857 6858 * sdbout.c (sdbout_symbol): Do not output type .def statements 6859 for builtin types. 6860 68612004-10-30 Gabriel Dos Reis <gdr@integrable-solutions.net> 6862 6863 * c-common.c (catenate_strings): New. 6864 (c_parse_error): Use it. Don't over-escape. 6865 68662004-10-30 Kaz Kojima <kkojima@gcc.gnu.org> 6867 6868 * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and 6869 modify the for loop expressions for it. Remove unnecessary casts. 6870 (sh_expand_prologue): Declare reg as unsigned. 6871 (sh_gimplify_va_arg_expr): Initinalize lab_over. 6872 (sh_handle_sp_switch_attribute): Add const qualifier appropriately. 6873 68742004-10-30 Geoffrey Keating <geoffk@apple.com> 6875 6876 * doc/invoke.texi (Darwin Options): Improve description of 6877 how the subtype is chosen. 6878 68792004-10-30 Roger Sayle <roger@eyesopen.com> 6880 6881 PR middle-end/18096 6882 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that 6883 the stack adjustment, "size", is valid for Pmode. If the stack 6884 frame is too large, generate a trap insn and issue a warning. 6885 68862004-10-30 Kazu Hirata <kazu@cs.umass.edu> 6887 6888 * tree-ssa-dom.c: Fix comment typos. 6889 68902004-10-30 Kaz Kojima <kkojima@gcc.gnu.org> 6891 6892 * config/sh/sh.c (prepare_move_operands): Use operands[0] 6893 for the output rtl if no_new_pseudos is set. Remove redundant 6894 line. 6895 68962004-10-30 Joseph S. Myers <joseph@codesourcery.com> 6897 6898 PR c/16666 6899 * c-decl.c (start_function): Don't check for DECL_BUILT_IN when 6900 determining whether to copy parameter types from a previous 6901 prototype declaration. 6902 69032004-10-29 Roger Sayle <roger@eyesopen.com> 6904 6905 PR rtl-optimization/17581 6906 * cselib.c (cselib_process_insn): The last instruction of a libcall 6907 block, with the REG_RETVAL note, should be considered in the libcall. 6908 * gcse.c (do_local_cprop): Allow constants to be propagated outside 6909 of libcall blocks. 6910 (adjust_libcall_notes): Use simplify_replace_rtx instead of 6911 replace_rtx to avoid creating invalid RTL in REG_RETVAL notes. 6912 69132004-10-30 Kazu Hirata <kazu@cs.umass.edu> 6914 6915 * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN. 6916 69172004-10-29 Jeff Law <law@redhat.com> 6918 6919 * tree-ssa-dom.c (struct edge_info): New structure holding 6920 edge equivalences and edge redirection information. 6921 (get_eq_expr_value, record_dominating_conditions): Kill. 6922 (propagate_to_outgoing_edges): Renamed from cprop_into_phis. 6923 Call record_edge_info. 6924 (allocate_edge_info, free_edge_info): New. 6925 (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges 6926 rather than cprop_into_phis. Free all edge infos before threading 6927 jumps. 6928 (thread_across_edge): Allocate new edge info structures as needed 6929 and store the redirection target into the edge info structure 6930 instead of the edge's AUX field. 6931 (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED. 6932 (record_equivalence_from_incoming_edge): Lose unnecessary argument. 6933 Revamp code which finds and records equivalences associated with 6934 edges to use saved data in the edge_info structure. 6935 (record_equivalencs_from_phis): Similarly. 6936 (dom_opt_finalize_block): Revamp code which finds and records 6937 equivalences associated with edges to use saved data in the 6938 edge_info structure. 6939 (build_and_record_new_cond): New function. 6940 (record_conditions): Use build_and_record_new_cond to record 6941 dominating conditions. 6942 (record_edge_info): New function. 6943 (record_range): Tighten test for conditions which create 6944 useful range records. 6945 69462004-10-29 Geoffrey Keating <geoffk@apple.com> 6947 6948 * config/i386/darwin.h (ASM_SPEC): Simplify. 6949 (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec. 6950 * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New. 6951 (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec. 6952 * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here. 6953 (LINK_SPEC): Do pass -arch here. Handle -force_cpusubtype_ALL 6954 in all cases. Pass the right -arch or -arch_only based on -mcpu. 6955 (ASM_SPEC): Handle -force_cpusubtype_ALL. 6956 * doc/invoke.texi (Darwin Options): Improve documentation for 6957 Darwin linker (and libtool) switches. 6958 6959 * config/rs6000/darwin-fallback.c: Include <mach/thread_status.h>. 6960 69612004-10-29 Stan Shebs <shebs@apple.com> 6962 6963 * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly. 6964 69652004-10-29 Kazu Hirata <kazu@cs.umass.edu> 6966 6967 * tree-phinodes.c (allocate_phi_node): New. 6968 (make_phi_node, resize_phi_node): Use it. 6969 69702004-10-29 David Edelsohn <edelsohn@gnu.org> 6971 6972 * config/rs6000/sysv4.h (TARGET_POWER): Define as 0. 6973 * config/rs6000/darwin.h (TARGET_POWER): Define as 0. 6974 69752004-10-29 Kazu Hirata <kazu@cs.umass.edu> 6976 6977 * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero 6978 the whole PHI node. 6979 * tree.h (tree_phi_node): Tell the garbage collector to chase 6980 num_args arguments. 6981 69822004-10-29 Richard Earnshaw <rearnsha@arm.com> 6983 6984 * opts.c (decode_options): Lower the crossjump threshold for -Os. 6985 69862004-10-29 Diego Novillo <dnovillo@redhat.com> 6987 6988 * tree.h (struct tree_ssa_name): Remove field 'equiv'. 6989 69902004-10-28 Nathan Sidwell <nathan@codesourcery.com> 6991 6992 * bitmap.h (bitmap_empty_p): New. 6993 (bitmap_and, bitmap_and_into, bitmap_and_compl, 6994 bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, 6995 bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap 6996 operation macros. 6997 (bitmap_ior_and_compl): Rename to ... 6998 (bitmap_ior_and_compl_into): ... here. 6999 * bitmap.c (bitmap_equal_p): Use bitmap_xor. 7000 (bitmap_ior_and_compl): Rename to ... 7001 (bitmap_ior_and_compl_into): ... here. Adjust. Return changed 7002 flag. 7003 (bitmap_union_of_diff): Use renamed bitmap functions. 7004 * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET, 7005 XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise. 7006 * cfgrtl.c (safe_insert_insn_on_edge): Likewise. 7007 * df.c (df_bb_rd_local_compute) 7008 * flow.c (calculate_global_regs_live, 7009 init_propagate_block_info): Likewise. 7010 * ifcvt.c (find_if_case_1, find_if_case_2, 7011 dead_or_predicable): Likewise. 7012 * ra-build.c (union_web_part_roots, livethrough_conflicts_bb, 7013 reset_conflicts, conflicts_between_webs): Likewise. 7014 * ra-rewrite.c (reloads_to_loads, rewrite_program2, 7015 detect_web_parts_to_rebuild): Likewise. 7016 * sched-ebb.c (compute_jump_reg_dependencies): Likewise. 7017 * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise. 7018 * tree-sra.c (decide_instantiations): Likewise. 7019 * tree-ssa-alias.c (create_name_tags, 7020 merge_pointed_to_info): Likewise. 7021 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. 7022 * tree-ssa-loop-im.c (move_computations): Likewise. 7023 * tree-ssa-operands.c (get_call_expr_operands): Likewise. 7024 * tree-ssa-pre.c (fini_pre): Likewise. 7025 * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. 7026 * tree-ssanames.c (any_marked_for_rewrite_p): Likewise. 7027 * tree-vectorizer.c (vectorize_loops): Likewise. 7028 70292004-10-29 Nick Clifton <nickc@redhat.com> 7030 7031 config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When 7032 adding the PIC register to the fixed_regs array, also add it 7033 to the call_used_regs array. 7034 70352004-10-29 Eric Botcazou <ebotcazou@libertysurf.fr> 7036 7037 * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard 7038 with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs. 7039 70402004-10-28 Daniel Berlin <dberlin@dberlin.org> 7041 7042 * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function. 7043 (rewrite_blocks): Modify argument, and use it to decide which 7044 function to call. 7045 (rewrite_def_def_chains): Call rewrite_blocks with true here. 7046 (rewrite_into_ssa): and call it with false here. 7047 70482004-10-29 Kazu Hirata <kazu@cs.umass.edu> 7049 7050 * tree-phinodes.c (add_phi_arg): Turn an "if" that always 7051 triggers into gcc_assert. 7052 70532004-10-28 Diego Novillo <dnovillo@redhat.com> 7054 7055 PR tree-optimization/16728 7056 * tree-flow.h (get_ptr_info): Declare. 7057 * tree-ssa-alias.c (get_ptr_info): Make extern. 7058 * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive 7059 alias information. 7060 70612004-10-28 Stan Shebs <shebs@apple.com> 7062 7063 * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64. 7064 * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64 7065 case. 7066 70672004-10-28 Frank Ch. Eigler <fche@redhat.com> 7068 7069 * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to 7070 prevent their later unnecessary registration. 7071 (mf_build_check_statement_for): Remove "addr" argument, and 7072 related "__mf_value" generated code. Update callers. 7073 (mf_decl_eligible_p): New function, factored from mx_register_decls. 7074 (mx_register_decls): Call it. 7075 (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases 7076 to restore support for complex nested expressions. 7077 (mudflap_enqueue_decl): Simplify. Move registration call emission 7078 out ... 7079 (mudflap_finish_file): ... to here. 7080 (mudflap_enqueue_constant): Remove dump code. 7081 70822004-10-28 Zack Weinberg <zack@codesourcery.com> 7083 7084 PR 18199 7085 * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function. 7086 (DBX_FINISH_STABS): Add (unused by default) SYM parameter. 7087 (dbxout_finish_complex_stabs): Update to match. 7088 (dbxout_symbol_location): Call emit_pending_bincls_if_required 7089 and FORCE_TEXT before DBX_STATIC_BLOCK_START. Use 7090 dbxout_begin_complex_stabs_noforcetext. 7091 * xcoffout.h (DBX_FINISH_STABS): Restore special case for 7092 N_GSYM, using new SYM parameter. Correct logic for special 7093 cases for N_FUN. 7094 7095 * varasm.c (function_section): If DECL is NULL_TREE, don't try 7096 to do anything else. Do not call get_insns if cfun or 7097 cfun->emit are NULL. 7098 70992004-10-28 Adam Nemet <anemet@lnxw.com> 7100 7101 PR middle-end/18160 7102 * c-typeck.c (c_mark_addressable): Issue error if address of a 7103 register variable is taken. Use "%qD" to print DECL_NAME. 7104 71052004-10-28 Diego Novillo <dnovillo@redhat.com> 7106 7107 * opts.c (decode_options): Don't run PRE at -Os. 7108 71092004-10-28 Richard Henderson <rth@redhat.com> 7110 7111 * config/alpha/alpha.md (movqicc_internal): Allow exactly one 7112 zero in the conditional. 7113 (movhicc_internal, movsicc_internal, movdicc_internal): Likewise. 7114 71152004-10-28 Richard Henderson <rth@redhat.com> 7116 7117 * cse.c (memory_extend_rtx): Remove. 7118 (cse_main): Don't set it. 7119 (cse_insn): Use a local buffer instead. 7120 71212004-10-28 Andreas Krebbel <krebbel1@de.ibm.com> 7122 7123 * profile.c (branch_prob): Call to init_edge_profiler added. 7124 * rtl-profile.c (rtl_init_edge_profiler): New function. 7125 (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with 7126 call to safe_insert_insn_on_edge. 7127 (rtl_profile_hooks): rtl_init_edge_profiler added. 7128 * tree-profile.c (tree_init_edge_profiler): New function. 7129 (tree_profile_hooks): tree_init_edge_profiler added. 7130 * value-prof.h (profile_hooks) init_edge_profiler prototype added. 7131 71322004-10-28 Nick Clifton <nickc@redhat.com> 7133 7134 * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use 7135 emit_jump_insn() to generate the return instruction. 7136 71372004-10-28 Kazu Hirata <kazu@cs.umass.edu> 7138 7139 * tree-phinodes.c: Remove trailing whitespace. 7140 71412004-10-28 Kazu Hirata <kazu@cs.umass.edu> 7142 7143 * tree-ssa-loop-ivopts.c: Fix a comment typo. 7144 * doc/invoke.texi: Fix a typo. 7145 71462004-10-28 Kazu Hirata <kazu@cs.umass.edu> 7147 7148 * Makefile.in (OBJS-common): Remove duplicates. 7149 71502004-10-28 Kazu Hirata <kazu@cs.umass.edu> 7151 7152 * lambda-code.c (nestify_update_pending_stmts): Remove. 7153 (perfect_nestify): Use flush_pending_stmts instead of 7154 nestify_update_pending_stmts. 7155 * tree-cfg.c (tree_make_forwarder_block): Use 7156 flush_pending_stmts. 7157 * tree-flow.h: Add a prototype for flush_pending_stmts. 7158 * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): 7159 Use flush_pending_stmts. 7160 (lv_update_pending_stmts): Remove. 7161 (tree_ssa_loop_version): Use flush_pending_stmts instead of 7162 lv_update_pending_stmts. 7163 * tree-ssa.c (flush_pending_stmts): New. 7164 71652004-10-28 Ulrich Weigand <uweigand@de.ibm.com> 7166 7167 PR target/15286 7168 * final.c (alter_subreg): Compute correct offset to use with 7169 paradoxical SUBREGs of memory operands. 7170 * recog.c (general_operand): Allow paradoxical SUBREGs of 7171 memory operands after reload. 7172 * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg 7173 has failed when passed a hard register. 7174 71752004-10-28 Aldy Hernandez <aldyh@redhat.com> 7176 7177 * function.c (assign_parm_setup_block): Handle parallels correctly. 7178 71792004-10-28 Kaz Kojima <kkojima@gcc.gnu.org> 7180 7181 * final.c (shorten_branches): Initialize flags structure. 7182 71832004-10-28 Nathan Sidwell <nathan@codesourcery.com> 7184 7185 * tree.c (int_cst_node, int_cst_hash_table): New variables. 7186 (init_ttree): Initialize them. 7187 (int_cst_hash_hash, int_cst_hash_eq): New hashing functions. 7188 (build_int_cst_wide): Use hash table for oversized integers. 7189 71902004-10-28 Nick Clifton <nickc@redhat.com> 7191 7192 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define 7193 begin_label. 7194 71952004-10-27 Richard Henderson <rth@redhat.com> 7196 7197 PR middle-end/18163 7198 * expr.c (emit_group_load): Don't go force temporary for memory 7199 or concat source. 7200 (emit_group_store): Similarly. 7201 72022004-10-27 Andrew Pinski <pinskia@physics.uc.edu> 7203 7204 PR other/18186 7205 * common.opt (--param): Fix spelling of parameter. 7206 72072004-10-27 Andrew Pinski <pinskia@physics.uc.edu> 7208 7209 PR tree-opt/17529 7210 * tree-cfg.c (remove_useless_stmts_1) <case SWITCH_EXPR>: 7211 Don't fold statement. 7212 <case ASM_EXPR>: Fold the statement. 7213 72142004-10-28 Kazu Hirata <kazu@cs.umass.edu> 7215 7216 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) 7217 <COND_EXPR>: Use EDGE_COUNT instead of GOTO_DESTINATION. 7218 72192004-10-28 Joseph S. Myers <jsm@polyomino.org.uk> 7220 7221 * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi, 7222 doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, 7223 doc/libgcc.texi, doc/md.texi, doc/passes.texi, 7224 doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting. 7225 72262004-10-28 Joseph S. Myers <jsm@polyomino.org.uk> 7227 7228 * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi, 7229 doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put 7230 punctuation outside quotes. 7231 72322004-10-27 David Mosberger <davidm@hpl.hp.com> 7233 James E Wilson <wilson@specifixinc.com> 7234 7235 PR target/13158 7236 * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on 7237 sibcall alloc instruction. 7238 (process_set): Handle sibcall alloc instruction. 7239 72402004-10-27 Geoffrey Keating <geoffk@apple.com> 7241 7242 * config/rs6000/rs6000.c (rs6000_attribute_table): Add 7243 SUBTARGET_ATTRIBUTE_TABLE. 7244 * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import. 7245 (SUBTARGET_ATTRIBUTE_TABLE): Define. 7246 * config/darwin.c (darwin_handle_weak_import_attribute): New. 7247 (HAVE_DEAD_STRIP): Delete. 7248 (no_dead_strip): Don't test HAVE_DEAD_STRIP. 7249 * config/darwin-protos.h (darwin_handle_weak_import_attribute): 7250 Prototype. 7251 7252 * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document. 7253 7254 * config/darwin.h (GTHREAD_USE_WEAK): Define. 7255 72562004-10-28 Ben Elliston <bje@au.ibm.com> 7257 7258 * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New. 7259 (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise. 7260 * params.h (SRA_MAX_STRUCTURE_SIZE): New. 7261 (SRA_FIELD_STRUCTURE_RATIO): Likewise. 7262 * tree-sra.c: Include "params.h". 7263 (decide_block_copy): Use new parameters. 7264 * doc/invoke.texi (Optimize Options): Document new SRA pass 7265 parameters sra-max-structure-size and sra-field-structure-ratio. 7266 72672004-10-27 Nicolas Pitre <nico@cam.org> 7268 7269 * config/arm/ieee754-df.S (floatdidf): Fix regression with big values. 7270 72712004-10-27 Zdenek Dvorak <dvorakz@suse.cz> 7272 7273 PR tree-optimization/18048 7274 * fold-const.c (try_move_mult_to_index): New function. 7275 (fold): Use try_move_mult_to_index. 7276 * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates. 7277 * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce 7278 an all-ones unsigned constant without extra bits. 7279 * tree.c (build_low_bits_mask): New function. 7280 * tree.h (build_low_bits_mask): Declare. 7281 72822004-10-27 David Edelsohn <edelsohn@gnu.org> 7283 7284 PR target/17956 7285 * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to 7286 final condition. 7287 (minsf3): Same. 7288 (maxdf3): Same. 7289 (mindf3): Same. 7290 72912004-10-27 Kazu Hirata <kazu@cs.umass.edu> 7292 7293 * tree-cfg.c (thread_jumps): Speed up by reordering the two 7294 conditions for entering basic blocks into worklist. 7295 72962004-10-27 Kazu Hirata <kazu@cs.umass.edu> 7297 7298 * tree-cfg.c (thread_jumps): Speed up by pretending to have 7299 ENTRY_BLOCK_PTR in worklist. 7300 73012004-10-27 Kazu Hirata <kazu@cs.umass.edu> 7302 7303 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) 7304 <GOTO_EXPR>: Don't let an explicit GOTO_EXPR slip through. 7305 73062004-10-27 Daniel Berlin <dberlin@dberlin.org> 7307 7308 Fix PR tree-optimization/17133 7309 7310 * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must 7311 def kill operand. 7312 7313 * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT. 7314 (get_v_must_def_result_ptr): Modify for new structure of 7315 v_must_defs array. 7316 (get_v_must_def_kill_ptr): New. 7317 (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs. 7318 (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT. 7319 (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT. 7320 (op_iter_init): Initialize new mustu members. 7321 (op_iter_next_mustdef): New function. 7322 (op_iter_init_mustdef): Ditto. 7323 7324 * tree-flow.h (rewrite_def_def_chains): New function. 7325 7326 * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands. 7327 (ssa_mark_def_sites): Ditto. 7328 (rewrite_stmt): Ditto. 7329 (ssa_rewrite_stmt): Ditto. 7330 (rewrite_blocks): Factor out from rewrite_into_ssa. 7331 (mark_def_block_sites): Ditto. 7332 (rewrite_def_def_chains): New function, just rewrites def-def 7333 chains without phi node insertion. 7334 7335 * tree-pass.h (TODO_fix_def_def_chains): New todo flag. 7336 7337 * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains. 7338 7339 * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that 7340 they include the rhs now. 7341 7342 * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became 7343 V_MUST_DEF_RESULT. 7344 7345 * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument. 7346 Update callers. 7347 (mark_really_necessary_kill_operand_phis): New function. 7348 (perform_tree_ssa_dce): Call it. 7349 (pass_dce): Add TODO_fix_def_def_chains. 7350 (pass_cd_dce): Ditto. 7351 7352 * tree-ssa-loop-im.c (determine_max_movement): Look at kills as 7353 well. 7354 (rewrite_mem_refs): Ditto. 7355 7356 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills 7357 as well. 7358 7359 * tree-ssa-operands.c (allocate_v_may_def_optype): 7360 v_may_def_operand_type_t became v_def_use_operand_type_t. 7361 (allocate_v_must_def_optype) Ditto. 7362 (finalize_ssa_v_must_defs): Update for new operand type, as well 7363 as setting the use portion as well. 7364 (copy_virtual_operands): Copy the kill operand as well. 7365 (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became 7366 V_MUST_DEF_RESULT. 7367 7368 * tree-ssa-operands.h (v_may_def_operand_type): Renamed to 7369 v_def_use_operand_type. 7370 (v_must_def_optype_d): Use v_def_use_operand_type. 7371 (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_* 7372 (V_MUST_DEF_KILL_*): New macros. 7373 (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i 7374 members. 7375 Rename existing must_i and num_v_must members to mustd_i and 7376 num_v_mustd. 7377 (SSA_OP_VMUSTDEFKILL): New flag. 7378 (SSA_OP_VIRTUAL_KILLS): New flag. 7379 (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS. 7380 (SSA_OP_ALL_KILLS): New flag. 7381 (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro. 7382 7383 * tree-ssa.c (verify_ssa): Verify virtual kills as well. 7384 7385 * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP 7386 became V_MUST_DEF_RESULT. 7387 (rename_variables_in_bb): Rename kill pointer as well. 7388 7389 * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the 7390 immediate uses. 7391 73922004-10-27 Richard Sandiford <rsandifo@redhat.com> 7393 7394 * dbxout.c (dbxout_source_line): Move declaration of begin_label to 7395 the block that needs it. 7396 73972004-10-27 Zack Weinberg <zack@codesourcery.com> 7398 7399 * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable 7400 ATTRIBUTE_UNUSED. 7401 74022004-10-27 Zack Weinberg <zack@codesourcery.com> 7403 7404 * c-lex.c (cb_def_pragma): Clean up code for making location 7405 palatable to diagnostic.c. 7406 74072004-10-27 Steven Bosscher <stevenb@suse.de> 7408 7409 PR tree-optimization/17757 7410 * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs 7411 without any PHI arguments left. Make sure the argument that 7412 we're supposed to remove exists at all. 7413 74142004-10-27 Paul Brook <paul@codesourcery.com> 7415 7416 * configure.ac: Don't test for [build] __cxa_atexit when building a 7417 cross compiler. 7418 * configure: Regenerate. 7419 74202004-10-27 Paul Brook <paul@codeosurcery.com> 7421 7422 * configure.ac: Use build_exeext not host_exeext when lookin for 7423 target tools. 7424 * configure: Regenerate. 7425 74262004-10-27 Andreas Krebbel <krebbel1@de.ibm.com> 7427 7428 * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus. 7429 74302004-10-27 Andreas Krebbel <krebbel1@de.ibm.com> 7431 patch originally created by Kelley Cook <kcook@gcc.gnu.org> 7432 7433 PR middle-end/14684 7434 * opts.c (OPT_fprofile_generate): Default to -funroll-loops 7435 to match -fprofile-use. 7436 74372004-10-27 Kazu Hirata <kazu@cs.umass.edu> 7438 7439 * config/rs6000/rs6000.c: Fix a comment typo. 7440 74412004-10-27 Zack Weinberg <zack@codesourcery.com> 7442 7443 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line 7444 counter. 7445 74462004-10-27 Andreas Schwab <schwab@suse.de> 7447 7448 * varasm.c (default_stabs_asm_out_destructor): Mark symbol as 7449 unused. 7450 (default_stabs_asm_out_constructor): Likewise. 7451 74522004-10-26 Geoffrey Keating <geoffk@apple.com> 7453 7454 * builtins.c (fold_builtin_unordered_cmp): Always bring both 7455 operands to the same type. 7456 74572004-10-26 James E Wilson <wilson@specifixinc.com> 7458 7459 PR target/18010 7460 * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P. 7461 74622004-10-26 Zack Weinberg <zack@codesourcery.com> 7463 7464 * dbxout.c: Include obstack.h. 7465 (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in 7466 default definition. 7467 (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR): 7468 Default-define here. 7469 (DBX_CONTIN_LENGTH): Move definition with others. 7470 (DBX_FINISH_STABS): New target macro. 7471 (current_sym_code, current_sym_value, current_sym_addr) 7472 (current_sym_nchars, CHARS, dbxout_continue) 7473 (print_int_cst_octal, print_octal, print_wide_int) 7474 (dbxout_prepare_symbol, dbxout_finish_symbol): Delete. 7475 (stabstr_ob, stabstr_last_contin_point): New variables. 7476 (NUMBER_FMT_LOOP): New improper macro. 7477 (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label) 7478 (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label) 7479 (dbxout_stab_value_internal_label_diff, dbxout_stabd) 7480 (dbxout_begin_stabn, dbxout_begin_stabn_sline) 7481 (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc) 7482 (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs) 7483 (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O) 7484 (stabstr_continue, DECL_ACCESSIBILITY_CHAR) 7485 New functions and/or proper function-like macros. 7486 (CONTIN): Use stabstr_continue, unconditionally. 7487 (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED. 7488 (dbxout_init): Initialize stabstr_ob. Check 7489 NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label 7490 if it was used. Use the new interfaces. 7491 (dbxout_source_file): Remove file argument; always write to 7492 asm_out_file. Use the new interfaces. 7493 (dbxout_type_method_1): Remove second argument which is always 7494 DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces. 7495 (dbxout_type_methods): Remove write-only variables. Use the 7496 new interfaces. 7497 (dbxout_parms): Refactor to remove code duplicated in each of 7498 several successive if-else-if blocks. Use the new interfaces. 7499 (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file) 7500 (dbxout_source_line, dbxout_finish, dbxout_type_index) 7501 (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name) 7502 (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location) 7503 (dbxout_symbol_name, dbxout_reg_parms, dbxout_args) 7504 (dbx_output_lbrac, dbx_output_rbrac, dbxout_block): 7505 Use the new interfaces. 7506 * Makefile.in (dbxout.o): Update dependencies. 7507 7508 * defaults.h: Don't define ASM_STABD_OP. 7509 * output.h: Prototype new dbxout_* interfaces. 7510 * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL. 7511 * varasm.c: Don't define ASM_STABS_OP. 7512 (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor): 7513 Use the new dbxout.c interfaces. Call sorry if neither 7514 DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined. 7515 7516 * xcoffout.h: Don't define ASM_STABS_OP. 7517 (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS. 7518 (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete. 7519 (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define. 7520 (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to 7521 do { ... } while (0) idiom. 7522 7523 * config/alpha/alpha.c (num_source_filenames): Export. 7524 * config/alpha/alpha.h (num_source_filenames): Declare. 7525 (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. 7526 (SDB_OUTPUT_SOURCE_LINE): Add missing newline. 7527 * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. 7528 Always use .debugsym. Update commentary. 7529 * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. 7530 (SDB_OUTPUT_SOURCE_LINE): Add missing newline. 7531 * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC): 7532 Use new interfaces. 7533 * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h. 7534 (macho_branch_islands): Use new interfaces. 7535 7536 * doc/tm.texi: Update. 7537 75382004-10-26 Aldy Hernandez <aldyh@redhat.com> 7539 7540 * expr.c (emit_group_store): Do not treat floats as BLKmode. 7541 (emit_group_load): Same. 7542 75432004-10-26 Joseph S. Myers <jsm@polyomino.org.uk> 7544 7545 * c-parse.in (datadef): Use pedwarn rather than error and warning 7546 for diagnostic in case of no declaration specifiers. 7547 75482004-10-26 Richard Sandiford <rsandifo@redhat.com> 7549 7550 PR bootstrap/15747 7551 * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been 7552 reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh 7553 can be used to work around this. 7554 75552004-10-26 Aldy Hernandez <aldyh@redhat.com> 7556 7557 * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500 7558 doubles. 7559 75602004-10-26 Kazu Hirata <kazu@cs.umass.edu> 7561 7562 * stmt.c (expand_case): Update a comment. 7563 75642004-10-26 Kazu Hirata <kazu@cs.umass.edu> 7565 7566 * stmt.c (expand_case): Put an assertion that index_expr is 7567 never INTEGER_CST. Don't special case for constant 7568 index_expr. 7569 75702004-10-26 Andrew Pinski <pinskia@physics.uc.edu> 7571 7572 PR 18162 7573 * c-parse.in (designator): Finish with a semi-colon. 7574 75752004-10-26 Fariborz Jahanian <fjahanian@apple.com> 7576 7577 * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting 7578 into rotlsi3. 7579 75802004-10-26 Kazu Hirata <kazu@cs.umass.edu> 7581 7582 * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with 7583 a default case only. 7584 75852004-10-26 Aldy Hernandez <aldyh@redhat.com> 7586 7587 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for 7588 e500 doubles. 7589 (spe_build_register_parallel): New. 7590 (rs6000_spe_function_arg): Handle e500 doubles. 7591 (function_arg): Same. 7592 (spe_func_has_64bit_regs_p): Same. 7593 (rs6000_function_value): Same. 7594 (rs6000_libcall_value): Same. 7595 (legitimate_lo_sum_address_p): Return false for e500 doubles. 7596 7597 * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500 7598 doubles. 7599 (DATA_ALIGNMENT): Same. 7600 (CANNOT_CHANGE_MODE_CLASS): Same. 7601 76022004-10-26 Aldy Hernandez <aldyh@redhat.com> 7603 7604 * expr.c (emit_group_load): Handle floats. 7605 (emit_group_store): Same. 7606 76072004-10-26 Nathan Sidwell <nathan@codesourcery.com> 7608 7609 * c-lex.c (get_nonpadding_token): Remove. 7610 (c_lex_with_flags): Push timevar and eat padding here. Improve 7611 stray token diagnostic. 7612 (lex_string): Replace logic with switch statement, eat padding 7613 token here. 7614 76152004-10-26 Geoffrey Keating <geoffk@apple.com> 7616 7617 PR 18149 7618 * config/i386/darwin.h (ASM_SPEC): Undef it before defining. 7619 76202004-10-25 Geoffrey Keating <geoffk@apple.com> 7621 7622 * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches 7623 to 'non-weak'. 7624 (MAKE_DECL_ONE_ONLY): Set DECL_WEAK. 7625 (ASM_MAKE_LABEL_LINKONCE): Delete. 7626 (ASM_WEAKEN_DECL): New. 7627 (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY. 7628 (ASM_DECLARE_FUNCTION_NAME): Likewise. 7629 (TEXT_SECTION_ASM_OP): Add a tab. 7630 (DATA_SECTION_ASM_OP): Likewise. 7631 (SECTION_FUNCTION): Add a tab. Use fputs. Don't call 7632 data_section on every section change. 7633 (EXTRA_SECTIONS): Add a bunch of new extra sections. 7634 (EXTRA_SECTION_FUNCTIONS): Likewise. 7635 (USE_SELECT_SECTION_FOR_FUNCTIONS): Define. 7636 (JCR_SECTION_NAME): Define. 7637 (TARGET_SECTION_TYPE_FLAGS): Don't define. 7638 * config/darwin.c (darwin_encode_section_info): A symbol is defined 7639 in this file if it is not weak. 7640 (textcoal_section): Delete. 7641 (datacoal_section): Delete. 7642 (darwin_make_decl_one_only): Delete. 7643 (machopic_select_section): Handle functions. 7644 (darwin_asm_named_section): Add a tab. 7645 (darwin_section_type_flags): Delete. 7646 (darwin_unique_section): Delete contents. 7647 (darwin_emit_unwind_label): Add a tab. Make decls weak if 7648 DECL_WEAK is set. 7649 * config/darwin-protos.h (darwin_section_type_flags): Delete. 7650 (darwin_make_decl_one_only): Delete. 7651 (text_coal_section): New. 7652 (text_unlikely_section): New. 7653 (text_unlikely_coal_section): New. 7654 (const_coal_section): New. 7655 (data_coal_section): New. 7656 (const_data_coal_section): New. 7657 * varasm.c (function_section): Honour 7658 USE_SELECT_SECTION_FOR_FUNCTIONS. 7659 * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when 7660 TARGET_USES_WEAK_UNWIND_INFO is in effect. 7661 * dbxout.c (dbxout_source_file): Don't change sections while 7662 a function is being output. 7663 76642004-10-25 David Ayers <d.ayers@inode.at> 7665 7666 * c-common.h: Remove RID_ID. 7667 * c-parse.in: Remove OBJECTNAME and references to RID_ID. 7668 (typespec_reserved_attr): Add rule for TYPENAME 7669 non_empty_protocolrefs. 7670 (yylexname): Remove special handling of RID_ID. 7671 76722004-10-25 James E Wilson <wilson@specifixinc.com> 7673 7674 * doc/invoke.texi (-fcrossjumping): Not enabled at -O. 7675 76762004-10-25 Joseph S. Myers <jsm@polyomino.org.uk> 7677 7678 PR c/16667 7679 * c-parse.in (array_designator): New. 7680 (designator): Use it. 7681 (initelt): Only permit array_designator without '=', not ".foo". 7682 76832004-10-25 Kenneth Zadeck <zadeck@naturalbridge.com> 7684 * Makefile.in: removed ggc for cgraphunit. 7685 * cgraph.c.dump_cgraph_node: removed static var analysis. 7686 * cgraph.h: removed static var analysis data structures and calls. 7687 * cgraphunit.c: 7688 cgraph_mark_local_and_external_functions:changed name to 7689 cgraph_mark_local_functions 7690 (print_order,convert_UIDs_in_bitmap,new_static_vars_info, 7691 cgraph_reset_static_var_maps,get_global_static_vars_info, 7692 get_global_statics_not_read,get_global_statics_not_written,searchc, 7693 cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var, 7694 check_lhs_var,get_asm_expr_operands,process_call_for_static_vars, 7695 scan_for_static_refs,cgraph_characterize_statics_local, 7696 clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics): 7697 removed. 7698 (cgraph_optimize,init_cgraph): removed calls to static vars analysis 7699 * tree-dfa.c find_referenced_vars: removed call to static vars 7700 analysis 7701 * tree-flow.h static_vars_info: removed 7702 * tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops): 7703 removed calls to static vars analysis. 7704 get_call_expr_operands: removed callee variable. 7705 77062004-10-25 Kazu Hirata <kazu@cs.umass.edu> 7707 7708 * cfg.c (unchecked_make_edge, redirect_edge_succ, 7709 redirect_edge_pred): Use VEC_safe_push instead of 7710 VEC_safe_insert. 7711 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 7712 77132004-10-25 Kazu Hirata <kazu@cs.umass.edu> 7714 7715 * cfgloopmanip.c (loopify): Take two more arguments true_edge 7716 and false_edge. 7717 * cfgloop.h: Adjust the corresponding prototype. 7718 * loop-unswitch.c (unswitch_loop): Adjust a call to loopify. 7719 * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise. 7720 77212004-10-25 Jakub Jelinek <jakub@redhat.com> 7722 7723 * dwarf2out.c (rtl_for_decl_location): Avoid segfault if 7724 DECL_INCOMING_RTL is NULL. 7725 77262004-10-25 Steven Bosscher <stevenb@suse.de> 7727 7728 * timevar.def (TV_FIND_REFERENCED_VARS): New. 7729 * tree-dfa.c (pass_referenced_var): Use it. 7730 77312004-10-25 Roger Sayle <roger@eyesopen.com> 7732 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 7733 7734 * cse.c: Change encoding of quantity numbers to avoid undefined 7735 pointer arithmetic on qty_table. 7736 (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative. 7737 (get_cse_reg_info): Initialize reg_qty to a unique negative value. 7738 (new_basic_block): Assign "real" quantity numbers from zero. 7739 (delete_reg_equiv): Do nothing if quantity is invalid. Reset the 7740 REG_QTY to its unique negative value. 7741 (merge_equiv_classes): Calculate need_rehash if quantity is valid. 7742 (cse_main): Don't include max_reg when determining max_qty. 7743 (cse_basic_block): Avoid subtracting a large offset from qty_table, 7744 which causes undefined C99 behaviour. Only allocate needed memory. 7745 77462004-10-25 Kazu Hirata <kazu@cs.umass.edu> 7747 7748 * stmt.c (expand_case): Remove an obsolete comment. 7749 77502004-10-25 Andrew Pinski <pinskia@physics.uc.edu> 7751 7752 PR middle-end/17407 7753 * c-decl.c (grokdeclarator) <case cdk_array>: Remove the call 7754 layout_type as it is already done by build_array_type. 7755 * tree.c (build_array_type): Layout the type even 7756 77572004-10-25 Alexandre Oliva <aoliva@redhat.com> 7758 7759 * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0. 7760 77612004-10-25 Alexandre Oliva <aoliva@redhat.com> 7762 7763 * config/frv/frv.md (movdi, movdf): Handle wide-constant splits 7764 with wider-than-32-bit HOST_WIDE_INTs. 7765 77662004-10-25 David Billinghurst <David.Billinghurst@riotinto.com> 7767 7768 * config/mips/mips.c(mips_output_filename): Remove unused 7769 array ltext_label_name 7770 77712004-10-24 Geoffrey Keating <geoffk@geoffk.org> 7772 7773 * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define. 7774 77752004-10-25 Ben Elliston <bje@au.ibm.com> 7776 7777 * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output. 7778 77792004-10-23 Andrew Pinski <pinskia@physics.uc.edu> 7780 7781 * predict.c (predict_loops): Call scev_finalize instead of 7782 scev_reset. 7783 77842004-10-24 Kazu Hirata <kazu@cs.umass.edu> 7785 7786 * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h, 7787 config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md, 7788 config/sh/ushmedia.h, config/sparc/elf.h, 7789 config/sparc/sp64-elf.h: Update copyright. 7790 77912004-10-24 Kazu Hirata <kazu@cs.umass.edu> 7792 7793 * stmt.c (expand_case): Handle the default label outside of 7794 the for loop. Remove code to handle a missing default label. 7795 77962004-10-23 Kazu Hirata <kazu@cs.umass.edu> 7797 7798 * dbxout.c (dbxout_function_decl): Don't use 7799 DBX_OUTPUT_FUNCTION_END. 7800 * system.h: Poison DBX_OUTPUT_FUNCTION_END. 7801 * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove. 7802 78032004-10-23 Andrew Pinski <pinskia@physics.uc.edu> 7804 7805 PR middle-end/17967 7806 * tree-cfg.c (remove_usless_stmts_cond): Don't Fold statement. 7807 78082004-10-23 Daniel Berlin <dberlin@dberlin.org> 7809 7810 * tree-ssa-dom.c (record_equality): Use loop depth to determine 7811 which way to record the equality as well. 7812 (loop_depth_of_name): New function. 7813 78142004-10-23 Eric Botcazou <ebotcazou@libertysurf.fr> 7815 7816 PR middle-end/17793 7817 * gimplify.c (gimplify_addr_expr) <VIEW_CONVERT_EXPR>: Look 7818 through the operand if it is a useless type conversion. 7819 78202004-10-23 Ben Elliston <bje@au.ibm.com> 7821 7822 * cfg.c (remove_edge): Use VEC_unordered_remove. 7823 (redirect_edge_succ): Likewise. 7824 (redirect_edge_pred): Likewise. 7825 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 7826 78272004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7828 7829 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR 7830 beyond its end. 7831 78322004-10-22 Eric Christopher <echristo@redhat.com> 7833 7834 * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode 7835 saves. 7836 78372004-10-22 Aldy Hernandez <aldyh@redhat.com> 7838 7839 * config/rs6000/spe.md (spe_extendsfdf2): New. 7840 (movdf_e500_double): New. 7841 (spe_truncdfsf2): New. 7842 (spe_absdf2): New. 7843 (spe_nabsdf2): New. 7844 (spe_negdf2): New. 7845 (sub_adddf3): New. 7846 (spe_subdf3): New. 7847 (spe_muldf3): New. 7848 (spe_floatsidf2): New. 7849 (spe_floatunssidf2): New. 7850 (fix_truncdfsi2): New. 7851 (spe_fixuns_truncdfsi2): New. 7852 7853 * config/rs6000/rs6000.md (truncdfsf2): Change to expander. 7854 (fpr_truncdfsf2): New. 7855 (negdf2): Change to expander. 7856 (fpr_negdf2): New. 7857 (fpr_nabsdf2): Name pattern. 7858 (adddf3): Change to expander. 7859 (fpr_adddf3): Nem. 7860 (subdf3): Change to expander. 7861 (fpr_subdf3): New. 7862 (muldf3): Change to expander. 7863 (fpr_muldf3): New. 7864 (divdf3): Change to expander. 7865 (fpr_divdf3): New. 7866 (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE. 7867 (cmpdf): Allow for TARGET_E500_DOUBLE. 7868 78692004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7870 7871 * c-semantics.c (re_push_stmt_list): Remove. 7872 * c-common.h: Remove the corresponding prototype. 7873 78742004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7875 7876 * stmt.c (asm_op_is_mem_input): Remove. 7877 * tree.h: Remove the corresponding prototype. 7878 78792004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7880 7881 * tree-gimple.c (is_gimple_constructor_elt): Remove. 7882 * tree-gimple.h: Remove the corresponding prototype. 7883 78842004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7885 7886 * varasm.c (get_pool_mode_for_function, get_pool_offset): 7887 Remove. 7888 * rtl.h: Remove the corresponding prototypes. 7889 78902004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7891 7892 * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting 7893 edge information when we commit ourselves to threading a 7894 particular jump. 7895 78962004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7897 7898 * tree-cfg.c (thread_jumps): Speed up by putting basic blocks 7899 into worklist instead of their indexes. 7900 79012004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7902 7903 * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h, 7904 final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def, 7905 lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c, 7906 pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c, 7907 tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c, 7908 tree-scalar-evolution.c, tree-ssa-dom.c, 7909 tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, 7910 tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, 7911 tree-vectorizer.c, vec.h: Fix comment formatting. 7912 79132004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7914 7915 * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h, 7916 libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright. 7917 79182004-10-22 Kazu Hirata <kazu@cs.umass.edu> 7919 7920 * config/ptx4.h, config/mcore/mcore-pe.h, 7921 config/rs6000/eabi.h, config/vax/elf.h: Update copyright. 7922 79232004-10-22 Peter Barada <peter@the-baradas.com> 7924 7925 * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro. 7926 * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow 7927 renaming of non-live registers in interrupt functions. 7928 * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype. 7929 79302004-10-22 Zdenek Dvorak <dvorakz@suse.cz> 7931 7932 * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible. 7933 Use integer for loop counter. 7934 (num_ending_zeros): New function. 7935 (number_of_iterations_cond): Use num_ending_zeros. 7936 79372004-10-21 Aldy Hernandez <aldyh@redhat.com> 7938 7939 * config.gcc: Add support for --enable-e500_double. 7940 7941 * config/rs6000/e500-double.h: New file. 7942 7943 * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and 7944 TARGET_E500_DOUBLE. 7945 7946 * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and 7947 TARGET_E500_DOUBLE. 7948 7949 * config/rs6000/linuxspe.h: Same. 7950 7951 * doc/invoke.texi (Option Summary): Document new options for 7952 mfloat-gprs. 7953 (RS/6000 and PowerPC Options): Same. 7954 7955 * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New 7956 function. 7957 (rs6000_override_options): Use it. Use 7958 SUB3TARGET_OVERRIDE_OPTIONS. 7959 Add 8548 to processor_target_table. 7960 (rs6000_legitimate_address): Handle e500 doubles. 7961 (rs6000_legitimize_address): Same. 7962 (rs6000_legitimize_reload_address): Same. 7963 (rs6000_hard_regno_nregs): Same. 7964 (spe_func_has_64bit_regs_p): Same. 7965 (emit_frame_save): Same. 7966 (gen_frame_mem_offset): Same. 7967 (rs6000_dwarf_register_span): Same. 7968 (rs6000_generate_compare): Same. 7969 (easy_fp_constant): Same. 7970 (legitimate_offset_address_p): Same. 7971 7972 * config/rs6000/spe.md: (cmdfeq_gpr): New. 7973 (tstdfeq_gpr): New. 7974 (cmpdfgt_gpr): New. 7975 (tstdfgt_gpr): New. 7976 (tstdfgt_gpr): New. 7977 (cmpdflt_gpr): New. 7978 (tstdflt_gpr): New. 7979 Add new constants. 7980 79812004-10-21 Giovanni Bajo <giovannibajo@gcc.gnu.org> 7982 7983 * config/arc/lib1funcs.asm (___umulsidi3): Fix typo. 7984 79852004-10-21 Zack Weinberg <zack@codesourcery.com> 7986 7987 * dbxout.c: Remove unnecessary #undefs. 7988 (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER) 7989 (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole 7990 definition into use sites. 7991 (cwd): Make local to dbxout_init. 7992 (dbxout_init): Restructure cwd-using logic for clarity. Use 7993 IS_DIR_SEPARATOR. 7994 * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of 7995 STABS_GCC_MARKER folded in here. 7996 * system.h: Poison now-unused macros. 7997 * doc/tm.texi: Remove documentation of now-unused macros. 7998 79992004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 8000 8001 PR c/17538 8002 * c-opts.c (push_command_line_include): Use the current file 8003 name instead of the main one. 8004 80052004-10-21 Andrew Pinski <pinskia@physics.uc.edu> 8006 8007 PR objc/17923 8008 * tree.c (staticp): A CONST_DECL has static storage if either 8009 TREE_STATIC or DECL_EXTERNAL is set. 8010 * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can 8011 have null names. 8012 80132004-10-21 Kazu Hirata <kazu@cs.umass.edu> 8014 8015 * expr.c (store_expr): Remove dont_store_target. 8016 80172004-10-21 Kazu Hirata <kazu@cs.umass.edu> 8018 8019 * tree-cfg.c (thread_jumps): Speed up by using a worklist. 8020 80212004-10-21 Kazu Hirata <kazu@cs.umass.edu> 8022 8023 * tree-cfg.c (thread_jumps): Move a part of it to ... 8024 (thread_jumps_from_bb): ... here. 8025 80262004-10-21 David Edelsohn <edelsohn@gnu.org> 8027 8028 * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument. 8029 * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE). 8030 80312004-10-21 Kazu Hirata <kazu@cs.umass.edu> 8032 8033 * expr.c (store_expr): Clean up by renaming want_value to 8034 call_param_p. 8035 80362004-10-21 Kaz Kojima <kkojima@gcc.gnu.org> 8037 8038 * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't 8039 fixup pc here. 8040 80412004-10-21 Aldy Hernandez <aldyh@redhat.com> 8042 8043 PR 18004. 8044 * expmed.c (store_bit_field): Pass original 'value' before 8045 recursing. 8046 80472004-10-21 Nicolas Pitre <nico@cam.org> 8048 8049 * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling. 8050 * config/arm/ieee754-df.S: Ditto. 8051 80522004-10-20 Zack Weinberg <zack@codesourcery.com> 8053 8054 * dbxout.c (asmfile): Delete. All uses changed to asm_out_file. 8055 (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE): 8056 Default to 0. 8057 (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined. 8058 When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit 8059 an internal label and an N_SLINE .stabn whose value is the 8060 difference between that label and the function entry label. 8061 (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined, 8062 but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a 8063 label and an N_SO stab with an empty string referring to it. 8064 (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead 8065 of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE. 8066 (dbxout_type_methods, dbxout_symbol): Remove #if 0 block. 8067 (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this 8068 macro is never defined. 8069 * sdbout.c (sdbout_source_line_counter): Delete. 8070 (PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition. 8071 (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes 8072 only two arguments. 8073 * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE. 8074 8075 * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs. 8076 * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro 8077 definitions (identical to default). 8078 * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h 8079 * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h: 8080 Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not 8081 DBX_OUTPUT_MAIN_SOURCE_FILE_END. 8082 * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h 8083 * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h: 8084 Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE. 8085 * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno. 8086 * config/alpha/alpha.c: Move declaration of num_source_filenames up. 8087 (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE. 8088 (sym_lineno): Delete. 8089 (alpha_output_filename): Do not emit N_SOL stabs here. Remove 8090 now-unused variable. 8091 (alpha_output_lineno): Delete. 8092 * config/mips/mips-protos.h: Don't prototype mips_output_lineno. 8093 * config/mips/mips.c (mips_output_filename): Don't use 8094 ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here. 8095 (mips_output_lineno): Delete. 8096 (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE. 8097 * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and 8098 SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE. 8099 * config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME. 8100 * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE. 8101 * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE. 8102 * config/mmix/mmix.h: Likewise. 8103 * config/mmix/mmix.c (mmix_asm_output_source_line): Delete. 8104 * config/mmix/mmix-protos.h: Don't prototype it. 8105 * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE; 8106 no need to #undef ASM_OUTPUT_SOURCE_LINE. 8107 * config/arm/aout.h: Remove RISCiX-specific definition of 8108 DBX_OUTPUT_MAIN_SOURCE_FILENAME. 8109 * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not 8110 ASM_OUTPUT_SOURCE_LINE. 8111 * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to 8112 DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label. 8113 * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END. 8114 8115 * doc/tm.texi: Update. 8116 81172004-10-20 Richard Henderson <rth@redhat.com> 8118 8119 * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also. 8120 81212004-10-20 Kelley Cook <kcook@gcc.gnu.org> 8122 8123 * configure.ac: Revert my previous patch. 8124 * configure: Regenerate. 8125 81262004-10-20 Ben Elliston <bje@au.ibm.com> 8127 8128 * config/rs6000/rs6000.c 8129 (rs6000_va_start): Use build_va_arg_indirect_ref. 8130 (rs6000_gimplify_va_arg): Likewise. 8131 81322004-10-20 Bryce McKinlay <mckinlay@redhat.com> 8133 8134 PR java/15575 8135 * configure.ac: Declare AM_LANGINFO_CODESET. 8136 * aclocal.m4: Define AM_LANGINFO_CODESET. 8137 * configure, config.in: Rebuilt. 8138 81392004-10-20 Kazu Hirata <kazu@cs.umass.edu> 8140 8141 * expr.c (store_expr): Remove code that is run when 8142 want_value & 1 is nonzero. 8143 81442004-10-20 Mark Mitchell <mark@codesourcery.com> 8145 8146 * gthr-posix.h (__gthread_active_p): Use __extension__ around cast 8147 from function pointer to void *. 8148 81492004-10-20 Kaz Kojima <kkojima@gcc.gnu.org> 8150 8151 PR target/18032 8152 * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before 8153 the frame pointer adjustment when exception handling is enabled. 8154 81552004-10-20 Kazu Hirata <kazu@cs.umass.edu> 8156 8157 * stor-layout.c: Fix a comment typo. 8158 81592004-10-20 Kazu Hirata <kazu@cs.umass.edu> 8160 8161 * expr.c (store_field): Remove two arguments value_mode and 8162 unsignedp. 8163 (expand_assignment, store_constructor_field, 8164 expand_expr_real_1): Adjust calls to store_field. 8165 81662004-10-18 Ramana Radhakrishnan <ramana.radhakrishnan@codito.com> 8167 8168 * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags. 8169 8170 PR target/17317 8171 * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P, 8172 REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid 8173 base and index register for loads. 8174 8175 * config/arc/t-arc: Fix multilib handling. 8176 81772004-10-20 Hans-Peter Nilsson <hp@bitrange.com> 8178 8179 * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, 8180 don't inspect BLOCK_FOR_INSN for barriers. 8181 * emit-rtl.c (emit_barrier_before): Revert last change. 8182 (emit_barrier_after, emit_barrier): Ditto. 8183 8184 * doc/extend.texi (Extended Asm): Warn and provide example 8185 solution for using a call-clobbered asm register. 8186 (Local Reg Vars): Similar. Cross-reference example. 8187 81882004-10-19 Andrew Pinski <pinskia@physics.uc.edu> 8189 8190 * tree-cfg.c (group_case_labels): Look at the second to last 8191 case statement for combing with the default case. 8192 81932004-10-19 Richard Hendeson <rth@redhat.com> 8194 8195 PR 17962 8196 * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors. 8197 81982004-10-19 Richard Hendeson <rth@redhat.com> 8199 8200 * builtins.c (expand_builtin_memmove): If fold_builtin_memmove 8201 succeeds, only expand the result. 8202 82032004-10-19 Richard Hendeson <rth@redhat.com> 8204 8205 PR middle-end/17885 8206 * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address 8207 of INDIRECT_REF. 8208 82092004-10-19 Kazu Hirata <kazu@cs.umass.edu> 8210 8211 * tree-cfg.c (thread_jumps): Use a do-while loop instead of a 8212 loop with goto. 8213 82142004-10-19 Kazu Hirata <kazu@cs.umass.edu> 8215 8216 * expr.c (expand_assignment): Remove the last argument. 8217 Change the return type to void. 8218 * expr.h: Update the prototype of expand_assignment. 8219 * function.c (assign_parm_setup_reg): Update a call to 8220 expand_assignment. 8221 * stmt.c (expand_asm_expr): Likewise. 8222 82232004-10-19 Kazu Hirata <kazu@cs.umass.edu> 8224 8225 * expr.c (expand_expr_real_1) <MODIFY_EXPR>: Remove 8226 unnecessary assignments to temp. Return const0_rtx. 8227 82282004-10-19 Kaz Kojima <kkojima@gcc.gnu.org> 8229 8230 * config/sh/sh.c (sh5_schedule_saves): Fix typo. 8231 82322004-10-18 Kelley Cook <kcook@gcc.gnu.org> 8233 8234 * configure.ac (powerpc-*-darwin*): Require assembler to support 8235 .machine directive. 8236 * configure: Regenerate. 8237 82382004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8239 8240 * reload1.c (ior_hard_reg_set): Remove. 8241 (finish_spills): Use IOR_HARD_REG_SET instead of 8242 ior_hard_reg_set. 8243 82442004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8245 8246 * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting 8247 the currently visited word to right. 8248 82492004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr> 8250 8251 PR middle-end/18045 8252 * expmed.c (expand_smod_pow2): Handle modes whose size 8253 is greater than that of HOST_WIDE_INT. 8254 82552004-10-18 Ziemowit Laski <zlaski@apple.com> 8256 8257 * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative. 8258 82592004-10-18 Eric Botcazou <ebotcazou@libertysurf.fr> 8260 Roger Sayle <roger@eyesopen.com> 8261 8262 PR middle-end/17813 8263 * dojump.c (discard_pending_stack_adjust): New function. 8264 (clear_pending_stack_adjust): Call it. 8265 * expr.h (discard_pending_stack_adjust): Declare it. 8266 * explow.c (emit_stack_save): Emit pending stack adjustments 8267 before saving the stack pointer. 8268 (emit_stack_restore): Discard pending stack adjustments before 8269 restoring the stack pointer. 8270 82712004-10-18 Richard Henderson <rth@redhat.com> 8272 8273 * c-common.c (handle_mode_attribute): Allow scalar->vector 8274 type changes yet. 8275 82762004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8277 8278 * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a 8279 value to expand_assignment. 8280 82812004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8282 8283 * tree-cfg.c (cleanup_tree_cfg): Don't iterate on 8284 thread_jumps. 8285 (thread_jumps): Iterate until no new forwarder block arises. 8286 82872004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8288 8289 * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable. 8290 (thread_jumps): Use forwardable as cache of 8291 tree_forwarder_block_p throughout the function. 8292 82932004-10-18 Andreas Krebbel <krebbel1@de.ibm.com> 8294 8295 * cfg.c (dump_flow_info): Remove redundant dump of reg life info. 8296 82972004-10-18 Andrew Pinski <pinskia@physics.uc.edu> 8298 8299 PR middle-end/15014 8300 PR middle-end/16973 8301 * tree-cfg.c (remove_bb): If we have a label expression in the 8302 basic block and the label we have taken the address, move the 8303 label expression to the basic block which is previous in the 8304 linked list. 8305 (tree_verify_flow_info): Fix printing out the label name of the 8306 problematic label expression. 8307 83082004-10-18 Pat Haugen <pthaugen@us.ibm.com> 8309 8310 PR rtl-optimization/18002 8311 * simplify-rtx.c (mode_signbit_p): Externalize function... 8312 * rtl.h (mode_signbit_p): ... to here. 8313 * combine.c (simplify_shift_const): Recognize PLUS signbit as 8314 canonical form of XOR signbit and move to outer op. 8315 83162004-10-18 Diego Novillo <dnovillo@redhat.com> 8317 8318 * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi. 8319 Update all callers. 8320 * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt. 8321 Don't call fold_stmt more than once, use bsi_replace. 8322 83232004-10-18 Diego Novillo <dnovillo@redhat.com> 8324 8325 PR tree-optimization/17656 8326 * tree-ssa.c (replace_immediate_uses): When replacing a 8327 constant, if the call to fold_stmt produced a different 8328 statement, get an appropriate statement pointer by scanning 8329 STMT's basic block. 8330 83312004-10-18 Richard Henderson <rth@redhat.com> 8332 8333 * pointer-set.c (hash1): Don't use libm functions in fallback case. 8334 83352004-10-18 H.J. Lu <hongjiu.lu@intel.com> 8336 8337 PR bootstrap/17684 8338 * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?. 8339 (stage1-start): Remove and copy libunwind.a and 8340 libunwind*$(SHLIB_EXT) instead of libunwind*. 8341 (stage2-start): Likewise. 8342 (stage3-start): Likewise. 8343 (stage4-start): Likewise. 8344 (stageprofile-start): Likewise. 8345 (stagefeedback-start): Likewise. 8346 8347 * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for 8348 the shared library to be created and don't remove the existing 8349 shared library. 8350 * config/arm/t-netbsd (SHLIB_LINK): Likewise. 8351 * config/i386/t-nwld (SHLIB_LINK): Likewise. 8352 * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. 8353 * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. 8354 * config/sh/t-linux (SHLIB_LINK): Likewise. 8355 * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. 8356 * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. 8357 * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. 8358 * config/t-slibgcc-sld (SHLIB_LINK): Likewise. 8359 8360 * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s" 8361 files. 8362 83632004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8364 8365 * basic-block.h (reg_set_iterator): New. 8366 (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style. 8367 (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise. 8368 (EXECUTE_IF_AND_IN_REG_SET): Likewise. 8369 * caller-save.c (save_call_clobbered_regs): Adjust to the new 8370 style. 8371 * cfgcleanup.c (thread_jump): Likewise. 8372 * cfgrtl.c (safe_insert_insn_on_edge): Likewise. 8373 * conflict.c (conflict_graph_compute): Likewise. 8374 * flow.c (verify_local_live_at_start, update_life_info, 8375 initialize_uninitialized_subregs, propagate_one_insn, 8376 init_propagate_block_info, free_propagate_block_info, 8377 propagate_block, dump_regset): Likewise. 8378 * global.c (global_conflicts): Likewise. 8379 * graph.c (start_bb): Likewise. 8380 * local-alloc.c (update_equiv_regs): Likewise. 8381 * loop.c (load_mems): Likewise. 8382 * reload1.c (compute_use_by_pseudos, order_regs_for_reload, 8383 find_reg, finish_spills): Likewise. 8384 * resource.c (mark_target_live_regs): Likewise. 8385 * sched-deps.c (sched_analyze_insn): Likewise. 8386 * sched-rgn.c (sched-rgn.c): Likewise. 8387 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. 8388 83892004-10-18 Jakub Jelinek <jakub@redhat.com> 8390 8391 * config/i386/i386.md (addqi_1_slp): Test for incdec_operand 8392 operand 1 instead of 2 8393 83942004-10-18 Kazu Hirata <kazu@cs.umass.edu> 8395 8396 * loop-unroll.c: Fix comment typos. 8397 83982004-10-18 Revital Eres <eres@il.ibm.com> 8399 8400 * Makefile.in (loop-unroll.o): Add VARRAY_H dependency. 8401 * loop-unroll.c: Include varray.h. 8402 (struct var_to_expand, struct opt_info): Rename split_ivs_info to 8403 opt_info and expand it to support variable expansion. 8404 (analyze_insns_in_loop): Rename analyze_ivs_to_split and 8405 expand it to support variable expansion. 8406 (pt_info_start_duplication): Rename si_info_start_duplication. 8407 (apply_opt_in_copies): Rename split_ivs_in_copies and add support 8408 to the variable expansion optimization. 8409 (free_opt_info): Rename free_si_info. 8410 (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p, 8411 expand_var_during_unrolling, insert_var_expansion_initialization, 8412 combine_var_copies_in_loop_exit, release_var_copies, 8413 get_expansion): New functions. 8414 (peel_loop_completely, unroll_loop_constant_iterations, 8415 unroll_loop_runtime_iterations, peel_loop_simple, 8416 unroll_loop_stupid): Change uses of struct si_info 8417 to struct opt_info 8418 and add uses of fvariable-expansion-in-unroller flag. 8419 * params.def: Add parameter to restrict the number of expansions. 8420 * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict 8421 the number of expansions. 8422 * common.opt: (fvariable-expansion-in-unroller): New flag. 8423 * doc/invoke.texi: (fvariable-expansion-in-unroller): Document. 8424 84252004-10-18 Danny Smith <dannysmith@users.sourceforge.net> 8426 8427 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define 8428 __GXX_MERGED_TYPEINFO_NAMES to 0. 8429 84302004-10-17 Hans-Peter Nilsson <hp@bitrange.com> 8431 8432 * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, 8433 handle barriers in a bb by checking that it points to a NULL bb. 8434 * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL. 8435 (emit_barrier_after, emit_barrier): Ditto. 8436 84372004-10-18 Joseph S. Myers <jsm@polyomino.org.uk> 8438 8439 * doc/extend.texi (Attribute Syntax): Clarify details of 8440 attributes on parameters. 8441 84422004-10-17 Zdenek Dvorak <dvorakz@suse.cz> 8443 8444 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of 8445 loop. 8446 84472004-10-17 Andrew Pinski <pinskia@physics.uc.edu> 8448 8449 Revert: 8450 2004-10-17 Andrew Pinski <pinskia@physics.uc.edu> 8451 8452 * c-typeck.c (default_function_array_conversion): Always create 8453 &a[0] for array types. 8454 (build_unary_op): Do not fold &a[x] into a + x. 8455 84562004-10-17 Andrew Pinski <pinskia@physics.uc.edu> 8457 8458 PR middle-end/17925 8459 * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic 8460 block if there is a goto with a locus. 8461 84622004-10-17 Kazu Hirata <kazu@cs.umass.edu> 8463 8464 * config/elfos.h, config/gofast.h, config/interix.h, 8465 config/netbsd.h, config/svr3.h, config/vxworks.h, 8466 config/alpha/alpha-modes.def, config/alpha/alpha-protos.h, 8467 config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md, 8468 config/alpha/netbsd.h, config/arm/arm-modes.def, 8469 config/arm/unknown-elf.h, config/c4x/c4x-modes.def, 8470 config/cris/aout.h, config/frv/frv-modes.def, 8471 config/i386/beos-elf.h, config/i386/gas.h, 8472 config/i386/i386-coff.h, config/i386/i386-modes.def, 8473 config/i386/linux.h, config/i386/linux64.h, 8474 config/i386/mingw32.h, config/i386/netbsd-elf.h, 8475 config/i386/netbsd64.h, config/i386/sco5.h, 8476 config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md, 8477 config/ia64/ia64-modes.def, config/ia64/itanium1.md, 8478 config/ia64/itanium2.md, config/m68k/m68k-modes.def, 8479 config/mips/mips-modes.def, config/mips/sdb.h, 8480 config/mips/vr.h, config/mips/vxworks.h, 8481 config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, 8482 config/pa/pa32-linux.h, config/rs6000/40x.md, 8483 config/rs6000/7450.md, config/rs6000/8540.md, 8484 config/rs6000/linuxspe.h, config/rs6000/power4.md, 8485 config/rs6000/rs6000-modes.def, config/rs6000/rtems.h, 8486 config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h, 8487 config/s390/s390-modes.def, config/sh/elf.h, 8488 config/sh/sh-modes.def, config/sh/sh64.h, 8489 config/sparc/ultra1_2.md, config/sparc/ultra3.md, 8490 config/stormy16/stormy16.md, config/v850/v850-protos.h, 8491 config/vax/vax.md: Update copyright. 8492 84932004-10-17 Kazu Hirata <kazu@cs.umass.edu> 8494 8495 * expr.c (expand_expr_real_1): Remove an obsolete comment. 8496 84972004-10-17 Andrew Pinski <pinskia@physics.uc.edu> 8498 8499 * c-typeck.c (default_function_array_conversion): Always create 8500 &a[0] for array types. 8501 (build_unary_op): Do not fold &a[x] into a + x. 8502 85032004-10-17 Jakub Jelinek <jakub@redhat.com> 8504 8505 * pointer-set.c (hash1): Use integer part of 2^64 / phi 8506 instead 2^32 / phi if long is 64-bit. 8507 85082004-10-17 Joseph S. Myers <jsm@polyomino.org.uk> 8509 8510 * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and 8511 RID_PTRVALUE. 8512 * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token 8513 declarations. 8514 (reswords): Remove __ptrbase, __ptrbase__, __ptrextent, 8515 __ptrextent__, __ptrvalue and __ptrvalue__. 8516 (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE 8517 entries. 8518 85192004-10-16 Dale Johannesen <dalej@apple.com> 8520 8521 * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table. 8522 85232004-10-16 Zdenek Dvorak <dvorakz@suse.cz> 8524 8525 PR tree-optimization/17766 8526 * basic-block.h (enum dom_state): DOM_CONS_OK removed. 8527 (dom_info_available_p): Declare. 8528 * cfghooks.c (split_block, make_forwarder_block): Use 8529 dom_info_available_p. 8530 * dominance.c (compute_dom_fast_query, calculate_dominance_info, 8531 free_dominance_info, verify_dominators): Ditto. 8532 (dom_info_available_p): New function. 8533 * tree-cfg.c (cleanup_control_expr_graph): Free dominance information. 8534 (thread_jumps): Use dom_info_available_p. 8535 * tree-complex.c (expand_complex_div_wide): Ditto. 8536 * tree-mudflap.c (mf_build_check_statement_for): Ditto. 8537 85382004-10-16 Zdenek Dvorak <dvorakz@suse.cz> 8539 8540 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates. 8541 (find_best_candidate): Take also important candidates into account. 8542 (find_optimal_iv_set): Initialize important_candidates bitmap. 8543 85442004-10-16 Zdenek Dvorak <dvorakz@suse.cz> 8545 8546 PR tree-optimization/17560 8547 * predict.c (tree_estimate_probability): Mark irreducible 8548 loops. 8549 85502004-10-16 Zdenek Dvorak <dvorakz@suse.cz> 8551 8552 PR rtl-optimization/17723 8553 * cfgcleanup.c (merge_memattrs): Handle case when 8554 MEM_SIZE == NULL_RTX. 8555 85562004-10-15 Andrew Pinski <pinskia@physics.uc.edu> 8557 8558 * toplev.c (dump_file_name): Change type to be const. 8559 85602004-10-15 Joseph S. Myers <jsm@polyomino.org.uk> 8561 8562 * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use 8563 non_lvalue to stop something being a null pointer constant. 8564 85652004-10-15 Aldy Hernandez <aldyh@redhat.com> 8566 8567 * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only 8568 available for TARGET_FPRS. 8569 (FUNCTION_VALUE_REGNO_P): Same. 8570 85712004-10-15 Geoffrey Keating <geoffk@apple.com> 8572 8573 * doc/invoke.texi (RS/6000 and PowerPC Options): Document 8574 -maltivec in same style as other ISA options. 8575 85762004-10-15 Jon Grimm <jgrimm2@us.ibm.com> 8577 8578 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__ 8579 definition. 8580 85812004-10-15 Kazu Hirata <kazu@cs.umass.edu> 8582 8583 * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h, 8584 collect2.h, conflict.c, coretypes.h, coverage.h, errors.h, 8585 gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c, 8586 genconstants.c, gengenrtl.c, genmodes.c, genpeep.c, 8587 gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c, 8588 gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c, 8589 lists.c, machmode.def, mips-tdump.c, opts.h, params.c, 8590 predict.def, predict.h, protoize.c, reload.h, resource.h, 8591 rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c, 8592 tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c, 8593 unwind-sjlj.c, value-prof.h: Update copyright. 8594 85952004-10-15 Kazu Hirata <kazu@cs.umass.edu> 8596 8597 * pointer-set.c, tree-vectorizer.c: Fix comment typos. 8598 85992004-10-15 Diego Novillo <dnovillo@redhat.com> 8600 8601 * tree-optimize.c (execute_one_pass): Stop timer right after 8602 executing the pass. 8603 86042004-10-14 Andrew Pinski <pinskia@physics.uc.edu> 8605 8606 Revert: 8607 2004-10-14 Andrew Pinski <pinskia@physics.uc.edu> 8608 PR middle-end/17967 8609 Revert: 8610 * tree-cfg.c (remove_usless_stmts_cond): Fold statement. 8611 (remove_useless_stmts_1): Fold trees we know how to fold. 8612 86132004-10-14 David Edelsohn <edelsohn@gnu.org> 8614 8615 * configure.ac: Add .machine power4 directive when testing for 8616 mfcr field. 8617 * configure: Regenerate. 8618 86192004-10-14 Geoffrey Keating <geoffk@apple.com> 8620 8621 * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define. 8622 86232004-10-14 Andrew Pinski <pinskia@physics.uc.edu> 8624 8625 * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor 8626 always. 8627 86282004-10-14 Daniel Jacobowitz <dan@codesourcery.com> 8629 8630 * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS 8631 for 'f' if !TARGET_FPRS. 8632 86332004-10-14 Richard Henderson <rth@redhat.com> 8634 8635 PR debug/14492 8636 * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR. 8637 86382004-10-14 Richard Henderson <rth@redhat.com> 8639 8640 PR c/17023 8641 * c-decl.c (store_parm_decls_oldstyle): Care for parameter type 8642 as error_mark_node. 8643 * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null 8644 instaed of current_function_decl non-null. 8645 86462004-10-14 Matt Austern <austern@apple.com> 8647 8648 * pointer-set.c: New file, special-purpose hash table. 8649 * pointer-set.h: New file. 8650 * tree.h (struct pointer_set_t): Declare as opaque type. 8651 (tree_walk): Last argument is pointer_set_t* now. 8652 * tree-inline.c (WALK_SUBTREE): Convert from htab to pset. 8653 (walk_type_fields): 8654 (walk_tree): Convert from htab_t to pointer_set_t for keeping 8655 track of which nodes have already been visited. 8656 (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t. 8657 * cgraphunit.c (cgraph_create_edges): Likewise. 8658 (cgraph_characterize_statics_local): Likewise. 8659 * tree-dfa.c (collect_dfa_stats): Likewise. 8660 * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is 8661 pointer_set_t* now. 8662 * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise. 8663 * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type 8664 of walk_subtrees is pointer_set_t* now. 8665 * Makefile.in (OBJS-common): add pointer-set.o 8666 (tree-inline.o): Depends on pointer-set.h 8667 (tree-dfa.o): Likewise 8668 (cgraphunit.o): Likewise 8669 86702004-10-14 Geoffrey Keating <geoffk@apple.com> 8671 8672 * config/rs6000/darwin.h (ASM_SPEC): Delete. 8673 (TARGET_ASM_FILE_START): Define. 8674 * config/darwin.h (ASM_SPEC): Define. 8675 * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply 8676 -mlong-double-128, it's the default. Update comment about reason 8677 for force_cpusubtype_ALL. 8678 * config/rs6000/darwin-vecsave.asm: Supply .machine. 8679 * config/rs6000/darwin-world.asm: Likewise. 8680 * config/rs6000/rs6000.c (rs6000_darwin_file_start): New. 8681 (symbolic_operand): Delete #if 0ed code. 8682 86832004-10-14 Andrew Pinski <pinskia@physics.uc.edu> 8684 8685 * stmt.c (add_case_node): Make sure that we have integer 8686 constant before calling tree_int_cst_compare. 8687 86882004-10-14 Andrew Pinski <pinskia@physics.uc.edu> 8689 8690 PR middle-end/17967 8691 Revert: 8692 * tree-cfg.c (remove_usless_stmts_cond): Fold statement. 8693 (remove_useless_stmts_1): Fold trees we know how to fold. 8694 86952004-10-14 Joseph S. Myers <joseph@codesourcery.com> 8696 8697 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS), 8698 config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 8699 -m64. 8700 87012004-10-14 Ulrich Weigand <uweigand@de.ibm.com> 8702 8703 * reload.c (find_reloads): When reloading a PLUS with constant 8704 operand, make sure the constant is pushed to the constant pool 8705 if required. 8706 * config/s390/s390.c (s390_secondary_input_reload_class): Remove 8707 reload bug workaround. 8708 (s390_expand_plus_operand): Likewise. 8709 87102004-10-14 David Edelsohn <edelsohn@gnu.org> 8711 8712 * opts.c (common_handle_option): Do not enable 8713 flag_speculative_prefetching for -fprofile-generate/use. 8714 87152004-10-14 Devang Patel <dpatel@apple.com> 8716 8717 PR 17635 8718 * tree-if-conv.c (process_phi_nodes): Process latch block. 8719 (combine_blocks): Process latch block and update loop structure. 8720 87212004-10-14 Olga Golovanevsky <olga@il.ibm.com> 8722 8723 * tree-vectorizer.c (vect_generate_tmps_on_preheader): 8724 (vect_update_ivs_after_vectorizer): 8725 (vect_transform_for_unknown_loop_bound): 8726 (tree_duplicate_loop_to_edge): 8727 (allocate_new_names): 8728 (rename_use_op): 8729 (rename_def_op): 8730 (rename_variables_in_bb): 8731 (free_new_names): 8732 (rename_variables_in_loop): 8733 (copy_phi_nodes): 8734 (update_phis_for_duplicate_loop): 8735 (update_phi_nodes_for_guard): 8736 (make_loop_iterate_ntimes): 8737 (tree_duplicate_loop_to_edge_cfg): 8738 (add_loop_guard): 8739 (vect_analyze_loop_with_symbolic_num_of_iters): 8740 (verify_loop_for_duplication): 8741 (vect_gen_niters_for_prolog_loop): 8742 (vect_update_niters_after_peeling): 8743 (vect_update_inits_of_dr): 8744 (vect_update_inits_of_drs): 8745 (vect_build_loop_niters): 8746 (vect_do_peeling_for_alignment): New functions. 8747 (vect_transform_loop): Add unknown and known but indivisible loop 8748 bound support; add peeling for unalignment support. 8749 (vect_analyze_loop_form): Support symbolic number of iterations. 8750 (vect_transform_loop_bound): New input parameter. 8751 (vect_get_loop_niters): Change input parameter type. 8752 (new_loop_vec_info): LOOP_VINFO_NITERS is tree now. 8753 (vectorizable_store): Allow unaligned access. 8754 (vectorize_loops): Add rewrite_into_loop_closed_ssa. 8755 (vect_analyze_data_refs_alignment): Allowed one unaligned 8756 store. 8757 * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined 8758 to use tree. 8759 (LOOP_VINFO_INT_NITERS): New macro. 8760 (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define. 8761 (do_peeling_for_alignment): 8762 (unaligned_drs): New members of _loop_vec_info. 8763 (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro. 8764 87652004-10-14 Ranjit Mathew <rmathew@hotmail.com> 8766 8767 * tree.h (TREE_STRING_POINTER): Wrap in "const char *". 8768 (struct tree_string): Remove "const" qualifier for "str". 8769 87702004-10-14 Ira Rosen <irar@il.ibm.com> 8771 8772 * tree-vectorizer.c (vect_analyze_data_refs): Call 8773 vect_get_base_and_bit_offset to get memory tag for array ref. 8774 (vect_create_addr_base_for_vector_ref): Remove redundant checks. 8775 87762004-10-14 Richard Earnshaw <rearnsha@arm.com> 8777 8778 * configure.ac: Use $LN_S for creating symlinks (not $LN). 8779 * configure: Regenerate. 8780 87812004-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 8782 8783 * doc/install.texi (*-*-solaris2*): Update with info about kernel 8784 patches to solve spurious testsuite failures. 8785 87862004-10-14 Dorit Naishlos <dorit@il.bim.com> 8787 8788 * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts. 8789 Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode. 8790 (vect_analyze_operations): Make sure the vectorization factor > 1. Add 8791 gcc_assert under ENABLE_CHECKING. 8792 (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to 8793 get_vectype_for_scalar_type). 8794 8795 (vect_get_vec_def_for_operand): Remove redundant variables. 8796 (vect_transform_loop): Likewise. 8797 87982004-10-14 Richard Sandiford <rsandifo@redhat.com> 8799 8800 * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and 8801 global for -mcaller-super-interworking. 8802 (CALLER_INTERWORKING_SLOT_SIZE): New macro. 8803 * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if 8804 CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does 8805 not need a frame pointer. 8806 (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to 8807 the soft frame pointer offset. 8808 (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking. 8809 * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use 8810 _interwork_{r7,r11}_call_via_rN if some arguments are passed on 8811 the stack. Use frame_pointer_needed to choose between them. 8812 * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions. 8813 (interwork_with_frame): New macro. 8814 (interwork): Add _interwork_{r7,r11}_call_via_rN(). 8815 88162004-10-14 Ben Elliston <bje@au.ibm.com> 8817 8818 PR other/17900 8819 * diagnostic.c (trim_filename): Fix logic bug in walking backwards 8820 up the filename looking for a previous directory separator. 8821 88222004-10-14 Joseph S. Myers <jsm@polyomino.org.uk> 8823 8824 * c-tree.h (enum c_typespec_kind, struct c_typespec, 8825 parser_xref_tag): New. 8826 (struct c_declspecs): Add tag_defined_p. Adjust definition of 8827 typedef_p. 8828 (declspecs_add_type): Adjust prototypes. 8829 * c-parse.in (%union): Add tstype. 8830 (typespec_nonattr, typespec_attr, typespec_reserved_nonattr, 8831 typespec_reserved_attr, typespec_nonreserved_nonattr, 8832 structsp_attr, structsp_nonattr): Change to tstype. Update 8833 actions. 8834 * c-decl.c (build_null_declspecs): Initialize tag_defined_p. 8835 (declspecs_add_type): Update to take struct c_typespec argument. 8836 Set tag_defined_p and typedef_p as appropriate. 8837 (xref_tag): Rename to parser_xref_tag and replace by wrapper. 8838 Update to return struct c_typespec. 8839 (shadow_tag_warned): Don't let empty declarations with qualifiers 8840 or storage class specifiers redeclare a tag if a previous 8841 declaration is visible. 8842 88432004-10-13 Richard Henderson <rth@redhat.com> 8844 8845 PR debug/15860 8846 * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction 8847 for DECL_INCOMING_RTL. 8848 88492004-10-14 Hans-Peter Nilsson <hp@axis.com> 8850 8851 PR target/17984 8852 * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply 8853 trunc_int_for_mode for constants used in shortened mode. 8854 88552004-10-13 Richard Henderson <rth@redhat.com> 8856 8857 PR c/17384 8858 * c-common.c (handle_mode_attribute): Disallow mode changes that 8859 alter the CODE of the top-level type. 8860 8861 * crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit 8862 integer from internal limits macros. 8863 * config/i386/mm3dnow.h (__v2sf): Fix base type. 8864 88652004-10-13 Richard Henderson <rth@redhat.com> 8866 8867 PR debug/13841 8868 * function.c (instantiate_decl): Recurse for CONCAT. 8869 88702004-10-13 David Edelsohn <edelsohn@gnu.org> 8871 8872 * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for 8873 andi./andis. 8874 (anddi3): Same. 8875 (extzvdi_internal1): Add attribute "compare". 8876 (extzvdi_internal2): Same. 8877 88782004-10-12 Tom Tromey <tromey@redhat.com> 8879 8880 * doc/md.texi (Insn Canonicalizations): Removed extraneous quote. 8881 88822004-10-13 Dale Johannesen <dalej@apple.com> 8883 8884 * doc/extend.texi (Extended Asm): Rewrite asm volatile description. 8885 88862004-10-13 Frank Ch. Eigler <fche@redhat.com> 8887 8888 * toplev.c (compile_file): Call mudflap_finish_file from here ... 8889 * c-decl.c (c_write_global_declarations): ... instead of here ... 8890 * cp/decl.c (cp_finish_file): ... and here. 8891 * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message. 8892 88932004-10-13 Andrew Pinski <pinskia@physics.uc.edu> 8894 8895 * tree-ssa-dom.c (record_range): Free the element if we are not 8896 going to use it. 8897 88982004-10-13 Tom Tromey <tromey@redhat.com> 8899 8900 PR java/15578: 8901 * gcc.c (option_map): Added --extdirs and --encoding. 8902 89032004-10-13 Eric Botcazou <ebotcazou@libertysurf.fr> 8904 8905 PR target/14454 8906 * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to 8907 sparc_can_output_mi_thunk. 8908 (sparc_output_mi_thunk): Simplify handling of delta offset. Add 8909 handling of vcall offset. 8910 (sparc_can_output_mi_thunk): New predicate. 8911 * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET. 8912 (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete. 8913 (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook. 8914 8915 * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment. 8916 8917 * config/sparc/sparc.md (movdi): Remove redundant test. 8918 89192004-10-13 Paolo Bonzini <bonzini@gnu.org> 8920 8921 * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL, 8922 TDF_IPA from -fdump-tree-*-all. 8923 89242004-10-13 Paul Brook <paul@codesourcery.com> 8925 8926 * config/arm/arm-protos.h (arm_load_pic_register): Update prototype. 8927 * config/arm/arm.c (thumb_find_work_register): Update comments. 8928 (arm_load_pic_register): Add argument for scratch register. 8929 (arm_expand_prologue, thumb_expand_prologue): Pass extra argument. 8930 * config/arm/arm.md (builtin_setjmp_receiver): Ditto. 8931 89322004-10-13 Kazu Hirata <kazu@cs.umass.edu> 8933 8934 * tree-data-ref.c: Fix comment typos. 8935 89362004-10-13 Jakub Jelinek <jakub@redhat.com> 8937 Zdenek Dvorak <dvorakz@suse.cz> 8938 8939 PR tree-optimization/17724 8940 * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info. 8941 89422004-10-13 Dorit Naishlos <dorit@il.ibm.com> 8943 8944 * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()). 8945 (altivec_builtin_mask_for_store): Likewise. 8946 (altivec_init_builtins): Use lang_hooks.builtin_function to 8947 create the decls for builtin_altivec_mask_for_load/store. 8948 89492004-10-13 Nick Clifton <nickc@redhat.com> 8950 8951 * config/c4x/c4x.c: Remove inclusion of loop.h. 8952 89532004-10-12 Ben Elliston <bje@au.ibm.com> 8954 8955 * basic-block.h (edge_iterator): Keep the address of VEC(edge) *. 8956 (ei_container): New; renamed. 8957 (ei_start, ei_last): New macros. 8958 (ei_start_1, ei_last_1): Renamed from ei_start. 8959 (ei_last_1, ei_end_p): Use ei_container() where applicable. 8960 (ei_one_before_end_p, ei_next, ei_edge): Likewise. 8961 * gcse.c (remove_reachable_equiv_notes): Use ei_container(). 8962 89632004-10-11 Sebastian Pop <pop@cri.ensmp.fr> 8964 8965 * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h. 8966 * cfgloop.c (initialize_loops_parallel_p): New. 8967 (flow_loops_find): Initialize the parallel_p field to true for all 8968 the loops. 8969 * tree-ssa-loop-niter.c: Include "tree-data-ref.h". 8970 (estimate_numbers_of_iterations_loop): Infers the loop bounds from 8971 the size of the data accessed in the loop. 8972 (struct nb_iter_bound): Moved... 8973 * cfgloop.h (struct nb_iter_bound): ... here. 8974 (estimated_nb_iterations, parallel_p): New fields in struct loop. 8975 (record_estimate): Declare extern here. 8976 * tree-chrec.c: Fix comments. 8977 (nb_vars_in_chrec): New function. 8978 * tree-chrec.h (nb_vars_in_chrec): Declared here. 8979 * tree-data-ref.c: Don't include lambda.h, that is already included 8980 in tree-data-ref.h. 8981 (tree_fold_divides_p): Don't check for integer_onep. 8982 (tree_fold_bezout): Removed. 8983 (gcd): New static duplicated function. 8984 (int_divides_p, dump_subscript): New. 8985 (dump_data_dependence_relation): Use dump_subscript. 8986 (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations, 8987 estimate_niter_from_size_of_data): New. 8988 (analyze_array_indexes, analyze_array): Call 8989 estimate_niter_from_size_of_data during the detection of array 8990 references. Pass in a pointer to the statement that contains the 8991 array reference. 8992 (all_chrecs_equal_p): New. 8993 (compute_distance_vector): Renamed compute_subscript_distance. 8994 Deal with multivariate conflict functions. 8995 (initialize_data_dependence_relation): Initialize DDR_AFFINE_P, 8996 DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT. 8997 (non_affine_dependence_relation): New. 8998 (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, 8999 analyze_siv_subscript, analyze_miv_subscript, 9000 analyze_overlapping_iterations, subscript_dependence_tester): 9001 Initialize and return last_conflicts function. 9002 (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar, 9003 compute_overlap_steps_for_affine_1_2): New. 9004 (analyze_siv_subscript_affine_cst): Removed. 9005 (analyze_subscript_affine_affine): Disprove dependences based on the 9006 iteration domains. Solve the univariate dependence case as before, 9007 but use lambda_matrix_right_hermite instead of tree_fold_bezout. 9008 Implement the multivariate case of 2 versus 1 variables. 9009 (build_classic_dist_vector, build_classic_dir_vector): Implement some 9010 unhandled cases. 9011 (find_data_references_in_loop): Compute and initialize 9012 loop->estimated_nb_iterations and loop->parallel_p. 9013 (analyze_all_data_dependences): Modify the debug dump order. 9014 * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B, 9015 subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed. 9016 (SUB_LAST_CONFLICT, subscript->last_conflict, 9017 data_dependence_relation->affine_p, data_dependence_relation->size_vect, 9018 DDR_AFFINE_P, DDR_SIZE_VECT): New. 9019 (find_data_references_in_loop, initialize_data_dependence_relation, 9020 dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here. 9021 90222004-10-12 Kelley Cook <kcook@gcc.gnu.org> 9023 9024 * configure: Regenerate. 9025 90262004-10-12 Fariborz Jahanian <fjahanian@apple.com> 9027 9028 PR 17892 9029 * tree-ssa-dom.c (unsafe_associative_fp_binop): New function. 9030 (simplify_rhs_and_lookup_avail_expr): Disallow associativity 9031 and constant folding of floating point MULT_EXPR/PLUS_EXPR 9032 expressions. 9033 90342004-10-12 Ulrich Weigand <uweigand@de.ibm.com> 9035 9036 * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref. 9037 (s390_gimplify_va_arg): Likewise. 9038 90392004-10-12 Daniel Jacobowitz <dan@debian.org> 9040 9041 * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P) 9042 (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P) 9043 (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions. 9044 * regclass.c (record_address_regs): Remove ifdef. Use 9045 REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS. 9046 * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary 9047 definition. 9048 (scan_rtx_address, replace_oldest_value_addr): Use 9049 REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS. 9050 * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove 9051 unnecessary definitions. 9052 (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P 9053 and MODE_BASE_REG_REG_CLASS. 9054 * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed. 9055 (MODE_BASE_REG_REG_CLASS): Define. 9056 (REGNO_MODE_OK_FOR_REG_BASE_P): Define. 9057 (REG_MODE_OK_FOR_REG_BASE_P): Define. 9058 * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS, 9059 REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P. 9060 90612004-10-12 Daniel Berlin <dberlin@dberlin.org> 9062 9063 * tree-ssa-alias.c (verify_name_tags): New function. 9064 (verify_flow_sensitive_alias_info): Remove code that used to check name tags. 9065 (verify_alias_info): Call verify_name_tags. 9066 90672004-10-12 Kazu Hirata <kazu@cs.umass.edu> 9068 9069 PR rtl-optimization/17931 9070 * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with 9071 ZERO_EXTRACT in it. 9072 90732004-10-12 Richard Earnshaw <rearnsha@arm.com> 9074 9075 * arm.c (arm_print_operand): Use output_operand_lossage where possible 9076 rather than aborting. 9077 90782004-10-12 Paul Brook <paul@coudesourcery.com> 9079 9080 * config.gcc: Add armv6{k,z,zk} 9081 * config/arm/arm-cores.def: Add arm1176 and mpcore. 9082 * config/arm/tune.md: Regenerate. 9083 * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK): 9084 Define. 9085 (all_architectures): Add armv6k, armv6z, armv6zk. 9086 * config/arm/lib1funcs.asm: Recognise new arm arcitectures. 9087 * doc/invoke.texi: Document new arch and cpu values. 9088 90892004-10-12 Paul Brook <paul@coodesourcery.com> 9090 9091 * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to 9092 meabi=4. 9093 90942004-10-12 Paul Brook <paul@codesourcery.com> 9095 9096 * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints. 9097 Handle negative constants. 9098 90992004-10-12 Joseph S. Myers <jsm@polyomino.org.uk> 9100 9101 PR c/17301 9102 * c-typeck.c (convert_arguments): Return error_mark_node if there 9103 are too few arguments. 9104 (build_function_call): Handle error_mark_node return from 9105 convert_arguments. 9106 91072004-10-06 Paolo Bonzini <bonzini@gnu.org> 9108 9109 * configure.ac (symbolic_link): Replace with $LN_S. 9110 (Assembler/Linker): Hard link from gas and binutils trees. 9111 * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp. 9112 * configure: Regenerate. 9113 91142004-10-12 Paul Brook <paul@codesourcery.com> 9115 9116 * configure.ac: Don't look for host assembler when building a canadian 9117 cross. 9118 * configure: Regenerate. 9119 91202004-10-11 Roger Sayle <roger@eyesopen.com> 9121 9122 PR other/17361 9123 * c-opts.c (permit_fortran_options): Delete/obsolete global variable. 9124 (c_common_init_options): Remove #ifdef CL_F77 code. Scan command 9125 line options for "-lang-asm" and if found allow any of the C-family 9126 front-end options. 9127 (c_common_handle_option): Remove last use of permit_fortran_options. 9128 91292004-10-11 Ulrich Weigand <uweigand@de.ibm.com> 9130 9131 * config/s390/s390.c (print_operand): Support 'S' format flag. 9132 * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag. 9133 ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise. 9134 ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise. 9135 ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise. 9136 ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise 9137 ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise. 9138 ("*movstricthi"): Likewise. 9139 ("*load_multiple_di", "*load_multiple_si"): Likewise. 9140 ("*store_multiple_di", "*store_multiple_si"): Likewise. 9141 ("*sethiqisi", "*sethihisi"): Likewise. 9142 ("*sethiqidi_64", "*sethiqidi_31"): Likewise. 9143 ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise. 9144 ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise. 9145 ("*xorqi3", "*xc", "*xc_zero"): Likewise. 9146 ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise. 9147 9148 ("*tmhi_full"): Fix incorrect op_type attribute. 9149 9150 ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash. 9151 ("*subdi3_slb_cc", "*subdi3_slb"): Likewise. 9152 ("*addsi3_alc_cc", "*addsi3_alc"): Likewise. 9153 ("*subsi3_slb_cc", "*subsi3_slb"): Likewise. 9154 91552004-10-11 Andrew Pinski <pinskia@physics.uc.edu 9156 9157 PR middle-end/16266 9158 * function.c (temp_slots_at_level): Fix typo which creates too 9159 many temp stack slots levels. 9160 91612004-10-11 Ulrich Weigand <uweigand@de.ibm.com> 9162 9163 * config/s390/s390.c (s390_trampoline_template): Generate shorter 9164 trampoline code. 9165 (s390_trampoline_instantiate): Adapt. 9166 * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code. 9167 91682004-10-11 Roger Sayle <roger@eyesopen.com> 9169 9170 PR middle-end/17657 9171 * stmt.c (add_case_node): Add additional type argument. Declare 9172 as static to match prototype. Convert the upper and lower bounds 9173 to the specified index type. Optimize away case ranges/values 9174 that are outside the index type's bounds. Truncate case ranges 9175 that span the index type's bounds. 9176 (expand_case): Avoid unnessary computation and memory allocation 9177 when index type is error_mark_node. Pass index_type as required 9178 by change to add_case_node API. No need to convert case range 9179 bounds to index_type, this is now done by add_case_node. 9180 91812004-10-11 Ulrich Weigand <uweigand@de.ibm.com> 9182 9183 * config/s390/s390-protos.h (s390_offset_p): Add prototype. 9184 * config/s390/s390.c (s390_offset_p): New function. 9185 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu", 9186 "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to 9187 transform Q->Q alternatives to *clc pattern. 9188 ("*clc"): Move. 9189 ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa", 9190 "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter 9191 to transform Q->Q alternatives to *mvc pattern. 9192 ("*mvc"): Move. Add peephole to merge adjacent MVCs. 9193 ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch", 9194 "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to 9195 transform Q->Q alternatives to *nc pattern. 9196 ("*nc"): New insn. New peephole to merge adjacent NCs. 9197 ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch", 9198 "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to 9199 transform Q->Q alternatives to *oc pattern. 9200 ("*oc"): New insn. New peephole to merge adjacent OCs. 9201 ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to 9202 transform Q->Q alternatives to *xc pattern. 9203 ("*xc"): New insn. New peephole to merge adjacent XCs. 9204 ("*xc_zero"): Move. Add peephole to merge adjacent XCs. 9205 92062004-10-11 Andrew Pinski <pinskia@physics.uc.edu> 9207 9208 * gimplify.c (gimple_push_condition): Make sure that we don't 9209 have any saved condition cleanup if we were at the top level. 9210 92112004-10-11 Richard Sandiford <rsandifo@redhat.com> 9212 9213 * config/frv/frv.md (*adddi3_internal): Change name to... 9214 (adddi3): ...replacing the exisiting define_expand. Combine 9215 alternatives. Fix the range of the constant constraints ('J' instead 9216 of 'NOP'). Remove bogus operands[2] check. Use simplify_gen_subreg 9217 to extract the lower and upper halves of the DImode operands. 9218 Always use addi3_lower and adddi3_upper, not the subdi3 forms. 9219 (adddi3_lower): Fix the range of the constant constraints and 9220 remove the bogus operands[2] check. 9221 (adddi3_upper): Use gpr_or_int10_operand as the predicate for 9222 operand 2. Use addxi to handle constant operands. 9223 (subdi3_lower, subdi3_upper): Don't handle constant operands. 9224 92252004-10-11 Nathan Sidwell <nathan@codesourcery.com> 9226 9227 * gengtype-lex.l: Add commented } & ) characters to unconfuse 9228 editor's paren matching. Allow #define inside a struct. 9229 92302004-10-10 Andrew Pinski <pinskia@physics.uc.edu> 9231 9232 PR middle-end/17703 9233 part of PR c++/17657 9234 * fold-const.c (fold_build_cleanup_point_expr): New function. 9235 * tree.h (fold_build_cleanup_point_expr): Prototype. 9236 92372004-10-10 Eric Christopher <echristo@redhat.com> 9238 9239 * dwarf2out.c: Move attribute to subprogram declaration 9240 instead of subroutine type. 9241 92422004-10-10 Kazu Hirata <kazu@cs.umass.edu> 9243 9244 * basic-block.h: Remove the prototypes for can_hoist_insn_p, 9245 hoist_insn_after, and hoist_insn_to_edge. 9246 * rtl.h: Remove the prototypes for reg_referenced_between_p, 9247 no_jumps_between_p, and insn_dependent_p. 9248 * rtlanal.c (no_jumps_between_p, reg_referenced_between_p, 9249 insn_dependent_p, insn_dependent_p_1, hoist_test_store, 9250 can_hoist_insn_p, hoist_update_store, hoist_insn_after, 9251 hoist_insn_to_edge): Remove. 9252 92532004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> 9254 9255 PR c/17881 9256 * c-decl.c (grokparms): Don't warn for parameters of incomplete 9257 type in declarations that are not definitions except for the case 9258 of parameters of void type. 9259 92602004-10-10 Kazu Hirata <kazu@cs.umass.edu> 9261 9262 * tree-cfg.c: Fix comment typos. 9263 92642004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> 9265 9266 PR c/17301 9267 * builtins.c (expand_builtin_va_start): Check for too few 9268 arguments to va_start. 9269 92702004-10-10 Joseph S. Myers <jsm@polyomino.org.uk> 9271 9272 PR c/17189 9273 * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed 9274 fields a pedwarn. Pedwarn here for unnamed structs/unions if 9275 pedantic. 9276 * c-parse.in (component_decl): Don't pedwarn here for unnamed 9277 fields. 9278 92792004-10-09 Zdenek Dvorak <dvorakz@suse.cz> 9280 9281 PR tree-optimization/17906 9282 * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to 9283 copy non-gimple reg arguments. 9284 92852004-10-09 Roger Sayle <roger@eyesopen.com> 9286 9287 PR rtl-optimization/17853 9288 * simplify-rtx.c (simplify_relational_operation): Correct comment. 9289 Reorganize handling of comparison operations with floating point 9290 results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE). 9291 Likewise, introduce support for comparison operations with vector 9292 result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro. 9293 9294 * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro. 9295 * doc/tm.texi: Likewise. 9296 92972004-10-09 Steven Bosscher <stevenb@suse.de> 9298 9299 * regs.h (struct reg_info_def): Remove the last_node_uid and 9300 changes_mode fields. 9301 (REGNO_LAST_NOTE_UID): Don't define. 9302 * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID. 9303 * regmove.c (copy_src_to_dest): Likewise. 9304 93052004-10-09 Roger Sayle <roger@eyesopen.com> 9306 9307 PR middle-end/17894 9308 * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the 9309 relational comparison operator op needs to be swapped/reversed when 9310 C1 is negative. i.e. X/-10 < 1 becomes X >= -9, not X < -9. 9311 93122004-10-08 Andrew Pinski <pinskia@physics.uc.edu> 9313 9314 PR tree-opt/17902 9315 * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels 9316 instead of bsi_start. 9317 (value_replacement): Likewise. 9318 (abs_replacement): Likewise 9319 93202004-10-09 Steven Bosscher <stevenb@suse.de> 9321 9322 * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function. 9323 (expand_gimple_cond_expr, expand_gimple_tailcall, 9324 expand_gimple_basic_block): Use it to dump RTL for each stmt. 9325 (tree_expand_cfg): Announce full RTL function dump. 9326 * tree-optimize.c (execute_one_pass): Use normal RTL printing, 9327 not the graph version. 9328 * tree-pretty-print.c (dump_generic_node): Allow empty statements 9329 in the arms of a COND_EXPR for lowered nodes. 9330 93312004-10-08 Joseph S. Myers <joseph@codesourcery.com> 9332 9333 * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16, 9334 atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64, 9335 strtoufix16, strtoufix32, strtoufix64): Declare. 9336 93372004-10-08 Joseph S. Myers <jsm@polyomino.org.uk> 9338 9339 * c-lex.c (interpret_float): Give a pedwarn rather than a warning 9340 for an out-of-range floating point constant. 9341 * builtins.c (fold_builtin_inf): Give a pedwarn rather than a 9342 warning if the target format does not support infinities. 9343 93442004-10-08 Kazu Hirata <kazu@cs.umass.edu> 9345 9346 * emit-rtl.c (last_label_num, base_label_num): Remove. 9347 (max_label_num): Always return label_num. 9348 (set_new_last_label_num, restore_emit_status): Remove. 9349 (init_emit): Don't initialize last_label_num. 9350 * function.c (pop_function_context_from): Don't call 9351 restore_emit_status. 9352 * function.h: Remove the prototype for restore_emit_status. 9353 * rtl.h: Remove the prototype for set_new_last_label_num. 9354 93552004-10-08 Kazu Hirata <kazu@cs.umass.edu> 9356 9357 * stmt.c (expand_decl_init): Remove. 9358 * tree.h: Remove the corresponding prototype. 9359 93602004-10-08 Kazu Hirata <kazu@cs.umass.edu> 9361 9362 * integrate.c (try_constants, subst_constants, mark_stores): 9363 Remove. 9364 * integrate.h: Remove the prototype for try_constants. 9365 93662004-10-08 Joseph S. Myers <jsm@polyomino.org.uk> 9367 9368 * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto. 9369 (convert_for_assignment): Handle ic_argpass_nonproto. Add 9370 comments about its relevance to errors. 9371 (c_convert_parm_for_inlining): Use ic_argpass_nonproto. 9372 93732004-10-08 Andrew Pinski <pinskia@physics.uc.edu> 9374 9375 PR c/16999 9376 * c-ppoutput.c (cb_ident): Don't quote string as it is already 9377 quoted. 9378 93792004-10-08 Diego Novillo <dnovillo@redhat.com> 9380 9381 * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate 9382 reference_node_pool. 9383 93842004-10-08 Kazu Hirata <kazu@cs.umass.edu> 9385 9386 * tree-cfg.c: Fix a comment typo. 9387 93882004-10-08 Andreas Krebbel <krebbel1@de.ibm.com> 9389 9390 * config/s390/s390.c (s390_register_info): Don't save fprs for 9391 -msoft-float. 9392 (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float. 9393 93942004-10-08 Ulrich Weigand <uweigand@de.ibm.com> 9395 9396 * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define. 9397 (TARGET_DEFAULT): Use symbolic values. 9398 * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine. 9399 (TARGET_DEFAULT): Use symbolic values. 9400 * config/s390/s390.c (s390_backchain_string): Initialize to 9401 TARGET_DEFAULT_BACKCHAIN. 9402 94032004-10-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9404 9405 * builtins.c (expand_builtin_mempcpy): Move tree handling code to 9406 fold_builtin_mempcpy. Accept a type parameter. Delete duplicate 9407 code. 9408 (expand_builtin_strcat): Accept a type parameter. 9409 (fold_builtin_mempcpy): Accept a type and endp parameter. 9410 9411 * builtins.c (expand_builtin_strncpy): Delete duplicate code. 9412 Accept an `exp' instead of an `arglist'. 9413 94142004-10-08 Nathan Sidwell <nathan@codesourcery.com> 9415 9416 * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert, 9417 reverting my 2004-09-07 patch to use build_int_cst. 9418 94192004-10-08 Eric Botcazou <ebotcazou@libertysurf.fr> 9420 9421 PR target/17245 9422 * config/sparc/sparc.c (input_operand): Remove redundant code 9423 for handling LO_SUM. 9424 (legitimate_address_p) <REG+REG>: Do not recheck TARGET_V9. 9425 <LO_SUM>: If LO_SUM is offsettable, accept it for TFmode on V9. 9426 Otherwise only accept it for TFmode if quad move insns are available. 9427 94282004-10-08 Kazu Hirata <kazu@cs.umass.edu> 9429 9430 * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that 9431 common cases will be caught earlier than others. 9432 94332004-10-08 Michael Matz <matz@suse.de> 9434 9435 * loop-doloop.c (doloop_optimize): Extend count. 9436 94372004-10-08 Kaz Kojima <kkojima@gcc.gnu.org> 9438 9439 * config/sh/sh.md (prefetch_media, prefetch_i4): New insns. 9440 (prefetch): Convert to expander. 9441 94422004-10-08 Kaz Kojima <kkojima@gcc.gnu.org> 9443 9444 * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the 9445 first argument of CALL. 9446 (tls_local_dynamic): Likewise. 9447 94482004-10-08 Joseph S. Myers <jsm@polyomino.org.uk> 9449 9450 * c-typeck.c (enum impl_conv): New. 9451 (convert_for_assignment): Use it. Take tree for function called 9452 instead of its name. Handle ObjC selectors for diagnostics at 9453 start of function. Select diagnostic text within the function 9454 using full sentences for diagnsotics. Use %qE to name functions 9455 in diagnostics. 9456 (convert_arguments, build_modify_expr, 9457 c_convert_parm_for_inlining, digest_init, c_finish_return): Update 9458 callers to convert_for_assignment. 9459 (warn_for_assignment): Remove. 9460 94612004-10-08 Nick Clifton <nickc@redhat.com> 9462 9463 * config/sh/symbian.c (symbian_possibly_export_base_class): 9464 Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with 9465 TYPE_CONTAINS_VPTR_P. 9466 94672004-10-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 9468 9469 * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude 9470 fixed registers form all_used_regs. Update call_really_used_regs. 9471 (CALL_REALLY_USED_REGISTERS): Define. 9472 * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs 9473 with call_really_used_regs. 9474 94752004-10-08 Alan Modra <amodra@bigpond.net.au> 9476 9477 * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o 9478 for -profile as well as -p and -pg. 9479 94802004-10-07 Andrew Pinski <pinskia@physics.uc.edu> 9481 9482 * libgcc2.c (__moddi3): Cast &w to UDWtype*. 9483 94842004-10-07 Kazu Hirata <kazu@cs.umass.edu> 9485 9486 * tree-cfg.c (tree_block_forwards_to): Remove. 9487 * tree-flow.h: Remove the corresponding prototype. 9488 94892004-10-07 Kazu Hirata <kazu@cs.umass.edu> 9490 9491 * tree-flow-inline.h (phi_nodes): Remove an unnecessary check 9492 for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. 9493 94942004-10-07 Geoffrey Keating <geoffk@apple.com> 9495 9496 Radar 3813796 9497 * config/rs6000/rs6000.c (rs6000_generate_compare): When 9498 flag_trapping_math is in effect, don't generate subtract 9499 instructions. 9500 95012004-10-07 Ulrich Weigand <uweigand@de.ibm.com> 9502 9503 * config/s390/s390-protos.h (s390_narrow_logical_operator): Add. 9504 * config/s390/s390.c (s390_narrow_logical_operator): New function. 9505 (s390_extra_constraint_str): Add 'A' constraints. 9506 (s390_const_ok_for_constraint_p): Add 'Nx' constraints. 9507 * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint. 9508 (CONSTRAINT_LEN): Likewise. 9509 * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter. 9510 ("*andsi3_zarch", "*andsi3_esa"): Likewise. 9511 ("*andhi3_zarch", "*andhi3_esa"): Likewise. 9512 ("*iordi3"): Add OI alternative and splitter. 9513 ("*iorsi3_zarch", "*iorsi3_esa"): Likewise. 9514 ("*iorhi3_zarch", "*iorhi3_esa"): Likewise. 9515 ("*xordi3"): Add XI alternative and splitter. 9516 ("*xorsi3", "*xorhi3"): Likewise. 9517 95182004-10-07 Richard Sandiford <rsandifo@redhat.com> 9519 9520 * config/mips/mips.c (mips_function_rodata_section): New function. 9521 (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it. 9522 95232004-10-07 Devang Patel <dpatel@apple.com> 9524 9525 * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH, 9526 UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB, 9527 UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW, 9528 UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI, 9529 UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI, 9530 UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, 9531 UNSPEC_VCONDU_V16QI): New constant defines. 9532 (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi, 9533 vconduv16qi): New patterns. 9534 * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function. 9535 * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function. 9536 (get_vec_cmp_insn): Same. 9537 (get_vsel_insn): Same. 9538 (rs6000_emit_vector_compare): Same. 9539 (rs6000_emit_vector_select): Same. 9540 (INSN_NOT_AVAILABLE): New. 9541 95422004-10-07 Zdenek Dvorak <dvorakz@suse.cz> 9543 9544 PR tree-optimization/17749 9545 * tree-tailcall.c (find_tail_calls): Check that parameter is 9546 a gimple_reg. 9547 95482004-10-07 Kazu Hirata <kazu@cs.umass.edu> 9549 9550 * config/ia64/ia64.c: Fix a comment typo. 9551 95522004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr> 9553 9554 * doc/install.texi (*-*-solaris2*): Fix marker for URL. 9555 95562004-10-07 Giovanni Bajo <giovannibajo@gcc.gnu.org> 9557 9558 PR c++/17115 9559 * tree-inline.c (expand_call_inline): Do not warn for functions 9560 marked with attribute noinline. 9561 95622004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr> 9563 9564 PR target/17862 9565 * config/sparc/sparc.c (sparc_output_mi_thunk): Set 9566 current_function_uses_only_leaf_regs as well as sparc_leaf_function_p. 9567 9568 * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead 9569 of 0 as 4th argument to pass_by_reference. 9570 Call build_va_arg_indirect_ref instead of build_fold_indirect_ref. 9571 95722004-10-06 Eric Christopher <echristo@redhat.com> 9573 9574 * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf 9575 attribute. 9576 95772004-10-07 Richard Sandiford <rsandifo@redhat.com> 9578 9579 PR target/17770 9580 * config/mips/mips.md (mov_<load>l): Remove hazard=none attribute. 9581 95822004-10-07 Zdenek Dvorak <dvorakz@suse.cz> 9583 9584 PR rtl-optimization/17791 9585 * loop-doloop.c (doloop_modify): Take number of iterations as 9586 argument. 9587 (doloop_optimize): Extend or shorten the number of iterations 9588 when changing mode of counter register. 9589 * loop-iv.c (lowpart_subreg): Export. 9590 * rtl.h (lowpart_subreg): Declare. 9591 95922004-10-07 Zdenek Dvorak <dvorakz@suse.cz> 9593 9594 PR tree-optimization/17806 9595 * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags. 9596 * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP 9597 flags moved to split_edge. 9598 95992004-10-07 Eric Botcazou <ebotcazou@libertysurf.fr> 9600 9601 PR middle-end/17835 9602 * expmed.c (expand_sdiv_pow2): Force a stack adjustment 9603 before tentatively building the conditional move sequence. 9604 96052004-10-07 Richard Sandiford <rsandifo@redhat.com> 9606 9607 PR target/16815 9608 * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING 9609 check. 9610 * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of 9611 function_arg_padding. 9612 96132004-10-07 Richard Sandiford <rsandifo@redhat.com> 9614 9615 PR bootstrap/17857 9616 * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto. 9617 96182004-10-07 Kazu Hirata <kazu@cs.umass.edu> 9619 9620 * hooks.c (hook_int_void_1, hook_void_int): Remove. 9621 * hooks.h: Remove the corresponding prototypes. 9622 96232004-10-06 Andrew Pinski <pinskia@physics.uc.edu> 9624 9625 PR middle-end/17849 9626 * tree-nested.c (walk_stmt_info): Add changed field. 9627 (convert_nonlocal_reference): Set changed to when we 9628 change a decl to unnested decl. 9629 <case ADDR_EXPR>: Instead of checking if the immediate part 9630 of the ADDR_EXPR changed, check the field changed. 9631 Use recompute_tree_invarant_for_addr_expr instead of unsetting 9632 TREE_INVARIANT. 9633 (convert_local_reference): Set changed to when we 9634 change a decl to unnested decl. 9635 <case ADDR_EXPR>: Instead of checking if the immediate part 9636 of the ADDR_EXPR changed, check the field changed. 9637 Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR. 9638 96392004-10-06 Kazu Hirata <kazu@cs.umass.edu> 9640 9641 * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove. 9642 * dwarf2out.c (dwarf2out_init): Remove references to 9643 DWARF2_GENERATE_TEXT_SECTION_LABEL. 9644 * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL. 9645 * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove. 9646 96472004-10-06 Joseph S. Myers <jsm@polyomino.org.uk> 9648 9649 * c-typeck.c (convert_arguments): Take expression for called 9650 function rather than its name. Handle ObjC selectors directly 9651 rather than relying on warn_for_assignment to do so. Call warning 9652 directly rather than warn_for_assignment. Use %qE in diagnostics. 9653 Say "argument" rather than "arg" in diagnostics. 9654 (build_function_call): Update call to convert_arguments. 9655 96562004-10-06 Andrew Pinski <pinskia@physics.uc.edu> 9657 9658 PR debug/17787 9659 * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and 9660 ENUMs specially instead of just saying we do. 9661 96622004-10-06 Eric Christopher <echristo@redhat.com> 9663 9664 * dwarf2.h: Sync with include/elf/dwarf2.h 9665 96662004-10-06 Daniel Berlin <dberlin@dberlin.org> 9667 9668 * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO 9669 and TREE_VEC nodes. 9670 96712004-10-06 Daniel Berlin <dberlin@dberlin.org> 9672 9673 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert 9674 to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value. 9675 96762004-10-06 Daniel Berlin <dberlin@dberlin.org> 9677 9678 * lambda-code.c (compute_nest_using_fourier_motzkin): New 9679 function. 9680 (lambda_compute_auxillary_space): Split from here. 9681 96822004-10-06 Daniel Berlin <dberlin@dberlin.org> 9683 9684 * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static. 9685 * tree-flow.h: Add prototype. 9686 * lambda-code.c (invariant_in_loop_and_outer_loops): Use 9687 expr_invariant_in_loop. 9688 96892004-10-06 Kazu Hirata <kazu@cs.umass.edu> 9690 9691 * tree-cfg.c (thread_jumps): Remove a duplicate check for 9692 EXIT_BLOCK_PTR. 9693 96942004-10-06 Ulrich Weigand <uweigand@de.ibm.com> 9695 9696 * config/s390/s390-protos.h (s_imm_operand): Remove. 9697 (s390_pool_operand): Add prototype. 9698 * config/s390/s390.c (general_s_operand): Remove. 9699 (s_imm_operand): Remove. 9700 (s_operand): Merge contents of general_s_operand. 9701 (s390_pool_operand): New function. 9702 * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand. 9703 * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns. 9704 ("*cmpdi_ccu"): Merge Q->Q alternative. 9705 ("*cmpsi_ccu", "*cmphi_ccu"): Likewise. 9706 ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives. 9707 ("*cli"): Remove. 9708 ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise. 9709 ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise. 9710 ("*movstricthi"): Use memory_operand instead of s_imm_operand. 9711 97122004-10-06 Steve Ellcey <sje@cup.hp.com> 9713 9714 * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to 9715 call ia64_function_arg_boundary. 9716 * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New. 9717 * config/ia64/ia64.c (ia64_function_arg_boundary): New. 9718 (ia64_function_arg_advance): Do not put 128 bit floats into 9719 FP registers. 9720 97212004-10-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9722 9723 * builtins.c (expand_builtin_strcpy): Delete duplicate code. 9724 Accept an expression instead of an arglist. 9725 (expand_builtin_stpcpy): Accept an expression instead of an 9726 arglist. 9727 97282004-10-06 Eric Botcazou <ebotcazou@libertysurf.fr> 9729 9730 PR target/16007 9731 * doc/install.texi (*-*-solaris2*): Mention potential problem 9732 with Sun assembler + GNU linker and C++ programs. 9733 Document status of binutils 2.15 release. 9734 97352004-10-06 Jan Hubicka <jh@suse.cz> 9736 9737 * cse.c (cse_main): Kill push/pop context. 9738 97392004-10-05 Zack Weinberg <zack@codesourcery.com> 9740 9741 * pretty-print.c: Include tree.h. 9742 (pp_base_prepare_to_format): New function, logic from 9743 text_specifies_location. 9744 (pp_base_format_text): Use gcc_assert. 9745 * pretty-print.h (pp_prepare_to_format): New macro. 9746 (pp_base_prepare_to_format): Prototype. 9747 * diagnostic.c (text_specifies_location): Delete. 9748 (bug_report_request): Delete. 9749 (diagnostic_set_info): Don't call text_specifies_location. 9750 (diagnostic_action_after_output): Put text from 9751 bug_report_request inline here. Use gcc_unreachable. 9752 (diagnostic_report_current_function): Fix comment. 9753 (diagnostic_report_diagnostic): Clarify logic for error recursion. 9754 Call pp_prepare_to_format before diagnostic_starter. 9755 (trim_filename): Use IS_DIR_SEPARATOR. 9756 (fatal_error, internal_error): Use gcc_unreachable. 9757 (error_recursion): Call diagnostic_action_after_output to 9758 issue the bug_report_request message and exit. 9759 * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies. 9760 9761 * c-parse.in: Add list of diagnostic messages to insulate 9762 translation template from version of yacc/bison used to 9763 compile the grammar. 9764 97652004-10-06 Alan Modra <amodra@bigpond.net.au> 9766 9767 PR 16406 9768 * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document. 9769 97702004-10-05 Kazu Hirata <kazu@cs.umass.edu> 9771 9772 * basic-block.h: Remove the prototype for 9773 flow_preorder_transversal_compute. 9774 * cfganal.c (dfst_node): Remove. 9775 (flow_preorder_transversal_compute): Likewise. 9776 * rtl.h: Remove the prototype for get_jump_table_offset. 9777 * rtlanal.c (get_jump_table_offset): Remove. 9778 97792004-10-05 Richard Henderson <rth@redhat.com> 9780 9781 PR 17756 9782 * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL. 9783 97842004-10-05 Kelley Cook <kcook@gcc.gnu.org> 9785 9786 PR bootstrap/17817 9787 * Makefile.in: Stage the build directory too. 9788 97892004-10-05 Aldy Hernandez <aldyh@redhat.com> 9790 9791 * config/frv/frv.h (LEGITIMIZE_ADDRESS): New. 9792 9793 * config/frv/frv-protos.h (frv_legitimize_address): Protoize. 9794 (frv_emit_move): Same. 9795 9796 * config/frv/frv.c (frv_emit_move): New. 9797 (frv_legitimize_address): New. 9798 9799 * config/frv/frv.md ("movsi"): Call frv_emit_move. 9800 ("movqi"): Same. 9801 ("movhi"): Same. 9802 ("movdi"): Same. 9803 ("movsf"): Same. 9804 ("movdf"): Same. 9805 98062004-10-05 Joseph S. Myers <jsm@polyomino.org.uk> 9807 9808 * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in 9809 system headers. 9810 98112004-10-05 Joseph S. Myers <jsm@polyomino.org.uk> 9812 9813 * c-decl.c (pushdecl): When an extern declaration at block scope 9814 refers to a visible entity with internal linkage, use the old DECL 9815 rather than the new one. 9816 98172004-10-05 Kazu Hirata <kazu@cs.umass.edu> 9818 9819 * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in 9820 comments. 9821 98222004-10-05 Kazu Hirata <kazu@cs.umass.edu> 9823 9824 * tree-cfg.c (thread_jumps): Remove a duplicate check for 9825 an infinite loop. 9826 98272004-10-05 Kazu Hirata <kazu@cs.umass.edu> 9828 9829 * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead 9830 of FOR_BB_BETWEEN. Remove a useless check for unreachable 9831 blocks. 9832 98332004-10-05 Kazu Hirata <kazu@cs.umass.edu> 9834 9835 * tree-cfg.c (cleanup_tree_cfg): Don't call 9836 delete_unreachable_blosk() after thread_jumps(). 9837 (thread_jumps): Always remove basic blocks as they become 9838 unreachable. 9839 98402004-10-05 Kazu Hirata <kazu@cs.umass.edu> 9841 9842 * tree-cfg.c (cleanup_tree_cfg): Remove variable 9843 something_changed. Simplify the while loop. 9844 98452004-10-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9846 9847 * builtins.c (expand_builtin_memmove): Delete duplicate code 9848 and accept a tree type for the result. 9849 (expand_builtin_bcopy): Accept a tree type for the result. 9850 (fold_builtin_memmove): Accept an arglist and tree type for 9851 the result. 9852 98532004-10-05 Ulrich Weigand <uweigand@de.ibm.com> 9854 9855 * config/s390/s390.c (s390_dump_pool): Remove return value. 9856 Use gen_pool_align, gen_pool_section_start/end instead of 9857 gen_pool_start/end_31/64. 9858 * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove. 9859 (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants. 9860 ("pool_start_31", "pool_end_31"): Remove. 9861 ("pool_start_64", "pool_end_64"): Likewise. 9862 ("pool_align", "pool_section_start", "pool_section_end": New insns. 9863 9864 * config/s390/s390.c (s390_cannot_copy_insn_p): New function. 9865 (TARGET_CANNOT_COPY_INSN_P): Define. 9866 (s390_cannot_force_const_mem): Handle UNSPEC_INSN. 9867 (struct constant_pool): New member 'execute'. 9868 (s390_add_execute, s390_find_execute): New functions. 9869 (s390_execute_label, s390_execute_target): Likewise. 9870 (s390_dump_pool): Output in-pool execute target templates. 9871 (s390_dump_execute): New function. 9872 (s390_alloc_pool, s390_free_pool): Handle execute templates. 9873 (s390_mainpool_start, s390_mainpool_finish): Likewise. 9874 (s390_chunkify_start, s390_chunkify_finish): Likewise. 9875 * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants. 9876 ("*execute"): New insn pattern. 9877 ("movmem_short", "*movmem_short"): Use splitters to generate 9878 explicit execute pattern, remove embedded execute. 9879 ("clrmem_short", "*clrmem_short"): Likewise. 9880 ("cmpmem_short", "*cmpmem_short"): Likewise. 9881 98822004-10-05 Daniel Berlin <dberlin@dberlin.org> 9883 9884 * tree-ssa.c (verify_ssa): Verify phi arguments only 9885 contain renamed names. 9886 98872004-10-05 Alan Modra <amodra@bigpond.net.au> 9888 9889 * config/rs6000/linux.h: Formatting, whitespace. 9890 * config/rs6000/linux64.h: Likewise. 9891 * config/rs6000/rs6000-protos.h: Likewise. 9892 * config/rs6000/rs6000.c: Likewise. 9893 (easy_vector_splat_const): Add fall thru comments. 9894 (output_vec_const_move): Likewise. 9895 98962004-10-05 Kelley Cook <kcook@gcc.gnu.org> 9897 9898 * Makefile.in: Update -Wno-error exceptions for move to build dir. 9899 99002004-10-05 Chao-Ying Fu <fu@mips.com> 9901 Richard Sandiford <rsandifo@redhat.com> 9902 9903 * doc/invoke.texi (-mpaired-single): Link to the new description of the 9904 built-in functions. Document dependencies. 9905 (-mips3d): Add link here too. 9906 * doc/extend.texi (MIPS Paired-Single Support): New section. 9907 99082004-10-04 Chao-ying Fu <fu@mips.com> 9909 9910 * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define. 9911 99122004-10-04 Diego Novillo <dnovillo@redhat.com> 9913 9914 * tree-ssa-dom.c (tree_ssa_dominator_optimize): 9915 Initialize OPT_STATS to 0. 9916 99172004-10-04 Kazu Hirata <kazu@cs.umass.edu> 9918 9919 * tree-data-ref.c: Fix comment typos. 9920 99212004-10-04 Sebastian Pop <pop@cri.ensmp.fr> 9922 9923 * tree-data-ref.c (array_base_name_differ_p): Fix comments. When 9924 the predicate cannot be computed, don't initialize the result to 9925 false. 9926 99272004-10-01 Eric Christopher <echristo@redhat.com> 9928 9929 * dwarf2.h (dwarf_calling_convention): Add GNU prefix to 9930 locally defined enum. 9931 * dwarf2out.c (add_calling_convention_attribute): Don't 9932 emit DW_CC_normal. 9933 99342004-10-03 Andrew Pinski <pinskia@physics.uc.edu> 9935 9936 PR c/17178, PR c/17820 9937 * c-decl.c (pop_scope): Do not warn about unused static 9938 variables as they warned in the middle-end. 9939 99402004-10-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9941 9942 * builtins.c (expand_builtin_memcpy): Delete duplicate code 9943 and make the first parameter the expression not the arglist. 9944 99452004-10-03 Ulrich Weigand <uweigand@de.ibm.com> 9946 9947 * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode 9948 as valid modes to expand address expressions. 9949 99502004-10-03 Joseph S. Myers <jsm@polyomino.org.uk> 9951 9952 * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c, 9953 c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c, 9954 c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow 9955 code formatting conventions. 9956 99572004-10-03 Richard Sandiford <rsandifo@redhat.com> 9958 9959 * config/mips/mips.md (<u>mulsidi3_32bit_r4000): Fix unsigned case. 9960 99612004-10-03 Kazu Hirata <kazu@cs.umass.edu> 9962 9963 PR tree-optimization/16632 9964 * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to 9965 fold (A & C) == D into 0, fold ~C. Similarly, for the case 9966 where | is used instead of &. 9967 99682004-10-03 Kazu Hirata <kazu@cs.umass.edu> 9969 9970 * ginclude/stddef.h: Fix a comment typo. 9971 99722004-10-03 Eric Botcazou <ebotcazou@libertysurf.fr> 9973 9974 PR target/17443 9975 * config.gcc (i?86-*-solaris2*): Restore correct logic 9976 for --enable-threads option. 9977 (sparc64-*-solaris2*): Likewise. 9978 (sparc-*-solaris2*): Likewise. 9979 99802004-10-03 Alan Modra <amodra@bigpond.net.au> 9981 9982 * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define. 9983 (OS_MISSING_POWERPC64): Move, and comment. 9984 * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define. 9985 (OS_MISSING_POWERPC64): Move, and comment. 9986 99872004-10-02 Ian Lance Taylor <ian@wasabisystems.com> 9988 9989 * arm.c (output_call_mem): Add missing \t. 9990 99912004-10-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 9992 9993 * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp, 9994 expand_builtin_strncmp): Delete duplicate code. 9995 99962004-10-02 Frank Ch. Eigler <fche@redhat.com> 9997 9998 * tree-mudflap.c (mf_build_check_statement_for): Reorganize to 9999 take check-base and -limit arguments. 10000 (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit 10001 check ranges for ARRAY_REF and COMPONENT_REF. 10002 (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary 10003 instrumentation. 10004 100052004-10-02 Joseph S. Myers <jsm@polyomino.org.uk> 10006 10007 * c-objc-common.c (c_tree_printer): Correct description of %E. 10008 Don't fall through after printing an expression. 10009 100102004-10-02 Kazu Hirata <kazu@cs.umass.edu> 10011 10012 * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos. 10013 100142004-10-02 Kazu Hirata <kazu@cs.umass.edu> 10015 10016 * tree-cfg.c (cleanup_tree_cfg): Speed up by calling 10017 delete_unrechable_blocks() only when necessary. 10018 100192004-10-02 P.J. Darcy <darcypj@us.ibm.com> 10020 10021 * gthr-tpf.h (__gthread_recursive_mutex_t): New type. 10022 (__GTHREAD_RECURSIVE_MUTEX_INIT): Define. 10023 (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock, 10024 __gthread_recursive_mutex_unlock): New functions. 10025 100262004-10-02 P.J. Darcy <darcypj@us.ibm.com> 10027 10028 * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c. 10029 * config/s390/tpf-eh.c: Remove file. 10030 * config/s390/tpf-unwind.h: New file. 10031 * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove. 10032 (MD_UNWIND_SUPPORT): Define. 10033 100342004-10-02 Joseph S. Myers <jsm@polyomino.org.uk> 10035 10036 * c-typeck.c (warn_for_assignment): Don't permit argnum == 0. 10037 100382004-10-01 Ulrich Weigand <uweigand@de.ibm.com> 10039 10040 * config/s390/s390-protos.h (s390_comparison): Add prototype. 10041 * config/s390/s390.c (s390_comparison): New function. 10042 (s390_branch_condition_mask): Return -1 for invalid comparisons. 10043 (s390_branch_condition_mnemonic): Assert valid comparison. 10044 * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison. 10045 * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long", 10046 "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use 10047 s390_comparison instead of comparison_operator. 10048 10049 * config/s390/s390.md (UNSPEC_CMPINT): New constant. 10050 ("cmpmemdi"): Remove. 10051 ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode. 10052 ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise. 10053 ("cmpint_si"): Rename to ... 10054 ("*cmpint_si"): ... this. Use UNSPEC_CMPINT. 10055 ("cmpint_di", "*cmpint_di"): Likewise. 10056 * config/s390/s390.c (s390_canonicalize_comparison): Remove 10057 redundant UNSPEC_CMPINT conversions. 10058 (s390_expand_cmpmem): Adapt to cmpint pattern changes. 10059 100602004-10-01 Kazu Hirata <kazu@cs.umass.edu> 10061 10062 * collect2.c (COLLECT_PARSE_FLAG): Remove. 10063 (main): Remove a reference to COLLECT_PARSE_FLAG 10064 * system.h: Poison COLLECT_PARSE_FLAG. 10065 * doc/tm.texi (COLLECT_PARSE_FLAG): Remove. 10066 100672004-10-01 Paul Brook <paul@codesourcery.com> 10068 10069 * config/arm/crti.asm: Give _init and _fini function type. 10070 100712004-10-01 Zdenek Dvorak <dvorakz@suse.cz> 10072 10073 * common.opt (ftree-loop-ivcanon): Enable by default. 10074 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): 10075 Enable complete loop unrolling. 10076 (canonicalize_induction_variables, tree_unroll_loops_completely): 10077 Reset scev info. 10078 100792004-10-01 Paul Brook <paul@codesourcery.com> 10080 10081 * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask, 10082 not register number. 10083 (thumb_find_work_register): Search full register range. 10084 100852004-10-01 Andrew Pinski <pinskia@physics.uc.edu> 10086 10087 PR tree-opt/17343 10088 * tree-cfg.c (group_case_labels): Get the label and not 10089 the case expr for the default case. 10090 When the label we looking at is the default, decrement the 10091 new_size. 10092 100932004-10-01 Jan Hubicka <jh@suse.cz> 10094 10095 * c-decl.c (c_expand_body): Update call tree_rest_of_compilation. 10096 * cgraphunit.c (cgraph_build_static_cdtor): Likewise. 10097 * toplev.h (tree_rest_of_compilation): Update prototype. 10098 * tree-optimize.c (tree_rest_of_compilation): Kill nested_p argument. 10099 101002004-10-01 Kazu Hirata <kazu@cs.umass.edu> 10101 10102 * tree-cfg.c (cleanup_tree_cfg): Pull a call to 10103 cleanup_control_flow() out of the while loop. 10104 101052004-10-01 Paolo Bonzini <bonzini@gnu.org> 10106 10107 * tree-vectorizer.c (vectorizable_operation): Fail unless 10108 the mode for the vector type is indeed a vector mode. 10109 101102004-10-01 Zdenek Dvorak <dvorakz@suse.cz> 10111 10112 * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1, 10113 chrec_fold_multiply): Use fold_convert or build_int_cst_type instead 10114 of convert. 10115 * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, 10116 add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs, 10117 follow_ssa_edge_in_rhs): Ditto. 10118 * tree-ssa-loop-ivopts.c (struct iv): Add base_object field. 10119 (dump_iv): Dump base_object. 10120 (dump_use, dump_cand): Use dump_iv. 10121 (determine_base_object): New function. 10122 (alloc_iv): Initialize base_object field. 10123 (record_use): Clear the ssa_name field of iv. 10124 (get_computation_cost_at): Do not use difference of addresses of 10125 two different objects. 10126 (may_eliminate_iv): Do not require the loop to have just single exit. 10127 * tree-ssa-loop-niter.c (zero_p): Do not check for overflows. 10128 (nonzero_p): New function. 10129 (inverse, number_of_iterations_cond, simplify_using_outer_evolutions, 10130 tree_simplify_using_condition, simplify_using_initial_conditions, 10131 loop_niter_by_eval, find_loop_niter_by_eval, 10132 estimate_numbers_of_iterations_loop, compare_trees, 10133 upper_bound_in_type, lower_bound_in_type, 10134 can_count_iv_in_wider_type_bound): Use buildN instead of build. Use 10135 fold_convert or build_int_cst_type instead of convert. Use (non)zero_p 10136 instead of integer_(non)zerop. 10137 101382004-10-01 Jakub Jelinek <jakub@redhat.com> 10139 10140 Revert 10141 2004-09-29 Jakub Jelinek <jakub@redhat.com> 10142 10143 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD 10144 and TI_VA_LIST_FPR_COUNTER_FIELD. 10145 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. 10146 * tree-pass.h (pass_stdarg): Add. 10147 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. 10148 * tree-stdarg.c: New file. 10149 * Makefile.in (OBJS-common): Add tree-stdarg.o. 10150 (tree-stdarg.o): Add dependencies. 10151 * function.h (struct function): Add va_list_gpr_size and 10152 va_list_fpr_size fields. 10153 * function.c (allocate_struct_function): Initialize them. 10154 10155 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize 10156 va_list_{g,f}pr_counter_field. 10157 (ix86_setup_incoming_varargs): Don't do anything if reg_save 10158 area will not be used. Only save registers that tree-stdarg.c 10159 detected they need saving. 10160 (ix86_va_start): Don't set up fields that won't be used. 10161 10162 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize 10163 va_list_{g,f}pr_counter_field. 10164 (setup_incoming_varargs): Don't do anything if reg_save 10165 area will not be used. Only save registers that tree-stdarg.c 10166 detected they need saving. 10167 (rs6000_va_start): Don't set up fields that won't be used. 10168 101692004-09-30 Eric Christopher <echristo@redhat.com> 10170 10171 * dwarf2.h (dwarf_calling_convention): Add enum for renesas 10172 sh abi. 10173 * dwarf2out.c (add_calling_convention_attribute): New function. 10174 (gen_subroutine_type_die): Use. 10175 * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook. 10176 * target.h (gcc_target): Add dwarf_calling_convention. 10177 * hooks.c (hook_int_tree_0): New function. 10178 * hooks.h: Prototype. 10179 * config/sh/sh.c: Include dwarf2.h. 10180 (sh_dwarf_calling_convention): New function. 10181 (TARGET_DWARF_CALLING_CONVENTION): Use. 10182 * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document. 10183 101842004-09-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 10185 10186 * builtins.c (expand_builtin_strstr, expand_builtin_strchr, 10187 expand_builtin_strrchr, expand_builtin_strpbrk, 10188 expand_builtin_strncat, expand_builtin_strspn, 10189 expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate 10190 code. 10191 101922004-09-30 Ulrich Weigand <uweigand@de.ibm.com> 10193 10194 * config/s390/s390-protos.h (s390_expand_logical_operator): Add 10195 prototype. 10196 (s390_logical_operator_ok_p): Likewise. 10197 * config/s390/s390.c (s390_expand_logical_operator): New function. 10198 (s390_logical_operator_ok_p): Likewise. 10199 * config/s390/s390.md ("anddi3"): New expander. 10200 ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative. 10201 ("*anddi3_ss", "*anddi3_ss_inv"): Remove. 10202 ("andsi3"): Use s390_expand_logical_operator. 10203 ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative. 10204 ("*andsi3_ss", "*andsi3_ss_inv"): Remove. 10205 ("andhi3"): New expander. 10206 ("*andhi3_zarch", "*andhi3_esa"): New patterns. 10207 ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove. 10208 ("andqi3"): New expander. 10209 ("*andqi3_zarch", "*andqi3_esa"): New patterns. 10210 ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove. 10211 ("iordi3"): New expander. 10212 ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative. 10213 ("*iordi3_ss", "*iordi3_ss_inv"): Remove. 10214 ("iorsi3"): Use s390_expand_logical_operator. 10215 ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative. 10216 ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove. 10217 ("iorhi3"): New expiorer. 10218 ("*iorhi3_zarch", "*iorhi3_esa"): New patterns. 10219 ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove. 10220 ("iorqi3"): New expiorer. 10221 ("*iorqi3_zarch", "*iorqi3_esa"): New patterns. 10222 ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove. 10223 ("xordi3"): New expander. 10224 ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative. 10225 ("*xordi3_ss", "*xordi3_ss_inv"): Remove. 10226 ("xorsi3"): New expander. 10227 ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative. 10228 ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove. 10229 ("xorhi3"): New expander. 10230 ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative. 10231 ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove. 10232 ("xorqi3"): New expander. 10233 ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative. 10234 ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove. 10235 102362004-09-30 Roger Sayle <roger@eyesopen.com> 10237 10238 * combine.c (force_to_mode) <NE_EXPR>: Only convert the expression 10239 (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same 10240 machine mode as the result. 10241 102422004-09-30 Ben Elliston <bje@au.ibm.com> 10243 10244 PR bootstrap/17761 10245 * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and 10246 FOR_EACH_EDGE macros. 10247 102482004-09-30 Joseph S. Myers <jsm@polyomino.org.uk> 10249 10250 * c-tree.h (readonly_error): Remove. 10251 * c-typeck (enum lvalue_use): New. 10252 (lvalue_or_else, readonly_error): Use it. All callers changed. 10253 (readonly_error): Make static. 10254 102552004-09-30 Jan Hubicka <jh@suse.cz> 10256 10257 PR debug/13974 10258 * cfgrtl.c (try_redirect_by_replacing_jump, 10259 force_nonfallthru_and_redirect, commit_one_edge_insertion, 10260 cfg_layout_merge_blocks): Do not attach any line number information 10261 to newly inserted instructions. 10262 * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to 10263 emit_insn_*_noloc. 10264 (emit_*insn_before, emit_insn*_after): New. 10265 (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite 10266 existing locators. 10267 * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare. 10268 (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill. 10269 102702004-09-30 Ulrich Weigand <uweigand@de.ibm.com> 10271 10272 * config/s390/s390-protos.h (s390_arg_frame_offset): Remove. 10273 (s390_return_address_offset): Remove. 10274 (s390_can_eliminate): Add prototype. 10275 (s390_initial_elimination_offset): Add prototype. 10276 * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate. 10277 (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset. 10278 * config/s390/s390.c (s390_arg_frame_offset): Remove. 10279 (s390_return_address_offset): Remove. 10280 (s390_can_eliminate, s390_initial_elimination_offset): New functions. 10281 (struct machine_function): New member split_branches_pending_p. 10282 (s390_mainpool_start): Allow nonexistant pool insn for empty pool. 10283 (s390_mainpool_finish): Likewise. Clear base_reg if pool empty. 10284 (s390_optimize_prologue): Remove base_used argument. Call 10285 s390_update_frame_layout instead of s390_register_info. Handle 10286 prologue/epilogue insns that touch only RETURN_REGNUM. 10287 (s390_reorg): Remove base_used. Clear split_branches_pending_p. 10288 (s390_register_info): Remove base_used and return_addr_used 10289 arguments, compute special register usage inline. Return live 10290 register data to caller. 10291 (s390_frame_info): Remove arguments, do not call s390_register_info. 10292 (s390_init_frame_layout): New function. 10293 (s390_update_frame_layout): Likewise. 10294 (s390_emit_prologue): Call s390_update_frame_layout; some code 10295 move to there. Do not emit pool placeholder insn if unnecessary. 10296 102972004-09-30 Ulrich Weigand <uweigand@de.ibm.com> 10298 10299 * config/s390/s390.c (legitimate_reload_constant_p): Remove 10300 floating point constant workaround. 10301 (s390_secondary_input_reload_class): Handle PLUS reloads 10302 with too-large constant. 10303 (s390_expand_plus_operand): Likewise. 10304 * config/s390/s390.md ("movdi"): Do not call force_const_mem. 10305 ("movsi"): Likewise. Also, remove workaround for non-general 10306 operands. 10307 ("movdf"): Do not call force_const_mem. 10308 ("movsf"): Likewise. Merge expander with *movsf insn. 10309 ("*movsf"): Remove, merge with movsf expander. 10310 103112004-09-30 Paul Brook <paul@codesourcery.com> 10312 10313 * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o. 10314 (ENDFILE_SPEC): Define. 10315 * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set. 10316 103172004-09-30 Richard Henderson <rth@redhat.com> 10318 10319 * config/alpha/qrnnd.asm: Mark for noexecstack. 10320 103212004-09-30 Kazu Hirata <kazu@cs.umass.edu> 10322 10323 * protoize.c, tree-cfg.c: Fix comment typos. 10324 103252004-09-30 Joseph S. Myers <jsm@polyomino.org.uk> 10326 10327 PR c/17730 10328 * c-typeck.c (lvalue_or_else): Pass msgid directly to error. 10329 103302004-09-30 Diego Novillo <dnovillo@redhat.com> 10331 10332 * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of 10333 expressions... 10334 (add_pointed_to_expr): ... here. 10335 Call add_pointed_to_expr for variables with DECL_INITIAL set. 10336 * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any 10337 pointer variable, if set. 10338 103392004-09-30 Kazu Hirata <kazu@cs.umass.edu> 10340 10341 * config/sh/sh.c: Follow spelling conventions. 10342 103432004-09-29 Richard Henderson <rth@redhat.com> 10344 10345 * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG. 10346 * doc/tm.texi (DWARF_ZERO_REG): New. 10347 10348 * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue, 10349 alpha_expand_epilogue): Revert 2003-09-30 change to store zero. 10350 * config/alpha/alpha.h (DWARF_ZERO_REG): New. 10351 103522004-09-29 Ulrich Weigand <uweigand@de.ibm.com> 10353 10354 * builtins.c (expand_builtin_strlen): Do not call emit_move_insn 10355 with a PLUS as source operand. 10356 (expand_movstr): Likewise. 10357 (expand_builtin_stpcpy): Likewise. 10358 103592004-09-29 Richard Henderson <rth@redhat.com> 10360 10361 PR 17739 10362 * tree-gimple.c (is_gimple_reg): Reject hard registers. 10363 (is_gimple_asm_val): New. 10364 * tree-gimple.h (is_gimple_asm_val): Declare. 10365 * gimplify.c (gimplify_asm_expr): Use it. 10366 * tree-pretty-print.c (print_declaration): Dump hard regs. 10367 * tree-outof-ssa.c (check_replaceable): Don't check for hard regs. 10368 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. 10369 * tree-ssa-pre.c (is_undefined_value): Likewise. 10370 * tree-ssa-copy.c (may_propagate_copy): Likewise. 10371 (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER. 10372 * tree-ssa.c (warn_uninit): Likewise. 10373 * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL. 10374 103752004-09-29 Fariborz Jahanian <fjahanian@apple.com> 10376 10377 * c-decl.c (merge_decls): Use comptype when comparing 10378 types to decide on DECL_SIZE save of olddecl. 10379 103802004-09-29 Daniel Berlin <dberlin@dberlin.org> 10381 10382 * tree.h (INDIRECT_REF_P): New macro. 10383 * alias.c (get_alias_set): Use it 10384 (nonoverlapping_memrefs_p): Ditto. 10385 * emit-rtl.c (mem_expr_equal_p): Ditto. 10386 (set_mem_attributes_minus_bitpos): Ditto. 10387 (is_gimple_addressable): Ditto. 10388 (get_base_address): Ditto. 10389 * tree-ssa-alias.c (find_ptr_derefernece): Ditto. 10390 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto. 10391 * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto. 10392 * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto. 10393 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto. 10394 (add_address_candidates): Ditto. 10395 (rewrite_address_base): Ditto. 10396 103972004-09-30 Ben Elliston <bje@au.ibm.com> 10398 10399 * tree-flow.h (struct bb_ann_d): Remove num_preds member. 10400 * tree-into-ssa.c (rewrite_into_ssa): Don't set it. 10401 (rewrite_ssa_into_ssa): Likewise. 10402 * tree-phinodes.c (create_phi_node): Access the number of 10403 predecessor edges using EDGE_COUNT() and not num_preds. 10404 104052004-09-29 Joseph S. Myers <jsm@polyomino.org.uk> 10406 10407 PR c/7425 10408 * c-decl.c (merge_decls): Merge TREE_DEPRECATED. 10409 104102004-09-29 Eric Christopher <echristo@redhat.com> 10411 10412 * fold-const.c (tree_swap_operands_p): Remove duplicated code. 10413 104142004-09-29 Hans-Peter Nilsson <hp@axis.com> 10415 10416 * config/cris/cris.md (moverside, movemside): With MEM, make sure 10417 the address is (plus reg mem). 10418 104192004-09-29 David Edelsohn <edelsohn@gnu.org> 10420 10421 * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define. 10422 104232004-09-29 Nathan Sidwell <nathan@codesourcery.com> 10424 10425 * tree.c (make_node_stat): Fix uninitialized warning. Replace 10426 cascaded if ... else if with a switch. 10427 104282004-09-29 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 10429 10430 * read-rtl.c (apply_macro_to_string): Replace index with strchr. 10431 104322004-09-29 Jakub Jelinek <jakub@redhat.com> 10433 10434 * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD 10435 and TI_VA_LIST_FPR_COUNTER_FIELD. 10436 (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. 10437 * tree-pass.h (pass_stdarg): Add. 10438 * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. 10439 * tree-stdarg.c: New file. 10440 * Makefile.in (OBJS-common): Add tree-stdarg.o. 10441 (tree-stdarg.o): Add dependencies. 10442 * function.h (struct function): Add va_list_gpr_size and 10443 va_list_fpr_size fields. 10444 * function.c (allocate_struct_function): Initialize them. 10445 10446 * config/i386/i386.c (ix86_build_builtin_va_list): Initialize 10447 va_list_{g,f}pr_counter_field. 10448 (ix86_setup_incoming_varargs): Don't do anything if reg_save 10449 area will not be used. Only save registers that tree-stdarg.c 10450 detected they need saving. 10451 (ix86_va_start): Don't set up fields that won't be used. 10452 10453 * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize 10454 va_list_{g,f}pr_counter_field. 10455 (setup_incoming_varargs): Don't do anything if reg_save 10456 area will not be used. Only save registers that tree-stdarg.c 10457 detected they need saving. 10458 (rs6000_va_start): Don't set up fields that won't be used. 10459 104602004-09-29 Jakub Jelinek <jakub@redhat.com> 10461 10462 * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, 10463 BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE, 10464 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED, 10465 BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute. 10466 * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2, 10467 ATTR_NONNULL_1_4): New. 10468 104692004-09-29 Jakub Jelinek <jakub@redhat.com> 10470 10471 PR tree-optimization/17697 10472 * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup 10473 cfg if needed. 10474 104752004-09-28 Per Bothner <per@bothner.com> 10476 10477 * profile.c (branch_prob): Pass correct value to output_location, 10478 even when USE_MAPPED_LOCATION. Fixes bug from 09-11. 10479 104802004-09-28 Richard Henderson <rth@redhat.com> 10481 10482 PR 15089 10483 * tree-ssa-copy.c (may_propagate_copy_into_asm): New. 10484 * tree-flow.h (may_propagate_copy_into_asm): Declare. 10485 * tree-ssa-ccp.c (replace_uses_in): Use it. 10486 * tree-ssa-dom.c (cprop_operand): Likewise. 10487 104882004-09-28 Jeff Law <law@redhat.com> 10489 10490 * tree-ssa-threadupdate.c (create_block_for_threading): Request 10491 that no outgoing edges be left in the duplicate block. Do no 10492 update information on outgoing edges or PHI nodes in target 10493 blocks here. 10494 (remove_ctrl_stmt_and_useless_edges): Renamed from 10495 remove_last_stmt_and_useless_edges. Handle case where the 10496 block is empty or has no control statements. Do not update edge 10497 flags here. 10498 (thread_block): Create a template block rather than copying the 10499 original block every time. Create outgoing edges from the 10500 duplicate blocks and update PHIs at the target of the outgoing 10501 edges here. Fix edge flags for the original block if necessary. 10502 * cfghooks (duplicate_block): No longer assert that the original 10503 block has incoming edges. 10504 105052004-09-29 Hans-Peter Nilsson <hp@bitrange.com> 10506 10507 * doc/extend.texi (Extended Asm): Add blurb about using Explicit 10508 Reg Vars to enforce register allocation with general constraints. 10509 (Explicit Reg Vars): Clarify relation to asm statements. 10510 (Local Reg Vars): Similar. 10511 105122004-09-28 Ulrich Weigand <uweigand@de.ibm.com> 10513 10514 * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK, 10515 TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES, 10516 build_control_flow, new_edge): Remove. 10517 (schedule_insns): Remove edge_table/in_edges/out_edges cleanup. 10518 (bitlst, bitlst_table_last, bitlst_table): Remove. 10519 (bblst): Store basic_block pointer instead of block index. 10520 (bblst_table): Likewise. 10521 (edgelst): Store edge pointer instead of edge index. 10522 (edgelst_table, edgelst_last): New variables. 10523 (extract_bitlst): Rename to ... 10524 (extract_edgelst): ... this. Return edge pointers, not indices. 10525 (split_edges): Update call. 10526 (rgn_edges): Store edge pointers instead of indices. 10527 (edge_to_bit): Remove. 10528 (EDGE_TO_BIT): Store per-region edge index in edge->aux. 10529 (SET_EDGE_TO_BIT): New macro. 10530 (is_cfg_nonregular): Check for simple cases of unreachable blocks. 10531 (find_rgns): Remove edge_list parameter. Traverse standard CFG 10532 data structures instead of haifa_edge et al. Use edge pointers 10533 instead of edge indices everywhere. 10534 (compute_dom_prob_ps): Use standard CFG data structures. Account 10535 for exit edges. 10536 (compute_trg_info): Likewise. 10537 (propagate_deps): Likewise. 10538 (debug_candidate): Account for bblst data structure change. 10539 (check_live_1, update_live_1, is_pfree): Likewise. 10540 (IS_REACHABLE): Use standard CFG data structures. 10541 (init_ready_list): Update bblst_table/edgelst_table allocation. 10542 (schedule_region): Update alloc/cleanup code to data structure 10543 changes. Use edge->aux to store per-region edge index. 10544 (init_regions): No longer call build_control_flow. Do not 10545 create edge list any more. 10546 105472004-09-28 Ulrich Weigand <uweigand@de.ibm.com> 10548 10549 * cse.c (cse_insn): Avoid creating direct non-local jumps. 10550 * combine.c (can_combine_p): Likewise. 10551 * local-alloc. (update_equiv_regs): Likewise. 10552 105532004-09-28 Richard Henderson <rth@redhat.com> 10554 10555 PR 17531 10556 * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls. 10557 Don't check VOIDmode here. Force PLUS operands to common type. 10558 (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of 10559 Pmode if given a non pointer type. 10560 105612004-09-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 10562 10563 PR 17531 10564 * optabs.c (expand_binop): Force constants to the correct mode. 10565 105662004-09-28 Ulrich Weigand <uweigand@de.ibm.com> 10567 10568 * config/s390/s390.c (s390_adjust_cost): Remove. 10569 (TARGET_SCHED_ADJUST_COST): Do not redefine. 10570 (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE. 10571 * config/s390/s390.md ("main_pool"): Use "larl" type 10572 attribute if TARGET_CPU_ZARCH. 10573 105742004-09-28 Jakub Jelinek <jakub@redhat.com> 10575 10576 * config/ia64/ia64.c (ia64_expand_prologue): Declare ei 10577 variable. 10578 105792004-09-28 Diego Novillo <dnovillo@redhat.com> 10580 10581 * tree-ssa-loop.c (pass_record_bounds): Do not assign a 10582 name to the pass. 10583 105842004-09-28 Steven Bosscher <stevenb@suse.de> 10585 10586 * common.opt (flag_gcse_sm): Disable by default. 10587 (flag_gcse_las): Likewise. 10588 (flag_web): Likewise. Create from this file. 10589 * flags.h: Remove flag_web declaration. 10590 * toplev.c (flag_web): Likewise. 10591 (process_options): Never set flag_web. 10592 105932004-09-28 Steven Bosscher <stevenb@suse.de> 10594 10595 * Makefile.in (tree-ssa-propagate.o): Depend on vec.h. 10596 * tree-ssa-propagate.c: Include vec.h. 10597 (interesting_ssa_edges, varying_ssa_edges): Make these VECs 10598 instead of varrays. 10599 (cfg_blocks_add): Assert the block is not already in the worklist. 10600 Update uses of interesting_ssa_edges and varying_ssa_edges. 10601 (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini, 10602 ssa_propagate): Likewise. 10603 106042004-09-28 Joseph S. Myers <jsm@polyomino.org.uk> 10605 10606 PR c/16409 10607 * c-decl.c (start_decl): Check for initializing incomplete array 10608 of VLAs. 10609 (build_compound_literal): Check for TYPE being error_mark_node. 10610 * c-parse.in (primary): Check for VLA compound literals. 10611 106122004-09-28 Diego Novillo <dnovillo@redhat.com> 10613 10614 * tree-ssa-live.c (calculate_live_on_entry): Fix warnings 10615 with --disable-checking. 10616 106172004-09-28 Devang Patel <dpatel@apple.com> 10618 10619 * tree-pretty-print.c (dump_generic_node): Print vector types. 10620 106212004-09-28 Nick Clifton <nickc@redhat.com> 10622 10623 * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an 10624 invocation of the function sh_init_cumulative_args. 10625 (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise. 10626 (INIT_CUMULATIVE_INCOMING_ARGS): Delete. 10627 * config/sh/sh-protos.h: Prototype sh_init_cumulative_args. 10628 * config/sh/sh.c (sh_init_cumulative_args): New function based 10629 on the contents of the old INIT_CUMULATIVE_ARGS macro but with a 10630 heuristic added to determine the setting of force_mem when a 10631 library function is being called. 10632 106332004-09-28 Diego Novillo <dnovillo@redhat.com> 10634 10635 * tree-ssa-loop-im.c (single_reachable_address) <PHI_NODE>: 10636 Skip constant arguments. 10637 106382004-09-28 Diego Novillo <dnovillo@redhat.com> 10639 10640 * tree-ssa-alias.c (create_name_tags): If PTR points to a 10641 volatile type, mark the tag volatile. 10642 (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag 10643 volatile. 10644 106452004-09-28 Andrew Pinski <pinskia@physics.uc.edu> 10646 10647 * tree.def (vec_cond_expr): Fix. Change 'e' 10648 to tcc_expression. 10649 106502004-09-28 Kazu Hirata <kazu@cs.umass.edu> 10651 10652 * basic-block.h: Fix a comment typo. 10653 106542004-09-28 Kazu Hirata <kazu@cs.umass.edu> 10655 10656 * optabs.c, optabs.h: Fix comment typos. 10657 106582004-09-28 Eric Botcazou <ebotcazou@act-europe.fr> 10659 10660 * config/sparc/sparc.md (call_address_struct_value_sp32): 10661 Properly mask the immediate field of the 'unimp' instruction. 10662 (call_symbolic_struct_value_sp32): Likewise. 10663 106642004-09-28 Ben Elliston <bje@au.ibm.com> 10665 Steven Bosscher <stevenb@suse.de> 10666 Andrew Pinski <pinskia@physics.uc.edu> 10667 10668 Merge from edge-vector-branch: 10669 * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge). 10670 (struct edge_def): Remove pred_next, succ_next members. 10671 (struct basic_block_def): Remove pred, succ members. Add preds 10672 and succs members of type VEC(edge). 10673 (FALLTHRU_EDGE): Redefine using EDGE_SUCC. 10674 (BRANCH_EDGE): Likewise. 10675 (EDGE_CRITICAL_P): Redefine using EDGE_COUNT. 10676 (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New. 10677 (edge_iterator): New. 10678 (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New. 10679 (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise. 10680 (FOR_EACH_EDGE): New. 10681 * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros 10682 where applicable. 10683 (rotate_loop): Likewise. 10684 (find_traces_1_route): Likewise. 10685 (bb_to_key): Likewise. 10686 (connect_traces): Likewise. 10687 (copy_bb_p): Likewise. 10688 (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise. 10689 (add_labels_and_missing_jumps): Likewise. 10690 (fix_up_fall_thru_edges): Likewise. 10691 (find_jump_block): Likewise. 10692 (fix_crossing_conditional_branches): Likewise. 10693 (fix_crossing_unconditional_branches): Likewise. 10694 (add_reg_crossing_jump_notes): Likewise. 10695 * bt-load.c (augment_live_range): Likewise. 10696 * cfg.c (clear_edges): Likewise. 10697 (unchecked_make_edge): Likewise. 10698 (cached_make_edge): Likewise. 10699 (make_single_succ_edge): Likewise. 10700 (remove_edge): Likewise. 10701 (redirect_edge_succ_nodup): Likewise. 10702 (check_bb_profile): Likewise. 10703 (dump_flow_info): Likewise. 10704 (alloc_aux_for_edges): Likewise. 10705 (clear_aux_for_edges): Likewise. 10706 (dump_cfg_bb_info): Likewise. 10707 * cfganal.c (forwarder_block_p): Likewise. 10708 (can_fallthru): Likewise. 10709 (could_fall_through): Likewise. 10710 (mark_dfs_back_edges): Likewise. 10711 (set_edge_can_fallthru_flag): Likewise. 10712 (find_unreachable_blocks): Likewise. 10713 (create_edge_list): Likewise. 10714 (verify_edge_list): Likewise. 10715 (add_noreturn_fake_exit_edges): Likewise. 10716 (connect_infinite_loops_to_exit): Likewise. 10717 (flow_reverse_top_sort_order_compute): Likewise. 10718 (flow_depth_first_order_compute): Likewise. 10719 (flow_preorder_transversal_compute): Likewise. 10720 (flow_dfs_compute_reverse_execute): Likewise. 10721 (dfs_enumerate_from): Likewise. 10722 (compute_dominance_frontiers_1): Likewise. 10723 * cfgbuild.c (make_edges): Likewise. 10724 (compute_outgoing_frequencies): Likewise. 10725 (find_many_sub_basic_blocks): Likewise. 10726 (find_sub_basic_blocks): Likewise. 10727 * cfgcleanup.c (try_simplify_condjump): Likewise. 10728 (thread_jump): Likewise. 10729 (try_forward_edges): Likewise. 10730 (merge_blocks_move): Likewise. 10731 (outgoing_edges_match): Likewise. 10732 (try_crossjump_to_edge): Likewise. 10733 (try_crossjump_bb): Likewise. 10734 (try_optimize_cfg): Likewise. 10735 (merge_seq_blocks): Likewise. 10736 * cfgexpand.c (expand_gimple_tailcall): Likewise. 10737 (expand_gimple_basic_block): Likewise. 10738 (construct_init_block): Likewise. 10739 (construct_exit_block): Likewise. 10740 * cfghooks.c (verify_flow_info): Likewise. 10741 (dump_bb): Likewise. 10742 (delete_basic_block): Likewise. 10743 (split_edge): Likewise. 10744 (merge_blocks): Likewise. 10745 (make_forwarder_block): Likewise. 10746 (tidy_fallthru_edges): Likewise. 10747 (can_duplicate_block_p): Likewise. 10748 (duplicate_block): Likewise. 10749 * cfglayout.c (fixup_reorder_chain): Likewise. 10750 (fixup_fallthru_exit_predecessor): Likewise. 10751 (can_copy_bbs_p): Likewise. 10752 (copy_bbs): Likewise. 10753 * cfgloop.c (flow_loops_cfg_dump): Likewise. 10754 (flow_loop_entry_edges_find): Likewise. 10755 (flow_loop_exit_edges_find): Likewise. 10756 (flow_loop_nodes_find): Likewise. 10757 (mark_single_exit_loops): Likewise. 10758 (flow_loop_pre_header_scan): Likewise. 10759 (flow_loop_pre_header_find): Likewise. 10760 (update_latch_info): Likewise. 10761 (canonicalize_loop_headers): Likewise. 10762 (flow_loops_find): Likewise. 10763 (get_loop_body_in_bfs_order): Likewise. 10764 (get_loop_exit_edges): Likewise. 10765 (num_loop_branches): Likewise. 10766 (verify_loop_structure): Likewise. 10767 (loop_latch_edge): Likewise. 10768 (loop_preheader_edge): Likewise. 10769 * cfgloopanal.c (mark_irreducible_loops): Likewise. 10770 (expected_loop_iterations): Likewise. 10771 * cfgloopmanip.c (remove_bbs): Likewise. 10772 (fix_bb_placement): Likewise. 10773 (fix_irreducible_loops): Likewise. 10774 (remove_path): Likewise. 10775 (scale_bbs_frequencies): Likewise. 10776 (loopify): Likewise. 10777 (unloop): Likewise. 10778 (fix_loop_placement): Likewise. 10779 (loop_delete_branch_edge): Likewise. 10780 (duplicate_loop_to_header_edge): Likewise. 10781 (mfb_keep_just): Likewise. 10782 (create_preheader): Likewise. 10783 (force_single_succ_latches): Likewise. 10784 (loop_split_edge_with): Likewise. 10785 (create_loop_notes): Likewise. 10786 * cfgrtl.c (rtl_split_block): Likewise. 10787 (rtl_merge_blocks): Likewise. 10788 (rtl_can_merge_blocks): Likewise. 10789 (try_redirect_by_replacing_jump): Likewise. 10790 (force_nonfallthru_and_redirect): Likewise. 10791 (rtl_tidy_fallthru_edge): Likewise. 10792 (commit_one_edge_insertion): Likewise. 10793 (commit_edge_insertions): Likewise. 10794 (commit_edge_insertions_watch_calls): Likewise. 10795 (rtl_verify_flow_info_1): Likewise. 10796 (rtl_verify_flow_info): Likewise. 10797 (purge_dead_edges): Likewise. 10798 (cfg_layout_redirect_edge_and_branch): Likewise. 10799 (cfg_layout_can_merge_blocks_p): Likewise. 10800 (rtl_flow_call_edges_add): Likewise. 10801 * cse.c (cse_cc_succs): Likewise. 10802 * df.c (hybrid_search): Likewise. 10803 * dominance.c (calc_dfs_tree_nonrec): Likewise. 10804 (calc_dfs_tree): Likewise. 10805 (calc_idoms): Likewise. 10806 (recount_dominator): Likewise. 10807 * domwalk.c (walk_dominator_tree): Likewise. 10808 * except.c (emit_to_new_bb_before): Likewise. 10809 (connect_post_landing_pads): Likewise. 10810 (sjlj_emit_function_enter): Likewise. 10811 (sjlj_emit_function_exit): Likewise. 10812 (finish_eh_generation): Likewise. 10813 * final.c (compute_alignments): Likewise. 10814 * flow.c (calculate_global_regs_live): Likewise. 10815 (initialize_uninitialized_subregs): Likewise. 10816 (init_propagate_block_info): Likewise. 10817 * function.c (thread_prologue_and_epilogue_insns): Likewise. 10818 * gcse.c (find_implicit_sets): Likewise. 10819 (bypass_block): Likewise. 10820 (bypass_conditional_jumps): Likewise. 10821 (compute_pre_data): Likewise. 10822 (insert_insn_end_bb): Likewise. 10823 (insert_store): Likewise. 10824 (remove_reachable_equiv_notes): Likewise. 10825 * global.c (global_conflicts): Likewise. 10826 (calculate_reg_pav): Likewise. 10827 * graph.c (print_rtl_graph_with_bb): Likewise. 10828 * ifcvt.c (mark_loop_exit_edges): Likewise. 10829 (merge_if_block): Likewise. 10830 (find_if_header): Likewise. 10831 (block_jumps_and_fallthru_p): Likewise. 10832 (find_if_block): Likewise. 10833 (find_cond_trap): Likewise. 10834 (block_has_only_trap): Likewise. 10835 (find_if_case1): Likewise. 10836 (find_if_case_2): Likewise. 10837 * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. 10838 (perfect_nestify): Likewise. 10839 * lcm.c (compute_antinout_edge): Likewise. 10840 (compute_laterin): Likewise. 10841 (compute_available): Likewise. 10842 (compute_nearerout): Likewise. 10843 * loop-doloop.c (doloop_modify): Likewise. 10844 * loop-init.c (loop_optimizer_init): Likewise. 10845 * loop-invariant.c (find_exits): Likewise. 10846 * loop-iv.c (simplify_using_initial_values): Likewise. 10847 (check_simple_exit): Likewise. 10848 (find_simple_exit): Likewise. 10849 * loop-unroll.c (peel_loop_completely): Likewise. 10850 (unroll_loop_constant_iterations): Likewise. 10851 (unroll_loop_runtime_iterations): Likewise. 10852 * loop-unswitch.c (may_unswitch_on): Likewise. 10853 (unswitch_loop): Likewise. 10854 * modulo-sched.c (generate_prolog_epilog): Likewise. 10855 (sms_schedule): Likewise. 10856 * postreload-gcse.c (eliminate_partially_redundant_load): 10857 Likewise. 10858 * predict.c (can_predict_insn_p): Likewise. 10859 (set_even_probabilities): Likewise. 10860 (combine_predictions_for_bb): Likewise. 10861 (predict_loops): Likewise. 10862 (estimate_probability): Likewise. 10863 (tree_predict_by_opcode): Likewise. 10864 (tree_estimate_probability): Likewise. 10865 (last_basic_block_p): Likewise. 10866 (propagate_freq): Likewise. 10867 (estimate_loops_at_level): Likewise. 10868 (estimate_bb_frequencies): Likewise. 10869 * profile.c (instrument_edges): Likewise. 10870 (get_exec_counts): Likewise. 10871 (compute_branch_probabilities): Likewise. 10872 (branch_prob): Likewise. 10873 * ra-build.c (live_in): Likewise. 10874 * ra-rewrite.c (rewrite_program2): Likewise. 10875 * ra.c (reg_alloc): Likewise. 10876 * reg-stack.c (reg_to_stack): Likewise. 10877 (convert_regs_entry): Likewise. 10878 (compensate_edge): Likewise. 10879 (convert_regs_1): Likewise, 10880 (convert_regs_2): Likewise. 10881 (convert_regs): Likewise. 10882 * regrename.c (copyprop_hardreg_forward): Likewise. 10883 * reload1.c (fixup_abnormal_edges): Likewise. 10884 * sbitmap.c (sbitmap_intersection_of_succs): Likewise. 10885 (sbitmap_insersection_of_preds): Likewise. 10886 (sbitmap_union_of_succs): Likewise. 10887 (sbitmap_union_of_preds): Likewise. 10888 * sched-ebb.c (compute_jump_reg_dependencies): Likewise. 10889 (fix_basic_block_boundaries): Likewise. 10890 (sched_ebbs): Likewise. 10891 * sched-rgn.c (build_control_flow): Likewise. 10892 (find_rgns): Likewise. 10893 * tracer.c (find_best_successor): Likewise. 10894 (find_best_predecessor): Likewise. 10895 (tail_duplicate): Likewise. 10896 * tree-cfg.c (make_edges): Likewise. 10897 (make_ctrl_stmt_edges): Likewise. 10898 (make_goto_expr_edges): Likewise. 10899 (tree_can_merge_blocks_p): Likewise. 10900 (tree_merge_blocks): Likewise. 10901 (cfg_remove_useless_stmts_bb): Likewise. 10902 (remove_phi_nodes_and_edges_for_unreachable_block): Likewise. 10903 (tree_block_forwards_to): Likewise. 10904 (cleanup_control_expr_graph): Likewise. 10905 (find_taken_edge): Likewise. 10906 (dump_cfg_stats): Likewise. 10907 (tree_cfg2vcg): Likewise. 10908 (disband_implicit_edges): Likewise. 10909 (tree_find_edge_insert_loc): Likewise. 10910 (bsi_commit_edge_inserts): Likewise. 10911 (tree_split_edge): Likewise. 10912 (tree_verify_flow_info): Likewise. 10913 (tree_make_forwarder_block): Likewise. 10914 (tree_forwarder_block_p): Likewise. 10915 (thread_jumps): Likewise. 10916 (tree_try_redirect_by_replacing_jump): Likewise. 10917 (tree_split_block): Likewise. 10918 (add_phi_args_after_copy_bb): Likewise. 10919 (rewrite_to_new_ssa_names_bb): Likewise. 10920 (dump_function_to_file): Likewise. 10921 (print_pred_bbs): Likewise. 10922 (print_loop): Likewise. 10923 (tree_flow_call_edges_add): Likewise. 10924 (split_critical_edges): Likewise. 10925 (execute_warn_function_return): Likewise. 10926 (extract_true_false_edges_from_block): Likewise. 10927 * tree-if-conv.c (tree_if_conversion): Likewise. 10928 (if_convertable_bb_p): Likewise. 10929 (find_phi_replacement_condition): Likewise. 10930 (combine_blocks): Likewise. 10931 * tree-into-ssa.c (compute_global_livein): Likewise. 10932 (ssa_mark_phi_uses): Likewise. 10933 (ssa_rewrite_initialize_block): Likewise. 10934 (rewrite_add_phi_arguments): Likewise. 10935 (ssa_rewrite_phi_arguments): Likewise. 10936 (insert_phi_nodes_for): Likewise. 10937 (rewrite_into_ssa): Likewise. 10938 (rewrite_ssa_into_ssa): Likewise. 10939 * tree-mudflap.c (mf_build_check_statement_for): Likewise. 10940 * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise. 10941 (rewrite_trees): Likewise. 10942 * tree-pretty-print.c (dump_bb_header): Likewise. 10943 (dump_implicit_edges): Likewise. 10944 * tree-sra.c (insert_edge_copies): Likewise. 10945 (find_obviously_necessary_stmts): Likewise. 10946 (remove_data_stmt): Likewise. 10947 * tree-ssa-dom.c (thread_across_edge): Likewise. 10948 (dom_opt_finalize_block): Likewise. 10949 (single_incoming_edge_ignoring_loop_edges): Likewise. 10950 (record_equivalences_from_incoming_edges): Likewise. 10951 (cprop_into_successor_phis): Likewise. 10952 * tree-ssa-live.c (live_worklist): Likewise. 10953 (calculate_live_on_entry): Likewise. 10954 (calculate_live_on_exit): Likewise. 10955 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. 10956 (copy_loop_headers): Likewise. 10957 * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. 10958 (fill_always_executed_in): Likewise. 10959 * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. 10960 * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise. 10961 (compute_phi_arg_on_exit): Likewise. 10962 * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise. 10963 (get_loops_exit): Likewise. 10964 (split_loop_exit_edge): Likewise. 10965 (ip_normal_pos): Likewise. 10966 * tree-ssa-loop-niter.c (simplify_using_initial_conditions): 10967 Likewise. 10968 * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise. 10969 (replace_phi_with_stmt): Likewise. 10970 (value_replacement): Likewise. 10971 * tree-ssa-pre.c (compute_antic_aux): Likewise. 10972 (insert_aux): Likewise. 10973 (init_pre): Likewise. 10974 * tree-ssa-propagate.c (simulate_stmt): Likewise. 10975 (simulate_block): Likewise. 10976 (ssa_prop_init): Likewise. 10977 * tree-ssa-threadupdate.c (thread_block): Likewise. 10978 (create_block_for_threading): Likewise. 10979 (remove_last_stmt_and_useless_edges): Likewise. 10980 * tree-ssa.c (verify_phi_args): Likewise. 10981 (verify_ssa): Likewise. 10982 * tree_tailcall.c (independent_of_stmt_p): Likewise. 10983 (find_tail_calls): Likewise. 10984 (eliminate_tail_call): Likewise. 10985 (tree_optimize_tail_calls_1): Likewise. 10986 * tree-vectorizer.c (vect_transform_loop): Likewise. 10987 * var-tracking.c (prologue_stack_adjust): Likewise. 10988 (vt_stack_adjustments): Likewise. 10989 (vt_find_locations): Likewise. 10990 * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. 10991 * config/i386/i386.c (ix86_pad_returns): Likewise. 10992 * config/ia64/ia64.c (ia64_expand_prologue): Likewise. 10993 * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. 10994 109952004-09-28 Eric Botcazou <ebotcazou@libertysurf.fr> 10996 10997 PR target/16532 10998 * config/sparc/sparc.c (struct machine_function): New field 10999 'leaf_function_p' and 'prologue_data_valid_p'. 11000 (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro 11001 to conveniently access the above fields. 11002 (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete. 11003 (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead 11004 of the generic flavor 'current_function_uses_only_leaf_regs'. 11005 (eligible_for_sibcall_delay): Likewise. 11006 (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set 11007 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'. 11008 (sparc_asm_function_prologue): Add sanity check for the assumption 11009 made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'. 11010 (sparc_can_use_return_insn_p): New function. 11011 (sparc_expand_epilogue): Use 'sparc_leaf_function_p'. 11012 (output_restore): Likewise. 11013 (output_sibcall): Likewise. 11014 (sparc_output_mi_thunk): Likewise. 11015 * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare. 11016 * config/sparc/sparc.md (return): New expander. 11017 11018 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak. 11019 110202004-09-27 Mark Mitchell <mark@codesourcery.com> 11021 11022 PR c++/17642 11023 * stor-layout.c (layout_decl): Use fold_convert, not convert. 11024 (bit_from_pos): Likewise. 11025 (byte_from_pos): Likewise. 11026 (pos_from_bit): Likewise. 11027 (normalize_offset): Likewise. 11028 (place_field): Likewise. 11029 (finalize_type_size): Likewise. 11030 (layout_type): Likewise. 11031 * tree.c (build_index_type): Likewise. 11032 110332004-09-27 Devang Patel <dpatel@apple.com> 11034 11035 * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR. 11036 * genopinit.c (optabs): New entry for vcond_gen_code and 11037 vcondu_gen_code. 11038 * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs. 11039 (get_rtx_code): New function. 11040 (vector_compare_rtx): New function. 11041 (init_optabs): Initialize vcond_gen_code and vcondu_gen_code. 11042 (expand_vec_cond_expr_p): New function. 11043 (expand_vec_cond_expr): New function. 11044 (get_vcond_icode): New function. 11045 * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs. 11046 (vcond_gen_code, vcondu_gen_code): Same. 11047 110482004-09-27 Kelley Cook <kcook@gcc.gnu.org> 11049 11050 * Makefile.in (STAGESTUFF): Split into ... 11051 (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these. 11052 (mostlyclean): Update. 11053 (stage1-start, stage2-start, stage3-start, stage4-start, 11054 stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF. 11055 Move the STAGEMOVESTUFF. 11056 110572004-09-27 Eric Botcazou <ebotcazou@libertysurf.fr> 11058 11059 * system.h (getpagesize): Return 'int' instead of 'long'. 11060 110612004-09-27 Michael Matz <matz@suse.de> 11062 11063 PR bootstrap/17698 11064 PR bootstrap/17702 11065 * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init, 11066 bmp_iter_and_init): Shift by bit_in_word. 11067 110682004-09-27 Kelley Cook <kcook@gcc.gnu.org> 11069 11070 * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4. 11071 * configure.ac: Don't sinclude it here. 11072 * configure: Regenerate. 11073 110742004-09-27 Dorit Naishlos <dorit@il.ibm.com> 11075 11076 * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand): 11077 Handle AND pattern 11078 110792004-09-27 Joseph S. Myers <jsm@polyomino.org.uk> 11080 11081 PR c/13804 11082 * c-typeck.c (build_component_ref): Name type involved in 11083 diagnostic for structure or union without a member of the given 11084 name. 11085 110862004-09-27 DJ Delorie <dj@redhat.com> 11087 11088 * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common): 11089 .comm alignment is bytes, not bits. 11090 110912004-09-27 Devang Patel <dpatel@apple.com> 11092 11093 * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR. 11094 (print_call_name): Do not print VEC_COND_EXPR. 11095 110962004-09-27 Devang Patel <dpatel@apple.com> 11097 11098 * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR. 11099 111002004-09-27 Jan Hubicka <jh@suse.cz> 11101 11102 * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5. 11103 111042004-09-27 Kazu Hirata <kazu@cs.umass.edu> 11105 11106 * bitmap.h: Fix a comment typo. 11107 111082004-09-27 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> 11109 11110 * libgcc2.c (getpagesize): Change type of return value to int. 11111 111122004-09-26 Matt Austern <austern@apple.com> 11113 11114 * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're 11115 using mmap. 11116 111172004-09-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 11118 11119 * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP, 11120 EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style. 11121 (bitmap_iterator): New type. 11122 (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init, 11123 bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1, 11124 bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1, 11125 bmp_iter_and_init, bmp_iter_and_next): New functions. 11126 * basic-block.h (EXECUTE_IF_SET_IN_REG_SET, 11127 EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to 11128 use iterator-style EXECUTE_IF_IN_BITMAP macros. 11129 * bitmap.c (bitmap_print): Ditto. 11130 * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range, 11131 btr_def_live_range): Ditto. 11132 * cfganal.c (compute_dominance_frontiers_1) Ditto. 11133 * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics): 11134 Ditto. 11135 * ddg.c (build_inter_loop_deps): Ditto. 11136 * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update): 11137 Ditto. 11138 * except.c (remove_eh_handler): Ditto. 11139 * flow.c (reg_set_to_hard_reg_set): Ditto. 11140 * gcse.c (clear_modify_mem_tables): Ditto. 11141 * global.c (build_insn_chain): Ditto. 11142 * ifcvt.c (dead_or_predicable): Ditto. 11143 * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg): 11144 Ditto. 11145 * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto. 11146 * ra-rewrite.c (reloads_to_loads, rewrite_program2, 11147 detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto. 11148 * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region, 11149 tree_purge_all_dead_eh_edges): Ditto. 11150 * tree-into-ssa.c (compute_global_livein, insert_phi_nodes, 11151 insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags, 11152 rewrite_ssa_into_ssa): Ditto. 11153 * tree-outof-ssa.c (find_replaceable_exprs): Ditto. 11154 * tree-sra.c (scan_function, decide_instantiations, scalarize_parms): 11155 Ditto. 11156 * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape, 11157 compute_flow_sensitive_aliasing, maybe_create_global_var, 11158 dump_points_to_info_for): Ditto. 11159 * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto. 11160 * tree-ssa-dse.c (dse_finalize_block): Ditto. 11161 * tree-ssa-live.c (live_worklist, calculate_live_on_entry, 11162 calculate_live_on_exit, build_tree_conflict_graph, dump_live_info): 11163 Ditto. 11164 * tree-ssa-loop-ivopts.c (find_induction_variables, 11165 find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map, 11166 determine_use_iv_costs, determine_set_costs, find_best_candidate, 11167 set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data): 11168 Ditto. 11169 * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto. 11170 * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, 11171 add_call_read_ops): Ditto. 11172 * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto. 11173 111742004-09-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 11175 11176 * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT, 11177 UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons. 11178 111792004-09-26 Ulrich Weigand <uweigand@de.ibm.com> 11180 11181 * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to 11182 reflect size of memory regions being compared. 11183 111842004-09-26 Ulrich Weigand <uweigand@de.ibm.com> 11185 11186 * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR 11187 expressions. Always clear MEM_SIZE and alias set. 11188 111892004-09-26 Roger Sayle <roger@eyesopen.com> 11190 Giovanni Bajo <giovannibajo@gcc.gnu.org> 11191 11192 PR middle-end/17112 11193 * stor-layout.c (compute_record_mode): For records with a single 11194 field, only use the field's mode if its size matches what we'd 11195 have choosen for the record ourselves. This forces the use of 11196 BLKmode for packed records that don't completely fill a mode. 11197 111982004-09-26 Roger Sayle <roger@eyesopen.com> 11199 11200 PR middle-end/17151 11201 * combine.c (force_to_mode): Remove dubious early return test that 11202 inhibits further optimization. 11203 112042004-09-26 Kazu Hirata <kazu@cs.umass.edu> 11205 11206 * profile.c: Fix a comment typo. 11207 112082004-09-26 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 11209 11210 PR bootstrap/17591 11211 * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs 11212 with varying offset. 11213 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function. 11214 (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for 11215 ARRAY_REFS. 11216 (expr_invariant_in_loop_p): New function. 11217 (idx_find_step): Handle step and lower bound for ARRAY_REFs. Handle 11218 component_ref_field_offset for COMPONENT_REFs. Do not allow 11219 ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs. 11220 (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and 11221 MISALIGNED_INDIRECT_REFs. 11222 (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs. 11223 (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and 11224 MISALIGNED_INDIRECT_REFs. 11225 112262004-09-26 Joseph S. Myers <jsm@polyomino.org.uk> 11227 11228 PR c/11459 11229 * gcc.c (cpp_options, cc1_options): Preserve relative order of 11230 -std and -ansi options. 11231 112322004-09-26 Jan Hubicka <jh@suse.cz> 11233 11234 * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die 11235 for nested functions whose proper parent has not been output. 11236 11237 * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes 11238 when re-constructing profile previously invalidated by loop. 11239 112402004-09-25 Dale Johannesen <dalej@apple.com> 11241 11242 * tree-gimple.c: Move GIMPLE definition... 11243 * doc/tree-ssa.texi: here. 11244 112452004-09-25 Kazu Hirata <kazu@cs.umass.edu> 11246 11247 * tree-vectorizer.c: Fix a comment typo. 11248 112492004-09-25 Kazu Hirata <kazu@cs.umass.edu> 11250 11251 * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c, 11252 gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h, 11253 lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c, 11254 tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting. 11255 112562004-09-25 Kazu Hirata <kazu@cs.umass.edu> 11257 11258 * tree-ssa-loop-unswitch.c: Fix a comment typo. 11259 112602004-09-25 Kazu Hirata <kazu@cs.umass.edu> 11261 11262 * doc/passes.texi: Fix a typo. 11263 112642004-09-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 11265 11266 * tree-optimize.c (init_tree_optimization_passes): Add 11267 pass_record_bounds. 11268 * tree-pass.h (pass_record_bounds): Declare. 11269 * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds): 11270 New pass. 11271 112722004-09-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 11273 11274 PR tree-optimization/17474 11275 * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine 11276 offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0. 11277 112782004-09-25 Jan Hubicka <jh@suse.cz> 11279 11280 * predict.c (counts_to_freqs): Make global. 11281 * predict.h (counts_to_freqa): Declare. 11282 * profile.c (compute_branch_probabilities): Compute frequencies 11283 * tree-profile.c (do_tree_profiling): Refine conditional on when 11284 tree profiling pass is needed. 11285 11286 * passes.c (rest_of_handle_cfg): Disable const/pure function 11287 detection when doing tree based profiling. 11288 11289 * tree-inline.c (expand_call_inline): Fix incorrectly reversed 11290 conditional. 11291 112922004-09-25 Richard Sandiford <rsandifo@redhat.com> 11293 11294 * config/mips/mips.h (struct mips_args): Clarify comments. 11295 * config/mips/mips.c (struct mips_arg_info): Likewise. 11296 (mips_arg_info): Don't allow fpr_p to affect the register or 11297 stack alignment. Remove o64 silliness. 11298 (function_arg): Deal with the o32 float,float case specially. 11299 113002004-09-25 Richard Sandiford <rsandifo@redhat.com> 11301 11302 * config/mips/mips.md (loadx, storex): Define for V2SF. 11303 113042004-09-25 Ulrich Weigand <uweigand@de.ibm.com> 11305 11306 * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype. 11307 * config/s390/s390.c (s390_back_chain_rtx): New function. 11308 * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx. 11309 Call anti_adjust_stack. 11310 ("restore_stack_block"): Use s390_back_chain_rtx. Enable pattern 11311 only if compiling with back chain. 11312 ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore 11313 back chain only if back chain enabled. Use s390_back_chain_rtx. 11314 113152004-09-25 Joseph S. Myers <jsm@polyomino.org.uk> 11316 11317 * doc/trouble.texi: Remove obsolete information. Update 11318 information on how to regenerate fixincluded headers. 11319 113202004-09-25 Joseph S. Myers <jsm@polyomino.org.uk> 11321 11322 PR c/12951 11323 * doc/invoke.texi: Document that 11324 -Wno-error-implicit-function-declaration is not accepted. 11325 113262004-09-24 Richard Henderson <rth@redhat.com> 11327 11328 * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New. 11329 * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend 11330 on TARGET_MAX. 11331 (alpha_expand_mov): Allow unaligned vectors. 11332 (alpha_expand_unaligned_store): Use CONST0_RTX. 11333 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. 11334 113352004-09-24 Jeff Law <law@redhat.com> 11336 11337 * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict 11338 aliasing rules. 11339 (simplify_cond_and_lookup_avail_expr): Likewise. 11340 113412004-09-24 Joseph S. Myers <jsm@polyomino.org.uk> 11342 11343 PR c/12802 11344 * doc/extend.texi (Unnamed Fields): Remove "." from end of long 11345 title. Document interaction with -fms-extensions. 11346 * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields 11347 section. 11348 113492004-09-24 Joseph S. Myers <jsm@polyomino.org.uk> 11350 11351 PR c/12713 11352 * doc/extend.texi: Document interaction of attribute noreturn and 11353 longjmp. 11354 113552004-09-24 Richard Henderson <rth@redhat.com> 11356 11357 PR rtl-opt/17503 11358 * regclass.c (subregs_of_mode): Turn into an htab. Make static. 11359 (som_hash, som_eq): New. 11360 (init_subregs_of_mode, record_subregs_of_mode): New. 11361 (cannot_change_mode_set_regs): Rewrite for htab implementation. 11362 (invalid_mode_change_p): Likewise. 11363 * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode. 11364 * flow.c (mark_used_regs): Likewise. 11365 (life_analysis): Use init_subregs_of_mode. 11366 * regs.h (subregs_of_mode): Remove. 11367 * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare. 11368 113692004-09-24 Andrew Pinski <pinskia@physics.uc.edu> 11370 11371 * tree-ssa-phiopt.c (conditional_replacement): Use the correct 11372 type with the copy of the conditional. 11373 113742004-09-24 Andrew Pinski <pinskia@physics.uc.edu> 11375 11376 PR tree-opt/16954 11377 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): 11378 Prevent renaming if the aliasing sets of the type which the 11379 pointer points to are different. 11380 113812004-09-24 Joseph S. Myers <jsm@polyomino.org.uk> 11382 11383 PR c/17188 11384 * c-decl.c (diagnose_mismatched_decls): Check for duplicate 11385 declarations of enumerators. 11386 (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check 11387 for redefinition. Check for nested redefinition. 11388 (finish_struct): Don't check for nested redefinition. 11389 (start_enum): Check for nested redefinition. 11390 113912004-09-24 Devang Patel <dpatel@apple.com> 11392 11393 * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable 11394 only when necesssary. 11395 (combine_blocks): Combine loop header and exit block. 11396 113972004-09-24 Paolo Bonzini <bonzini@gnu.org> 11398 11399 * hooks.c (hook_tree_tree_bool_null): New. 11400 * hooks.h (hook_tree_tree_bool_null): Declare it. 11401 * target-def.c (TARGET_FOLD_BUILTIN): Point to it. 11402 * targhooks.c (default_fold_builtin): Remove. 11403 * targhooks.h (default_fold_builtin): Remove. 11404 114052004-09-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 11406 11407 PR rtl-optimization/17625 11408 * loop-doloop.c (doloop_modify): Unshare rtl before emitting it. 11409 114102004-09-24 Andrew Pinski <pinskia@physics.uc.edu> 11411 11412 PR tree-opt/17624 11413 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): 11414 Reject if any of the operands occur in an abnormal PHI. 11415 114162004-09-24 Andreas Schwab <schwab@suse.de> 11417 11418 * tree-ssa-dom.c (record_range): Fix violation of strict aliasing 11419 rules. 11420 114212004-09-24 Eric Botcazou <ebotcazou@libertysurf.fr> 11422 11423 * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h 11424 if the GNU assembler is used. 11425 (sparc-*-solaris2*): Likewise. 11426 * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero. 11427 (dbxout_function_end): Protect N_ENSYM with it. 11428 (dbxout_begin_prologue): Protect N_BNSYM with it. 11429 * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it. 11430 * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1. 11431 * config/sparc/sol2-gas.h: New file. 11432 114332004-09-23 H.J. Lu <hongjiu.lu@intel.com> 11434 11435 PR bootstrap/17369 11436 * Makefile.in (@set_gcc_lib_path@): Added. 11437 11438 * configure.ac: Include ../config/gcc-lib-path.m4. Use 11439 TL_AC_GNU_MAKE_GCC_LIB_PATH. 11440 * configure: Regenerated. 11441 114422004-09-24 Joseph S. Myers <jsm@polyomino.org.uk> 11443 11444 PR c/6980 11445 * c-typeck.c (build_c_cast): Improve wording of 11446 -Wbad-function-cast diagnostic. 11447 114482004-09-23 Hans-Peter Nilsson <hp@axis.com> 11449 11450 PR target/17626 11451 * config/cris/cris.md (moverside, movemside): Rename variable 11452 "reg" to "otherop". To generate canonical RTX, check that otherop 11453 isn't constant instead of checking that operand 1 is a register. 11454 114552004-09-23 Jakub Jelinek <jakub@redhat.com> 11456 11457 * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR. 11458 114592004-09-23 Diego Novillo <dnovillo@redhat.com> 11460 Jakub Jelinek <jakub@redhat.com> 11461 11462 * tree-flow.h (find_new_referenced_vars): Add prototype. 11463 * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars): 11464 Move to... 11465 * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars): 11466 ... here. 11467 (mark_new_vars_to_rename): Walk through all operands. 11468 * tree-ssa-ccp.c (convert_to_gimple_builtin): New function. 11469 (execute_fold_all_builtins): Use it. 11470 (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish. 11471 114722004-09-23 P.J. Darcy <darcypj@us.ibm.com> 11473 11474 * gthr-tpf.h: New file. 11475 * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'. 11476 * gthr.h: Use gthr-tpf.h on TPF OS. 11477 114782004-09-23 Jeff Law <law@redhat.com> 11479 11480 * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather 11481 than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV. 11482 (substitute_and_fold): Likewise. 11483 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything 11484 except invariants from SSA_NAME_VALUE. 11485 (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV 11486 and SET_SSA_NAME_EQUIV. 11487 (restore_vars_to_original_value, record_const_or_copy): Likewise. 11488 (record_equivalences_from_phis, record_const_or_copy_1): Likewise. 11489 (record_equality, cprop_into_successor_phis): Likewise. 11490 (record_equivalences_from_stmt, cprop_operand): Likewise. 11491 (lookup_avail_expr): Likewise. 11492 * tree-ssa-pre.c (fini_pre): Remove everything except invariants 11493 from SSA_NAME_VALUE. 11494 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill. 11495 (struct tree_ssa_name): Kill EQUIV field. Remove GGC skip 11496 annotation from the VALUE_HANDLE field. 11497 114982004-09-21 Fariborz Jahanian <fjahanian@apple.com> 11499 11500 PR c++/13989 11501 PR c++/9844 11502 * tree.c (reconstruct_complex_type): Remove extra "this". 11503 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): 11504 Add V4SFmode to case statement. 11505 115062004-09-23 Joseph S. Myers <jsm@polyomino.org.uk> 11507 11508 PR c/16833 11509 * doc/extend.texi, doc/invoke.texi: Document interaction of 11510 -fno-builtin with format checks. Note that built-in functions 11511 have effects beyond generating code that avoids calls to those 11512 functions. 11513 115142004-09-23 Frank Ch. Eigler <fche@redhat.com> 11515 11516 PR tree-optimization/17533 11517 * dominance.c (verify_dominators): Tolerate even more incorrect 11518 dominance data during error message printing. 11519 * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks 11520 and edges more correctly. 11521 115222004-09-23 Dorit Naishlos <dorit@il.ibm.com> 11523 11524 * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): 11525 New tree-codes. 11526 * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and 11527 MISALIGNED_INDIRECT_REF. 11528 * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise. 11529 * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos): 11530 Likewise. 11531 * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base) 11532 (find_interesting_uses_address): Likewise. 11533 * fold-const.c (non_lvalue, operand_equal_p): Likewise. 11534 (build_fold_addr_expr_with_type): Likewise. 11535 * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise. 11536 * print-rtl.c (print_mem_expr): Likewise. 11537 * tree-dump.c (dequeue_and_dump): Likewise. 11538 * tree-eh.c (tree_could_trap_p): Likewise. 11539 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. 11540 * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise. 11541 * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by): 11542 Likewise. 11543 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 11544 * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. 11545 * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise. 11546 * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise. 11547 (add_address_candidates, rewrite_address_base): Likewise. 11548 * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands): 11549 Likewise. 11550 * tree.c (staticp, build1_stat): Likewise. 11551 11552 * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes. 11553 * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR. 11554 * tree-ssa-operands.c (get_expr_operands): Likewise. 11555 * expr.c (expand_expr_real_1): Likewise. 11556 11557 * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New 11558 optabs. 11559 (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values 11560 for the new optabs. 11561 (expand_ternary_op): New function. 11562 * genopinit.c (optabs): Handle the new optabs. 11563 * optabs.c (optab_for_tree_code): Add cases for the new tree-codes. 11564 (init_optabs): Initialize vec_realign_load_optab. 11565 (expand_ternary_op): New functions. 11566 11567 * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target. 11568 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize. 11569 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise. 11570 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise. 11571 * target.h (struct vectorize): New member for struct gcc_target. 11572 (misaligned_mem_ok): New member for targetm.vectorize. 11573 (builtin_mask_for_load): Likewise. 11574 (builtin_mask_for_store): Likewise. 11575 * targethooks.c (default_vect_misaligned_mem_ok): New function. 11576 * targethooks.h (default_vect_misaligned_mem_ok): New function. 11577 11578 * config/rs6000/altivec.md (build_vector_mask_for_load): New 11579 define_expand. 11580 (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi) 11581 (vec_realign_load_v16qi): New define_insn. 11582 * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD): 11583 (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins. 11584 * config/rs6000/rs6000.c (altivec_builtin_mask_for_load): 11585 (altivec_builtin_mask_for_store): New variables. 11586 (rs6000_builtin_mask_for_load): New function. Implements 11587 TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD. 11588 (rs6000_builtin_mask_for_store): New function. Implements 11589 TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE. 11590 (rs6000_expand_builtin): Expand the target builtins 11591 builtin_mask_for_load and builtin_mask_for_store. 11592 (altivec_init_builtins): Initialize the new target builtins. 11593 * config/i386/i386.c (ix86_misaligned_mem_ok): New function. 11594 Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK. 11595 11596 * tree-vectorizer.c (vect_create_data_ref): Renamed to 11597 vect_create_data_ref_ptr. Returns a pointer instead of an array-ref. 11598 (vect_create_addr_base_for_vector_ref): Additional argument (offset). 11599 (vectorizable_store): Call vect_create_data_ref_ptr with additional 11600 arguments, and create an indirect_ref with its return value data_ref. 11601 Check aligned_access_p. 11602 (vectorizable_load): Handle misaligned loads, using software-pipelined 11603 scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if 11604 vec_realign_load_optab is supported, or using a scheme without 11605 software-pipelining with MISALIGNED_INDIRECT_REF if the target hook 11606 misaligned_mem_ok is supported. 11607 11608 (vect_finish_stmt_generation): Typo. 11609 (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info. 11610 (vect_analyze_data_refs_alignment): Don't fail vectorization in the 11611 presence of misaligned loads. 11612 (vect_analyze_data_ref_access): Add check for constant init. 11613 (vect_get_symbl_and_dr): Remove duplicate line. 11614 * tree-vectorizer.h (DR_MISALIGNMENT): Add comment. 11615 116162004-09-23 Kazu Hirata <kazu@cs.umass.edu> 11617 11618 * builtins.c: Fix a comment typo. 11619 116202004-09-23 Jan Hubicka <jh@suse.cz> 11621 11622 * profile.c (branch_prob): Do not verify flow info in the middle of the 11623 pass. 11624 116252004-09-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 11626 11627 * cfgloop.h (update_single_exits_after_duplication): Declare. 11628 (loopify, split_loop_bb): Declaration changed. 11629 * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead 11630 of rtx. 11631 (loopify): Added redirect_all_edges argument. 11632 (update_single_exits_after_duplication): Export. 11633 * loop-unswitch.c (unswitch_loop): Changed due to loopify change. 11634 * tree-flow.h (tree_duplicate_loop_to_header_edge, 11635 tree_ssa_loop_version): Declare. 11636 * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables, 11637 set_phi_def_stmts, tree_duplicate_loop_to_header_edge, 11638 lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge, 11639 lv_update_pending_stmts, tree_ssa_loop_version): New functions. 11640 11641 * tree-ssa-loop-unswitch.c: New file. 11642 * Makefile.in (tree-ssa-loop-unswitch.o): Add. 11643 * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar. 11644 * tree-flow.h (tree_ssa_unswitch_loops): Declare. 11645 * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch. 11646 * tree-pass.h (pass_unswitch): Declare. 11647 * tree-ssa-loop.c (tree_ssa_loop_unswitch, 11648 gate_tree_ssa_loop_unswitch, pass_unswitch): New pass. 11649 * doc/passes.texi: Documen tree level loop unswitching. 11650 116512004-09-23 Kazu Hirata <kazu@cs.umass.edu> 11652 11653 * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos. 11654 116552004-09-22 Eric Christopher <echristo@redhat.com> 11656 11657 * builtins.c (simplify_builtin_va_start): Remove. 11658 (simplify_builtin): Ditto. 11659 (fold_builtin_strchr): Ditto. 11660 (simplify_builtin_*): Rename remainders to fold_builtin_*. 11661 (expand_builtin): Fix up for above changes. 11662 (fold_builtin_1): Add new folders. Change for above. 11663 (expand_builtin_va_start): Call fold_builtin_next_arg. 11664 * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin. 11665 * tree.h: Remove prototype for simplify_builtin. 11666 116672004-09-23 Jan Hubicka <jh@suse.cz> 11668 11669 PR debug/17389 11670 * dwarf2out.c (dwarf2out_finish): Deal with nested functions 11671 of fully inlined functions. 11672 * tree-inline.c (inline_forbidden_p_1): Nested functions can be 11673 inlined. 11674 11675 * cfgexpand.c (add_reg_br_prob_note): New function. 11676 (expand_gimple_cond_expr): Use it. 11677 (tree_expand_cfg): No longer kill the profile. 11678 * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency 11679 only if it is present. 11680 * passes.c (rest_of_handle_loop_optimize): Kill the profile. 11681 * predict.c (combine_predictions_for_insn): Set the probabilities 11682 based on REG_BR_PROB note if present. 11683 * predict.c (branch_prob): Profile is read only with 11684 flag_branch_probabilities. 11685 116862004-09-22 Kelley Cook <kcook@gcc.gnu.org> 11687 11688 * aclocal.m4: Add in gettext's m4 includes. 11689 (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove. 11690 * configure.ac: Add in check for iconv.h 11691 * configure: Regenerate. 11692 116932004-09-22 Kelley Cook <kcook@gcc.gnu.org> 11694 11695 * aclocal.m4: Update for rename of gettext-sister.m4. 11696 116972004-09-22 Daniel Berlin <dberlin@dberlin.org> 11698 11699 Fix PR tree-optimization/17587 11700 * tree-ssa-pre.c (fini_pre): Commit edge inserts here. 11701 (insert_aux): Instead of here. 11702 117032004-09-22 Diego Novillo <dnovillo@redhat.com> 11704 11705 PR tree-optimization/16721 11706 * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE. 11707 * tree-ssa-alias.c (create_memory_tag): Move setting of 11708 TREE_THIS_VOLATILE ... 11709 (get_tmt_for): ... here. 11710 117112004-09-22 Eric Botcazou <ebotcazou@libertysurf.fr> 11712 11713 * config/sparc/sparc.md (cmove splitter): Fix formatting. 11714 (conditional_trap expander): Reject inappropriate CCmodes. 11715 (conditional trap insn): Use V9 syntax if possible. 11716 117172004-09-22 Joseph S. Myers <jsm@polyomino.org.uk> 11718 11719 PR c/16566 11720 * c-typeck.c (build_component_ref): Don't special-case 11721 COMPOUND_EXPR. 11722 117232004-09-22 Frank Ch. Eigler <fche@redhat.com> 11724 11725 * dominance.c (verify_dominators): Don't SEGV if recount_dominator 11726 returns NULL. 11727 117282004-09-22 Kazu Hirata <kazu@cs.umass.edu> 11729 11730 * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR, 11731 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, 11732 TRUTH_XOR_EXPR): Mention the restriction on types. 11733 117342004-09-22 Matt Austern <austern@apple.com> 11735 11736 * config/darwin.c (darwin_make_decl_one_only): 11737 Allow coalesced symbol to appear in static archive's table of contents 11738 117392004-09-22 Kazu Hirata <kazu@cs.umass.edu> 11740 11741 PR tree-optimization/17512 11742 * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as 11743 special cases. 11744 117452004-09-22 David Edelsohn <edelsohn@gnu.org> 11746 11747 * dbxout.c (get_lang_number): Do not define if 11748 DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined. 11749 117502004-09-22 Ralf Corsepius <corsepiu@faw.uni-ulm.de> 11751 11752 PR target/15583 11753 * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add 11754 builtin_define ("__USE_INIT_FINI__"). 11755 117562004-09-22 P.J. Darcy <darcypj@us.ibm.com> 11757 11758 * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype. 11759 * config/s390/s390.c (s390_emit_tpf_eh_return): New function. 11760 * config/s390/s390.h (TARGET_TPF): New macro. 11761 * config/s390/s390.md ("eh_return"): New expander. 11762 * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than 11763 unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c. 11764 (LIB2ADDEHDEP): Remove unwind-dw2-fde.c. 11765 * config/s390/tpf.h (TARGET_TPF): Define to 1. 11766 (STACK_POINTER_OFFSET): Increase to 448. 11767 (TARGET_DEFAULT): Set -mtpf-trace on as default. 11768 (TPF_LOC_DIFF_OFFSET): New macro. 11769 (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute 11770 encoding. 11771 (__isPATrange): Add prototype. 11772 (MD_FALLBACK_FRAME_STATE_FOR): Define. 11773 * config/s390/tpf-eh.c: New file. 11774 117752004-09-22 Diego Novillo <dnovillo@redhat.com> 11776 11777 * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening 11778 operands in an integer comparison. 11779 * tree-cfg.c (find_taken_edge): Call fold() to determine 11780 whether the predicate is known. 11781 117822004-09-22 Kelley Cook <kcook@gcc.gnu.org> 11783 11784 * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND. 11785 * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O. 11786 Create build and doc directories along with the language directories. 11787 Don't create doc directory separately. 11788 * configure: Regenerate. 11789 * Makefile.in: Create all object and executables files built 11790 with the build compiler in a build/ directory. 11791 (genobjnames): Add missing build objects. 11792 (STAGESTUFF): Don't stage the gen* programs. 11793 (ggc-none.o): Define dependencies for the target compiler. 11794 (build-print-rtl.o): Rename to build/print-rtl.o. 11795 (build-errors.o): Rename to build/errors.o. 11796 (build-varray.o): Rename to build/varray.o. 11797 (maintainerclean): Delete the contents of the build directory. 11798 ($(genobjs): %.o): Explicitly use -o. 11799 (build/insn-conditions.o): Delete specfic rule to use generic rule. 11800 (build/gengtype-lex.o): Likewise. 11801 (build/gengtype-yacc.o): Likewise. 11802 (build/gcov-iov.o): Likewise. 11803 118042004-09-22 Nathan Sidwell <nathan@codesourcery.com> 11805 11806 * vec.h (VEC_space): Return true if there _is_ space. 11807 (VEC_reserve): Adjust. 11808 118092004-09-22 Richard Sandiford <rsandifo@redhat.com> 11810 11811 * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64, 11812 use FPRs for scalar, complex and vector types only. 11813 118142004-09-21 Jeff Law <law@redhat.com> 11815 11816 * tree-ssa-dom.c (opt_stats): Move so that it lives just after 11817 the opt_stats_d structure. 11818 (vrp_data): Change from a varray into a hash table. 11819 (vrp_hash_elt): New structure for elements in the vrp hash table. 11820 (vrp_hash, vrp_eq):New functions for hashing and testing equality 11821 in the vrp hash table. 11822 (tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize 11823 initialization slightly to make it easier to read. No longer need 11824 to grow/clear the varray. Instead empty and delete the hash table. 11825 (dom_opt_finalize_block): Update due to change of VRP_DATA from 11826 a varray to a hash table. 11827 (simplify_cond_and_loop_avail_expr, record_range): Similarly. 11828 11829 * tree-ssa-ccp.c (get_default_value): If we have a constant 11830 value recorded for an SSA_NAME, then use that constant as 11831 the initial lattice value. 11832 (substitute_and_fold): Transfer equivalences discovered into 11833 SSA_NAME_EQUIV. 11834 11835 * tree.h (SSA_NAME_EQUIV): Add comments. 11836 (SET_SSA_NAME_EQUIV): Similarly. 11837 118382004-09-21 David Edelsohn <edelsohn@gnu.org> 11839 11840 * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4. 11841 11842 * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used. 11843 118442004-09-21 Mark Mitchell <mark@codesourcery.com> 11845 11846 * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma. 11847 (finish_decl): Likewise. 11848 118492004-09-21 Devang Patel <dpatel@apple.com> 11850 11851 * tree.def (VEC_COND_EXPR): New tree node. 11852 * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR. 11853 118542004-09-21 Stan Shebs <shebs@apple.com> 11855 11856 * config/rs6000/darwin-tramp.asm: Add __ppc64__ case. 11857 * config/rs6000/darwin-world.asm: Likewise. 11858 118592004-09-21 Daniel Berlin <dberlin@dberlin.org> 11860 11861 * tree-ssa.c (verify_def): Use print_generic_stmt, 11862 not debug_generic_stmt. 11863 (verify_use): Ditto. 11864 (verify_phi_args): Ditto. 11865 (verify_ssa): Ditto. 11866 118672004-09-21 Paul Brook <paul@codesourcery.com> 11868 11869 * varasm.c (default_assemble_integer): Return false for values wider 11870 than the target word size. Works around GAS bug. 11871 118722004-09-21 Zack Weinberg <zack@codesourcery.com> 11873 11874 * reg-notes.def (REG_DEP_TRUE): New entry, place first so it 11875 gets value 0. 11876 * print-rtl.c (print_rtx): Print the name of a REG_NOTE even 11877 if it has value 0. 11878 118792004-09-21 Daniel Berlin <dberlin@dberlin.org> 11880 11881 * c-typeck.c (build_function_call): Give name of object 11882 we are attempting to call in error message. 11883 * c-objc-common.c (c_tree_printer): Call pp_expression, 11884 not return false, for 'E' case. 11885 118862004-09-21 Steven Bosscher <stevenb@suse.de> 11887 11888 PR rtl-optimization/17482 11889 * postreload-gcse.c (reg_avail_info, oprs_unchanged_p, 11890 load_killed_in_block_p): Clarify comments. 11891 (record_last_reg_set_info): Make static inline. 11892 (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove. 11893 (record_opr_changes): New function to replace the above. 11894 (compute_hash_table): Clarify comments. Use record_opr_changes. 11895 (reg_set_between_after_reload_p): Clean up. 11896 (reg_used_between_after_reload_p): Likewise. 11897 (eliminate_partially_redundant_load): Clarify comments. 11898 118992004-09-21 Eric Botcazou <ebotcazou@libertysurf.fr> 11900 11901 PR rtl-optimization/17266 11902 * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn. 11903 119042004-09-21 Uros Bizjak <uros@kss-loka.si> 11905 11906 PR rtl-optimization/14851 11907 * rtlanal.c (commutative_operand_precedence): Calculate 11908 precedence of stripped constant. 11909 119102004-09-20 Jeff Law <law@redhat.com> 11911 Jan Hubicka <jh@suse.cz> 11912 11913 * tree-ssanames.c (make_ssa_name): No longer need to clear, then 11914 initialize key elements here. 11915 (release_ssa_name): Zero the released SSA_NAME here. 11916 * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros. 11917 (struct tree_ssa_name): Add new "equiv" field. 11918 * tree-ssa-dom.c (const_and_copies): Kill the global varray. 11919 (tree_ssa_dominator_optimize): No longer allocate, resize or 11920 clear CONST_AND_COPIES. 11921 (get_value_for, set_value_for): Kill. 11922 (thread_across_edge): Get/set the equivalency using 11923 SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV. 11924 (restore_vars_to_original_value): Likewise. 11925 (record_equivalences_from_phis): Likewise. 11926 (record_dominating_conditions): Likewise. 11927 (record_const_or_copy, record_equality): Likewise. 11928 (lookup_avail_expr): Likewise. 11929 (record_equivalences_from_stmt, cprop_operand): Likewise. 11930 (cprop_into_successor_phis): No longer need to pass around 11931 CONST_AND_COPIES. Callers updated. Get equivalences via 11932 SSA_NAME_EQUIV. 11933 (cprop_into_phis): Likewise. 11934 119352004-09-20 Matt Austern <austern@apple.com> 11936 Zack Weinberg <zack@codesourcery.com> 11937 11938 * c-common.c (fix_string_type): Build the unqualified array 11939 type unconditionally, then use c_build_qualified_type to get 11940 the proper const-qualified variant, and set its 11941 TYPE_MAIN_VARIANT to refer to the unqualified type. 11942 * c-lex.c (c_lex_return_raw_string): New global. 11943 (c_lex_with_flags): Honor it. 11944 * c-pragma.h: Declare it. 11945 119462004-09-20 Daniel Berlin <dberlin@dberlin.org> 11947 11948 * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H). 11949 119502004-09-21 Jan Hubicka <jh@suse.cz> 11951 11952 PR middle-end/17126 11953 * tree-optimize.c (update_inlined_to_pointers): Fix the recursion. 11954 (tree_rest_of_compilation): Cleanup. 11955 119562004-09-20 Ulrich Weigand <uweigand@de.ibm.com> 11957 11958 * config/s390/s390.c (s390_select_rtx_section): Remove. 11959 (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine. 11960 119612004-09-20 Kaz Kojima <kkojima@gcc.gnu.org> 11962 11963 * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR 11964 note to pretend a direct save from the original register when an 11965 intermediate register is used for the save. 11966 119672004-09-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11968 11969 * tsystem.h (alloca): Provide a default definition. 11970 11971 Revert: 11972 2001-08-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 11973 * unwind-dw2.c: Call __builtin_alloca, not alloca. 11974 119752004-09-20 Andrew Pinski <pinskia@physics.uc.edu> 11976 11977 PR tree-opt/17558 11978 * tree-ssa-copy.c (may_propagate_copy): Only allow if the 11979 aliasing sets are the same rather than just conflicting. 11980 119812004-09-20 Jan Hubicka <jh@suse.cz> 11982 11983 PR middle-end/16460 11984 11985 * cgraph.c (cgraph_unnest_node): New function. 11986 (c_finalize): Rename to .... 11987 (c_warn_unused_result_recursivly): ... this one; do only the warning 11988 (finish_function): Finalize the toplevel function; do not lower nested tree. 11989 * cgraph.h (cgraph_unnest_node): Declare. 11990 * cgraphunit.c (decide_is_function_needed): Do not use cgraph 11991 nestedness datastructure. 11992 * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs. 11993 * reload1.c (set_label_offsets): Fix call of set_label_offsets. 11994 * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code. 11995 119962004-09-20 Richard Henderson <rth@redhat.com> 11997 11998 * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename 11999 from some_small_symbolic_operand_1; export. 12000 (some_small_symbolic_operand): Remove. 12001 * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove 12002 extra C check. 12003 * config/alpha/predicates.md (some_small_symbolic_operand): New. 12004 120052004-09-20 Jan Hubicka <jh@suse.cz> 12006 12007 * predict.c (return_prediction): New function. 12008 (apply_return_prediction): Likewise. 12009 (tree_bb_level_predictions): Likewise. 12010 (tree_estimate_probability): Add noreturn exit edges; call 12011 bb_level_predictions; fix logic of return heuristics. 12012 (predict_paths_leading_to): Rescuesce from old CVS version of 12013 process_note_prediction function. 12014 * predict.def (PRED_TREE_EARLY_RETURN): New predictor. 12015 120162004-09-20 Andreas Krebbel <krebbel1@de.ibm.com> 12017 12018 * config/s390/s390.c (s390_frame_info): Added alignment statement for 12019 floating point register area on stack. 12020 120212004-09-20 Jakub Jelinek <jakub@redhat.com> 12022 12023 * predict.c (expr_expected_value): Use *_CLASS_P macros. 12024 120252004-09-20 Daniel Berlin <dberlin@dberlin.org> 12026 12027 * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid 12028 generating useless garbage. 12029 120302004-09-20 Paolo Bonzini <bonzini@gnu.org> 12031 12032 * builtins.c (fold_builtin): Call the new omonymous 12033 target hook for machine-dependent built-ins. 12034 * target-def.h (TARGET_FOLD_BUILTIN): New. 12035 * target.h (struct gcc_target): Add the fold_builtin hook. 12036 * targhooks.c (default_fold_builtin): New. 12037 * targhooks.h (default_fold_builtin): Declare it. 12038 120392004-09-20 Kazu Hirata <kazu@cs.umass.edu> 12040 12041 * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix 12042 comment typos. 12043 120442004-09-20 Richard Sandiford <rsandifo@redhat.com> 12045 12046 PR target/17565 12047 * config/mips/mips.md (define_asm_attributes): Set can_delay to no. 12048 120492004-09-20 Jan Hubicka <jh@suse.cz> 12050 12051 * predict.c (estimate_probability): Remove unnecesary code. 12052 120532004-09-19 Ira Rosen <irar@il.ibm.com> 12054 12055 * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field. 12056 (STMT_VINFO_VECT_DR_BASE): Declare. 12057 (VECT_SMODULO): Declare. 12058 * tree-vectorizer.c (vect_compute_array_ref_alignment): New function. 12059 (vect_compute_array_base_alignment): New function. 12060 (vect_analyze_data_ref_access): Check array indices. Remove one 12061 dimensional arrays restriction. 12062 (vect_get_ptr_offset): New function. 12063 (vect_get_symbl_and_dr): New function. 12064 (vect_get_base_and_bit_offset): Support additional data refs. Renamed 12065 (former name vect_get_base_decl_and_bit_offset). 12066 (vect_create_index_for_array_ref): Removed. 12067 (vect_create_index_for_vector_ref): New function. 12068 (vect_create_addr_base_for_vector_ref): New function. 12069 (vect_create_data_ref): Handle additional data refs. Call 12070 vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref. 12071 (vect_compute_data_ref_alignment): Support the changes. Call 12072 vect_get_base_and_bit_offset. 12073 (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional 12074 data refs. Store vect_dr_base. 12075 (vect_analyze_data_ref_accesses): Support nonconstant init. 12076 (new_stmt_vec_info): Initialize vect_dr_base field. 12077 (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num. 12078 (get_vectype_for_scalar_type): Check for BLKmode. 12079 * tree-chrec.h (initial_condition_in_loop_num): Declare. 12080 * tree-chrec.c (initial_condition_in_loop_num): New function. 12081 (chrec_component_in_loop_num): New function. 12082 (evolution_part_in_loop_num): Call chrec_component_in_loop_num. 12083 * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns) 12084 to be pointer to varray_type. 12085 120862004-09-19 Jan Hubicka <jh@suse.cz> 12087 12088 * basic-block.h (update_bb_profile_after_threading): Declare. 12089 * cfg.c (update_bb_profile_after_threading): Break out from ... 12090 * cfgcleanup.c (try_forward_edges): ... here; use it. 12091 * tree-ssa-dom.c (thread_across_edge): Use it. 12092 * tree-ssa-threadupdate.c (create_block_for_threading): Zero out 12093 profile of the new BB. 12094 120952004-09-19 Daniel Berlin <dberlin@dberlin.org> 12096 12097 * tree-ssa-pre.c (insert_into_set): Don't put 12098 is_gimple_min_invariant values into the set. 12099 121002004-09-19 Andreas Jaeger <aj@suse.de> 12101 12102 * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix 12103 prototype. 12104 121052004-09-18 Kazu Hirata <kazu@cs.umass.edu> 12106 12107 * config/cris/cris.h: Preserve the original spelling in a 12108 quote. 12109 121102004-09-18 Jeff Law <law@redhat.com> 12111 12112 * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New 12113 global varrays to replace the block local varrays. 12114 (struct dom_walk_block_data): Remove, no longer used. 12115 (get_eq_expr_value): No longer need to pass around pointers to local 12116 varrays. Callers updated. Unused markers added to unused parameters. 12117 (record_range, record_equivalences_from_stmt): Likewise. 12118 (record_equivalences_from_incoming_edge): Likewise. 12119 (record_var_is_nonzero): Likewise. Update now that we have a 12120 single global varray of SSA_NAMEs that need restoring. 12121 (dom_opt_initialize_block_local_data): Kill, no longer used. 12122 (tree_ssa_dominator_optimize): Initialize new global varrays. 12123 Update callbacks in dominator walker structure. 12124 (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and 12125 VRP_VARIABLES_STACK. 12126 (restore_nonzero_vars_to_original_value): Update now that we have 12127 a single global varray of SSA_NAMEs that need restoring. 12128 (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK. 12129 Remove unused variables. 12130 (optimize_stmt): Remove unused variable. 12131 121322004-09-18 Jan Hubicka <jh@suse.cz> 12133 12134 * tree-cfg.c (thread_jumps): Fix updating of the profile. 12135 12136 * tree-optimize.c (tree_rest_of_compilation): Kill forgotten 12137 verify_cgraph call. 12138 121392004-09-18 Kazu Hirata <kazu@cs.umass.edu> 12140 12141 * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c, 12142 gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c, 12143 optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c, 12144 tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c, 12145 tree-ssa-operands.c, tree-ssa-phiopt.c, 12146 tree-ssa-threadupdate.c: Fix comment typos. 12147 121482004-09-18 Kazu Hirata <kazu@cs.umass.edu> 12149 12150 * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md, 12151 config/arm/README-interworking, config/arm/arm-cores.def, 12152 config/arm/arm.c, config/arm/arm.h, config/arm/pe.c, 12153 config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h, 12154 config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c, 12155 config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c, 12156 config/frv/frv.md, config/i386/winnt.c, 12157 config/ia64/unwind-ia64.c, config/iq2000/iq2000.c, 12158 config/iq2000/iq2000.h, config/m68hc11/m68hc11.c, 12159 config/m68hc11/m68hc11.md, config/m68k/m68k.c, 12160 config/mcore/mcore.c, config/mips/mips.h, 12161 config/mn10300/mn10300.md, config/pa/pa.c, 12162 config/pa/pa64-regs.h, config/pdp11/pdp11.c, 12163 config/rs6000/rs6000.c, config/sh/symbian.c, 12164 config/sparc/sparc.h: Fix comment typos. Follow spelling 12165 conventions. 12166 121672004-09-18 Joseph S. Myers <jsm@polyomino.org.uk> 12168 12169 PR c/17424 12170 * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node. 12171 121722004-09-18 Diego Novillo <dnovillo@redhat.com> 12173 12174 * tree-ssa-alias.c (setup_pointers_and_addressables): Don't 12175 remove TREE_ADDRESSABLE from RESULT_DECL. 12176 121772004-09-18 Diego Novillo <dnovillo@redhat.com> 12178 12179 * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs. 12180 121812004-09-18 Jan Hubicka <jh@suse.cz> 12182 12183 * tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return 12184 NULL. 12185 * tree-ssa-alias.c (init_alias_info): Likewise. 12186 * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. 12187 (verify_ssa): Likewise. 12188 * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays. 12189 121902004-09-18 Jan Hubicka <jh@suse.cz> 12191 12192 * i386.c (legitimize_pic_address): Fix splitting of PLUS with 12193 huge offset. 12194 121952004-09-18 Kaz Kojima <kkojima@gcc.gnu.org> 12196 12197 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove. 12198 * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use 12199 DW_EH_PE_sdata* for data. 12200 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. 12201 122022004-09-17 Geoffrey Keating <geoffk@apple.com> 12203 12204 * tree-inline.c (copy_tree_r): Don't duplicate constants, they're 12205 shared anyway. 12206 12207 PR pch/13361 12208 * c-typeck.c (constructor_asmspec): Delete. 12209 (struct initializer_stack): Delete field 'asmspec'. 12210 (start_init): Delete saving of asmspec. 12211 (finish_init): Don't update constructor_asmspec. 12212 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. 12213 * stmt.c (expand_asm): Duplicate strings from tree. 12214 (expand_asm_operands): Likewise. 12215 * tree.c (tree_size): Update computation of size of STRING_CST. 12216 (make_node): Don't make STRING_CST nodes. 12217 (build_string): Allocate string with tree node. 12218 (tree_code_size): Clean up assertions, don't allow requests 12219 for "the size of a STRING_CST". 12220 * tree.def (STRING_CST): Update comment. 12221 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. 12222 (tree_string): Place contents of string in tree node. 12223 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string 12224 from tree. 12225 122262004-09-17 Zack Weinberg <zack@codesourcery.com> 12227 12228 * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H). 12229 * objc/Make-lang.in (objc/objc-parse.o): Likewise. 12230 122312004-09-17 Jones Desougi <jones@ingate.com> 12232 12233 * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF. 12234 * configure, config.in: Regenerate. 12235 122362004-09-17 Zack Weinberg <zack@codesourcery.com> 12237 12238 * tree.c, tree.h (tree_class_strings): Make array const. 12239 Reindent per coding convention. Move asterisk to proper place 12240 per coding convention. 12241 122422004-09-18 Andreas Schwab <schwab@suse.de> 12243 12244 * Makefile.in (gimple-low.o): Depend on $(EXPR_H). 12245 (tree-vectorizer.o): Likewise. 12246 (targhooks.o): Likewise. 12247 122482004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com> 12249 Zack Weinberg <zack@codesourcery.com> 12250 12251 * alias.c (find_base_decl): Remove unreachable case '3' block. 12252 * expr.c (safe_from_p): Abort if passed a type. 12253 * tree-gimple.c (recalculate_side_effects): Abort if passed 12254 anything other than an expression. 12255 * tree-ssa-pre.c (phi_translate): Return expr immediately if 12256 is_gimple_min_invariant is true for it. Reorder cases for clarity. 12257 Abort on un-handled tree classes. 12258 (valid_in_set): Likewise. 12259 * tree.c (tree_code_class_strings): New static data. 12260 12261 * tree.h (enum tree_code_class): New. 12262 (tree_code_class_strings): Declare. 12263 (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) 12264 (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) 12265 (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. 12266 (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) 12267 (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. 12268 12269 * tree.def, c-common.def, objc/objc-tree.def: Use 12270 tree_code_class enumeration constants instead of code letters. 12271 12272 * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c 12273 * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c 12274 * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c 12275 * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c 12276 * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c 12277 * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c 12278 * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c 12279 * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c 12280 * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c 12281 * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c 12282 * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c 12283 * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c 12284 * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c 12285 Update to match. 12286 12287 * LANGUAGES: Add note about change. 12288 122892004-09-17 Diego Novillo <dnovillo@redhat.com> 12290 12291 PR tree-optimization/17319 12292 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also 12293 examine pointers on the LHS of an assignment. 12294 (collect_points_to_info_r): Handle RETURN_EXPR. 12295 122962004-09-17 Jeff Law <law@redhat.com> 12297 12298 * tree-ssa-dom.c (const_and_copies_stack): New. 12299 (dom_walk_block_data): Remove const_and_copies field. 12300 (record_const_or_copy): No longer need to pass in varray_type *. 12301 Use CONST_AND_COPIES_STACK rather than passed in block local stack. 12302 Callers updated. 12303 (record_equality): Similarly. 12304 (restore_vars_to_original_value): Similarly. Revamp to use new 12305 single global stack rather than per-block stacks. 12306 (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK. 12307 (thread_across_edge): Remove now unused parameters. 12308 (dom_opt_initialize_block_local_data): No longer test the block 12309 local CONST_AND_COPIES. 12310 (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK. 12311 123122004-09-17 Jan Hubicka <jh@suse.cz> 12313 12314 PR tree-optimization/17509 12315 * tree-optimize.c (update_inlined_to_pointers): New function. 12316 (tree_rest_of_compilation): Use it. 12317 123182004-09-17 Devang Patel <dpatel@apple.com> 12319 12320 * dbxout.c (get_lang_number): New. 12321 (dbxout_init): Include lang number in N_SO stab. 12322 * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN, 12323 N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define. 12324 123252004-09-17 Diego Novillo <dnovillo@redhat.com> 12326 12327 PR tree-optimization/17273 12328 * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the 12329 replacement is a constant. 12330 123312004-09-17 Joseph S. Myers <jsm@polyomino.org.uk> 12332 12333 * c-tree.h (enum c_typespec_keyword): New. 12334 (struct c_declspecs): Adjust description of "type". Remove 12335 specbits, explicit_int_p and explicit_char_p. Rename 12336 typedef_signed_p to explicit_signed_p. Add default_int_p, long_p, 12337 short_p, signed_p, unsigned_p and complex_p. 12338 (finish_declspecs): New. 12339 * c-parse.in (datadef, datadecl, setspecs, decl, component_decl, 12340 typename): Call finish_declspecs. 12341 * c-decl.c (finish_declspecs): New. 12342 (declspecs_add_type): Check for combinations which cannot occur in 12343 valid specifier lists. Update comments. 12344 (shadow_tag_warned): Remove checks done in finish_declspecs. 12345 Don't report useless type name if type defaulted to int. 12346 (grokdeclarator): Remove checks and actions done in 12347 finish_declspecs. Don't allow for type being NULL. Update for 12348 datastructures changes. Initialize decl_attr. 12349 (build_null_declspecs, quals_from_declspecs): Update for 12350 datastructures changes. 12351 123522004-09-17 Sylvain Pion <Sylvain.Pion@sophia.inria.fr> 12353 12354 * doc/extend.texi: Fix duplicated word. 12355 123562004-09-17 Toon Moene <toon@moene.indiv.nluug.nl> 12357 12358 * doc/invoke.texi: Remove stray explanation on 12359 -freduce-all-givs and -fmove-all-movables. 12360 123612004-09-17 James Morrison <phython@gcc.gnu.org> 12362 12363 * doc/cfg.texi: Use @smallexample. 12364 * doc/md.texi: Likewise. 12365 * doc/tree-ssa.texi: Likewise. 12366 * doc/extend.texi: Likewise. Use @r{} in comments. 12367 * doc/trouble.texi: Use @r{} in comments. 12368 123692004-09-17 Hans-Peter Nilsson <hp@bitrange.com> 12370 12371 * configure.ac (gcc_cv_gld_version): Handle whitespace before 12372 "VERSION=". 12373 * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto. 12374 * configure: Regenerate. 12375 123762004-09-17 J"orn Rennecke <joern.rennecke@superh.com> 12377 12378 * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference. 12379 (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug. 12380 * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g . 12381 * t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match dashes and trailing 12382 slashes in substitutions. 12383 (MULTILIB_DIRNAMES): Remove defunct removal of /media32. 12384 123852004-09-17 Kazu Hirata <kazu@cs.umass.edu> 12386 12387 * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c, 12388 gimplify.c, lambda-code.c, optabs.c, predict.c, 12389 tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c, 12390 tree-ssa.c, vec.h: Fix comment typos. Follow spelling 12391 conventions. 12392 123932004-09-17 Kazu Hirata <kazu@cs.umass.edu> 12394 12395 * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi, 12396 doc/extend.texi, doc/install.texi, doc/invoke.texi, 12397 doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi, 12398 doc/trouble.texi: Use @option around options. 12399 124002004-09-17 Richard Sandiford <rsandifo@redhat.com> 12401 12402 * Makefile.in (gen-protos.o): Depend on errors.h. 12403 124042004-09-17 Steven Bosscher <stevenb@suse.de> 12405 12406 PR tree-optimization/17513 12407 * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE 12408 for successors of the entry block. 12409 124102004-09-17 Uros Bizjak <uros@kss-loka.si> 12411 12412 PR rtl-optimization/15187 12413 * ifcvt.c (noce_try_cmove_arith): Exit early if total 12414 insn_rtx_cost of both branches > BRANCH_COST 12415 124162004-09-16 Diego Novillo <dnovillo@redhat.com> 12417 12418 PR tree-optimization/17528 12419 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not 12420 erase the may-alias set for a tag when merging it with 12421 another. 12422 124232004-09-16 Kaz Kojima <kkojima@gcc.gnu.org> 12424 12425 * config/sh/sh.md (call): Extend 32-bit addresses to DImode 12426 for 32-bit TARGET_SHMEDIA. 12427 (call_value): Likewise. 12428 124292004-09-16 Diego Novillo <dnovillo@redhat.com> 12430 12431 * tree-ssa-operands.c (add_call_clobber_ops): Make read-only 12432 test apply only to TREE_STATIC and DECL_EXTERNAL. 12433 124342004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 12435 12436 * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency. 12437 * basic-block.h (get_dominated_by_region): Declare. 12438 * dominance.c (get_dominated_by_region): New function. 12439 * tree-cfg.c: Include cfglayout.h. 12440 (tree_duplicate_bb): Duplicate also phi nodes. 12441 (struct ssa_name_map_entry): New type. 12442 (add_phi_args_after_copy_bb, add_phi_args_after_copy, 12443 ssa_name_map_entry_hash, ssa_name_map_entry_eq, 12444 allocate_ssa_names, rewrite_to_new_ssa_names_def, 12445 rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb, 12446 rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions. 12447 * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb, 12448 add_phi_args_after_copy, rewrite_to_new_ssa_names_bb, 12449 rewrite_to_new_ssa_names, allocate_ssa_names, 12450 rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare. 12451 * tree-ssa-loop-ch.c (duplicate_blocks): Removed. 12452 (copy_loop_headers): Use tree_duplicate_sese_region. 12453 124542004-09-16 Frank Ch. Eigler <fche@redhat.com> 12455 12456 * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION. 12457 124582004-09-16 Jeff Law <law@redhat.com> 12459 12460 * tree-into-ssa.c (block_defs_stack): New toplevel varray. 12461 (rewrite_block_data): Remove, no longer used. 12462 (rewrite_initialize_block_local_data): Remove, no longer used. 12463 (rewrite_initialize_block): Mark parameters as unused as needed. 12464 Change references to the block local block_defs to be block_defs_stack. 12465 Push a marker onto the block_defs_stack. 12466 (ssa_rewrite_initialize_block): Similarly. 12467 (rewrite_stmt, ssa_rewrite_stmt): Similarly. 12468 (ssa_register_new_def): No longer needs varray argument. Use 12469 block_defs_stack instead. No longer handle possibly null block_defs 12470 varray. Reverse order of items we push on the stack to make it 12471 easier to identify our marker. 12472 (register_new_def): No longer handle possibly null block_defs 12473 varray. 12474 (rewrite_finalize_block): Revamp to look for markers in the global 12475 block_defs_stack varray rather than wiping a block local varray. 12476 Mark arguments as unused as needed. 12477 (ssa_rewrite_finalize_block): Similarly. 12478 (rewrite_into_ssa): Update initialization of dom walker structure 12479 to reflect that we don't need block local data anymore. Initialize 12480 the block_defs_stack varray. 12481 (rewrite_ssa_into_ssa): Similarly. 12482 * tree-ssa-dom.c (block_defs_stack): New toplevel varray. 12483 (struct dom_walk_data): Kill block_defs field. 12484 (tree_ssa_dominator_optimize): Initialize block_defs_stack. 12485 (thread_across_edge): Use the global block_defs_stack instead of 12486 the old block_defs varray. 12487 (dom_opt_initialize_block_local_data): Update now that we don't have 12488 block_defs field to check anymore. 12489 (dom_opt_initialize_block): Push a marker onto block_defs_stack. 12490 (restore_currdefs_to_original_value): Use the new block_defs_stack 12491 instead of a block local varray. 12492 (dom_opt_finalize_block): Similarly. 12493 (record_equivalencs_from_phis): Similarly. 12494 (optimize_stmt, register_definitions_for_stmt): Similarly. 12495 124962004-09-16 Andrew MacLeod <amacleod@redhat.com> 12497 12498 PR tree-optimization/17517 12499 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't 12500 coalesce same-root variables without checking for abnormal PHI usage. 12501 125022004-09-16 Daniel Berlin <dberlin@dberlin.org> 12503 12504 * cfgloop.h (duplicate_loop): Add prototype. 12505 * cfgloopmanip.c (duplicate_loop): Make non-static. 12506 * lambda-code.c (perfect_nestify): Factor out test whether 12507 we can handle this loop into separate function. 12508 Call it. 12509 (can_convert_to_perfect_nest): New function. 12510 (replace_uses_of_x_with_y): Add modify_stmt call. 12511 * tree-loop-linear.c (linear_transform_loops): Call 12512 rewrite_into_loop_closed_ssa and free_df. 12513 125142004-09-16 Daniel Berlin <dberlin@dberlin.org> 12515 12516 * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is 12517 loop invariant as well. 12518 (perfect_nestify): new function. 12519 (gcc_loop_to_lambda_loop): New parameters to track lower bounds, 12520 upper bounds, and steps. 12521 Set outerinductionvar properly. 12522 (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect 12523 parameters. 12524 Return NULL if we need a perfect loop and can't make one. 12525 (lambda_loopnest_to_gcc_loopnest): Correct algorithm. 12526 (not_interesting_stmt): New function. 12527 (phi_loop_edge_uses_def): Ditto. 12528 (stmt_uses_phi_result): Ditto. 12529 (stmt_is_bumper_for_loop): Ditto. 12530 (perfect_nest_p): Ditto. 12531 (nestify_update_pending_stmts): Ditto. 12532 (replace_uses_of_x_with_y): Ditto. 12533 (stmt_uses_op): Ditto. 12534 (perfect_nestify): Ditto. 12535 * lambda-mat.c (lambda_matrix_id_p): New function. 12536 * lambda-trans.c (lambda_trans_matrix_id_p): Ditto. 12537 * lambda.h: Update prototypes. 12538 * tree-loop-linear (linear_transform_loop): Use new 12539 perfect_nest_p. Detect and ignore identity transform. 12540 * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed. 12541 125422004-09-16 Sebastian Pop <pop@cri.ensmp.fr> 12543 12544 * tree-loop-linear.c (gather_interchange_stats): Add more comments. 12545 Gather also strides of accessed data. Pass in the data references 12546 array. 12547 (try_interchange_loops): Add a new heuristic for handling the temporal 12548 locality. Pass in the data references array. 12549 (linear_transform_loops): Pass the data references array to 12550 try_interchange_loops. 12551 125522004-09-16 Kazu Hirata <kazu@cs.umass.edu> 12553 12554 * doc/invoke.texi: Fix typos. Follow spelling conventions. 12555 125562004-09-16 Nathan Sidwell <nathan@codesourcery.com> 12557 12558 * doc/c-tree.texi (Classes): Remove index entries for 12559 TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}. 12560 125612004-09-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 12562 12563 * fold-const.c (fold): Fold difference of addresses. 12564 (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on 12565 get_inner_reference. 12566 * tree-ssa-loop-ivopts.c (peel_address): Removed. 12567 (ptr_difference_const): Moved to fold-const.c. 12568 (split_address_cost): Use get_inner_reference instead of peel_address. 12569 (ptr_difference_cost): Change type of diff to HOST_WIDE_INT. 12570 * tree.h (ptr_difference_const): Export. 12571 12572 * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction 12573 variable type to the dump. Fix indentation. 12574 (idx_find_step): Handle nonconstant array_ref_element_size and 12575 array_ref_low_bound. 12576 (idx_record_use): Handle array_ref_element_size and 12577 array_ref_low_bound. 12578 (find_interesting_uses_stmt): Handle memory = nontrivial_expression 12579 statements correctly. 12580 (get_computation_at, iv_value): Do not unshare expressions here. 12581 (rewrite_use_outer): Unshare the expression before it is emitted 12582 to code. 12583 * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for): 12584 Moved to tree.c. 12585 * tree.c (unsigned_type_for, signed_type_for): Moved from 12586 tree-ssa-loop-niter.c. Use langhooks. 12587 * tree.h (signed_type_for): Export. 12588 125892004-09-16 David Edelsohn <edelsohn@gnu.org> 12590 12591 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update 12592 prototype. 12593 125942004-09-15 Andrew Pinski <pinskia@physics.uc.edu> 12595 12596 PR target/11572 12597 * c-incpath.h (target_c_incpath_s): Add extra_pre_includes. 12598 Add two parameters to extra_includes. 12599 (C_INCPATH_INIT): Remove. 12600 * c-incpath.c (register_include_chains): Call extra_pre_includes 12601 before adding the standard include directory. 12602 Update call to extra_includes. 12603 (!defined TARGET_EXTRA_INCLUDES): Update 12604 hook_void_charptr_charptr_int and add !define 12605 TARGET_EXTRA_PRE_INCLUDES. 12606 (!define TARGET_EXTRA_INCLUDES): Define as 12607 hook_void_charptr_charptr_int. 12608 (!define TARGET_EXTRA_PRE_INCLUDES): Likewise. 12609 (target_c_incpath): Always declare. 12610 * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a 12611 empty function. 12612 (define TARGET_EXTRA_PRE_INCLUDES): Likewise. 12613 * config/darwin.h: (darwin_register_frameworks): Update for 12614 the two new parameters. 12615 (darwin_register_objc_includes): Add prototype. 12616 (TARGET_EXTRA_PRE_INCLUDES): Define. 12617 * config/darwin-c.c (darwin_register_objc_includes): New function. 12618 (darwin_register_frameworks): Update for the two new parameters. 12619 (target_c_incpath): Remove. 12620 * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to 12621 the compile line. 12622 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new 12623 parameters. 12624 (TARGET_EXTRA_PRE_INCLUDES): Document. 12625 12626 * gcc.c (spec_function): Add replace-outfile. 12627 (replace_outfile_spec_function): New function. 12628 * config/darwin.h (LINK_SPEC): Add replace 12629 -lobjc with -lobjc-gnu if -fgnu-runtime is 12630 supplied. 12631 * invoke.texi (replace-outfile): Document. 12632 126332004-09-13 Jan Hubicka <jh@suse.cz> 12634 12635 * predict.c (expr_expected_value, strip_builtin_expect): New function. 12636 (tree_predict_by_opcode): Use it. 12637 (tree_estimate_probability): Add, for now disabled, 12638 strip_builtin_expect call. 12639 126402004-09-15 James E Wilson <wilson@specifixinc.com> 12641 12642 PR target/17455 12643 * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false 12644 if current_function_decl is a sibcall. 12645 126462004-09-15 Mark Mitchell <mark@codesourcery.com> 12647 12648 * varasm.c (default_function_rdodata_section): Make sure to pass 12649 along a decl for a link-once section. 12650 126512004-09-15 Richard Henderson <rth@redhat.com> 12652 12653 * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable 12654 warning with code disable. Fix formatting. 12655 126562004-09-15 Steven Bosscher <stevenb@suse.de> 12657 12658 * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h. 12659 * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT 12660 after propagating into an ADDR_EXPR. 12661 126622004-09-15 Andrew Pinski <apinski@apple.com> 12663 12664 PR rtl-opt/17427 12665 * gcse.c (process_insert_insn): insn_invalid_p has side effects. 12666 Move it out of gcc_assert. 12667 126682004-09-15 Joseph S. Myers <jsm@polyomino.org.uk> 12669 12670 * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c, 12671 except.c, fold-const.c, function.c, langhooks.c, params.c, 12672 reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c, 12673 tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q 12674 for quoting in diagnostics going through pretty-print.c. Use '' 12675 for quoting in other diagnostic text. 12676 * langhooks.c: Include intl.h. Mark text locating diagnostics for 12677 translation. 12678 * Makefile.in (langhooks.o): Update dependencies. 12679 * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic 12680 formats. 12681 126822004-09-15 Mark Mitchell <mark@codesourcery.com> 12683 12684 * configure.ac: Check for COMDAT support. Robustify check for 12685 SHF_MERGE support. 12686 * configure: Regenerated. 12687 * config.in: Likewise. 12688 * langhooks-def.h (lhd_comdat_group): New function. 12689 (LANG_HOOKS_COMDAT_GROUP): New macro. 12690 (LANG_HOOKS_DECLS): Use it. 12691 * langhooks.c (lhd_comdat_group): Define. 12692 * langhooks.h (lang_hooks_for_decls): Add comdat_group. 12693 * output.h (named_section_flags): Make it a macro. 12694 (named_section_real): New function. 12695 (default_no_named_section): Add decl parameter. 12696 (default_elf_asm_named_section): Likewise. 12697 (default_coff_asm_named_section): Likewise. 12698 (default_pe_asm_named_section): Likewise. 12699 * target.h (gcc_target): Adjust type of named_section. 12700 * varasm.c (named_section_flags): Rename to named_section_real. 12701 Add decl parameter. 12702 (default_no_named_section): Add decl parameter. 12703 (default_elf_asm_named_section): Use COMDAT, if available. Deal 12704 with the case that ASM_COMMENT_START is "@". 12705 (default_coff_asm_named_section): Add decl parameter. 12706 (default_pe_asm_named_section): Likewise. 12707 * config/alpha/alpha.c (vms_asm_named_section): Add decl 12708 parameter. 12709 (unicosmk_asm_named_section): Likewise. 12710 * config/arm/arm.c (arm_elf_asm_named_section): Remove. 12711 * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise. 12712 * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter. 12713 * config/cris/cris-protos.h (cris_target_asm_named_section): 12714 Likewise. 12715 * config/cris/cris.c (cris_target_asm_named_section): 12716 Likewise. 12717 * config/darwin/darwin-protos.h (darwin_asm_named_section): 12718 Likewise. 12719 * config/darwin/darwin.c (darwin_asm_named_section): Likewise. 12720 * config/h8300/h8300.c (h8300_asm_named_section): Likewise. 12721 * config/i386/i386-protos.h (i386_pe_asm_named_section): 12722 Likewise. 12723 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise. 12724 * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise. 12725 * config/mcore/mcore.c (mcore_asm_named_section): Likewise. 12726 * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): 12727 Likewise. 12728 * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise. 12729 * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define. 12730 * cp/cp-tree.h (cxx_comdat_group): Declare. 12731 * cp/decl.c (cxx_comdat_group): New function. 12732 127332004-09-15 Jan Hubicka <jh@suse.cz> 12734 12735 * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes. 12736 * tree-tailcall.c (eliminate_tail_call): Release SSA name. 12737 12738 * tree-cfg.c (remove_bb): Release SSA defs. 12739 127402004-09-15 Kazu Hirata <kazu@cs.umass.edu> 12741 12742 * doc/tm.texi: Follow spelling conventions. 12743 127442004-09-15 Kazu Hirata <kazu@cs.umass.edu> 12745 12746 * tree-ssa-dom.c: Fix comment typos. 12747 127482004-09-15 Alan Modra <amodra@bigpond.net.au> 12749 12750 * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to 12751 include ccr. 12752 (ppc_fallback_frame_state): Save location of CR. 12753 127542004-09-15 Jakub Jelinek <jakub@redhat.com> 12755 12756 * expr.c (string_constant): Handle also read-only variables 12757 initialized to string literals. 12758 12759 * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1) 12760 into memcpy (x, y, 1) if memcpy can be expanded inline. 12761 127622004-09-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 12763 12764 PR tree-optimization/17468 12765 * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that 12766 definition inside a block precede uses. 12767 * tree-tailcall.c (adjust_return_value): Emit statements in the 12768 correct order. 12769 127702004-09-15 Richard Sandiford <rsandifo@redhat.com> 12771 12772 * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete. 12773 127742004-09-15 Eric Botcazou <ebotcazou@libertysurf.fr> 12775 12776 * doc/install.texi (sparc-sun-solaris2*): Properly format warning. 12777 127782004-09-14 Jeff Law <law@redhat.com> 12779 12780 * tree-ssa-dom.c (avail_exprs_stack): New global varray. 12781 (struct dom_walk_block_data): Remove avail_exprs member. 12782 (tree_ssa_dominator_optimize): Initialize avail_exprs_stack. 12783 (lookup_avail_expr): No longer need to pass in address of 12784 the block local available exprs stack. All callers changed. 12785 (simplify_cond_and_lookup_avail_expr): Similarly. 12786 (simplify_switch_and_lookup_avail_expr): Similarly. 12787 (get_eq_expr_value, record_cond): Likewise. 12788 (record_dominating_conditions): Likewise. 12789 (update_rhs_and_lookup_avail_expr): Likewise. 12790 (record_equivalences_from_stmt): Likewise. 12791 (dom_opt_initialize_block_local_data): No longer test state of 12792 block local avail_exprs. 12793 (dom_opt_initialize_block): Mark unwind point in the global 12794 avail_expr stack. 12795 (remove_expressions_from_table): Update to unwind to the 12796 most recent unwind marker in the global avail_expr stack. 12797 All callers changed. 12798 (dom_opt_finalize_block): Mark unwind point in the global 12799 avail_expr stack as needed. 12800 (record_cond): Push elements into the global avail_exprs stack. 12801 12802 * tree-dfa.c (free_df_for_stmt): No longer static. 12803 (free_df): Update comments. 12804 * tree-flow.h (free_df_for_stmt): Prototype. 12805 * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also 12806 call release_defs. 12807 128082004-09-14 Diego Novillo <dnovillo@redhat.com> 12809 12810 PR tree-optimization/17252 12811 * tree-ssa-alias.c (may_alias_p): Don't assume that a 12812 pointer may not point to itself when using relaxed 12813 aliasing rules. 12814 128152004-09-14 Richard Henderson <rth@redhat.com> 12816 12817 PR middle-end/17397 12818 * gimplify.c (gimplify_addr_expr): Don't inadvertently change types 12819 while folding <ADDR_EXPR <INDIRECT_REF X>>. 12820 128212004-09-14 Andrew Pinski <apinski@apple.com> 12822 12823 * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing 12824 sets of the pointers but the aliasing sets of what they point to. 12825 128262004-09-14 Roger Sayle <roger@eyesopen.com> 12827 12828 PR rtl-optimization/9771 12829 * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate 12830 conditional compilation in init_reg_sets_1. 12831 (init_reg_sets_1): Let global_regs[i] take priority over the frame 12832 (but not stack) pointer exceptions to regs_invalidated_by_call. 12833 (globalize_reg): Globalizing a fixed register may need to update 12834 regs_invalidated_by_call. 12835 128362004-09-14 Diego Novillo <dnovillo@redhat.com> 12837 12838 PR tree-optimization/15262 12839 * tree-dfa.c (dump_variable): Also print the type of the 12840 variable. 12841 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two 12842 memory tags are of conflicting alias sets but have no aliased 12843 symbols in common, add one tag to the alias set of the other. 12844 (setup_pointers_and_addressables): Remove hack to deal with 12845 programs with no aliased symbols. 12846 (may_alias_p): Don't special case aggregate types. 12847 128482004-09-14 Joseph S. Myers <jsm@polyomino.org.uk> 12849 12850 PR c/15498 12851 * doc/invoke.texi (Environment Variables): Correct example locale. 12852 128532004-09-14 Jan Hubicka <jh@suse.cz> 12854 12855 * cfg.c (expunge_block): Revert previous change adding ggc_free call. 12856 128572004-09-14 Mark Mitchell <mark@codesourcery.com> 12858 12859 * config.gcc: Do not build a shared libgcc for arm-none-eabi. 12860 128612004-09-14 Joseph S. Myers <jsm@polyomino.org.uk> 12862 12863 * c-tree.h (struct c_declspecs): Add const_p, volatile_p and 12864 restrict_p. 12865 (struct c_declarator): Change u.array.quals and pointer_quals to 12866 int. Add u.array.attrs. 12867 (quals_from_declspecs): New. 12868 * c-decl.c (quals_from_declspecs): New. 12869 (shadow_tag_warned): Give more specific message for useless type 12870 qualifiers. 12871 (build_array_declarator, set_array_declarator_inner, 12872 grokdeclarator, make_pointer_declarator, build_null_declspecs, 12873 declspecs_add_qual): Update for changed structures. 12874 128752004-09-14 Jeff Law <law@redhat.com> 12876 12877 * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local 12878 to a global varray. 12879 (tree_ssa_dominator_optimize): Allocate stmts_to_rescan. 12880 (dom_opt_initialize_block_local_data): No longer test state 12881 of stmts_to_rescan. 12882 (dom_opt_finalize_block): Update due to change in scope of 12883 stmts_to_rescan. 12884 (optimize_stmt): Similarly. 12885 128862004-09-14 Kazu Hirata <kazu@cs.umass.edu> 12887 12888 * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c, 12889 lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix 12890 comment typos. Follow spelling conventions. 12891 128922004-09-14 Kazu Hirata <kazu@cs.umass.edu> 12893 12894 * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c, 12895 config/i386/predicates.md, config/sparc/sparc.c: Follow 12896 spelling conventions. 12897 128982004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 12899 Steven Bosscher <stevenb@suse.de> 12900 12901 * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency. 12902 * basic-block.h (struct reorder_block_def): Add copy_number field. 12903 * cfgloop.h (biv_p): Declare. 12904 * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number. 12905 * common.opt (fsplit-ivs-in-unroller): New flag. 12906 * loop-iv.c (biv_p): New function. 12907 * loop-unroll.c: Include hashtab.h and recog.h. 12908 (struct iv_to_split, struct split_ivs_info): New types. 12909 (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies, 12910 free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn, 12911 determine_split_iv_delta, get_ivts_expr, allocate_basic_variable, 12912 insert_base_initialization, split_iv): New functions. 12913 (peel_loop_completely, unroll_loop_constant_iterations, 12914 unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): 12915 Use them. 12916 * doc/invoke.texi (-fsplit-ivs-in-unroller): Document. 12917 129182004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 12919 12920 * tree-cfg.c (thread_jumps): Update dominators correctly in 12921 case destination of threaded edge dominates its source. 12922 129232004-09-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 12924 12925 * unroll.c: Removed. 12926 * loop.h: Removed. 12927 * Makefile.in (LOOP_H, unroll.o): Removed. 12928 (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H 12929 dependency. 12930 * alias.c (init_alias_analysis): Remove flag_old_unroll_loops 12931 reference. 12932 * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h. 12933 * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed. 12934 * loop.c: Do not include loop.h. 12935 (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID, 12936 REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction, 12937 struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO, 12938 REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg, 12939 struct loop_regs, struct loop_movables, struct loop_info): Moved 12940 from loop.h. 12941 (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment, 12942 reg_dead_after_loop, final_biv_value, loop_find_equiv_value, 12943 find_common_reg_term, loop_iterations, final_giv_value): Moved 12944 from unroll.c. 12945 (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop, 12946 loop_dump_stream, for_each_insn_in_loop, express_from, 12947 extend_value_for_giv, loop_iv_add_mult_emit_before, 12948 loop_iv_add_mult_sink, loop_iv_add_mult_hoist, 12949 loop_insn_first_p, get_condition_for_loop, 12950 loop_insn_emit_before, loop_insn_hoist, 12951 loop_insn_sink): Made static. 12952 (loop_invariant_p): Made static. Removed flag_old_unroll_loops 12953 reference. 12954 (strength_reduce): Do not call unroller. 12955 (record_giv): Do not initialize unrolled field. 12956 (prescan_loop): Do not set loop_info->preconditioned. 12957 * passes.c: Do not include loop.h. 12958 (rest_of_handle_loop_optimize): Do not call unroller. 12959 * predict.c: Do not include loop.h. 12960 * rtl.h (NOTE_PRECONDITIONED): Removed. 12961 * stmt.c: Do not include loop.h. 12962 * toplev.c: Do not include loop.h. 12963 (process_options): Do not handle flag_old_unroll_loops. 12964 12965 * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops): 12966 Documentation removed. 12967 * doc/passes.texi (unroll.c, loop.h): Documentation removed. 12968 129692004-09-14 Nathan Sidwell <nathan@codesourcery.com> 12970 12971 * Makefile.in (STAGE1_CHECKING): New variable. 12972 (stage1_build): Use it. 12973 * tree-ssa.c (verify_ssa): Preserve state of dominance 12974 information. 12975 129762004-09-14 Uros Bizjak <uros@kss-loka.si> 12977 12978 * config/i386/i386.c (output_fp_compare): Add generation 12979 of ftst instruction. 12980 * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): 12981 Use output_fp_compare () function. 12982 (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint. 12983 (fix_truncdi_memory): Remove operands[5] copy. 12984 129852004-09-14 Kazu Hirata <kazu@cs.umass.edu> 12986 12987 * config/m32r/m32r.md, config/m68k/m68kelf.h, 12988 config/mcore/mcore.md, config/rs6000/linux64.h, 12989 config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment 12990 typos. 12991 129922004-09-13 James E Wilson <wilson@specifixinc.com> 12993 12994 * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS). 12995 * gen-protos.c: Include errors.h. 12996 (progname): Delete. 12997 129982004-09-14 Jan Hubicka <jh@suse.cz> 12999 13000 * Makefile.in (predict.o): Depend on tree-scalar-evolution.h 13001 * predict.c: Include tree-scalar-evolution.h and cfgloop.h 13002 (predict_loops): Use number_of_iterations_exit to predict 13003 number of iterations on trees. 13004 130052004-09-13 Dale Johannesen <dalej@apple.com> 13006 13007 PR 17408 13008 PR 17409 13009 * c-decl.c (start_decl): Repair TREE_STATIC for initialized 13010 objects declared extern. 13011 130122004-09-14 Paul Brook <paul@codesourcery.com> 13013 13014 * config/arm/arm.c (arm_expand_prologue): Make args_to_push a 13015 HOST_WIDE_INT. 13016 130172004-09-13 Daniel Jacobowitz <dan@debian.org> 13018 13019 * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES. 13020 Only use TYPE_BINFO for aggregates. 13021 130222004-09-13 Daniel Jacobowitz <dan@debian.org> 13023 13024 * expmed.c (synth_mult): Initialize latency. Check cost before 13025 checking ops count. 13026 130272004-09-13 Kenneth Zadeck <Kenneth.Zadeck@NaturalBridge.com> 13028 13029 * tree-ssa-operands.c (get_call_expr_operands): Added parm to 13030 add_call_clobber_ops and add_call_read_ops. 13031 (add_call_clobber_ops, add_call_read_ops): Added code to reduce 13032 the number of vdefs and vuses inserted based on analysis of global 13033 variables across calls. 13034 * tree-dfa.c (find_referenced_vars): Needed to reset static 13035 var maps before each function is compiled. 13036 * cgraphunit.c: 13037 (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid, 13038 static_vars_info,functions_to_static_vars_info,module_statics_escape, 13039 all_module_statics,searchc_env,dfs_info): New fields to support 13040 analysis of static global variables. 13041 (print_order, convert_UIDs_in_bitmap, new_static_vars_info, 13042 cgraph_reset_static_var_maps, get_global_static_vars_info, 13043 get_global_statics_not_read, get_global_statics_not_written, 13044 searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis, 13045 check_rhs_var, check_lhs_var, get_asm_expr_operands, 13046 process_call_for_static_vars, scan_for_static_refs, 13047 cgraph_characterize_statics_local, cgraph_get_static_name_by_uid, 13048 clear_static_vars_maps, cgraph_propagate_bits, 13049 cgraph_characterize_statics): New. Functions to support analysis 13050 of static global variables. 13051 (cgraph_mark_local_and_external_functions): Renamed from: 13052 (cgraph_mark_local_functions) 13053 (cgraph_expand_all_functions): Remove call to 13054 cgraph_mark_local_and_external_functions. 13055 (cgraph_optimize): Added driver to analyze static variables whose 13056 scope is within the compilation unit. 13057 * cgraph.h (struct cgraph_local_info, GTY): Added 13058 statics_read, statics_written, local, calls_read_all, 13059 calls_write_all, for_functions_valid. (struct cgraph_node): 13060 Added next_cycle. 13061 * cgraph.c (dump_cgraph_node): Added print routines for new fields. 13062 * makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc 13063 list. 13064 130652004-09-13 Joseph S. Myers <jsm@polyomino.org.uk> 13066 13067 * c-decl.c (grokdeclarator): Correct comments about where storage 13068 class specifiers are rejected by grammar and add corresponding 13069 asserts. Diagnose typedefs and parameters declared inline. 13070 Change warning for inline main to a pedwarn. Only diagnose inline 13071 main if hosted. 13072 (declspecs_add_scspec): Allow duplicate "inline". 13073 130742004-09-13 Steve Ellcey <sje@cup.hp.com> 13075 13076 * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New. 13077 (TARGET_SCALAR_MODE_SUPPORTED_P): New. 13078 130792004-09-13 Richard Henderson <rth@redhat.com> 13080 13081 PR 17436 13082 * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New. 13083 (tree_type): Replace spare with contains_placeholder_bits. 13084 (type_contains_placeholder_1): Rename from type_contains_placeholder_p, 13085 make static. Remove seen_types list. 13086 (type_contains_placeholder_p): New. 13087 130882004-09-13 James E Wilson <wilson@specifixinc.com> 13089 13090 * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New. 13091 (sb1_bdesc, bdesc_map, bdesc_arrays): New. 13092 (mips_expand_builtin): Add SB-1 support. Use bdesc_map and 13093 bdesc_arrays instead of mips_bdesc. 13094 (mips_init_builtins): Likewise. 13095 * config/mips/mips.h (TARGET_SB1): New. 13096 (HAVE_SQRT_P): Delete. 13097 * config/mips/mips.md (divide_condition): Support V2SF. 13098 (sqrt_condition, recip_condition): New. 13099 (div<mode>3): Use ANYF instead of SCALARF. 13100 (*div<mode>3): Use ANYF instead of SCALARF. Use UNITMODE instead of 13101 MODE. 13102 (*recip<mode>3, *rsqrt<mode>a, *rsqrt<mode>b): Use recip_condition 13103 instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE 13104 instead of MODE. 13105 (sqrt<mode>2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF 13106 instead of SCALARF. Use UNITMODE instead of MODE. 13107 131082004-09-13 Zack Weinberg <zack@codesourcery.com> 13109 13110 * config.in: Regenerate after removal of libbanshee. 13111 131122004-09-13 Andrew MacLeod <amacleod@redhat.com> 13113 13114 PR tree-optimization/17400 13115 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't 13116 coalesce partitions when one occurs in an abnormal PHI. 13117 131182004-09-13 Andrew Pinski <apinski@apple.com> 13119 13120 * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's 13121 name to _new_size. 13122 131232004-09-13 Richard Henderson <rth@redhat.com> 13124 13125 PR inline-asm/6806 13126 * cselib.c (cselib_invalidate_rtx): Export. Remove unused args. 13127 (cselib_invalidate_rtx_note_stores): New. 13128 (cselib_record_sets, cselib_process_insn): Update to match. 13129 * cselib.h (cselib_invalidate_rtx): Declare. 13130 * postreload.c (reload_cse_simplify): Invalidate asm clobbers. 13131 131322004-09-13 Richard Henderson <rth@redhat.com> 13133 13134 PR tree-opt/10528 13135 * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR, 13136 after copying its argument. 13137 131382004-09-13 Joseph S. Myers <jsm@polyomino.org.uk> 13139 13140 * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c, 13141 c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting 13142 in diagnostics. Use %' for English apostrophes. 13143 * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define. 13144 (pedwarn_c90, pedwarn_c99): Use it. 13145 * c-decl.c (lookup_label): Quote label name in diagnostic. 13146 * c-parse.in (yyprint): Use ' instead of ` for left quote. 13147 * c-typeck.c (warn_for_assignment): Likewise. 13148 131492004-09-13 Jan Hubicka <jh@suse.cz> 13150 13151 * i386.c (x86_schedule): New global variable. 13152 (override_options): Disable scheduling when not supported. 13153 * i386.h (x86_schedule): Declare. 13154 (TARGET_SCHEDULE): New macro. 13155 131562004-09-12 Richard Henderson <rth@redhat.com> 13157 13158 PR c++/16254 13159 * fold-const.c (fold) <case CLEANUP_POINT_EXPR>: Remove. 13160 * tree.c, tree.h (has_cleanups): Remove. 13161 131622004-09-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 13163 13164 * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname 13165 arguments of the phi nodes correctly. 13166 131672004-09-12 Jan Hubicka <jh@suse.cz> 13168 13169 * ggc-common.c (cmp_statistics): Fix sorting. 13170 131712004-09-12 David Edelsohn <edelsohn@gnu.org> 13172 13173 PR target/16795 13174 * expmed.c (expand_divmod): If cheap power of 2 divide is 13175 available, use it for negative constant as well. 13176 131772004-09-12 Andrew Pinski <apinski@apple.com> 13178 13179 * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a 13180 size of 0. 13181 13182 * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove. 13183 131842004-09-12 Richard Henderson <rth@redhat.com> 13185 13186 * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one 13187 or minus one. 13188 (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for 13189 post-reload, and scratch NULL. 13190 * config/i386/i386.md (testqi_1): Use FLAGS_REG name. 13191 (x86_shift_adj_2): Use ix86_expand_clear. 13192 (ashldi3): Remove CMOVE expansion difference. 13193 (ashldi3_1): Remove. 13194 (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and 13195 add constraints for immediates. New peephole for split-with-temp. 13196 Run splitter after peep2 pass. 13197 (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly. 13198 (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly. 13199 (setcc_2): Rename with *. 13200 * config/i386/predicates.md (reg_or_pm1_operand): New. 13201 (ashldi_input_operand): New. 13202 132032004-09-12 Richard Henderson <rth@redhat.com 13204 13205 * print-rtl.c (print_decl_name): New. 13206 (print_mem_expr): Use it. 13207 132082004-09-12 Richard Henderson <rth@redhat.com 13209 13210 PR 17186, part deux 13211 * except.c (sjlj_emit_function_exit): Fix logic locating 13212 sjlj_exit_after in final block. 13213 132142004-09-12 Toon Moene <toon@moene.indiv.nluug.nl> 13215 13216 * common.opt: Remove flags -fmove-all-movables and 13217 -freduce-all-givs. 13218 * loop-invariant.c (find_invariants_to_move): 13219 Remove all uses of flag_move_all_movables. 13220 * loop.c (move_movables): Remove all uses of 13221 flag_move_all_movables. 13222 (strength_reduce): Remove all uses of 13223 flag_reduce_all_givs. 13224 * doc/invoke.texi: Remove documentation of flags 13225 -fremove-all-movables and -freduce-all-givs. 13226 132272004-09-11 Roger Sayle <roger@eyesopen.com> 13228 13229 PR middle-end/17411 13230 * tree-sra.c (generate_element_zero): Revert recent build_int_cst 13231 change. elt->type may be a floating point type, so use fold_convert. 13232 132332004-09-11 Geoffrey Keating <geoffk@apple.com> 13234 13235 * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark 13236 the thing referenced as used, not the stub itself. 13237 132382004-09-11 Joseph S. Myers <jsm@polyomino.org.uk> 13239 13240 * c-tree.h (enum c_storage_class): New. 13241 (struct c_declspecs): Add storage_class, inline_p and thread_p. 13242 * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty 13243 declarations and "auto" or "register" in file scope empty 13244 declarations. Give more specific warnings for other cases of 13245 storage class specifiers in empty declarations. 13246 (grokdeclarator): Update for new structures. Don't check for 13247 multiple storage classes. Diagnose file-scope "register" if 13248 pedantic. 13249 (build_null_declspecs): Update. 13250 (declspecs_add_scspec): Update. Diagnose multiple storage class 13251 specifiers and invalid uses of "__thread". 13252 132532004-09-11 Zack Weinberg <zack@codesourcery.com> 13254 13255 * tree.c (tree_code_size): New function, bulk of code from tree_size. 13256 (tree_size, make_node): Use it. 13257 * tree-ssa-pre.c (init_pre): Use it. 13258 * tree.h: Prototype it. 13259 132602004-09-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 13261 13262 * tree-cfg.c (set_bb_for_stmt): Use PHI_BB. 13263 * tree-dfa.c (compute_immediate_uses, add_immediate_use, 13264 redirect_immediate_use): Use PHI_DF. 13265 * tree-flow-inline.h (stmt_ann): Abort on phi nodes. 13266 (bb_for_stmt): Use PHI_BB. 13267 (get_immediate_uses): Use PHI_DF. 13268 * tree-ssa-dse.c (max_stmt_uid): New variable. 13269 (get_stmt_uid): New function. 13270 (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi 13271 node annotations. 13272 * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations. 13273 (max_uid): Renamed to max_stmt_uid. 13274 (get_stmt_uid): New function. 13275 (maybe_queue_var, single_reachable_address, determine_lsm): Do not use 13276 phi node annotations. 13277 * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations. 13278 * tree.h (PHI_BB, PHI_DF): New accessor functions. 13279 (struct tree_phi_node): Add bb and df fields. 13280 132812004-09-11 Richard Henderson <rth@redhat.com> 13282 13283 PR middle-end/17416 13284 * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug 13285 in conflict loop. 13286 132872004-09-11 Jan Hubicka <jh@suse.cz> 13288 13289 * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment. 13290 (EMIT_MODE_SET): UNINITIALIZED mode needs no set. 13291 * i386.md (i387_cw): Add 'uninitialized' mode. 13292 13293 * profile.c (BB_TO_GCOV_INDEX): move more to the front. 13294 (output_location): Break out from .... 13295 (branch_prob): ... here; handle gcov output on trees. 13296 * toplev.c (process_options): No longer be sorry about coverage for 13297 trees. 13298 132992004-09-11 Steven Bosscher <stevenb@suse.de> 13300 13301 PR c++/17412 13302 * fold-const.c (fold): Do not try to fold the operand of a 13303 CLEANUP_POINT_EXPR if that operand does itself not have any 13304 operands. 13305 13306 PR middle-end/17417 13307 * langhooks.c (lhd_decl_printable_name): Make sure that this 13308 function is called with is a decl node that has an identifier. 13309 * tree-pretty-print.c (dump_function_name): New function to 13310 wrap PRINT_FUNCTION_NAME and dump_decl_name. 13311 (print_call_name): Use it. 13312 133132004-09-11 Mohan Embar <gnustuff@thisiscool.com> 13314 13315 * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE, 13316 "config.h" if not. 13317 133182004-09-11 Jakub Jelinek <jakub@redhat.com> 13319 13320 * tree-ssa-alias.c (collect_points_to_info_r): Handle 13321 pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing 13322 to OFFSET. 13323 133242004-09-11 Richard Henderson <rth@redhat.com> 13325 13326 * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr. 13327 (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the 13328 operand of the ADDR_EXPR. 13329 (expand_expr_real_1): Update to match. 13330 133312004-09-11 David Edelsohn <edelsohn@gnu.org> 13332 13333 PR target/17277 13334 * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to 13335 choose 64-bit version. 13336 133372004-09-11 Richard Henderson <rth@redhat.com> 13338 13339 PR c/17396 13340 * c-typeck.c (build_unary_op): Add legacy offsetof hack. 13341 133422004-09-11 Kazu Hirata <kazu@cs.umass.edu> 13343 13344 * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi, 13345 doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi: 13346 Insert @: after i.e. or e.g. 13347 133482004-09-10 Geoffrey Keating <geoffk@apple.com> 13349 13350 * tree-pretty-print.c (dump_decl_name): Print unnamed decls as 13351 D.xxx rather than <Dxxx>. 13352 133532004-09-10 Adam Nemet <anemet@lnxw.com> 13354 13355 * configure.ac (AC_MSG_CHECKING(what linker to use)): 13356 in_tree_ld_is_elf should be true for LynxOS. 13357 * configure: Regenerate. 13358 133592004-09-10 Adam Nemet <anemet@lnxw.com> 13360 13361 * Makefile.in (all.cross): Add srcextra. 13362 133632004-09-10 Roger Sayle <roger@eyesopen.com> 13364 13365 PR middle-end/17024 13366 * fold-const.c (fold_cond_expr_with_comparison): Handle unordered 13367 floating point comparison operators. Change aborts to gcc_asserts. 13368 133692004-09-10 Geoffrey Keating <geoffk@apple.com> 13370 13371 * final.c (output_asm_insn): Correct problem with -fverbose-asm. 13372 133732004-09-10 James E Wilson <wilson@specifixinc.com> 13374 13375 * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference. 13376 (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment. 13377 13378 * convert.c (convert_to_vector): Replace recursive call with 13379 error_mark_node. 13380 13381 * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0. 13382 Add integer argument named constant. Use const_tiny_rtx instead of 13383 CONST0_RTX. 13384 (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX 13385 and CONST1_RTX. 13386 (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for 13387 vector types. 13388 * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead 13389 of gen_rtx_raw_CONST_VECTOR. 13390 133912004-09-10 Eric Christopher <echristo@redhat.com> 13392 13393 PR c/16046 13394 * c-parse.in (attribute): Add NULL_TREE for error case 13395 for error recovery. 13396 133972004-09-10 Zack Weinberg <zack@codesourcery.com> 13398 13399 * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h. 13400 (extract_interface_info): Delete prototype. 13401 * c-decl.c (extract_interface_info): Delete stub. 13402 * c-lex.c (get_fileinfo): Initialize file_info_tree here, if 13403 it's not already been done ... 13404 (init_c_lex): ... not here. 13405 (fe_file_change): Don't call extract_interface_info. 13406 134072004-09-11 Joseph S. Myers <jsm@polyomino.org.uk> 13408 13409 * c-tree.h (struct c_declspecs): Remove typedef_decl. Add 13410 typedef_p and typedef_signed_p. 13411 * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl. 13412 (grokdeclarator): Don't use typedef_decl for warn_deprecated_use. 13413 Check typedef_p and typedef_signed_p, not typedef_decl. 13414 (grokfield): Check typedef_p, not typedef_decl. 13415 (build_null_declspecs): Initialize typedef_p and typedef_signed_p, 13416 not typedef_decl. 13417 (declspecs_add_type): Set typedef_p and typedef_signed_p, not 13418 typedef_decl. 13419 134202004-09-10 Kazu Hirata <kazu@cs.umass.edu> 13421 13422 * doc/tm.texi, doc/tree-ssa.texi: Fix typos. 13423 134242004-09-10 Geoffrey Keating <geoffk@apple.com> 13425 13426 * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless 13427 temporary variables. 13428 13429 * dbxout.c (dbxout_block): Update for 13430 current_function_func_begin_label a string. 13431 * dwarf2out.c (dwarf2out_begin_prologue): Likewise. 13432 * except.c (dw2_output_call_site_table): Likewise. 13433 * toplev.c (current_function_func_begin_label): Likewise. 13434 * tree.h (current_function_func_begin_label): Likewise. 13435 * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise. 13436 13437 * final.c (output_asm_insn): Use strtoul instead of atoi, save a 13438 loop. 13439 13440 * config/darwin.c: Include target.h. 13441 (struct machopic_indirection): Make ptr_name a string. 13442 (machopic_indirection_hash): Update for ptr_name a string. 13443 (machopic_indirection_eq): Likewise. 13444 (machopic_indirection_name): Likewise. 13445 (machopic_output_indirection): Likewise. 13446 (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a 13447 string. Don't expect stub names to be in the identifier hash table. 13448 Do call strip_name_encoding before looking up entry in ID hash table. 13449 * config/t-darwin (darwin.o): Add target.h to dependencies. 13450 13451 * config/rs6000/rs6000.c (print_operand): Use fputs instead 13452 of fprintf for register names. 13453 13454 * output.h (unlikely_section_label): Delete declaration. 13455 (unlikely_text_section_name): Likewise. 13456 * varasm.c (unlikely_section_label_printed): Make static. 13457 (unlikely_section_label): Likewise. 13458 (unlikely_text_section_name): Likewise. 13459 (assemble_start_function): Use reconcat. 13460 13461 * rtl.def (REG): Add comment to describe third field. 13462 134632004-09-10 Andrew Pinski <apinski@apple.com> 13464 13465 * config/darwin.c (machopic_mcount_stub_name): Call 13466 machopic_indirection_name instead of making the string 13467 ourselves. 13468 134692004-09-10 Diego Novillo <dnovillo@redhat.com> 13470 13471 Revert 13472 13473 2004-09-08 Jie Zhang <zhangjie@magima.com.cn> 13474 13475 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type 13476 memory tag is call clobbered, so are its aliases. 13477 (group_aliases): When two memory tags being grouped, if one is 13478 call clobbered, so are the other and its aliases. 13479 (add_may_alias): Remove call-clobbering stuff. 13480 (replace_may_alias): Likewise. 13481 (merge_pointed_to_info): Merge pt_global_mem 13482 134832004-09-10 Kazu Hirata <kazu@cs.umass.edu> 13484 13485 * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c, 13486 genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c, 13487 passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c, 13488 tree-scalar-evolution.c, tree-ssa-copyrename.c, 13489 tree-ssa-live.c, tree-ssa-live.h: Fix comment typos. 13490 134912004-09-10 Richard Sandiford <rsandifo@redhat.com> 13492 13493 * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants. 13494 (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG 13495 pair. Remove match_dup from inputs. Remove masaccs handling. 13496 (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair. 13497 (masaccs, mdasaccs): Turn into define_insns. 13498 134992004-09-10 Richard Sandiford <rsandifo@redhat.com> 13500 13501 * tree-tailcall.c (process_assignment): Only do accumulator transforms 13502 for floating-point types if flag_unsafe_math_optimizations. 13503 135042004-09-10 Kazu Hirata <kazu@cs.umass.edu> 13505 13506 * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c, 13507 config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h, 13508 config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md, 13509 config/h8300/h8300.md, config/i386/gmm_malloc.h, 13510 config/ia64/ia64.md, config/ip2k/libgcc.S, 13511 config/mips/mips-ps-3d.md, config/mips/mips.c, 13512 config/rs6000/rs6000.c, config/s390/s390.c, 13513 config/sh/symbian.c: Fix comment typos. 13514 135152004-09-10 Andreas Krebbel <krebbel1@de.ibm.com> 13516 13517 * config/s390/s390.c (s390_emit_prologue): Added missing 13518 "{}" brackets. 13519 135202004-09-10 Kazu Hirata <kazu@cs.umass.edu> 13521 13522 * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix 13523 typos. Follow spelling conventions. 13524 135252004-09-10 Joseph S. Myers <jsm@polyomino.org.uk> 13526 13527 * toplev.c (warn_deprecated_use): Correct logic for saying "type" 13528 in diagnostic. Don't dereference NULL TYPE_NAME. 13529 135302004-09-10 Kazu Hirata <kazu@cs.umass.edu> 13531 13532 * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c, 13533 tree-data-ref.c, tree-flow.h, tree-ssa-operands.c, 13534 tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h, 13535 value-prof.c: Fix comment typos. Follow spelling conventions. 13536 135372004-09-10 Jan Hubicka <jh@suse.cz> 13538 13539 * tree-ssa-dce.c (remove_dead_stmt): Update profile. 13540 * tree-split_edge.c (tree_split_edge): Likewise. 13541 (thread_jumps): Likewise. 13542 135432004-09-10 Kazu Hirata <kazu@cs.umass.edu> 13544 13545 * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment 13546 typos. 13547 135482004-09-10 Paolo Bonzini <bonzini@gnu.org> 13549 13550 * cgraph.h (cgraph_dump_file): Do not declare. 13551 * cgraphunit.c (cgraph_dump_file): Declare as static. 13552 (init_cgraph): New. 13553 * toplev.c (cgraph_dump_file): Do not declare. 13554 (compile_file): Call init_cgraph. 13555 * tree-dump.c (dump_files): Add IPA dump file, remove 13556 XML dump of call graph. 13557 (get_dump_file_name): Support IPA dump file naming scheme. 13558 * tree.h (enum tree_dump_index): Add IPA dump file, remove 13559 XML dump of call graph. 13560 * doc/invoke.texi (Debugging Options): Document the new options. 13561 135622004-09-10 Richard Sandiford <rsandifo@redhat.com> 13563 13564 * doc/extend.texi: Document the FR-V built-in functions. 13565 135662004-09-09 James E Wilson <wilson@specifixinc.com> 13567 13568 * doc/sourcebuild.texi: Delete libbanshee reference. 13569 135702004-09-10 Kelley Cook <kcook@gcc.gnu.org> 13571 13572 * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command. 13573 135742004-09-09 James E Wilson <wilson@specifixinc.com> 13575 13576 * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE 13577 before calling vector_types_convertible_p. 13578 (digest_init): Check that inside_init has VECTOR_TYPE before calling 13579 vector_types_convertible_p. Don't give another error if 13580 convert_for_assignment returns error_mark_node. 13581 135822004-09-09 Roger Sayle <roger@eyesopen.com> 13583 13584 PR middle-end/17055 13585 * fold-const.c (build_zero_vector): New function to construct a 13586 vector (either floating point or integer) of zeros. 13587 (fold_convert): Internally, enable conversions of integer zero 13588 to arbitrary vector types, using the new build_zero_vector. 13589 135902004-09-09 Roger Sayle <roger@eyesopen.com> 13591 13592 * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to 13593 expand a left shift by an immediate constant as either an ashl or 13594 a sequence of additions. 13595 (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function 13596 instead of calling gen_ashlsi3 with a constant directly. 13597 135982004-09-09 Roger Sayle <roger@eyesopen.com> 13599 13600 * config/i386/i386.c (ix86_split_long_move): When optimizing for 13601 size, and the low and high parts of a DImode constant are equal, 13602 copy one register to another instead of loading the same immediate 13603 value twice. 13604 136052004-09-09 Richard Henderson <rth@redhat.com> 13606 13607 PR middle-end/17367 13608 * function.c (assign_parm_setup_block): Only put PARALLELs into 13609 a register if use_register_for_decl. 13610 136112004-09-09 Eric Christopher <echristo@redhat.com> 13612 13613 * ra-colorize.c (reset_lists): Move variable declaration inside 13614 ENABLE_CHECKING to avoid unused variable warnings when 13615 not --enable-checking. 13616 (check_colors): Ditto. 13617 136182004-09-09 Mike Stump <mrs@apple.com> 13619 13620 * version.c (version_string): Bump to 4.0.0. 13621 * doc/include/gcc-common.texi (version-GCC): Likewise. 13622 136232004-09-10 Jakub Jelinek <jakub@redhat.com> 13624 13625 * doc/extend.texi (nothrow attribute): The attribute is not 13626 implemented in 3.2 and earlier. 13627 136282004-09-09 Steve Ellcey <sje@cup.hp.com> 13629 13630 * genrecog.c (compute_predicate_codes): Use op0_codes 13631 instead of codes. 13632 136332004-09-09 Ulrich Weigand <uweigand@de.ibm.com> 13634 13635 * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET 13636 implementation changes. 13637 136382004-09-09 Ulrich Weigand <uweigand@de.ibm.com> 13639 13640 * combine.c (try_combine): When swapping i2 and i3, newi2pat may be 13641 a PARALLEL instead of a SET due to added clobbers. 13642 136432004-09-09 Ulrich Weigand <uweigand@de.ibm.com> 13644 13645 * reload.c (find_reloads_address): Pass correct operand to 13646 maybe_memory_address_p. 13647 136482004-09-09 Daniel Berlin <dberlin@dberlin.org> 13649 13650 * Makefile.in: Remove libbanshee, tree-alias-*. 13651 Remove tree-alias-common.h dependencies. 13652 * common.opt: Remove -ftree-points-to. 13653 * configure.ac: Remove libbanshee. 13654 * flags.h: Remove pta_type, flag_tree_points_to. 13655 * gengtype.c (open_base_files): Remove tree-alias-type.h. 13656 * opts.c (OPT_ftree_points_to): Remove. 13657 * toplev.c: Remove tree-alias-common.h, flag_tree_points_to. 13658 * tree-dfa.c: Remove tree-alias-common.h 13659 * tree-into-ssa.c: Ditto. 13660 * tree-outof-ssa.c: Ditto. 13661 * tree-ssa-copyrename.c: Ditto. 13662 * tree-ssa-live.c: Ditto. 13663 * tree-optimize.c: Ditto. 13664 * tree-ssa.c: Ditto. 13665 Remove pass_build_pta, pass_del_pta. 13666 * tree-pass.h: Ditto. 13667 * tree-ssa-alias.c: Remove tree-alias-common.h. 13668 (struct alias_stats_d): Remove pta_queries, pta_resolved. 13669 (pass_may_alias): Remove PROP_pta requirement. 13670 (may_alias_p): Remove pta_queries, pta_resolved, use of andersens. 13671 (get_tmt_for): Ditto. 13672 (dump_alias_stats): Ditto. 13673 * doc/passes.texi: Remove blurb about points-to analysis. 13674 * fortran/Make-lang.in: Remove tree-alias-*.o. 13675 136762004-09-09 Richard Sandiford <rsandifo@redhat.com> 13677 13678 * genattrtab.c (write_insn_cases): New function, split out from 13679 write_attr_case. Correctly handle define_peepholes when printing 13680 the instruction name. 13681 (write_attr_case, write_const_num_delay_slots): Use write_insn_cases. 13682 136832004-09-09 Hans-Peter Nilsson <hp@axis.com> 13684 13685 PR target/17377 13686 * config/cris/cris-protos.h (cris_return_address_on_stack): Declare. 13687 * config/cris/cris.c (cris_return_address_on_stack): New function. 13688 * config/cris/cris.md ("return"): For location of return address, 13689 also check cris_return_address_on_stack. 13690 136912004-09-09 Diego Novillo <dnovillo@redhat.com> 13692 13693 * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in 13694 calling phi_ssa_name_p. 13695 136962004-09-09 Richard Henderson <rth@redhat.com> 13697 13698 PR c/17322 13699 * c-typeck.c (valid_compound_expr_initializer): Use only 13700 initializer_constant_valid_p, and not TREE_CONSTANT. 13701 (digest_init): Likewise. 13702 (output_init_element): Likewise. 13703 137042004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org> 13705 13706 * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1, 13707 live_out_1, prune_hardregs_for_mode, init_one_web_common, 13708 reinit_one_web, add_subweb, add_subweb_2, init_web_parts, 13709 record_conflict, compare_and_free_webs, init_webs_defs_uses, 13710 parts_to_webs_1, parts_to_webs, reset_conflicts, 13711 check_conflict_numbers, remember_web_was_spilled, handle_asm_insn, 13712 ra_build_free): Use gcc_assert and gcc_unreachable instead of abort. 13713 * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end, 13714 put_move, remove_move, combine, select_spill, colorize_one_web, 13715 try_recolor_web, insert_coalesced_conflicts, check_colors, 13716 break_precolored_alias, restore_conflicts_from_coalesce, 13717 sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise. 13718 * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads, 13719 reloads_to_loads, rewrite_program2, emit_colors): Likewise. 13720 * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra, 13721 check_df): Likewise. 13722 * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc, 13723 real_arithmetic, real_compare, real_exponent, real_ldexp, 13724 real_identical, real_to_integer, real_to_integer2, real_to_decimal, 13725 real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo, 13726 real_digit, real_nan, real_maxval, round_for_format, real_convert, 13727 real_to_target, real_from_target, real_hash, encode_ieee_single, 13728 encode_ieee_double, encode_ieee_extended, encode_ieee_quad, 13729 encode_vax_f, encode_vax_d, encode_vax_g, encode_i370_single, 13730 encode_i370_double, encode_c4x_single, encode_c4x_extended): Likewise. 13731 * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok, 13732 extract_insn, peep2_next_insn, peep2_reg_dead_p, 13733 peep2_find_free_register, peephole2_optimize, store_data_bypass_p, 13734 if_test_bypass_p): Likewise. 13735 * reg-stack.c (record_label_references, get_asm_operand_n_inputs, 13736 stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn, 13737 emit_swap_insn, swap_to_top, move_for_stack_reg, 13738 subst_stack_regs_pat, subst_asm_stack_regs, change_stack, 13739 compensate_edge, convert_regs_1): Likewise. 13740 * regclass.c (init_reg_sets, init_reg_sets_1, 13741 memory_move_secondary_cost): Likewise. 13742 * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx): 13743 Likewise. 13744 * reload.c (push_secondary_reload, find_valid_class, push_reload, 13745 operands_match_p, decompose, immune_p, find_reloads, 13746 find_reloads_toplev, find_reloads_address_1, subst_reloads, 13747 copy_replacements, refers_to_regno_for_reload_p, 13748 reg_overlap_mentioned_for_reload_p): Likewise. 13749 * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload, 13750 count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn, 13751 verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use, 13752 reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict, 13753 choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns, 13754 do_output_reload, fixup_abnormal_edges): Likewise. 13755 * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags, 13756 fill_slots_from_thread, relax_delay_slots): Likewise. 13757 * resource.c (mark_referenced_resources, mark_set_resources): 13758 Likewise. 13759 * rtl.c (copy_rtx, rtx_equal_p): Likewise. 13760 * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p, 13761 dead_or_set_p, find_reg_fusage, remove_note, replace_rtx, 13762 subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p, 13763 find_first_parameter_load, can_hoist_insn_p, hoist_update_store, 13764 hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise. 13765 * rtlhooks.c (gen_lowpart_general): Likewise. 13766 * sbitmap.c (sbitmap_difference): Likewise. 13767 * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2, 13768 sched_analyze, add_forward_dependence): Likewise. 13769 * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise. 13770 * sched-rgn.c (debug_regions, compute_trg_info, schedule_region, 13771 schedule_insns): Likewise. 13772 * sched-vis.c (print_pattern): Likewise. 13773 * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise. 13774 * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, 13775 simplify_const_relational_operation, simplify_ternary_operation, 13776 simplify_immed_subreg, simplify_subreg, simplify_gen_subreg): 13777 Likewise. 13778 * sreal.c (copy, sreal_sub, sreal_div): Likewise. 13779 * stmt.c (force_label_rtx, expand_goto, expand_asm_operands, 13780 resolve_operand_name_1, expand_return, expand_decl, 13781 expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise. 13782 * stor-layout.c (put_pending_size, smallest_mode_for_size, 13783 int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type, 13784 set_sizetype, get_mode_bounds): Likewise. 13785 137862004-09-09 Zack Weinberg <zack@codesourcery.com> 13787 13788 * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default. 13789 * config/arm/pecoff.h, config/i386/beos-elf.h 13790 * config/i386/cygming.h, config/i386/i386-interix.h: 13791 Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove 13792 comment cloned from manual. 13793 * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES. 13794 137952004-09-09 Frank Ch. Eigler <fche@redhat.com> 13796 13797 * builtins.c (build_va_arg_indirect_ref): New function. 13798 (std_gimplify_va_arg_expr): Call it instead of mudflap check and 13799 build_fold_indirect_ref. 13800 * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. 13801 * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto. 13802 * tree.h: Declare new function. 13803 138042004-09-09 Nathan Sidwell <nathan@codesourcery.com> 13805 13806 * cgraphunit.c (cgraph_mark_functions_to_output): Renable node 13807 dumping for development builds. 13808 * emit-rtl.c (verify_rtx_sharing): Give verbose failure for 13809 development builds only. 13810 * genattrtab.c (write_eligible_delay): Fix typo in previous 13811 commit. 13812 * tree.c (iterative_hash_expr): Replace gcc_unreachable with 13813 gcc_assert. 13814 138152004-09-09 Nathan Sidwell <nathan@codesourcery.com> 13816 13817 * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set, 13818 cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set, 13819 process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn, 13820 hoist_code, extract_mentioned_regs_helper, compute_store_table, 13821 insert_store): Use gcc_assert and gcc_unreachable. 13822 * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free, 13823 gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs, 13824 ggc_record_overhead): Likewise. 13825 * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p, 13826 init_ggc, ggc_push_context, ggc_recalculate_in_use_p, 13827 ggc_pop_context, clear_marks, validate_free_objects, 13828 ggc_pch_read): Likewise. 13829 * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark, 13830 ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone, 13831 ggc_push_context, check_cookies, ggc_collect, 13832 ggc_print_statistics): Likewise. 13833 * gimple-low.c (lower_function_body, lower_stmt, 13834 lower_bind_expr): Likewise. 13835 * gimplify.c (gimple_tree_eq, push_gimplify_context, 13836 pop_gimplify_context, gimple_pop_condition, create_tmp_var, 13837 declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus, 13838 mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr, 13839 gimplify_case_label_expr, gimplify_exit_block_expr, 13840 canonicalize_component_ref, gimplify_compound_lval, 13841 gimplify_self_mod_expr, gimplify_call_expr, 13842 gimplify_init_ctor_eval, gimplify_init_constructor, 13843 gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr, 13844 gimplify_expr, check_pointer_types_r, 13845 force_gimple_operand): Likewise. 13846 * global.c (global_alloc, build_insn_chain): Likewise. 13847 * graph.c (clean_graph_dump_file, 13848 finish_graph_dump_file): Likewise. 13849 gcov-io.c (gcov_open): Use GCOV_CHECK. 13850 138512004-09-09 Richard Sandiford <rsandifo@redhat.com> 13852 13853 * config/frv/frv.c (acc_operand, accg_operand): Use REGNO. 13854 138552004-09-09 Jan Hubicka <jh@suse.cz> 13856 13857 middle-end/17128 13858 * tree-inline.c (expand_call_inline): Make overactive sanity check 13859 happy. 13860 138612004-09-09 Jan Hubicka <jh@suse.cz> 13862 13863 * tree-ssa-loop-ivopts.c (peel_address): Fix abort on 13864 VIEW_CONVERT_EXPR. 13865 138662004-09-09 Nathan Sidwell <nathan@codesourcery.com> 13867 13868 * Makefile.in (gengtype): Use $(BUILD_ERRORS). 13869 (gengtype.o): Depend on errors.h. 13870 * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable. 13871 (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr, 13872 attr_alt_subset_p, attr_alt_subset_of_compl_p, 13873 attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn, 13874 write_test_expr, write_attr_value, write_eligible_delay, 13875 make_internal_attr, make_numeric_value): Likewise. 13876 * genautomata.c (regexp_name, get_str_vect, 13877 gen_presence_absence_set, automaton_decl_hash, 13878 automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash, 13879 decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps, 13880 process_regexp_cycles, reserv_sets_cmp, set_unit_reserv, 13881 test_unit_reserv, it_is_empty_reserv_sets, 13882 reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or, 13883 reserv_sets_and, output_cycle_reservs, get_free_state, 13884 intersected_state_reservs_p, states_union, remove_arc, 13885 copy_insn_regexp, transform_1, transform_2, transform_3, 13886 regexp_transform_func, store_alt_unit_usage, 13887 check_regexp_units_distribution, process_seq_for_forming_states, 13888 process_alts_for_forming_states, make_automaton, 13889 form_arcs_marked_by_insn, create_composed_state, 13890 set_out_arc_insns_equiv_num, partition_equiv_class, 13891 process_insn_equiv_class, set_insn_equiv_classes, 13892 units_to_automata_heuristic_distr, form_regexp, 13893 longest_path_length, output_dfa_max_issue_rate, add_vect, 13894 out_state_arcs_num, add_vect_el, output_trans_table, 13895 output_state_alts_table, output_dead_lock_vect, 13896 output_max_insn_queue_index_def, 13897 output_min_insn_conflict_delay_func, 13898 output_internal_insn_latency_func, output_print_reservation_func, 13899 output_cpu_unit_reservation_p, output_state_arcs, 13900 make_insn_alts_attr, make_internal_dfa_insn_code_attr, 13901 make_default_insn_latency_attr, 13902 form_important_insn_automata_lists): Likewise. 13903 * genemit.c (gen_exp, output_add_clobbers, 13904 output_added_clobbers_hard_reg_p): Likewise. 13905 * genextract.c (print_path, main): Likewise. 13906 * genflags.c (gen_macro): Likewise. 13907 * gengenrtl.c: Include errors.h 13908 (type_from_format, accessor_from_format): Likewise. 13909 * gengtype.c (get_file_basename, output_mangled_typename, 13910 walk_type, write_types_process_field, 13911 write_types_local_process_field): Likewise. 13912 * genmodes.c (complete_mode): Likewise. 13913 * genopinit.c (gen_insn): Likewise. 13914 * genoutput.c (output_insn_data, check_constraint_len, 13915 constraint_len): Likewise. 13916 * genpreds.c (add_mode_tests):Likewise. 13917 * gen-protos.c (add_hash): Likewise. 13918 * genrecog.c (find_operand, find_matching_operand, 13919 validate_pattern, add_to_sequence, maybe_both_true, 13920 nodes_identical_1, merge_trees, write_switch, write_cond, 13921 write_action, is_unconditional, make_insn_sequence, 13922 debug_decision_2): Likewise. 13923 * gensupport.c (is_predicable, collect_insn_data, 13924 alter_predicate_for_insn, maybe_eval_c_test): Likewise. 13925 139262004-09-09 Jan Hubicka <jh@suse.cz> 13927 13928 * basic-block.h (guess_outgoing_edge_probabilities): Declare. 13929 * cfgbuild.c (compute_outgoing_frequencies): When probability is 13930 missing, guess it. 13931 (find_many_sub_basic_blocks): Do update profile only when it is 13932 present. 13933 * predict.c (set_even_probabilities): Break out from ... 13934 (combine_predictions_for_insn): ... here; deal with 13935 !can_predict_insn_p insns. 13936 (combine_predictions_for_bb): Use set_even_probabilities. 13937 (bb_estimate_probability_locally): Break out from .... 13938 (estimate_probability): ... here. 13939 (guess_outgoing_edge_probabilities): New entry point. 13940 139412004-09-09 Nathan Sidwell <nathan@codesourcery.com> 13942 13943 * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1, 13944 handle_braces, process_brace_body, main, used_arg, 13945 set_multilib_dir, print_multilib_info): Use fatal, not abort. 13946 13947 * tree-nested.c (create_tmp_var_for): Correct missinverted assert. 13948 13949 * tree-outof-ssa.c (free_temp_expr_table): Add missed assert. 13950 * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de 13951 Morgan's theorem in last checkin. 13952 139532004-09-09 Giovanni Bajo <giovannibajo@gcc.gnu.org> 13954 Nathan Sidwell <nathan@codesourcery.com> 13955 13956 * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p): 13957 Use gcc_assert, gcc_unreachable & internal_error instead of abort. 13958 * timevar.c (timevar_push, timevar_pop, timevar_start, 13959 timevar_stop): Likewise. 13960 * toplev.c (default_pch_valid_p): Likewise. 13961 * tracer.c (tail_duplicate): Likewise. 13962 * tree-alias-common.c (get_alias_var_decl, 13963 get_values_from_constructor, create_alias_var, delete_alias_vars, 13964 empty_points_to_set, same_points_to_set, ptr_may_alias_var): 13965 Likewise. 13966 * tree.c (tree_size, make_node_stat, copy_node_stat, 13967 build_int_cst_wide, integer_all_onesp, list_length, chainon, 13968 tree_node_structure, type_contains_placeholder_p, substitute_in_expr, 13969 substitute_placeholder_in_expr, tabilize_reference_1, build0_stat, 13970 build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p, 13971 lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr, 13972 build_method_type_directly, decl_type_context, get_callee_fndecl, 13973 get_set_constructor_bits, build_vector_type_for_mode, int_cst_value, 13974 tree_fold_gcd): Likewise. 13975 * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges, 13976 make_cond_expr_edges, group_case_labels, tree_merge_blocks, 13977 cleanup_control_expr_graph, find_taken_edge, 13978 find_taken_edge_switch_expr, phi_alternatives_equal, 13979 is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt, 13980 stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate, 13981 tree_split_edge, tree_verify_flow_info, thread_jumps, 13982 tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise. 13983 * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly, 13984 chrec_fold_multiply_poly_poly): Likewise. 13985 * tree-complex.c (extract_component, expand_complex_division, 13986 expand_complex_comparison, expand_complex_operations_1, 13987 build_replicated_const, expand_vector_operations_1): Likewise. 13988 * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector, 13989 build_classic_dir_vector): Likewise. 13990 * tree-dfa.c (compute_immediate_uses_for_phi, 13991 compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann, 13992 create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise. 13993 * tree-dump.c (dequeue_and_dump): Likewise. 13994 * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region, 13995 record_in_finally_tree, replace_goto_queue_1, 13996 maybe_record_in_goto_queue, verify_norecord_switch_expr, 13997 do_return_redirection): Likewise. 13998 * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr, 13999 add_to_dst_predicate_list, find_phi_replacement_condition, 14000 replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order): 14001 Likewise. 14002 * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r, 14003 initialize_inlined_parameters, declare_return_variable, 14004 estimate_num_insns_1, expand_call_inline, expand_calls_inline, 14005 optimize_inline_calls, copy_tree_r): Likewise. 14006 * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt, 14007 ssa_rewrite_stmt, rewrite_into_ssa): Likewise. 14008 * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after, 14009 tsi_split_statement_list_after, tsi_split_statement_list_before): 14010 Likewise. 14011 * tree-mudflap.c (mf_varname_tree): Likewise. 14012 * tree-nested.c (create_tmp_var_for, lookup_field_for_decl, 14013 lookup_tramp_for_decl, convert_all_function_calls): Likewise. 14014 * tree-optimize.c (tree_rest_of_compilation): Likewise. 14015 * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi, 14016 coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis, 14017 free_temp_expr_table, add_dependance, finish_expr, rewrite_trees): 14018 Likewise. 14019 * tree-phinodes.c (resize_phi_node, add_phi_arg, 14020 remove_all_phi_nodes_for): Likewise. 14021 * tree-pretty-print.c (op_prio, print_call_name): Likewise. 14022 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler, 14023 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise. 14024 * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree, 14025 sra_elt_eq, sra_walk_expr, instantiate_missing_elements, 14026 generate_one_element_ref, generate_element_copy, 14027 generate_element_zero, scalarize_copy, scalarize_init, 14028 scalarize_ldst): Likewise. 14029 * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p, 14030 add_may_alias, add_pointed_to_expr, add_pointed_to_var, 14031 collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise. 14032 * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise. 14033 * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value, 14034 set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment, 14035 widen_bitfield, ccp_fold_builtin): Likewise. 14036 * tree-ssa-copy.c (may_propagate_copy, merge_alias_info, 14037 replace_exp_1, propagate_tree_value): Likewise. 14038 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. 14039 * tree-ssa-dce.c (set_control_dependence_map_bit, 14040 find_control_dependence, find_pdom, mark_operand_necessary, 14041 mark_stmt_if_obviously_necessary, 14042 mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise. 14043 * tree-ssa-dom.c (dom_opt_initialize_block_local_data, 14044 simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis, 14045 eliminate_redundant_computations, avail_expr_eq): Likewise. 14046 * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise. 14047 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p, 14048 duplicate_blocks): Likewise. 14049 * tree-ssa-loop-im.c (for_each_index, set_level, 14050 is_call_clobbered_ref): Likewise. 14051 * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos, 14052 stmt_after_increment, set_iv, contains_abnormal_ssa_name_p, 14053 find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates, 14054 peel_address, ptr_difference_cost, may_replace_final_value, 14055 determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer, 14056 rewrite_use, rewrite_uses): Likewise. 14057 * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, 14058 check_loop_closed_ssa_use): Likewise. 14059 * tree-ssanames.c (make_ssa_name): Likewise. 14060 * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses, 14061 finalize_ssa_v_must_defs, finalize_ssa_stmt_operands, 14062 get_stmt_operands, get_expr_operands, get_asm_expr_operands, 14063 get_indirect_ref_operands, add_stmt_operand): Likewise. 14064 * tree-ssa-pre.c (value_exists_in_set_bitmap, 14065 value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set, 14066 phi_translate, valid_in_set, compute_antic, 14067 find_or_generate_expression, create_expression_by_pieces, insert_aux, 14068 create_value_expr_from, eliminate): Likewise. 14069 * tree-ssa-propagate.c (cfg_blocks_get): Likewise. 14070 * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges): 14071 Likewise. 14072 * tree-tailcall.c (independent_of_stmt_p, adjust_return_value, 14073 eliminate_tail_call): Likewise. 14074 * tree-vectorizer.c (vect_create_index_for_array_ref, 14075 vect_align_data_ref, vect_create_data_ref, 14076 vect_create_destination_var, vect_get_vec_def_for_operand, 14077 vect_finish_stmt_generation, vect_transform_stmt, 14078 vect_transform_loop_bound, vect_transform_loop, 14079 vect_analyze_operations): Likewise. 14080 * tree-vn.c (vn_compute, set_value_handle, get_value_handle): 14081 Likewise. 14082 * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr, 14083 get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start, 14084 bsi_after_labels, bsi_last): Likewise. 14085 * tree-ssa-live.c (var_union, change_partition_var, 14086 create_ssa_var_map, calculate_live_on_entry, root_var_init, 14087 type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce): 14088 Likewise. 14089 * tree-ssa-live.h (partition_is_global, live_entry_blocks, 14090 tpa_find_tree): Likewise. 14091 (register_ssa_partition_check): Declare. 14092 (register_ssa_partition): use it. 14093 * tree-ssa-live.c: Include errors.h. 14094 (register_ssa_partition_check): New. 14095 * tree-ssa-operands.c: Include errors.h. 14096 * Makefile.in (tree-ssa-operands.o): Depend on errors.h. 14097 140982004-09-09 Richard Sandiford <rsandifo@redhat.com> 14099 Catherine Moore <clm@redhat.com> 14100 14101 * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450) 14102 (FRV_CPU_FR405): New processor enums. 14103 (frv_issue_rate, frv_acc_group): Declare. 14104 * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete. 14105 (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete. 14106 (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros. 14107 (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete. 14108 (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously 14109 handled by CPP_SPEC. 14110 (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros. 14111 (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros. 14112 (ACC_MASK): New macro. 14113 (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}. 14114 (TARGET_MEDIA_FR450): New macro. 14115 (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros. 14116 (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls. 14117 (LABEL_ALIGN_AFTER_BARRIER): Define. 14118 (ACC_LAST, ACCG_LAST): Add four new accumulator registers. 14119 (IACC_FIRST, IACC_LAST): New pair of SPRs. 14120 (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly. 14121 (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER) 14122 (REGISTER_NAMES): Add entries for new registers. 14123 (REG_CLASS_CONTENTS): Update for new register ranges. 14124 (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand. 14125 (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete. 14126 (PACKING_FLAG_USED_P): Delete. 14127 (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI) 14128 (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL) 14129 (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS) 14130 (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS) 14131 (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS) 14132 (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l}) 14133 (FRV_BUILTIN_SCAN): New members of frv_builtin_enum. 14134 (FRV_BUILTIN_FIRST_NONMEDIA): New macro. 14135 (CPU_UNITS_QUERY): Define to 1. 14136 * config/frv/frv.c: Include gt-frv.h 14137 (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros. 14138 (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros. 14139 (frv_insn_group): New enumeration. 14140 (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables. 14141 (frv_type_to_unit, frv_nops, frv_num_nops): New variables. 14142 (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK) 14143 (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the 14144 gap left by REGSTATE_LIVE. 14145 (regstate_t): New typedef. 14146 (TARGET_MACHINE_DEPENDENT_REORG): Define. 14147 (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}. 14148 (frv_override_options): Check for -mcpu={fr550,fr450,fr405}. 14149 Initialize frv_unit_codes[] and frv_type_to_unit[]. 14150 (frv_conditional_register_usage): Remove redundant fixing of 14151 accumulator registers. 14152 (frv_insn_packing_flag): Update specification. 14153 (frv_function_prologue): Don't set frv_insn_packing_flag here. 14154 Zero out frv_nops[]. 14155 (frv_expand_epilogue): Remove comments about the no-longer-present 14156 SIBCALL_P argument. 14157 (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than 14158 PACKING_FLAG_USED_P() when deciding whether to pack instructions. 14159 (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light 14160 of the new meaning of frv_insn_packing_flag. Emit an mnop.p if 14161 packing is disabled and if INSN can only issue to M1. 14162 (call_operand): Check TARGET_LONG_CALLS. 14163 (acc_operand, even_acc_operand, quad_acc_operand) 14164 (accg_operand): Simplify. Don't accept pseudo registers. 14165 (output_move_single): Handle SPR<-zero moves. 14166 (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}. 14167 (frv_registers_update, frv_registers_used_p): Delete. 14168 (frv_registers_set_p): Delete. 14169 (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions. 14170 (frv_issues_to_branch_unit_p): New function. 14171 (frv_packet): New structure. 14172 (frv_cond_flags, frv_regstate_conflict_p): New functions. 14173 (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions. 14174 (frv_registers_update_1, frv_registers_update): New functions. 14175 (frv_start_packet, frv_start_packet_block, frv_finish_packet) 14176 (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet) 14177 (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns) 14178 (frv_sort_insn_group, frv_reorder_packet): New functions. 14179 (frv_pack_insns): Use frv_reorder_packet. 14180 (frv_packet_address): New variable. 14181 (frv_fill_unused_units, frv_align_label, frv_reorg_packet) 14182 (frv_register_nop, frv_reorg): New functions. 14183 (bdesc_1arg): Add __SCUTSS. 14184 (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS, 14185 __SUBSS, __SLASS and __SCAN. 14186 (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI. 14187 (bdesc_int_void2arg, bdesc_prefetches): New arrays. 14188 (frv_init_builtins): Register the above builtins. 14189 (frv_int_to_acc): Use ACC_MASK to check for valid accumulator 14190 registers. Turn the referenced accumulators into global registers. 14191 (frv_read_iacc_argument): New function. 14192 (frv_expand_int_void2arg, frv_expand_prefetches): New functions. 14193 (frv_split_iacc_move): New function. 14194 (frv_expand_builtin): Handle the new builtins. 14195 * config/frv/frv.md: Replace old schedulers with new order-independent 14196 ones. Add schedulers for the FR405, FR450 and FR550. Describe new 14197 packing algorithm. 14198 (cpu): Add fr550, fr450 and fr405. 14199 (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and 14200 mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7. 14201 (*muladd[sd]f4, *mulsub[sd]f4): Fix types. 14202 (*cmp[sd]f_cc_fp): Use new f[sd]cmp types. 14203 (fnop, mnop): New patterns. 14204 (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI): 14205 New constants. 14206 (mexpdhw, *cond_exec_mexpdhw): Fix destination operands. 14207 (mclracca8): Use ACC_MASK to determine the upper set of accumulator 14208 registers. 14209 (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns. 14210 (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS) 14211 (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS) 14212 (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll) 14213 (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS) 14214 (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants. 14215 (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss) 14216 (frv_prefetch0, frv_prefetch): New patterns. 14217 * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and 14218 -mcpu=simple. Add -mcpu=fr550. 14219 (MULTILIB_DIRNAMES): Update accordingly. 14220 (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and 14221 -mcpu=fr450. 14222 * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405}, 14223 -mlong-calls and -malign-labels options for FR-V. 14224 142252004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 14226 14227 PR c/8420 14228 * c-tree.h (struct c_declspecs): New. 14229 (struct c_declarator, struct c_type_name, struct c_parm): Update 14230 element types. 14231 (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned, 14232 start_function, start_decl, build_c_parm, 14233 make_pointer_declarator): Update prototypes. 14234 (build_null_declspecs, declspecs_add_qual, declspecs_add_type, 14235 declspecs_add_scspec, declspecs_add_attrs): New. 14236 (split_specs_attrs): Remove. 14237 * c-parse.in (%union): Add dsptype. 14238 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea, 14239 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea, 14240 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea, 14241 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea, 14242 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea, 14243 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea, 14244 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea, 14245 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts, 14246 declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa, 14247 declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs, 14248 maybe_type_quals_attrs): Change to dsptype. 14249 (struct c_declspec_stack): New. 14250 (current_declspecs, declspec_stack): Change type. 14251 (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new 14252 structures. 14253 (extdefs): Likewise. 14254 (setspecs): Likewise. 14255 (fndef): Use current_declspecs for empty declspecs list. 14256 (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea, 14257 declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea, 14258 declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea, 14259 declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea, 14260 declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea, 14261 declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea, 14262 declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea, 14263 declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new 14264 structures and helper functions. Update comments. 14265 (typespec_nonattr): Correct comment. 14266 (maybe_type_quals_attrs, typename): Update to new structures. 14267 * c-decl.c (grokdeclarator, build_array_declarator, grokfield, 14268 shadow_tag, shadow_tag_warned, start_function, start_decl, 14269 build_c_parm, make_pointer_declarator, 14270 set_array_declarator_inner, groktypename): Update to new 14271 structures. 14272 (build_null_declspecs, declspecs_add_qual, declspecs_add_type, 14273 declspecs_add_scspec, declspecs_add_attrs): New. 14274 (split_specs_attrs): Remove. 14275 (shadow_tag_warned): Make warning for useless type names a 14276 pedwarn. Give hard error for long, short, signed, unsigned or 14277 _Complex used with struct, union or enum in empty declaration. 14278 Make found_tag a bool. 14279 (grokdeclarator): Remove checks now done at parse time. 14280 142812004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 14282 14283 * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct 14284 c_declarator, struct c_type_name, struct c_parm): New. 14285 (build_array_declarator, set_array_declarator_inner, 14286 get_parm_info, grokfield, groktypename, grokparm, push_parm_decl, 14287 start_function, start_decl, build_c_parm, build_attrs_declarator, 14288 build_function_declarator, make_pointer_declarator, c_cast_expr, 14289 store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes. 14290 (build_id_declarator): New. 14291 * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new 14292 structures. 14293 * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, 14294 ARG_INFO_OTHERS): Remove. 14295 (build_id_declarator): New. 14296 (build_array_declarator, set_array_declarator_inner, groktypename, 14297 start_decl, grokparm, push_parm_decl, grokparms, get_parm_info, 14298 grokfield, start_function, store_parm_decls_newstyle, 14299 store_parm_decls_oldstyle, store_parm_decls, 14300 build_c_parm, build_attrs_declarator, build_function_declarator, 14301 make_pointer_declarator, grokdeclarator): Update to new 14302 structures. 14303 * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and 14304 parmtype. 14305 (declarator, notype_declarator, after_type_declarator, 14306 parm_declarator, parm_declarator_starttypename, 14307 parm_declarator_nostarttypename, array_declarator, typename, 14308 absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1, 14309 absdcl_maybe_attribute, parm, firstparm, parms, parmlist, 14310 parmlist_1, parmlist_2, parmlist_or_identifiers, 14311 parmlist_or_identifiers_1): Use these types. 14312 (primary, after_type_declarator, parm_declarator_starttypename, 14313 notype_declarator, component_decl, component_declarator, 14314 component_notype_declarator, typename, absdcl, 14315 absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1, 14316 parmlist_2, parmlist_or_identifiers_1): Update to new structures. 14317 143182004-09-09 Joseph S. Myers <jsm@polyomino.org.uk> 14319 14320 * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof, 14321 in_typeof, record_maybe_used_decl, pop_maybe_used, 14322 c_expr_sizeof_expr, c_expr_sizeof_type): New. 14323 * c-decl.c (parser_obstack): New. 14324 (c_init_decl_processing): Initialize parser_obstack. 14325 (c_write_global_declarations_1): Check for used but undefined 14326 static functions. 14327 * c-parse.in (%union): Add otype. 14328 (save_obstack_position): New. 14329 (extdefs): Use it. 14330 (unary_expr): Update in_sizeof and in_alignof. Use 14331 c_expr_sizeof_expr and c_expr_sizeof_type. 14332 (sizeof): Update in_sizeof. 14333 (alignof): Update in_alignof. 14334 (typeof): Update in_typeof. 14335 (typespec_nonreserved_nonattr): Call pop_maybe_used. 14336 * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct 14337 maybe_used_decl, maybe_used_decls, record_maybe_used_decl, 14338 pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New. 14339 (build_external_ref): Set C_DECL_USED or call 14340 record_maybe_used_decl if appropriate. 14341 * toplev.c (check_global_declarations): Check TREE_NO_WARNING. 14342 143432004-09-08 Eric Christopher <echristo@redhat.com> 14344 14345 * builtins.c: Fix prototype for fold_builtin_atan. 14346 143472004-09-08 Eric Christopher <echristo@redhat.com> 14348 14349 * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt, 14350 fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan, 14351 fold_builtin_atan): New functions. Migrate function bodies... 14352 (fold_builtin_1): ... from here. 14353 143542004-09-09 Alan Modra <amodra@bigpond.net.au> 14355 14356 * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of 14357 save_size. 14358 143592004-09-08 David Edelsohn <edelsohn@gnu.org> 14360 14361 * config/rs6000/power4.md (power4-lmul): du4 feeds iu1. 14362 * config/rs6000/power5.md (power5-lmul): Same. 14363 143642004-09-08 Richard Henderson <rth@redhat.com> 14365 14366 PR rtl-opt/17186 14367 * function.c (expand_function_end): Have fall-off-the-end 14368 return path jump around return register setup. 14369 143702004-09-08 Eric Botcazou <ebotcazou@libertysurf.fr> 14371 14372 * config/sparc/sparc.c (sparc_indent_opcode): New variable. 14373 (output_return): Do not test for the presence of the 'unimp' insn. 14374 Use 'current_function_uses_only_leaf_regs' and 'final_sequence' 14375 as predicates instead of custom ones. Return raw strings when 14376 possible. 14377 (output_sibcall): Likewise. Concatenate strings. 14378 (output_ubranch): Remove kludge for TurboSPARC. 14379 (output_cbranch): Remove 'noop' parameter. Do not output 'nop'. 14380 (output_v9branch): Likewise. 14381 (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'. 14382 <#>: Set sparc_indent_opcode if the delay slot is filled. 14383 <(>: Likewise. 14384 <)>: New operand to emit the displacement from the saved PC on return. 14385 <@>: Remove. 14386 * config/sparc/sparc.h (sparc_indent_opcode): Declare it. 14387 (ASM_OUTPUT_OPCODE): New macro. 14388 (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'. 14389 * config/sparc/sparc.md (normal_branch, inverted_branch, 14390 normal_fp_branch, inverted_fp_branch, normal_fpe_branch, 14391 inverted_fpe_branch): Adjust call to output_cbranch. 14392 (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust 14393 call to output_v9branch. 14394 * config/sparc/sparc-protos.h (output_cbranch): Adjust. 14395 (output_v9branch): Likewise. 14396 143972004-09-08 Devang Patel <dpatel@apple.com> 14398 14399 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr, 14400 -segs_read_only_addr and -segs_read_write_addr. 14401 (WORD_SWITCH_TAKES_ARG): Same. 14402 (LINK_SPEC): Same. 14403 * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and 14404 -segs_read_write_addr. 14405 144062004-09-08 Richard Henderson <rth@redhat.com> 14407 14408 * function.c (reference_callee_copied): New. 14409 (assign_parm_setup_reg): Use it. 14410 * calls.c (initialize_argument_information): Likewise. 14411 (emit_library_call_value_1): Likewise. 14412 * function.h (reference_callee_copied): Declare. 14413 14414 * target.h (struct gcc_target): Add callee_copies. 14415 * target-def.h (TARGET_CALLEE_COPIES): New. 14416 (TARGET_PASS_BY_REFERENCE): Update default. 14417 * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14418 * targhooks.c (hook_callee_copies_named): New. 14419 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from 14420 hook_pass_by_reference_false. 14421 (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New. 14422 * targhooks.h: Update decls. 14423 * config/arc/arc.c (TARGET_CALLEE_COPIES): New. 14424 * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14425 * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove. 14426 * config/frv/frv.c (frv_function_arg_callee_copies): Remove. 14427 * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14428 * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New. 14429 * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14430 * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New. 14431 * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14432 * config/mips/mips.c (TARGET_CALLEE_COPIES): New. 14433 (mips_callee_copies): New. 14434 * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14435 * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New. 14436 * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14437 * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New. 14438 * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14439 * config/pa/pa.c (TARGET_CALLEE_COPIES): New. 14440 * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14441 * config/sh/sh.c (sh_callee_copies): New. 14442 (TARGET_CALLEE_COPIES): New. 14443 * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14444 * config/v850/v850.c (TARGET_CALLEE_COPIES): New. 14445 * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove. 14446 * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation 14447 for FUNCTION_ARG_CALLEE_COPIES. 14448 * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update. 14449 144502004-09-08 Devang Patel <dpatel@apple.com> 14451 14452 * tree-if-conv.c (find_phi_replacement_condition): Return true 14453 edge block. 14454 (replace_phi_with_cond_modify_expr): Select conditional expr args 14455 based on true edge basic block. 14456 144572004-09-08 Jan Hubicka <jh@suse.cz> 14458 14459 * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for 14460 variables being alias set. 14461 144622004-09-08 Nathan Sidwell <nathan@codesourcery.com> 14463 14464 * final.c (shorten_branches, final, get_insn_template, 14465 output_alternate_entry_point, final_scan_insn, alter_subreg, 14466 alter_cond, output_operand, asm_fprintf, final_forward_branch_p, 14467 leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable. 14468 * fix-header.c (lookup_std_proto): Likewise. 14469 * flow.c (first_insn_after_basic_block_note, verify_wide_reg, 14470 verify_local_live_at_start, update_life_info, mark_reg, 14471 calculate_global_regs_live, allocate_reg_life_data, 14472 init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1, 14473 ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond, 14474 attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise. 14475 * fold-const.c (force_fit_type, div_and_round_double, 14476 may_negate_without_overflow_p, int_const_binop, const_binop, 14477 size_binop, size_diffop, fold_convert_const, fold_convert, 14478 invert_tree_comparison, swap_tree_comparison, 14479 comparison_to_compcode, compcode_to_comparison, invert_truthvalue, 14480 range_binop, make_range, fold_cond_expr_with_comparison, 14481 fold_div_compare, fold, fold_checksum_tree, fold_negate_const, 14482 fold_abs_const, fold_not_const, fold_relational_const, round_up, 14483 round_down): Likewise. 14484 * function.c (find_function_data, assign_stack_temp_for_type, 14485 instantiate_virtual_regs_lossage, aggregate_value_p, 14486 assign_parm_find_entry_rtl, assign_parm_setup_block, 14487 expand_function_start, expand_function_end, keep_stack_depressed, 14488 handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise. 14489 144902004-09-08 Daniel Berlin <dberlin@dberlin.org> 14491 14492 * Makefile.in (tree-loop-linear.o): Added. 14493 (OBJS-common): Add tree-loop-linear.o 14494 * common.opt: New flag, ftree-loop-linear. 14495 * timevar.def: New timevar, TV_TREE_LOOP_LINEAR. 14496 * tree-flow.h: Add prototype for linear_transform_loops. 14497 * tree-optimize.c: Add linear transform after vectorization. 14498 * tree-pass.h: Add struct pass_linear_transform. 14499 * tree-ssa-loop.c: Add pass_linear_transform. 14500 * tree-loop-linear.c: New file. 14501 * lambda-code.c: gcc_assertify. 14502 (gcc_loop_to_lambda_loop): Handle all exit tests. 14503 Handle case where we have (invariant >= induction var). 14504 (find_induction_var_from_exit_cond): Ditto. 14505 145062004-09-08 Jie Zhang <zhangjie@magima.com.cn> 14507 14508 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type 14509 memory tag is call clobbered, so are its aliases. 14510 (group_aliases): When two memory tags being grouped, if one is 14511 call clobbered, so are the other and its aliases. 14512 (add_may_alias): Remove call-clobbering stuff. 14513 (replace_may_alias): Likewise. 14514 (merge_pointed_to_info): Merge pt_global_mem 14515 145162004-09-08 Jan Hubicka <jh@suse.cz> 14517 14518 * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node. 14519 * cgraphunit.c (verify_cgraph): Don't verify on syntax errors. 14520 (cgraph_expand_function): Remove stale cgraph edges of currently 14521 compiled function; fix non-unit-at-a-time code copying function 14522 node for later reuse. 14523 145242004-09-08 Nathan Sidwell <nathan@codesourcery.com> 14525 14526 * vec.c (vec_p_reserve, vec_o_reserve): Rename to ... 14527 (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to 14528 (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust. 14529 (vec_gc_free, vec_heap_free): New. 14530 * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New. 14531 (DEF_VEC_P): Add allocator argument. Adjust. 14532 (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New. 14533 (DEF_VEC_O): Add allocator argument. Adjust. 14534 (VEC(free)): New. 14535 14536 * tree.h (tree): Define a GC'd vector. 14537 * lamba-code.c (lambda_loop): Likewise. 14538 * value-prof.h (histogram_value): Likewise. 14539 145402004-09-08 Nathan Sidwell <nathan@codesourcery.com> 14541 14542 * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable. 14543 (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno, 14544 gen_lowpart_common, gen_highpart, gen_highpart_mode, 14545 subreg_highpart_offset, operand_subword, operand_subword_force, 14546 mem_expr_equal_p, set_mem_attributes_minus_bitpos, 14547 set_mem_alias_set, change_address_1, verify_rtx_sharing, 14548 copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter, 14549 try_split, add_insn_after, add_insn_before, remove_insn, 14550 remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before, 14551 emit_call_insn_before, emit_insn_after, emit_jump_insn_after, 14552 emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn, 14553 set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1, 14554 gen_const_vector_0, emit_copy_of_insn_after): Likewise. 14555 * et-forest.c (set_prev, set_next, et_check_occ_sanity, 14556 record_path_before_1, check_path_after_1, check_path_after): Likewise. 14557 * except.c (gen_eh_region, resolve_one_fixup_region, 14558 remove_unreachable_regions, convert_from_eh_region_ranges_1, 14559 add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads, 14560 connect_post_landing_pads, sjlj_emit_function_exit, 14561 remove_exception_handler_label, remove_eh_handler, 14562 reachable_next_level, collect_one_action_chain, 14563 output_function_exception_table): Likewise. 14564 * explow.c (trunc_int_for_mode, copy_to_mode_reg, 14565 optimize_save_area_alloca, allocate_dynamic_stack_space, 14566 probe_stack_range, hard_function_value): Likewise. 14567 * expmed.c (mode_for_extraction, store_bit_field, 14568 store_fixed_bit_field, extract_bit_field, expand_shift, 14569 expand_mult_const, expand_mult, choose_multiplier, 14570 expand_mult_highpart, expand_divmod, emit_store_flag, 14571 do_cmp_and_jump): Likewise. 14572 * expr.c (convert_move, convert_modes, move_by_pieces, 14573 move_by_pieces_ninsns, move_by_pieces_1, emit_block_move, 14574 move_block_from_reg, gen_group_rtx, emit_group_load, 14575 emit_group_move, emit_group_store, use_reg, use_regs, 14576 can_store_by_pieces, store_by_pieces, store_by_pieces_1, 14577 emit_move_insn, emit_move_insn_1, emit_push_insn, 14578 expand_assignment, store_expr, count_type_elements, 14579 store_constructor, store_field, safe_from_p, expand_var, 14580 expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise. 14581 145822004-09-08 Nathan Sidwell <nathan@codesourcery.com> 14583 14584 * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use 14585 gcc_assert and gcc_unreachable. 14586 * ddg.c (create_ddg_dependence, add_deps_for_def, 14587 add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise. 14588 * df.c (df_ref_unlink, df_ref_record, df_uses_record, 14589 df_reg_def_chain_create, df_reg_use_chain_create, df_analyze, 14590 df_insn_delete, df_refs_reg_replace, df_ref_reg_replace, 14591 df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p, 14592 df_bb_reg_live_end_p, df_bb_regs_lives_compare, 14593 df_bb_single_def_use_insn_find, dataflow_set_a_op_b, 14594 dataflow_set_copy, hybrid_search, diagnostic.c, 14595 diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise. 14596 * dojump.c (do_jump): Likewise. 14597 * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree, 14598 compute_dom_fast_query, calculate_dominance_info, 14599 free_dominance_info, get_immediate_dominator, 14600 set_immediate_dominator, get_dominated_by, 14601 redirect_immediate_dominators, nearest_common_dominator, 14602 dominated_by_p, verify_dominators, recount_dominator, 14603 iterate_fix_dominators, add_to_dominance_info, 14604 delete_from_dominance_info): Likewise. 14605 * dwarf2asm.c (size_of_encoded_value, eh_data_format_name, 14606 dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128, 14607 dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise. 14608 * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save, 14609 initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust, 14610 flush_queued_reg_saves, dwarf2out_frame_debug_expr, 14611 dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi, 14612 output_call_frame_info, output_loc_operands, build_cfa_loc, 14613 decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string, 14614 AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external, 14615 AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die, 14616 splice_child_die, attr_checksum, same_dw_val_p, 14617 break_out_includes, build_abbrev_table, size_of_die, mark_dies, 14618 unmark_dies, value_format, output_loc_list, output_die, 14619 output_pubnames, output_aranges, base_type_die, is_base_type, 14620 modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor, 14621 mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1, 14622 field_byte_offset, add_data_member_location_attribute, 14623 add_const_value_attribute, rtl_for_decl_location, 14624 add_location_or_const_value_attribute, add_byte_size_attribute, 14625 add_bit_offset_attribute, add_bit_size_attribute, 14626 add_abstract_origin_attribute, pop_decl_scope, scope_die_for, 14627 decl_start_label, gen_formal_parameter_die, 14628 gen_type_die_for_member, gen_subprogram_die, gen_label_die, 14629 gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die, 14630 force_decl_die, force_type_die, gen_decl_die, 14631 dwarf2out_imported_module_or_decl, prune_unused_types_prune, 14632 dwarf2out_finish): Likewise. 14633 146342004-09-08 Andreas Tobler <toa@pop.agri.ch> 14635 14636 * Makefile.in (builtins.o): Depend on tree-mudflap.h. 14637 * builtins.c: Include tree-mudflap.h. 14638 146392004-09-08 Uros Bizjak <uros@kss-loka.si> 14640 14641 * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not 14642 force operand 0.0 into register in XFmode. Also do not force 14643 operand 0.0 into register if !TARGET_CMOVE. 14644 * config/i386/i386.md (*cmpfp_0): Delete. Remove comment. 14645 (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to 14646 implement ftst x87 instruction. 14647 (*fp_jcc_7): New insn pattern. Change corresponding split 14648 pattern to handle "general_operand" instead of 14649 "nonimmediate_operand". 14650 146512004-09-08 Ben Elliston <bje@au.ibm.com> 14652 14653 * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG. 14654 146552004-09-07 Frank Ch. Eigler <fche@redhat.com> 14656 14657 * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes 14658 generated from standard va_arg expansion. 14659 * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from 14660 marked nodes. 14661 (mf_varname_tree, mf_file_function_line_tree): Add some support 14662 for column numbers if compiled with USE_MAPPED_LOCATION. 14663 146642004-09-07 Ziemowit Laski <zlaski@apple.com> 14665 14666 * c-decl.c (groktypename_in_parm_context): Remove function. 14667 * c-tree.h (groktypename_in_parm_context): Remove prototype. 14668 146692004-09-07 Ziemowit Laski <zlaski@apple.com> 14670 14671 * Makefile.in (c-parse.o): Depend on $(C_COMMON_H). 14672 * c-parse.in: Include c-common.h instead of objc-act.h. 14673 (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator, 14674 myparms, myparm): Remove %type declarations. 14675 (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual, 14676 objc_typename, objc_try_catch_stmt, optellipsis): Add %type 14677 declarations. 14678 (objc_inherit_code, objc_public_flag): Remove. 14679 (typespec_nonreserved_nonattr): Call 14680 objc_get_protocol_qualified_type() instead of get_static_reference() 14681 and get_protocol_reference(). 14682 (stmt_nocomp): Call grokparm() on @catch parameter. 14683 (objcdef): Move semantic action to objc_finish_implementation(). 14684 (classdef): Move semantic action to objc_start_class_interface(), 14685 objc_continue_interface(), objc_finish_interface(), 14686 objc_start_class_implementation(), objc_continue_implementation(), 14687 objc_start_category_interface() and 14688 objc_start_category_implementation(). 14689 (protocoldef): Move semantic actions to objc_start_protocol() and 14690 objc_finish_interface(). 14691 (ivar_decl_list): Remove nonterminal. 14692 (visibility_spec): Move semantic actions to objc_set_visibility(). 14693 (ivar_decls): Remove assignment to $$. 14694 (ivar_decl): Rephrase in terms of component_decl; call 14695 objc_add_instance_variable(). 14696 (ivars, ivar_declarator): Remove nonterminals. 14697 (opt_semi): New nonterminal. 14698 (methodtype): Remove semantic actions. 14699 (methoddef): Move semantic actions to objc_set_method_type(), 14700 objc_start_method_definition() and objc_finish_method_definition(). 14701 (methodproto): Move semantic actions to objc_set_method_type() and 14702 objc_add_method_declaration(). 14703 (methoddecl): Use objc_typename instead of typename; move semantic 14704 actions to objc_build_method_signature(). 14705 (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals. 14706 (optparmlist): Express in terms of optparms and optellipsis. 14707 (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New 14708 nonterminals. 14709 (keyworddecl): Use objc_typename instead of typename. 14710 (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF 14711 and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse(). 14712 147132004-09-08 Alan Modra <amodra@bigpond.net.au> 14714 14715 * doc/tm.texi (MD_UNWIND_SUPPORT): Document. 14716 (MD_FALLBACK_FRAME_STATE_FOR): Update. 14717 * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined. 14718 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation. 14719 (MD_FROB_UPDATE_CONTEXT): Remove default. 14720 (uw_update_context_1): Instead #ifdef invocation. 14721 * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined. 14722 (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation. 14723 * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef. 14724 (MD_UNWIND_SUPPORT): Undefine this instead. 14725 * config/i386/gnu.h: Likewise. 14726 * config/alpha/linux-unwind.h: New file, macro converted to 14727 function, extracted from.. 14728 * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this. 14729 (MD_UNWIND_SUPPORT): Define. 14730 * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise. 14731 * config/i386/linux-unwind.h, config/i386/linux.h, 14732 config/i386/linux64.h: Likewise. 14733 * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise. 14734 MD_HANDLE_UNWABI too. 14735 * config/mips/linux-unwind.h, config/mips/linux.h: Likewise. 14736 * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise. 14737 * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise. 14738 * config/s390/linux-unwind.h, config/s390/linux.h: Likewise. 14739 * config/sparc/linux-unwind.h, config/sparc/linux.h, 14740 config/sparc/linux64.h: Likewise. 14741 * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge 14742 SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state. 14743 * config/rs6000/linux-unwind.h, config/rs6000/linux.h, 14744 config/rs6000/linux64.h: Likewise. Split out get_sigcontext 14745 function. Use ARG_POINTER_REGNUM for 32-bit temp reg too. 14746 147472004-09-07 Jan Hubicka <jh@suse.cz> 14748 14749 * cse.c (fold_rtx): Avoid building of 14750 (CONST (MINUS (CONST_INT) (SYMBOL_REF))) 14751 14752 * tree-ssa-pre.c (grand_bitmap_obstack): New. 14753 (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack. 14754 (init_pre): Initialize obstack. 14755 (fini_pre): Free obstack. 14756 147572004-09-07 David Daney <ddaney@avtrex.com> 14758 14759 * config.gcc: Added support for --with-divide=[breaks|traps] for 14760 mips targets. 14761 * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit. 14762 (TARGET_DIVIDE_TRAPS): New macro. 14763 (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks. 14764 (OPTION_DEFAULT_SPECS): Added --with-divide= support. 14765 * config/mips/mips.c (mips_idiv_insns): Generate proper count on 14766 GENERATE_DIVIDE_TRAPS. 14767 (mips_output_division): Emit conditional trap if 14768 GENERATE_DIVIDE_TRAPS is set. 14769 * doc/install.texi: Document --with-divide. 14770 * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks. 14771 147722004-09-07 Caroline Tice <ctice@apple.com> 14773 14774 * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag, 14775 EDGE_CROSSING, to flags test case. 14776 147772004-09-07 Jan Hubicka <jh@suse.cz> 14778 14779 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<' 14780 class too. 14781 147822004-09-07 Nathan Sidwell <nathan@codesourcery.com> 14783 14784 * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from, 14785 cfgbuild.c, inside_basic_block_p, control_flow_insn_p, 14786 make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert 14787 or gcc_unreachable. 14788 * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks, 14789 remove_edge, alloc_aux_for_blocks, free_aux_for_blocks, 14790 alloc_aux_for_edges, free_aux_for_edges): Likewise. 14791 * cfgcleanup.c (try_forward_edges, 14792 merge_blocks_move_predecessor_nojumps, 14793 merge_blocks_move_successor_nojumps): Likewise. 14794 * cfgexpand.c (expand_gimple_cond_expr, 14795 expand_gimple_tailcall): Likewise. 14796 * cfghooks.c (duplicate_block): Likewise. 14797 * cfglayout.c (record_effective_endpoints, 14798 insn_locators_initialize, change_scope, fixup_reorder_chain, 14799 verify_insn_chain, fixup_fallthru_exit_predecessor, 14800 duplicate_insn_chain, cfg_layout_finalize): Likewise. 14801 * cfgloopanal.c (check_irred): Likewise. 14802 * cfgloop.c (superloop_at_depth, flow_loops_free, 14803 flow_loop_entry_edges_find, flow_loops_find, 14804 flow_loop_outside_edge_p, get_loop_body, 14805 get_loop_body_in_dom_order, get_loop_body_in_bfs_order, 14806 get_loop_exit_edges, num_loop_branches, cancel_loop, 14807 verify_loop_structure): Likewise. 14808 cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge, 14809 duplicate_loop_to_header_edge, create_preheader, 14810 create_loop_notes): Likewise. 14811 * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump, 14812 edirect_branch_edge, force_nonfallthru_and_redirect, 14813 rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion, 14814 commit_edge_insertions, commit_edge_insertions_watch_calls, 14815 purge_dead_edges, cfg_layout_redirect_edge_and_branch, 14816 cfg_layout_redirect_edge_and_branch_force, 14817 cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise. 14818 * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge, 14819 cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info, 14820 cgraph_varpool_node): Likewise. 14821 * cgraphunit.c (cgraph_finalize_function, 14822 cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output, 14823 cgraph_expand_function, cgraph_remove_unreachable_nodes, 14824 cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, 14825 cgraph_mark_inline, cgraph_expand_all_functions, 14826 cgraph_build_static_cdtor): Likewise. 14827 * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx, 14828 simplify_logical, distribute_notes, insn_cuid): Likewise. 14829 * conflict.c (conflict_graph_add, print_conflict): Likewise. 14830 * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref, 14831 coverage_checksum_string): Likewise. 14832 * cse.c (make_new_qty, make_regs_eqv, insert, invalidate, 14833 hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage, 14834 cse_cc_succs, cse_condition_code_reg): Likewise. 14835 * cselib.c (entry_and_rtx_equal_p, remove_useless_values, 14836 rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx, 14837 new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno, 14838 cselib_record_set): Likewise. 14839 148402004-09-07 Jan Hubicka <jh@suse.cz> 14841 14842 * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter. 14843 148442004-09-07 Nathan Sidwell <nathan@codesourcery.com> 14845 14846 * builtins.c (fold_builtin_strchr): Use build_int_cst, not 14847 fold_convert. 14848 (fold_builtin_strpbrk): Likewise. 14849 * expr.c (array_ref_low_bound): Likewise. 14850 * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1, 14851 interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise. 14852 * tree-sra.c (generate_element_zero): Likewise. 14853 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. 14854 * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step, 14855 add_old_iv_candidates, add_iv_candidates): Likewise. 14856 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. 14857 148582004-09-07 Nathan Sidwell <nathan@codesourcery.com> 14859 14860 * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable. 14861 * c-common.c (c_type_hash, c_common_nodes_and_builtins, 14862 c_expand_expr, boolean_increment, nonnull_check_p, 14863 check_function_arguments_recurse, fold_offsetof_1): Likewise. 14864 * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros, 14865 builtin_define_type_max): Likewise. 14866 * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level, 14867 implicit_decl_warning, builtin_function, build_compound_literal, 14868 complete_array_type, grokdeclarator, get_parm_info, 14869 start_function, store_parm_decls_oldstyle, 14870 c_write_global_declarations): Likewise. 14871 * c-format.c (get_constant, decode_format_attr, 14872 maybe_read_dollar_number, get_flag_spec, check_format_arg, 14873 check_format_types, format_type_warning, 14874 find_char_info_specifier_index, init_dynamic_asm_fprintf_info, 14875 init_dynamic_diag_info, handle_format_attribute): Likewise. 14876 * c-gimplify.c (push_context, pop_context, finish_bc_block): 14877 * c-lex.c (c_lex_with_flags, lex_string): Likewise. 14878 * c-objc-common.c (c_tree_printer): Likewise. 14879 * c-pch.c (pch_init): Likewise. 14880 * c-pragma.c (maybe_apply_pragma_weak): Likewise. 14881 * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise. 14882 * c-typeck.c (c_incomplete_type_error, composite_type, 14883 common_pointer_type, common_type, same_translation_unit_p, 14884 tagged_types_tu_compatible_p, finish_init, pop_init_level, 14885 set_designator, set_nonincremental_init_from_string, 14886 process_init_element, c_finish_if_stmt): Likewise. 14887 * caller-save.c (init_caller_save, save_call_clobbered_regs, 14888 insert_restore, insert_save, insert_one_insn): Likewise. 14889 * calls.c (emit_call_1, compute_argument_block_size, 14890 precompute_arguments, expand_call, emit_library_call_value_1, 14891 store_one_arg): Likewise. 14892 148932004-09-07 Nathan Sidwell <nathan@codesourcery.com> 14894 14895 * configure.ac (enable-checking): Add release option. Reorganize 14896 to avoid repetition. 14897 * configure: Rebuilt. 14898 * doc/install.texi (enable-checking): Amend documentation. 14899 149002004-09-06 H.J. Lu <hongjiu.lu@intel.com> 14901 14902 PR bootstrap/17313 14903 * Makefile.in (specs.ready): Depend on cc1$(exeext). 14904 149052004-09-06 James E Wilson <wilson@specifixinc.com> 14906 14907 * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit, 14908 movdf_hardfloat_32bit): Split fG into two alternatives. 14909 (movv2sf_hardfloat_64bit): Split fYG into two alternatives. 14910 14911 * emit-rtl.c (try_split): Check INSN_P before may_trap_p call. 14912 149132004-09-06 Eric Botcazou <ebotcazou@libertysurf.fr> 14914 14915 * final.c (output_in_slot): Delete. 14916 (final_scan_insn): Revert 2004-09-03 change. 14917 (output_asm_insn): Likewise. 14918 * config/sparc/sparc.c (output_return): Likewise. 14919 (output_sibcall): Likewise. 14920 149212004-09-06 Jan Hubicka <jh@suse.cz> 14922 14923 * loop.c (loop_dump_aux): Do not print RTL when not available. 14924 * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use 14925 frontend specific type nodes. 14926 (produce_memory_decl_rtl): Break out from ... 14927 (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly. 14928 (get_computation_at): Avoid random tree sharing. 14929 (tree_ssa_iv_optimize): Verify tree sharing; dump loops. 14930 149312004-09-06 Zack Weinberg <zack@codesourcery.com> 14932 14933 * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove 14934 unnecessary commands. 14935 149362004-09-06 Mohan Embar <gnustuff@thisiscool.com> 14937 14938 * Makefile.in (rtl.o): Remove -DGENERATOR_FILE. 14939 (bitmap.o): Likewise. 14940 149412004-09-06 Paolo Bonzini <bonzini@gnu.org> 14942 14943 Unify the management of RTL and tree-level dump files. 14944 14945 * cfgexpand.c (tree_expand_cfg): Fix incorrect comment. 14946 Don't print function name to the dump file, the pass manager 14947 would do this for us. Add code from the top of 14948 rest_of_compilation, up to the initial RTL dump. 14949 * passes.c (rest_of_handle_jump): Call fixup_tail_calls and 14950 close the DFI_sibling dump file. 14951 (rest_of_compilation): Don't do that here. Remove code up to the 14952 initial RTL dump. 14953 (init_optimization_passes): Remove. 14954 (pass_rest_of_compilation): Change pass name to NULL. 14955 * toplev.c (lang_dependent_init): Do not use an empty dump file prefix. 14956 Do not call init_optimization_passes. 14957 * toplev.h (init_optimization_passes): Remove. 14958 14959 * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file, 14960 finish_graph_dump_file): Remove SUFFIX parameter. 14961 * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file, 14962 finish_graph_dump_file): Likewise. 14963 14964 * tree-pass.h (struct tree_opt_pass): Add `letter' field. 14965 * cfgexpand.c (pass_expand): Adjust. 14966 * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust. 14967 * passes.c (pass_rest_of_compilation): Adjust. 14968 * predict.c (pass_profile): Adjust. 14969 * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust. 14970 * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts, 14971 pass_split_crit_edges, pass_warn_function_return): Adjust. 14972 * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust. 14973 * tree-dfa.c (pass_referenced_vars): Adjust. 14974 * tree-eh.c (pass_lower_eh): Adjust. 14975 * tree-if-conv.c (pass_build_ssa): Adjust. 14976 * tree-into-ssa.c (pass_build_ssa): Adjust. 14977 * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. 14978 * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. 14979 * tree-nrv.c (pass_nrv): Adjust. 14980 * tree-optimize.c (pass_gimple, pass_all_optimizations, 14981 pass_cleanup_cfg_post_optimizing, pass_free_datastructures, 14982 pass_init_datastructures): Adjust. 14983 * tree-outof-ssa.c (pass_del_ssa): Adjust. 14984 * tree-profile.c (pass_tree_profile): Adjust. 14985 * tree-sra.c (pass_sra): Adjust. 14986 * tree-ssa-alias.c (pass_may_alias): Adjust. 14987 * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust. 14988 * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust. 14989 * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust. 14990 * tree-ssa-dom.c (pass_dominator): Adjust. 14991 * tree-ssa-dse.c (pass_dse): Adjust. 14992 * tree-ssa-forwprop.c (pass_forwprop): Adjust. 14993 * tree-ssa-if-conv.c (pass_if_conversion): Adjust. 14994 * tree-ssa-loop-ch.c (pass_ch): Adjust. 14995 * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim, 14996 pass_loop_done, pass_complete_unroll, pass_iv_canon, 14997 pass_iv_optimize, pass_vectorize): Adjust. 14998 * tree-ssa-phiopt.c (pass_phiopt): Adjust. 14999 * tree-ssa-pre.c (pass_pre, pass_fre): Adjust. 15000 * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized, 15001 pass_late_warn_uninnitialized): Adjust. 15002 * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust. 15003 15004 * Makefile.in (tree-dump.o): Add new dependencies. 15005 * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all. 15006 * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize): 15007 Likewise. 15008 * toplev.c (dump_file_name): New. 15009 * tree-dump.c (dump_enable_all): Add LETTER parameter. 15010 (struct dump_file_info): Add NUM and LETTER fields. 15011 (dump_files): Adjust and add RTL dump files. 15012 (dump_register): Add NUM and LETTER fields. 15013 (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New. 15014 (dump_begin): Use get_dump_file_name. 15015 (dump_switch_p_1): Adjust call to dump_enable_all. 15016 * tree-dump.h (dump_register): Adjust prototype. 15017 * tree-optimize.c (register_one_dump_file): Take dump file index. 15018 Support flags for RTL dumps. 15019 (register_dump_files): Fill in NUM field of struct dump_file_info. 15020 Track properties both when the gate is executed and when it is not. 15021 (execute_todo): Dump RTL. Add PROPERTIES parameter. 15022 (execute_one_pass): Pass properties to execute_todo. Handle VCG 15023 dumps of RTL. 15024 * tree-pass.h (dump_file_name): New. 15025 * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p): 15026 New. 15027 15028 * Makefile.in (passes.o): Add new dependencies. 15029 * passes.c (struct dump_file_info, enum dump_file_index, 15030 dump_file_tbl, init_optimization_passes): Remove. 15031 (open_dump_file, close_dump_file): Use tree-dumping infrastructure. 15032 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use 15033 dump_enabled_p. 15034 (finish_optimization_passes): Update finish_graph_dump_file loop. 15035 (enable_rtl_dump_file): Remove. 15036 * tree-dump.c (dump_files): Adjust and add RTL dump files. 15037 (enable_rtl_dump_file): Add here. 15038 * tree.h (enum tree_dump_index): Add RTL dump file indices. 15039 * doc/invoke.texi (Debugging options): Document new RTL debugging 15040 options. Update. 15041 150422004-09-05 Kazu Hirata <kazu@cs.umass.edu> 15043 15044 * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c, 15045 gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c, 15046 stor-layout.c, target.h, tree-cfg.c, tree-chrec.c, 15047 tree-if-conv.c, tree-inline.c, tree-into-ssa.c, 15048 tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c, 15049 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c, 15050 tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h, 15051 vec.h: Fix comment formatting. 15052 150532004-09-05 Kazu Hirata <kazu@cs.umass.edu> 15054 15055 * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h, 15056 et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h, 15057 hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c, 15058 tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c, 15059 tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, 15060 tree-ssa-loop-niter.c, tree-ssa-operands.c, 15061 tree-ssa-operands.h, tree-ssa-propagate.c, 15062 tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c, 15063 vec.c, vec.h: Fix comment typos. Follow spelling conventions. 15064 150652004-09-05 Diego Novillo <dnovillo@redhat.com> 15066 15067 * tree-if-conv.c (gate_tree_if_conversion): Enable only if the 15068 vectorizer is enabled. 15069 150702004-09-05 Andreas Jaeger <aj@suse.de> 15071 15072 * tree-if-conv.c: Spell check comments and clean up whitespace. 15073 150742004-09-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 15075 15076 * tree-ssa-loop-ivopts.c: New file. 15077 * Makefile.in (tree-ssa-loop-ivopts.c): Add. 15078 * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost, 15079 target_pres_cost, target_spill_cost): Declare. 15080 * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost, 15081 spill_cost): Renamed to ... 15082 (target_avail_regs, target_res_regs, target_small_cost, 15083 target_pres_cost, target_spill_cost): ... and exported. 15084 (init_set_costs, global_cost_for_size): Work with renamed variables. 15085 * common.opt (flag_ivopts): New flag. 15086 * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle 15087 REF_ORIGINAL. 15088 * gimplify.c (struct gimplify_ctx): Add into_ssa field. 15089 (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support 15090 generating SSA form. 15091 (force_gimple_operand): New function. 15092 * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar. 15093 * tree-cfg.c (stmt_bsi): New function. 15094 * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, 15095 PARAM_IV_MAX_CONSIDERED_USES): New. 15096 * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge, 15097 bsi_insert_on_edge_immediate_loop. standard_iv_increment_position, 15098 ip_end_pos, ip_normal_pos, force_gimple_operand): Declare. 15099 * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names. 15100 * tree-nested.c (build_addr): Export. 15101 * tree-optimize.c (init_tree_optimization_passes): Add 15102 pass_iv_optimize. 15103 * tree-pass.h (pass_iv_optimize): Declare. 15104 * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and 15105 IMAGPART_EXPR. 15106 * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable 15107 as a phi node argument. 15108 (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop, 15109 ip_end_pos, ip_normal_pos, standard_iv_increment_position): New 15110 functions. 15111 * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export. 15112 * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts, 15113 pass_iv_optimize): New pass. 15114 * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL. 15115 * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL. 15116 * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions. 15117 * tree.h (REF_ORIGINAL): New macro. 15118 (build_int_cst_type, unsigned_type_for, zero_p, 15119 cst_and_fits_in_hwi, build_addr): Declare. 15120 * doc/invoke.texi (-fivopts): Document. 15121 (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, 15122 PARAM_IV_MAX_CONSIDERED_USES): Document. 15123 * doc/passes.texi: Document induction variable optimizations pass. 15124 151252004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15126 15127 * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New. 15128 * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1. 15129 * c-common.c (c_common_attribute_table): Accept parameters to 15130 sentinel attribute. 15131 (check_function_sentinel, handle_sentinel_attribute): Likewise. 15132 * doc/extend.texi: Update accordingly. 15133 151342004-09-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 15135 15136 * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST): 15137 New. 15138 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel' 15139 attribute. 15140 * c-common.c (handle_sentinel_attribute, check_function_sentinel): 15141 New functions. 15142 (c_common_attribute_table): Add `sentinel' attribute. 15143 (check_function_arguments): Handle `sentinel' attribute. 15144 * doc/extend.texi: Document `sentinel' attribute. 15145 151462004-09-04 H.J. Lu <hongjiu.lu@intel.com> 15147 15148 * configure: Regenerated. 15149 151502004-09-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15151 15152 * gimplify.c (internal_get_tmp_var): Remove unused var CLASS. 15153 15154 * tree.c (save_expr): No longer TREE_READONLY. 15155 151562004-09-04 Jan Hubicka <jh@suse.cz> 15157 15158 * passes.c (rest_of_clean_state): Fix merge conflict made during 15159 commiting the patch. 15160 151612004-09-04 Jan Hubicka <jh@suse.cz> 15162 15163 * passes.c (rest_of_clean_state): Decompose the instruction stream. 15164 151652004-09-04 Richard Sandiford <rsandifo@redhat.com> 15166 15167 * doc/md.texi (shift patterns): New anchor. Add reference to 15168 TARGET_SHIFT_TRUNCATION_MASK. 15169 * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document. 15170 * target.h (shift_truncation_mask): New target hook. 15171 * targhook.h (default_shift_truncation_mask): Declare. 15172 * targhook.c (default_shift_truncation_mask): Define. 15173 * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define. 15174 (TARGET_INITIALIZER): Include it. 15175 * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT 15176 and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise 15177 reject all out-of-range values. Fix sign-extension code for modes 15178 whose width is smaller than HOST_BITS_PER_WIDE_INT. 15179 * optabs.c (simplify_expand_binop, force_expand_binop): New functions. 15180 (expand_superword_shift, expand_subword_shift): Likewise. 15181 (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise. 15182 (expand_binop): Use them to implement double-word shifts. 15183 * config/arm/arm.c (arm_shift_truncation_mask): New function. 15184 (TARGET_SHIFT_TRUNCATION_MASK): Define. 15185 151862004-09-04 Jan Hubicka <jh@suse.cz> 15187 15188 * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object. 15189 (mix): New macro copied from hashtab.c 15190 (iterative_hash_hashval_t, iterative_hash_pointer, 15191 iterative_hash_host_wide_int): New functions based on hashtab.c 15192 implementation. 15193 151942004-09-04 Richard Sandiford <rsandifo@redhat.com> 15195 15196 * config/mips/mips.md (mask): New mode attribute. 15197 (zero_extendsidi2): Add memory alternative. 15198 (*zero_extendsidi2_mem): Delete. 15199 (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use 15200 memory_operand in the TARGET_MIPS16 check. 15201 (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns. 15202 Redefine using :GPR and :SHORT. 15203 (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check. 15204 152052004-09-04 Uros Bizjak <uros@kss-loka.si> 15206 15207 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L} 15208 using rint_optab. 15209 (expand_builtin): Expand BUILT_IN_RINT{,F,L} using 15210 expand_builtin_mathfn. 15211 * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use 15212 btrunc?f patterns for btrunc_optab. Implement rint_optab using 15213 rint?f patterns. 15214 * optabs.c (init_optabs): Initialize rint_optab. 15215 * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc. 15216 Add new OTI_rint. 15217 (btrunc_optab): Rename macro from trunc_optab. 15218 (rint_optab): Define corresponding macro. 15219 15220 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR, 15221 UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM. 15222 15223 * config/i386/i386-protos.h (emit_i387_cw_initialization): 15224 Change prototype. Add new int parameter. 15225 * config/i386/i386.c (emit_i387_cw_initialization): 15226 Handle new rounding modes. 15227 15228 * config/i386/i386.h (enum fp_cw_mode): Delete. 15229 (MODE_NEEDED): Handle new rounding modes. 15230 (EMIT_MODE_SET): Change condition to handle new rounding modes. 15231 15232 * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL, 15233 UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to 15234 represent different rounding modes of frndint insn. 15235 (type): Add frndint type. 15236 (i387, length, memory): Handle this type. 15237 (i387_cw): New attribute definition. 15238 (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory, 15239 *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory, 15240 *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory): 15241 Add "i387_cw" attribute defined to "trunc". 15242 (x86_fnstcw_1): Remove comment. 15243 (*frndintxf2): Rename insn definition to frndintxf2. Move 15244 insn definition near rint?f2 expanders. 15245 (rintdf2, rintsf2, rintxf2): New expanders to implement rint, 15246 rintf and rintl built-ins as inline x87 intrinsics. 15247 (frndintxf2_floor): New pattern to implement floor rounding 15248 mode with frndint x87 instruction. 15249 (floordf2, floorsf2, floorxf2): New expanders to implement floor, 15250 floorf and floorl built-ins as inline x87 intrinsics. 15251 (frndintxf2_ceil): New pattern to implement ceil rounding 15252 mode with frndint x87 instruction. 15253 (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil, 15254 ceilf and ceill built-ins as inline x87 intrinsics. 15255 (frndintxf2_trunc): New pattern to implement trunc rounding 15256 mode with frndint x87 instruction. 15257 (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc, 15258 truncf and truncl built-ins as inline x87 intrinsics. 15259 (frndintxf2_mask_pm): New pattern to implement rounding 15260 mode with exceptions with frndint x87 instruction. 15261 (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to 15262 implement nearbyint, nearbyintf and nearbyintl built-ins as 15263 inline x87 intrinsics. 15264 152652004-09-04 Richard Sandiford <rsandifo@redhat.com> 15266 15267 * config/mips/mips.md (SHORT): New mode macro. 15268 (size): New mode attribute. 15269 (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. 15270 (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous 15271 *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if 15272 !ISA_HAS_SEB_SEH. 15273 (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous 15274 *extend[qh]isi2_hw patterns and extending them to di. 15275 (extendqihi2): Implement as define_insn_and_split that produces 15276 extendqisi2 after reload. 15277 152782004-09-03 Devang Patel <dpatel@apple.com> 15279 15280 * Makefile.in (OBJS-common): Add tree-if-conv.o 15281 (tree-if-conv.o): New rule. 15282 * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag. 15283 (get_loop_body_in_bfs_order): New. 15284 * cfgloop.h (get_loop_body_in_bfs_order): New. 15285 * tree-flow.h (enum move_pos): Move here from .. 15286 * tree-ssa-loop-im.c (enum move_pos): here. 15287 (movement_possibility): Make externally visible. 15288 * tree-optimize.c (init_tree_optimization_passes): New entry for 15289 if conversion pass. 15290 * tree-pass.h (pass_if_conversion): New. 15291 * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR. 15292 * tree-if-conv.c: New file. 15293 * doc/passes.texi: Document tree if-conversion pass. 15294 * doc/tree-ssa.texi: Same. 15295 152962004-09-03 H.J. Lu <hongjiu.lu@intel.com> 15297 15298 PR target/14925: 15299 Makefile.in (LIB2ADDEHSTATIC): New. 15300 (LIB2ADDEHSHARED): New. 15301 (LIBUNWIND): New. 15302 (LIBUNWINDDEP): New. 15303 (SHLIBUNWIND_LINK): New. 15304 (SHLIBUNWIND_INSTALL): New. 15305 (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, 15306 LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL. 15307 (clean): Remove libunwind* 15308 (stage1-start): Remove and copy stage1/libunwind*. 15309 (stage2-start): Remove and copy stage2/libunwind*. 15310 (stage3-start): Remove and copy stage3/libunwind*. 15311 (stage4-start): Remove and copy stage4/libunwind*. 15312 (stageprofile-start): Remove and copy stageprofile/libunwind*. 15313 (stagefeedback-start): Remove and copy stagefeedback/libunwind*. 15314 15315 * config.gcc (ia64*-*-linux*): Always add t-libunwind to 15316 tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to 15317 tmake_file if --with-system-libunwind isn't used. 15318 15319 * config/ia64/t-glibc-libunwind: New file. 15320 * config/t-libunwind-elf: Likewise. 15321 * unwind-compat.c: Likewise. 15322 * unwind-compat.h: Likewise. 15323 * unwind-dw2-fde-compat.c: Likewise. 15324 15325 * config/ia64/t-glibc (LIB2ADDEH): Updated. 15326 * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. 15327 15328 * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define 15329 aliases if needed. 15330 * unwind-dw2-fde-glibc.c: Likewise. 15331 * unwind-dw2.c: Likewise. 15332 15333 * config/t-libunwind (LIB2ADDEH): Updated. 15334 (LIB2ADDEHSTATIC): New. 15335 (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. 15336 (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER. 15337 15338 * configure.ac: Change --enable-libunwind-exceptions to 15339 --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS. 15340 * configure: Regenerated. 15341 * config.in: Updated. 15342 15343 * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or 15344 above and mention --with-system-libunwind. 15345 (ia64-*-hpux*): Mention --enable-libunwind-exceptions is 15346 removed in gcc 3.4.3 and later. 15347 15348 * gcc.c (init_spec): Add -lunwind to -lgcc_s if 15349 USE_LIBUNWIND_EXCEPTIONS is defined. 15350 15351 * mklibgcc.in: Support libunwind. 15352 153532004-09-03 H.J. Lu <hongjiu.lu@intel.com> 15354 15355 * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and 15356 m_NOCONA. 15357 153582004-09-03 Richard Henderson <rth@redhat.com> 15359 15360 PR middle-end/9997 15361 * cfgexpand.c (LOCAL_ALIGNMENT): Provide default. 15362 (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise. 15363 (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num, 15364 stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc, 15365 frame_phase, get_decl_align_unit, add_stack_var, triangular_index, 15366 resize_stack_vars_conflict, add_stack_var_conflict, 15367 stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp, 15368 union_stack_vars, partition_stack_vars, dump_stack_var_partition, 15369 expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var, 15370 expand_one_static_var, expand_one_hard_reg_var, 15371 expand_one_register_var, expand_one_error_var, defer_stack_allocation, 15372 expand_one_var, expand_used_vars_for_block, clear_tree_used): New. 15373 (expand_used_vars): Rewrite. 15374 * Makefile.in (cfgexpand.o): Update dependencies. 15375 153762004-09-04 Jan Hubicka <jh@suse.cz> 15377 15378 * cfg.c (free_edge): Use ggc_free. 15379 (expunge_block): Use ggc_free. 15380 * passes.c (rest_of_clean_state): Free after compilation. 15381 * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs 15382 * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments. 15383 153842004-09-03 James E Wilson <wilson@specifixinc.com> 15385 15386 * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after 15387 DECL_EXTERNAL check. 15388 153892004-09-03 Eric Botcazou <ebotcazou@libertysurf.fr> 15390 15391 * final.c (output_in_slot): New global variable. 15392 (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter. 15393 Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set 15394 'output_in_slot' before invoking output_asm_insn. 15395 (output_asm_insn): Add a space after the tab if 'output_in_slot' 15396 is set. 15397 * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to 15398 final_scan_insn. 15399 (output_sibcall): Likewise. 15400 154012004-09-03 Jan Hubicka <jh@suse.cz> 15402 15403 * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays. 15404 * tree-ssanames (init_ssanames): Likewise. 15405 154062004-09-03 Ziemowit Laski <zlaski@apple.com> 15407 15408 * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class, 15409 objc_declare_protocols, objc_start_protocol, 15410 objc_start_class_interface, objc_start_category_interface, 15411 objc_continue_interface, objc_finish_interface, 15412 objc_add_instance_variable, objc_set_visibility, objc_set_method_type, 15413 objc_start_class_implementation, objc_start_category_implementation, 15414 objc_continue_implementation, objc_finish_implementation, 15415 objc_add_method_declaration, objc_start_method_definition, 15416 objc_finish_method_definition, objc_build_keyword_decl, 15417 objc_build_method_signature, objc_build_encode_expr, 15418 objc_build_protocol_expr, objc_build_selector_expr, 15419 objc_build_message_expr, objc_build_string_object, 15420 objc_get_class_reference, objc_get_protocol_qualified_type, 15421 objc_static_init_needed_p, objc_generate_static_init_call): New stubs. 15422 154232004-09-03 James E Wilson <wilson@specifixinc.com> 15424 15425 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d. 15426 15427 * config/mips/generic.md (generic_frecip_fsqrt_step): New. 15428 * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type. 15429 (mips_rsqrt2_<fmt>): Use frsqrt2 type. 15430 (mips_recip1_<fmt>): Use frdiv1 type. 15431 (mips_recip2_<fmt>): Use frdiv2 type. 15432 * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2. 15433 * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1 15434 and frsqrt1. 15435 (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New. 15436 154372004-09-03 Daniel Jacobowitz <dan@debian.org> 15438 15439 * reload.c (find_reloads): Swap operand_loc pointers for 15440 find_dummy_reload if we have swapped two operands. 15441 154422004-09-03 Hans-Peter Nilsson <hp@axis.com> 15443 15444 * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn 15445 to get the tablejump-insn before the jump-table label. 15446 154472004-09-03 Ziemowit Laski <zlaski@apple.com> 15448 15449 * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class, 15450 objc_declare_protocols, objc_build_message_expr, 15451 objc_finish_message_expr, objc_build_selector_expr, 15452 objc_build_protocol_expr, objc_build_encode_expr, 15453 objc_build_string_object, objc_get_protocol_qualified_type, 15454 objc_get_class_reference, objc_get_class_ivars, 15455 objc_start_class_interface, objc_start_category_interface, 15456 objc_start_protocol, objc_continue_interface, objc_finish_interface, 15457 objc_start_class_implementation, objc_start_category_implementation, 15458 objc_continue_implementation, objc_finish_implementation, 15459 objc_set_visibility, objc_set_method_type, objc_build_method_signature, 15460 objc_add_method_declaration, objc_start_method_definition, 15461 objc_finish_method_definition, objc_add_instance_variable, 15462 objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt, 15463 objc_finish_try_stmt, objc_begin_catch_clause, 15464 objc_finish_catch_clause, objc_build_finally_clause, 15465 objc_build_synchronized, objc_static_init_needed_p, 15466 objc_generate_static_init_call): New prototypes. 15467 154682004-09-03 Steve Ellcey <sje@cup.hp.com> 15469 15470 * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there 15471 is only one reg. 15472 (ia64_function_value): Ditto. 15473 154742004-09-03 Jan Beulich <jbeulich@novell.com> 15475 15476 * config.gcc: Resurrect NetWare as a target. Handle special case of 15477 Novell linker to be used (specified through --with-ld=) and threading 15478 model of either Posix (default) or NKS. 15479 * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping 15480 of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER. 15481 * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New. 15482 * config/i386/netware.c, config/i386/netware.h: New. 15483 * config/i386/nwld.c, config/i386/nwld.h: New. 15484 * config/i386/netware-crt0.c: New. 15485 * config/i386/netware-libgcc.c: New. 15486 * config/i386/netware-libgcc.def: New. 15487 * config/i386/netware-libgcc.exp: New. 15488 * config/i386/t-netware, config/i386/t-nwld: New. 15489 * gthr-nks.h: New. 15490 * doc/install.texi: Document NKS threading model. 15491 154922004-09-03 Jan Beulich <jbeulich@novell.com> 15493 15494 PR c/7054 15495 * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default. 15496 * tree.h (initial_max_fld_align): Declare 15497 * stor-layout.c (initial_max_fld_align): Define and initialize. 15498 (maximum_field_alignment): Initialize to the same value. 15499 * common.opt: Add -fpack-struct= variant of switch. 15500 * opts.c: Handle -fpack-struct= variant of switch. 15501 * c-pragma.c: Change #pragma pack() handling so that it becomes 15502 compatible to other compilers: accept individual 'push' argument, 15503 make final pop restore (command line) default, correct interaction 15504 of push/pop and sole specification of a new alignment (so that the 15505 sequence #pragma pack(push) - #pragma pack(<n>) becomes identical 15506 to #pragma pack(push, <n>). 15507 * doc/extend.texi: New node "Structure-Packing Pragmas" under 15508 "Pragmas", describing #pragma pack. 15509 * doc/invoke.texi: Document -fpack-struct=<n> variant of switch. 15510 * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP. 15511 Document new TARGET_DEFAULT_PACK_STRUCT. 15512 155132004-09-03 Devang Patel <dpatel@apple.com> 15514 15515 * dwarf2out.c (gen_field_die). Equate decl number to die. 15516 155172004-09-03 Vladimir Makarov <vmakarov@redhat.com> 15518 15519 PR target/15832 15520 * global.c (modify_reg_pav): New function. 15521 (make_accurate_live_analysis): Call the new function. Move pavin 15522 modification by earlyclobber set into the new function. 15523 155242004-09-03 Andreas Schwab <schwab@suse.de> 15525 15526 * config/m68k/m68k.c (output_andsi3): Use -1 instead of 15527 (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign 15528 extended. 15529 155302004-09-02 Jan Beulich <jbeulich@novell.com> 15531 15532 * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h. 15533 * mklibgcc.in (libgcc_dep): New, covering general dependencies, but 15534 not unwind code specific ones. 15535 (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep. 15536 Remove unwind code specific dependencies. 15537 (libgcov_c_dep): Replace general dependencies with use of libgcc_dep. 15538 Remove gbl-ctors.h. 15539 Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and 15540 LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH. 15541 * tsystem.h: Declare memcpy and memset when inhibit_libc. 15542 155432004-09-02 Roman Zippel <zippel@linux-m68k.org> 15544 15545 * combine.c (try_combine): Delay modifying of insns which cannot 15546 be easily undone. 15547 155482004-09-02 Daniel Berlin <dberlin@dberlin.org> 15549 15550 * common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to 15551 tree-loop-im. 15552 * tree-ssa-loop.c: Ditto 15553 * tree-ssa-loop-ivcanon.c: Ditto 15554 * doc/invoke.texi: Ditto. 15555 155562004-09-02 Ziemowit Laski <zlaski@apple.com> 15557 15558 * c-decl.c (store_parm_decls_newstyle): Make static. 15559 (store_parm_decls_from): New function. 15560 * c-tree.h (store_parm_decls_newstyle): Remove prototype. 15561 (store_parm_decls_from): New prototype. 15562 155632004-09-02 David Edelsohn <edelsohn@gnu.org> 15564 15565 * config/rs6000/rs6000.c (expand_block_move): Use SImode and 15566 HImode with STRICT_ALIGNMENT. 15567 155682004-09-02 Mark Mitchell <mark@codesourcery.com> 15569 15570 * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define. 15571 (TARGET_OS_CPP_BUILTINS): Likewise. 15572 * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include 15573 TARGET_BPABI_CPP_BUILTINS. 15574 155752004-09-02 Roman Zippel <zippel@linux-m68k.org> 15576 15577 * combine.c (distribute_notes): Don't add REG_LABEL to jump insn. 15578 155792004-09-02 Eric Christopher <echristo@redhat.com> 15580 15581 * builtins.c (expand_builtin_cabs): Delete. 15582 (expand_builtin): If unable to fold the values do a normal 15583 library call for builtin_cab*. 15584 (fold_builtin_cabs): Depend on optimize and optimize_size. 15585 * optabs.c (expand_cmplxdiv_straight): Delete. 15586 (expand_cmplxdiv_wide): Ditto. 15587 (expand_vector_binop): Ditto. 15588 (expand_vector_unop): Ditto. 15589 (expand_complex_abs): Delete. 15590 (expand_binop): Remove calls to above functions. 15591 Remove open coding of complex arithmetic. 15592 (expand_unop): Ditto. 15593 * optabs.h: Remove prototypes. 15594 155952004-09-02 Ziemowit Laski <zlaski@apple.com> 15596 15597 * c-decl.c (store_parm_decls_newstyle): Make externally visible. 15598 * c-tree.h (store_parm_decls_newstyle): New prototype. 15599 156002004-09-02 Geoffrey Keating <geoffk@apple.com> 15601 15602 * config/rs6000/rs6000.c (expand_block_clear): Use vector 15603 instructions if available. 15604 (expand_block_move): Likewise. 15605 156062004-09-03 Jan Hubicka <jh@suse.cz> 15607 15608 * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill. 15609 156102004-09-02 Mark Mitchell <mark@codesourcery.com> 15611 15612 * config/arm/symbian.h (LIB_SPEC): Define to empty. 15613 * config/arm/t-symbian (SHLIB_LC): Likewise. 15614 156152004-09-02 Paul Brook <paul@codesourcery.com> 15616 15617 * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove. 15618 156192004-09-02 Richard Sandiford <rsandifo@redhat.com> 15620 15621 * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns): 15622 (mips_restore_gp, mips_set_return_address, mips_expand_prologue) 15623 (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert. 15624 (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks. 15625 (mips_issue_rate): Remove unreachable abort. 15626 (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns) 15627 (mips_output_move, mips_relational_operand_ok_p, mips_arg_info) 15628 (mips_block_move_straight, print_operand_address, mips_file_start) 15629 (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1) 15630 (mips_output_conditional_branch, mips_expand_builtin_direct) 15631 (mips_expand_builtin_compare): Replace abort with gcc_unreachable. 15632 * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort 15633 with gcc_assert. 15634 156352004-09-02 Richard Sandiford <rsandifo@redhat.com> 15636 15637 * config/mips/mips.md (*lea_high64): Change split condition to 15638 flow2_completed. Add a peephole2 to generate a more parallel version. 15639 156402004-09-02 Jan Hubicka <jh@suse.cz> 15641 15642 * gimplify.c (gimplify_compound_lval): Move "stack" varray out of 15643 GGC. 15644 15645 * ggc-page.c: include tree-flow.h. 15646 (extra_order_size_table): Add stmt_ann_d. 15647 (STAT_LABEL): Rename from .... 15648 (LABEL): ... this one. 15649 * Makefile.in (ggc-page.o): Add dependency. 15650 15651 * ggc-common.c (ggc_force_collect): New global variable. 15652 (loc_description): Add fields "freed", "collected" 15653 (ptr_hash): New static hash 15654 (ptr_hash_entry): New structure. 15655 (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions. 15656 (ggc_record_overhead): Take ptr argument, record it 15657 (ggc_prune_overhead_list, ggc_free_overhead): New functions. 15658 (cmp_statistics): Imrove sorting. 15659 (dump_ggc_loc_statistics): Output newly collected statistics 15660 * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead 15661 (ggc_free): Call ggc_free_overhead. 15662 (ggc_collect): Force collection when asked to be forced. 15663 (ggc_collect): Call ggc_prune_overhead_list. 15664 * ggc.h (ggc_force_collect): Declare 15665 (ggc_record_overhead): Update prototype. 15666 (ggc_free_overhead, ggc_prune_overhead_list): Declare. 15667 156682004-09-02 James E Wilson <wilson@specifixinc.com> 15669 15670 * common.opt (ftrapping-math): Default to on. 15671 156722004-09-02 Richard Earnshaw <rearnsha@arm.com> 15673 15674 * arm/predicates.md (arm_reload_memory_operand): Allow MEM. 15675 156762004-09-02 Denis Chertykov <denisc@overta.ru> 15677 15678 PR target/16884 15679 * config/avr/avr.md ("movmemhi"): Substitute match_dup to 15680 match_scratch. 15681 (*movmemqi_insn): Likewise. 15682 (*movmemhi): Likewise. 15683 (clrmemhi): Likewise. 15684 (*clrmemqi): Likewise. 15685 (*clrmemhi): Likewise. 15686 156872004-09-02 Paul Brook <paul@codesourcery.com> 15688 15689 * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set 15690 default_use_cxa_atexit=yes. 15691 156922004-09-02 Alan Modra <amodra@bigpond.net.au> 15693 15694 * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h. 15695 (struct kernel_old_ucontext): Delete. 15696 (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New. 15697 (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define 15698 when IN_LIGGCC2. 15699 157002004-09-02 Richard Sandiford <rsandifo@redhat.com> 15701 15702 * toplev.c (process_options): Fix typo. 15703 157042004-09-01 Richard Henderson <rth@redhat.com> 15705 15706 PR middle-end/17258 15707 * calls.c (initialize_argument_information): Tighten pass-through 15708 conditions for pass-by-reference. Remove dead TARGET_EXPR code. 15709 Use build_fold_addr_expr. 15710 (emit_library_call_value_1): Use build_fold_addr_expr. Remove code 15711 that assumes ADDR_EXPR allocates stack space. 15712 * fold-const.c (build_fold_addr_expr_with_type): Look through 15713 WITH_SIZE_EXPR. 15714 157152004-09-01 Dan Nicolaescu <dann@ics.uci.edu> 15716 15717 * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE. 15718 * ggc.h (ggc_alloc_rtx): Delete. 15719 157202004-09-01 Roger Sayle <roger@eyesopen.com> 15721 15722 * expmed.c (enum alg_code): Remove long unused enumeration values. 15723 (struct mult_cost): New structure to hold the "score" of a synthetic 15724 multiply sequence, including both a rtx_cost and a latency field. 15725 (MULT_COST_LESS): New macro to compare mult_cost to a constant. 15726 (CHEAPER_MULT_COST): New macro to compare two mult_costs. 15727 (struct algorithm): Change type of cost field to be mult_cost. 15728 (synth_mult): Change type of cost_limit argument to be a 15729 pointer to a mult_cost. Update all cost comparisons to use the 15730 new mult_cost infrastructure. For alg_add_factor and 15731 alg_sub_factor operations, latency is lower than the rtx_cost. 15732 (choose_mult_variant): Update calls to synth_mult. Perform 15733 cost comparisons using the new mult_cost infrastructure. 15734 (expand_mult_highpart): Use alg.cost.cost instead of alg.cost 15735 to optain the total rtx_cost of a synth_mult "algorithm". 15736 157372004-09-01 David Edelsohn <edelsohn@gnu.org> 15738 15739 * config/rs6000/power4.md: Increase store latency to 12. 15740 * config/rs6000/power5.md: Same. 15741 157422004-09-01 James E Wilson <wilson@specifixinc.com> 15743 15744 PR target/14064 15745 * config/avr/avr.c (avr_unique_section): Delete prototype and 15746 definition. 15747 (TARGET_ASM_UNIQUE_SECTION): Delete. 15748 157492004-09-01 Ziemowit Laski <zlaski@apple.com> 15750 15751 * c-parse.in (primary): Call objc_build_message_expr(), 15752 objc_build_selector_expr(), objc_build_protocol_expr(), 15753 objc_build_encode_expr() and objc_build_string_object() instead of 15754 build_message_expr(), build_selector_expr(), build_protocol_expr(), 15755 build_encode_expr() and build_objc_string_object(), respectively. 15756 (component_decl_list2): Call objc_get_class_ivars() instead of 15757 get_class_ivars_from_name(). 15758 (keyworddecl): Call objc_build_keyword_decl() instead of 15759 build_keyword_decl(). 15760 (receiver): Call objc_get_class_reference() instead of 15761 get_class_reference(). 15762 (reswords): Add blank line before @@ifobjc section, for clarity. 15763 157642002-09-01 Fariborz Jahanian <fjahanian@apple.com> 15765 15766 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment 15767 to Altivec vetors. 15768 157692004-09-01 Wu Yongwei <adah@sh163.net> 15770 Danny Smith <dannysmith@users.sourceforge.net> 15771 15772 * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long', 15773 not Windows 'DWORD'. 15774 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo. 15775 (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise. 15776 (__gthr_win32_recursive_mutex_init_function): Add prototype for 15777 __GTHREAD_HIDE_WIN32API case.. 15778 (__gthr_win32_recursive_mutex_lock): Likewise. 15779 (__gthr_win32_recursive_mutex_trylock): Likewise. 15780 (__gthr_win32_recursive_mutex_unlock): Likewise. 15781 (__gthread_recursive_mutex_init_function); Add definition for 15782 __GTHREAD_HIDE_WIN32API case. 15783 (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement. 15784 * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct 15785 call to InterlockedDecrement. 15786 157872004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15788 15789 * tree-tailcall.c (find_tail_calls): Also fail is statement has 15790 volatile operands. 15791 15792 * tree-ssa.c (propagate_into_addr): Properly test for LHR. 15793 15794 * doc/c-tree.texi: Document new operands for ARRAY_REF and 15795 COMPONENT_REF. 15796 157972004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 15798 15799 * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency. 15800 * common.opt (fspeculative-prefetching): New. 15801 * flags.h (flag_speculative_prefetching_set): Declare. 15802 * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative 15803 values. 15804 * opts.c (flag_sepculative_prefetching_set): New variable. 15805 (common_handle_option): Handle -fspeculative-prefetching. 15806 * passes.c (rest_of_compilation): Ditto. 15807 * profile.c (instrument_values, compute_value_histograms, branch_prob): 15808 Use vectors instead of arrays. 15809 * toplev.c (process_options): Handle -fspeculative-prefetching. 15810 * rtl-profile.c: Include ggc.h. 15811 (rtl_gen_interval_profiler, rtl_gen_pow2_profiler, 15812 rtl_gen_one_value_profiler_no_edge_manipulation, 15813 rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of 15814 argument changed. 15815 * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler, 15816 tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of 15817 argument changed. 15818 * value-prof.c: Include ggc.h. 15819 (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New 15820 macros. 15821 (insn_prefetch_values_to_profile, find_mem_reference_1, 15822 find_mem_reference_2, find_mem_reference, gen_speculative_prefetch, 15823 speculative_prefetching_transform): New. 15824 (value_profile_transformations): Call speculative_prefetching_transform. 15825 (insn_values_to_profile): Call insn_prefetch_values_to_profile. 15826 (insn_divmod_values_to_profile, rtl_find_values_to_profile, 15827 tree_find_values_to_profile, find_values to profile): Use vectors 15828 instead of arrays. 15829 (free_profiled_values): Removed. 15830 * value-prof.h (struct histogram_value): Renamed to 15831 struct histogram_value_t. 15832 (histogram_value, histogram_values): New types. 15833 (find_values_to_profile): Declaration changed. 15834 (free_profiled_values): Removed. 15835 (struct profile_hooks): Type of argument of the hooks changed to 15836 histogram_value. 15837 * doc/invoke.texi (-fspeculative-prefetching): Document. 15838 158392004-09-01 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 15840 15841 PR rtl-optimization/16408 15842 * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes. 15843 158442004-09-01 Richard Henderson <rth@redhat.com> 15845 15846 * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. 15847 (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline. 15848 158492004-09-01 Jakub Jelinek <jakub@redhat.com> 15850 15851 * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup. 15852 158532004-09-01 Mike Stump <mrs@apple.com> 15854 15855 * config/darwin.c (machopic_symbol_defined_p): In addition to 15856 being SYMBOL_REF_LOCAL_P, a symbol must also be 15857 ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally 15858 defined in this output file, or translation unit in the case 15859 of IMA not being used. 15860 (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols 15861 never need .indirect_symbol when indirecting. 15862 158632004-09-01 Jakub Jelinek <jakub@redhat.com> 15864 15865 * Makefile.in (bb-reorder.o): Add several dependencies. 15866 158672004-09-01 Jakub Jelinek <jakub@redhat.com> 15868 15869 * fold-const.c (operand_equal_p): Require equal sign also for 15870 FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR. 15871 158722004-09-01 Richard Earnshaw <rearnsha@arm.com> 15873 15874 * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name 15875 for use in configargs.h. Put the cname in a separate variable. Use 15876 that to set target_cpu_default2. 15877 158782004-09-01 J"orn Rennecke <joern.rennecke@superh.com> 15879 Nick Clifton <nickc@redhat.com> 15880 15881 * config/sh/sh.md ("length"): Increase branch length when 15882 SH1 pic code to 18: 12 bytes of instructions, 4 byte for the 15883 constant, 2 byte for aligning the constant. 15884 158852004-09-01 Richard Earnshaw <rearnsha@arm.com> 15886 15887 * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the 15888 CPU. 15889 (arm7tdmi-s): New CPU name. 15890 * arm/arm.c (ARM_CORE): Update for new format. 15891 * arm/arm.h (ARM_CORE): Likewise. 15892 * arm/gentune.sh: Update for extra field. 15893 * config.gcc: Likewise. 15894 * arm/arm-tune.md: Regenerate. 15895 * doc/invoke.texi: Document the real processor names for ARM cpus. 15896 158972004-09-01 Richard Earnshaw <rearnsha@arm.com> 15898 15899 * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf) 15900 (floatdidf): New functions. 15901 * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf) 15902 (floatdisf): New functions. 15903 * t-arm-elf: Use them. 15904 159052004-09-01 Ziemowit Laski <zlaski@apple.com> 15906 15907 * c-common.h (lookup_interface): Remove prototype. 15908 (is_class_name): Rename to objc_is_class_name. 15909 (lookup_objc_ivar): Rename to objc_lookup_ivar. 15910 (get_current_scope): Rename to objc_get_current_scope. 15911 * c-decl.c (get_current_scope): Rename to objc_get_current_scope. 15912 * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable. 15913 (yylexname): Call objc_is_class_name() instead of is_class_name(). 15914 * c-typeck.c (build_external_ref): Call objc_lookup_ivar() 15915 instead of lookup_objc_ivar(). 15916 * stub-objc.c (lookup_interface): Remove stub. 15917 (is_class_name): Rename to objc_is_class_name. 15918 (lookup_objc_ivar): Rename to objc_lookup_ivar. 15919 159202004-08-31 Mark Mitchell <mark@codesourcery.com> 15921 15922 * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi. 15923 * config/arm/lib1funcs.asm: Do not include supplemental .S files 15924 when compiling for Symbian. 15925 * config/arm/symbian.h (RENAME_LIBRARY): New macro. 15926 (TARGET_OS_CPP_BUILTINS): Likewise. 15927 * config/arm/t-symbian (LIB1ASMFUNCS): Define. 15928 159292004-08-31 Stan Shebs <shebs@apple.com> 15930 15931 * toplev.c (process_options): Ensure debug_hooks is initialized. 15932 159332004-08-31 Mark Mitchell <mark@codesourcery.com> 15934 15935 * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA. 15936 * target.h (cxx): Add export_class_data. 15937 * config/arm/arm.c (arm_cxx_export_class_data): New function. 15938 (TARGET_CXX_EXPORT_CLASS_DATA): Use it. 15939 * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it. 15940 159412004-08-31 Kaz Kojima <kkojima@gcc.gnu.org> 15942 15943 * config/sh/sh.c (output_branch): Check the insn length possibly 15944 in the delayed slot. 15945 159462004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15947 15948 * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add 15949 blank after ')'. 15950 (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used. 15951 15952 * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT. 15953 (c_sizeof_of_alignof_type): Likewise. 15954 * expr.c (array_ref_element_size): Likewise. 15955 (highest_pow2_factor_for_target): Likewise. 15956 * gimplify.c (canonicalize_addr_expr): Likewise. 15957 (gimplify_compound_lval): Likewise. 15958 * stor-layout.c (finalize_record_size, finalize_type_size): Likewise. 15959 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. 15960 * varasm.c (assemble_variable): Likewise. 15961 (output_constant_def_contents): Alignments are unsigned. 15962 159632004-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 15964 Jeff Law <law@redhat.com> 15965 15966 * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL 15967 gets modified. 15968 159692004-08-31 Mark Mitchell <mark@codesourcery.com> 15970 15971 * hooks.c (hook_bool_void_true): New function. 15972 * hooks.h (hook_bool_void_true): Declare. 15973 * target-def.h (TARGET_CXX): Add 15974 TARGET_CXX_KEY_METHOD_MAY_BE_INLINE. 15975 * target.h (struct cxx): Add key_method_may_be_inline. 15976 * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New 15977 function. 15978 (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro. 15979 * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of 15980 __THUMB_INTERWORK. 15981 159822004-08-31 Denis Chertykov <denisc@overta.ru> 15983 15984 PR target/15417 15985 * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of 15986 frame pointer register only in Pmode while reload in progress. 15987 159882004-08-31 Stephane Carrez <stcarrez@nerim.fr> 15989 15990 PR target/15334 15991 * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb 15992 because it breaks the 32-bit shift patterns that rely on a match_dup. 15993 159942004-08-31 Matt Austern <austern@apple.com> 15995 15996 * config/darwin.c (darwin_make_decl_one_only): Allocate section 15997 names once per compilation, instead of once per symbol. 15998 159992004-08-31 Paolo Bonzini <bonzini@gnu.org> 16000 16001 * Makefile.in (build_subdir): New substitution. 16002 (fixinc.sh): Simplify heavily since fixincludes is already built. 16003 (stmp-fixinc): Depend on specs.ready. 16004 (install-mkheaders): Use new location of fixincludes. 16005 (clean): Do not descend into fixinc. 16006 (FORBUILD): Replace with ../$(build_subdir). 16007 * configure.ac (build_subdir): Substitute. 16008 (FORBUILD): Do not set. 16009 (all_outputs): Remove fixinc/Makefile. 16010 (default commands): Do not create links in fixinc. 16011 * mkfixinc.sh: New, from fixinc/mkfixinc.sh without 16012 the fixincludes configuration steps and substituting 16013 @FIXINCL@ in fixinc.in. 16014 * fixinc.in: New, from fixinc/fixincl.sh. 16015 16016 * fixinc/*: Removed. 16017 160182004-08-31 Joseph S. Myers <jsm@polyomino.org.uk> 16019 16020 * attribs.c (strip_attrs): Remove. 16021 (split_specs_attrs): Move ... 16022 * c-decl.c: ... to here. 16023 * tree.h (split_specs_attrs, strip_attrs): Remove. 16024 * c-tree.h (split_specs_attrs): Declare. 16025 160262004-08-31 Richard Sandiford <rsandifo@redhat.com> 16027 16028 * read-rtl.c: Disable RTL checking. 16029 (apply_macro_to_rtx): Use XTMPL to access 'T' fields. 16030 160312004-08-31 Richard Sandiford <rsandifo@redhat.com> 16032 16033 * config/mips/mips.md (fcond): New code macro and attribute. 16034 (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f) 16035 (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond. 16036 (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF. 16037 160382004-08-30 Mark Mitchell <mark@codesourcery.com> 16039 16040 Revert: 16041 2004-08-29 Mark Mitchell <mark@codesourcery.com> 16042 PR rtl-optimization/16590 16043 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. 16044 160452004-08-30 Andrew Pinski <apinski@apple.com> 16046 16047 * hard-reg-set.h: 16048 s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT. 16049 * ChangeLog: Fix previous ChangeLog entry. 16050 16051 PR rtl-opt/13987 16052 * config.host (use_long_long_for_widest_fast_int): New, default is 16053 off. 16054 (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int. 16055 * configure.ac: If use_long_long_for_widest_fast_int, then 16056 define USE_LONG_LONG_FOR_WIDEST_FAST_INT. 16057 * configure: Regenerate. 16058 * config.in: Regenerate. 16059 * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT): 16060 New: widest integer type supported efficiently in hardware for the 16061 host. 16062 * sbitmap.h (SBITMAP_ELT_BITS): Define based on 16063 HOST_BITS_PER_WIDEST_FAST_INT. 16064 (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT. 16065 * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on 16066 HOST_WIDEST_FAST_INT 16067 instead of HOST_WIDE_INT. 16068 (HARD_REG_SET_LONGS): Likewise. 16069 (UHOST_BITS_PER_WIDE_INT): Likewise. 16070 Change the checks for the fast cases to be based on 16071 HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT. 16072 160732004-08-30 Steven Bosscher <stevenb@suse.de> 16074 16075 * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE, 16076 not the pointers. 16077 160782004-08-30 Geoffrey Keating <geoffk@apple.com> 16079 16080 PR 12738 16081 PR 17205 16082 Radar 3460526 16083 Radar 3775729 16084 * c-decl.c (grokdeclarator): Produce error for 'static' on local 16085 function declaration. 16086 160872004-08-30 Richard Henderson <rth@redhat.com> 16088 16089 * expr.c (array_ref_element_size): Force aligned_size back to 16090 sizetype. 16091 (component_ref_field_offset): Similarly for aligned_offset. 16092 * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw 16093 low-bound, element-size, field-offset fields rather than 16094 computed values. 16095 160962004-08-30 Joseph S. Myers <jsm@polyomino.org.uk> 16097 16098 * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and 16099 redundant code. 16100 161012004-08-30 Joseph S. Myers <jsm@polyomino.org.uk> 16102 16103 * c-tree.h (struct language_function): Add arg_info element. 16104 * c-decl.c (current_function_arg_info): New. 16105 (grokdeclarator, store_parm_decls): Use it instead of 16106 DECL_ARGUMENTS. 16107 (c_push_function_context, c_pop_function_context): Save and 16108 restore it. 16109 161102004-08-30 Richard Henderson <rth@redhat.com> 16111 16112 * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a 16113 COMPONENT_REF to pointer arithmetic. 16114 * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for 16115 constant "c" as a valid constant initializer. Allow narrowing of 16116 differences against the same base object, for any base object. 16117 161182004-08-30 Richard Henderson <rth@redhat.com> 16119 16120 * expr.c (expand_expr_addr_expr): New. 16121 (expand_expr_real_1) <case ADDR_EXPR>: Use it. 16122 161232004-08-30 Richard Sandiford <rsandifo@redhat.com> 16124 16125 * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro. 16126 (mips_fp_condition): New enum. 16127 (mips_fp_conditions): New array. 16128 (print_fcc_operand): Delete. 16129 (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints 16130 the operand and comma if and only if ISA_HAS_8CC. Add %Y. 16131 (builtin_description): Add "cond" field. 16132 (DIRECT_BUILTIN): Initialize it. 16133 (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter 16134 into INSN and CODE. Initialize the "cond" field. 16135 (CMP_BUILTINS): Update accordingly. 16136 (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS. 16137 (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the 16138 mips_fp_condition as argument. Make it the final operand of the 16139 comparison instruction. 16140 (mips_expand_builtin): Update accordingly. 16141 * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete. 16142 (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill 16143 the gaps. 16144 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]): 16145 Don't use the 'Q' operand prefix; just print the operand normally. 16146 (mips_cabs_*, mips_c_*): Delete, replacing with... 16147 (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new 16148 patterns. Split the 4s versions into 2 ps patterns after reload. 16149 161502004-08-30 Richard Henderson <rth@redhat.com> 16151 16152 * fold-const.c (tree_expr_nonzero_p): Use get_base_address before 16153 assuming an ADDR_EXPR is non-null. 16154 161552004-08-30 Jason Merrill <jason@redhat.com> 16156 16157 * gthr-posix.h, gthr-dce.h: Add #pragma weaks. 16158 161592004-08-30 Nathan Sidwell <nathan@codesourcery.com> 16160 16161 * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset, 16162 record_set, rtx_equal_for_memref_p, init_alias_analysis): Use 16163 gcc_assert and gcc_unreachable instead of abort. 16164 * alloc-pool.c (abort, fancy_abort): Remove. 16165 (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use 16166 gcc_assert or gcc_unreachable. 16167 * attribs.c (init_attributes, decl_attributes): Likewise. 16168 * bb-reorder.c (FREE, find_traces_1_round, copy_bb, 16169 mark_bb_for_unlikely_executed_section, 16170 add_labels_and_missing_jumps, fix_crossing_conditional_branches, 16171 fix_crossing_unconditional_branches): Likewise. 16172 * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit, 16173 bitmap_operation): Likewise. 16174 * bt-load.c (insn_sets_btr_p, augment_live_range, 16175 move_btr_def): Likewise. 16176 * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size, 16177 apply_result_size, expand_builtin_apply, expand_builtin_mathfn, 16178 expand_builtin_mathfn_2, expand_builtin_mathfn_3, 16179 builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy, 16180 expand_builtin_memcmp, expand_builtin_args_info, 16181 std_gimplify_va_arg_expr, expand_builtin_unop, 16182 expand_builtin_fputs, expand_builtin_profile_func, 16183 expand_builtin_fork_or_exec, fold_builtin_bitop, 16184 fold_builtin_classify, fold_builtin_fputs): Likewise. 16185 161862004-08-30 Nathan Sidwell <nathan@codesourcery.com> 16187 16188 * gcov-io.c (GCOV_CHECK): Use gcc_assert when available. 16189 * gcov.c (abort): Remove undef. 16190 16191 * tree.h (BINFO_PRIMARY_BASE_OF): Remove. 16192 (struct tree_binfo): Remove primary field. 16193 161942004-08-30 Paolo Bonzini <bonzini@gnu.org> 16195 16196 * fixinc/Makefile.in (machname.h): Remove. 16197 (fixincl.x): Do not pass $@ to genfixes. 16198 * fixinc/genfixes: Remove code to produce machname.h. 16199 * fixinc/fixincl.sh: Move it here instead. 16200 * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence, 16201 instead check if pz_mn_name_pat is NULL. Make mn_get_regexps 16202 return a bool indicating whether pz_mn_name_pat is NULL. 16203 * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence. 16204 Declare extern C variables for the ENV_TABLE. 16205 * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence, 16206 instead use the result of mn_get_regexps. 16207 * fixinc/fixtests.c: Likewise. 16208 162092004-08-30 Paolo Bonzini <bonzini@gnu.org> 16210 16211 * configure.ac: Do not run fixincludes after stage1 during 16212 toplevel bootstrap. 16213 * configure: Regenerate. 16214 162152004-08-30 Richard Earnshaw <rearnsha@arm.com> 16216 16217 * sched-deps.c (get_condition): Partially revert previous, by never 16218 trying to extract the condition from a condjump. 16219 162202004-08-30 Nathan Sidwell <nathan@codesourcery.com> 16221 16222 * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert. 16223 (handle_visibility_attribute, c_determine_visibility): Likewise. 16224 * c-common.h (my_friendly_assert): Remove. 16225 162262004-08-30 Richard Sandiford <rsandifo@redhat.com> 16227 16228 * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete. 16229 (UNSPEC_{RSQRT,RECIP}[12]): New constants. 16230 (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps. 16231 * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR. 16232 (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF. 16233 162342004-08-30 Diego Novillo <dnovillo@redhat.com> 16235 16236 * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE 16237 in COMPONENT_REF nodes. 16238 162392004-08-29 Gabriel Dos Reis <gdr@integrable-solutions.net> 16240 16241 PR c++/15378 16242 * c-opts.c (c_common_handle_option): <case OPT_Werror> set 16243 global_dc->warning_as_error_requested. 16244 * diagnostic.c (diagnostic_initialize): Tidy. 16245 * diagnostic.h (diagnostic_context::x_data): Remove 16246 (diagnostic_context::issue_warnings_are_errors_message): Rename 16247 from warnings_are_errors_message. 16248 (diagnostic_context::warning_as_error_requested): New. 16249 162502004-08-30 Richard Earnshaw <rearnsha@arm.com> 16251 16252 * sched-deps.c (get_condition): Fix breakage in previous patch. 16253 162542004-08-30 Paul Brook <paul@codesourcery.com> 16255 16256 * doc/install.texi: Fix broken mpfr link. 16257 162582004-08-29 David O'Brien <obrien@FreeBSD.org> 16259 16260 * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with 16261 other FreeBSD platforms. 16262 162632004-08-29 Richard Earnshaw <rearnsha@arm.com> 16264 16265 * arm.h (REVERSE_CONDITION): Define. 16266 (REVERSIBLE_CC_MODE): All comparisons are now reversible. 16267 162682004-08-29 Richard Earnshaw <rearnsha@arm.com> 16269 16270 * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not 16271 just the codes, call reversed_comparison_code (). 16272 (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P. 16273 (not_reg_cond): Use reversed_comparison_code. 16274 (and_reg_cond): Likewise. 16275 * ifcvt.c (cond_exec_process_if_block): Likewise. 16276 * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation. 16277 162782004-08-29 Richard Earnshaw <rearnsha@arm.com> 16279 16280 * sched-deps.c (get_condition): Rewrite using jump support functions. 16281 Use reversed_comparison_code. 16282 (conditions_mutex_p): Use reversed_comparison_code. 16283 162842004-08-29 Richard Sandiford <rsandifo@redhat.com> 16285 16286 * config/mips/mips.c (override_options): Disable hot/cold partitioning 16287 for MIPS16. 16288 162892004-08-29 Richard Sandiford <rsandifo@redhat.com> 16290 16291 * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete. 16292 (mips_function_type): Move to mips.c. 16293 * config/mips/mips.c (mips_builtin_type): New enum. 16294 (builtin_description): Replace code and ftype with builtin_type 16295 and function_type. 16296 (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS) 16297 (MOVTF_BUILTINS, CMP_BUILTINS): New macros. 16298 (CODE_FOR_mips_abs_ps): Define. 16299 (mips_bdesc): Use new macros. 16300 (mips_expand_builtin): Use builtin_type. Update calls to subroutines. 16301 (mips_init_builtins): Use the mips_bdesc[] index as the function code. 16302 (mips_expand_builtin_direct): New function. 16303 (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_ 16304 builtin. Replace boolean parameter with builtin_type. 16305 (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin) 16306 (mips_expand_4s_compare_builtin): Delete, replacing with... 16307 (mips_expand_builtin_compare): ...this new function. 16308 163092004-08-29 Mark Mitchell <mark@codesourcery.com> 16310 16311 PR rtl-optimization/16590 16312 * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. 16313 163142004-08-29 Diego Novillo <dnovillo@redhat.com> 16315 16316 * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards. 16317 * tree-ssa-propagate.c: Fix documentation. 16318 163192004-08-29 Richard Sandiford <rsandifo@redhat.com> 16320 16321 * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF. 16322 (mov[sd]fcc): Likewise. 16323 163242004-08-29 Richard Sandiford <rsandifo@redhat.com> 16325 16326 * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF. 16327 163282004-08-29 Richard Sandiford <rsandifo@redhat.com> 16329 16330 * config/mips/mips.md (divide_condition): New mode attribute. 16331 (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF. 16332 (sqrt[sd]f3): Redefine using SCALARF. 16333 (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise. Name formerly unnamed 16334 patterns. 16335 163362004-08-29 Richard Sandiford <rsandifo@redhat.com> 16337 16338 * config/mips/mips.md (ANYF, SCALARF): New mode macros. 16339 (loadx, storex, fmt, UNITMODE): New mode attributes. 16340 (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF. 16341 (mul[sd]f3): Redefine using :SCALARF. 16342 (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF. 16343 (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300. 16344 (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF. 16345 Check TARGET_FUSED_MADD for V2SF too. 16346 (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns 16347 were already named. 16348 (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF. 16349 (*[sl][wd]xc1_[sd]i): Redefine using :ANYF. 16350 163512004-08-29 Richard Sandiford <rsandifo@redhat.com> 16352 16353 * config/mips/mips.c (mips_init_builtins): Simplify. Only create 16354 V2SF_type_node if it will be needed. 16355 163562004-08-29 Richard Sandiford <rsandifo@redhat.com> 16357 16358 * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete. 16359 * config/mips/mips.c (mips_prepare_builtin_arg): New function. 16360 (mips_prepare_builtin_target): New function. 16361 (mips_expand_builtin): Use them. Update calls to subroutines. 16362 (mips_expand_ps_cond_move_builtin): Use the new functions. Replace 16363 cmp_choice with a boolean argument to select between movt and movf. 16364 Take the comparison's icode as an argument, not the function's fcode. 16365 (mips_expand_compare_builtin): New function. Rename existing function 16366 to mips_expand_scalar_compare_builtin. 16367 (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin) 16368 (mips_expand_ps_compare_builtin): Use the new functions. Take the 16369 comparison's icode as an argument, not the builtin's fcode. 16370 163712004-08-29 Richard Sandiford <rsandifo@redhat.com> 16372 16373 * config/mips/mips.c (print_operand): Remove '%Y' and '%y'. 16374 (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all 16375 registers are false and -1 if all registers are true. 16376 (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for 16377 MIPS_CMP_UPPER and MIPS_CMP_LOWER. 16378 * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y. 16379 (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation. 16380 (bc1any2t, bc1any2f): Likewise CCV2. 16381 (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete. 16382 163832004-08-29 Richard Sandiford <rsandifo@redhat.com> 16384 16385 * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New. 16386 * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an 16387 UNSPEC rather than an IF_THEN_ELSE. 16388 * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit 16389 mips_cond_move_tf_ps by name. 16390 163912004-08-29 Chao-ying Fu <fu@mips.com> 16392 James E Wilson <wilson@specifixinc.com> 16393 16394 * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2 16395 8 byte size and alignment. Give CCV4 16 byte size and alignment. 16396 * config/mips/mips-ps-3d.md: New file. 16397 * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P, 16398 TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. 16399 (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE. 16400 (mips_output_move): Emit "mov.ps" for V2SFmode. 16401 (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and 16402 MODE_VECTOR_FLOAT. 16403 (override_options): Check if TARGET_MIPS3D and there was an explicit 16404 !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D. 16405 Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when 16406 TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports 16407 TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers, 16408 and allow CCV2 and CCV4 to occupy two and four CC registers. 16409 (print_fcc_operand): New function. 16410 (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify 16411 %Z to call print_fcc_operand. 16412 (mips_function_value): Handle MODE_VECTOR_FLOAT. 16413 (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes. 16414 (mips_vector_mode_supported_p): New function. 16415 (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes. 16416 (builtin_description): New struct. 16417 (mips_bdesc): New array of struct builtin_description. 16418 (mips_expand_builtin, mips_init_builtins, 16419 mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin, 16420 mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New 16421 functions. 16422 * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines. 16423 (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines. 16424 (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float. 16425 (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single", 16426 "-mips3d", and "-mno-mips3d". 16427 (ASM_SPEC): Map -mips3d to -mips3d in gas. 16428 (EXTRA_CONSTRAINT_Y): New macro. 16429 (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new 16430 multi-letter constraint 'Y'. 16431 (CONSTRAINT_LEN): New macro. 16432 (enum mips_builtins): New for MIPS builtin functions. 16433 (enum mips_function_type): New for the types of MIPS builtin functions. 16434 (enum mips_cmp_choice): New for the MIPS comparison builtin functions. 16435 * config/mips/mips.md: New constants for paired single and MIPS-3D 16436 instructions. Include the new mips-ps-3d.md file. 16437 (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf, 16438 movv2sf_hardfloat_64bit): New named patterns. 16439 (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf, 16440 nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si, 16441 sdxc1_v2sf_di): New unnamed patterns. 16442 * config/mips/predicates.md (const_0_operand, const_1_operand): Add 16443 const_vector support. 16444 (const_0_or_1_operand): New predicate. 16445 * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d. 16446 164472004-08-29 Diego Novillo <dnovillo@redhat.com> 16448 16449 * Makefile.in (OBJS-common): Add tree-ssa-propagate.o 16450 (tree-ssa-propagate.o): New rule. 16451 (GTFILES): Add tree-ssa-propagate.c. 16452 * tree-flow.h (struct stmt_ann_d): Remove field 16453 in_ccp_worklist. 16454 * tree-ssa-propagate.c: New file. 16455 * tree-ssa-propagate.h: New file. 16456 * tree-ssa-ccp.c: Re-write to use the routines from 16457 tree-ssa-propagate.c. 16458 164592004-08-28 Andrew Pinski <apinski@apple.com> 16460 16461 * tree-ssa-loop.c: Remove extra include of basic-block.h. 16462 164632004-08-28 Ziemowit Laski <zlaski@apple.com> 16464 16465 * c-common.h: Update comments about ObjC/ObjC++ entry points. 16466 (objc_is_reserved_word): New prototype. 16467 (get_current_scope, objc_mark_locals_volatile): Move prototypes to 16468 separate section; these are call-backs. 16469 * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect 16470 ObjC/ObjC++ "@" keywords. 16471 * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove 16472 prototypes; they already live in c-common.h. 16473 * stub-objc.c: Update copyright notice. 16474 (objc_is_reserved_word): New stub. 16475 164762004-08-28 Nathan Sidwell <nathan@codesourcery.com> 16477 16478 * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR 16479 even when not checking. 16480 164812004-08-27 Jason Merrill <jason@redhat.com> 16482 16483 PR c++/13684 16484 * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY. 16485 (gimple_push_cleanup): Add eh_only parm. 16486 (gimplify_target_expr): Pass it. 16487 * c.opt (-fno-threadsafe-statics): New option. 16488 * c-opts.c (c_common_handle_option): Handle it. 16489 * c-common.h (flag_threadsafe_statics): Declare it. 16490 * c-common.c (flag_threadsafe_statics): Record it. 16491 * doc/invoke.texi: Document it. 16492 * tsystem.h (_GNU_SOURCE): Define. 16493 * gthr-posix.h (__gthread_recursive_mutex_t): New typedef. 16494 (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro. 16495 (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro. 16496 (__gthread_recursive_mutex_init_function): New fn. 16497 (__gthread_recursive_mutex_lock): New fn. 16498 (__gthread_recursive_mutex_trylock): New fn. 16499 (__gthread_recursive_mutex_unlock): New fn. 16500 * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise. 16501 * gthr-win32.h, gthr-vxworks.h: Likewise. 16502 * gthr.h: Document. 16503 165042004-08-27 David Edelsohn <edelsohn@gnu.org> 16505 16506 * config/rs6000/rs6000.c (rs6000_override_options): Increase 16507 maximum skip to 15. Set function alignment, jump alignment, and 16508 loop alignment to 16 for processors that form dispatch groups. 16509 (rs6000_rtx_costs): outer_code is used. 16510 165112004-08-27 Nathan Sidwell <nathan@codesourcery.com> 16512 16513 * stor-layout.c (sizetype_set): Remove. 16514 (set_sizetype): Don't test or set it. 16515 16516 * tree.h (size_int_type): Remove. 16517 * fold-const.c: Do not #include gt-fold-const.h. 16518 (size_htab_hash, size_htab_eq): Remove. 16519 (size_int_kind): Use build_int_cst. 16520 (new_const, size_htab): Remove. 16521 (size_int_type): Remove. 16522 (round_up): Use build_int_cst. 16523 (round_down): Likewise. Remove spurious constant build. 16524 165252004-08-27 Nathan Sidwell <nathan@codesourcery.com> 16526 16527 * configure.ac: Add ENABLE_ASSERT_CHECKING control. 16528 Add is_release variable, use it for --enable-werror and 16529 --enable-checking defaults. 16530 * system.h (gcc_assert, gcc_unreachable): New. 16531 * doc/install.texi (--enable-checking): Update. 16532 * configure, config.in: Rebuilt. 16533 165342004-08-26 Richard Sandiford <rsandifo@redhat.com> 16535 16536 * rtl.h (read_rtx): Change prototype. 16537 * read-rtl.c (read_rtx): Provide the caller with both an rtx and a 16538 line number. Return true on success. 16539 * gensupport.c (process_include, init_md_reader_args_cb): Adjust 16540 callers accordingly. 16541 165422004-08-26 Richard Henderson <rth@redhat.com> 16543 16544 * c-typeck.c (build_offsetof): Remove. 16545 * c-tree.h (build_offsetof): Remove. 16546 * c-common.c (fold_offsetof_1, fold_offsetof): New. 16547 * c-common.h (fold_offsetof): Declare. 16548 * c-parse.in (offsetof_base): New. 16549 (offsetof_member_designator): Use it. Build references, not just 16550 a tree list. 16551 (primary): Use fold_offsetof, not build_offsetof. 16552 165532004-08-26 Richard Henderson <rth@redhat.com> 16554 16555 * tree.c (staticp): Return the static object. 16556 * tree.h (staticp): Update decl. 16557 * langhooks.h (struct lang_hooks): Change staticp return type to tree. 16558 * langhooks.c (lhd_staticp): Return NULL_TREE. 16559 * langhooks-def.h (lhd_staticp): Update decl. 16560 * c-common.c (c_staticp): Return the static object. 16561 * c-common.h (c_staticp): Update decl. 16562 165632004-08-26 Richard Henderson <rth@redhat.com> 16564 16565 * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float 16566 modes. 16567 165682004-08-26 Joseph S. Myers <jsm@polyomino.org.uk> 16569 16570 PR c/13801 16571 * c-decl.c (struct c_binding): Add type and inner_comp fields. 16572 (bind): Set type and inner_comp fields. 16573 (pop_scope): Restore type of decl to the correct type from an 16574 outer scope. Give error when popping file scope for incomplete 16575 arrays completed incompatibly with default initialization in an 16576 inner scope. 16577 (diagnose_mismatched_decls): Handle externs with initializers at 16578 block scope. 16579 (pushdecl): Set type of external declaration at block scope based 16580 only on the visible declarations. Save type when changing the 16581 type of a declaration. Merge an external declaration at block 16582 scope with a visible static declaration at file scope. 16583 (implicitly_declare): Give recycled old declaration the new type 16584 except for incompatible declarations of built-in functions, saving 16585 the old type. 16586 165872004-08-26 Ziemowit Laski <zlaski@apple.com> 16588 16589 * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use. 16590 165912004-08-26 Daniel Berlin <dberlin@dberlin.org> 16592 16593 * tree-alias-common.c (gate_pta): New function. 16594 (pass_build_pta): Use it. 16595 (pass_del_pta): Use it. 16596 (delete_alias_vars): Don't check flag_tree_points_to. 16597 165982004-08-26 Fariborz Jahanian <fjahanian@apple.com> 16599 16600 * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added 16601 TFmode as additional register mode cloberred by call. 16602 166032004-08-26 Fariborz Jahanian <fjahanian@apple.com> 16604 16605 * config/rs6000/rs6000.c (rs6000_libcall_value): Generate 16606 parallel pattern for library call returning DImode in 16607 mixed mode. 16608 166092004-08-26 Fariborz Jahanian <fjahanian@apple.com> 16610 16611 * config/rs6000/rs6000.c (function_arg): Generate parallel 16612 pattern for more split args. 16613 166142004-08-26 Fariborz Jahanian <fjahanian@apple.com> 16615 16616 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call 16617 either gen_movdi_di_update or gen_movdi_si_update depending on 16618 target mode. 16619 * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update, 16620 to generate two versions. 16621 166222004-08-26 Daniel Berlin <dberlin@dberlin.org> 16623 16624 * Makefile.in (lambda-code.o): New. 16625 (lambda-trans.o): Ditto. 16626 (TREE_DATA_REF_H): Ditto. 16627 (LAMBDA_H): Ditto. 16628 (lambda-mat.o): Use LAMBDA_H. 16629 (tree-data-ref.o): Ditto. 16630 * lambda-code.c: New file. Lambda code generation algorithm. 16631 * lambda-trans.c: Ditto. Lambda transformation matrix support. 16632 * lambda.h: Add lambda loop structures. 16633 Add lambda loopnest structures. 16634 Add lambda body vector structure. 16635 Add lambda linear expression structures. 16636 Add prototypes for functions in new files. 16637 * lambda-mat.c: Include tree.h 16638 166392004-08-26 Daniel Berlin <dberlin@dberlin.org> 16640 Sebastian Pop <pop@cri.ensmp.fr> 16641 16642 * tree-data-ref.h: Include lambda.h 16643 (free_dependence_relation): Declared here. 16644 (free_dependence_relations): Ditto. 16645 (free_data_refs): Ditto. 16646 * tree-data-ref.c (free_dependence_relation): New function. 16647 (free_dependence_relations): Ditto. 16648 (free_data_refs): Ditot. 16649 (analyze_all_data_dependences): Free datarefs and dependence_relations. 16650 (build_classic_dist_vector): Store in the dependence_relations the 16651 information. Each arc in the dependence_relations graph is labelled 16652 with the distance and direction vectors. 16653 (build_classic_dir_vector): Ditto. 16654 (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences. 16655 Now computes again the whole dependence graph including read-read 16656 relations. 16657 (compute_data_dependences_for_loop): Now dependence_relations contains 16658 all the data, and thus it doesn't need to initialize the classic_dir 16659 and classic_dist vectors. 16660 (analyze_all_data_dependences): Adjusted for using the new interface of 16661 compute_data_dependences_for_loop. Remove the statistics dump. 16662 166632004-08-26 Bob Wilson <bob.wilson@acm.org> 16664 16665 * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete. 16666 (xtensa_expand_block_move): Update comment. 16667 (override_options): Remove initialization of xtensa_{ld,st}_opcodes. 16668 166692004-08-26 Richard Earnshaw <rearnsha@arm.com> 16670 16671 PR target/13506 16672 * toplev.c (crash_signal): If we crashed while emitting 16673 a user asm, then die more gracefully. 16674 166752004-08-26 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 16676 16677 PR target/17119. 16678 * config/m32r.c (gen_compare): Use reg_or_int16_operand when 16679 checking for a valid constant, regardless of sign. 16680 166812004-08-25 Richard Henderson <rth@redhat.com> 16682 16683 PR target/16974 16684 * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting 16685 if the constant satisfies add_operand. 16686 166872004-08-25 Richard Henderson <rth@redhat.com> 16688 16689 PR debug/10695 16690 * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New. 16691 (alpha_expand_prologue): Handle >32-bit frames. Generate proper 16692 unwind info for >16-bit frames. 16693 166942004-08-25 Richard B. Kreckel <richard.kreckel@framatome-anp.com> 16695 16696 PR target/17171 16697 * config/i386/gas.h (ASM_COMMENT_START): Define to "#". 16698 166992004-08-25 Richard Henderson <rth@redhat.com> 16700 16701 * config/alpha/alpha.c (alpha_cannot_force_const_mem): New. 16702 (TARGET_CANNOT_FORCE_CONST_MEM): New. 16703 167042004-08-25 Andrew MacLeod <amacleod@redhat.com> 16705 16706 * doc/tree-ssa.texi: Document new operand iterator. 16707 167082004-08-26 Alan Modra <amodra@bigpond.net.au> 16709 16710 PR target/16480 16711 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort 16712 on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well 16713 as PLUS base regs. 16714 167152005-08-28 Paul Brook <paul@codesourcery.com> 16716 16717 * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to 16718 -mfpu=vfp -march=armv5t 16719 * config/arm/t-symbian: Change multilib to mfloat-abi=softfp. 16720 167212004-08-25 Richard Henderson <rth@redhat.com> 16722 16723 * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New. 16724 * target.h (struct gcc_target): Add scalar_mode_supported_p. 16725 * targhooks.c (default_scalar_mode_supported_p): New. 16726 * targhooks.h (default_scalar_mode_supported_p): Declare. 16727 * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document. 16728 16729 * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p 16730 before attempting to create types. Tidy. 16731 * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p. 16732 16733 * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New. 16734 (TARGET_SCALAR_MODE_SUPPORTED_P): New. 16735 167362004-08-25 Richard Henderson <rth@redhat.com> 16737 16738 * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't 16739 set REAL_MODE_FORMAT for TFmode. 16740 167412004-08-25 Ziemowit Laski <zlaski@apple.com> 16742 16743 * c-decl.c (grokparm): New function. 16744 * c-tree.h (grokparm): New prototype. 16745 167462004-08-25 Andrew MacLeod <amacleod@redhat.com> 16747 16748 * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand 16749 iterator controlling structure. 16750 (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF, 16751 SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS, 16752 SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand 16753 iterator flags. 16754 (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees. 16755 (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses. 16756 (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs. 16757 (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs. 16758 * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New. 16759 Empty operand pointers. 16760 * tree-flow-inline.h (op_iter_done): New. Return true if finished. 16761 (op_iter_next_use): New. Return next use_operand_p. 16762 (op_iter_next_def): New. Return next def_operand_p. 16763 (op_iter_next_tree): New. Return next operands as a tree. 16764 (op_iter_init): New. Initialize an iterator structure. 16765 (op_iter_init_use): New. Initialize structure and get the first use. 16766 (op_iter_init_def): New. Initialize structure and get the first def. 16767 (op_iter_init_tree): New. Initialize structure and get the first tree. 16768 (op_iter_next_maydef): New. Return next V_MAY_DEF operands. 16769 (op_iter_init_maydef): New. Initialize structure and get the first 16770 V_MAY_DEF operands. 16771 * tree-cfg.c (tree_duplicate_bb): Use new operand iterator. 16772 * tree-dfa.c (compute_immediate_uses_for_stmt, 16773 redirect_immediate_uses): Use new operand iterator. 16774 (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete. 16775 (mark_new_vars_to_rename): Use new operand iterator. Count virtual 16776 operands instead of using *_disappeared_p routines. 16777 * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt, 16778 ssa_rewrite_stmt): Use new operand iterator. 16779 * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, 16780 rewrite_trees): Use new operand iterator. 16781 * tree-pretty-print.c (dump_vops): Use new operand iterator. 16782 * tree-sra.c (mark_all_v_defs): Use new operand iterator. 16783 * tree-ssa-alias.c (compute_points_to_and_addr_escape, 16784 dump_points_to_info): Use new operand iterator. 16785 * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize, 16786 replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new 16787 operand iterator. 16788 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary, 16789 propagate_necessity): Use new operand iterator. 16790 * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator. 16791 (register_definitions_for_stmt): Use new operand iterator. Take stmt as 16792 a parameter instead of a stmt_ann_t. 16793 * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry, 16794 build_tree_conflict_graph): Use new operand iterator. 16795 * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address, 16796 rewrite_mem_refs): Use new operand iterator. 16797 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, 16798 check_loop_closed_ssa_use): Use new operand iterator. 16799 * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator. 16800 * tree-ssanames.c (release_defs): Use new operand iterator. 16801 * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator. 16802 168032004-08-25 Adam Nemet <anemet@lnxw.com> 16804 16805 * tlink.c (initial_cwd): New variable. 16806 (tlink_init): Initialize it. 16807 (recompile_files): Use tlink_execute() instead of system(). Don't 16808 duplicate verbose output of collect_execute. Restore initial_cwd. 16809 Update comment before the function. 16810 168112004-08-25 Ziemowit Laski <zlaski@apple.com> 16812 16813 * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently 16814 accept) a cast from one Objective-C pointer type to another. 16815 168162004-08-25 Paolo Carlini <pcarlini@suse.de> 16817 16818 * doc/install.texi: Document that libstdc++-v3 requires 16819 now automake 1.9.1. 16820 168212004-08-25 Caroline Tice <ctice@apple.com> 16822 16823 * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details 16824 to comments at start of function. 16825 * cfgbuild.c (make_edges): Add more details to hot/cold partitioning 16826 comment. 16827 * cfgcleanup.c (try_simplify_condjump, try_forward_edges, 16828 merge_blocks_move_predecessor_nojumps, 16829 merge_blocks_move_successor_nojumps, merge_blocks_move, 16830 try_crossjump_to_edge, try_crossjump_bb): Likewise. 16831 * cfglayout.c (fixup_reorder_chain): Likewise. 16832 * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump, 16833 cfg_layout_can_merge_blocks_p): Likewise. 16834 * ifcvt.c (find_if_case_1, find_if_case_2): Likewise. 16835 * passes.c (rest_of_compilation): Update comments for calling 16836 optimization that partitions hot/cold basic blocks. 16837 * doc/invoke.texi: Update documentation of 16838 freorder-blocks-and-partition flag. 16839 168402004-08-25 Richard Sandiford <rsandifo@redhat.com> 16841 16842 * config/mips/mips.md (reg): Renamed mode attribute from ccreg. 16843 (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix. 16844 168452004-08-25 Richard Sandiford <rsandifo@redhat.com> 16846 16847 * config/mips/mips.md (any_shift): New code macro. 16848 (optab, insn): New code attributes. 16849 ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift. 16850 Use the standard rather than internal patterns for the MIPS16 16851 double-shift optimization. 16852 (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns. 16853 Redefine using :GPR and any_shift. 16854 (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend 16855 to cover all three shifts. 16856 (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts. 16857 Redefine using any_shift. Use :GPR and any_shift to combine splitters. 16858 (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts. 16859 168602004-08-24 Geoffrey Keating <geoffk@apple.com> 16861 16862 * gimplify.c (lookup_tmp_var): Separate temporaries when not 16863 optimizing. 16864 168652004-08-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 16866 16867 PR libstdc++/17005 (fix for HP-UX 11.11) 16868 * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2. 16869 (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of 16870 tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate. 16871 * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files. 16872 * config/pa/pa-hpux.h (TARGET_HPUX): Define. 16873 (LINK_SPEC): Handle march=1.0 option. 16874 * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX 16875 and _XOPEN_SOURCE_EXTENDED for UNIX 95. 16876 (SUBTARGET_OPTIONS): New define. 16877 (LINK_SPEC): Handle march=1.0 option. 16878 (STARTFILE_SPEC): New define. 16879 * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX 16880 and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine 16881 _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98. 16882 (SUBTARGET_OPTIONS): New define. 16883 (LINK_SPEC): Handle march=1.0 option. 16884 (STARTFILE_SPEC): New define. 16885 * config/pa/pa.c (override_options): Add code to process -munix= option. 16886 * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare. 16887 (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default 16888 defines. 16889 (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list. 16890 (SUBTARGET_OPTIONS): Provide default define. 16891 * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1, 16892 STANDARD_STARTFILE_PREFIX_2): New defines. 16893 (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary. 16894 (ENDFILE_SPEC): Use %O. 16895 * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas. 16896 Mention issue caused by changing namespace and runtime to UNIX 95/98. 16897 * doc/invoke.texi (HPPA options): Move misplaced text to FRV options. 16898 Document -munix=std option. 16899 169002004-08-25 Steven Bosscher <stevenb@suse.de> 16901 16902 * cse.c (cse_around_loop, cse_check_loop_start, 16903 cse_set_around_loop): Remove. 16904 (cse_basic_block): Remove the around_loop argument. 16905 (cse_end_of_basic_block): Remove the after_loop argument. 16906 (cse_main): Likewise. 16907 * rtl.h (cse_main): Update prototype. 16908 * passes.c (rest_of_handle_cse, rest_of_handle_cse2, 16909 rest_of_handle_gcse): Update cse_main calls. 16910 169112004-08-25 Nathan Sidwell <nathan@codesourcery.com> 16912 16913 * tree.h (build_int_cst): New, sign extended constant. 16914 (build_int_cstu): New, zero extended constant. 16915 (build_int_cst_wide): Renamed from build_int_cst. 16916 * tree.c (build_int_cst, build_int_cstu): New. 16917 (build_int_cst_wide): Renamed from build_int_cst. 16918 (make_vector_type, build_common_tree_nodes, 16919 build_common_tree_nodes_2): Adjust build_int_cst calls. 16920 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, 16921 expand_builtin_strpbrk, expand_builtin_fputs, 16922 build_string_literal, expand_builtin_printf, 16923 expand_builtin_sprintf, fold_builtin_classify_type, 16924 fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii, 16925 fold_builtin_toascii, fold_builtin_isdigit, 16926 simplify_builtin_strstr, simplify_builtin_strpbrk, 16927 fold_builtin_fputs, simplify_builtin_sprintf): Likewise. 16928 * c-common.c (start_fname_decls, fix_string_type, shorten_compare, 16929 DEF_ATTR_INT): Likewise. 16930 * c-decl.c (complete_array_type, check_bitfield_type_and_width): 16931 Likewise. 16932 * c-lex.c (interpret_integer, lex_charconst): Likewise. 16933 * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise. 16934 * c-pretty-print.c (pp_c_integer_constant): Likewise. 16935 * c-typeck.c (really_start_incremental_init, push_init_level, 16936 set_nonincremental_init_from_string): Likewise. 16937 * calls.c (load_register_parameters): Likewise. 16938 convert.c (convert_to_pointer): Likewise. 16939 coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, 16940 build_fn_info_type, build_fn_info_value, build_ctr_info_value, 16941 build_gcov_info): Likewise. 16942 * except.c (init_eh, assign_filter_values): Likewise. 16943 * expmed.c (store_fixed_bit_field, extract_bit_field, 16944 extract_fixed_bit_field, extract_split_bit_field, expand_shift, 16945 expand_mult_const, expand_mult_highpart_adjust, extract_high_half, 16946 expand_sdiv_pow2, expand_divmod, make_tree): Likewise. 16947 * expr.c (convert_move, emit_group_load, emit_group_store, 16948 expand_assignment, store_constructor, store_field, 16949 expand_expr_real_1, reduce_to_bit_field_precision): Likewise. 16950 fold-const.c (force_fit_type, int_const_binop, fold_convert_const, 16951 invert_truthvalue, optimize_bit_field_compare, 16952 decode_field_reference, all_ones_mask_p, constant_boolean_node, 16953 fold_div_compare, fold, fold_read_from_constant_string, 16954 fold_negate_const, fold_abs_const, fold_not_const, round_up, 16955 round_down): Likewise. 16956 * function.c (assign_parm_setup_block): Likewise. 16957 * stmt.c (shift_return_value, expand_case, estimate_case_costs): 16958 Likewise. 16959 * stor-layout.c (layout_type, initialize_sizetypes, 16960 set_min_and_max_values_for_integral_type): Likewise. 16961 * tree-chrec.c (chrec_fold_multiply_poly_poly, 16962 reset_evolution_in_loop): Likewise. 16963 * tree-chrec.h (build_polynomial_chrec): Likewise. 16964 * tree-complex.c (build_replicated_const): Likewise. 16965 * tree-eh.c (honor_protect_cleanup_actions, 16966 lower_try_finally_onedest, lower_try_finally_copy, 16967 lower_try_finally_switch): Likewise. 16968 * tree-mudflap.c (mf_build_string, mx_register_decls, 16969 mudflap_register_call, mudflap_enqueue_constant): Likewise. 16970 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. 16971 * tree-pretty-print.c (dump_generic_node): Likewise. 16972 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): 16973 Likewise. 16974 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. 16975 * tree-ssa-loop-niter.c (number_of_iterations_cond, 16976 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): 16977 Likewise. 16978 * tree-ssa-loop-ivcanon.c (create_canonical_iv, 16979 canonicalize_loop_induction_variables): Likewise. 16980 * tree-vectorizer.c (vect_create_index_for_array_ref, 16981 vect_transform_loop_bound, vect_compute_data_ref_alignment): 16982 Likewise. 16983 16984 * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start, 16985 alpha_gimplify_va_arg_1): Likewise. 16986 * config/arm/arm.c (arm_get_cookie_size): Likewise. 16987 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. 16988 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. 16989 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. 16990 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, 16991 mips_gimplify_va_arg_expr): Likewise. 16992 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. 16993 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, 16994 add_compiler_branch_island): Likewise. 16995 * config/s390/s390.c (s390_va_start): Likewise. 16996 * config/sh/sh.c (sh_va_start): Likewise. 16997 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): 16998 Likewise. 16999 * config/xtensa/xtensa.c (xtensa_va_start, 17000 xtensa_gimplify_va_arg_expr): Likewise. 17001 17002 * objc/objc-act.c (build_objc_string_object, 17003 build_objc_symtab_template, init_def_list, init_objc_symtab, 17004 init_module_descriptor, generate_static_references, 17005 build_selector_translation_table, get_proto_encoding, 17006 build_typed_selector_reference, build_selector_reference, 17007 build_next_objc_exception_stuff, 17008 build_method_prototype_list_template, generate_descriptor_table, 17009 generate_protocols, build_protocol_initializer, 17010 build_ivar_list_template, build_method_list_template, 17011 build_ivar_list_initializer, generate_ivars_list, 17012 generate_dispatch_table, generate_protocol_list, 17013 build_category_initializer, build_shared_structure_initializer, 17014 generate_shared_structures, handle_impent, 17015 generate_objc_image_info): Likewise. 17016 170172004-04-25 Paolo Bonzini <bonzini@gnu.org> 17018 17019 * cfglayout.c (duplicate_insn_chain): Remove references to 17020 NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT. 17021 * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator. 17022 * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT. 17023 * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP 17024 and NOTE_INSN_LOOP_CONT. 17025 * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove. 17026 * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP 17027 and NOTE_INSN_LOOP_CONT. 17028 * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop, 17029 check_dbra_loop, loop_dump_aux): Remove references to removed notes 17030 and fields. 17031 * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs. 17032 * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove 17033 references to removed notes and fields. 17034 (subtract_reg_term, ujump_to_loop_cont): Remove. 17035 170362004-08-25 Paolo Bonzini <bonzini@gnu.org> 17037 17038 * doc/install.texi: Document that libcpp does not require 17039 Automake any longer. Document that Automake 1.9.1 should 17040 work everywhere. 17041 170422004-08-25 Zack Weinberg <zack@codesourcery.com> 17043 17044 * flags.h (enum debug_info_type): Remove DWARF_DEBUG. 17045 * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for 17046 DWARF_DEBUGGING_INFO from choice-of-definition chain; 17047 restructure using C89 features (#elif, #error). 17048 * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c 17049 * config/sh/sh.h: Remove references to DWARF_DEBUG. 17050 * doc/invoke.texi: Remove references to DWARF version 1; 17051 clarify why -gdwarf-2<n> doesn't work. 17052 170532004-08-25 Zack Weinberg <zack@codesourcery.com> 17054 17055 * basic-block.h (BB_SET_PARTITION): Clear old value first. 17056 * cfg.c (clear_bb_flags): Don't clear partition setting. 17057 * ifcvt.c (find_if_case_1): Remove ??? comment. 17058 170592004-08-25 Alan Modra <amodra@bigpond.net.au> 17060 17061 PR target/17052 17062 * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p. 17063 * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use 17064 current_function_stdarg in place of sysv_varargs_p. 17065 * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set 17066 sysv_varargs_p. 17067 170682004-08-24 Richard Henderson <rth@redhat.com> 17069 17070 PR target/16298 17071 * config/i386/i386.c (legitimate_constant_p): Rework to not accept 17072 random codes within CONST. 17073 170742004-08-24 James E Wilson <wilson@specifixinc.com> 17075 17076 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove 17077 -freorder-blocks-and-partition. 17078 170792004-08-24 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 17080 17081 PR middle-end/17044 17082 * tree-ssa-threadupdate.c (redirection_data): Make static. 17083 (thread_block): Use ggc_alloc_cleared to allocate struct 17084 redirection_data. Don't free elements in redirection_data. 17085 170862004-08-24 Richard Sandiford <rsandifo@redhat.com> 17087 17088 * config/mips/predicates.md (small_data_pattern): Match prefetches. 17089 170902004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 17091 17092 PR tree-optimization/17016 17093 * tree-ssa-loop-niter.c (number_of_iterations_cond, 17094 number_of_iterations_exit): Use POINTER_TYPE_P instead 17095 of testing for POINTER_TYPE. 17096 170972004-08-24 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 17098 17099 * tree-ssa-loop-ivcanon.c: New file. 17100 * tree-ssa-loop-manip.c (create_iv): New function. 17101 * Makefile.in (tree-ssa-loop-ivcanon.o): Add. 17102 (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency. 17103 * cfgloop.c (mark_single_exit_loops): New function. 17104 (verify_loop_structure): Verify single-exit loops. 17105 * cfgloop.h (struct loop): Add single_exit field. 17106 (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant. 17107 (mark_single_exit_loops): Declare. 17108 (tree_num_loop_insns): Declare. 17109 * cfgloopmanip.c (update_single_exits_after_duplication): New function. 17110 (duplicate_loop_to_header_edge): Use it. 17111 * common.opt (fivcanon): New flag. 17112 * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars. 17113 * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block. 17114 (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc. 17115 (bsi_insert_on_edge_immediate): New function. 17116 * tree-flow.h (bsi_insert_on_edge_immediate, 17117 canonicalize_induction_variables, tree_unroll_loops_completely, 17118 create_iv): Declare. 17119 * tree-optimize.c (init_tree_optimization_passes): Add 17120 pass_iv_canon and pass_complete_unroll. 17121 * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare. 17122 * tree-scalar-evolution.c (get_loop_exit_condition, 17123 get_exit_conditions_rec, number_of_iterations_in_loop, 17124 scev_initialize): Use single_exit information. 17125 * tree-ssa-loop-niter.c (number_of_iterations_cond): Record 17126 missing assumptions. 17127 (loop_niter_by_eval): Return number of iterations as unsigned 17128 int. 17129 * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops. 17130 (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon, 17131 tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll): 17132 New passes. 17133 (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates. 17134 * tree-ssanames.c (make_ssa_name): Allow creating ssa name before 17135 the defining statement is ready. 17136 * tree-vectorizer.c (vect_create_iv_simple): Removed. 17137 (vect_create_index_for_array_ref, vect_transform_loop_bound): 17138 Use create_iv. 17139 (vect_transform_loop_bound): Use single_exit information. 17140 (vect_analyze_loop_form): Cleanup bogus tests. 17141 (vectorize_loops): Do not call flow_loop_scan. 17142 * tree.h (may_negate_without_overflow_p): Declare. 17143 * fold-const.c (may_negate_without_overflow_p): Split out from ... 17144 (negate_expr_p): ... this function. 17145 (tree_expr_nonzero_p): Handle overflowed constants correctly. 17146 * doc/invoke.texi (-fivcanon): Document. 17147 * doc/passes.texi: Document canonical induction variable creation. 17148 171492004-08-24 Richard Sandiford <rsandifo@redhat.com> 17150 17151 * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete. 17152 * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t, 17153 using the mode of the operand to decide between them. 17154 * config/mips/mips.md (MOVECC): New mode macro. 17155 (ccreg): New mode attribute. 17156 (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns. 17157 Redefine using :GPR and :MOVECC. Use %T and %t for the condition. 17158 (mov[sd]icc): Redefine using :GPR. 17159 171602004-08-24 Richard Sandiford <rsandifo@redhat.com> 17161 17162 * config/mips/mips-protos.h (mips_emit_prefetch): Delete. 17163 (mips_prefetch_cookie): New function. 17164 * config/mips/mips.c (print_operand_address): Fix handling of 17165 ADDRESS_CONST_INT. 17166 (mips_emit_prefetch): Delete. 17167 (mips_prefetch_cookie): New function. 17168 * config/mips/mips.md (prefetch): Turn into a define_insn. Use a 17169 mode of QImode for the address_operand. Use mips_prefetch_cookie 17170 to calculate the first "pref" operand. 17171 (prefetch_[sd]i, prefetch_[sd]i_address): Delete. 17172 (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie. 17173 171742004-08-24 Richard Earnshaw <rearnsha@arm.com> 17175 17176 * arm.md: Include predicates.md. 17177 * predicates.md: New file. 17178 * arm.c (s_register_operand, arm_hard_register_operand) 17179 (arm_general_register_operand, f_register_operand, reg_or_int_operand) 17180 (arm_immediate_operand, arm_neg_immediate_operand) 17181 (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand) 17182 (arm_add_operand, arm_addimm_operand, arm_not_operand) 17183 (offsettable_memory_operand, alignable_memory_operand) 17184 (arm_reload_memory_operand, arm_float_rhs_operand) 17185 (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand) 17186 (index_operand, shiftable_operator, logical_binary_operator) 17187 (shift_operator, equality_operator, arm_comparison_operator) 17188 (minmax_operator, cc_register, dominant_cc_register) 17189 (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand) 17190 (di_operand, nonimmediate_soft_df_operand, soft_df_operand) 17191 (const_shift_operand, load_multiple_operation) 17192 (store_multiple_operation, multi_register_push, thumb_cmp_operand) 17193 (thumb_cmpneg_operand, thumb_cbrch_target_operand) 17194 (cirrus_register_operand, cirrus_fp_register) 17195 (cirrus_shift_const): Delete, replaced with equivalents in 17196 predicates.md. 17197 (shift_op): Handle ROTATE. 17198 * arm-protos.h: Delete declarations for above. 17199 * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. 17200 * t-arm (MD_INCLUDES): Add predicates.md. 17201 (s-preds): Depends on MD_INCLUDES. 17202 172032004-08-24 Richard Sandiford <rsandifo@redhat.com> 17204 17205 * config/mips/mips.c (mips_gen_conditional_trap): Fix mode. 17206 * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed 17207 patterns. Redefine using :GPR. Give the match_operator a mode. 17208 Use '%2' rather than '%z2' for operand 2. 17209 172102004-08-24 Richard Sandiford <rsandifo@redhat.com> 17211 17212 * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode 17213 attribute. 17214 172152004-08-24 Richard Sandiford <rsandifo@redhat.com> 17216 17217 * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names 17218 of internal patterns. 17219 (indirect_jump[sd]i): Renamed from indirect_jump_internal[12]. 17220 Redefine using :P. 17221 (tablejump): Use expand_binop to calculate address. Adjust names 17222 of internal patterns. 17223 (tablejump[sd]i): Renamed from tablejump_internal[12]. 17224 Redefine using :P. 17225 (tablejump_mips16[12]): Delete. 17226 172272004-08-24 Richard Sandiford <rsandifo@redhat.com> 17228 17229 * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i) 17230 (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i) 17231 (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i) 17232 (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16) 17233 (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR. 17234 172352004-08-24 Richard Sandiford <rsandifo@redhat.com> 17236 17237 * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR. 17238 (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine 17239 using :GPR. 17240 (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted. 17241 (*branch_equality[sd]i): Likewise branch_equality{,_di}. 17242 (*branch_equality[sd]i_inverted): Likewise 17243 branch_equality{,_di}_inverted. 17244 (*branch_equality[sd]i_mips16): Name formerly unnamed patterns. 17245 Redefine using :GPR. 17246 172472004-08-24 Zack Weinberg <zack@codesourcery.com> 17248 17249 * rtl.def: Reorganize, placing all codes used only in machine 17250 descriptions at the end. 17251 17252 * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE. 17253 * gengtype.c: Don't include rtl.h. Define enum rtx_code and 17254 rtx_name, rtx_format arrays by direct reference to rtl.def, 17255 first undefining GENERATOR_FILE. Define enum insn_note and 17256 note_insn_name array by direct reference to insn-notes.def. 17257 (adjust_field_rtx_def): Remove local definition of rtx_name. 17258 Use symbolic names for insn notes. 17259 * Makefile.in (gengtype.o): Update dependencies. 17260 172612004-08-24 Zack Weinberg <zack@codesourcery.com> 17262 17263 * basic-block.h (struct basic_block_def): Reorder fields to 17264 eliminate interior padding. Remove 'partition' field. 17265 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION) 17266 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION) 17267 (BB_COPY_PARTITION): New macros. 17268 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c 17269 Replace all references to the 'partition' field of a basic 17270 block with new macros. 17271 17272 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK. 17273 * final.c (final_scan_insn): Don't handle it. 17274 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb 17275 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note. 17276 * sched-rgn.c (sched_is_disabled_for_current_region_p): 17277 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note. 17278 172792004-08-24 Nathan Sidwell <nathan@codesourcery.com> 17280 17281 * c-decl.c (c_init_decl_processing): Adjust 17282 build_common_tree_nodes call. 17283 * expmed.c (const_mult_add_overflow_p): Use 17284 build_distinct_type_copy. 17285 * stor-layout.c (early_type_list): Remove. 17286 (layout_type): Don't append to early_type_list. 17287 (initialize_sizetypes): Add signed_p argument. 17288 (set_sizetype): Overwrite the stub type nodes directly. 17289 * tree.c (copy_node_stat): Clear a type's value cache here ... 17290 (build_distinct_type): ... not here. 17291 (build_common_tree_nodes): Add signed_sizetype argument. Adjust. 17292 * tree.h (initialize_sizetypes): Add signed_p argument. 17293 (build_common_tree_nodes): Likewise. 17294 17295 * objc/objc-act.c (get_static_reference): Use 17296 build_variant_type_copy. 17297 (get_protocol_reference): Likewise. 17298 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE. 17299 173002004-08-24 Richard Henderson <rth@redhat.com> 17301 Andrew Pinski <apinski@apple.com> 17302 17303 * gimplify.c (gimplify_array_ref_to_plus): Delete. 17304 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus 17305 for ARRAY_REF. 17306 17307 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed 17308 ARRAY_REF also to get to the STRING_CST. 17309 173102004-08-24 Paul Brook <paul@codesourcery.com> 17311 17312 * config/arm/arm.c (arm_override_options): Update error message. 17313 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to 17314 TARGET_HARD_FLOAT_ABI. 17315 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT. 17316 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI. 17317 173182004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 17319 17320 PR target/17093 17321 * config/m32r.md (movsi_sda): Add SI mode specification to 17322 UNSPEC. 17323 173242004-08-24 Nick Clifton <nickc@redhat.com> 17325 17326 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition 17327 of seth_add3_operand. 17328 173292004-08-24 Nathan Sidwell <nathan@codesourcery.com> 17330 17331 * Makefile.in (PROTO_OBJS): Add errors.o. 17332 * protoize.c (fancy_abort): Remove. 17333 * mips-tfile.c (fancy_abort): Add parameters. 17334 173352004-08-24 Jonathan Wakely <redi@gcc.gnu.org> 17336 17337 * doc/trouble.texi (C++ misunderstandings): Fix example code. 17338 173392004-08-24 Andreas Tobler <a.tobler@schweiz.ch> 17340 17341 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H. 17342 (host-default.o): Add dependency on HOOKS_H. 17343 * config/x-linux: Likewise. 17344 * config/x-solaris: Likewise. 17345 * config/i386/x-mingw32: Likewise. 17346 * config/rs6000/x-darwin: Likewise. 17347 173482004-08-23 James E Wilson <wilson@specifixinc.com> 17349 17350 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to 17351 DEF_REG_NOTE. 17352 173532004-08-23 Mark Mitchell <mark@codesourcery.com> 17354 17355 PR c/14492 17356 * dwarf2out.c (loc_descriptor_from_tree): Robustify. 17357 173582004-08-23 Diego Novillo <dnovillo@redhat.com> 17359 17360 * cfg.c (check_bb_profile): Fix typos. 17361 * function.c (assign_parm_is_stack_parm): Likewise. 17362 * tree-nested.c: Likewise. 17363 173642004-08-23 Daniel Jacobowitz <dan@debian.org> 17365 17366 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE. 17367 Remove TYPECODE. 17368 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk. 17369 173702004-08-23 Eric Christopher <echristo@redhat.com> 17371 17372 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro. 17373 * system.h (VECTOR_MODE_SUPPORTED_P): Poison. 17374 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define. 17375 * target.h: Ditto. 17376 * hooks.h: Include machmode.h. 17377 (hook_bool_mode_false): Declare. 17378 * hooks.c (hook_bool_mode_false): Define. 17379 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p. 17380 * stor-layout.c (layout_type): Ditto. 17381 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function. 17382 Define to target macro. 17383 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete. 17384 * config/arm/arm.c: Ditto. Use. 17385 * config/arm/arm.h: Ditto. 17386 * config/arm/arm-protos.h: Ditto. 17387 * config/i386/i386.c: Ditto. 17388 * config/i386/i386.h: Ditto. 17389 * config/rs6000/rs6000.c: Ditto. 17390 * config/rs6000/rs6000.h: Ditto. 17391 * config/sh/sh.c: Ditto. 17392 * config/sh/sh.h: Ditto. 17393 * config/sh/sh-protos.h: Ditto. 17394 * config/sh/sh.md: Use. 17395 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P 17396 to TARGET_VECTOR_MODE_SUPPORTED_P. 17397 173982004-08-23 Nathan Sidwell <nathan@codesourcery.com> 17399 17400 * Makefile.in (BUILD_ERRORS): Set to build-errors. 17401 (errors.o): New target for host. 17402 (build-errors.o): New target for build. 17403 (genobjs): Replace errors.o with build-errors. 17404 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS). 17405 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o. 17406 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS). 17407 (fix-header.o): Add errors.h 17408 * collect2.c (fancy_abort): Add parameters. 17409 * collect2.h (fancy_abort): Don't declare. 17410 * errors.h (fancy_abort): Don't declare. 17411 * errors.c: Include either bconfig.h or config.h. 17412 (fancy_abort): Trim filename. 17413 * fix-header.c (v_fatal, fatal): Remove. 17414 (progname): Remove definition. 17415 (main): Set progname here. 17416 * gcc.c (fancy_abort): Add parameters. 17417 * gcc.h (fancy_abort): Remove declaration. 17418 * gcov.c (fancy_abort): Remove. 17419 * rtl.h (fancy_abort): Don't declare. 17420 (abort): Don't define. 17421 * tree.h (fancy_abort): Don't declare. 17422 (abort): Don't define. 17423 * system.h (fancy_abort): Declare. 17424 (abort): Define to fancy_abort. 17425 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o 17426 17427 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE. 17428 (usize_type, ubitsizetype): Remove. 17429 * stor-layout.c (set_sizetype): Don't initialize usizetype, 17430 ubitsizetype. 17431 * fold-const.c (size_diffop): TYPE can never be ubitsizetype. 17432 17433 * tree.h (build_distinct_type_copy): New. 17434 (build_type_copy): ... here. Rename to ... 17435 (build_variant_type_copy): ... here. 17436 * tree.c (build_qualified_type): Rename build_type_copy call. 17437 (build_distinct_type_copy): New, broken out of ... 17438 (build_type_copy): ... here. Rename to ... 17439 (build_variant_type_copy): ... here. Use 17440 build_distinct_type_copy. 17441 (build_common_tree_nodes_2): Rename build_type_copy call. 17442 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy 17443 call. 17444 (handle_packed_attribute, handle_unused_attribute, 17445 handle_transparanet_union_attribute, handle_aligned_attribute, 17446 handle_deprecated_attribute): Likewise. 17447 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle): 17448 Likewise. 17449 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise. 17450 * config/rs6000/rs6000.c (rs6000_init_builtins): Use 17451 build_distinct_type_copy. 17452 174532004-08-23 Richard Sandiford <rsandifo@redhat.com> 17454 17455 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode 17456 attribute. 17457 174582004-08-23 Richard Sandiford <rsandifo@redhat.com> 17459 17460 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed 17461 loads and stores. 17462 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name 17463 formerly unnamed patterns. Redefine using :P for the address. Remove 17464 explicit length attributes. 17465 174662004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 17467 17468 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref): 17469 New functions. 17470 (single_reachable_address): Use them. 17471 (schedule_sm): Add dump. 17472 (is_call_clobbered_ref): New function. 17473 (determine_lsm_reg): Check whether the reference is call clobbered. 17474 Only work for gimple_reg_type values. 17475 174762004-08-23 Richard Sandiford <rsandifo@redhat.com> 17477 17478 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16 17479 $31 store insns. Redefine using :GPR. 17480 174812004-08-23 Richard Sandiford <rsandifo@redhat.com> 17482 17483 * config/mips/mips.md (P): New mode macro. 17484 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i) 17485 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P. 17486 Add mode attributes. 17487 174882004-08-23 Richard Sandiford <rsandifo@redhat.com> 17489 17490 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of... 17491 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle 17492 later constants to cover the gap. 17493 (load, store): New mode attributes. 17494 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR. 17495 Use new unspec constants. 17496 174972004-08-23 Richard Sandiford <rsandifo@redhat.com> 17498 17499 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR. 17500 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns 17501 to use register_operand rather than uns_arith_operand as the predicate 17502 for operand 1. Remove redundant MIPS16 force_reg() for operand 1. 17503 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns. 17504 Redefine using :GPR. Make same predicate change here. Extend the 17505 commutativity of operands 1 and 2 from the SImode version to the 17506 DImode one. 17507 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise, 17508 but with no predicate changes. 17509 (*nor[sd]i3): Redefine using :GPR. 17510 175112004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 17512 17513 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for 17514 noreturn functions. 17515 175162004-08-23 Richard Sandiford <rsandifo@redhat.com> 17517 17518 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete. 17519 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use 17520 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%." 17521 rather than "%z2" (with a fake const0_rtx for operand 2). 17522 (ffs[sd]i2): Redefine using :GPR. 17523 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case. 17524 175252004-08-23 Richard Sandiford <rsandifo@redhat.com> 17526 17527 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR. 17528 175292004-08-23 Richard Sandiford <rsandifo@redhat.com> 17530 17531 * config/mips/mips.md (any_extend): New code macro. 17532 (u, su): New code attributes. 17533 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000) 17534 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal) 17535 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart) 17536 (*{s,u}mul_acc_di): Redefine using any_extend. 17537 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns 17538 to reflect real insn names. 17539 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator 17540 with an any_extend template. 17541 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend. 17542 Add '*' to name. 17543 175442004-08-23 Richard Sandiford <rsandifo@redhat.com> 17545 17546 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD. 17547 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal) 17548 (mul[sd]i3_r4000): Redefine using :GPR. 17549 (mulsi3_mult3): Don't check TARGET_MAD separately. 17550 (muldi3_mult3): Moved after mulsi_mult3. 17551 175522004-08-23 Richard Sandiford <rsandifo@redhat.com> 17553 17554 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and 17555 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld. 17556 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down. 17557 (TARGET_GAS, TARGET_MIPS_AS): Delete. 17558 (TARGET_GPWORD): Define to true for n32 on IRIX. 17559 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op. 17560 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete. 17561 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC. 17562 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete. 17563 (MDEBUG_ASM_SPEC): Delete, folding into... 17564 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here. 17565 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches. 17566 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec, 17567 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT 17568 to define asm_abi_default_spec. 17569 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete. 17570 (TARGET_ASM_SELECT_SECTION): Delete. 17571 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0 17572 for non-mips16 code, removing previous workaround for SGI assemblers. 17573 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete. 17574 (TARGET_ASM_ALIGNED_DI_OP): Define this instead. 17575 (override_options): Remove !TARGET_GAS and !have_named_sections code. 17576 (print_operand): Fold TARGET_GAS conditionals into asm strings. 17577 (mips_output_filename): Remove !TARGET_GAS code. Replace use of 17578 ASM_STABS_OP and ASM_STABN_OP. 17579 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks. 17580 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler. 17581 (mips_output_function_prologue): Remove !TARGET_GAS code. 17582 (mips_select_rtx_section): Remove !have_named_sections code. 17583 (mips_select_section): Delete. 17584 * config/mips/mips.md (trap): Remove !TARGET_GAS check. 17585 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS. 17586 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete. 17587 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional. 17588 * config/mips/vxworks.h (ASM_SPEC): As for mips.h. 17589 * config/mips/windiss.h (ASM_SPEC): Likewise. 17590 175912004-08-23 Richard Sandiford <rsandifo@redhat.com> 17592 17593 * read-rtl.c (map_value, mapping, macro_group): New structures. 17594 (BELLWETHER_CODE): New macro. 17595 (modes, codes, bellwether_codes): New variables. 17596 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code) 17597 (uses_code_macro_p, apply_code_macro, apply_macro_to_string) 17598 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string) 17599 (add_condition_to_rtx, apply_macro_traverse, add_mapping) 17600 (add_map_value, initialize_macros): New functions. 17601 (def_hash, def_hash_eq_p): Generalize to anything that points to, 17602 or starts with, a char * field. 17603 (find_macro, read_mapping, check_code_macro): New functions. 17604 (read_rtx_1): New, split out from read_rtx. Handle the new 17605 define_{mode,code}_{macro,attr} constructs. Use find_macro 17606 to parse the name of a code or mode. Use BELLWETHER_CODE to 17607 extract the format and to choose a suitable code for rtx_alloc. 17608 Modify recursive invocations to use read_rtx_1. 17609 (read_rtx): Call initialize_macros. Apply code and mode macros 17610 to the rtx returned by read_rtx_1. Cache everything after the 17611 first macro expansion for subsequent read_rtx calls. 17612 * doc/md.texi: Document new .md constructs. 17613 * config/mips/mips.md (GPR): New mode macro. 17614 (d, si8_di5): New mode attributes. 17615 (any_cond): New code macro. 17616 (add[sd]i3): Redefine using :GPR. 17617 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal. 17618 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming 17619 previously unnamed MIPS16 patterns. 17620 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long 17621 lines. Don't match (plus (const_int 0) ...). 17622 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern. 17623 Use a define_split to generate the addition. 17624 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn. 17625 (subsi3_internal): Delete. 17626 (*subsi3_extended): Renamed from subsi3_internal_2. 17627 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt) 17628 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine 17629 using an any_cond template. 17630 176312004-08-23 Richard Sandiford <rsandifo@redhat.com> 17632 17633 * read-rtl.c (read_rtx): Tidy use of format_ptr. 17634 176352004-08-23 Richard Sandiford <rsandifo@redhat.com> 17636 17637 * read-rtl.c (string_obstack): New file-scope variable. 17638 (read_string, read_quoted_string, read_braced_string) 17639 (read_escape): Remove obstack parameter and use string_obstack instead. 17640 (read_rtx): Remove function-local rtl_obstack and initialize 17641 string_obstack instead. Update call to read_string. 17642 176432004-08-22 Andrew Pinski <apinski@apple.com> 17644 17645 PR c/15262 17646 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered 17647 expression is not constant. 17648 (c_finish_return): Do not go through INDIRECT_REF when looking 17649 for the inner expression of an ADDR_EXPR for warning about. 17650 176512004-08-22 Richard Henderson <rth@redhat.com> 17652 17653 PR 17075 17654 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both 17655 create new blocks and fall through. 17656 (expand_gimple_basic_block): Update to match. 17657 176582004-08-22 Ulrich Weigand <uweigand@de.ibm.com> 17659 17660 * reload.c (find_reloads_address): Make return value tri-state. 17661 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded. 17662 (find_reloads): Assume that reloaded addresses match 'o' or 17663 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address 17664 returned 1 (not -1). Omit optional reloads for address operands 17665 only if find_reloads_address returned 1 (not -1). 17666 17667 * config/s390/s390.c (legitimize_reload_address): New function. 17668 * config/s390/s390-protos.h (legitimize_reload_address): Declare. 17669 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call 17670 legitimize_reload_address. 17671 176722004-08-22 Richard Hendersion <rth@redhat.com> 17673 17674 * tree.h (SAVE_EXPR_RESOLVED_P): New. 17675 * gimplify.c (gimplify_save_expr): Use it. 17676 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P 17677 on the temporary variable. 17678 176792004-08-22 Andrew Pinski <pinskia@physics.uc.edu> 17680 17681 * fold-const.c (rtl_expr_nonnegative_p): Delete. 17682 * tree.h (rtl_expr_nonnegative_p): Remove. 17683 176842004-08-22 Steven Bosscher <stevenb@suse.de> 17685 17686 * config/i386/ppro.md (ppro_complex_insn): Add missing check 17687 for cpu==pentiumpro. 17688 17689 * combine.c (struct reg_stat): Fix comment typo. 17690 176912004-08-22 Joseph S. Myers <jsm@polyomino.org.uk> 17692 17693 * c-tree.h (c_sizeof_nowarn): Remove. 17694 176952004-08-21 Joseph S. Myers <jsm@polyomino.org.uk> 17696 17697 * c-decl.c (set_array_declarator_type): Rename to 17698 set_array_declarator_inner. 17699 (build_c_parm, build_attrs_declarator, build_function_declarator): 17700 New functions. 17701 (make_pointer_declarator): Call build_attrs_declarator. 17702 * c-tree.h (set_array_declarator_type): Rename to 17703 set_array_declarator_inner. 17704 (build_c_parm, build_attrs_declarator, build_function_declarator): 17705 New prototypes. 17706 * c-parse.in (after_type_declarator, 17707 parm_declarator_starttypename, parm_declarator_nostarttypename, 17708 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm, 17709 firstparm): Use these functions 17710 177112004-08-21 Joseph S. Myers <jsm@polyomino.org.uk> 17712 17713 * c-decl.c (build_array_declarator, set_array_declarator_type, 17714 start_decl, grokdeclarator, grokparms): Change boolean parameters 17715 to type bool. 17716 * c-tree.h (build_array_declarator, set_array_declarator_type, 17717 start_decl): Update prototypes. 17718 * c-decl.c, c-parse.in: All callers changed. 17719 177202004-08-21 Mike Stump <mrs@apple.com> 17721 17722 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to... 17723 (darwin_fix_and_continue): Likewise. 17724 (darwin_fix_and_continue_switch): Likewise. 17725 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool. 17726 (darwin_fix_and_continue): Likewise. 17727 (darwin_fix_and_continue_switch): Likewise. 17728 177292004-08-21 Danny Smith <dannysmith@users.sourceforge.net> 17730 17731 PR c++/16030 17732 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix): 17733 Remove, merging into ... 17734 (gen_stdcall_or_fastcall_suffix): New function, returning tree 17735 rather than const char*, and accepting additional parameter. 17736 Don't add suffix to '*'-prefixed symbols or variadic functions. 17737 (i386_pe_encode_section_info): Adjust for call to new function. 17738 Call change_decl_assembler_name. 17739 177402004-08-20 Mike Stump <mrs@apple.com> 17741 17742 * config/darwin.c (machopic_indirect_data_reference): Mark 17743 stubs as defined. 17744 * config/386/386.c (darwin_local_data_pic): Add. 17745 (legitimate_constant_p): Reorder so that PLUS handling runs 17746 before darwin_local_data_pic to match the ordering in 17747 legitimate_pic_address_disp_p and so that MINUS runs after 17748 darwin_local_data_pic as otherwise the darwin_local_data_pic 17749 logic can be skipped, which would be very bad. 17750 (legitimate_pic_address_disp_p): Move from from here to 17751 darwin_local_data_pic so it can be reused. 17752 177532004-08-21 Alan Modra <amodra@bigpond.net.au> 17754 17755 * config/rs6000/linux64.h (DOT_SYMBOLS): Define. 17756 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version. 17757 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS. 17758 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise. 17759 (RS6000_ABI_NAME): Define as "linux". 17760 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols. 17761 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select 17762 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT. 17763 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl. 17764 * config/rs6000/rs6000.c (dot_symbols): New global var. 17765 (rs6000_output_function_entry): New function, modified for 17766 !DOT_SYMBOLS.. 17767 (print_operand <case 'z'>): ..extracted from here. 17768 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS. 17769 (rs6000_output_function_epilogue): Likewise. 17770 (rs6000_elf_declare_function_name): Likewise. 17771 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define. 17772 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS. 17773 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE. 17774 * configure: Regenerate. 17775 * config.in: Regenerate. 17776 177772004-08-20 Mark Mitchell <mark@codesourcery.com> 17778 17779 * reload.c (find_reloads_address): Fix thinko in previous change. 17780 17781 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and 17782 a CONST_INT. 17783 177842004-08-20 Jakub Jelinek <jakub@redhat.com> 17785 17786 PR rtl-optimization/17099 17787 * combine.c (force_to_mode): Check if inner_mask has any bits set 17788 outside of GET_MODE (x) instead of op_mode. 17789 177902004-08-20 Mark Mitchell <mark@codesourcery.com> 17791 17792 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile 17793 fragment. 17794 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo. 17795 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler. 17796 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5 17797 architecture. 17798 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float 17799 configurations. 17800 * config/arm/t-symbian: New file. 17801 178022004-08-20 Andrew Pinski <apinski@apple.com> 17803 17804 * regrename.c (kill_value_regno): ANSIfy. 17805 178062004-08-20 Dale Johannesen <dalej@apple.com> 17807 17808 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD. 17809 178102004-08-20 Daniel Jacobowitz <dan@debian.org> 17811 17812 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno. 17813 (kill_value_regno): New function, derived from kill_value. 17814 (kill_value): Update. 17815 (copyprop_hardreg_forward_1): Update call to kill_value_regno. 17816 178172004-08-20 Daniel Berlin <dberlin@dberlin.org> 17818 17819 Fix PR tree-optimization/17111 17820 * tree-ssa-pre.c (create_value_expr_from): Don't change the types 17821 of non-value_handles. 17822 (bitmap_set_contains): All constants are in every set. 17823 178242004-08-20 Nathan Sidwell <nathan@codesourcery.com> 17825 17826 * fold-const.c (round_up, round_down): Use build_int_cst. 17827 Optimize common case. 17828 178292004-08-20 Zack Weinberg <zack@codesourcery.com> 17830 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 17831 17832 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section, 17833 one_only_data_section): Rename to som_readonly_data_section, 17834 som_one_only_readonly_data_section and som_one_only_data_section. 17835 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP, 17836 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete 17837 conditional defines. 17838 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP, 17839 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual 17840 string values. 17841 (pa_select_section): Use renamed section functions. 17842 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, 17843 SOM_READONLY_DATA_SECTION_FUNCTION, 17844 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION, 17845 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): 17846 Define here ... 17847 * config/pa/som.h: ... not here. 17848 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP, 17849 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP, 17850 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP, 17851 ONE_ONLY_DATA_SECTION_ASM_OP): Delete. 17852 (READONLY_DATA_SECTION): Use som_readonly_data_section. 17853 178542004-08-20 Nathan Sidwell <nathan@codesourcery.com> 17855 17856 * fold-const.c (int_const_binop): Don't generate non-overflowing 17857 size-types specially. 17858 (fold_convert_const): Likewise. 17859 17860 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier, 17861 clear cache on copied sizetype. 17862 178632004-08-20 Ben Elliston <bje@au.ibm.com> 17864 17865 * configure.ac: Don't escape apostrophe in --enable-coverage help. 17866 * configure: Regenerate. 17867 178682004-08-20 Danny Smith <dannysmith@users.sourceforge.net> 17869 17870 PR 5620 17871 * gcc.c (struct stat input_stat): Don't define if 17872 HOST_LACKS_INODE_NUMBERS 17873 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather 17874 than stat to determine if temp file is same as input file. 17875 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS. 17876 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS 17877 178782004-08-20 Richard Sandiford <rsandifo@redhat.com> 17879 17880 * configure.ac (mips*-*-*): Print an error if not using GAS. 17881 * configure: Regenerated. 17882 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove 17883 comments about buggy MIPSpro assemblers. 17884 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h 17885 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix. 17886 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for 17887 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld. 17888 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES) 17889 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC) 17890 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE) 17891 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h. 17892 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor 17893 of more general IRIX 6 definitions. 17894 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL) 17895 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions. 17896 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION) 17897 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC) 17898 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) 17899 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER) 17900 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL) 17901 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS) 17902 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS) 17903 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs. 17904 (LINK_SPEC): Move most of definition to iris.h. 17905 (SUBTARGET_LINK_SPEC): New macro. 17906 (IRIX_STARTFILE_SPEC): Fold into... 17907 (STARTFILE_SPEC): ...here. 17908 (IRIX_ENDFILE_SPEC): Fold into... 17909 (ENDFILE_SPEC): ...here. 17910 * config/mips/iris6.h (TARGET_IRIX5): Remove override. 17911 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE) 17912 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP) 17913 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME) 17914 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h. 17915 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits. 17916 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL) 17917 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) 17918 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX) 17919 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE) 17920 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY) 17921 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC) 17922 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC) 17923 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*) 17924 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP) 17925 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME) 17926 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL) 17927 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs. 17928 (TARGET_IRIX6): Define to 1. 17929 (DRIVER_SELF_SPECS): Define. 17930 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS. 17931 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS. 17932 (SUBTARGET_LINK_SPEC): New macro. 17933 (IRIX_STARTFILE_SPEC): Fold into... 17934 (STARTFILE_SPEC): ...here. Remove !mabi=* case. 17935 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros. 17936 (LIB_SPEC, LIBGCC_SPEC): Use them. 17937 (LIB_SPEC): Remove !mabi=* case. 17938 (IRIX_ENDFILE_SPEC): Fold into... 17939 (ENDFILE_SPEC): ...here. Remove !mabi=* case. 17940 * config/mips/mips-protos.h (irix_output_external_libcall): Delete. 17941 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete. 17942 (TARGET_IRIX6): New macro. 17943 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition. 17944 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER) 17945 (LABEL_AFTER_LOC): Delete. 17946 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END) 17947 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions. 17948 (mips_build_builtin_va_list): Check TARGET_IRIX6. 17949 (override_options): Remove TARGET_SGI_O32_AS-related code. 17950 (irix_output_external_libcall): Make static. 17951 (mips_output_filename): Avoid use of SET_FILE_NUMBER and 17952 LABEL_AFTER_LOC. 17953 (mips_file_start): Tidy guard for ABI sections. Remove use of 17954 ABICALLS_ASM_OP; use .abicalls instead. 17955 (mips_output_aligned_decl_common, mips_declare_object_name) 17956 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS. 17957 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting 17958 .globl foo .text directives. 17959 (irix_asm_named_section_1, irix_asm_named_section) 17960 (irix_section_align_entry, irix_section_align_htab) 17961 (irix_orig_asm_out_file, irix_section_align_entry_eq) 17962 (irix_section_align_entry_hash, irix_asm_output_align) 17963 (irix_file_start, irix_section_align_1, copy_file_data) 17964 (irix_file_end, irix_section_type_flags): Delete. 17965 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section. 17966 Use standard section syntax. Remove protective "jr $31". 17967 (__gcc_fini): Likewise .gcc_fini. 17968 * config/mips/irix-crtn.asm: Adjust sections accordingly. 17969 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from 17970 iris5gas.h. 17971 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved 17972 from t-irix-gld. 17973 (EXTRA_MULTILIB_PARTS): Define. 17974 * config/mips/t-iris6: Remove bogus comment. 17975 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete. 17976 * config/mips/iris5gas.h, config/mips/iris5gld.h, 17977 config/mips/iris6gas.h, config/mips/iris6gld.h, 17978 config/mips/t-iris5-as, config/mips/t-iris5-gas 17979 config/mips/t-irix-gld: Delete. 17980 * config/mips/iris.h: New file. 17981 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6. 17982 179832004-08-20 Richard Earnshaw <rearnsha@arm.com> 17984 17985 * postreload.c (reload_cse_move2add): Allow any condjump, but check 17986 that the implicit set isn't clobbered in the jump insn. 17987 179882004-08-19 Mark Mitchell <mark@codesourcery.com> 17989 17990 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove. 17991 * optabs.c (init_optabs): Don't check it. 17992 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define. 17993 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove. 17994 179952004-08-18 Andreas Krebbel <krebbel1@de.ibm.com> 17996 17997 * config/s390/s390.md (s390_warn_framesize_string) 17998 (s390_warn_dynamic_string, s390_stack_size_string) 17999 (s390_stack_guard_string): New global string variables. 18000 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size) 18001 (s390_stack_guard): New global variables. 18002 (override_options): Added checks for the new options. 18003 (s390_emit_prologue): Emit stack check and trap code and perform 18004 compile time stack size checking. 18005 18006 * config/s390/s390.h (TARGET_OPTIONS): Added new options 18007 "warn-framesize", "warn-dynamicstack", "stack-size" and 18008 "stack-guard". 18009 18010 * doc/invoke.texi: Added documentation for the new options. 18011 180122004-08-19 Ulrich Weigand <uweigand@de.ibm.com> 18013 18014 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen 18015 to eliminate warning. 18016 (linear_search_fdes): Declare p as unsigned. 18017 (binary_search_mixed_encoding_fdes): Likewise. 18018 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen 18019 to eliminate warning. 18020 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing 18021 type cast. 18022 180232004-08-19 Ulrich Weigand <uweigand@de.ibm.com> 18024 18025 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype. 18026 * config/s390/s390.c (preferred_la_operand_p): Accept two operands 18027 instead of one. Check for strictly legitimate address. 18028 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call 18029 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate. 18030 180312004-08-19 Eric Christopher <echristo@redhat.com> 18032 18033 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove. 18034 * langhooks.h (unsave_expr_now): Ditto. 18035 * tree.h (unsave_expr_1): Remove prototype. 18036 (lhd_unsave_expr_now): Rename to unsave_expr_now. 18037 * tree-inline.c (unsave_expr_1): Move here 18038 from tree.c. Make static. 18039 (unsave_expr_now): Rename from lhd_unsave_expr_now. 18040 * tree-sra.c: Fix up for rename. 18041 * tree-ssa-copy.c: Ditto. 18042 * tree-eh.c: Ditto. 18043 * tree.c (unsave_expr_1): Move to tree-inline.c. 18044 180452004-08-19 Caroline Tice <ctice@apple.com> 18046 18047 * config/i386/cygming.h (switch_to_section): Fix typo (change 18048 in_unlikely_text_section to in_unlikely_executed_text). 18049 180502004-08-19 Daniel Berlin <dberlin@dberlin.org> 18051 18052 * vec.h (VEC_lower_bound): New macro. 18053 180542004-08-19 Richard Sandiford <rsandifo@redhat.com> 18055 18056 PR target/16446 18057 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes. 18058 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p; 18059 treat each ABI separately. Deal with n32/n64 complex float arguments. 18060 (function_arg): Add associated complex handling here. 18061 180622004-08-19 Richard Henderson <rth@redhat.com> 18063 18064 * config/arm/arm.c (arm_gen_load_multiple): Use 18065 adjust_automodify_address. Take base memory and offset instead 18066 of unchanging/struct/scalar bits. 18067 (arm_gen_store_multiple): Likewise. 18068 (arm_gen_movmemqi): Use adjust_automodify_address. 18069 * config/arm/arm-protos.h: Update decls. 18070 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call. 18071 (store_multiple): Similarly. 18072 180732004-08-19 J"orn Rennecke <joern.rennecke@superh.com> 18074 18075 * regclass.c (globalize_reg): Update call_really_used_regs. 18076 180772004-08-19 Nathan Sidwell <nathan@codesourcery.com> 18078 18079 * doc/invoke.texi (integer-share-limit): Document. 18080 18081 * tree.h (TYPE_CACHED_VALUES_P): New. 18082 (TYPE_CACHED_VALUES): New. 18083 (TYPE_ORIG_SIZE_TYPE): Adjust. 18084 * tree.def (INTEGER_CST): Update documentation. 18085 * tree.c: Inlcude params.h. 18086 (build_int_cst): Cache small values. 18087 (build_type_copy): Do not copy the value cache. 18088 * c-common.c (c_common_nodes_and_builtins): Add comment, remove 18089 unneeded zeroing. 18090 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting. 18091 * expmed.c (const_mult_add_overflow_p): Clear type copy's value 18092 cache. 18093 * fold-const.c (force_fit_type): Copy value when setting 18094 overflows. 18095 (int_const_binop): Likewise. 18096 * stor-layout.c: Include params.h 18097 (set_sizetype): Create values cache. 18098 (fixup_unsigned_type): Set UNSIGNED_P before caching any values. 18099 * params.def (PARAM_INTEGER_SHARE_LIMIT): New. 18100 * params.h (INTEGER_SHARE_LIMIT): New. 18101 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H. 18102 181032004-08-19 Paolo Bonzini <bonzini@gnu.org> 18104 18105 * gimplify.c (gimplify_minimax_expr): Remove. 18106 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling. 18107 181082004-08-19 Dorit Naishlos <dorit@il.ibm.com> 18109 18110 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace 18111 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. 18112 181132004-08-19 Mark Mitchell <mark@codesourcery.com> 18114 18115 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP. 18116 181172004-08-18 Andrew Pinski <apinski@apple.com> 18118 18119 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty. 18120 181212004-08-18 Mark Mitchell <mark@codesourcery.com> 18122 18123 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility. 18124 (__aeabi_ul2f): Likewise. 18125 181262004-08-18 Richard Henderson <rth@redhat.com> 18127 18128 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block 18129 move to rtl completely. 18130 (struct meminsnbuf, xtensa_emit_block_move): Remove. 18131 (xtensa_find_mode_for_size): Remove. 18132 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove. 18133 * config/xtensa/xtensa.md (movmemsi_internal): Remove. 18134 181352004-08-18 Richard Henderson <rth@redhat.com> 18136 18137 * config/mcore/mcore.c (mode_from_align): Remove DImode. 18138 (block_move_sequence): Rewrite to use adjust_address. 18139 (mcore_expand_block_move): Cleanup logic. Accept only operands. 18140 Return boolean indicating success/failure. 18141 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl. 18142 * config/mcore/mcore.md (movmemsi): Update to match. 18143 181442004-08-18 Mike Stump <mrs@apple.com> 18145 18146 * doc/invoke.texi (-mfix-and-continue): Add support for 18147 fast turn around debugging. 18148 (-ffix-and-continue): Likewise. 18149 (-mindirect-data): Likewise. 18150 (-findirect-data): Likewise. 18151 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise. 18152 (indirect_data): Likewise. 18153 (machopic_data_defined_p): Likewise. 18154 (machopic_output_indirection): Likewise. 18155 (darwin_encode_section_info): Likewise. 18156 (darwin_fix_and_continue): Likewise. 18157 (darwin_fix_and_continue_switch): Likewise. 18158 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise. 18159 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. 18160 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise. 18161 (SUBTARGET_OPTIONS): Likewise. 18162 (darwin_fix_and_continue): Likewise. 18163 (darwin_fix_and_continue_switch): Likewise. 18164 (TARGET_FIX_AND_CONTINUE): Likewise. 18165 * config/rs6000.c (rs6000_emit_prologue): Likewise. 18166 181672004-08-19 Steven Bosscher <stevenb@suse.de> 18168 18169 * basic-block.h (struct edge_def): Remove crossing_edge. 18170 (EDGE_CROSSING): New define. 18171 (EDGE_ALL_FLAGS): Update. 18172 * bb-reorder.c (find_traces_1_round, better_edge_p, 18173 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges, 18174 find_jump_block, fix_crossing_conditional_branches, 18175 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): 18176 Replace all occurences of crossing_edge with an edge flag check 18177 or set/reset. 18178 * cfgcleanup.c (try_simplify_condjump, try_forward_edges, 18179 try_crossjump_bb): Likewise. 18180 * cfglayout.c (fixup_reorder_chain): Likewise. 18181 * cfgrtl.c (force_nonfallthru_and_redirect, 18182 commit_one_edge_insertion): Likewise. 18183 18184 * Makefile.in (cfganal.o): Depend on TIMEVAR_H. 18185 * tree-flow.h (compute_dominance_frontiers): Move prototype... 18186 * basic-block.h: ...here. 18187 * tree-cfg.c (compute_dominance_frontiers_1, 18188 compute_dominance_frontiers): Move from here... 18189 * cfganal.c: ...to here. Include timevar.h. 18190 181912004-08-18 James E Wilson <wilson@specifixinc.com> 18192 18193 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=. 18194 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes. 18195 18196 * config/mips/mips.md (type): Add frdiv. 18197 (divsf3+1, divsf3+2): Change type to frdiv. 18198 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe, 18199 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New. 18200 18201 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv. 18202 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise. 18203 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise. 18204 * config/mips/5000.md (r5k_fdiv_single): Likewise. 18205 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise. 18206 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise. 18207 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise. 18208 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise. 18209 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise. 18210 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double): 18211 Likewise. 18212 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise. 18213 182142004-08-18 Robert Bowdidge <bowdidge@apple.com> 18215 18216 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to 18217 get regression tester working again. 18218 182192004-08-18 Zack Weinberg <zack@codesourcery.com> 18220 18221 * insn-notes.def, reg-notes.def: New files. 18222 * rtl.h: Use them to define enum insn_note and enum reg_note. 18223 * rtl.c: Use them to define note_insn_name and reg_note_name. 18224 * Makefile.in (RTL_BASE_H): Update. 18225 18226 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK 18227 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK. 18228 182292004-08-18 Richard Earnshaw <rearnsha@arm.com> 18230 18231 * arm.c (arm_size_rtx_costs): New function. 18232 (arm_override_options): Use it if optimizing for space. 18233 182342004-08-18 Richard Henderson <rth@redhat.com> 18235 18236 * emit-rtl.c (gen_const_mem): New. 18237 * rtl.h (gen_const_mem): Declare. 18238 * expr.c (do_tablejump): Use it. 18239 * varasm.c (force_const_mem): Likewise. 18240 * config/darwin.c (machopic_indirect_data_reference): Likewise. 18241 (machopic_legitimize_pic_address): Likewise. 18242 * config/arm/arm.c (legitimize_pic_address): Likewise. 18243 * config/i386/i386.c (legitimize_pic_address): Likewise. 18244 (legitimize_tls_address): Likewise. 18245 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. 18246 * config/ia64/ia64.md (load_fptr): Likewise. 18247 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. 18248 * config/pa/pa.c (legitimize_pic_address): Likewise. 18249 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. 18250 (rs6000_emit_move): Likewise. 18251 * config/s390/s390.c (legitimize_pic_address): Likewise. 18252 (legitimize_tls_address): Likewise. 18253 * config/s390/s390.md (casesi): Likewise. 18254 * config/sh/sh.c (sh_reorg): Likewise. 18255 * config/sparc/sparc.c (legitimize_pic_address): Likewise. 18256 * config/v850/v850.md (casesi): Likewise. 18257 18258 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P. 18259 * config/sh/sh.c (prepare_move_operands): Remove incorrect 18260 use of MEM_READONLY_P. 18261 182622004-08-18 Steven Bosscher <stevenb@suse.de> 18263 18264 * Makefile.in (OBJS-common): Add postreload-gcse.c. 18265 Add new postreload-gcse.o. 18266 * cse.c (SAFE_HASH): Define as wrapper around safe_hash. 18267 (lookup_as_function, insert, rehash_using_reg, use_related_value, 18268 equiv_constant): Use SAFE_HASH instead of safe_hash. 18269 (exp_equiv_p): Export. Add for_gcse argument when comparing 18270 for GCSE. 18271 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr, 18272 find_comparison_args, fold_rtx, cse_insn): Update callers. 18273 (hash_rtx): New function derived from old canon_hash and bits 18274 from gcse.c hash_expr_1. 18275 (canon_hash_string): Rename to hash_rtx_string. 18276 (canon_hash, safe_hash): Make static inline. Call hash_rtx. 18277 * cselib.c (hash_rtx): Rename to cselib_hash_rtx. 18278 (cselib_lookup): Update this caller. 18279 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set): 18280 Make static. 18281 (hash_expr): Call hash_rtx. 18282 (ldst_entry): Likewise. 18283 (expr_equiv_p): Call exp_equiv_p. 18284 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr, 18285 reg_used_on_edge, reg_set_between_after_reload_p, 18286 reg_used_between_after_reload_p, get_avail_load_store_reg, 18287 is_jump_table_basic_block, bb_has_well_behaved_predecessors, 18288 get_bb_avail_insn, hash_scan_set_after_reload, 18289 compute_hash_table_after_reload, 18290 eliminate_partially_redundant_loads, gcse_after_reload, 18291 get_bb_avail_insn, gcse_after_reload_main): Remove. 18292 * postreload-gcse.c: New file, reincarnating most of the above. 18293 * rtl.h (exp_equiv_p, hash_rtx): New prototypes. 18294 (gcse_after_reload_main): Update prototype. 18295 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar. 18296 * passes.c (rest_of_handle_gcse2): Use it. 18297 182982004-08-18 Diego Novillo <dnovillo@redhat.com> 18299 18300 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func. 18301 (pass_loop_done): Likewise. 18302 183032004-08-18 Andrew Pinski <apinski@apple.com> 18304 18305 * config/rs6000/darwin.md: Delete the altivec patterns which are 18306 handled differently now. 18307 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT 18308 (macho_correct_pic_di): Likewise. 18309 (call_indirect_nonlocal_darwin64): Likewise. 18310 Delete the save world/saveFP/saveVec patterns. 18311 18312 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com> 18313 * config/darwin.c (macho_indirect_data_reference): Add DImode case. 18314 * config/rs6000/rs6000.md: Include darwin.md. 18315 (builtin_setjmp_receiver): Add DImode case. 18316 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to 18317 Darwin bits. 18318 183192004-08-18 Matt Austern <austern@apple.com> 18320 18321 Dead code stripping 18322 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped. 18323 * darwin.c (darwin_file_end): Mark file as potentially strippable. 18324 183252004-08-18 Richard Henderson <rth@redhat.com> 18326 18327 * alias.c (readonly_fields_p): Remove. 18328 (objects_must_conflict_p): Don't call it. 18329 * tree.h (readonly_fields_p): Remove. 18330 * langhooks.h (struct lang_hooks): Remove honor_readonly. 18331 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove. 18332 183332004-08-18 Diego Novillo <dnovillo@redhat.com> 18334 18335 * tree-dfa.c (add_referenced_var): Only global variables are 18336 call-clobbered. 18337 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem. 18338 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark 18339 all pointers dereferenced if the statement dereferences them. 18340 (create_name_tags): Do not create memory tags for pointers 18341 that have PT_ANYTHING set. 18342 Also check if PT_VARS is not empty before creating a name tag. 18343 (compute_flow_sensitive_aliasing): Don't mark call-clobbered 18344 variables that share the same alias set with a pointer that 18345 may point anywhere. 18346 (add_may_alias): Add FIXME comment to remove clobbering 18347 aliased variables and tags. 18348 (replace_may_alias): Likewise. 18349 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED. 18350 (merge_pointed_to_info): If the original variable has not 18351 points-to information, call set_pt_anything. 18352 (add_pointed_to_var): Do not prevent adding a pointed-to 18353 variable if the pointers is PT_ANYTHING. 18354 If the variable is a global, set PT_GLOBAL_MEM. 18355 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of 18356 pointer type only come in PTR+OFFSET flavours. 18357 Always call merge_pointed_to_info on PHI arguments that are 18358 SSA_NAMEs. 18359 (get_nmt_for): Mark call-clobbered tags whose pointer points 18360 to global memory. 18361 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch 18362 values. 18363 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from 18364 FLAGS. 18365 (add_stmt_operand): Abort if the caller tried to add a killing 18366 definition for a memory tag. 18367 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove 18368 unnecessary checks. 18369 183702004-08-18 J"orn Rennecke <joern.rennecke@superh.com> 18371 18372 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers 18373 from call_used_regs. Update call_really_used_regs. 18374 (CALL_REALLY_USED_REGISTERS): Define. 18375 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space): 18376 Replace call_used_regs with call_really_used_regs. 18377 (calc_live_regs, sh_media_register_for_return): Likewise. 18378 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise. 18379 * sh.md (return_media): Likewise. 18380 183812004-08-18 Andrew Pinski <apinski@apple.com> 18382 18383 * config/darwin.c (machopic_legitimize_pic_address): Only set 18384 MEM_READONLY_P in the non TARGET_TOC case. 18385 183862004-08-18 Zack Weinberg <zack@codesourcery.com> 18387 18388 * rtl.def (NIL): Delete. 18389 * read-rtl.c (read_rtx): Handle (nil) like (define_constants). 18390 Tighten the syntax a little. 18391 18392 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c 18393 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h 18394 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c 18395 * config/i386/predicates.md, config/m32r/m32r.h 18396 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c 18397 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h 18398 * config/sparc/sparc.h, doc/tm.texi: 18399 Replace all occurrences of NIL with UNKNOWN. 18400 184012004-08-18 Zack Weinberg <zack@codesourcery.com> 18402 18403 * dojump.c (do_jump <unordered_bcc>): Do not recursively call 18404 self with a TRUTH_ORIF_EXPR; generate the appropriate jump 18405 sequence inline. Move drop_through_label code into this 18406 block, being the only place it is used. Adjust comments. 18407 184082004-08-18 Fariborz Jahanian <fjahanian@apple.com> 18409 18410 * config/rs6000/altivec.md: Add new patterns for calls to 18411 save_world/rest_world functions. 18412 18413 * config/rs6000/rs6000-protos.h: (save_world_operation, 18414 restore_world_operation) new declarations. 18415 18416 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p 18417 field added. 18418 (rs6000_stack_info): Set world_save_p field. 18419 (save_world_operation): New function. 18420 (restore_world_operation): New function. 18421 (compute_save_world_info): New function. 18422 (rs6000_stack_info): Call compute_save_world_info. 18423 (rs6000_emit_prologue): Check for world_save_p and generate 18424 pattern to call save_world for saving all non-volatile and 18425 special registers. 18426 (rs6000_emit_epilogue): Check for world_save_p and generate 18427 pattern to call rest_world to restore saved registers. 18428 18429 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO, 18430 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined. 18431 (rs6000_reg_names): New entries added for save_world_operation and 18432 restore_world_operation. 18433 184342004-08-18 Caroline Tice <ctice@apple.com> 18435 18436 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add 18437 "-freorder-blocks-and-partition" to the flags used in second 18438 stage of profiledbootstrap. 18439 * bb-reorder.c (push_to_next_round_p): Add new variable, 18440 next_round_is_last; set and use variable to make sure, when 18441 partitioning, that the last trace construction round consists 18442 of all (and only) cold basic blocks. 18443 (rotate_loop): Don't copy blocks that end in a section 18444 crossing jump. 18445 (copy_bb): Correctly initialize "partition" of duplicated bb. 18446 (add_unlikely_executed_notes): Add a comment. 18447 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify 18448 to make sure, if function contains hot blocks, that the 18449 successors of ENTRY_BLOCK_PTR are hot; also, only look for 18450 crossing edges if the architecture supports named sections. 18451 (mark_bb_for_unlikely_executed_section): Modify to always 18452 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after 18453 the basic block note insn. 18454 (fix_crossing_unconditional_branches): Remove extra space. 18455 (fix_edges_for_rarely_executed_code): Modify to only do 18456 partitioning work if the architecture supports named sections. 18457 (reorder_basic_blocks): Modify to only add 18458 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture 18459 supports named sections. 18460 * c-common.c (handle_section_attribute): Initialize new global 18461 variable, user_defined_section_attribute, to true if user has 18462 specified one. 18463 * cfgcleanup.c (try_forward_edges): Modify to not attempt to 18464 forward edges that cross section boundaries. 18465 * cfglayout.c (fixup_reorder_chain): Modify to only fix up 18466 partitioning information if the architecture supports named 18467 sections. 18468 * cfgrtl.c (target.h): Add statement to include this. 18469 (rtl_split_block): Make sure newly created bb gets correct 18470 partition. 18471 (try_redirect_by_replacing_jump): Make sure redirection isn't 18472 attempting to cross section boundaries. 18473 (force_nonfallthru_and_redirect): Only do partition fix up if 18474 architecture supports named sections. 18475 (rtl_split_edge): Make sure newly created bb ends up in 18476 correct partition. 18477 (commit_one_edge_insertion): Remove code that incorrectly 18478 updated basic block partition; Make sure partition fix up only 18479 happens if architecture supports named sections and it's not 18480 already done. 18481 (rtl_verify_flow_info_1): Fix if-condition on test/error 18482 condition that fallthru edges are not allowed to cross section 18483 boundaries. 18484 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this. 18485 * final.c (final_scan_insn): Remove redundant test from if-statement; 18486 change calls to text_section into calls to function_section; add code 18487 to only to partitioning fix up if architecture supports named 18488 sections. 18489 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct 18490 partition. 18491 (if_convert): Add targetm.have_named_sections to test. 18492 * output.h (unlikely_section_label): Extern declaration for new global 18493 variable. 18494 (unlikely_text_section_name): Likewise. 18495 * opts.c (decode_options): If both partitioning and DWARF debugging 18496 are turned on, issue a warning that this doesn't work, and change 18497 partitiong to basic block reordering (without hot/cold partitions). 18498 * passes.c (rest_of_handle_final): Re-set new global variable, 18499 user_defined_section_attribute, to false. 18500 (rest_of_compilation): Change options for calling partitioning 18501 function: Don't call if the user defined the section attribute, and 18502 don't call if DECL_ONE_ONLY is true for the current function. 18503 * predict.c (choose_function_section): Return immediately if we 18504 are doing hot/cold partitioning (i.e. let the basic block partitioning 18505 determine where the function belongs). 18506 * reg-stack.c (emit_swap_insn): Add condition to step over 18507 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. 18508 * toplev.c (user_defined_section_attribute): New global variable. 18509 * toplev.h (user_defined_section_attribute): Extern declaration 18510 for new global variable. 18511 * varasm.c (unlikely_section_label): New global variable. 18512 (unlikely_text_section_name): New global variable. 18513 (unlikely_text_section): Add code to initialize 18514 unlikely_text_section_name if necessary; modify to use 18515 unlikely_text_section_name and unlikely_section_label; also to use 18516 named_section properly. 18517 (in_unlikely_text_section): Modify to work correctly with 18518 named_section and to use unlikely_text_section_name. 18519 (named_section): Add code to work properly with cold section. 18520 (function_section): Clean up if-statement. 18521 * config/darwin.c (darwin_asm_named_section): Return to original 18522 code, removing use of SECTION_FORMAT_STRING. 18523 * config/arm/pe.h (switch_to_section): Add case for 18524 in_unlikely_executed_text to switch statement. 18525 * config/i386/cygming.h (switch_to_section): Likewise. 18526 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. 18527 (SECTION_FORMAT_STRING): Likewise. 18528 * config/mcore/mcore.h (switch_to_section): Likewise. 18529 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. 18530 (SECTION_FORMAT_STRING): Remove. 18531 185322004-08-18 Roger Sayle <roger@eyesopen.com> 18533 18534 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be 18535 -ffixed-reg safe, by preserving the meanings of zero and one. 18536 (CALL_USED_REGISTERS): Likewise. 18537 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings. 18538 185392004-08-18 Kaz Kojima <kkojima@gcc.gnu.org> 18540 18541 * config/sh/sh.c (split_branches): Check the result of 18542 next_active_insn. 18543 (sh_output_mi_thunk): Call init_flow if basic_block_info is null. 18544 Call rtl_register_cfg_hooks. 18545 185462004-08-18 Richard Henderson <rth@redhat.com> 18547 18548 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. 18549 * alias.c (true_dependence): Update to match new semantics. 18550 (canon_true_dependence, write_dependence_p): Likewise. 18551 (anti_dependence, output_dependence): Update write_dependence_p args. 18552 (unchanging_anti_dependence): Remove. 18553 * calls.c (purge_mem_unchanging_flag): Remove. 18554 (fixup_tail_calls): Don't call it. 18555 (expand_call): Don't add unchanging memory to function usage. 18556 * expr.c (emit_block_move_via_libcall): Likewise. 18557 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems. 18558 (get_subtarget): Don't use RTX_UNCHANGING_P. 18559 (expand_assignment, store_constructor, expand_expr_real_1): Likewise. 18560 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P. 18561 * combine.c (get_last_value_validate): Use MEM_READONLY_P. 18562 * cse.c (insert): Don't use RTX_UNCHANGING_P. 18563 (cse_insn, canon_hash): Use MEM_READONLY_P. 18564 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P 18565 instead of RTX_UNCHANGING_P. 18566 * explow.c (maybe_set_unchanging): Remove. 18567 * expr.h (maybe_set_unchanging): Remove. 18568 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence. 18569 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P. 18570 (assign_parm_setup_reg, expand_function_start): Likewise. 18571 * integrate.c (copy_rtx_and_substitute): Likewise. 18572 * ra-rewrite.c (emit_colors): Likewise. 18573 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise. 18574 (fixup_match_1): Likewise. 18575 * reload1.c (reload, alter_reg): Likewise. 18576 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P, 18577 not RTX_UNCHANGING_P. 18578 (equiv_init_varies_p): Likewise. 18579 * loop-invariant.c (check_maybe_invariant): Likewise. 18580 * resource.c (mark_referenced_resources, mark_set_resources): Likewise. 18581 * loop.c (note_addr_stored): Likewise. 18582 (prescan_loop): Likewise. Don't check function usage for clobbered 18583 unchanging memory. 18584 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P, 18585 not RTX_UNCHANGING_P. 18586 (rtx_varies_p, modified_between_p, modified_in_p): Likewise. 18587 * varasm.c (force_const_mem): Likewise. 18588 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P. 18589 * web.c (entry_register): Likewise. 18590 * tree-gimple.h (get_base_address): Move decl ... 18591 * tree.h: ... here. 18592 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P. 18593 18594 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be 18595 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too. 18596 (alpha_set_memflags): Update to match. 18597 18598 * config/darwin.c (machopic_indirect_data_reference): Set 18599 MEM_READONLY_P instead of RTX_UNCHANGING_P. 18600 (machopic_indirect_call_target): Likewise. 18601 (machopic_legitimize_pic_address): Likewise. 18602 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple, 18603 arm_gen_store_multiple, arm_gen_movmemqi): Likewise. 18604 * config/arm/arm.md (load_multiple, store_multiple): Likewise. 18605 * config/frv/frv.md (symGOT2reg): Likewise. 18606 * config/i386/i386.c (legitimize_pic_address, 18607 legitimize_tls_address, ix86_split_to_parts): Likewise. 18608 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. 18609 * config/ia64/ia64.md (load_fptr): Likewise. 18610 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. 18611 * config/m68k/m68k.c (legitimize_pic_address): Likewise. 18612 * config/mcore/mcore.c (block_move_sequence): Likewise. 18613 * config/mn10300/mn10300.md (symGOT2reg): Likewise. 18614 * config/pa/pa.c (legitimize_pic_address): Likewise. 18615 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. 18616 (rs6000_emit_move): Likewise. 18617 * config/s390/s390.c (legitimize_pic_address): Likewise. 18618 (legitimize_tls_address): Likewise. 18619 * config/s390/s390.md (casesi): Likewise. 18620 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise. 18621 * config/sh/sh.md (symGOT2reg): Likewise. 18622 * config/sparc/sparc.c (legitimize_pic_address): Likewise. 18623 * config/v850/v850.md (casesi): Likewise. 18624 18625 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P. 18626 * config/iq2000/iq2000.c (save_restore_insns): Likewise. 18627 * config/mips/mips.c (mips_restore_gp): Likewise. 18628 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise. 18629 * config/sh/sh.c (sh_reorg): Likewise. 18630 186312004-08-18 Richard Henderson <rth@redhat.com> 18632 18633 * tree.h (struct tree_decl): Add gimple_formal_temp. 18634 (DECL_GIMPLE_FORMAL_TEMP_P): New. 18635 * gimplify.c (pop_gimplify_context): Clear it. 18636 (lookup_tmp_var): Set it, if is_formal. 18637 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX. 18638 Use is_gimple_val for VECTOR. Simplify return value. 18639 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P. 18640 (gimplify_expr): Likewise. 18641 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from 18642 is_gimple_tmp_rhs for clarity. Update all callers. 18643 (is_gimple_reg_rhs): Simplify logic. 18644 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for 18645 clarity; use DECL_GIMPLE_FORMAL_TEMP_P. 18646 (is_gimple_formal_tmp_reg): Similarly. 18647 * tree-gimple.h: Update decls. 18648 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use 18649 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting. 18650 * tree-ssa-live.c (var_union, type_var_init): Likewise. 18651 186522004-08-18 Paolo Bonzini <bonzini@gnu.org> 18653 18654 * c4x.c (legitimize_operands): Remove calls to 18655 preserve_subexpressions_p. 18656 186572004-08-18 David Edelsohn <edelsohn@gnu.org> 18658 18659 * varasm.c (MAX_OFILE_ALIGNMENT): Move ... 18660 * defaults.h (MAX_OFILE_ALIGNMENT): ... here. 18661 186622004-08-18 Ziemowit Laski <zlaski@apple.com> 18663 18664 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii" 18665 Objective-C++ extensions. 18666 * gengtype.c (get_file_basename): Match entire subdirectory name 18667 ('cp', 'objc', 'objcp') rather than just its suffix. 18668 (get_base_file_bitmap): Allow for files to belong to more than one 18669 language. 18670 (get_output_file_with_visibility): Treat objc/objc-act.h as a header 18671 used by more than one front-end. 18672 186732004-08-18 Richard Earnshaw <rearnsha@arm.com> 18674 18675 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to 18676 avoid use of preserve_subexpressions_p. 18677 186782004-08-17 Richard Henderson <rth@redhat.com> 18679 18680 PR 17051 18681 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too. 18682 186832004-08-17 DJ Delorie <dj@redhat.com> 18684 18685 * doc/extend.texi: Document new xstormy16 attribute. 18686 18687 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New. 18688 (xstormy16_splittable_below100_or_register): New. 18689 (combine_bnp): New. 18690 (xstormy16_reorg): New. 18691 (TARGET_MACHINE_DEPENDENT_REORG): Define. 18692 18693 * config/stormy16/stormy16.md (movqi_internal): Make name public. 18694 (movhi_internal): Likewise. 18695 (cbhranchhi): Likewise. 18696 (cbhranchhi_neg): Likewise. 18697 (andhi3): Only allow splittable below100 operands. 18698 (iorhi3): Likewise. 18699 (peephole2): New and/zero_extend->and peephole. 18700 (peephole2): New load/ior/save->set1 peephole. 18701 (peephole2): New load/and/save->clr1 peephole. 18702 (bclrx, bclrx2, bclr7, bclr15): New. 18703 (bsetx, bsetx2, bset7, bset15): New. 18704 18705 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more 18706 liberal about acceptable 'B' masks. 18707 18708 * config/stormy16/stormy16-protos.h 18709 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, 18710 xstormy16_below100_operand, xstormy16_below100_or_register, 18711 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. 18712 (PREDICATE_CODES): Add new predicates. 18713 18714 * config/stormy16/stormy16.c 18715 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, 18716 xstormy16_below100_operand, xstormy16_below100_or_register, 18717 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. 18718 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New. 18719 (xstormy16_legitimate_address_p): Allow below100 symbols. 18720 (xstormy16_extra_constraint_p): Add 'W' for below100 operands. 18721 (xstormy16_expand_move): Leave below100 operands as-is. 18722 (xstormy16_encode_section_info): Encode below100 symbols. 18723 (xstormy16_strip_name_encoding): New. 18724 (xstormy16_print_operand): Print 'b' as shift mask. 18725 (xstormy16_attribute_table): Add below100 attributes. 18726 (xstormy16_handle_below100_attribute): New. 18727 18728 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100. 18729 (XSTORMY16_SECTION_FUNCTION): New. 18730 (EXTRA_SECTION_FUNCTIONS): Define using the above. 18731 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. 18732 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols. 18733 (ASM_OUTPUT_LABELREF): Define. 18734 18735 * config/stormy16/stormy16.md (movqi_internal): Add below100 support. 18736 (movhi_internal): Add below100 support. 18737 (andhi3): Add below100 support. 18738 (iorhi3): Add below100 support. 18739 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New. 18740 187412004-08-17 James E Wilson <wilson@specifixinc.com> 18742 18743 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead 18744 of VOIDmode for comparison code mode. 18745 * config/mips/mips.md: For conditional move patterns, use mode of 18746 first compare operand for comparison mode, instead of VOIDmode. 18747 18748 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both 18749 normal and -ffast-math code. 18750 187512004-08-17 Mark Mitchell <mark@codesourcery.com> 18752 18753 PR c++/15871 18754 * doc/invoke.texi (-fkeep-inline-functions): Update documentation. 18755 187562004-08-17 Robert Bowdidge <bowdidge@apple.com> 18757 18758 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags. 18759 187602004-08-17 Andreas Tobler <a.tobler@schweiz.ch> 18761 18762 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause 18763 for non Darwin targets. 18764 (*call_value_nonlocal_darwin64): Likewise. 18765 187662004-08-17 Fariborz Jahanian <fjahanian@apple.com> 18767 18768 * config/rs6000/rs6000.c (rs6000_function_value): Check for 18769 altivec mode for altivec return register. 18770 187712004-08-17 David Edelsohn <edelsohn@gnu.org> 18772 18773 Revert 2004-08-16 Stan Shebs <shebs@apple.com> 18774 * config/darwin.c (macho_indirect_data_reference): Add DImode case. 18775 * config/rs6000/rs6000.md: Include darwin.md. 18776 (builtin_setjmp_receiver): Add DImode case. 18777 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to 18778 Darwin bits. 18779 187802004-08-17 Dorit Naishlos <dorit@il.ibm.com> 18781 18782 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE 18783 trees. 18784 * tree-vectorizer.h: New File: Same. 18785 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files. 18786 * common.opt (ftree-vectorize): New flag to enable vectorization. 18787 * timevar.def (TV_TREE_VECTORIZATION): New dump file for 18788 vectorization pass. 18789 * tree-data-ref.h (init_data_ref): Additional argument. 18790 (array_base_name_differ_p): Moved to tree-data-ref.c. 18791 * tree-data-ref.c (array_base_name_differ_p): Revised. 18792 (initialize_data_dependence_relation): Call array_base_name_differ_p 18793 with an extra argument. 18794 (analyze_all_data_dependences): Same. 18795 (init_data_ref): Additional argument is_read to set DR_IS_READ. 18796 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this 18797 file. 18798 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration. 18799 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass. 18800 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new 18801 vectorization pass. 18802 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize. 18803 (tree_ssa_loop_done): Call scev_finalize. 18804 (tree_vectorize): Define the new vectorization pass. 18805 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the 18806 size of the vector they support (until support for multiple vector 18807 sizes is added to the vectorizer). 18808 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. 18809 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. 18810 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add 18811 documentation. 18812 188132004-08-17 Nathan Sidwell <nathan@codesourcery.com> 18814 18815 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst 18816 usage. 18817 (generate_protocol_list, handle_impent): Likewise. 18818 188192004-08-17 Roger Sayle <roger@eyesopen.com> 18820 18821 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to 18822 ensure that call_used_regs is a superset of both fixed_regs and 18823 call_really_used_regs. 18824 188252004-08-17 Daniel Bornstein <danfuzz@milk.com> 18826 18827 PR target/17019 18828 * arm.md (addsi3_cbranch_scratch): Correct case labels. 18829 188302004-08-17 Paolo Bonzini <bonzini@gnu.org> 18831 18832 PR middle-end/17036 18833 * fold-const.c (fold): Check for integer operand when 18834 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew 18835 Pinski <pinskia@physics.uc.edu>. 18836 188372004-08-17 Paolo Bonzini <bonzini@gnu.org> 18838 18839 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO. 18840 No need to check if in a cross configuration. 18841 * configure: Regenerate. 18842 18843 * calls.c (precompute_register_parameters): 18844 Inline preserve_subexpressions_p (). 18845 * expmed.c (expand_mult_const, emit_store_flag): Likewise. 18846 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn): 18847 Likewise. 18848 * expr.c (get_subtarget): Likewise. 18849 * rtl.h (preserve_subexpressions_p): Remove. 18850 * stmt.c (preserve_subexpressions_p): Remove. 18851 18852 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR, 18853 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>: 18854 Abort on gimplified cases. 18855 188562004-08-16 James E Wilson <wilson@specifixinc.com> 18857 18858 * tree.h (VECTOR_FLOAT_TYPE_P): New. 18859 (FLOAT_TYPE_P): Use it. 18860 * c-typeck.c (build_binary_op): After convert calls, check for 18861 check for ERROR_MARK operands. 18862 188632004-08-16 Zack Weinberg <zack@codesourcery.com> 18864 18865 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete. 18866 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update. 18867 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o. 18868 (genobjs static pattern rule): Remove %.c dependency. 18869 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o): 18870 Rename rules; delete commands; fix dependencies. 18871 (mostlyclean): Do not delete temporary source copies. 18872 * configure.ac: Delete all references to BUILD_PREFIX and 18873 BUILD_PREFIX_1. 18874 * configure: Regenerate. 18875 18876 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE. 18877 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or 18878 basic-block.h #ifdef GENERATOR_FILE. Surround some more code 18879 with #ifndef GENERATOR_FILE so that nothing from those headers 18880 is used. 18881 18882 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE. 18883 188842004-08-16 Adam Nemet <anemet@lnxw.com> 18885 18886 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB). 18887 188882004-08-16 Andrew Pinski <apinski@apple.com> 18889 18890 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove 18891 extraneous semicolon. 18892 188932004-08-16 Devang Patel <dpatel@apple.com> 18894 18895 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P. 18896 * print-tree.c (print_node): Print DECL_PRESERVE_P. 18897 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define. 18898 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED 18899 * target.h (struct gcc_target): New member, mark_decl_preserved. 18900 * hooks.c (hook_void_charptr): Rename to ... 18901 (hook_void_constcharptr): ... new name. 18902 * hooks.h (hook_void_charptr): Rename to .. 18903 (hook_void_constcharptr): ... new name. 18904 * tree.h (DECL_PRESERVE_P): New #define. 18905 (struct tree_decl): New member, preserve_flag. 18906 * varasm.c (assemble_start_function): Mark decl preserved. 18907 (assemble_variable): Same. 18908 * darwin.c (darwin_mark_decl_preserved): New function. 18909 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define. 18910 * darwin-protos.h (darwin_mark_decl_preserved): New decl. 18911 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document. 18912 189132004-08-16 Joseph S. Myers <jsm@polyomino.org.uk> 18914 18915 * c-decl.c (grokdeclarator): Allow for function definition where 18916 innermost declarator has attributes. 18917 189182004-08-16 Fariborz Jahanian <fjahanian@apple.com> 18919 18920 * except.c (get_exception_filter, build_post_landing_pads, 18921 dw2_build_landing_pads): Use target-specific mode for 'filter'. 18922 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used. 18923 * target.h (eh_return_filter_mode): New field added. 18924 * targhooks.c (default_eh_return_filter_mode): Defined. 18925 * targhooks.h (default_eh_return_filter_mode): Declared. 18926 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined. 18927 189282004-08-16 Nathanael Nerode <neroden@gcc.gnu.org> 18929 18930 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with 18931 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST. 18932 * configure: Regenerate. 18933 189342004-08-16 Stan Shebs <shebs@apple.com> 18935 18936 Basic support for 64-bit Darwin. 18937 * config/darwin.c (macho_indirect_data_reference): Add DImode case. 18938 (machopic_legitimize_pic_address): Similarly, plus use Pmode 18939 instead of SImode. 18940 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit. 18941 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro. 18942 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags. 18943 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64. 18944 (PROCESSOR_DEFAULT64): Define. 18945 * config/rs6000/darwin.md: New file, patterns specific to 64-bit 18946 Darwin. 18947 * config/rs6000/rs6000.md: Include darwin.md. 18948 (builtin_setjmp_receiver): Add DImode case. 18949 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for 18950 Darwin. 18951 (TARGET_ASM_ALIGNED_DI_OP): Ditto. 18952 (rs6000_emit_move): Add DImode case to Darwin bits. 18953 (machopic_output_stub): Use .quad if 64-bit. 18954 * invoke.texi: Document -m32 and -m64. 18955 189562004-08-16 Janis Johnson <janis187@us.ibm.com> 18957 18958 * doc/extend.texi (AltiVec builtins): Document additional differences 18959 from the Motorola AltiVec PIM. 18960 189612004-08-16 Nathan Sidwell <nathan@codesourcery.com> 18962 18963 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes. 18964 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify. 18965 (struct tree_common): Update public_flag documentation. 18966 189672004-08-16 Nathanael Nerode <neroden@gcc.gnu.org> 18968 18969 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): 18970 Check for artificial variables, not is_gimple_tmp_var. 18971 * tree-ssa-live.c (var_union): Likewise. 18972 189732004-08-16 Nathan Sidwell <nathan@codesourcery.com> 18974 18975 * calls.c (load_register_parameters): Remove spurious FIXME token. 18976 189772004-08-15 Ziemowit Laski <zlaski@apple.com> 18978 18979 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h. 18980 (c-lang.o): Depend on c-objc-common.h. 18981 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and 18982 c-objc-common.h; remove duplicate $(C_TREE_H) dependency. 18983 * c-lang.c: Include c-objc-common.h. 18984 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, 18985 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, 18986 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, 18987 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, 18988 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, 18989 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, 18990 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, 18991 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, 18992 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, 18993 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, 18994 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, 18995 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 18996 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, 18997 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, 18998 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, 18999 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, 19000 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, 19001 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 19002 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, 19003 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, 19004 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, 19005 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, 19006 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, 19007 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): 19008 Move to c-objc-common.h. 19009 * c-objc-common.c: Include c-objc-common.h. 19010 * c-objc-common.h: New file. 19011 190122004-08-15 Andreas Tobler <a.tobler@schweiz.ch> 19013 Andrew Pinski <pinskia@physics.uc.edu> 19014 19015 PR target/14931 19016 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub 19017 style. 19018 190192004-08-15 Nathan Sidwell <nathan@codesourcery.com> 19020 19021 * tree.h (build_int_cst): New. 19022 (build_int_2): Remove. 19023 * tree.c (build_int_2): Remove. 19024 (build_int_cst): New. 19025 (make_vector_type, build_common_tree_nodes, 19026 build_common_tree_nodes_2): Use build_int_cst. 19027 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, 19028 expand_builtin_strpbrk, expand_builtin_fputs, 19029 build_string_literal, expand_builtin_printf, 19030 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop, 19031 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii, 19032 fold_builtin_isdigit, simplify_builtin_strstr, 19033 simplify_builtin_strpbrk, fold_builtin_fputs, 19034 simplify_builtin_sprintf): Use build_int_cst. 19035 * c-common.c (start_fname_decls, fix_string_type, 19036 c_common_nodes_and_builtins, c_init_attributes, 19037 shorten_compare): Likewise. 19038 * c-decl.c (complete_array_type, 19039 check_bitfield_type_and_width): Likewise. 19040 * c-lex.c (interpret_integer, lex_charconst): Likewise. 19041 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise. 19042 * c-pretty-print.c (pp_c_integer_constant): Likewise. 19043 * c-typeck.c (really_start_incremental_init, push_init_level, 19044 set_nonincremental_init_from_string): Likewise. 19045 * calls.c (load_register_parameters): Likewise. 19046 * convert.c (convert_to_pointer): Likewise. 19047 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, 19048 build_fn_info_type, build_ctr_info_value, build_gcov_info): 19049 Likewise. 19050 * except.c (init_eh, assign_filter_values, assign_filter_values): 19051 Likewise. 19052 * expmed.c (store_fixed_bit_field, extract_bit_field, 19053 extract_fixed_bit_field, extract_split_bit_field, expand_shift, 19054 expand_mult_const, expand_mult_highpart_adjust, extract_high_half, 19055 expand_sdiv_pow2, expand_divmod, make_tree): Likewise. 19056 * expr.c (convert_move, emit_group_load, emit_group_store, 19057 expand_assignment, store_constructor, store_field, 19058 expand_expr_real_1, reduce_to_bit_field_precision): Likewise. 19059 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const, 19060 invert_truthvalue, optimize_bit_field_compare, 19061 decode_field_reference, all_ones_mask_p, constant_boolean_node, 19062 fold_div_compare, fold, fold_read_from_constant_string, 19063 fold_negate_const, fold_abs_const, fold_not_const): Likewise. 19064 * function.c (assign_parm_setup_block): Likewise. 19065 * stmt.c (shift_return_value, expand_end_case_type, 19066 estimate_case_costs): Likewise. 19067 * stor-layout.c (layout_type, initialize_sizetypes, 19068 set_min_and_max_values_for_integral_type): Likewise. 19069 * tree-chrec.c (chrec_fold_multiply_poly_poly, 19070 reset_evolution_in_loop): Likewise. 19071 * tree-chrec.h (build_polynomial_chrec): Likewise. 19072 * tree-complex.c (build_replicated_const): Likewise. 19073 * tree-eh.c (honor_protect_cleanup_actions, 19074 lower_try_finally_onedest, lower_try_finally_copy, 19075 lower_try_finally_switch): Likewise. 19076 * tree-mudflap.c (mf_build_string, mx_register_decls, 19077 mudflap_register_call, mudflap_enqueue_constant): Likewise. 19078 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. 19079 * tree-pretty-print.c (dump_generic_node): Likewise. 19080 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): 19081 Likewise. 19082 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. 19083 * tree-ssa-loop-niter.c (number_of_iterations_cond, 19084 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): 19085 Likewise. 19086 19087 * config/alpha/alpha.c (alpha_initialize_trampoline, 19088 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst. 19089 * config/arm/arm.c (arm_get_cookie_size): Likewise. 19090 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. 19091 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. 19092 * config/i860/i860.c (i860_va_start): Likewise. 19093 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. 19094 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, 19095 mips_gimplify_va_arg_expr): Likewise. 19096 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. 19097 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, 19098 add_compiler_branch_island): Likewise. 19099 * config/s390/s390.c (s390_va_start): Likewise. 19100 * config/sh/sh.c (sh_va_start): Likewise. 19101 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): 19102 Likewise. 19103 * config/xtensa/xtensa.c (xtensa_va_start, 19104 xtensa_gimplify_va_arg_expr): Likewise. 19105 19106 * objc/objc-act.c (build_objc_string_object, 19107 build_objc_symtab_template, init_def_list, init_objc_symtab, 19108 init_module_descriptor, generate_static_references, 19109 build_selector_translation_table, get_proto_encoding, 19110 build_typed_selector_reference, build_selector_reference, 19111 build_next_objc_exception_stuff, 19112 build_method_prototype_list_template, generate_descriptor_table, 19113 generate_protocols, build_protocol_initializer, 19114 build_ivar_list_template, build_method_list_template, 19115 build_ivar_list_initializer, generate_ivars_list, 19116 generate_dispatch_table, generate_protocol_list, 19117 build_category_initializer, build_shared_structure_initializer, 19118 generate_shared_structures, handle_impent, 19119 generate_objc_image_info): Use build_int_cst. 19120 191212004-08-15 Ben Elliston <bje@au.ibm.com> 19122 19123 * vec.h: Comment improvements. 19124 191252004-08-14 Roger Sayle <roger@eyesopen.com> 19126 19127 * c-common.c (shorten_compare, pointer_int_sum, 19128 c_common_truthvalue_conversion, boolean_increment): Replace calls 19129 to build with calls to buildN. 19130 * c-decl.c (complete_array_type, grokdeclarator): Likewise. 19131 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop, 19132 gimplify_switch_stmt): Likewise. 19133 * c-typeck.c (default_function_array_conversion, 19134 build_component_ref, build_array_ref, build_function_call, 19135 pointer_diff, build_unary_op, build_conditional_expr, 19136 build_compound_expr, build_modify_expr, c_finish_goto_label, 19137 c_finish_goto_ptr, c_finish_return, c_finish_loop, 19138 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt, 19139 build_binary_op): Likewise. 19140 191412004-08-15 Steven Bosscher <stevenb@suse.de> 19142 19143 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK. 19144 191452004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 19146 19147 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h, 19148 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h. 19149 * fixinc/fixincl.x: Rebuilt. 19150 191512004-08-14 Richard Sandiford <rsandifo@redhat.com> 19152 19153 * config/mips/mips-protos.h (mips_symbolic_constant_p) 19154 (mips_atomic_symbolic_constant_p, mips_stack_address_p) 19155 (mips_small_data_pattern_p): Declare. 19156 * config/mips/mips.h (CONST_GP_P): Moved from mips.c. 19157 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. 19158 * config/mips/mips.c (mips_symbolic_constant_p): Make global. 19159 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions. 19160 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand) 19161 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand) 19162 (reg_or_const_float_1_operand, hilo_operand, extend_operator) 19163 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op) 19164 (pc_or_label_operand, call_insn_operand, move_operand) 19165 (consttable_operand, symbolic_operand, general_symbolic_operand) 19166 (global_got_operand, local_got_operand, stack_operand) 19167 (fp_register_operand, lo_operand, fcc_register_operand): Delete. 19168 (mips_small_data_pattern_1): Renamed from small_data_pattern_1. 19169 (mips_small_data_pattern_p): Replace previous small_data_pattern 19170 predicate. Turn into a bool () (rtx) function. 19171 * config/mips/predicates.md: New file. 19172 * config/mips/mips.md: Include it. Use the target-independent 19173 comparison_operator instead of cmp_op. Rename trap_cmp_op to 19174 trap_comparison_operator and equality_op to equality_operator. 19175 Replace uses of small_int with the equivalent const_arith_operand. 19176 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename 19177 const_float_1_operand to const_1_operand. Rename fcc_register_operand 19178 to fcc_reload_operand. 19179 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand. 19180 191812004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 19182 19183 PR libstdc++/17005 partial fix. 19184 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE 19185 except when generating ANSI/C89 code. 19186 191872004-08-14 Nathan Sidwell <nathan@codesourcery.com> 19188 19189 * c-common.c (shorten_compare): Use force_fit_type directly. 19190 191912004-08-14 Gerald Pfeifer <gerald@pfeifer.com> 19192 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr> 19193 Dave Korn <dk@artimi.com> 19194 19195 * doc/install.texi (Building): Avoid duplicate reference to GNU 19196 make requirement. 19197 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify. 19198 191992004-08-14 Richard Henderson <rth@redhat.com> 19200 19201 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types. 19202 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE. 19203 192042004-08-13 Richard Henderson <rth@redhat.com> 19205 19206 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode 19207 for constant_call_address_operand. 19208 (call_value_pop_1, call_value_1): Likewise. 19209 (sibcall_value_1, call_value_1_rex64): Likewise. 19210 192112004-08-13 James E Wilson <wilson@specifixinc.com> 19212 19213 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe): 19214 Correct mode from SFmode to DFmode. 19215 192162004-08-13 Ziemowit Laski <zlaski@apple.com> 19217 19218 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup, 19219 __cstring_object and __image_info sections with the no_dead_strip 19220 attribute. 19221 192222004-08-13 Roger Sayle <roger@eyesopen.com> 19223 David Billinghurst <David.Billinghurst@riotinto.com> 19224 19225 PR libgfortran/15930 19226 * fixinc/inclhack.def (irix___generic1, irix___generic2): New. 19227 * fixinc/fixincl.x: Regenerate. 19228 * fixinc/tests/base/internal/math_core.h: New file. 19229 192302004-08-13 Richard Henderson <rth@redhat.com> 19231 19232 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero. 19233 (dbxout_function_end): Remove ifdefs for it. 19234 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions. 19235 192362004-08-13 Richard Henderson <rth@redhat.com> 19237 19238 * Makefile.in (insn-preds.o): Depend on TREE_H. 19239 * genpreds.c (write_insn_preds_c): Include tree.h. 19240 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand, 19241 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand, 19242 const48_operand, and_operand, or_operand, mode_width_operand, 19243 mode_mask_operand, mul8_operand, const0_operand, 19244 hard_fp_register_operand, hard_int_register_operand, 19245 reg_or_cint_operand, some_operand, some_ni_operand, input_operand, 19246 samegp_function_operand, direct_call_operand, small_symbolic_operand, 19247 global_symbolic_operand, call_operand, symbolic_operand, 19248 dtp16_symbolic_operand, dtp32_symbolic_operand, 19249 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand, 19250 gottp_symbolic_operand, alpha_comparison_operator, 19251 alpha_zero_comparison_operator, alpha_swapped_comparison_operator, 19252 signed_comparison_operator, alpha_fp_comparison_operator, 19253 divmod_operator, fix_operator, aligned_memory_operand, 19254 unaligned_memory_operand, reg_or_unaligned_mem_operand, 19255 any_memory_operand, reg_not_elim_operand, normal_memory_operand, 19256 reg_no_subreg_operand, addition_operation): Move to predicates.md. 19257 (reg_or_const_int_operand): Remove. Replace all users with 19258 reg_or_cint_operand. 19259 (tls_symbolic_operand_1): Export. Don't check mode or for CONST. 19260 (resolve_reload_operand): Split out of aligned_memory_operand. 19261 * config/alpha/alpha-protos.h: Update for exports. 19262 * config/alpha/alpha.h (PREDICATE_CODES): Remove. 19263 * config/alpha/alpha.md: Include predicates.md. 19264 * config/alpha/predicates.md: New file. 19265 192662004-08-13 Richard Sandiford <rsandifo@redhat.com> 19267 19268 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno 19269 fields with a pointer to the instruction definition. 19270 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent) 19271 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get) 19272 (write_attr_case, write_const_num_delay_slots): Update accordingly. 19273 (write_attr_case, write_const_num_delay_slots): Write the name of 19274 an insn next to its case statement. 19275 * genoutput.c (data): Add a filename field. 19276 (gen_insn, gen_peephole, gen_expand, gen_split): Set it. 19277 (output_insn_data): Print the location of each insn definition. 19278 * genrecog.c (write_action): Print the name of an insn above 19279 the statement that returns its code. 19280 192812004-08-12 Andrew Pinski <pinskia@physics.uc.edu> 19282 19283 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot. 19284 * config/libgloss.h: Likewise. 19285 * config/arm/arm.c (arm_gen_load_multiple): Likewise. 19286 * c4x/c4x-modes.def: Likewise. 19287 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise. 19288 (c4x_rptb_nop_p): Likewise. 19289 (c4x_rptb_valid_p): Likewise. 19290 (c4x_rptb_insert): Likewise. 19291 (c4x_address_conflict): Likewise. 19292 * config/c4x/c4x.md: Likewise. 19293 * config/frv/frv.md: Likewise. 19294 * config/i386/athlon.md: Likewise. 19295 * config/i386/i386.md: Likewise. 19296 * config/i386/predicates.md: Likewise. 19297 * config/ia64/ia64.c: Likewise. 19298 * config/ia64/itanium1.md: Likewise. 19299 * config/ia64/itanium2.md: Likewise. 19300 * config/iq2000/iq2000.md: Likewise. 19301 * config/mcore/mcore.c: Likewise. 19302 * config/mips/mips.c: Likewise. 19303 * config/mips/r3900.h: Likewise. 19304 * config/mips/sb1.md: Likewise. 19305 * config/pa/milli64.S: Likewise. 19306 * config/pa/pa.c: Likewise. 19307 * config/pa/pa.h: Likewise. 19308 * config/rs6000/8540.md: Likewise. 19309 193102004-08-13 Daniel Berlin <dberlin@dberlin.org> 19311 19312 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU. 19313 193142004-08-13 J"orn Rennecke <joern.rennecke@superh.com> 19315 19316 * sh.md (cbranch define_delay) Use cond_delay_slot for 19317 non-anulled condition too. 19318 193192004-08-12 David Edelsohn <edelsohn@gnu.org> 19320 19321 * config/rs6000/rs6000.c (any_parallel_operand): New predicate. 19322 * config/rs6000/rs6000.h (PREDICATE_CODES): Add 19323 any_parallel_operand, lmw_operation, stmw_operation, 19324 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand. 19325 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use 19326 any_parallel_operand. 19327 (return_and_restore_fpregs_{si,di}): Same. 19328 193292004-08-12 Zack Weinberg <zack@codesourcery.com> 19330 19331 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL, 19332 if pred->singleton != PARALLEL, issue a warning and pretend it was. 19333 Also issue a warning for any predicate we don't know about. 19334 193352004-08-12 Richard Henderson <rth@redhat.com> 19336 19337 * config/i386/i386.c (internal_label_prefix): Export. 19338 (internal_label_prefix_len, struct ix86_address, 19339 ix86_decompose_address, maybe_get_pool_constant, 19340 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes, 19341 memory_address_length): Export. 19342 (any_fp_register_operand, fp_register_operand, 19343 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand, 19344 x86_64_general_operand, x86_64_szext_general_operand, 19345 x86_64_nonmemory_operand, x86_64_movabs_operand, 19346 x86_64_szext_nonmemory_operand, x86_64_immediate_operand, 19347 x86_64_zext_immediate_operand, const_int_1_31_operand, 19348 symbolic_operand, pic_symbolic_operand, local_symbolic_operand, 19349 tls_symbolic_operand, global_dynamic_symbolic_operand, 19350 local_dynamic_symbolic_operand, initial_exec_symbolic_operand, 19351 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand, 19352 constant_call_address_operand, const0_operand, const1_operand, 19353 const248_operand, const_0_to_3_operand, const_0_to_7_operand, 19354 const_0_to_15_operand, const_0_to_255_operand, incdec_operand, 19355 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand, 19356 general_no_elim_operand, nonmemory_no_elim_operand, 19357 index_register_operand, q_regs_operand, flags_reg_operand, 19358 non_q_regs_operand, zero_extended_scalar_load_operand, 19359 vector_move_operand, no_seg_address_operand, sse_comparison_operator, 19360 ix86_comparison_operator, ix86_carry_flag_operator, 19361 fcmov_comparison_operator, promotable_binary_operator, 19362 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator, 19363 mult_operator, div_operator, arith_or_logical_operator, 19364 memory_displacement_operand, cmpsi_operand, long_memory_operand, 19365 aligned_operand): Move to predicates.md as define_predicates. 19366 (tls_symbolic_operand_1): Remove. 19367 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand. 19368 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand. 19369 (legitimize_address): Merge tls_symbolic_operand contents. 19370 (ix86_expand_move): Likewise. 19371 * config/i386/i386-protos.h: Update for exports. 19372 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames. 19373 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove. 19374 * config/i386/i386.md: Include predicates.md. 19375 * config/i386/predicates.md: New file. 19376 193772004-08-13 Mark Mitchell <mark@codesourcery.com> 19378 19379 PR c++/16924 19380 * config/i386/winnt.c (i386_pe_mark_dllexport): Set 19381 SYMBOL_REF_DECL. 19382 (i386_pe_mark_dllimport): Likewise. 19383 (i386_pe_encode_section_info): Likewise, when overriding 19384 dllimport attribute. 19385 193862004-08-12 Geoffrey Keating <geoffk@apple.com> 19387 19388 * configure.ac: When testing for flex, nm, ar, and bison, check 19389 that they will actually be built. 19390 * configure: Regenerate. 19391 193922004-08-12 Ulrich Weigand <uweigand@de.ibm.com> 19393 19394 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define. 19395 (MOVE_MAX_PIECES): Define. 19396 193972004-08-12 Devang patel <dpatel@apple.com> 19398 19399 * dbxout.c (dbxout_begin_prologue): New function. 19400 (dbx_debug_hooks): Use new begin prologue hook. 19401 (dbxout_function_end): Emit N_ENSYM. 19402 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs. 19403 194042004-08-12 Janis Johnson <janis187@us.ibm.com> 19405 19406 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first 19407 argument is float*. 19408 19409 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type 19410 for vec_dss. 19411 19412 * doc/extend.texi (AltiVec builtins): Fix description for recent 19413 changes. Update operation list to match current support. 19414 194152004-08-12 Andreas Krebbel <krebbel1@de.ibm.com> 19416 19417 * config/s390/s390.c (struct s390_frame_layout): New struct as element 19418 of struct machine_function. 19419 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and 19420 changed all uses. 19421 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and 19422 changed all uses. 19423 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size) 19424 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros. 19425 (s390_frame_area, s390_register_info): New functions. 19426 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check 19427 for base register. 19428 (s390_return_addr_rtx, s390_return_address_offset) 19429 (s390_va_start, s390_gimplify_va_arg) 19430 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack 19431 layouts. 19432 (s390_frame_info): Functionality partly moved to s390_register_info. 19433 Made adaptions for new stack layout. 19434 (save_gprs, restore_gprs): Changed meaning of second parameter and 19435 adapted all callers. 19436 19437 * config/s390/s390.h (s390_backchain_string): New global variable. 19438 (MASK_BACKCHAIN): Removed definition. 19439 (TARGET_BACKCHAIN): Changed check. 19440 (TARGET_KERNEL_BACKCHAIN): New macro. 19441 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain". 19442 (TARGET_OPTIONS): Added "backchain", "no-backchain" and 19443 "kernel-backchain". 19444 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts. 19445 19446 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN 19447 as condition. Adjusted for new stack layout. 19448 19449 * doc/invoke.texi: Added documentation for new option 19450 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and 19451 "-mno-backchain". 19452 194532004-08-12 Paul Brook <paul@codesourcery.com> 19454 19455 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name. 19456 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation. 19457 194582004-08-12 David Daney <ddaney@avtrex.com> 19459 19460 * java/gcj.texi: Add subsection on signal usage. 19461 194622004-08-12 David Edelsohn <edelsohn@gnu.org> 19463 19464 * expr.c (move_by_pieces): Set alignment for move to minimum of 19465 MOVE_MAX_PIECES mode alignment and the largest non-slow mode 19466 alignment, but not less than the original alignment. 19467 (move_by_pieces_ninsns): Same. 19468 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES. 19469 (store_by_pieces_1): Same. 19470 194712004-08-12 Diego Novillo <dnovillo@redhat.com> 19472 19473 PR tree-optimization/16867 19474 * tree.c (is_global_var): New function. 19475 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE. 19476 Call is_global_var. 19477 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove. 19478 Update all users. 19479 (is_global_var): Declare. 19480 * tree-dfa.c (dump_variable): Display global and addressable 19481 attributes. 19482 (add_referenced_var): Clarify documentation when marking 19483 variables call-clobbered. 19484 * tree-flow-inline.h (is_call_clobbered): Call is_global_var 19485 instead of needs_to_live_in_memory. 19486 (mark_call_clobbered): If the variable is a tag, mark it 19487 DECL_EXTERNAL. 19488 * tree-gimple.c (is_gimple_reg): Don't check for 19489 TREE_ADDRESSABLE. 19490 (is_gimple_non_addressable): Likewise. 19491 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag 19492 needs to be marked call-clobbered. 19493 (setup_pointers_and_addressables): Call is_global_var instead 19494 of needs_to_live_in_memory. 19495 * tree-ssa-dce.c (need_to_preserve_store): Remove. 19496 Update all users with is_global_var. 19497 (mark_stmt_if_obviously_necessary): Fix processing of aliased 19498 stores. Don't check the virtual definitions. Rather, check 19499 whether the store is going into global memory. 19500 (find_obviously_necessary_stmts): Get the symbol from the PHI 19501 result. 19502 * tree-ssa-operands.c (get_call_expr_operands): Do not add 19503 clobbering may-defs if the call does not have side effects. 19504 195052004-08-12 Jakub Jelinek <jakub@redhat.com> 19506 19507 PR c++/16276 19508 * output.h (default_function_rodata_section, 19509 default_no_function_rodata_section): New prototypes. 19510 * target.h (struct gcc_target): Add asm_out.function_rodata_section. 19511 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. 19512 (TARGET_ASM_OUT): Add it. 19513 * varasm.c (default_function_rodata_section, 19514 default_no_function_rodata_section): New functions. 19515 * final.c (final_scan_insn): Call 19516 targetm.asm_out.function_rodata_section instead of 19517 readonly_data_section. 19518 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. 19519 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. 19520 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. 19521 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION): 19522 Likewise. 19523 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. 19524 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION): 19525 Likewise. 19526 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION): 19527 Likewise. 19528 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. 19529 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. 19530 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document. 19531 195322004-08-12 Paul Brook <paul@codesourcery.com> 19533 19534 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh 19535 frame info. 19536 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and 19537 DWARF2_UNWIND_INFO. 19538 195392004-08-12 Ben Elliston <bje@au.ibm.com> 19540 19541 PR target/16286 19542 * config/rs6000/altivec.h: Change vector to __vector throughout. 19543 (Except for the `vector' macro itself). 19544 195452004-08-12 Zack Weinberg <zack@codesourcery.com> 19546 19547 * genpreds.c: Add capability to generate predicate bodies as 19548 well as function prototypes. Write function prototypes for 19549 the generic predicates too. 19550 (process_define_predicate, write_tm_preds_h, write_insn_preds_c) 19551 (write_predicate_subfunction, mark_mode_tests, add_mode_tests) 19552 (write_match_code, write_predicate_expr, write_one_predicate_function) 19553 (parse_option): New functions. 19554 (output_predicate_decls): Delete. 19555 (main): Read the machine description, process DEFINE_PREDICATE or 19556 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c 19557 as appropriate. 19558 19559 * genrecog.c (struct decision_test): Replace index with 19560 struct pred_data pointer. 19561 (next_index): Remove, unused. 19562 (pred_table, preds, special_mode_pred_table): Delete. 19563 (compute_predicate_codes, process_define_predicate): New functions. 19564 (validate_pattern, add_to_sequence, write_switch): Update for 19565 new data structures. 19566 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. 19567 Check both error_count and have_error. 19568 19569 * gensupport.c (in_fname, first_predicate): New globals. 19570 (define_pred_queue, define_pred_tail): New RTL-pattern queue. 19571 (predicate_table, last_predicate, old_pred_table) 19572 (old_special_pred_table): New statics. 19573 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate) 19574 (add_predicate, init_predicate_table): New functions. 19575 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. 19576 (init_md_reader_args_cb): Use the global in_fname. No need to zero 19577 it or max_include_len. Call init_predicate_table. 19578 (read_rtx): Run the predicate queue after the attribute queue 19579 but before all the others. 19580 * gensupport.h (in_fname, struct pred_data, first_predicate) 19581 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare. 19582 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE) 19583 (DEFINE_SPECIAL_PREDICATE): New RTL codes. 19584 * dummy-conditions.c: Don't include bconfig.h, system.h, 19585 coretypes.h, tm.h, or system.h. Do include stddef.h. 19586 Duplicate declaration of struct c_test from gensupport.h. 19587 19588 * Makefile.in (OBJS-common): Add insn-preds.o. 19589 (STAGESTUFF, .PRECIOUS): Add insn-preds.c. 19590 (insn-preds.c, insn-preds.o): New rules. 19591 (s-preds): Also generate insn-preds.c. 19592 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o): 19593 Update dependencies. 19594 (print-rtl.o, print-rtl1.o): Correct dependencies. 19595 19596 * recog.h: Delete prototypes of predicate functions. 19597 19598 * doc/md.texi (Predicates): New section with complete 19599 documentation of operand/operator predicates. Remove some 19600 incomplete documentation of predicates from other places. 19601 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to 19602 PREDICATE_CODES; indicate that both are deprecated in favor 19603 of define_predicate/define_special_predicate. 19604 19605 * config/ia64/ia64.c: All predicate function definitions moved 19606 to ia64.md, except 19607 (small_addr_symbolic_operand, tls_symbolic_operand): Delete. 19608 (ia64_expand_load_address, ia64_expand_move): 19609 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand. 19610 19611 * config/ia64/ia64.md: All predicates now defined here. 19612 (symbolic_operand): Is now a special predicate. 19613 19614 * config/ia64/ia64.h: Declare ia64_section_threshold. 19615 (PREDICATE_CODES): Delete. 19616 196172004-08-12 Richard Henderson <rth@redhat.com> 19618 19619 * c-common.h (STATEMENT_LIST_HAS_LABEL): New. 19620 * c-semantics.c (add_stmt): Set it. 19621 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR 19622 before instantiating a variable sized type. 19623 196242004-08-12 Richard Henderson <rth@redhat.com> 19625 19626 * stor-layout.c (round_up, round_down): Move ... 19627 * fold-const.c (round_up, round_down): ... here. Use 19628 multiple_of_p to avoid any arithmetic at all. 19629 196302004-08-12 Richard Henderson <rth@redhat.com> 19631 19632 * gimplify.c (struct gimplify_init_ctor_preeval_data): New. 19633 (gimplify_init_ctor_preeval_1): New. 19634 (gimplify_init_ctor_preeval): New. 19635 (gimplify_init_ctor_eval): New. 19636 (gimplify_init_constructor): Use them. Always gimplify the LHS 19637 object first. 19638 196392004-08-12 Ziemowit Laski <zlaski@apple.com> 19640 19641 (This patch is part of merge of objc-improvements-branch 19642 into mainline.) 19643 19644 * doc/frontends.texi: Mention Objective-C++ in addition to 19645 Objective-C. 19646 * doc/install.texi: Add 'obj-c++' to list of configurable 19647 languages. 19648 * doc/invoke.texi: Rename Objective-C option headings to 19649 indicate they also apply to Objective-C++. List file 19650 extensions for Objective-C++ sources. Mention that 19651 ObjC and ObjC++ compilations may also use C and C++ options, 19652 respectively. Point users to doc/standards.texi for 19653 further info on ObjC and ObjC++. 19654 * doc/sourcebuild.texi: Mention the objcp/ directory and 19655 the Objective-C++ sources it contains. 19656 * doc/standards.texi: Update link to Apple ObjC site; 19657 add link to gcc readings.html WWW doc. 19658 196592004-08-12 Alan Modra <amodra@bigpond.net.au> 19660 19661 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28 19662 and 2004-07-14 changes. 19663 196642004-08-12 Paul Brook <paul@codesourcery.com> 19665 19666 * doc/invoke.texi: Fix typo. 19667 196682004-08-11 Devang Patel <dpatel@apple.com> 19669 19670 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip 19671 and -no_dead_strip_inits_and_terms. 19672 (LINK_SPEC): Same. 19673 * doc/invoke.texi (Darwin Options): Document -dead_strip and 19674 -no_dead_strip_inits_and_terms. 19675 196762004-08-11 Paul Brook <paul@codesourcery.com> 19677 19678 * config/arm/arm-protos.h (arm_finalize_pic) Rename ... 19679 (arm_load_pic_register): ... to this. 19680 * config/arm/arm.c (arm_finalize_pic): Rename ... 19681 (arm_load_pic_register): ... to this. Always output insns at the 19682 current location. Load via low reg in thumb mode. 19683 (arm_expand_prologue): Call arm_load_pic_register. 19684 (thumb_expand_prologue): Ditto. 19685 * config/arm/arm.h (FINALIZE_PIC): Remove. 19686 * config/arm/arm.md (builtin_setjmp_receiver): Call 19687 arm_load_pic_register. 19688 196892004-08-11 Paul Brook <paul@codesourcery.com> 19690 19691 * arm.c (thumb_force_lr_save): Add prototype. 19692 (thumb_compute_save_reg_mask): New function. 19693 (thumb_find_work_register): New function. 19694 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask. 19695 (thumb_unexpanded_epilogue): Ditto. Remove redundant code. 19696 Don't clobber r3 when removing pretend args. 19697 (thumb_expand_prologue): Use thumb_compute_save_reg_mask. 19698 (thumb_output_function_prologue): Use new functions. 19699 (thumb_set_return_address): Use thumb_compute_save_reg_mask. 19700 * arm.h (THUMB_REG_PUSHED_P): Remove. 19701 197022004-08-11 James E Wilson <wilson@specifixinc.com> 19703 19704 PR rtl-optimization/16490 19705 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and 19706 global_live_at_end for new basic block if already set for other blocks. 19707 197082004-08-11 David Edelsohn <edelsohn@gnu.org> 19709 19710 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define. 19711 19712 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8. 19713 (mfcr rlwinm rlwinm patterns): Set length to 12. 19714 197152004-08-11 Andrew MacLeod <amacleod@redhat.com> 19716 19717 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops, 19718 get_vuse_ops,get_v_must_def_ops): Add operand structure reference. 19719 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct. 19720 (start_ssa_stmt_operands): Delete. 19721 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new 19722 struct stmt_operands_d. 19723 (build_ssa_operands): New extern entry point. 19724 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand 19725 building code, replace with create_ssa_artficial_load_stmt(). 19726 * tree-ssa-operands.c (struct voperands_d): Delete. 19727 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector. 19728 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *). 19729 (free_uses, free_defs, free_vuses, free_v_may_defs, 19730 free_v_must_defs): Remove dealloc parameter. 19731 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete. 19732 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs, 19733 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand 19734 vector comparisons, ssa_name reuse, and allocations here. 19735 (verify_start_operands): Delete. 19736 (finalize_ssa_stmt_operands): Set new operands by calling finalize 19737 routines. 19738 (start_ssa_stmt_operands): Move from tree-flow-inline.h. 19739 (append_def, append_usei): Simplify to simple accumulation. 19740 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding 19741 duplicates and simple accumulation. 19742 (free_ssa_operands): Free vectors in a stmt_operand structure. 19743 (build_ssa_operands): New. Create a new stmt_operand structure from 19744 a stmt and an old set of stmt_operands. 19745 (get_stmt_operands): Simplify and call build_ssa_operands. 19746 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands, 19747 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops, 19748 add_call_read_ops): Don't pass prev_vops around anymore. 19749 (note_addressable): Return if no stmt annotation. 19750 (copy_virtual_operands): Access v_may_def operands through a struct. 19751 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's 19752 hash tables without treating the stmt as a real stmt. 19753 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access 19754 v_may_def def and use through a struct instead of 2 array elements. 19755 (struct v_may_def_optype_d): Use v_may_def_operand_type. 19756 (struct stmt_operands_d): New. Struct for storing all operand vectors. 19757 197582004-08-11 Nick Clifton <nickc@redhat.com> 19759 19760 * config/arm/arm.c (arm_is_longcall_p): Update comment describing 19761 this funciton's behaviour. Return true when the current function 19762 has a section attribute and -mlong-calls is in effect. 19763 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the 19764 short-call marker when -mlong-calls is in effect and the function 19765 has a section attribute. 19766 197672004-08-10 Zack Weinberg <zack@codesourcery.com> 19768 19769 * stmt.c (expand_return): If asked to return the RESULT_DECL, 19770 just call expand_value_return on result_rtl. 19771 197722004-08-10 Richard Henderson <rth@redhat.com> 19773 19774 * builtins.def (BUILT_IN_STACK_ALLOC): Remove. 19775 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove. 19776 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ... 19777 (add_location_or_const_value_attribute): ... not here. Use 19778 loc_descriptor_from_tree if possible. 19779 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree. 19780 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register 19781 values specially. 19782 (loc_descriptor_from_tree): New. Update callers. 19783 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables. 19784 * gimplify.c (gimplify_decl_expr): Lower variable sized types to 19785 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack. 19786 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC 19787 and BUILT_IN_STACK_RESTORE. 19788 (gimplify_expr): Lower DECL_VALUE_EXPR decls. 19789 * stmt.c (expand_stack_alloc): Remove. 19790 * tree-mudflap.c (mx_register_decls): Don't look for 19791 BUILT_IN_STACK_ALLOC. 19792 * tree-nested.c (convert_local_reference): Likewise. 19793 * tree.h (DECL_VALUE_EXPR): New. 19794 197952004-08-10 Richard Henderson <rth@redhat.com> 19796 19797 * stor-layout.c (round_up): Check for 0/1 before dividing. 19798 (round_down): Likewise. 19799 19800 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL. 19801 198022004-08-09 Mark Mitchell <mark@codesourcery.com> 19803 19804 * config.gcc (arm*-*-eabi*): New target. 19805 * defaults.h (TARGET_LIBGCC_FUNCS): New macro. 19806 (TARGET_LIB_INT_CMP_BIASED): Likewise. 19807 * expmed.c (expand_divmod): Try a two-valued divmod function as a 19808 last resort. 19809 * gthr.h: Remove bogus tokens at end of #pragma. 19810 * optabs.c (expand_twoval_binop_libfunc): New function. 19811 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case. 19812 (prepare_float_lib_cmp): Try reversing the condition. 19813 (debug_optab_libfuncs): New function. 19814 * optabs.h (expand_twoval_binop_libfunc): Declare. 19815 * config/arm/arm.c (arm_init_libfuncs): New function. 19816 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT. 19817 (TARGET_INIT_LIBFUNCS): Define it. 19818 * config/arm/arm.h (TARGET_BPABI): New macro. 19819 * config/arm/arm-protos.h 19820 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT. 19821 * config/arm/bpabi.S: New file. 19822 * config/arm/bpabi.c: Likewise. 19823 * config/arm/bpabi.h: Likewise. 19824 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias. 19825 (__aeabi_drsub): Likewise. 19826 (__aeabi_dsub): Likewise. 19827 (__aeabi_dadd): Likewise. 19828 (__aeabi_ui2d): Likewise. 19829 (__aeabi_i2d): Likewise. 19830 (__aeabi_f2d): Likewise. 19831 (__aeabi_dmul): Likewise. 19832 (__aeabi_ddiv): Likewise. 19833 (__aeabi_cdrcmple): Likewise. 19834 (__aeabi_cdcmpeq): Likewise. 19835 (__aeabi_cdcmple): Likewise. 19836 (__aeabi_dcmpeq): Likewise. 19837 (__aeabi_dcmplt): Likewise. 19838 (__aeabi_dcmple): Likewise. 19839 (__aeabi_dcmpge): Likewise. 19840 (__aeabi_dcmpgt): Likewise. 19841 (__aeabi_dcmpun): Likewise. 19842 (__aeabi_d2iz): Likewise. 19843 (__aeabi_d2uiz): Likewise. 19844 (__aeabi_d2f): Likewise. 19845 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias. 19846 (__aeabi_frsub): Likewise. 19847 (__aeabi_fsub): Likewise. 19848 (__aeabi_fadd): Likewise. 19849 (__aeabi_ui2f): Likewise. 19850 (__aeabi_i2f): Likewise. 19851 (__aeabi_fmul): Likewise. 19852 (__aeabi_fdiv): Likewise. 19853 (__aeabi_cfrcmple): Likewise. 19854 (__aeabi_cfcmpeq): Likewise. 19855 (__aeabi_cfcmple): Likewise. 19856 (__aeabi_fcmpeq): Likewise. 19857 (__aeabi_fcmplt): Likewise. 19858 (__aeabi_fcmple): Likewise. 19859 (__aeabi_fcmpge): Likewise. 19860 (__aeabi_fcmpgt): Likewise. 19861 (__aeabi_fcmpun): Likewise. 19862 (__aeabi_f2iz): Likewise. 19863 (__aeabi_f2uiz): Likewise. 19864 * config/arm/lib1funcs.asm (ARM_CALL): New macro. 19865 (__aeabi_uidivmod): New function or alias. 19866 (__aeabi_idivmod): Likewise. 19867 (__aeabi_idiv0): Likewise. 19868 (__aeabi_ldiv0): Likewise. 19869 (__aeabi_llsr): Likewise. 19870 (__aeabi_lasr): Likewise. 19871 (__aeabi_llsl): Likewise. 19872 (bpabi.S): Include it. 19873 * config/arm/libgcc-bpabi.ver: New file. 19874 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove. 19875 (LINK_SPEC): Remove. 19876 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and 19877 __aeabi_ulcmp. 19878 * config/arm/t-bpabi: New file. 19879 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry. 19880 (TARGET_LIB_INT_CMP_BIASED): Likewise. 19881 198822004-08-10 David Edelsohn <edelsohn@gnu.org> 19883 19884 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare. 19885 * config/rs6000/rs6000.md (clrmemsi): New pattern. 19886 * config/rs6000/rs6000.c (expand_block_clear): New function. 19887 (expand_block_move): Convert alignment to bits. Use SImode and 19888 HImode for unaligned addresses if not STRICT_ALIGNMENT. 19889 198902004-08-10 Caroline Tice <ctice@apple.com> 19891 19892 * varasm.c (unlikely_section_label): New global variable. 19893 (unlikely_text_section_name): New global variable. 19894 (text_section): Remove alignment statement. 19895 (unlikely_text_section): Remove alignment statement; use 19896 unlikely_section_label rather than hard-coded string. 19897 (assemble_start_function): Initialize unlikely_section_label and 19898 unlikely_text_section_name; make sure cold section is properly 19899 aligned at start of function; output unlikely_section_label if 19900 appropriate. 19901 199022004-08-10 Ulrich Weigand <uweigand@de.ibm.com> 19903 19904 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare. 19905 * config/s390/s390.c (s390_canonicalize_comparison): New function. 19906 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define. 19907 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext", 19908 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove. 19909 ("*tmqi_mem"): Remove SUBREG from pattern. 19910 ("*anddi3_cconly"): Prevent accidentally matching TM pattern. 19911 ("*andsi3_cconly"): Likewise. 19912 199132004-08-10 H.J. Lu <hongjiu.lu@intel.com> 19914 19915 PR target/16909 19916 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI. 19917 199182004-08-10 Janis Johnson <janis187@us.ibm.com> 19919 19920 * doc/sourcebuild.texi (compat testing): Document available test 19921 framework commands. Use the preferred spelling of DejaGnu. 19922 199232004-08-10 Daniel Berlin <dberlin@dberlin.org> 19924 19925 * lambda.h: Add matrix type, and prototypes for remainder of 19926 matrix and vector functions. 19927 (lambda_vector_mult_const): New function. 19928 (lambda_vector_negate): Ditto. 19929 (lambda_vector_add): Ditto. 19930 (lambda_vector_add_mc): Ditto. 19931 (lambda_vector_copy): Ditto. 19932 (lambda_vector_zerop): Ditto. 19933 (lambda_vector_equal): Ditto. 19934 (lambda_vector_min_nz): Ditto. 19935 (lambda_vector_first_nz): Ditto. 19936 (lambda_vector_matrix_mult): Ditto. 19937 * lambda-mat.c: New file. 19938 * Makefile.in (lambda-mat.o): New. 19939 199402004-08-10 Andrew MacLeod <amacleod@redhat.com> 19941 19942 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt 19943 after linking stmt into the program. 19944 (bsi_remove): Don't call modify_stmt. 19945 * tree-complex.c (update_complex_assignment, 19946 expand_complex_comparison): Call modify_stmt after changing the stmt. 19947 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not 19948 removing the stmt. 19949 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing 19950 the stmt, and only if needed. 19951 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy 19952 expression. 19953 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param. 19954 (simplify_cond_and_lookup_avail_expr): Use modify_stmt. 19955 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param. 19956 (eliminate_redundant_computations): Don't pass an annotation. Call 19957 modify_stmt rather than setting the annotation directly. 19958 (record_equivalences_from_stmt): Remove unused local 'j'. 19959 (cprop_operand): Take a stmt rather than an annotation as a parameter. 19960 Call modify_stmt. 19961 (cprop_into_stmt): Pass stmt rather than annotation. 19962 (update_rhs_and_lookup_avail_expr): Call modify_stmt. 19963 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than 19964 modify_stmt. 19965 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt. 19966 199672004-08-10 Jason Merrill <jason@redhat.com> 19968 19969 PR middle-end/16948 19970 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on 19971 the RESULT_DECL. 19972 199732004-08-10 Geoffrey Keating <geoffk@apple.com> 19974 19975 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the 19976 hash function. 19977 199782004-08-10 Roger Sayle <roger@eyesopen.com> 19979 19980 * config/mips/mips.md: New reciprocal square root patterns that 19981 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns. 19982 199832004-08-10 Paul Brook <paul@codesourcery.com> 19984 19985 * config/arm/arm-protos.h (arm_set_return_address, 19986 thumb_set_return_address): Add prototypes. 19987 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove. 19988 * config/arm/arm.c (arm_compute_func_type, 19989 use_return_insn, arm_compute_save_reg0_reg12_mask, 19990 arm_compute_save_reg_mask, arm_output_function_prologue, 19991 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with 19992 current_function_calls_eh_return. 19993 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace 19994 old eh code. 19995 (arm_set_return_address, thumb_set_return_address): New functions. 19996 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO, 19997 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define. 19998 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add. 19999 (epilogue): Use the stackadj register. 20000 (eh_return, arm_eh_return, thumb_eh_return): New pattern. 20001 200022004-08-10 Jakub Jelinek <jakub@redhat.com> 20003 20004 PR target/3144 20005 * expr.c (move_by_pieces_ninsns): Add max_size argument. 20006 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it. 20007 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it. 20008 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P, 20009 but using MOVE_RATIO. 20010 (move_by_pieces): Pass max_size to move_by_pieces_ninsns. 20011 (can_store_by_pieces): Change max_size type to unsigned int. 20012 (store_by_pieces_1): Likewise. Pass max_size to 20013 move_by_pieces_ninsns. 20014 * config/s390/s390.h (STORE_BY_PIECES_P): Define. 20015 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 20016 to move_by_pieces_ninsns. 20017 (STORE_BY_PIECES_P): Define. 20018 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 20019 to move_by_pieces_ninsns. 20020 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default. 20021 20022 * config/i386/i386.h (CLEAR_RATIO): Define. 20023 200242004-08-09 Paolo Bonzini <bonzini@gnu.org> 20025 20026 * expr.c (expand_expr_real_1): Add back code that was not dead. 20027 200282004-08-09 Andrew Pinski <apinski@apple.com> 20029 20030 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type 20031 which is found to be compatible before returning the aliasing set. 20032 200332004-08-09 Daniel Jacobowitz <dan@debian.org> 20034 20035 * ggc-zone.c (struct alloc_zone): Add statistics counters. 20036 (always_collect): New flag. 20037 (ggc_alloc_zone_1): Update statistics support. Don't include 20038 overhead in allocated counter. 20039 (sweep_pages): Update allocated counter for large pages. Don'y 20040 include overhead. 20041 (ggc_collect_1): Always collect. 20042 (ggc_collect): Honor always_collect flag. Sum all zones to decide 20043 whether to collect. 20044 (SCALE, LABEL): New macros. 20045 (ggc_print_statistics): Add statistics support. 20046 200472004-08-09 Roger Sayle <roger@eyesopen.com> 20048 20049 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool. 20050 (init_expmed): Fix potential overrun problem with "all.reg". 20051 (expand_sdiv2_pow2): Add an alternate implementation for signed 20052 division, if the target provides a suitable conditional move insn. 20053 200542004-08-09 Paul Brook <paul@codesourcery.com> 20055 Richard Henderson <rth@redhat.com> 20056 20057 * unwind-dw2.c (uw_install_context_1): Update target saved stack 20058 pointer. 20059 200602004-08-09 Geoffrey Keating <geoffk@apple.com> 20061 20062 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit. 20063 Check DATA limit only if there's no AS limit. Ignore insanely 20064 low DATA limits. 20065 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8, 20066 but take care that the AS limit isn't overrun. 20067 * doc/invoke.texi: Update documentation of min-heapsize parameter. 20068 200692004-08-09 Jeff Law <law@redhat.com> 20070 20071 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c 20072 (tree-ssa-threadupdate.o): Add dependencies. 20073 * tree-ssa-threadupdate.c: New file. 20074 * tree-flow.h (incoming_edge_threaded): New flag in block annotation. 20075 (rewrite_vars_out_of_ssa): Remove prototype. 20076 (cleanup_tree_cfg): Returns a bool. 20077 * tree.h (thread_through_all_blocks): Prototype. 20078 * tree-outof-ssa.c (SSANORM_*): Move into here. 20079 (remove_ssa_form): Now static. 20080 (rewrite_vars_out_of_ssa): Kill. 20081 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill. 20082 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c. 20083 (remove_ssa_form, register_partitions_for_vars): Kill declarations. 20084 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if 20085 anything was changed. 20086 * tree-phinodes.c (add_phi_arg): Get the block for the PHI 20087 from the PHI's annotation rather than the edge associated with 20088 the new argument. 20089 * tree-ssa-dom.c (redirection_edges): Kill. 20090 (redirect_edges_and_update_ssa_graph): Kill. 20091 (tree_ssa_dominator_optimize): Do not reset forwardable flag 20092 for blocks anymore. Do not initialize redirection_edges. 20093 Call thread_through_all_blocks. Simplify code for cleanup 20094 of the CFG and iterating. No longer call cleanup_tree_cfg 20095 outside the iteration loop. 20096 (thread_across_edge): No longer mess with forwardable blocks. 20097 200982004-08-09 Zack Weinberg <zack@codesourcery.com> 20099 20100 * explow.c (memory_address): Use memory_address_p. 20101 * recog.c (general_operand): Likewise. 20102 * regrename.c: No need to define REG_OK_STRICT. 20103 201042004-08-09 Steven Bosscher <stevenb@suse.de> 20105 20106 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM): 20107 New timers. 20108 * gcse.c: Include timevar.h. 20109 (const_prop_count, copy_prop_count): Rename to global_const_prop_count 20110 and global_copy_prop_count. 20111 (local_const_prop_count, local_copy_prop_count): New static globals. 20112 (gcse_main): Set the right timevar for each pass. 20113 (cprop_jump): Increment global_const_prop_count when a constant is 20114 propagated. Add "GLOBAL" to dump output. 20115 (cprop_insn): Increment global_const_prop_count when a constant is 20116 propagated, or global_copy_prop_count when a copy is propagated. 20117 (do_local_cprop): Likewise for local_const_prop_count and 20118 local_copy_prop_count. 20119 (one_cprop_pass): Initialize const/cprop counters to zero. 20120 Print out results of local and global const/cprop separately. 20121 (bypass_block): Break over-length line. 20122 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies 20123 for bb-reorder.o and tracer.o. 20124 201252004-08-09 Paolo Bonzini <bonzini@gnu.org> 20126 20127 * Makefile.in (GTFILES): Remove stmt.c 20128 (stmt.o): Do not depend on gt-stmt.h. 20129 * emit-rtl.c (emit_line_note): Do not call 20130 set_file_and_line_for_stmt. 20131 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case 20132 do everything. 20133 * function.c (free_after_parsing): Do not free STMT field. 20134 (allocate_struct_function): Do not call init_stmt_for_function. 20135 (assign_stack_temp_for_type): Do not accept values of keep 20136 other than 0 or 1. 20137 (init_temp_slots): Do not initialize removed variables. 20138 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL 20139 and X_VAR_TEMP_SLOT_LEVEL fields. 20140 * rtl.h (set_file_and_line_for_stmt): Remove. 20141 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK, 20142 struct stmt_status, cond_stack, case_stack, nesting_stack, 20143 nesting_depth, emit_locus, set_file_and_line_for_stmt, 20144 same_case_target_p, init_stmt_for_function, emit_nop, 20145 expand_start_cond, expand_start_elseif, expand_start_else, 20146 expand_elseif, expand_end_cond): Remove. 20147 (preserve_subexpressions_p): Remove references to CFUN->STMT. 20148 (expand_start_case, expand_end_case_type): Remove, merge into... 20149 (expand_case): ... this one, including other bits from 20150 expand_expr_real_1. Inline same_case_target_p. Turn members 20151 of CASE_STACK into local variables. 20152 (emit_case_bit_tests): Inline same_case_target_p. 20153 (add_case_node): Add HEAD argument, return new head of the list, 20154 do not handle default label here. 20155 * tree.h (expand_start_cond, expand_end_cond, expand_start_else, 20156 expand_start_elseif, current_nesting_level, expand_start_case, 20157 expand_end_case_type, expand_end_case, add_case_node, 20158 init_stmt_for_function, expand_elseif): Remove prototypes. 20159 (expand_case): Add prototype. 20160 201612004-08-09 Paolo Bonzini <bonzini@gnu.org> 20162 20163 * expr.c (expand_expr_real_1): Use optab_for_tree_code. 20164 201652004-08-09 Paolo Bonzini <bonzini@gnu.org> 20166 20167 * expr.c (var_rtx): Remove. 20168 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR, 20169 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR, 20170 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>: 20171 Abort. 20172 (expand_expr_real_1) <COND_EXPR>: Remove most special cases. 20173 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove. 20174 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove. 20175 201762004-08-08 Mostafa Hagog <mustafa@il.ibm.com> 20177 Ayal Zaks <zaks@il.ibm.com> 20178 20179 * common.opt (freschedule-modulo-scheduled-loops): New flag. 20180 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK. 20181 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling 20182 when -freschedule-modulo-scheduled-loops flag is not specified. 20183 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps, 20184 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts): 20185 More accurate placing of insn in row of partial schedule. 20186 (ps_insn_find_column): New function. 20187 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note. 20188 * sched-rgn.c (sched_is_disabled_for_current_region_p): New. 20189 (schedule_region): Use sched_is_disabled_for_current_region_p. 20190 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops. 20191 201922004-08-07 H.J. Lu <hongjiu.lu@intel.com> 20193 20194 * config/i386/i386.c (ix86_expand_clrmem): Revert the last 20195 change. 20196 201972004-08-07 H.J. Lu <hongjiu.lu@intel.com> 20198 20199 * config/i386/i386.c (ix86_expand_clrmem): Properly call 20200 gen_strset for 64bit target. 20201 202022004-08-07 Olivier Hainque <hainque@act-europe.fr> 20203 20204 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition. 20205 202062004-08-07 Jason Merrill <jason@redhat.com> 20207 20208 Make return in memory explicit. 20209 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE. 20210 (assign_parm_find_data_types): Remove code for old front end 20211 invisible reference handling. 20212 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL. 20213 (expand_function_end): Likewise. 20214 * gimplify.c (gimplify_return_expr): Handle a dereferenced 20215 RESULT_DECL. 20216 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore. 20217 (declare_return_variable): Handle DECL_BY_REFERENCE. 20218 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL. 20219 (cp_genericize_r): Use convert_from_reference. 20220 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR. 20221 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE. 20222 20223 * c-common.c (c_warn_unused_result): Check TREE_USED before 20224 warning about a CALL_EXPR with an unused value. 20225 202262004-08-06 Mark Mitchell <mark@codesourcery.com> 20227 20228 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options 20229 to the compiler. Use -fshort-wchar by default. 20230 202312004-08-06 Pat Haugen <pthaugen@us.ibm.com> 20232 20233 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New. 20234 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match 20235 threshhold. 20236 * doc/invoke.texi (param): Document min-crossjump-insns. 20237 202382004-08-06 Richard Sandiford <rsandifo@redhat.com> 20239 20240 PR c/13282 20241 * c.opt (Wmissing-field-initializers): New option. 20242 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default. 20243 * c-typeck.c (pop_init_level): Guard the missing field warning with 20244 warn_missing_field_initializers rather than extra_warnings. 20245 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving 20246 some of the explanation from... 20247 (-Wextra): ...here. Say that the missing field warning can be 20248 seperately controlled by -Wmissing-field-initializers. 20249 202502004-08-06 Paolo Bonzini <bonzini@gnu.org> 20251 20252 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove. 20253 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove. 20254 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove. 20255 * tree.def (ENTRY_VALUE_EXPR): Remove. 20256 202572004-08-06 Jakub Jelinek <jakub@redhat.com> 20258 20259 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to 20260 the places where it is actually needed. Don't use repz; stosb 20261 for -Os with sufficiently small constant sizes. 20262 For sufficiently small repz; stos{l,q} repeat counts use a sequence 20263 of stos{l,q} instructions instead. 20264 202652004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 20266 20267 PR tree-optimization/16807 20268 * loop-iv.c (dump_iv_info): Dump invariants correctly. 20269 (iv_subreg, iv_extend): Express value of invariant purely in 20270 base field. 20271 202722004-08-06 Mark Mitchell <mark@codesourcery.com> 20273 20274 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums. 20275 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC. 20276 202772004-08-06 Roman Zippel <zippel@linux-m68k.org> 20278 20279 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New. 20280 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand, 20281 pre_dec_operand. 20282 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the 20283 pattern until reload is finished to allow better code generation 20284 and split them completely into separate instrunctions. 20285 (*andsi3_split): New pattern. 20286 202872004-08-05 Mark Mitchell <mark@codesourcery.com> 20288 20289 * tree.c (handle_dll_attribute): Move here from i383/winnt.c. 20290 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set 20291 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. 20292 * tree.h (handle_dll_attribute): Declare. Test 20293 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. 20294 * c-common.h (c_determine_visibility): Declare. 20295 * c-common.c (c_determine_visibility): New function. 20296 * c-decl.c (finish_decl): Use it. 20297 (finish_function): Likewise. 20298 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to 20299 zero, by default. Use #if, not #ifdef, to test it. 20300 * config/arm/arm.c (arm_attribute_table): Use 20301 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with 20302 #if. 20303 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1. 20304 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define 20305 to 1. 20306 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove. 20307 * config/i386/i386.c (ix86_attribute_table): Use 20308 handle_dll_attribute for dllimport/dllexport. Test 20309 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. 20310 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove. 20311 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define 20312 it to 1. 20313 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it 20314 with #if. 20315 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define 20316 it to 1. 20317 * doc/extend.texi (dllexport): Clarify and correct documentation. 20318 (dllimport): Likewise. 20319 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention 20320 handle_dll_attribute. 20321 203222004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 20323 20324 * tree-ssa-loop-manip.c: New file. 20325 * Makefile.in (tree-ssa-loop-manip.o): Add. 20326 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): 20327 Declare. 20328 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa 20329 form. 20330 (tree_ssa_loop_done): Verify loop closed ssa form. 20331 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form. 20332 203332004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 20334 20335 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common, 20336 pa_asm_output_aligned_local): New functions. 20337 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss, 20338 pa_asm_output_aligned_common and pa_asm_output_aligned_local. 20339 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use 20340 pa_asm_output_aligned_common. 20341 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. 20342 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro. 20343 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common. 20344 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. 20345 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro. 20346 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common. 20347 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. 20348 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global 20349 common data. 20350 203512004-08-05 Andrew Pinski <apinski@apple.com> 20352 20353 * objc/objc-act.c (build_objc_string_object): Mark the address 20354 expression as constant. 20355 203562004-08-05 David Edelsohn <edelsohn@gnu.org> 20357 20358 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand 20359 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle 20360 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns. 20361 203622004-08-05 Joseph S. Myers <jsm@polyomino.org.uk> 20363 20364 * config/linux.h, config/i386/linux.h, config/sparc/linux.h: 20365 Remove definitions conditioned on USE_GNULIBC_1 or conditioned 20366 out, and associated obsolete comments. 20367 203682004-08-05 Nathan Sidwell <nathan@codesourcery.com> 20369 20370 * tree.h (force_fit_type): Return a tree, take three flags. 20371 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and 20372 TREE_CONSTANT_OVERFLOW here. 20373 (int_const_binop, const_binop): Adjust. 20374 (size_int_type): Do sign extension here. 20375 (fold_convert_const, optimize_bit_field_compare, 20376 decode_field_reference, all_ones_mask_p, fold_div_compare, fold, 20377 fold_negate_const, fold_abs_const, fold_not_const): Adjust. 20378 * tree.c (size_in_bytes, int_fits_type_p): Adjust. 20379 203802004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 20381 20382 PR tree-optimization/16864 20383 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes 20384 for ssa names without default_def. 20385 203862004-08-05 Richard Sandiford <rsandifo@redhat.com> 20387 20388 * config/i386/i386.c (ix86_expand_prologue): If the function uses a 20389 frame pointer, restore eax with an ebp-relative address. 20390 203912004-08-04 Geoffrey Keating <geoffk@apple.com> 20392 20393 PR 14516 20394 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs. 20395 * c-common.h (make_rtl_for_local_static): Delete. 20396 * c-decl.c (shadow_tag_warned): Clean up comment. 20397 (finish_decl): Clean up spacing. Use set_user_assembler_name when 20398 appropriate. Don't pass asmspec to rest_of_decl_compilation. 20399 * c-semantics.c (make_rtl_for_local_static): Delete. 20400 * expr.c (init_block_move_fn): Use set_user_assembler_name. 20401 (init_block_clear_fn): Likewise. 20402 * passes.c (rest_of_decl_compilation): Remove asmspec parameter, 20403 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files. 20404 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter. 20405 * tree.h (make_decl_rtl): Remove second parameter. 20406 (set_user_assembler_name): New. 20407 * varasm.c (set_user_assembler_name): New. 20408 (make_decl_rtl): Remove second parameter. Update callers in many 20409 files. 20410 204112004-08-05 Adam Nemet <anemet@lnxw.com> 20412 20413 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0. 20414 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update 20415 to LynxOS 4.0. 20416 * gthr-lynx.h: New file. 20417 * config/lynx-ng.h: Remove file. 20418 * config/lynx.h: Update to LynxOS 4.0. 20419 * config/t-lynx: New file. 20420 * config/i386/lynx-ng.h: Remove file. 20421 * config/i386/lynx.h: Update to LynxOS 4.0. 20422 * config/rs6000/lynxbase.h: Remove file. 20423 * config/rs6000/lynx.h: Update to LynxOS 4.0. 20424 * config/rs6000/t-lynx: New file. 20425 * doc/install.texi (Options specification): Remove reference to 20426 LynxOS from systems where --with-gnu-as makes a difference. 20427 204282004-08-05 Joseph S. Myers <jsm@polyomino.org.uk> 20429 20430 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and 20431 __UINTMAX_TYPE__. 20432 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define 20433 __INTMAX_MAX__. 20434 (c_cpp_builtins): Call it. 20435 * doc/cpp.texi: Update. 20436 204372004-08-04 David Edelsohn <edelsohn@gnu.org> 20438 20439 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero 20440 cost. 20441 204422004-08-04 Jan Hubicka <jh@suse.cz> 20443 20444 * basic-block.h (profile_staus): New global variable. 20445 * cfg.c (profile_status): Declare. 20446 (check_bb_profile): Break out from ....; use profile_status 20447 (dump_flow_info): ... here. 20448 * cfgbuild.c (find_basic_blocks): Set profile_status. 20449 * cfgexpand.c (tree_expand_cfg): Likewise. 20450 * predict.c (estimate_probability): Likewise. 20451 * profile.c (branch_prob): Likewise. 20452 * tree-cfg.c (build_tree_cfg): Likewise. 20453 (dump_function_to_file): Use check_bb_profile. 20454 * tree-pretty-print (dump_bb_header): Likewise. 20455 * tree-profile.c (do_tree_profiling): Cleanup. 20456 204572004-08-04 Zack Weinberg <zack@codesourcery.com> 20458 20459 * Makefile.in (RTL_BASE_H, RTL_H): Correct. 20460 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o. 20461 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o. 20462 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o) 20463 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o) 20464 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o) 20465 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H). 20466 (ggc-none.o, errors.o): Move rule to generators section; 20467 correct dependencies. 20468 (min-insn-modes.o): Move rule to generators section; remove 20469 unnecessary explicit command; correct dependencies. 20470 (print-rtl.o, print-rtl1.o): Correct dependencies. 20471 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule. 20472 (mostlyclean): Update. 20473 20474 * errors.c: Include bconfig.h not config.h. Correct comment. 20475 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H. 20476 * ggc-none.c: Include bconfig.h; not config.h or tm.h. 20477 * print-rtl.c: Don't include tm_p.h. 20478 20479 * rtl.h: Move forward-decl of struct function down where it's 20480 needed. Include genrtl.h #ifndef GENERATOR_FILE, not 20481 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements. 20482 204832004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 20484 Jeff Law <law@redhat.com> 20485 20486 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions. 20487 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed. 20488 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to 20489 manipulate the duplicated ssa names. 20490 * tree-ssanames.c (ssa_names_to_rewrite): New variable. 20491 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite, 20492 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force): 20493 New functions. 20494 (release_ssa_name): Do not release ssa names that may have multiple 20495 definitions. 20496 * tree.h (release_ssa_name_force, mark_for_rewrite, 20497 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p, 20498 marked_ssa_names): Declare. 20499 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove. 20500 (duplicate_blocks): Remove call to mark_defs_for_rewrite. 20501 Update call to rewrite_ssa_into_ssa. 20502 205032004-08-04 Mark Mitchell <mark@codesourcery.com> 20504 20505 * defaults.h (TARGET_DECLSPEC): New macro. 20506 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC. 20507 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support. 20508 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. 20509 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove 20510 __declspec support. 20511 (TARGET_DECLSPEC): Define. 20512 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove 20513 __declspec support. 20514 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove 20515 __declspec support. 20516 (TARGET_DECLSPEC): Define. 20517 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove 20518 __declspec support. 20519 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec 20520 support. 20521 * doc/tm.texi (TARGET_DECLSPEC): Document. 20522 20523 * doc/extend.texi: Fix typo in comment. 20524 205252004-08-04 Paul Brook <paul@codesourcery.com> 20526 20527 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define. 20528 (TARGET_CXX): Use it. 20529 * target.h (struct gcc_target): Add cdtor_returns_this. 20530 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function. 20531 (TARGET_CXX_CDTOR_RETURNS_THIS): Define. 20532 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS. 20533 205342004-08-03 Nathan Sidwell <nathan@codesourcery.com> 20535 20536 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take 20537 low/high pair. Do range checking directly. 20538 (interpret_integer): Adjust. 20539 205402004-08-04 Nick Clifton <nickc@redhat.com> 20541 20542 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the 20543 GCC ABI. 20544 * doc/invoke.texi: Document this new switch and also the -mrenesas 20545 switch. 20546 205472004-08-04 Nathan Sidwell <nathan@codesourcery.com> 20548 20549 * cfglayout.c (insn_locators_initialize): Update the current 20550 location before initializing a location. 20551 205522004-08-03 Zack Weinberg <zack@codesourcery.com> 20553 20554 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end. 20555 (dbxout_function_end): Return after emitting the "Lscope" symbol 20556 under the same conditions that this function formerly wasn't called. 20557 Add explanatory comments. 20558 20559 PR 14860 20560 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl 20561 on the new decl. 20562 20563 PR 13956 20564 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New 20565 functions, broken out of dbxout_block. 20566 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC 20567 stabs too, if it contains symbols. Use the begin_label and 20568 the Lscope label (emitted by dbxout_function_end) for the 20569 range of this block. 20570 205712004-08-03 Nathanael Nerode <neroden@gcc.gnu.org> 20572 20573 * doc/install.texi: Update autoconf version requirements. 20574 205752004-08-03 Zack Weinberg <zack@codesourcery.com> 20576 20577 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition. 20578 * recog.c (general_operand, immediate_operand, nonmemory_operand) 20579 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P. 20580 * regclass.c (record_reg_classes): Likewise. 20581 * reload.c (find_reloads): Likewise. 20582 * reload1.c (reload): Likewise. 20583 205842004-08-03 Zack Weinberg <zack@codesourcery.com> 20585 20586 * gensupport.c (init_md_reader_args_cb): Renamed from 20587 init_md_reader_args. Add third option, callback function for 20588 parsing program-specific options. Add diagnosis of incorrect 20589 number of input files. 20590 (init_md_reader): Fold into init_md_reader_args_cb. 20591 (init_md_reader_args): Now a thin wrapper around 20592 init_md_reader_args_cb. 20593 * gensupport.h: Update prototypes. 20594 20595 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c 20596 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c 20597 * genrecog.c: No need to diagnose lack of an input file; 20598 init_md_reader_args will handle it. 20599 * genconditions.c: Likewise, and use init_md_reader_args. 20600 * genconstants.c: Likewise, and no need to call read_md_rtx. 20601 206022004-08-03 Joseph S. Myers <jsm@polyomino.org.uk> 20603 20604 * c-decl.c (implicitly_declare): Diagnose incompatible implicit 20605 declarations. 20606 206072004-08-03 Mike Stump <mrs@apple.com> 20608 20609 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks" 20610 for frameworks. 20611 * doc/invoke.texi (Darwin Options): Update to reflect above. 20612 206132004-08-03 Roger Sayle <roger@eyesopen.com> 20614 20615 PR middle-end/16790 20616 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local 20617 truncations, not just global truncations. 20618 206192004-08-03 Andrew Pinski <apinski@apple.com> 20620 20621 PR bootstrap/16865 20622 * loop-iv.c (simplify_using_assignment): Initialize lhs. 20623 206242004-08-03 Paul Brook <paul@codesourcery.com> 20625 20626 * doc/install.texi: Document MPFR requirement. 20627 206282004-08-03 Maciej W. Rozycki <macro@linux-mips.org> 20629 20630 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h> 20631 and mmap() explicitly instead of relying on preset autoconf cache 20632 variables. 20633 * configure: Regenerate. 20634 206352004-08-03 H.J. Lu <hongjiu.lu@intel.com> 20636 20637 PR target/16570 20638 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc 20639 to tmake_file. 20640 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise. 20641 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc 20642 to tmake_file. 20643 20644 * config/i386/t-gmm_malloc: New file. 20645 * config/i386/t-pmm_malloc: Likewise. 20646 20647 * config/i386/xmmintrin.h: Include <mm_malloc.h>. 20648 206492004-08-03 H.J. Lu <hongjiu.lu@intel.com> 20650 Tanguy Fautr� <tfautre@pandora.be> 20651 20652 * config/i386/pmm_malloc.h: New file. 20653 206542004-08-03 Danny Smith <dannysmith@users.sourceforge.net> 20655 20656 * config/i386/gmm_malloc.h: New file. 20657 206582004-08-03 Dale Johannesen <dalej@apple.com> 20659 20660 * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs. 20661 * c-common.c: Include opts.h. 20662 (c_common_get_alias_set): Fix check for a single input file. 20663 * toplev.c: Remove current_file_decl. 20664 * tree.h: Ditto. 20665 206662004-08-03 Mark Mitchell <mark@codesourcery.com> 20667 20668 * config.gcc (arm*-*-symbianelf*): New target. 20669 * config/arm/symbian.h: New file. 20670 20671 * gthr-gnat.c: Add visibility #pragmas. 20672 * gthr-gnat.h : Likewise. 20673 * gthr.h: Likewise. 20674 * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h. 20675 (__ffsDI2): Likewise. 20676 (__clzSI2): Likewise. 20677 (__ctzSI2): Likewise. 20678 (__ctzDI2): Likewise. 20679 (__popcountSI2): Likewise. 20680 (__popcountDI2): Likewise. 20681 (__paritySI2): Likewise. 20682 (__parityDI2): Likewise. 20683 * libgcc2.h: Add visibility #pragmas. 20684 (__clzDI2): Add prototype. 20685 (__clzSI2): Likewise. 20686 (__ctzSI2): Likewise. 20687 (__ffsDI2): Likewise. 20688 (__ffsSI2): Likewise. 20689 (__ctzDI2): Likewise. 20690 (__popcountSI2): Likewise. 20691 (__popcountDI2): Likewise. 20692 (__paritySI2): Likewise. 20693 (__parityDI2): Likewise. 20694 * unwind-dw2-fde.h: Add visibility #pragmas. 20695 * unwind.h: Likewise. 20696 206972004-08-03 David Edelsohn <edelsohn@gnu.org> 20698 Dale Johannesen <dalej@apple.com> 20699 Roger Sayle <roger@eyesopen.com> 20700 20701 * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of 20702 constants more accurately. Adjust costs for FMA instructions. 20703 Add cases for most logical and float operations. Recurse into 20704 most operands. 20705 207062004-08-03 Richard Earnshaw <rearnsha@arm.com> 20707 20708 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files. 20709 207102004-08-03 Pat Haugen <pthaugen@us.ibm.com> 20711 20712 * ra-build.c (conflicts_between_webs): For webs that cross a call add 20713 conflicts to regs_invalidated_by_call. 20714 207152004-08-03 Paul Brook <paul@codesourcery.com> 20716 20717 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment. 20718 207192004-08-03 Jan Hubicka <jh@suse.cz> 20720 20721 * coverage.c (tree_coverage_counter_ref): Fix computation of the new 20722 ARRAY_REF argument. 20723 207242004-08-03 Richard Earnshaw <rearnsha@arm.com> 20725 20726 * arm-cores.def: Sort by architecture. Add arm946es, arm966es, 20727 arm968es, arm10e, arm1020e, arm1022e. 20728 * invoke.texi: Update list of ARM cores. 20729 * arm-tune.md: Regenerate. 20730 207312004-08-03 Richard Earnshaw <rearnsha@arm.com> 20732 20733 * arm/gentune.sh: New file. 20734 * arm/t-arm: New file. 20735 * arm/arm-tune.md: New file (autogenerated). 20736 * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants. 20737 * arm.md (attribute tune): Delete. Include arm-tune.md. 20738 207392004-08-03 Paolo Bonzini <bonzini@gnu.org> 20740 20741 * gcc.c (add_prefix, add_sysrooted_prefix): Remove 20742 penultimate parameter. All callers adjusted. 20743 (struct prefix_list): Remove used_flag_ptr. 20744 (find_a_file): Do not set *pl->used_flag_ptr. 20745 (warn_B, warn_std_ptr): Remove. 20746 207472004-08-03 Yossi Markovich <yossim@il.ibm.com> 20748 Mostafa Hagog <mustafa@il.ibm.com> 20749 20750 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern. 20751 207522004-08-02 Geoffrey Keating <geoffk@apple.com> 20753 20754 * dwarf2out.c (output_call_frame_info): Don't change data format 20755 due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local 20756 label. Use 'true' not '1'. 20757 * doc/install.texi (powerpc-*-darwin*): Mention cctools version 20758 required. 20759 207602004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 20761 20762 * gdbinit.in: Reflect previous changes to rtunion_def. 20763 207642004-08-02 Roger Sayle <roger@eyesopen.com> 20765 20766 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y" 20767 -> "X % Y" is only valid for TRUNC_MOD_EXPR. 20768 207692004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 20770 20771 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and 20772 vec_p_reserve. 20773 * langhooks.h (lang_hooks::builtin_function): Rename parameter 20774 from "class" to "bt_class". 20775 207762004-08-02 Paul Brook <paul@codesourcery.com> 20777 20778 PR rtl-optimization/15068 20779 * flow.c (init_propagate_block_info): Check condition is reversible. 20780 207812004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 20782 20783 * gengtype.h (options::info): Change type to const char *. 20784 (enum gc_used_enum): Move out of struct type scope. 20785 * gengtype.c (create_option): Convert initializer for option::info to 20786 appropiate type. 20787 (adjust_field_type, walk_type, write_func_for_structure, 20788 write_root, write_roots): Remove pointless cast. 20789 207902004-08-02 J"orn Rennecke <joern.rennecke@superh.com> 20791 20792 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F. 20793 207942004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net> 20795 20796 * rtl.h (union rtunion_def): Have all members start with the 20797 prefix "rt_". 20798 (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL, 20799 X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, 20800 X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP, 20801 XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members 20802 access. 20803 * gengtype.c (adjust_field_rtx_def): Likewise. 20804 * rtlanal.c (loc_mentioned_in_p): Likewise. 20805 208062004-08-02 Richard Sandiford <rsandifo@redhat.com> 20807 20808 * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file. 20809 Replace uses of mips/elf64.h with mips/elf.h 20810 * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION) 20811 (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP) 20812 (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS) 20813 (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP) 20814 (HANDLE_SYSV_PRAGMA): Delete. 20815 (ASM_OUTPUT_DEF): Fix formatting. 20816 * config/mips/elf64.h: Delete. 20817 208182004-08-01 Zack Weinberg <zack@codesourcery.com> 20819 20820 * config/ia64/ia64.c (got_symbolic_operand): Do require a 20821 symbol+offset operand to have its offset be zero mod 0x3fff 20822 when GOT entries are in use. Clarify logic in SYMBOL_REF 20823 case. Clarify comments. 20824 (ia64_expand_load_address): Split a symbol+offset load when 20825 the offset is nonzero mod 0x3fff, not 0x1fff. 20826 208272004-08-01 Geoffrey Keating <geoffk@apple.com> 20828 20829 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort 20830 if trying to *store* to a non-offsettable address. 20831 * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to 20832 a nonoffsettable address. 20833 (movdi_internal32): Don't move GPRs to a nonoffsettable address. 20834 Clean up. 20835 (movti_string): Don't move GPRs to a nonoffsettable address. 20836 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up. 20837 208382004-08-02 Ben Elliston <bje@au.ibm.com> 20839 20840 PR target/16155 20841 * config/rs6000/altivec.h: Replace typeof with __typeof__. 20842 208432004-08-01 Richard Henderson <rth@redhat.com> 20844 20845 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with 20846 variable sized types. 20847 208482004-08-01 Richard Sandiford <rsandifo@redhat.com> 20849 20850 * doc/invoke.texi: In the MIPS options section, remove the passage 20851 saying that -mexplicit-relocs is usually disabled for -mabicalls 20852 -fno-unit-at-a-time. 20853 * config/mips/mips.c (override_options): Remove the code that enforced 20854 this rule. 20855 208562004-08-01 Richard Sandiford <rsandifo@redhat.com> 20857 20858 * config/mips/mips.md (cprestore): Provide two alternatives, one for 20859 an in-range offset and one for an out-of-range offset. Wrap the latter 20860 in .set macro/.set nomacro if it's inside a .set nomacro block. 20861 208622004-08-01 Richard Sandiford <rsandifo@redhat.com> 20863 20864 * config/mips/mips-protos.h (mips_gp_save_slot): Remove. 20865 (mips_restore_gp): Declare. 20866 * config/mips/mips.c (mips_add_offset): Add a scratch register 20867 argument. Reimplement in rtl only, reusing MIPS16 logic from 20868 mips_output_mi_thunk. 20869 (mips_legitimize_address, mips_legitimize_const_move): Adjust calls 20870 to mips_add_offset. 20871 (mips_gp_save_slot): Delete. 20872 (mips_restore_gp): New function. 20873 (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset. 20874 * config/mips/mips.md (exception_receiver): Turn into a 20875 define_insn_and_split. Use mips_restore_gp to do the split. 20876 (call_internal, call_value_internal, call_value_multiple_internal): Use 20877 mips_restore_gp to restore $gp. 20878 208792004-07-31 Andrew Pinski <apinski@apple.com> 20880 20881 PR other/16842 20882 * mkheaders.in (libsubdir): s/gcc-lib/gcc/. 20883 208842004-07-31 Joseph S. Myers <jsm@polyomino.org.uk> 20885 20886 * c-decl.c (diagnose_mismatched_decls): Give error for external 20887 redeclaration of identifier declared with no linkage, not just 20888 warning with -Wtraditional. Do not check DECL_CONTEXT to give 20889 error for redeclaration with no linkage. 20890 208912004-07-30 Geoffrey Keating <geoffk@apple.com> 20892 Fariborz Jahanian <fjahanian@apple.com> 20893 20894 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit 20895 non-offsettable addresses even for DImode. 20896 (rs6000_split_multireg_move): Cope with non-offsettable addresses 20897 being moved into multiple GPRs. 20898 20899 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default 20900 to 64. 20901 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE. 20902 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define 20903 to 128. 20904 * config/rs6000/darwin-ldouble.c (isless): New macro. 20905 (inf): New macro. 20906 (nonfinite): New macro. 20907 (FPKINF): Delete. 20908 (_xlqadd): Completely rewrite. 20909 (_xlqmul): Correct overflow handling. 20910 (_xlqdiv): Correct overflow handling. 20911 * config/rs6000/darwin-ldouble-format: New file. 20912 209132004-07-30 Roger Sayle <roger@eyesopen.com> 20914 Richard Henderson <rth@redhat.com> 20915 20916 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or 20917 9 into the equivalent lea instruction. 20918 209192004-07-30 Richard Henderson <rth@redhat.com> 20920 20921 * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace 20922 with DECL_INITIAL if fb_lvalue. 20923 * tree-gimple.c (is_gimple_id): Add CONST_DECL. 20924 * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL 20925 with <Cxxx>. 20926 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL. 20927 209282004-07-30 Diego Novillo <dnovillo@redhat.com> 20929 20930 * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a 20931 pointer escapes through a function call, assume that the 20932 callee will dereference it. 20933 (add_pointed_to_var): Assume that VALUE is always an 20934 ADDR_EXPR. 20935 (collect_points_to_info_r): Only call add_pointed_to_var if 20936 the value is an ADDR_EXPR. 20937 209382004-07-30 Diego Novillo <dnovillo@redhat.com> 20939 20940 * tree-ssa-alias.c (create_alias_map_for): Do not get the 20941 alias set of the inner type of ARRAY_TYPEs. 20942 209432004-07-29 Diego Novillo <dnovillo@redhat.com> 20944 20945 * tree-ssa-ccp.c (visit_assignment): Move code to prevent 20946 setting a non-register to UNDEFINED right before the call to 20947 set_lattice_value. 20948 209492004-07-29 Kaz Kojima <kkojima@gcc.gnu.org> 20950 20951 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*. 20952 209532004-07-29 Diego Novillo <dnovillo@redhat.com> 20954 20955 * tree-ssa.c (verify_flow_sensitive_alias_info): When 20956 comparing points-to sets of different pointers, make sure the 20957 second pointer is actually referenced in the code. 20958 209592004-07-29 Zack Weinberg <zack@codesourcery.com> 20960 20961 * config/ia64/ia64.c (setjmp_operand): Delete, unused. 20962 (got_symbolic_operand): Remove unreachable code. 20963 * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for 20964 setjmp_operand; add entry for tls_symbolic_operand. 20965 * config/ia64/ia64-protos.h: Remove all prototypes of 20966 predicate functions. 20967 209682004-07-29 Mark Mitchell <mark@codesourcery.com> 20969 20970 * c-common.h (lang_post_pch_load): New variable. 20971 * c-pch.c (lang_post_pch_load): Define it. 20972 (c_common_read_pch): Use it. 20973 * cgraphunit.c (record_call_1): Give the front end a chance to 20974 record additional needed entities when a variable is marked as 20975 needed. 20976 * tlink.c (recompile_files): Robustify. 20977 (scan_linker_output): If a symbol is assigned to a file, 20978 but after recompilation is not present there, issue an error 20979 message. 20980 209812004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 20982 20983 * tree-ssa-loop-im.c (force_move_till_expr, force_move_till): 20984 Take orig_loop argument and pass it to set_level. 20985 (schedule_sm): Pass the correct orig_loop to force_move_till. 20986 209872004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 20988 20989 * cfgloop.c (update_latch_info): Update dominator of the new block. 20990 (canonicalize_loop_headers, flow_loops_find): Do not free dominance 20991 info. 20992 * dominance.c (verify_dominators): Check that the dominance tree is 20993 connected. 20994 (recount_dominator): Ignore unreachable blocks. 20995 (iterate_fix_dominators): Cleanup old dominance information before 20996 recomputing it. 20997 209982004-07-29 Diego Novillo <dnovillo@redhat.com> 20999 21000 * tree-ssa-operands.c (get_expr_operands): Revert changes 21001 to ADDR_EXPR processing introduced by: 21002 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 21003 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. 21004 210052004-07-29 Joseph S. Myers <jsm@polyomino.org.uk> 21006 21007 * doc/implement-c.texi: Add C90 subclause references. Point to 21008 preprocessor documentation instead of duplicating it. Add points 21009 only present in C90. Fill in documentation for all points. 21010 210112004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 21012 21013 * pa.c (output_movb): Correct typo. 21014 210152004-07-29 Pat Haugen <pthaugen@us.ibm.com> 21016 21017 * ra.h (single_reg_in_regclass): Declare. 21018 * ra.c (single_reg_in_regclass): Define. 21019 (first_hard_reg): New. 21020 (init_ra): Initialize single_reg_in_regclass. 21021 * ra-colorize.c (ok_class): New. 21022 (coalesce, aggressive_coalesce, extended_coalesce_2): Use it. 21023 210242004-07-29 Nathan Sidwell <nathan@codesourcery.com> 21025 21026 * gcov-io.h: Allow zero tag as EOF indicator. 21027 (gcov_is_eof): Remove. 21028 (gcov_truncate): Remove. 21029 * gcov-io.c (gcov_seek): Always SEEK_SET. 21030 * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit 21031 EOF tag. 21032 * coverage.c (read_counts_file): Don't use gcov_is_eof. 21033 * gcov-dump.c (dump_file): Likewise. 21034 * gcov.c (read_graph_file, read_count_file): Likewise. 21035 21036 * c-decl.c (complete_array_type): Don't gratuitously copy 21037 maxindex. Check it always has a type. 21038 210392004-07-29 Steven Bosscher <stevenb@suse.de> 21040 21041 * rtl.c (currently_expanding_to_rtl): New. 21042 * rtl.h (currently_expanding_to_rtl): Export it. 21043 * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit. 21044 21045 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL 21046 inliner hack. 21047 * config/sh/sh.c: Replace rtx_equal_function_value_matters 21048 with currently_expanding_to_rtl. 21049 * config/sh/sh.md: Likewise. 21050 * config/ia64/ia64.c (got_symbolic_operand): Likewise. 21051 210522004-07-29 Alexandre Oliva <aoliva@redhat.com> 21053 21054 Introduce sh2a support. 21055 2004-07-29 Alexandre Oliva <aoliva@redhat.com> 21056 * config.gcc: Build multilibs for sh2a and sh2a-single by 21057 default. 21058 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by 21059 default. Split their tests out of the corresponding SH4 21060 multilibs. 21061 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a 21062 multilibs for SH2a. 21063 2004-07-28 Alexandre Oliva <aoliva@redhat.com> 21064 * config.gcc: Handle sh2a multilibs and cpu selection. 21065 * config/sh/sh.h: Likewise. Handle sh2a command line flags. 21066 * config/sh/t-mlib-sh2a: New. 21067 * config/sh/t-mlib-sh2a-nofpu: New. 21068 * config/sh/t-mlib-sh2a-single: New. 21069 * config/sh/t-mlib-sh2a-single-only: New. 21070 2004-07-09 Nick Clifton <nickc@redhat.com> 21071 Issue 43400 21072 * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if 21073 -ml and -m2a are used together. 21074 2004-03-23 DJ Delorie <dj@redhat.com> 21075 * config/sh/sh.c (sh_builtin_saveregs): Use the double code only 21076 when we have a double-sized FPU. 21077 2004-02-24 Corinna Vinschen <vinschen@redhat.com> 21078 * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__ 21079 is set. 21080 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu, 21081 -msh2a-single and -msh2a-single-only 21082 2004-02-24 Corinna Vinschen <vinschen@redhat.com> 21083 * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__ 21084 is set. 21085 2004-02-20 DJ Delorie <dj@delorie.com> 21086 * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu. 21087 2004-02-20 Fred Fish <fnf@redhat.com>, 21088 Corinna Vinschen <vinschen@redhat.com> 21089 * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu. 21090 (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a. 21091 2004-02-18 DJ Delorie <dj@redhat.com> 21092 * config/sh/sh.c (broken_move): Add support for movi20. 21093 * config/sh/sh.h: Likewise. 21094 (SHIFT_COUNT_TRUNCATED): Set for sh2a. 21095 * config/sh/sh.md (udivsi3_sh2a): New. 21096 (udivsi3): Call it. 21097 (divsi3_sh2a): New. 21098 (divsi3): Call it. 21099 (mul_r): New. 21100 (ashlsi3_sh2a): New. 21101 (ashrsi3_sh2a): New. 21102 (lshrsi3_sh2a): New. 21103 (movsi_i): Disable for sh2a. 21104 (movsi_ie): Add movi20. 21105 (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable 21106 sh2a, for -m2a-nofpu mode. 21107 2004-02-13 DJ Delorie <dj@redhat.com> 21108 * config/sh/lib1funcs.asm: Handle double vs single better. 21109 * config/sh/sh.h: Likewise. 21110 2004-02-09 DJ Delorie <dj@redhat.com> 21111 * config/sh/crt1.asm: Add support for sh2a. 21112 * config/sh/elf.h: Likewise. 21113 * config/sh/lib1funcs.asm: Likewise. 21114 * config/sh/sh.c: Likewise. 21115 * config/sh/sh.md: Likewise. 21116 * config/sh/sh.h: Likewise. 21117 * config/sh/t-sh: Likewise. 21118 211192004-07-28 Alexandre Oliva <aoliva@redhat.com> 21120 21121 * config/frv/frv.md (movqi_internal, movhi_internal, 21122 movsi_internal): Add backup alternatives for memory inputs. 21123 211242004-07-28 Matt Austern <austern@apple.com> 21125 21126 * config/darwin.c (darwin_one_byte_bool): New global variable. 21127 * config/darwin.h (darwin_one_byte_bool): Declare. 21128 (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.) 21129 * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on 21130 value of darwin_one_byte_bool. 21131 * doc/invoke.texi: Document -mone-byte-bool flag. 21132 211332004-07-28 Eric Christopher <echristo@redhat.com> 21134 21135 * c-common.c (c_common_unsafe_for_reeval): Delete. 21136 * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use. 21137 * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case. 21138 * calls.c (fix_unsafe_tree): Delete. 21139 (expand_call): Delete code which used above. 21140 * dojump.c (do_jump): Delete UNSAVE_EXPR case. 21141 * expr.c (expand_expr_real_1): Ditto. 21142 * fold-const.c (non_lvalue): Ditto. 21143 * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. 21144 (lhd_unsafe_for_reeval): Ditto. 21145 * langhooks.c (lhd_unsafe_for_reeval): Ditto. 21146 * langhooks.h (unsafe_for_reeval): Ditto. 21147 (unsave_expr_now): Adjust comment. 21148 * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits. 21149 (estimate_num_insns_1): Ditto. 21150 * tree-pretty-print.c (dump_generic_node): Ditto. 21151 * tree.c (expr_align): Ditto. 21152 (unsave_expr): Delete. 21153 (unsafe_for_reeval): Ditto. 21154 * tree.h (unsafe_for_reeval, unsave_expr): Ditto. 21155 * tree.def (UNSAVE_EXPR): Delete. 21156 * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. 21157 211582004-07-28 Zack Weinberg <zack@codesourcery.com> 21159 21160 * tree.h (enum tls_model): Move ... 21161 * coretypes.h: ... here. 21162 211632004-07-28 Richard Sandiford <rsandifo@redhat.com> 21164 21165 * config/frv/frv.h (EPILOGUE_USES): New. Use LR. 21166 211672004-07-28 Richard Sandiford <rsandifo@redhat.com> 21168 21169 * cse.c (validate_canon_reg): New function, split out from... 21170 (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'. 21171 211722004-07-28 Diego Novillo <dnovillo@redhat.com> 21173 21174 * tree-ssa-alias.c (maybe_create_global_var): Don't just 21175 return if .GLOBAL_VAR has been created. 21176 211772004-07-28 Diego Novillo <dnovillo@redhat.com> 21178 21179 * tree-ssa.c (verify_flow_insensitive_alias_info): Process 21180 every variable that may have aliases, not just tags. 21181 211822004-07-28 Aldy Hernandez <aldyh@redhat.com> 21183 21184 * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to 21185 move_from_CR_eq_bit. 21186 Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ. 21187 21188 21189 * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to 21190 e500_flip_eq_bit. 21191 21192 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to 21193 output_e500_flip_eq_bit. 21194 21195 * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to 21196 output_e500_flip_eq_bit. 21197 (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to 21198 output_e500_flip_eq_bit. 21199 Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit. 21200 (print_operand): case D. Get to EQ bit. 21201 212022004-07-28 Richard Sandiford <rsandifo@redhat.com> 21203 21204 * gcov.c (function_summary): Add missing \n. 21205 212062004-07-28 Alexandre Oliva <aoliva@redhat.com> 21207 21208 Introduce sh4a support. 21209 * config.gcc: Handle sh4a multilibs and cpu selection. 21210 * config/sh/sh.h: Likewise. Handle sh4a command line flags. 21211 * config/sh/t-mlib-sh4a: New. 21212 * config/sh/t-mlib-sh4al: New. 21213 * config/sh/t-mlib-sh4a-nofpu: New. 21214 * config/sh/t-mlib-sh4a-single: New. 21215 * config/sh/t-mlib-sh4a-single-only: New. 21216 2004-02-20 DJ Delorie <dj@redhat.com> 21217 * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua". 21218 * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support. 21219 2003-08-22 Eric Christopher <echristo@redhat.com> 21220 * config/sh/sh4a.md: Update for chip errata. 21221 2003-08-07 Eric Christopher <echristo@redhat.com> 21222 * config/sh/sh4a.md: New file. sh4a processor description. 21223 2003-07-08 Alexandre Oliva <aoliva@redhat.com> 21224 * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description 21225 of -m4a-nofpu. 21226 (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu. 21227 * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu. 21228 * doc/invoke.texi (SH Options): Document -m4al. 21229 2003-07-03 Alexandre Oliva <aoliva@redhat.com> 21230 * config/sh/sh.c (expand_block_move): Remove commented-out code 21231 checked in by mistake. 21232 (sh_cannot_change_mode_class): Enable SUBREGs to be used to select 21233 single elements from SFmode vectors. 21234 * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output 21235 register. 21236 (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER. 21237 2003-07-01 Alexandre Oliva <aoliva@redhat.com> 21238 * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int, 21239 sh_fsca_int2sf): Remove variable declarations. 21240 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, 21241 sh_fsca_int2sf): New functions. 21242 (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx, 21243 sh_fsca_int2sf_rtx): New static variables. 21244 * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int, 21245 sh_fsca_int2sf): Declare. 21246 * config/sh/sh.md: Adjust. 21247 * doc/invoke.texi (SH Options): Document new options. 21248 * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward 21249 compatibility from SH4 code. 21250 2003-06-27 Alexandre Oliva <aoliva@redhat.com> 21251 * config/sh/sh.c (expand_block_move): Don't emit POST_INC too 21252 early. 21253 (memory_movsrc_operand): Renamed to... 21254 (unaligned_load_operand): ... this. Simplified. 21255 * config/sh/sh.h (PREDICATE_CODES): Adjust. 21256 * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's 21257 input operand to SImode, and adjust the others. Introduce 21258 post-increment by peephole. 21259 * config/sh/sh.c (expand_block_move): Give the target address the 21260 same mode as the temp reg. 21261 * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned 21262 copying. 21263 2003-06-26 Alexandre Oliva <aoliva@redhat.com> 21264 Introduce support for SH4a. 21265 * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if 21266 __SH4A__. Emit 4 4kb blocks and touch all of them otherwise. 21267 * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, 21268 sh_fsca_int2sf): New. 21269 (sh_init_builtins): Initialize them. 21270 (print_operand): Support `d'. 21271 (expand_block_move): Use movua if src is misaligned. 21272 (memory_movsrc_operand): New. 21273 * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__ 21274 and one of the SH4 macros. 21275 (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP, 21276 SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A, 21277 SELECT_SH4A_SINGLE): New. 21278 (TARGET_NONE): Add SH4A_BIT. 21279 (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a. 21280 (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu. 21281 (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare. 21282 (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate. 21283 (enum processor_type): Added PROCESSOR_SH4A. 21284 (PREDICATE_CODES): Add memory_movsrc_operand. 21285 * config/sh/sh.md: Removed unused variables. 21286 (attr cpu): Add sh4a. 21287 (attr type): Add movua, fsrra and fsca. 21288 (prefetch): New, for SH4. 21289 (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi. 21290 (toggle_sz): Set type to fp. 21291 (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New. 21292 (movua, extv, extzv): New. 21293 * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single 21294 and 4a-single-only. 21295 212962004-07-28 Diego Novillo <dnovillo@redhat.com> 21297 21298 * tree-optimize.c (init_tree_optimization_passes): Schedule 21299 pass_may_alias right after the program is renamed into SSA. 21300 * tree-pass.h (PROP_alias): Define. 21301 * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias. 21302 * tree-sra.c (pass_sra): Likewise. 21303 * tree-ssa-ccp.c (pass_ccp): Likewise. 21304 * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise. 21305 * tree-ssa-dce.c (pass_dce): Likewise. 21306 * tree-ssa-dom.c (pass_dominator): Likewise. 21307 * tree-ssa-dse.c (pass_dse): Likewise. 21308 * tree-ssa-forwprop.c (pass_forwprop): Likewise. 21309 * tree-ssa-loop-ch.c (pass_ch): Likewise. 21310 * tree-ssa-phiopt.c (pass_phiopt): Likewise. 21311 * tree-ssa-pre.c (pass_pre): Likewise. 21312 * tree-tailcall.c (pass_tail_recursion): Likewise. 21313 * tree-ssa.c (pass_redundant_phi): Likewise. 21314 * tree-ssa-alias.c (aliases_computed_p): Remove. 21315 Update all users. 21316 (init_alias_info): Do not mark all type tags for renaming 21317 unconditionally. 21318 Clear may_aliases from every symbol. 21319 (setup_pointers_and_addressables): If a pointer has not been 21320 dereferenced and it had a type tag, clear it and mark the old 21321 tag for renaming. 21322 213232004-07-28 Diego Novillo <dnovillo@redhat.com> 21324 21325 PR tree-optimization/16705 21326 * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on 21327 .GLOBAL_VAR. 21328 213292004-07-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 21330 21331 * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error 21332 check. 21333 21334 * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR, 21335 don't make another one. 21336 21337 PR optimization/15077 21338 * function.h (struct function): Add field saved_static_chain_decl. 21339 Fix comment for static_chain_decl. 21340 * tree-inline.c (save_body): Add new arg and handle static_chain_decl. 21341 * tree-inline.h (save_body): Add new arg. 21342 * tree-optimize.c (tree_rest_of_compilation): Handle saving 21343 static_chain_decl. 21344 213452004-07-27 Richard Henderson <rth@redhat.com> 21346 21347 * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove. 21348 (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use 21349 is_gimple_addressable. 21350 * tree-gimple.c (is_gimple_addressable): Rename from 21351 is_gimple_addr_expr_arg; accept INDIRECT_REF. 21352 (is_gimple_lvalue): Don't test INDIRECT_REF directly. 21353 * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for 21354 rename to is_gimple_addressable. 21355 213562004-07-28 Alan Modra <amodra@bigpond.net.au> 21357 21358 * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards. 21359 213602004-07-27 Richard Henderson <rth@redhat.com> 21361 21362 * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT 21363 before rounding. 21364 213652004-07-27 Zack Weinberg <zack@codesourcery.com> 21366 21367 * libgcc2.c: Change all conditionals testing 21368 LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80. 21369 * libgcc2.h: Likewise. 21370 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set 21371 TYPE_PRECISION of float80_type to 80. 21372 * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION 21373 of fpreg_type and float80_type to 80. 21374 * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h 21375 * config/m68k/netbsd-elf.h: 21376 Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE 21377 to evaluate to 80 whenever they would formerly have evaluated to 96. 21378 * config/i386/sco5.h: Remove unnecessary redefinition of 21379 LONG_DOUBLE_TYPE_SIZE. 21380 * doc/rtl.texi: Clarify uses of XFmode and TFmode. 21381 * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for 21382 XFmode, with a bitsize of 80. Update commentary. 21383 * config/ia64/ia64-modes.def: Likewise. 21384 * config/m68k/m68k-modes.def: Likewise. 21385 213862004-07-27 Steven Bosscher <stevenb@suse.de> 21387 21388 * cfgexpand.c (tree_expand_cfg): Fix comment. 21389 21390 * calls.c (expand_call): Ignore rtx_equal_function_value_matters. 21391 * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets): 21392 Remove. 21393 (prepare_function_start): Don't set rtx_equal_function_value_matters. 21394 * integrate.c (copy_rtx_and_substitute): Don't test for it. 21395 * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets. 21396 Don't set rtx_equal_function_value_matters. Don't register RTL hooks 21397 here again. Update leading comment. 21398 * rtl.c (rtx_equal_function_value_matters): Remove. 21399 (rtx_equal_p): Don't test for it. 21400 * simplify-rtx.c (simplify_binary_operation, simplify_subreg): 21401 Likewise. 21402 21403 * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND. 21404 * rtl.c (note_insn_name): Likewise. 21405 * emit-rtl.c (remove_unnecessary_notes): Don't handle it. 21406 * final.c (final_scan_insn): Likewise. 21407 21408 * except.c (finish_eh_generation): Don't call cfg_cleanup from here. 21409 * passes.c (rest_of_handle_eh): Do it here. 21410 21411 * stmt.c (struct nesting): Remove struct nesting block member. 21412 (struct stmt_status): Remove x_block_start_count field. 21413 (current_block_start_count): Remove. 21414 214152004-07-27 Brian Booth <bbooth@redhat.com> 21416 21417 * tree-optimize.c (register_one_dump_file): Update condition that uses 21418 static_pass_number. 21419 (dup_pass_1): Replace with... 21420 (next_pass_1): This. 21421 (NEXT_PASS): Call next_pass_1. 21422 (DUP_PASS): Remove. 21423 (init_tree_optimization_passes): Remove uses of DUP_PASS. 21424 (execute_one_pass): Update condition that uses 21425 static_pass_number. 21426 * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed 21427 integer. 21428 214292004-07-27 Nick Clifton <nickc@redhat.com> 21430 21431 * config/m32r/m32r.c: Include integrate.h in order to get the 21432 prototype for get_hard_reg_initial_val(). 21433 21434 * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r" 21435 and tidy up indentation. 21436 (final_presence_set): Use absence_set instead, so that if there is 21437 nothing in the "o" pipe the "s" pipe can be scheduled. 21438 214392004-07-27 Diego Novillo <dnovillo@redhat.com> 21440 21441 * tree-ssa-alias.c (create_name_tags): Ignore pointers that 21442 don't have PT_VARS nor PT_MALLOC set. 21443 Clear name tag from pointers that have not been dereferenced. 21444 (set_pt_anything, set_pt_malloc): Forward declare. 21445 * tree-ssa-copy.c (may_propagate_copy): Compare alias sets, 21446 not type compatibility when determining if a pointer can be 21447 copy propagated. 21448 214492004-07-27 Richard Sandiford <rsandifo@redhat.com> 21450 21451 * expr.h (canonicalize_condition, get_condition): Add an int argument. 21452 * gcse.c (fis_get_condition): Reimplement using get_condition, leaving 21453 it to check whether the condition is still valid at the jump insn. 21454 * ifcvt.c (noce_get_condition): Likewise. 21455 (noce_get_alt_condition): Update call to canonicalize_condition. 21456 * loop-iv.c (simplify_using_initial_values): Update call to 21457 get_condition. Remove FIXME. 21458 (check_simple_exit): Update call to get_condition. 21459 * loop-unswitch.c (may_unswitch_on): Likewise. 21460 * loop.c (check_dbra_loop): Likewise. 21461 (canonicalize_condition, get_condition): Add an argument to say whether 21462 the condition must still be valid at INSN. 21463 (get_condition_for_loop): Update call to get_condition. Require that 21464 the condition be valid at INSN. 21465 * predict.c (estimate_probability): Update call to get_condition. 21466 Remove unused earliest parameter. 21467 (expected_value_to_br_prob): Update call to canonicalize_condition. 21468 214692004-07-26 Eric Christopher <echristo@redhat.com> 21470 21471 * tree-dfa.c (add_referenced_var): Register initializers of global 21472 variables. 21473 214742004-07-26 Paolo Bonzini <bonzini@gnu.org> 21475 21476 * config/i386/i386.c (function_arg): Always treat 8- 21477 and 16-byte wide vectors the same, even if MMX/SSE 21478 are disabled. 21479 (contains_128bit_aligned_vector_p): Add comment. 21480 214812004-07-26 J"orn Rennecke <joern.rennecke@superh.com> 21482 21483 * ra.h (enum node_type): Rename to: 21484 (enum ra_node_type). 21485 * ra-colorize.c: Likewise. 21486 214872004-07-26 Richard Sandiford <rsandifo@redhat.com> 21488 21489 * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag 21490 after simplifying the jump. 21491 214922004-06-26 Richard Henderson <rth@redhat.com> 21493 21494 * calls.c (combine_pending_stack_adjustment_and_call): Make 21495 preferred_unit_stack_boundary argument unsigned. Make 21496 unadjusted_alignment unsigned. 21497 (expand_call): Make preferred_stack_boundary and 21498 preferred_unit_stack_boundary variables unsigned. 21499 * function.c (assign_stack_local_1): Make alignment unsigned. 21500 * function.h (struct function): Make stack_alignment_needed, 21501 preferred_stack_boundary unsigned. 21502 * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned. 21503 (ix86_compute_frame_layout): Make stack_alignment_needed, 21504 preferred_alignment variables unsigned. 21505 * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned. 21506 215072004-07-26 Tom Tromey <tromey@redhat.com> 21508 21509 * tree.h: Fix typo in comment. 21510 215112004-07-26 Daniel Jacobowitz <dan@debian.org> 21512 21513 PR bootstrap/12804 21514 * ggc-zone.c (struct alloc_chunk): Remove attribute packed. 21515 (MAX_FREE_BIN_SIZE): Increase on 64-bit targets. 21516 (ggc_free): Remove incorrect freeing. 21517 (sweep_pages): Advance PP for large pages. Fix indentation. 21518 215192004-07-26 Richard Sandiford <rsandifo@redhat.com> 21520 21521 PR rtl-optimization/16643 21522 * cfglayout.h (cfg_layout_initialize): Add a flags parameter. 21523 * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg. 21524 * basic-block.h (reorder_basic_blocks): Add a flags parameter. 21525 * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize. 21526 (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize. 21527 * function.c (thread_prologue_and_epilogue_insns): Likewise. 21528 * rtl.h (tracer): Add a flags parameter. 21529 * tracer.c (tracer): Pass it to cfg_layout_initialise. 21530 * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks. 21531 (rest_of_handle_reorder_blocks): Update calls to tracer and 21532 reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate. 21533 (rest_of_handle_tracer): Pass 0 to tracer. 21534 (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize. 21535 215362004-07-25 David Edelsohn <edelsohn@gnu.org> 21537 21538 PR target/16239 21539 * config/rs6000/rs6000.md (movdi_internal64): Further disparage 21540 f->f. 21541 215422004-07-24 Nathan Sidwell <nathan@codesourcery.com> 21543 21544 * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree). 21545 (BINFO_BASE_ACCESS): Adjust. 21546 (BINFO_BASE_ACCESS_APPEND): New. 21547 (struct tree_binfo): Make base_accesses a VEC(tree) pointer. 21548 * dbxout.c (dbxout_type): Adjust binfo access accessing. 21549 * dwarf2out.c (gen_member_die): Likewise. 21550 * tree-dump.c (deque_and_dump): Likewise. 21551 215522004-07-26 Falk Hueffner <falk@debian.org> 21553 21554 * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div 21555 costs. 21556 215572004-07-25 Roger Sayle <roger@eyesopen.com> 21558 21559 * config/i386/i386.c (output_fp_compare): Use ffreep to pop top 21560 value off of the stack if TARGET_USE_FFREEP. 21561 215622004-07-26 Bernardo Innocenti <bernie@develer.com> 21563 21564 * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC (). 21565 * gengtype-yacc.y: Likewise. Replace free() with XDELETE (). 21566 * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer 21567 check on invocation of XRESIZEVEC (). 21568 215692004-07-26 Bernardo Innocenti <bernie@develer.com> 21570 21571 * c-common.c (disable_builtin_function): Rename variable n to 21572 new_disabled_builtin. 21573 * c-decl.c (duplicate_decls): Rename parameter decl to new_decl. 21574 Rename local variable old to old_decl. 21575 * gensupport.c (shift_output_template): Rename parameter old to src. 21576 * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to 21577 old_rtx and newx to new_rtx. 21578 215792004-07-26 Bernardo Innocenti <bernie@develer.com> 21580 21581 * Makefile.in (C_PRAGMA_H): New variable to track dependencies 21582 of c-pragma.h. 21583 * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to 21584 enum cpp_ttype. 21585 * c-lex.c: Likewise. 21586 215872004-07-25 Roger Sayle <roger@eyesopen.com> 21588 21589 * fold-const.c (constant_boolean_node): Make extern. 21590 (make_range): Wrap long lines. 21591 (fold_cond_expr_with_comparison): Remove unnecessary call to 21592 pedantic_non_lvalue. Add missing calls to fold_convert. 21593 (fold_truthop): Add missing calls to fold_convert. 21594 (fold): Likewise. 21595 * tree.h (constant_boolean_node): Add prototype here. 21596 * builtins.c (expand_builtin_strncmp): Add missing calls to 21597 fold_convert. 21598 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): 21599 Call fold_convert and constant_boolean_node to correct types. 21600 * tree-ssa-forwprop.c (substitute_single_use_vars): Add 21601 missing call to fold_convert to correct types. 21602 216032004-07-26 Niall Douglas <s_fsfeurope2@nedprod.com> 21604 Brian Ryner <bryner@brianryner.com> 21605 21606 PR c++/9283 21607 PR c++/15000 21608 * c-common.c (c_common_attribute_table): Allow 21609 handle_visibility_attribute to be called for types. 21610 (handle_visibility_attribute) When given a type, set the visibility 21611 bits on the TYPE_NAME. When given a decl, don't set no_add_attrs 21612 so that we can check later whether the attribute was present. Added 21613 warning if attribute applied to non class type. 21614 * c-decl.c (diagnose_mismatched_decls): Updated rules for merging 21615 decls and checking that they are consistent. 21616 * common.opt: Added -fvisibility. 21617 * c.opt, c-opts.c: Added -fvisibility-inlines-hidden. 21618 * c-pragma.h, c-pragma.c: Added handle_pragma_visibility(). 21619 * flags.h, tree.h: Added assorted support defines for overall patch 21620 * opts.c: Added parsing support for -fvisibility. 21621 * tree.c (build_decl): Set visibility for all decls to be whatever 21622 is in force at that time. 21623 * varasm.c (default_binds_local_p_1): Reworked logic determining 21624 when to make a symbol locally bound. 21625 * doc/invoke.texi: Added documentation for -fvisibility and 21626 -fvisibility-inlines-hidden. 21627 216282004-07-25 Bernardo Innocenti <bernie@develer.com> 21629 21630 * basic-block.h (reorder_block_def): Rename to reorder_block_def_p. 21631 * c-common.c: Add missing casts from void * to other types. 21632 * c-decl.c: Likewise. 21633 * c-format.c: Likewise. 21634 * c-lex.c: Likewise. 21635 * c-pragma.c: Likewise. 21636 * c-typeck.c: Likewise. 21637 * defaults.h: Likewise. 21638 * genconstants.c: Likewise. 21639 * gengtype-lex.l: Likewise. 21640 * genmodes.c: Likewise. 21641 * read-rtl.c: Likewise. 21642 * rtl.c: Likewise. 21643 216442004-07-25 Bernardo Innocenti <bernie@develer.com> 21645 21646 * bitmap.c: Use type-safe memory allocation macros from libiberty. 21647 * c-common.c: Likewise. 21648 * c-decl.c: Likewise. 21649 * c-lang.c: Likewise. 21650 * c-lex.c: Likewise. 21651 * c-opts.c: Likewise. 21652 * c-parse.in: Likewise. 21653 * c-typeck.c: Likewise. 21654 * genconditions.c: Likewise. 21655 * gengtype-lex.l: Likewise. 21656 * gengtype-yacc.y: Likewise. 21657 * gengtype.c: Likewise. 21658 * genmodes.c: Likewise. 21659 * gensupport.c: Likewise. 21660 * read-rtl.c: Likewise. 21661 * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to 21662 htab_find_slot(). 21663 216642004-07-25 Bernardo Innocenti <bernie@develer.com> 21665 21666 * c-decl.c (groktypename, groktypename_in_param_context): Rename 21667 variable typename to type_name. 21668 * c-lex.c (interpret_float): Likewise. 21669 216702004-07-25 Roger Sayle <roger@eyesopen.com> 21671 21672 * convert.c (convert_to_real, convert_to_integer, 21673 convert_to_complex): Replace calls to build with calls to buildN. 21674 * coverage.c (tree_coverage_counter_ref): Likewise. 21675 * dojump.c (do_jump): Likewise. 21676 * dwarf2out.c (loc_descriptor_from_tree): Likewise. 21677 * emit-rtl.c (component_ref_for_mem_expr, 21678 set_mem_attributes_minus_bitpos): Likewise. 21679 * explow.c (update_nonlocal_goto_save_area): Likewise. 21680 * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p, 21681 expand_mult_add): Likewise. 21682 * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall, 21683 store_constructor, get_inner_reference, expand_expr_real_1, 21684 try_casesi, try_tablejump): Likewise. 21685 * function.c (expand_function_start): Likewise. 21686 * stmt.c (emit_case_bit_tests, expand_end_case_type, 21687 node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise. 21688 * stor-layout.c (place_union_field, layout_type): Likewise. 21689 * tree.c (substitute_in_expr, tree_fold_gcd): Likewise. 21690 * varasm.c (copy_constant): Likewise. 21691 216922004-07-25 Bernardo Innocenti <bernie@develer.com> 21693 21694 * c-common.c: Rename all identifiers named `new'. 21695 * c-decl.c: Likewise. 21696 * gensupport.c: Likewise. 21697 * simplify-rtx.c: Likewise. 21698 * c-common.c (disable_builtin_function): Replace a call to xmalloc() 21699 with XNEW(). 21700 * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc() 21701 with XNEWVEC(). 21702 217032004-07-25 Joseph S. Myers <jsm@polyomino.org.uk> 21704 21705 PR c/15360 21706 * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized 21707 declarations until after calling pushdecl. 21708 (grokdeclarator): Set DECL_EXTERNAL for variables based on use of 21709 "extern" and not on whether the declaration is initialized. 21710 217112004-07-25 Daniel Jacobowitz <dan@debian.org> 21712 21713 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) 21714 (sparc-*-solaris2*): Include sol2.o and sol2-protos.h. 21715 * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h", 21716 "cpplib.h", "c-pragma.h", "c-common.h". 21717 (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini) 21718 (solaris_register_pragmas): New functions. 21719 * config/sol2-protos.h: New file. 21720 * config/sol2.c: New file. 21721 * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE) 21722 (REGISTER_TARGET_PRAGMAS): New macros. 21723 (solaris_pending_aligns, solaris_pending_inits) 21724 (solaris_pending_finis): New variables. 21725 * config/t-sol2 (sol2-c.o): Update dependencies. 21726 (sol2.o): New rule. 21727 * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of 21728 SUBTARGET_INSERT_ATTRIBUTES. 21729 (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE. 21730 * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) 21731 (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. 21732 * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. 21733 * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. 21734 * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) 21735 (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. 21736 * config/sparc/sparc.c (sparc_attribute_table): New. 21737 (TARGET_INSERT_ATTRIBUTES): Define in terms of 21738 SUBTARGET_INSERT_ATTRIBUTES. 21739 (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE 21740 is defined. 21741 * doc/extend.texi (Solaris Pragmas): New section. 21742 217432004-07-25 Bernardo Innocenti <bernie@develer.com> 21744 21745 * c-common.c: Rename all identifiers named `class' to `cl'. 21746 * c-common.h: Likewise. 21747 * c-parse.in: Likewise. 21748 * c-typeck.c: Likewise. 21749 * genmodes.c: Likewise. 21750 * real.c: Likewise. 21751 * real.h: Likewise. 21752 * recog.c: Likewise. 21753 * recog.h: Likewise. 21754 * regrename.c: Likewise. 21755 * tree.h: Likewise. 21756 * c-common.c (builtin_function_2): Change type of 5th parameter from 21757 int to enum built_in_function. Change type of 8th parameter from int 21758 to bool. 21759 * c-decl (builtin_function): Replace call to ggc_alloc_cleared () 21760 with GGC_CNEW(). 21761 * c-typeck.c (convert_arguments): Change type of formal_prec from 21762 int to unsigned int. 21763 * genmodes.c (blank_mode): Make a few negative constants unsigned. 21764 (complete_all_modes, calc_wider_mode, emit_insn_modes_h, 21765 emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size, 21766 emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner, 21767 emit_mode_base_align, emit_class_narrowest_mode): Pass an integer 21768 iterator to for_all_modes () instead of an enum because enums can't 21769 be incremented in C++. 21770 21771 217722004-07-25 Daniel Jacobowitz <dan@debian.org> 21773 21774 * regmove.c (optimize_reg_copy_1): Don't try to replace call-used 21775 hard registers. 21776 217772004-07-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 21778 21779 * tree-ssa-operands.c (get_stmt_operands, get_expr_operands): 21780 Handle ARRAY_RANGE_REF like ARRAY_REF. 21781 217822004-07-25 Joseph S. Myers <jsm@polyomino.org.uk> 21783 21784 * c-typeck.c (digest_init): Don't allow arrays of signed or 21785 unsigned variants of wchar_t to be initialized by wide string 21786 constants. Do allow arrays of enumerated types compatible with 21787 wchar_t to be initialized by wide string constants. Refine tests 21788 distinguishing wide and narrow strings and arrays. Give specific 21789 error for arrays of other integer types initialized by string 21790 constants. 21791 (output_init_element, process_init_element): Check for 21792 INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when 21793 initializing with string constants. 21794 217952004-07-25 Richard Henderson <rth@redhat.com> 21796 21797 * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P 21798 on the RESULT_DECL. 21799 * cgraphunit.c (cgraph_build_static_cdtor): Likewise. 21800 * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and 21801 DECL_IGNORED_P to new decl. 21802 218032004-07-24 Zack Weinberg <zack@codesourcery.com> 21804 21805 * config/ia64/ia64.c (general_xfmode_operand) 21806 (destination_xfmode_operand): Delete. 21807 * config/ia64/ia64.h (PREDICATE_CODES): Remove them. 21808 * config/ia64/ia64.md (*movxf_internal): Use general_operand 21809 and destination_operand. 21810 218112004-07-24 Alexander Kabaev <kan@freebsd.org> 21812 21813 * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing. 21814 (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS. 21815 218162004-07-24 Alexander Kabaev <kan@freebsd.org> 21817 Zack Weinberg <zack@codesourcery.com 21818 21819 PR 16684 21820 * c-decl.c (diagnose_mismatched_decls): Don't issue a 21821 redundant-declaration warning the first time a builtin is 21822 declared explicitly. 21823 218242004-07-25 Bernardo Innocenti <bernie@develer.com> 21825 21826 * tree.h (staticp): Change return type to bool. 21827 218282004-07-25 Bernardo Innocenti <bernie@develer.com> 21829 21830 * c-common.c (c_staticp): Last episode of the staticp saga. 21831 218322004-07-25 Bernardo Innocenti <bernie@develer.com> 21833 21834 * c-common.h (c_staticp): Change return type from int to bool. 21835 * tree.c (staticp): Likewise. 21836 * langhooks.h (staticp): Likewise. 21837 218382004-07-25 Bernardo Innocenti <bernie@develer.com> 21839 21840 * langhooks-def.h (lhd_staticp): Change return type from int to 21841 bool in prototype to match definition. 21842 218432004-07-25 Bernardo Innocenti <bernie@develer.com> 21844 21845 * system.h (bool, true, false): Don't redefine as preprocessor macros 21846 in C++. 21847 218482004-07-24 Roger Sayle <roger@eyesopen.com> 21849 21850 * expmed.c (init_expmed): A signed modulus by a power of two is 21851 considered cheap if its less than or equal to four instructions. 21852 218532004-07-25 Bernardo Innocenti <bernie@develer.com> 21854 21855 * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, 21856 GGC_CNEWVAR): New macros. 21857 218582004-07-25 Bernardo Innocenti <bernie@develer.com> 21859 21860 * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter 21861 lists. 21862 * c-decl.c: Likewise. 21863 * c-format.c: Likewise. 21864 * c-lex.c: Likewise. 21865 * c-opts.c: Likewise. 21866 * c-pragma.c: Likewise. 21867 * c-typeck.c: Likewise. 21868 * gencheck.c: Likewise. 21869 * genconditions.c: Likewise. 21870 * genconfig.c: Likewise. 21871 * genflags.c: Likewise. 21872 * gengtype.c: Likewise. 21873 * gensupport.c: Likewise. 21874 * ggc-none.c: Likewise. 21875 * langhooks.c: Likewise. 21876 * statistics.h: Likewise. 21877 * stub-objc.c: Likewise. 21878 * java/decl.c: Likewise. 21879 218802004-07-24 Roman Zippel <zippel@linux-m68k.org> 21881 21882 * config/m68k/m68k.c (output_scc_di): Fix coding style. 21883 (symbolic_operand): Fix prototype. 21884 * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand. 21885 * config/m68k/m68k.md: Add constants for registers a0 and sp and 21886 use them, change from the "{...}" syntax to the simpler {...} 21887 syntax. 21888 (*cfv4_extendqisi2): Fix destination predicate. 21889 * config/m68k/m68k-protos.h: Remove various declarations also 21890 generated via PREDICATE_CODES. 21891 218922004-07-23 Mike Stump <mrs@apple.com> 21893 21894 * c-typeck.c (convert_for_assignment): Tightened up pointer 21895 converstions that differ in signedness. 21896 218972004-07-23 Zack Weinberg <zack@codesourcery.com> 21898 21899 * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED. 21900 219012004-07-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 21902 21903 * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'. 21904 * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New. 21905 21906 * gimplify.c (gimplify_compound_lval): Check for no handled 21907 operations, rather than checking for explicit list of nodes. 21908 (is_gimple_addr_expr_arg_or_indirect): New function. 21909 (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove 21910 redundant setting of TREE_INVARIANT. 21911 (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval. 21912 * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p. 21913 219142004-07-23 Diego Novillo <dnovillo@redhat.com> 21915 21916 PR tree-optimization/16688 21917 PR tree-optimization/16689 21918 * tree-ssa-alias.c (setup_pointers_and_addressables): Remove 21919 unnecessary initialization of 'tag'. 21920 (get_tmt_for): Check that the new type tag has the same alias 21921 set as the pointed-to type. 21922 (group_aliases): Only regular variables need to be removed 21923 from the alias set of a name tag. 21924 * tree-ssa-copy.c (may_propagate_copy): Do not allow copy 21925 propagation if the two types are not compatible. 21926 (merge_alias_info): Rename from replace_ssa_names_ann. 21927 Add more checking. 21928 (replace_exp_1): If both arguments are SSA_NAMEs, check that 21929 the propagation can be done. 21930 Only call merge_alias_info on pointers. 21931 (propagate_value): Likewise. 21932 * tree-ssa-copyrename.c: Include langhooks.h. 21933 (copy_rename_partition_coalesce): Call replace_ssa_name_symbol 21934 to do the merging. 21935 Do not coalesce variables with incompatible types. 21936 (rename_ssa_copies): Call replace_ssa_name_symbol. 21937 * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has 21938 the same type as the underlying _DECL. 21939 * tree-ssanames.c (replace_ssa_name_symbol): New function. 21940 * tree.h (replace_ssa_name_symbol): Declare. 21941 219422004-07-23 Richard Henderson <rth@redhat.com> 21943 21944 PR c++/16277 21945 * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval; 21946 unshare it properly. 21947 (gimplify_modify_expr_rhs): Push assignment from a conditional into 21948 the conditional for all non-register types. 21949 219502004-07-23 Richard Henderson <rth@redhat.com> 21951 21952 * expr.c (expand_expr_real_1): Don't handle non-local variables. 21953 * expr.h (fix_lexical_addr): Remove. 21954 * function.c (NEED_SEPARATE_AP): Remove. 21955 (fix_lexical_addr): Remove. 21956 * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC, 21957 not null decl_function_context. 21958 (create_alias_vars): Likewise. 21959 * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels. 21960 (simple_goto_p): Likewise. 21961 * tree-dfa.c (add_referenced_var): Don't check for non-local variables. 21962 * tree-ssa-ccp.c (get_default_value): Likewise. 21963 * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. 21964 * tree.c (needs_to_live_in_memory): Likewise. 21965 * tree-flow-inline.h (may_be_aliased): Move... 21966 * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for 21967 when TREE_STATIC variables may be addressable. 21968 219692004-07-24 Jakub Jelinek <jakub@redhat.com> 21970 21971 * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp. 21972 219732004-07-23 Zack Weinberg <zack@codesourcery.com> 21974 21975 * print-rtl.c (print_rtx <case 'b'>): Don't attempt to print 21976 bitmap contents if GENERATOR_FILE is defined. 21977 * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o. 21978 ($(BUILD_PREFIX_1)bitmap.o): Delete rule. 21979 219802004-07-23 Joseph S. Myers <jsm@polyomino.org.uk> 21981 21982 * c-decl.c (start_function): Form composite type of function types 21983 rather than copying type from previous prototype declaration. 21984 219852004-07-23 Janis Johnson <janis187@us.ibm.com> 21986 21987 * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove 21988 the const qualifier for the second argument in the C++ functions. 21989 21990 * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use 21991 specific pointer types. 21992 21993 * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm, 21994 vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used 21995 for vector bool and/or vector pixel, add C++ and C missing support. 21996 (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh, 21997 vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh, 21998 vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum, 21999 vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws, 22000 vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add 22001 missing C++ and C support for vector bool and/or vector pixel. 22002 (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw, 22003 vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw, 22004 vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw, 22005 vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub, 22006 vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix 22007 C++ and C types used for vector bool and/or vector pixel. 22008 (vec_st, vec_stl): Add C++ support for vector pixel. 22009 (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool. 22010 (vec_all_ne): Add C++ support for vector pixel. 22011 22012 * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name. 22013 (vec_vmulesb): Add missing C++ function. 22014 (vec_perm): Fix type of third argument in C++ function. 22015 (vec_vsum4shs): Fix C++ function name. 22016 (vec_any_ge): Remove C++ functions for unsupported arg combinations. 22017 (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the 22018 argument passed to the error handler in C macro. 22019 (vec_nmsub): Remove extra parens around argument names in C macro. 22020 (vec_packpx): Add missing parens in C macro. 22021 220222004-07-22 Paolo Bonzini <bonzini@gnu.org> 22023 22024 * machmode.def: Remove vector modes. 22025 * config/alpha/alpha-modes.def: Add supported vector modes. 22026 * config/arm/arm-modes.def: Likewise. 22027 * config/frv/frv-modes.def: Likewise. 22028 * config/i386/i386-modes.def: Likewise. 22029 * config/rs6000/rs6000-modes.def: Likewise. 22030 * config/sh/sh-modes.def: Likewise. 22031 220322004-07-23 Matthias Klose <doko@debian.org> 22033 22034 * intl.c (gcc_init_libintl): Use PACKAGE for the text domain. 22035 * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE. 22036 * config.h: Regenerate. 22037 * configure: Likewise. 22038 220392004-07-22 Mark Mitchell <mark@codesourcery.com> 22040 22041 * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on 22042 generated SYMBOL_REFs for labels. 22043 * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr): 22044 Change prototype. 22045 (machopic_stub_name): Remove. 22046 (machopic_indirection_name): New function. 22047 (machopic_mcount_stub_name): Likewise. 22048 (machopic_classify_name): Remove. 22049 (machopic_function_base_sym): New function. 22050 (machpoic_classify_symbol): Likewise. 22051 (machopic_classify_ident): Remove. 22052 (machopic_define_ident): Likewise. 22053 (machopic_define_name): Likewise. 22054 (machopic_name_defined_p): Likewise. 22055 (machopic_ident_defined_p): Likewise. 22056 (darwin_strip_name_encoding): Likewise. 22057 (machopic_define_symbol): New function. 22058 * config/darwin.c (hashtab.h): Include. 22059 (machopic_defined_list): Remove. 22060 (machopic_classify_ident): Likewise. 22061 (machopic_classify_name): Likewise. 22062 (machopic_ident_defined_p): Likewise. 22063 (machopic_define_ident): Likewise. 22064 (machopic_define_name): Likewise. 22065 (machopic_symbol_defined_p): New function. 22066 (machopic_classify_symbol): Likewise. 22067 (machopic_data_defined_p): Use machopic_classify_symbol. 22068 (machopic_define_symbol): New function. 22069 (machopic_function_base_sym): New function. 22070 (machopic_non_lazy_pointers): Remove. 22071 (machopic_non_lazy_ptr_name): Likewise. 22072 (machopic_stubs): Likewise. 22073 (machopic_stub_name): Likewise. 22074 (NON_LAZY_POINTER_SUFFIX): New macro. 22075 (STUB_SUFFIX): Likewise. 22076 (machopic_indirection): New structure. 22077 (machopic_indirections): New variable. 22078 (machopic_indirection_hash): New function. 22079 (machopic_indirection_eq): Likewise. 22080 (machopic_indirection_name): Likewise. 22081 (machopic_mcount_stub_name): New function. 22082 (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use 22083 hash table. 22084 (machopic_indirect_data_reference): Rework to use new functions. 22085 (machopic_indirect_call_target): Likewise. 22086 (machopic_legitimize_pic_address): Likewise. 22087 (machopic_output_indirection): New function. 22088 (machopic_finish): Use it. 22089 (machopic_operand_p): Rework to use new functions. 22090 (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS. 22091 (darwin_strip_name_encoding): Remove. 22092 (update_non_lazy_ptrs): Remove. 22093 (update_stubs): Likewise. 22094 (darwin_non_lazy_pcrel): Use new functions. 22095 * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise. 22096 (ASM_OUTPUT_LABELREF): Likewise. 22097 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. 22098 (MACHO_SYMBOL_FLAG_VARIABLE): New macro. 22099 (MACHO_SYMBOL_FLAG_DEFINED): Likewise. 22100 (TARGET_STRIP_NAME_ENCODING): Do not use 22101 darwin_strip_name_encoding. 22102 (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use 22103 darwin_strip_name_encoding. 22104 * config/i386/darwin.h (FUNCTION_PROFILER): Use 22105 machopic_mcount_stub_name. 22106 * config/i386/i386.c (x86_output_mi_thunk): Use 22107 machopic_indirection_name, not machopic_stub_name. 22108 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use 22109 machopic_function_base_sym. 22110 (print_operand): Use machopic_classify_symbol. 22111 (rs6000_emit_prologue): Use machopic_function_base_sym. 22112 (output_profile_hook): Do not use machopic_stub_name. 22113 (macho_branch_isalnds): Do not use darwin_strip_name_encoding. 22114 221152004-07-22 Joseph S. Myers <jsm@polyomino.org.uk> 22116 22117 PR c/7284 22118 * fold-const.c (extract_muldiv_1): Do not treat signed left shift 22119 as multiplication. 22120 221212004-07-22 Joseph S. Myers <jsm@polyomino.org.uk> 22122 22123 * doc/implement-c.texi: New file. 22124 * doc/extend.texi (C Implementation): Move to there. 22125 * doc/gcc.texi: Include implement-c.texi. 22126 * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi. 22127 221282004-07-22 Jason Merrill <jason@redhat.com> 22129 22130 * integrate.c (copy_decl_for_inlining): Remove invisible reference 22131 handling. 22132 * tree-inline.c (setup_one_parameter): Likewise. 22133 221342004-07-22 Brian Booth <bbooth@redhat.com> 22135 22136 * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL. 22137 (substitute_and_fold): Propigate into VUSE operands when possible. 22138 (visit_phi_node): Handle UNKNOWN_VAL latticevalue. 22139 (cp_lattice_meet): Handle merging of latticevalues when 22140 UNKNOWN_VAL is present. 22141 (visit_stmt): Visit assignments with V_MUST_DEFs. 22142 (visit_assignment): Gather ccp information for V_MUST_DEF operands. 22143 (ccp_fold): Deal with RHS' that are constant and virtual. 22144 (evaluate_stmt): Handle UNKNOWN_VAL likely values. 22145 (dump_lattice_value): Dump UNKNOWN_VAL latticevalues. 22146 (initialize): Mark statements with V_MUST_DEFs as VARYING only if the 22147 V_MUST_DEF operand is VARYING. Fix comment and include VOPS when 22148 computing immediate uses. 22149 (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state 22150 transition. 22151 (replace_vuse_in): New function. 22152 (likely_value): Add check of vuse operands. 22153 (get_default_value): Set the default value of virtually defined 22154 variables to UKNOWN_VAL instead of VARYING. 22155 221562004-07-22 Richard Henderson <rth@redhat.com> 22157 22158 * expr.c (emit_push_insn): Don't use set_mem_attributes. 22159 221602004-07-22 Richard Henderson <rth@redhat.com> 22161 22162 * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used 22163 variables due to conditional compilation. 22164 221652004-07-22 Diego Novillo <dnovillo@redhat.com> 22166 22167 * tree-into-ssa.c (set_livein_block): Fix typo in comment. 22168 (rewrite_ssa_into_ssa): Start iterating over SSA names at 1. 22169 Release SSA names that have been re-renamed. 22170 * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the 22171 variable. 22172 * tree-ssa-alias.c (init_alias_info): If aliases have been 22173 computed before, clear existing alias information. 22174 (create_name_tags): Do no fixup PT_ANYTHING pointers. 22175 If the new name tag for a pointer is different than the one it 22176 had before, mark the old tag for renaming. 22177 (replace_may_alias): New function. 22178 (group_aliases): Call it. 22179 (setup_pointers_and_addressables): Always call get_tmt_for. 22180 (maybe_create_global_var): Don't create .GLOBAL_VAR more than 22181 once. 22182 (set_pt_anything): New local function. 22183 (set_pt_malloc): New local function. 22184 (merge_pointed_to_info): Don't merge pointed-to variables from 22185 the original pointer if the destination is pointing to an 22186 unknown location. 22187 (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc. 22188 (add_pointed_to_var): Do not add a variable to the points-to 22189 set if the pointer is already pointing to anywhere. 22190 (collect_points_to_info_r): If the defining statement is a PHI 22191 node, only merge pointed-to information if the argument has 22192 already been visited. 22193 (get_tmt_for): Only create a new tag if the pointer didn't 22194 have one already. 22195 (dump_alias_info): Emit more information. 22196 (dump_points_to_info_for): Likewise. 22197 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't 22198 try to get the annotation of an SSA_NAME. 22199 * tree-ssa-operands.c (add_stmt_operand): Only check for empty 22200 alias sets when checking is enabled. 22201 * tree-ssa-pre.c (need_eh_cleanup): New local variable. 22202 (eliminate): Mark basic blocks that will need 22203 EH information cleaned up. 22204 (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one 22205 predecessor. 22206 Initialize need_eh_cleanup. 22207 (fini_pre): Call tree_purge_all_dead_eh_edges and 22208 cleanup_tree_cfg if needed. 22209 Free need_eh_cleanup. 22210 * tree-ssa.c (verify_ssa_name): New function. 22211 (verify_def): Call it. 22212 Re-arrange to avoid printing too many error messages. 22213 (verify_use): Likewise. 22214 (verify_phi_args): Likewise. 22215 (verify_flow_insensitive_alias_info): New function. 22216 (verify_flow_sensitive_alias_info): New function. 22217 (verify_alias_info): New function. 22218 (verify_ssa): Call verify_alias_info. 22219 Clear TREE_VISITED on all the SSA_NAMEs before scanning the 22220 program. 22221 Re-arrange to avoid printing too many error messages. 22222 * tree-ssanames.c (make_ssa_name): Clear 22223 SSA_NAME_IN_FREE_LIST. 22224 (release_ssa_name): Never release a default definition. 22225 (release_defs): New function. 22226 * tree.h: Declare it. 22227 * tree-ssa-dce.c (remove_dead_stmt): Call it. 22228 222292004-07-22 Diego Novillo <dnovillo@redhat.com> 22230 22231 * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS. 22232 If true, do a depth-first search. Do a breadht-first search, 22233 otherwise. 22234 (walk_use_def_chains): Add new argument IS_DFS. 22235 Update all users. 22236 * tree-flow.h (walk_use_def_chains): Update prototype. 22237 222382004-07-22 Hans-Peter Nilsson <hp@axis.com> 22239 22240 * config/cris/cris.md: Tweak formatting. 22241 (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi) 22242 (mover2side, moverside, movemside, movei, op3, andu): Replace 22243 live define_peephole:s with define_peephole2 near-equivalents. 22244 Delete the rest. 22245 ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all 22246 word-size modes. 22247 ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"): 22248 Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and 22249 "*mov_sidesi_mem" respectively. 22250 222512004-07-22 Paolo Bonzini <bonzini@gnu.org> 22252 22253 * tree-cfg.c (gimplify_val): Move from tree-complex.c. 22254 (gimplify_build1): Move from tree-complex.c do_unop. 22255 (gimplify_build2): Move from tree-complex.c do_binop. 22256 (gimplify_build3): New. 22257 * tree-complex.c (gimplify_val, do_unop, do_binop): Remove. 22258 Adjust throughout to call the functions above. 22259 * tree-flow.h: Declare the functions above. 22260 * tree-nested.c (gimplify_val): Rename to... 22261 (tsi_gimplify_val): ... this. 22262 22263 * Makefile.in (tree_complex.o): Update dependencies. 22264 (stor-layout.o): Depend on regs.h. 22265 * c-common.c (handle_vector_size_attribute): Update for 22266 vector types without corresponding vector modes. 22267 * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if 22268 a corresponding vector mode is not available. 22269 * print-tree.c (print_node): Print nunits for vector types 22270 * regclass.c (have_regs_of_mode): New. 22271 (init_reg_sets_1): Initialize it and use it instead 22272 of allocatable_regs_of_mode. 22273 * regs.h (have_regs_of_mode): Declare it. 22274 * stor-layout.c (layout_type): Pick a mode for vector types. 22275 * tree-complex.c (build_word_mode_vector_type, tree_vec_extract, 22276 build_replicated_const, do_unop, do_binop, do_plus_minus, 22277 do_negate, expand_vector_piecewise, expand_vector_parallel, 22278 expand_vector_addition, expand_vector_operations_1, 22279 expand_vector_operations, tree_lower_operations, 22280 pass_lower_vector_ssa, pass_pre_expand): New. 22281 (expand_complex_operations, pass_lower_complex): Remove. 22282 * tree-optimize.c (init_tree_optimization_passes): Adjust 22283 pass ordering for changes in tree-complex.c. 22284 * tree-pass.h: Declare new passes. 22285 * tree.c (finish_vector_type): Remove. 22286 (make_vector_type): New. 22287 (build_vector_type_for_mode, build_vector_type): Rewritten. 22288 * tree.def (VECTOR_TYPE): Document where the number of 22289 subparts is stored. 22290 * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field. 22291 (make_vector): Remove declaration. 22292 222932004-07-21 Richard Henderson <rth@redhat.com> 22294 22295 * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE, 22296 TREE_THIS_VOLATILE, may_aliases, or optimization level. 22297 (remove_useless_vars): Dump debugging info. 22298 (expand_used_vars): Move ... 22299 * cfgexpand.c (expand_used_vars): ... here. Make static. 22300 * tree-flow-inline.h (set_is_used): New. 22301 (set_default_def): Use get_var_ann. 22302 * tree-flow.h: Update decls. 22303 * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New. 22304 (create_ssa_var_map): Use it. 22305 * tree-ssa.c (set_is_used): Remove. 22306 223072004-07-22 Ben Elliston <bje@au.ibm.com> 22308 22309 * gdbinit.in: Set a breakpoint on internal_error. 22310 223112004-07-21 Richard Henderson <rth@redhat.com> 22312 22313 * cfgexpand.c (expand_gimple_tailcall): Fix case where we need 22314 to create a new basic block. 22315 223162004-07-22 Joseph S. Myers <jsm@polyomino.org.uk> 22317 22318 PR c/15052 22319 * c-decl.c (grokdeclarator): Only pedwarn for qualified void 22320 return type on function definitions. Move other warnings for 22321 qualified return type to -Wreturn-type. Do not condition any such 22322 warnings on -pedantic. Update comments. 22323 (start_function): Only copy function type from previous prototype 22324 declaration if return types are compatible. 22325 * c-typeck.c (function_types_compatible_p): Don't condition 22326 warning for incompatibility of volatile qualifiers on the return 22327 type on -pedantic. Update comment. 22328 * doc/invoke.texi (-Wreturn-type, -Wextra): Update. 22329 223302004-07-22 Joseph S. Myers <jsm@polyomino.org.uk> 22331 22332 * c-typeck.c (set_init_index): Require designator to be of integer 22333 type. 22334 223352004-07-22 Joseph S. Myers <jsm@polyomino.org.uk> 22336 22337 PR c/11250 22338 * c-parse.in (init): Change to exprtype. 22339 (primary): Set original_code for STRING to STRING_CST. 22340 Call maybe_warn_string_init for compound literals. 22341 (initdcl, notype_initdcl): Call maybe_warn_string_init. 22342 (initval): Update. 22343 * c-tree.h (maybe_warn_string_init): New. 22344 (pop_init_level, process_init_element): Use struct c_expr. 22345 (struct c_expr): Update comment. 22346 * c-typeck.c (maybe_warn_string_init): New function. 22347 (digest_init): Call it. Additional parameter strict_string. All 22348 callers changed. 22349 (output_init_element): Likewise. 22350 (struct constructor_stack): Use struct c_expr for 22351 replacement_value. 22352 (really_start_incremental_init, push_init_level): Update. 22353 (pop_init_level): Update. Return struct c_expr. 22354 (process_init_level): Update. Take struct c_expr argument. 22355 223562004-07-21 David S. Miller <davem@nuts.davemloft.net> 22357 22358 * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous 22359 commit. 22360 223612004-07-21 Eric Christopher <echristo@redhat.com> 22362 22363 * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code 22364 removal. 22365 * c-decl.c (pop_scope): Ditto. 22366 * calls.c (expand_call): Remove call to current_nesting_level, 22367 update comment accordingly. Remove calls to expand_start_target_temps 22368 and expand_end_target_temps. 22369 * cfgexpand.c (construct_init_block): Remove call to 22370 expand_start_bindings_and_block. 22371 (construct_exit_block): Remove call to expand_end_bindings. 22372 * expr.c (safe_from_p): Remove BIND_EXPR handling. 22373 (expand_expr_real_1): Ditto. Fix formatting. 22374 (expand_vars): Delete. 22375 * stmt.c (POPSTACK): Remove block_stack. 22376 (stmt_status): Remove x_block_stack. 22377 (block_stack): Delete. 22378 (expand_start_bindings_and_block): Ditto. 22379 (expand_start_target_temps): Ditto. 22380 (expand_end_target_temps): Ditto. 22381 (current_nesting_level): Ditto. 22382 (warn_about_unused_variables): Ditto. 22383 (expand_end_bindings): Ditto. 22384 * tree.h: Remove declarations for above. 22385 223862004-07-21 Steven Bosscher <stevenb@suse.de> 22387 22388 * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION. 22389 * rtl.c (note_insn_name): Likewise. 22390 * print-rtl.c (print_rtx): Don't print it. 22391 * cfgrtl.h (can_delete_note_p): Don't handle it. 22392 (rtl_delete_block): Likewise. 22393 * passes.c (rest_of_handle_guess_branch_prob): Remove. 22394 (rest_of_compilation): Don't call it. 22395 * predict.c (process_note_predictions, process_note_prediction, 22396 note_prediction_to_br_prob): Remove. 22397 * basic-block.c (note_prediction_to_br_prob): Remove prototype. 22398 * stmt.c (return_prediction): Remove. 22399 (expand_value_return): Don't call it. Don't add prediction 22400 notes for return statements. 22401 224022004-07-21 Josef Zlomek <zlomekj@suse.cz> 22403 22404 * var-tracking.c (vt_find_locations): Set the in_pending bitmap at 22405 once. 22406 224072004-07-21 Paolo Bonzini <bonzini@gnu.org> 22408 22409 * c-common.c (vector_types_convertible_p): Use vector types' 22410 TYPE_SIZE and TREE_TYPE instead of their mode. 22411 * convert.c (convert_to_integer): Likewise. 22412 (convert_to_vector): Likewise. 22413 * fold-const.c (fold_convert): Likewise. 22414 * varasm.c (output_constant): Likewise. 22415 * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE. 22416 Allow a VECTOR_TYPE initializer to be made of several vectors. 22417 For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling 22418 of cleared and need_to_clear, and use fold_convert. 22419 * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for 22420 integer vectors. 22421 224222004-07-20 Richard Henderson <rth@redhat.com> 22423 22424 * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split, 22425 (expand_gimple_basic_block): out from here. Renamed from expand_block. 22426 224272004-07-20 David S. Miller <davem@nuts.davemloft.net> 22428 22429 * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit 22430 enormous cost if not TARGET_HARD_MUL. 22431 224322004-07-20 Andrew Pinski <apinski@apple.com> 22433 22434 PR target/16557 22435 * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ... 22436 (ASM_SPEC): here. 22437 224382004-07-21 Paul brook <paul@codesourcery.com> 22439 22440 * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT. 22441 224422004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 22443 22444 * fold-const.c (operand_equal_p): Temporarily support NULL args. 22445 (operand_equal_p, case ARRAY_REF): Compare args 2 and 3. 22446 (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2. 22447 224482004-07-20 Zack Weinberg <zack@codesourcery.com> 22449 22450 * rtl.h (plus_constant): Delete. 22451 (plus_constant_wide): Rename to plus_constant. 22452 (plus_constant_for_output_wide): Delete vestigial prototype. 22453 (GEN_INT): Remove unnecessary cast. 22454 * tree.h (build_int_2, size_int_type): Delete. 22455 (build_int_2_wide): Rename to build_int_2. 22456 (size_int_wide): Rename to size_int_kind. 22457 (size_int_type_wide): Rename to size_int_type. 22458 (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind. 22459 Remove unnecessary cast. 22460 * tree.c (build_int_2_wide): Rename build_int_2; update comment. 22461 * explow.c (plus_constant_wide): Rename plus_constant; update comment. 22462 * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type. 22463 (size_int_type_wide): Rename size_int_type. 22464 (int_const_binop): Use size_int_type. 22465 * c-lex.c (interpret_integer): Use build_int_2. 22466 * final.c (split_double): Remove unnecessary casts. 22467 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2. 22468 224692004-07-20 Richard Henderson <rth@redhat.com> 22470 22471 * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c. 22472 (gimplify_compound_lval): Use is_gimple_tmp_reg. 22473 * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c. 22474 (is_gimple_tmp_reg): New. 22475 * tree-gimple.h (is_gimple_tmp_reg): Declare. 22476 224772004-07-20 Richard Henderson <rth@redhat.com> 22478 22479 * tree-pretty-print.c (dump_generic_node): Dump 22480 CALL_EXPR_HAS_RETURN_SLOT_ADDR. 22481 224822004-07-20 Frank Ch. Eigler <fche@redhat.com> 22483 22484 * tree-mudflap.c (mf_set_options_fndecl): New tree. 22485 (mudflap_init): Set it. 22486 (mudflap_register_call): Remove __mf_init call. 22487 (mudflap_finish_file): Emit call to __mf_init here. Emit a call to 22488 to pass "-ignore-reads" option to libmudflap if needed. 22489 224902004-07-20 John David Anglin <dava.anglin@nrc-cnrc.gc.ca> 22491 22492 PR c++/14607 22493 * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define. 22494 (MAKE_DECL_ONE_ONLY): Undefine. 22495 * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section, 22496 readonly_data, one_only_data_section, forget_section): New prototypes. 22497 * pa.c (pa_init_machine_status, som_text_section_asm_op): New 22498 functions. 22499 (pa_select_section): Add one-only (COMDAT) support. 22500 * pa.h (struct machine_function): Define. 22501 * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete. 22502 (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op. 22503 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP, 22504 ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP, 22505 ONE_ONLY_DATA_SECTION_ASM_OP): New defines. 22506 (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data. 22507 (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros. 22508 (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION, 22509 ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines 22510 for EXTRA_SECTION_FUNCTIONS. 22511 * doc/install.texi: Update binutils requirements. 22512 225132004-07-20 Nathan Sidwell <nathan@codesourcery.com> 22514 22515 * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate, 22516 VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert, 22517 VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not 22518 size_t. 22519 (struct VEC): Use unsigned for num and alloc. 22520 * vec.c (struct vec_prefix): Likewise. 22521 (vec_o_reserve): Adjust. 22522 22523 * dbxout.c (dbxout_type): Fix printf format. 22524 22525 * tree.h (binfo_member): Remove. 22526 * tree.c (binfo_member): Remove. 22527 225282004-07-20 Nathan Sidwell <nathan@codesourcery.com> 22529 22530 * tree.h: Include vec.h 22531 (DEF_VEC_P(tree)): New type. 22532 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust. 22533 (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New. 22534 (BINFO_LANG_SLOT): Remove. 22535 (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New. 22536 (struct tree_binfo): Turn base_binfos into a trailing 22537 VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields. 22538 (binfo_lang_slots): Remove. 22539 * tree.c (binfo_lang_slots): Remove. 22540 (make_tree_binfo_stat): Take a base binfo count, not a 22541 lang slot count. Adjust. 22542 * Makefile.in (TREE_H): Add vec.h 22543 * alias.c (record_component_aliases): Adjust BINFO access. 22544 * dbxout.c (dbxout_type): Likewise. 22545 * dwarf2out.c (gen_member_die): Likewise. 22546 * sdbout.c (sdbout_one_type): Likewise. 22547 * tree-dump.c (deque_and_dump): Likewise. 22548 * config/i386/i386.c (classify_argument, 22549 contains_128bit_aligned_vector_p): Likewise. 22550 * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise. 22551 * doc/c-tree.texi (Classes): Update BINFO documentation. 22552 225532004-07-20 Steven Bosscher <stevenb@suse.de> 22554 22555 * c-common.h (check_case_value): Remove prototype. 22556 (c_add_case_label): Adjust prototype. 22557 * c-common.c (check_case_value): Make static. 22558 (check_case_bounds): New function. 22559 (c_add_case_label): Use it. Take new argument orig_type. 22560 * c-typeck.c (struct c_switch): New orig_type field. 22561 (c_start_case): Set it. 22562 (do_case): Pass it to c_add_case_label. 22563 * expr.c (expand_expr_real_1): Don't warn for out-of-bounds 22564 cases from here. Add the labels in reverse order. 22565 * stmt.c (struct case_node): Adjust comment. Remove balance field. 22566 (add_case_node): Return nothing, don't check for duplicate cases. 22567 Insert new case nodes in a list, not in an AVL tree. 22568 (expand_end_case_type): Don't turn a case tree into a case list. 22569 (case_tree2list): Remove. 22570 * tree.h (add_case_node): Adjust prototype. 22571 225722004-07-19 Paolo Bonzini <bonzini@gnu.org> 22573 22574 * genattr.c (struct range, struct function_unit, 22575 write_units, extend_range, init_range): Remove them. 22576 (main): Remove code dealing with DEFINE_FUNCTION_UNIT. 22577 Output "#define INSN_SCHEDULING" here. 22578 * genattrtab.c (struct range, struct function_unit_op, 22579 struct function_unit, struct dimension, enum operator, 22580 operate_exp, expand_units, simplify_knowing, 22581 encode_units_mask, simplify_by_exploding, 22582 find_and_mark_used_attributes, unmark_used_attributes, 22583 add_values_to_cover, increment_current_value, 22584 test_for_current_value, simplify_with_current_value, 22585 simplify_with_current_value_aux, gen_unit, 22586 write_unit_name, write_function_unit_info, 22587 write_complex_function, write_toplevel_expr, 22588 find_single_value, extend_range): Remove. 22589 (write_attr_get): Do not handle common_av->value 22590 being an FFS. 22591 (struct attr_desc): Remove func_units_p and blockage_p. 22592 (write_attr_valueq): Do not handle them. 22593 (find_attr): Do not clear them. 22594 (make_internal_attr): Do not initialize them. 22595 (main): Remove code dealing with DEFINE_FUNCTION_UNIT. 22596 * sched-vis.c (init_target_units, insn_print_units, 22597 init_block_visualization, print_block_visualization, 22598 visualize_scheduled_insns, visualize_no_unit, 22599 visualize_stall_cycles, visualize_alloc, 22600 visualize_free, target_units, get_visual_tbl_length, 22601 MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, 22602 visual_tbl_line_length, visual_tbl, n_vis_no_unit, 22603 MAX_VISUAL_NO_UNIT, vis_no_unit): Remove. 22604 * haifa-sched.c (blockage_range, clear_units, 22605 schedule_unit, actual_hazard, potential_hazard, 22606 insn_unit, unit_last_insn, unit_tick, 22607 actual_hazard_this_instance, potential_hazard, 22608 schedule_unit, max_insn_queue_index_value): Remove. 22609 (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to 22610 max_insn_queue_index. 22611 * rtl.def (DEFINE_FUNCTION_UNIT): Remove. 22612 * doc/md.texi (Processor pipeline description): Remove 22613 references to old pipeline descriptions. 22614 (Automaton pipeline description): Merge with the above. 22615 (Old pipeline description, Comparison of the two descriptions): 22616 Remove. 22617 22618 * bt-load.c (migrate_btr_def): Remove references to 22619 use_pipeline_interface. 22620 * haifa-sched.c (insn_cost, schedule_insn, 22621 schedule_block, advance_one_cycle, sched_init, 22622 queue_to_ready, sched_finish): Likewise. 22623 * modulo-sched.c (sms_schedule, advance_one_cycle, 22624 ps_has_conflicts): Likewise. 22625 * sched-rgn.c (init_ready): Likewise. 22626 (debug_dependencies): Likewise, and remove an "if (1)". 22627 * target.h (use_dfa_pipeline_interface): Remove. 22628 * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22629 * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22630 * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22631 * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22632 * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22633 * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22634 * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22635 * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22636 * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22637 * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22638 * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22639 * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22640 * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22641 * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22642 * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22643 * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22644 * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22645 * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22646 * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. 22647 226482004-07-19 Roger Sayle <roger@eyesopen.com> 22649 22650 * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call. 22651 226522004-07-19 Jeff Law <law@redhat.com> 22653 22654 * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New. 22655 (get_eq_expr_value): Use it. Simplify slightly. 22656 226572004-07-19 Maciej W. Rozycki <macro@linux-mips.org> 22658 22659 * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list. 22660 (umulsidi3_32bit_r4000): Likewise. 22661 226622004-07-19 Nathan Sidwell <nathan@codesourcery.com> 22663 22664 * vec.h: Propagate location information properly. 22665 (VEC_T_iterate): Add result pointer parameter. 22666 (VEC_T_space): New. 22667 (VEC_T_reserve): Use it. 22668 226692004-07-19 Daniel Jacobowitz <dan@debian.org> 22670 22671 * Makefile.in (c-format.o): Depend on c-format.h. 22672 * c-format.h: New file. 22673 (struct format_char_info): Add CHAIN member. 22674 * c-format.c: Move some types and constants to c-format.h. 22675 (format_type_error): Set to -1. 22676 (struct function_format_info): Use an int for format_type. 22677 (decode_format_type): Return an int. Return format_type_error 22678 on error. 22679 (print_char_table, asm_fprintf_char_table, gcc_diag_char_table) 22680 (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table) 22681 (scan_char_table, time_char_table, monetary_char_table): Initialize 22682 CHAIN to NULL. 22683 (n_format_types): New variable. 22684 (check_format_info_main): Handle CHAIN in format_char_info. 22685 (handle_format_attribute): Handle TARGET_FORMAT_TYPES and 22686 TARGET_N_FORMAT_TYPES. 22687 * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) 22688 (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c. 22689 * config/sol2-c.c: New file. 22690 * config/t-sol2: New file. 22691 * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define. 22692 * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine 22693 TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES. 22694 22695 * doc/extend.texi (Target Format Checks): New section. 22696 (Function Attributes): Mention it. 22697 * doc/invoke.texi: Mention target format checks. 22698 * doc/sourcebuild.texi: Mention target format checks. 22699 * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and 22700 TARGET_FORMAT_TYPES. 22701 227022004-07-19 Andreas Krebbel <krebbel1@de.ibm.com> 22703 22704 * config/s390/s390-protos.h (s390_return_address_offset): Prototype 22705 added. 22706 * config/s390/s390.c (regclass_map initializer): Register 35 added to 22707 ADDR_REGS. 22708 (load_multiple_operation, store_multiple_operation): Removed 22709 pointless sanity check. 22710 (s390_decompose_address): Added check for return_address_pointer_rtx. 22711 (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0. 22712 (s390_return_address_offset): New function. 22713 * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36. 22714 (FRAME_REGNO_P): Added check for register 35. 22715 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, 22716 REG_ALLOC_ORDER): Appended entry for register 35. 22717 (REG_CLASS_CONTENTS): Adjusted class masks for register 35. 22718 (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx. 22719 (RETURN_ADDRESS_POINTER_REGNUM): New macro. 22720 (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer 22721 is eliminable using stack pointer or hard frame pointer. 22722 (REGISTER_NAMES): Added name for register 35. 22723 * config/s390/s390.md ("load_multiple", "store_multiple"): Removed 22724 pointless sanity check. 22725 227262004-07-19 Roger Sayle <roger@eyesopen.com> 22727 22728 * fold-const.c (tree_expr_nonzero_p): Add function prototype. 22729 (fold) <EQ_EXPR>: Move tree_expr_nonzero_p optimization from 22730 fold_relational_const to here, i.e. "(x | 5) == 0" -> false. 22731 (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons 22732 of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT. 22733 (fold_relational_const): Tidy up handling of floating point 22734 comparisons by calling real_compare. Remove tree_expr_nonzero_p 22735 transformation; fold_relational_const assumes constant operands. 22736 227372004-07-19 Gabriel Dos Reis <gdr@integrable-solution.net> 22738 22739 * doc/sourcebuild.texi: Add libcpp, now that CPP has its own 22740 directory. 22741 227422004-07-19 Joseph S. Myers <jsm@polyomino.org.uk> 22743 22744 * c-tree.h (struct c_expr): Define. 22745 (C_SET_EXP_ORIGINAL_CODE): Remove. 22746 (parser_build_binary_op, build_compound_expr): Update prototypes. 22747 * c-parse.in (%union): Add exprtype. 22748 (FUNC_NAME): Mark as ttype. 22749 (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to 22750 exprtype. 22751 (expr): Update. Define directly in terms of expr_no_commas 22752 instead of using nonnull_exprlist. 22753 (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary, 22754 offsetof_member_designator, typespec_nonreserved_nonattr, init, 22755 initval, designator, component_declarator, 22756 component_notype_declarator, enumerator, array_declarator, 22757 condition, exexpr, switch_statement, stmt_nocomp, stmt, 22758 nonnull_asm_operands, ivar_declarator, receiver): Update. Don't 22759 set C_EXP_ORIGINAL_CODE. Use TREE_NO_WARNING for assignments 22760 where appropriate. 22761 * c-common.h (C_EXP_ORIGINAL_CODE): Remove. 22762 * c-common.c (c_common_truthvalue_conversion): Don't check 22763 C_EXP_ORIGINAL_CODE. 22764 * c-typeck.c (parser_build_binary_op): Use c_expr structures. 22765 Don't use C_EXP_ORIGINAL_CODE. 22766 (default_conversion, default_function_array_conversion): Don't use 22767 C_EXP_ORIGINAL_CODE. Preserve TREE_NO_WARNING. 22768 (internal_build_compound_expr): Merge into build_compound_expr. 22769 (build_compound_expr): Take two operands instead of a TREE_LIST. 22770 * objc/objc-act.c (get_super_receiver): Update calls to 22771 build_compound_expr. 22772 227732004-07-18 Paolo Bonzini <bonzini@gnu.org> 22774 22775 * config/sh/sh.c (sh_use_dfa_interface): Remove. 22776 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to 22777 hook_int_void_1. 22778 * config/sh/sh.md: Extract pipeline descriptions 22779 into separate files. 22780 * config/sh/sh1.md: New file, extracted from sh.md. 22781 * config/sh/sh4.md: New file, extracted from sh.md. 22782 * config/sh/shmedia.md: New file, extracted from sh.md 22783 and rewritten using new-style pipeline description. 22784 227852004-07-18 Zack Weinberg <zack@codesourcery.com> 22786 22787 * config/pa/pa.md: Delete the two remaining define_peephole 22788 patterns. 22789 227902004-07-18 Steven Bosscher <stevenb@suse.de> 22791 Joseph S. Myers <jsm@polyomino.org.uk> 22792 22793 * c-common.c (c_common_truthvalue_conversion): Don't warn if 22794 TREE_NO_WARNING is set. 22795 227962004-07-18 Roger Sayle <roger@eyesopen.com> 22797 22798 * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp, 22799 simplify_builtin_strncmp): Delete. 22800 (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): 22801 Change argument to accept an arglist instead of an "exp". Assume 22802 that the return type is always integer_type_node. Copy missing 22803 transformations from their now obsolete simplify_builtin_* 22804 equivalents. 22805 (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp, 22806 fold_builtin_strcmp and fold_builtin_strncmp. 22807 (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp 22808 and fold_builtin_strncmp instead of simplify_builtin_memcmp, 22809 simplify_builtin_strcmp and simplify_builtin_strncmp respectively. 22810 228112004-07-18 Daniel Jacobowitz <dan@debian.org> 22812 22813 * Makefile.in (tree-alias-common.o): Update dependencies. 22814 228152004-07-17 Sebastian Pop <pop@cri.ensmp.fr> 22816 22817 * cfgloop.c (flow_loop_nested_p): Fix comment. 22818 228192004-07-17 Jason Merrill <jason@redhat.com> 22820 22821 PR c++/16115 22822 * stor-layout.c (relayout_decl): New fn. 22823 * tree.h: Declare it. 22824 (DECL_BY_REFERENCE): New macro. 22825 228262004-07-17 Eric Botcazou <ebotcazou@act-europe.fr> 22827 22828 * libgcc2.c (__enable_execute_stack): New symbol. 22829 * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4 22830 and declare __enable_execute_stack. 22831 * mklibgcc.in (lib2funcs): Add _enable_execute_stack. 22832 * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy. 22833 * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into 22834 ENABLE_EXECUTE_STACK. 22835 * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize 22836 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. 22837 * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into 22838 ENABLE_EXECUTE_STACK. 22839 * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. 22840 * config/i386/i386.c (x86_initialize_trampoline): Conditionalize 22841 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. 22842 * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into 22843 ENABLE_EXECUTE_STACK. 22844 * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. 22845 * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise. 22846 * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. 22847 * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. 22848 * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize 22849 on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. 22850 (sparc64_initialize_trampoline): Likewise. 22851 * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro. 22852 228532004-07-17 Joseph S. Myers <jsm@polyomino.org.uk> 22854 22855 * langhooks.h (builtin_function): New langhook. 22856 * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New. 22857 (LANG_HOOKS_INITIALIZER): Update. 22858 * tree.h (builtin_function): Remove. 22859 * doc/tm.texi: Update. 22860 * c-tree.h (builtin_function): Declare. 22861 * c-common.c, config/alpha/alpha.c, config/arm/arm.c, 22862 config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c, 22863 config/ia64/ia64.c, config/iq2000/iq2000.c, 22864 config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, 22865 config/stormy16/stormy16.c: All callers of builtin_function 22866 changed. 22867 228682004-07-17 Andrew Pinski <pinskia@physics.uc.edu> 22869 22870 PR target/16556 22871 * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): 22872 Remove white space after the backslash. 22873 228742004-07-17 Eric Botcazou <ebotcazou@libertysurf.fr> 22875 22876 PR rtl-optimization/16294 22877 * resource.c (return_insn_p): New predicate. 22878 (mark_target_live_regs): Use it. Special-case return insns. 22879 (init_resource_info): Use it. Don't scan the epilogue past 22880 a return. 22881 228822004-07-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 22883 22884 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not 22885 destroy dominance information. 22886 * passes.c (rest_of_handle_loop2): Free dominance information. 22887 * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before 22888 jump threading. 22889 (thread_jumps): Update dominance information and remove unreachable 22890 blocks. 22891 * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance 22892 information and remove the unreachable block. 22893 228942004-07-17 Graham Stott <graham.stott@btinternet.com> 22895 22896 * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn. 22897 228982004-07-17 Toon Moene <toon@moene.indiv.nluug.nl> 22899 22900 * doc/sourcebuild.texi: Remove libf2c entry. 22901 229022004-07-17 Paolo Bonzini <bonzini@gnu.org> 22903 22904 * config/i386/i386.md (movv16qi_internal): Fix typo. 22905 229062004-07-17 Steven Bosscher <stevenb@suse.de> 22907 22908 * final.c (final_scan_insn): Fix broken commit from previous 22909 patch. 22910 229112004-07-17 Joseph S. Myers <jsm@polyomino.org.uk> 22912 22913 * c-typeck.c (parser_build_binary_op): Condition warnings for 22914 X<=Y<=Z on -Wparentheses instead of -Wextra. 22915 * doc/invoke.texi: Update. Document that most of -Wparentheses is 22916 supported for C only. 22917 229182004-07-17 Steven Bosscher <stevenb@suse.de> 22919 22920 * cfgcleanup.c (try_simplify_condjump): Don't remove line 22921 notes to avoid unreachable code warnings. 22922 * toplev.c (backend_init): Don't emit line notes for 22923 unreachable code warnings. 22924 22925 * combine.c (distribute_notes): Don't distribute a 22926 REG_VTABLE_REF note. 22927 * final.c (final_scan_insn): Don't handle it. 22928 * rtl.c (reg_note_name): Remove it. 22929 * rtl.h (enum reg_node): Dito. 22930 22931 * emit-rtl.c (force_line_numbers, restore_line_number_status): 22932 Remove. 22933 * rtl.h (force_line_numbers, restore_line_number_status): 22934 Remove prototypes. 22935 22936 * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move... 22937 * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static. 22938 (using_eh_for_cleanups): Also moved here. 22939 22940 * expr.c (expand_expr_real_1) <CASE_LABEL_EXPR>: Die if we see one. 22941 <SWITCH_EXPR>: Die if we have a non-NULL SWITCH_BODY. Update calls 22942 to expand_start_case and add_case_node. 22943 * stmt.c (struct nesting): Cleanup unused fields condition_code, 22944 last_unconditional_cleanup, nominal_type, printname, and 22945 line_number_status. 22946 (struct fixup_goto): Remove. 22947 (struct stmt_status): Remove x_goto_fixup_chain field. 22948 (goto_fixup_chain): Remove. 22949 (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable, 22950 pushcase, pushcase_range): Remove. 22951 (expand_start_bindings_and_block): Don't set unused fields in 22952 the nesting stack. 22953 (expand_start_case, add_case_node): Cleanup unused formal arguments. 22954 (expand_end_case_type): Don't simplify the case-list. Use emit_jump 22955 instead of emit_jump_if_reachable. 22956 (emit_case_nodes): Likewise. 22957 * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer 22958 static. 22959 (update_eh_label): Work around left-over exception handing regions. 22960 * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos. 22961 * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function. 22962 (pass_cleanup_cfg_post_optimizing): New pass. 22963 (init_tree_optimization_passes): Run the new pass after all 22964 optimizations. 22965 * tree.h (pushcase, pushcase_range): Remove prototypes. 22966 (expand_start_case, add_case_node): Update prototypes. 22967 229682004-07-16 Krister Walfridsson <cato@df.lth.se> 22969 22970 * tree-inline.c (estimate_num_insns_1): Correct increase of count. 22971 229722004-07-16 Richard Henderson <rth@redhat.com> 22973 22974 * builtins.c (std_expand_builtin_va_arg): Remove. 22975 (expand_builtin_va_arg): Remove. 22976 * expr.h: Don't declare them. 22977 * gimplify.c (mark_decls_volatile_r): Remove. 22978 (copy_if_shared_r): Don't call it. 22979 * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG. 22980 * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR. 22981 * gimple-low.c (lower_stmt): Likewise. 22982 * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise. 22983 * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise. 22984 * tree-ssa-operands.c (get_expr_operands): Likewise. 22985 * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention 22986 EXPAND_BUILTIN_VA_ARG. 22987 * system.h (EXPAND_BUILTIN_VA_ARG): Poison. 22988 * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h, 22989 config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h, 22990 config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove. 22991 229922004-07-16 Daniel Berlin <dberlin@dberlin.org> 22993 22994 * tree-ssa-pre.c (insert_aux): Break out if we hit 22995 a critical edge. 22996 229972004-07-16 Richard Henderson <rth@redhat.com> 22998 22999 * basic-block.h (remove_fake_exit_edges): Declare. 23000 * cfganal.c (remove_fake_predecessors): Rename from 23001 remove_fake_successors; iterate over predecessors. 23002 (remove_fake_exit_edges): New. 23003 * cfgcleanup.c (try_optimize_cfg): Use it. 23004 * gcse.c (one_pre_gcse_pass, store_motion): Likewise. 23005 * predict.c (estimate_probability): Likewise. 23006 (tree_estimate_probability, note_prediction_to_br_prob): Likewise. 23007 * tree-cfg.c (make_edges): Likewise. 23008 * tree-ssa-pre.c (fini_pre): Likewise. 23009 * profile.c (instrument_edges): Don't remove_fake_edges. 23010 (branch_prob): Do it earlier here. 23011 230122004-07-16 Richard Henderson <rth@redhat.com> 23013 23014 * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15 23015 switchification wrt CONSTRUCTOR. Document the reason. 23016 230172004-07-16 Frank Ch. Eigler <fche@redhat.com> 23018 23019 * tree-mudflap.c (mf_file_function_line_tree): Correct typo 23020 that prevented descriptive __mf_check source location strings. 23021 230222004-07-16 Richard Henderson <rth@redhat.com> 23023 23024 * tree-def (WITH_SIZE_EXPR): New. 23025 * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR. 23026 * expr.c (expand_expr_real_1): Likewise. 23027 * gimplify.c (maybe_with_size_expr): New. 23028 (gimplify_arg, gimplify_modify_expr): Use it. 23029 (gimplify_modify_expr_to_memcpy): Take size parameter. 23030 (gimplify_modify_expr_to_memset): Likewise. 23031 (gimplify_expr): Handle WITH_SIZE_EXPR. 23032 * tree-alias-common.c (find_func_aliases): Likewise. 23033 * tree-eh.c (tree_could_trap_p): Likewise. 23034 (tree_could_throw_p): Likewise. 23035 * tree-gimple.c (is_gimple_lvalue): Likewise. 23036 (get_call_expr_in): Likewise. 23037 * tree-inline.c (estimate_num_insns_1): Likewise. 23038 (expand_calls_inline): Likewise. 23039 * tree-nested.c (convert_call_expr): Likewise. 23040 * tree-pretty-print.c (dump_generic_node): Likewise. 23041 * tree-sra.c (sra_walk_expr): Likewise. 23042 * tree-ssa-alias.c (add_pointed_to_expr): Likewise. 23043 * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise. 23044 * tree-ssa-operands.c (get_expr_operands): Likewise. 23045 * tree-tailcall.c (find_tail_calls): Likewise. 23046 23047 * calls.c (expand_call): Reset old_stack_allocated after 23048 calling emit_stack_restore. 23049 230502004-07-16 Richard Henderson <rth@redhat.com> 23051 23052 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, 23053 lhd_tree_inlining_copy_res_decl_for_inlining): Remove. 23054 * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove. 23055 * langhooks.h (struct lang_hooks_for_tree_inlining): Remove 23056 copy_res_decl_for_inlining. 23057 23058 * tree-inline.c (declare_return_variable): New modify_dest argument. 23059 Use it as the return value, when possible or manditory. Handle 23060 TREE_ADDRESSABLE types. 23061 (expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify 23062 replacement of CALL_EXPR. 23063 230642004-07-16 Richard Henderson <rth@redhat.com> 23065 23066 * tree-flow.h (struct var_ann_d): Remove has_hidden_use. 23067 * gimple-low.c (expand_var_p): Don't check it. 23068 * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise. 23069 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. 23070 * tree-ssa-operands.c (add_stmt_operand): Likewise. 23071 * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill. 23072 (find_referenced_vars): Don't call them. 23073 * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill. 23074 230752004-07-16 Richard Henderson <rth@redhat.com> 23076 23077 * function.c (pass_by_reference): True for all variable sized types. 23078 230792004-07-16 Sebastian Pop <pop@cri.ensmp.fr> 23080 23081 * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h. 23082 * tree-pretty-print.c: Include tree-chrec.h. 23083 (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN 23084 and POLYNOMIAL_CHREC nodes. 23085 230862004-07-16 Steve Ellcey <sje@cup.hp.com> 23087 23088 * builtins.c (expand_builtin_stpcpy): Do not create temporary 23089 reg with VOIDmode. 23090 230912004-07-16 Segher Boessenkool <segher@kernel.crashing.org> 23092 23093 * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi). 23094 230952004-07-16 Andreas Krebbel <krebbel1@de.ibm.com> 23096 23097 * config/s390/s390.md: Changed every occurence of BASE_REGISTER 23098 to BASE_REGNUM. 23099 * config/s390/s390.c: Likewise. 23100 * config/s390/s390.h: Likewise. 23101 231022004-07-16 Richard Sandiford <rsandifo@redhat.com> 23103 23104 * config/mips/mips.md (addsi3, adddi3): Remove special handling 23105 of $sp adds. Remove REGNO checks from mips16 patterns. 23106 231072004-07-16 Richard Sandiford <rsandifo@redhat.com> 23108 23109 * config/mips/mips.md: Delete outdated comment. 23110 231112004-07-16 Richard Sandiford <rsandifo@redhat.com> 23112 23113 * config/mips/mips.c (get_float_compare_codes): Delete. 23114 (mips_emit_compare): New function, mostly extracted from 23115 get_float_compare_codes and gen_conditional_branch. 23116 (gen_conditional_branch, gen_conditional_move): Use it. 23117 231182004-07-16 Segher Boessenkool <segher@kernel.crashing.org> 23119 23120 * genautomata.c (add_vect): Speedup by using integers as 23121 bit-vectors for walking through the comb_vect and finding 23122 a match. 23123 231242004-07-16 Richard Sandiford <rsandifo@redhat.com> 23125 23126 * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second 23127 operand is an uns_arith_operand; use subtraction otherwise. 23128 * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand, 23129 not just arith_operands. 23130 231312004-07-16 Richard Sandiford <rsandifo@redhat.com> 23132 23133 * config/mips/mips-protos.h (gen_int_relational): Delete. 23134 (mips_emit_scc): Declare. 23135 * config/mips/mips.c (internal_test): Delete. 23136 (sle_operand, sleu_operand): New functions. 23137 (map_test_to_internal_test, gen_int_relational): Delete. 23138 (mips_emit_binary, mips_relational_operand_ok_p) 23139 (mips_emit_int_relational, mips_zero_if_equal) 23140 (mips_emit_scc): New functions. 23141 (gen_conditional_branch): Rework to use mips_emit_int_relational. 23142 * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and 23143 sleu_operand. 23144 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) 23145 (sltu, sleu): Use mips_emit_scc. 23146 (*sge_[sd]i, *sgeu_[sd]i): New patterns. 23147 (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand. 23148 (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand. 23149 231502004-07-16 Richard Sandiford <rsandifo@redhat.com> 23151 23152 * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint. 23153 231542004-07-16 Richard Sandiford <rsandifo@redhat.com> 23155 23156 * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero. 23157 (*sne_[sd]i): Likewise sne_[sd]i_zero. 23158 (*sgt_[sd]i): ...and sgt_[sd]i. 23159 (*slt_[sd]i): ...and slt_[sd]i. 23160 (*sgtu_[sd]i): ...and sgtu_[sd]i. 23161 (*sltu_[sd]i): ...and sltu_[sd]i. 23162 (*sleu_[sd]i): ...and sleu_[sd]i_const. 23163 Name previously unnamed mips16 patterns. Formatting fixes. 23164 231652004-07-16 Richard Sandiford <rsandifo@redhat.com> 23166 23167 * config/mips/mips.c (cmp_operands): Renamed from branch_cmp. 23168 (branch_type): Delete. 23169 (gen_conditional_branch, gen_conditional_move) 23170 (mips_gen_conditional_trap): Update after name change. Get the 23171 comparison mode from cmp_operands[0]. 23172 * config/mips/mips.h (cmp_type, branch_type): Delete. 23173 (cmp_operands): Renamed from branch_cmp. 23174 * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after 23175 name change. Don't set branch_type. 23176 (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the 23177 mode class of cmp_operands[0] rather than branch_type. Update after 23178 name change. 23179 231802004-07-16 Richard Sandiford <rsandifo@redhat.com> 23181 23182 * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost 23183 of 0...255 to 0 when inside a SET. 23184 231852004-07-16 Richard Sandiford <rsandifo@redhat.com> 23186 23187 * config/mips/mips.md: Remove mips16 define_peepholes. 23188 231892004-07-16 Daniel Berlin <dberlin@dberlin.org> 23190 23191 * tree-ssa-pre.c (init_pre): Connect infinite loops to exit. 23192 (fini_pre): Remove fake edges. 23193 231942004-07-15 Richard Henderson <rth@redhat.com> 23195 23196 * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out... 23197 (get_indirect_ref_operands, get_call_expr_operands): ... these. 23198 231992004-07-15 Nathan Sidwell <nathan@codesourcery.com> 23200 23201 * vec.h (VEC_address): New function. 23202 232032004-07-14 Jason Merrill <jason@redhat.com> 23204 23205 PR middle-end/15885 23206 * gimplify.c (gimplify_arg): New fn, split out from... 23207 (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START. 23208 232092004-07-15 Roman Zippel <zippel@linux-m68k.org> 23210 23211 * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to 23212 generate code which is generated by pushqi1 now 23213 * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove. 23214 232152004-07-15 Roman Zippel <zippel@linux-m68k.org> 23216 23217 * combine.c (simplify_set): match the mode of the constant 0 with 23218 the tested operand to match the compare behaviour and the 23219 simplify_relational_operation() expectation. 23220 232212004-07-15 Aldy Hernandez <aldyh@redhat.com> 23222 23223 * config/rs6000/rs6000.md ("bunordered"): Disable for e500. 23224 ("bordered"): Same. 23225 232262004-07-15 Aldy Hernandez <aldyh@redhat.com> 23227 23228 * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow 23229 unconditionally. 23230 * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove. 23231 232322004-07-15 Richard Sandiford <rsandifo@redhat.com> 23233 23234 * config/mips/mips.c (mips_adjust_insn_length): Fix handling of 23235 calls in mips16 code. 23236 232372004-07-15 Richard Sandiford <rsandifo@redhat.com> 23238 23239 * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for 23240 the destination of the li as well as for the neg. 23241 232422004-07-15 Frank Ch. Eigler <fche@redhat.com> 23243 23244 g++/15861 23245 * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument. 23246 * cgraph.h: Update declaration. 23247 * c-decl.c (build_cdtor): Update call with default priority. 23248 * coverage.c (create_coverage): Ditto. 23249 * tree-mudflap.c (mf_init_fndecl): New tree. 23250 (mudflap_init): Set it. 23251 (mudflap_register_call): Arrange to call __mf_init before the first 23252 __mf_register call. 23253 (mudflap_finish_file): Mark the mudflap static initializer as extra 23254 high priority, to beat all C++ static constructors. 23255 232562004-07-15 Jeff Law <law@redhat.com> 23257 23258 * loop.c (check_insn_for_givs): Restore check for code labels that was 23259 accidentally deleted by a recent checkin. 23260 232612004-07-15 Nathan Sidwell <nathan@codesourcery.com> 23262 23263 * vec.h (VEC_T_truncate): Allow truncation of an empty vector. 23264 (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko. 23265 232662004-07-14 Richard Henderson <rth@redhat.com> 23267 23268 * print-tree.c (print_node): Fix casts last change. 23269 232702004-07-15 Paul Brook <paul@codesourcery.com> 23271 23272 * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO 23273 to TARGET_UNWIND_INFO. 23274 * except.c (output_function_exception_table): Ditto. 23275 * except.h: Ditto. 23276 * opts.c (decode_options): Ditto. 23277 * passes.c (rest_of_handle_final): Ditto. 23278 * final.c (final_start_function): Ditto. 23279 (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with 23280 target hook. 23281 * targhooks.h (default_unwind_emit): Declare. 23282 * targhooks.c (default_unwind_emit): New function. 23283 * target-def.h: Define and use TARGET_UNWIND_EMIT. 23284 * target.h (struct gcc_target): Add unwind_emit. 23285 * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define. 23286 * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO. 23287 Remove IA64_UNWIND_EMIT. 23288 * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO. 23289 232902004-07-14 Richard Henderson <rth@redhat.com> 23291 23292 * print-tree.c (print_node): Handle SSA_NAME. 23293 232942004-07-14 James E Wilson <wilson@specifixinc.com> 23295 23296 PR target/16325 23297 * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value 23298 and ! TARGET_64BIT, include REG_PARM_STACK_SPACE. 23299 233002004-07-15 Jakub Jelinek <jakub@redhat.com> 23301 23302 * expr.c (expand_assignment): Reenable bitfield += optimizations. 23303 Use alias set 0 for memory, do proper mode calculations and adjust 23304 address for memories. 23305 233062004-07-14 Per Bothner <per@bothner.com> 23307 23308 * input.h: If USE_MAPPED_LOCATION, define separate expanded_location 23309 structure with extra column field. 23310 * tree.c (expand_location): Also fill in column field. 23311 * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype 23312 gets confused by the two conditionally-compiled definitions. 23313 233142004-07-14 Eric Christopher <echristo@redhat.com> 23315 23316 * calls.c (expand_call): Fix typo in comment. 23317 233182004-07-14 Steve Ellcey <sje@cup.hp.com> 23319 23320 * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED 23321 comparision of TFmode. 23322 233232004-07-14 Richard Henderson <rth@redhat.com> 23324 23325 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ... 23326 (alpha_gimplify_va_arg): ... handling here. Use pass_by_reference. 23327 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference. 23328 * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. 23329 * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. 23330 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. 23331 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. 23332 * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. 23333 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. 23334 233352004-07-14 Mike Stump <mrs@apple.com> 23336 23337 * config/darwin.h (WINT_TYPE): Define to be int to match 23338 system header files. 23339 233402004-07-14 Bob Wilson <bob.wilson@acm.org> 23341 23342 * config/xtensa/xtensa.c (function_arg_advance): Check for args 23343 that must be passed in the stack. 23344 (xtensa_gimplify_va_arg_expr): Skip special-case padding for small 23345 arguments if the size is not a constant. 23346 233472004-07-14 Per Bothner <per@bothner.com> 23348 23349 * c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION 23350 instead of EXPR_LOCUS in a boolean context, which is always true 23351 if --enable-mapped-location. 23352 * stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION. 23353 233542004-07-14 Richard Henderson <rth@redhat.com> 23355 23356 * dominance.c (struct dom_info): Add fake_exit_edge. 23357 (init_dom_info): Allocate it. 23358 (free_dom_info): Free it. 23359 (calc_dfs_tree): Set it. Handle noreturn and infinite loops 23360 in two passes. 23361 (calc_idoms): Honor fake_exit_edge. 23362 233632004-07-13 Jason Merrill <jason@redhat.com> 23364 23365 * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns. 23366 (rhs_test_for): New fn. 23367 (is_gimple_tmp_rhs): Rename from is_gimple_rhs. 23368 * tree-gimple.h: Declare them. 23369 * gimplify.c (gimplify_modify_expr): Use the new fns. 23370 233712004-07-14 Richard Henderson <rth@redhat.com> 23372 23373 * config/arm/arm-protos.h (arm_va_arg): Remove. 23374 * config/arm/arm.c (arm_va_arg): Remove. 23375 (arm_init_expanders): Fix alignment of arg_pointer_rtx. 23376 * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove. 23377 233782004-07-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 23379 23380 * pa.c (fix_range): New function to mark a range(s) of registers as 23381 fixed registers. 23382 (override_options): Call fix_range if the -mfixed-range option string 23383 is not empty. 23384 * pa.h (TARGET_OPTIONS): Add -mfixed-range option. 23385 * doc/invoke.texi (-mfixed-range): Document new option. 23386 233872004-07-14 David Edelsohn <edelsohn@gnu.org> 23388 23389 * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode 23390 for TARGET_64BIT. 23391 (rs6000_gimplify_va_arg): Use size_int instead of build_int_2. 23392 233932004-07-14 Roger Sayle <roger@eyesopen.com> 23394 23395 * expmed.c (expand_sdiv_pow2): New function to expand signed division 23396 by a positive power of two, split out from expand_divmod. Provide 23397 an alternate implementation when shifts are expensive. Lower the 23398 threshold for using a branchless implementation to BRANCH_COST >= 2. 23399 (expand_divmod): Call expand_sdiv_pow2 for suitable divisions. 23400 234012004-07-14 Paolo Bonzini <bonzini@gnu.org> 23402 23403 * tree-dfa.c (make_rename_temp): *Really* work just 23404 like create_tmp_var if called while outside SSA form. 23405 234062004-07-14 Ulrich Weigand <uweigand@de.ibm.com> 23407 23408 * config/s390/s390.md ("udivsi3"): Ensure trap is generated 23409 for division by zero. 23410 ("umodsi3"): Likewise. 23411 234122004-07-14 Richard Sandiford <rsandifo@redhat.com> 23413 23414 * config/mips/mips.c (mips_output_move): When generating mips16 code, 23415 force loads of negative constants to be split. 23416 * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise. 23417 Generalize SImode li/neg splitter to cope with other modes. 23418 234192004-07-14 Paolo Bonzini <bonzini@gnu.org> 23420 23421 * expmed.c: Remove more references to QUEUED in the comments. 23422 * expr.c: Likewise. 23423 234242004-07-14 Richard Sandiford <rsandifo@redhat.com> 23425 23426 Revert: 23427 2004-07-13 Richard Henderson <rth@redhat.com> 23428 * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes 23429 correctly. 23430 234312004-07-14 Paolo Bonzini <bonzini@gnu.org> 23432 23433 * tree-dfa.c (make_rename_temp): Work just like 23434 create_tmp_var if called while outside SSA form. 23435 234362004-07-14 Paolo Bonzini <bonzini@gnu.org> 23437 23438 * expr.c (enqueue_insn, finish_expr_for_function, 23439 protect_from_queue, queued_subexp_p, mark_queue, 23440 emit_insns_enqueued_after_mark, emit_queue, 23441 expand_increment): Remove. 23442 (store_constructor): Expand increment as an assignment. 23443 (expand_expr_real_1 <case PREINCREMENT_EXPR, 23444 case PREDECREMENT_EXPR, case POSTINCREMENT_EXPR, 23445 case POSTDECREMENT_EXPR>): Abort. 23446 * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY, 23447 QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function, 23448 protect_from_queue, emit_queue, queued_subexp_p): Remove. 23449 * function.h (pending_chain, x_pending_chain): Remove. 23450 * rtl.def (QUEUED): Remove. 23451 23452 * emit-rtl.c (copy_insn_1, copy_most_rtx, 23453 set_used_flags, verify_rtx_sharing): Remove references to QUEUED. 23454 * genattrtab.c (attr_copy_rtx, clear_struct_flag, 23455 encode_units_mask): Likewise. 23456 * local-alloc.c (equiv_init_varies_p): Likewise. 23457 * rtl.c (copy_rtx): Likewise. 23458 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. 23459 * simplify-rtx.c (simplify_gen_subreg): Likewise. 23460 * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise. 23461 23462 * builtins.c (expand_builtin, expand_builtin_apply, 23463 expand_builtin_mathfn, expand_builtin_mathfn_2, 23464 expand_builtin_mathfn_3, expand_builtin_setjmp_setup): 23465 Remove calls to emit_queue and protect_from_queue. 23466 * calls.c (expand_call, precompute_arguments, 23467 precompute_register_parameters, rtx_for_function_call, 23468 store_one_arg): Likewise. 23469 * dojump.c (do_compare_and_jump, do_jump): Likewise. 23470 * explow.c (memory_address): Likewise. 23471 * expmed.c (clear_by_pieces_1, clear_storage, 23472 clear_storage_via_libcall, emit_group_load, 23473 emit_group_store, emit_store_flag, 23474 expand_expr_real_1, store_by_pieces, 23475 store_constructor, store_expr, try_casesi, 23476 try_tablejump): Likewise. 23477 * function.c (expand_pending_sizes): Likewise. 23478 * optabs.c (emit_cmp_and_jump_insns, 23479 emit_conditional_add, emit_conditional_move, 23480 expand_fix, expand_float, prepare_cmp_insn): Likewise. 23481 * stmt.c (emit_case_bit_tests, 23482 expand_asm_expr, expand_computed_goto, 23483 expand_decl_init, expand_end_case_type, 23484 expand_end_stmt_expr, expand_expr_stmt_value, 23485 expand_return, expand_start_case, 23486 optimize_tail_recursion): Likewise. 23487 * config/c4x/c4x.c (c4x_expand_builtin): Likewise. 23488 * config/s390/s390.c (s390_expand_cmpmem): Likewise. 23489 234902004-07-14 Ben Elliston <bje@au.ibm.com> 23491 23492 * vec.h: Comment fix. 23493 234942004-07-13 Richard Henderson <rth@redhat.com> 23495 23496 * target.h (struct gcc_target): Add calls.pass_by_reference. 23497 * target-def.h (TARGET_PASS_BY_REFERENCE): New. 23498 * function.c (pass_by_reference): Use the hook. 23499 * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison. 23500 * targhooks.c, targhooks.h (hook_pass_by_reference_false): New. 23501 (hook_pass_by_reference_must_pass_in_stack): New. 23502 * config/alpha/alpha.c (function_arg): Don't query pass-by-ref. 23503 (alpha_pass_by_reference): New. 23504 (TARGET_PASS_BY_REFERENCE): New. 23505 * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23506 * config/arc/arc.c (arc_pass_by_reference): New. 23507 (TARGET_PASS_BY_REFERENCE): New. 23508 * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23509 (FUNCTION_ARG_CALLEE_COPIES): True. 23510 * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove. 23511 * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New. 23512 (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference. 23513 * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23514 * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23515 * config/cris/cris.c (cris_pass_by_reference): New. 23516 (TARGET_PASS_BY_REFERENCE): New. 23517 * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref. 23518 (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise. 23519 (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23520 * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New. 23521 * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23522 * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill. 23523 * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New. 23524 (frv_function_arg_pass_by_reference): Remove. 23525 * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23526 * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove. 23527 * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New. 23528 (ix86_pass_by_reference): Rename from function_arg_pass_by_reference. 23529 * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23530 * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill. 23531 * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New. 23532 (ia64_pass_by_reference): Rename from 23533 ia64_function_arg_pass_by_reference. 23534 * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23535 * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23536 * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill. 23537 * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New. 23538 (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference. 23539 * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23540 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. 23541 * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove. 23542 * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New. 23543 (m32r_pass_by_reference): Adjust prototype. Make static. 23544 Handle mode sizes correctly. 23545 * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23546 * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c 23547 (m68hc11_function_arg_pass_by_reference): Remove. 23548 * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23549 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. 23550 * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New. 23551 * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23552 * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove. 23553 * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New. 23554 (mips_va_arg): Use pass_by_reference. 23555 (mips_pass_by_reference): Rename from function_arg_pass_by_reference. 23556 Handle mode sizes correctly. 23557 * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23558 (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. 23559 * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill. 23560 * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New. 23561 (mmix_pass_by_reference): Rename from 23562 mmix_function_arg_pass_by_reference. 23563 * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23564 (FUNCTION_ARG_CALLEE_COPIES): True. 23565 * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New. 23566 (mn10300_pass_by_reference): New. 23567 * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23568 (FUNCTION_ARG_CALLEE_COPIES): True. 23569 * config/pa/pa.c (pa_pass_by_reference): New. 23570 (TARGET_PASS_BY_REFERENCE): New. 23571 * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23572 (FUNCTION_ARG_CALLEE_COPIES): True. 23573 * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill. 23574 * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New. 23575 (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference. 23576 * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23577 * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill. 23578 * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New. 23579 (s390_pass_by_reference): Rename from 23580 s390_function_arg_pass_by_reference. 23581 (s390_function_arg_advance): Don't query pass-by-ref. 23582 (s390_function_arg): Likewise. 23583 (s390_gimplify_va_arg): Use pass_by_reference. 23584 (s390_call_saved_register_used): Likewise. 23585 * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23586 * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New. 23587 (shcompact_byref, sh_pass_by_reference): New. 23588 * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23589 (SHCOMPACT_BYREF): Remove. 23590 * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill. 23591 * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New. 23592 (sparc_pass_by_reference): Rename from function_arg_pass_by_reference. 23593 (sparc_gimplify_va_arg): Use pass_by_reference. 23594 * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23595 * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23596 * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New. 23597 (v850_pass_by_reference): New. 23598 * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23599 (FUNCTION_ARG_CALLEE_COPIES): True. 23600 * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from 23601 FUNCTION_ARG_PASS_BY_REFERENCE docs. 23602 236032004-07-14 Richard Henderson <rth@redhat.com> 23604 Richard Sandiford <rsandifo@redhat.com> 23605 23606 * config/mips/mips-protos.h (mips_va_arg): Delete. 23607 * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete. 23608 * config/mips/mips.c: Include tree-gimple.h. 23609 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. 23610 (mips_arg_info): Remove special handling of must_pass_in_stck args. 23611 (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg. 23612 (function_arg_pass_by_reference): Return true if must_pass_in_stack. 23613 236142004-07-13 Bob Wilson <bob.wilson@acm.org> 23615 23616 * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap 23617 arguments for COND_EXPR in big-endian adjustment code. 23618 236192004-07-13 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 23620 23621 * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete. 23622 * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64. 23623 * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers. 23624 * pa64-regs.h (REG_ALLOC_ORDER): Likewise. 23625 236262004-07-13 Diego Novillo <dnovillo@redhat.com> 23627 23628 PR tree-optimization/16443 23629 * tree-ssa-alias.c: Add more description for 23630 CALL_CLOBBERED_VARS and ADDRESSABLE_VARS. 23631 * tree-ssa-operands.c (get_asm_expr_operands): Re-order the 23632 clobbering of call-clobbered and addressable variables. If 23633 there are any before aliases have been computed, add them. 23634 236352004-07-13 Diego Novillo <dnovillo@redhat.com> 23636 23637 * tree-optimize.c (execute_todo): Flush DUMP_FILE before 23638 verification. 23639 236402004-07-13 Ulrich Weigand <uweigand@de.ibm.com> 23641 23642 * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead 23643 of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR 23644 to the same type. 23645 236462004-07-13 Per Bothner <per@bothner.com> 23647 23648 * collect2.c (main): Handle --no-demangle and --demangle flags. 23649 236502004-07-13 Sebastian Pop <pop@cri.ensmp.fr> 23651 23652 * Makefile.in (OBJS-common): Add tree-data-ref.o. 23653 (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h. 23654 (tree-data-ref.o): New rule. 23655 * lambda.h: New file. 23656 * tree-data-ref.c: New file. 23657 * tree-data-ref.h: New file. 23658 * tree.c (int_cst_value, tree_fold_gcd): New functions. 23659 * tree.h (int_cst_value, tree_fold_gcd): Declared here. 23660 236612004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr> 23662 23663 PR target/13926 23664 * config/sparc/sparc-protos.h (output_ubranch): New prototype. 23665 * config/sparc/sparc.c (output_ubranch): New function. 23666 * config/sparc/sparc.md (jump pattern): Use it. 23667 236682004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr> 23669 23670 PR target/16494 23671 * config/sparc/sparc.c (output_cbranch): Properly guard 23672 the code handling far branches with TARGET_V9. 23673 * config/sparc/sparc.md (length attribute): Document the 23674 side-effect of having a length greater or equal to 3. 23675 236762004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr> 23677 Lloyd Parkes <lloyd@must-have-coffee.gen.nz> 23678 23679 PR target/15186 23680 * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass 23681 /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified. 23682 236832004-07-13 Eric Botcazou <ebotcazou@libertysurf.fr> 23684 Martin Sebor <sebor@roguewave.com> 23685 23686 PR target/12602 23687 * doc/invoke.texi (SPARC options): Document -threads 23688 and -pthreads on Solaris. 23689 236902004-07-13 Richard Henderson <rth@redhat.com> 23691 23692 * builtins.c (std_gimplify_va_arg_expr): Handle types passed 23693 by reference. 23694 (ind_gimplify_va_arg_expr): Remove. 23695 * tree.h (ind_gimplify_va_arg_expr): Remove. 23696 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it. 23697 * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow 23698 argsp to be null. 23699 23700 * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove. 23701 (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove. 23702 * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c, 23703 config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c, 23704 config/mn10300/mn10300.c, config/v850/v850.c: Similarly. 23705 237062004-07-13 Richard Henderson <rth@redhat.com> 23707 23708 * function.c (pass_by_reference): New. 23709 (assign_parm_find_data_types): Use it. 23710 * calls.c (initialize_argument_information): Likewise. 23711 (emit_library_call_value_1): Likewise. 23712 * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. 23713 * function.h (pass_by_reference): Declare. 23714 237152004-07-13 Richard Henderson <rth@redhat.com> 23716 23717 * target-def.h (TARGET_MUST_PASS_IN_STACK): New. 23718 * target.h (struct gcc_target): Add calls.must_pass_in_stack. 23719 * expr.h (MUST_PASS_IN_STACK): Remove. 23720 * system.h (MUST_PASS_IN_STACK): Poison. 23721 * tree.h (must_pass_in_stack_var_size): Declare. 23722 (must_pass_in_stack_var_size_or_pad): Declare. 23723 * calls.c (must_pass_in_stack_var_size): New. 23724 (must_pass_in_stack_var_size_or_pad): Rename from 23725 default_must_pass_in_stack. 23726 * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New. 23727 (TARGET_MUST_PASS_IN_STACK): New. 23728 * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove. 23729 * config/fr30/fr30.c (fr30_must_pass_in_stack): New. 23730 (TARGET_MUST_PASS_IN_STACK): New. 23731 * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove. 23732 * config/frv/frv.c (frv_must_pass_in_stack): New. 23733 (TARGET_MUST_PASS_IN_STACK): New. 23734 * config/frv/frv.h (MUST_PASS_IN_STACK): Remove. 23735 * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove. 23736 * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New. 23737 (ix86_must_pass_in_stack): Make static. 23738 * config/i386/i386.h (MUST_PASS_IN_STACK): Remove. 23739 * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New. 23740 * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove. 23741 * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New. 23742 * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove. 23743 * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove. 23744 * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New. 23745 (mcore_must_pass_on_stack): Remove. 23746 * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove. 23747 * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New. 23748 * config/mips/mips.h (MUST_PASS_IN_STACK): Remove. 23749 * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New. 23750 * config/pa/pa.h (MUST_PASS_IN_STACK): Remove. 23751 * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove. 23752 * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove. 23753 * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New. 23754 (TARGET_MUST_PASS_IN_STACK): New. 23755 * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New. 23756 * config/sh/sh.h (MUST_PASS_IN_STACK): Remove. 23757 * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New. 23758 * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove. 23759 * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New. 23760 * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove. 23761 * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from 23762 MUST_PASS_IN_STACK. 23763 23764 * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h, 23765 config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c, 23766 config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h, 23767 config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c, 23768 config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c, 23769 config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c, 23770 config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, 23771 config/xtensa/xtensa.c: Use target hook. 23772 237732004-07-13 Anthony Heading <aheading@jpmorgan.com> 23774 23775 * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo. 23776 * configure: Rebuilt. 23777 237782004-07-13 Richard Sandiford <rsandifo@redhat.com> 23779 23780 * doc/invoke.texi: Remove documentation for MIPS -mrnames option. 23781 * config/mips/mips.h (mips_reg_names): Don't declare. 23782 (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down. 23783 (TARGET_NAME_REGS): Delete. 23784 (TARGET_SWITCHES): Remove -mrnames. 23785 (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[]. 23786 (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned 23787 in REGISTER_NAMES. 23788 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete. 23789 (override_options): Remove handling of TARGET_NAME_REGS. 23790 237912004-07-13 Richard Sandiford <rsandifo@redhat.com> 23792 23793 * config/mips/mips.h (TARGET_*): Boolify. 23794 237952004-07-12 Nick Clifton <nickc@redhat.com> 23796 23797 * config.gcc: Add sh-*-symbianelf target. 23798 * config/sh/sh.c: Add new target macros: 23799 TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING, 23800 TARGET_CXX_IMPORT_EXPORT_CLASS. 23801 (sh_file_start): Create a definition of the .directive section. 23802 (sh_attribute): Add dllimport and dllexport attributes. 23803 * config/sh/symbian-pre.h: New file. 23804 * config/sh/symbian-post.h: New file. 23805 * config/sh/symbian.c: New file. Contains Symbian specific 23806 functions. 23807 * config/sh/sh-protos.h: Add prototypes for new functions 23808 provided by symbian.c. 23809 * config/sh/t-symbian: New file. 23810 * doc/extend.texi: Document support for dllimport and dllexport 23811 attributes by the sh-symbianelf target. 23812 238132004-07-12 James E Wilson <wilson@specifixinc.com> 23814 23815 * Makefile.in (AR): Use @AR@ not ar. 23816 (NM): New. 23817 (AR_FOR_TARGET): Use $(AR) not ar for native. 23818 (NM_FOR_TARGET): Use $(NM) not nm for native. 23819 * configure.ac: Add AC_CHECK_PROG calls for NM and AR. 23820 * configure: Regenerate. 23821 238222004-07-12 David S. Miller <davem@nuts.davemloft.net> 23823 23824 * config/sparc/sparc.md (ashlsi3): Eliminate const 1 23825 special case. 23826 (ashldi3_sp64): Likewise. 23827 238282004-07-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 23829 23830 PR target/16477 23831 * pa.c (function_arg): Update comment. 23832 * pa.h (BLOCK_REG_PADDING): Define. 23833 238342004-07-12 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 23835 23836 PR tree-optimization/16461 23837 * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name 23838 arguments of phi nodes. 23839 238402004-07-12 Devang Patel <dpatel@apple.com> 23841 23842 * doc/invoke.texi (Darwin Options): Document -gused and -gfull. 23843 238442004-07-12 Steve Ellcey <sje@cup.hp.com> 23845 23846 * function.c (expand_function_start): Ensure r_save is in Pmode. 23847 * calls.c (prepare_call_address): Ensure static_chain_value is 23848 in Pmode. 23849 * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and 23850 r_save_area are in Pmode. 23851 * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr, 23852 fnaddr, and static_chain are in Pmode. 23853 238542004-07-12 Vladimir Makarov <vmakarov@redhat.com> 23855 23856 PR target/16445 23857 * config/ia64/ia64.c (bundling): Don't count ignored insns. 23858 238592004-07-12 Richard Henderson <rth@redhat.com> 23860 23861 * target.h (struct gcc_target): Move gimplify_va_arg_expr 23862 next to build_builtin_va_list. 23863 * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match. 23864 * builtins.c (gimplify_va_arg_expr): Likewise. 23865 * gimplify.c (copy_if_shared_r): Likewise. 23866 238672004-07-12 Alexandre Oliva <aoliva@redhat.com> 23868 23869 * passes.c (rest_of_decl_compilation): Don't defer call of 23870 assemble_variable if its DECL_RTL is already set. 23871 238722004-07-12 Sebastian Pop <pop@cri.ensmp.fr> 23873 23874 * cfgloop.h (struct loop): Add nb_iterations field. 23875 (current_loops): Declare. 23876 * tree-chrec.c (chrec_not_analyzed_yet, 23877 chrec_dont_know, chrec_known, count_ev_in_wider_type, 23878 chrec_contains_symbols_defined_in_loop): Remove the temporary 23879 hooks. 23880 * tree-flow-inline.h (loop_containing_stmt): New function. 23881 * tree-scalar-evolution.c: Add implementation. 23882 * tree-scalar-evolution.h: Add declarations. 23883 238842004-07-12 Vladimir Makarov <vmakarov@redhat.com> 23885 23886 PR rtl-optimization/15921 23887 * Makefile.in (global.o): Add recog.h. 23888 23889 * global.c (recog.h): Add the include-clause. 23890 (bb_info): New member earlyclobber. 23891 (allocate_bb_info, free_bb_info): Initialize/finish the new 23892 member. 23893 (earlyclobber_regclass, earlyclobber_regclass_length): The new 23894 global variables. 23895 (check_earlyclobber, regclass_intersect, 23896 mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1): 23897 New functions. 23898 (calculate_local_reg_bb_info): Calculate value of earlyclobber. 23899 (make_accurate_live_analysis): Modify pavin. 23900 239012004-07-12 Diego Novillo <dnovillo@redhat.com> 23902 23903 * tree-cfg.c (find_taken_edge): Statically compute the truth 23904 value of a predicate comparing an SSA_NAME to itself. 23905 239062004-07-12 Roger Sayle <roger@eyesopen.com> 23907 23908 * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the 23909 rs6000 doesn't have shift-and-add or shift-and-sub instructions 23910 by returning the cost of a multiplication plus an addition. 23911 239122004-07-12 Paolo Bonzini <bonzini@gnu.org> 23913 23914 PR tree-optimization/14107 23915 * gimplify.c (gimplify_return_expr): Accept a 23916 RETURN_EXPR with an error argument. 23917 * tree-optimize.c (init_tree_optimization_passes): 23918 Run pass_warn_function_return at -O0. 23919 239202004-07-12 Roger Sayle <roger@eyesopen.com> 23921 23922 * doc/invoke.texi: Correct -fasynchronous-unwind-tables option 23923 index entry. 23924 239252004-07-12 Richard Sandiford <rsandifo@redhat.com> 23926 23927 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete. 23928 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 23929 * config/mips/3000.md: Add copyright notice. Remove automota and 23930 function units; use generic ones instead. Only define reservations 23931 for things that are different from generic.md. Extend each clause 23932 to include r3900. 23933 * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files. 23934 * config/mips/mips.md: Include them. Remove define_function_units. 23935 (alu, imuldiv): New automata and units. 23936 239372004-07-12 Ben Elliston <bje@au.ibm.com> 23938 23939 * doc/invoke.texi (Optimize Options): Document -frename-registers 23940 not being enabled by default at -O3. 23941 239422004-07-11 Roger Sayle <roger@eyesopen.com> 23943 23944 * fold-const.c (fold) <PLUS_EXPR>: Canonicalize X + -C as X - C for 23945 floating point additions, to keep real immediate constant positive. 23946 <MINUS_EXPR>: For floating point subtractions, only transform X - -C 23947 into X + C, and leave positive real constants as X - C. 23948 239492004-07-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 23950 23951 * pa.c (hppa_gimplify_va_arg_expr): Remove comment. 23952 239532004-07-11 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 23954 23955 PR tree-optimization/15654 23956 * tree-tailcall.c (eliminate_tail_call): Remove unreachable code. 23957 239582004-07-11 Roger Sayle <roger@eyesopen.com> 23959 23960 * builtins.c (fold_builtin_fputs): Don't bother converting the 23961 return type to integer_type_node, as we've already checked that 23962 the result will be ignored. 23963 23964 * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such 23965 that signed addition, subtraction, multiplication, division, 23966 remainder, negation and absolute value may potentially trap. 23967 23968 * fold-const.c (fold_ignored_result): New function to strip 23969 non-side-effecting tree nodes from an expression whose result 23970 is ignored. 23971 (fold_convert): Call fold_ignored_result when casting a value 23972 to VOID_TYPE. 23973 (omit_one_operand): Call fold_ignored_result on the "omitted" 23974 operand when building a COMPOUND_EXPR. 23975 (pedantic_omit_one_operand): Likewise. 23976 * tree.h (fold_ignored_result): Prototype here. 23977 * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result 23978 when we're going to ignore the result. 23979 239802004-07-11 Richard Henderson <rth@redhat.com> 23981 23982 PR tree-opt/16383 23983 * tree-ssa-ccp.c (fold_stmt_r): Split out... 23984 * tree.c (fields_compatible_p, find_compatible_field): ... new. 23985 * tree.h (fields_compatible_p, find_compatible_field): Declare. 23986 * tree-sra.c (sra_hash_tree): Hash fields by offset. 23987 (sra_elt_eq): Use fields_compatible_p. 23988 (generate_one_element_ref): Use find_compatible_field. 23989 239902004-07-11 Richard Henderson <rth@redhat.com> 23991 23992 PR tree-opt/16422 23993 * tree-sra.c (generate_one_element_init): New. 23994 (generate_element_init): Use it. 23995 (scalarize_init): Push/pop gimplify context around it. 23996 (find_new_referenced_vars_1, find_new_referenced_vars): New. 23997 * gimplify.c (gimplify_expr): Allow SSA_NAME. 23998 239992004-07-11 Roger Sayle <roger@eyesopen.com> 24000 24001 * rtlanal.c (insn_rtx_cost): New function, moved and renamed from 24002 combine.c's combine_insn_cost. 24003 * rtl.h (insn_rtx_cost): Prototype here. 24004 * combine.c (combine_insn_cost): Delete function. 24005 (combine_validate_cost): Update callers of combine_insn_cost to 24006 call insn_rtx_cost instead. 24007 (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid 24008 requesting the rtx_cost of call and/or jump instructions. 24009 24010 * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling 24011 rtx_cost directly. Don't request/use the cost of call or jump 24012 instructions. Return -1 if the cost of any instruction can't be 24013 determined (or the BB contains a function call). 24014 (find_if_case_1): Abort transformation if total_bb_rtx_cost returns 24015 -1 (i.e. can't determine the cost of any instruction or the basic 24016 block contains a subroutine call). 24017 (find_if_case_2): Likewise. 24018 240192004-07-11 Roger Sayle <roger@eyesopen.com> 24020 24021 * rs6000.c (struct processor_costs): Change semantics of fields to 24022 include the COST_N_INSNS scaling, and update all initializers. 24023 (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields. 24024 Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE. 24025 Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When 24026 optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE. 24027 240282004-07-11 Joseph S. Myers <jsm@polyomino.org.uk> 24029 24030 * LANGUAGES: Remove obsolete information. 24031 240322004-07-11 Ulrich Weigand <uweigand@de.ibm.com> 24033 24034 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and 24035 SIGBUS signal frames, the PSW address points *to* the faulting 24036 instruction, not after it. 24037 240382004-07-11 Ulrich Weigand <uweigand@de.ibm.com> 24039 24040 * config/s390/s390.c (legitimize_tls_address): Handle constant offsets 24041 added to TLS symbol addresses. 24042 240432004-07-11 Richard Henderson <rth@redhat.com> 24044 24045 * expmed.c (init_expmed): Use stack-local structures for 24046 temporary rtl. Don't recognize shifts. 24047 240482004-07-11 Richard Henderson <rth@redhat.com> 24049 24050 * expr.c (store_expr): Don't fiddle subreg promotion for types 24051 with precision smaller than the mode. 24052 240532004-07-11 Joseph S. Myers <jsm@polyomino.org.uk> 24054 24055 * tree.h (all_types_permanent): Remove. 24056 240572004-07-11 Joseph S. Myers <jsm@polyomino.org.uk> 24058 24059 * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block, 24060 maybe_build_cleanup, update_decl_after_saving): Remove hooks. 24061 * langhooks.c (lhd_clear_binding_stack): Remove. 24062 * langhooks-def.h (lhd_clear_binding_stack, 24063 LANG_HOOKS_MAYBE_BUILD_CLEANUP, 24064 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, 24065 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL, 24066 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. 24067 (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing. 24068 * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, 24069 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK, 24070 LANG_HOOKS_MAYBE_BUILD_CLEANUP, 24071 LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison. 24072 * tree.h (poplevel): Don't declare. 24073 * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, 24074 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. 24075 * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, 24076 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): 24077 Remove. 24078 240792004-07-11 Joseph S. Myers <jsm@polyomino.org.uk> 24080 24081 PR tree-optimization/16437 24082 * c-common.c (shorten_compare): Don't mark result of conversion to 24083 narrower signed type as overflowing. 24084 * fold-const.c (decode_field_reference): Determine whether 24085 signedness comes from outer type using precision rather than size. 24086 240872004-07-11 Phil Edwards <phil@codesourcery.com> 24088 24089 * configure.ac: Alphabetize --enable-checking list, add 24090 missing valgrind entry. 24091 * configure: Regenerate. 24092 240932004-07-11 Phil Edwards <phil@codesourcery.com> 24094 24095 * doc/install.texi (Testing): Fix syntax in "make check" example. 24096 240972004-07-10 James E Wilson <wilson@specifixinc.com> 24098 24099 * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp. 24100 241012004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 24102 24103 PR rtl-optimization/16001 24104 * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in 24105 niter_expr. 24106 241072004-07-10 Geoffrey Keating <geoffk@apple.com> 24108 24109 * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt. 24110 241112004-07-10 Steve Kargl <sgk@troutmask.apl.washington.edu> 24112 James Morrison <phython@gcc.gnu.org> 24113 24114 * doc/contrib.texi (Contributors): Add gfortran contributors and 24115 fix a couple of typos. 24116 241172004-07-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 24118 24119 PR rtl-optimization/15387 24120 * calls.c (check_sibcall_argument_overlap_1): Handle pointers 24121 to incoming args space correctly. 24122 241232004-07-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 24124 24125 * pa.c (output_indirect_call): Only use %r2 as the link register in 24126 indirect calls with the long PA 2.0 pc-relative branch. 24127 241282004-07-10 Daniel Jacobowitz <dan@debian.org> 24129 24130 * config/i386/i386.c (override_options): Pick a 64-bit CPU 24131 for the default tuning if TARGET_64BIT. 24132 241332004-07-10 Richard Henderson <rth@redhat.com> 24134 24135 * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary 24136 to HOST_WIDE_INT. Fold pad-args-down arithmetic. 24137 241382004-07-10 Jakub Jelinek <jakub@redhat.com> 24139 24140 * expr.h (store_bit_field, extract_bit_field): Remove last argument. 24141 * expmed.c (store_bit_field, extract_bit_field): Remove last 24142 argument. 24143 * builtins.c (expand_builtin_signbit): Adjust callers. 24144 * optabs.c (expand_vector_binop, expand_vector_unop): Likewise. 24145 * calls.c (store_unaligned_arguments_into_pseudos): Likewise. 24146 * ifcvt.c (noce_emit_move_insn): Likewise. 24147 * stmt.c (expand_return): Likewise. 24148 * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg, 24149 store_field, expand_expr_real_1): Likewise. 24150 241512004-07-10 Richard Henderson <rth@redhat.com> 24152 24153 * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR. 24154 241552004-07-09 Mike Stump <mrs@apple.com> 24156 24157 * config/darwin.c (no_dead_strip): Add. 24158 (HAVE_DEAD_STRIP): Add. 24159 (darwin_emit_unwind_label): Ensure that we don't dead code strip 24160 the .eh label. 24161 241622004-07-09 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 24163 24164 * tree-ssa-loop-im.c: New file. 24165 * Makefile.in (tree-ssa-loop-im.o): Add. 24166 * cfgloop.c (superloop_at_depth): New function. 24167 * cfgloop.h (superloop_at_depth): Declare. 24168 * common.opt (ftree-lim): New flag. 24169 * expr.c (array_ref_up_bound): New function. 24170 * params.def (PARAM_LIM_EXPENSIVE): New parameter. 24171 * timevar.def (TV_LIM): New timevar. 24172 * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when 24173 computing immediate uses of a phi node. 24174 * tree-flow.h (struct tree_ann_common_d): Add aux field. 24175 (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare. 24176 * tree-optimize.c (init_tree_optimization_passes): Add pass_lim. 24177 * tree-pass.h (pass_lim): Declare. 24178 * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New 24179 functions. 24180 (pass_lim): New pass structure. 24181 * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly. 24182 * tree.c (in_array_bounds_p): New function. 24183 * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs. 24184 (in_array_bounds_p, array_ref_up_bound): Declare. 24185 * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document. 24186 * doc/passes.texi (tree-ssa-loop-im.c): Document. 24187 241882004-07-09 Richard Henderson <rth@redhat.com> 24189 24190 * builtins.c (expand_builtin_stpcpy): Don't modify len. 24191 24192 * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs 24193 with prejudice. 24194 241952004-07-10 Kelley Cook <kcook@gcc.gnu.org> 24196 24197 * flags.h: Delete redundant prototypes that are being generated 24198 in options.h from common.opt. 24199 * common.opt: Add in the expository comments formerly in flags.h. 24200 242012004-07-09 Jan Beulich <jbeulich@novell.com> 24202 24203 * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers 24204 available for use only when TARGET_MMX/_SSE is set, and check for 24205 variable argument function if any register count is non-zero. 24206 (function_arg): Correctly suppress repeated warnings for passing SSE 24207 vectors are arguments without SSE enabled. 24208 (ix86_function_arg_boundary): Without SSE enabled, the use of what 24209 would be SSE register modes does no longer influence the alignment. 24210 242112004-07-09 Richard Henderson <rth@redhat.com> 24212 24213 * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD. 24214 Always align upward to arg boundary. Use size_in_bytes/round_up. 24215 Maintain type-correctness of constants. 24216 * stor-layout.c (round_up, round_down): Special-case powers of 2. 24217 242182004-07-09 David S. Miller <davem@nuts.davemloft.net> 24219 24220 * config/sparc/sparc.c (*_costs): Scale instruction costs 24221 by COSTS_N_INSNS. 24222 (sparc_rtx_costs): Adjust as appropriate. 24223 242242004-07-09 Jan Beulich <jbeulich@novell.com> 24225 24226 * config/i386/mm3dnow.h: New. 24227 * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64. 24228 242292004-07-09 Richard Henderson <rth@redhat.com> 24230 24231 * simplify-rtx.c (simplify_const_relational_operation): Only 24232 look at bounds of scalar integers. 24233 242342004-07-09 Jan Beulich <jbeulich@novell.com> 24235 24236 * config/i386/i386.md (sse2_clflush): Use correct operand for clflush. 24237 242382004-07-09 Andrew Pinski <apinski@apple.com> 24239 24240 * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as 24241 always referenced. 24242 (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and 24243 UOBJC_METACLASS_decl. 24244 242452004-07-09 James E Wilson <wilson@specifixinc.com> 24246 24247 PR target/16364 24248 * config/ia64/ia64.c (ia64_function_arg): For a single element HFA, 24249 do return a parallel if hfa_mode == XFmode and mode == TImode. 24250 242512004-07-09 Jan Beulich <jbeulich@novell.com> 24252 24253 * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes 24254 permissible for unary plus. 24255 242562004-07-09 Jan Beulich <jbeulich@novell.com> 24257 24258 * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED. 24259 (BT_FN_UINT): Rename from BT_FN_UNSIGNED. 24260 (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED. 24261 (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG, 24262 BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New. 24263 * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx, 24264 BUILTIN_POPCOUNTxxx): Arguments are unsigned. 24265 (BUILTIN_xxxIMAX): New. 24266 * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX, 24267 BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and 24268 BUILT_IN_PARITYIMAX. 24269 242702004-07-09 David S. Miller <davem@nuts.davemloft.net> 24271 24272 * config/sparc/sparc.h (processor_costs): Define. 24273 (sparc_costs): Declare. 24274 * config/sparc/sparc.c (cypress_costs, supersparc_costs, 24275 hypersparc_costs, sparclet_costs, ultrasparc_costs, 24276 ultrasparc3_costs): New. 24277 (sparc_override_options): Set sparc_costs as appropriate. 24278 (sparc_rtx_costs): Use sparc_costs instead of messy 24279 conditionals. 24280 242812004-07-09 Steven Bosscher <stevenb@suse.de> 24282 24283 * doc/md.texi (Processor pipeline description): Mention that 24284 the old pipeline description is deprecated. 24285 24286 * config/rs6000/7450.md (automaton ppc7450): Split up, move 24287 mciu_7450 function unit to... 24288 (automaton ppc7450mciu): ...new automaton. 24289 24290 * haifa-sched.c (insert_schedule_bubbles_p): Remove. 24291 (schedule_block): Don't consider inserting bubbles. 24292 (sched_init): Don't initialize DFA bubbles. 24293 * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES, 24294 TARGET_SCHED_DFA_BUBBLE): Remove. 24295 * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks. 24296 * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES, 24297 TARGET_SCHED_DFA_BUBBLE): Remove documentation. 24298 24299 * stmt.c (conditional_context): Remove prototype. 24300 * tree.h (conditional_context): Remove. 24301 * tree-cfg.c (pre_insert_on_edge): Remove. 24302 24303 * c-common.h (c_expand_asm_operands): Remove prototype. 24304 * c-typeck.c (c_expand_asm_operands): Remove. 24305 243062004-07-09 Jan Beulich <jbeulich@novell.com> 24307 24308 * config/i386/i386.c (classify_argument): Treat V1xx modes the same as 24309 their base modes. CTImode, TCmode, and XCmode must be passed in memory. 24310 TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode, 24311 and V8QI are class SSE. All sufficiently small remaining vector modes 24312 must be passed in one or two integer registers. 24313 (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be 24314 returned in memory. 24315 (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and 24316 __builtin_ia32_pmuludq128 have non-uniform argument and return types 24317 and must thus be handled explicitly. 24318 * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between 24319 MMX and XMM regs. 24320 (movv8qi_internal, movv4hi_internal, movv2si_internal, 24321 movv2sf_internal): Permit moving between MMX and XMM registers (since 24322 MMX areguments and return values are passed in XMM registers). 24323 (sse2_umulsidi3): Correct type and mode. 24324 243252004-07-09 Richard Henderson <rth@redhat.com> 24326 24327 * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors. 24328 243292004-07-09 Eric Christopher <echristo@redhat.com> 24330 24331 * config/rs6000/40x.md: Split into two automatons. 24332 243332004-07-09 Zack Weinberg <zack@codesourcery.com> 24334 Andrew Pinski <apinski@apple.com> 24335 24336 * c-opts.c (c_common_post_options): Force unit-at-a-time mode 24337 on when we have more than one input file. 24338 (c_common_parse_file): Restore loop over all input files. 24339 Clarify diagnostic for -dy when YYDEBUG wasn't defined. 24340 24341 * c-decl.c (set_type_context): New function. 24342 (pop_scope): Use it to set context of types. When we 24343 encounter a TYPE_DECL, set the context of the attached type too. 24344 (pop_file_scope): Don't call cpp_undef_all here. 24345 (diagnose_mismatched_decls): Do not complain about a second 24346 definition of an 'extern inline' function if it's not in the 24347 same translation unit. Do not complain about inline 24348 declaration after use if the use was in a different 24349 translation unit. 24350 (merge_decls): Don't clobber olddecl's DECL_CONTEXT. 24351 (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in 24352 the external scope. 24353 (pushdecl_top_level): Likewise. 24354 (grokdeclarator): Clarify what is going on with setting 24355 DECL_EXTERNAL on function types, a little. 24356 (c_write_global_declarations): Don't do anything if 24357 -fsyntax-only or errors have been encountered. 24358 243592004-07-09 Zack Weinberg <zack@codesourcery.com> 24360 24361 * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument. 24362 243632004-07-09 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 24364 24365 PR target/16459 24366 * pa.c (output_indirect_call): Use %r2 as the link register when 24367 calling $$dyncall with a pc-relative branch. 24368 243692004-07-08 Gerald Pfeifer <gerald@pfeifer.com> 24370 24371 * doc/install.texi (Binaries): Mention OpenPKG. 24372 243732004-07-09 Diego Novillo <dnovillo@redhat.com> 24374 24375 Fix PR tree-optimization/15555 24376 * tree-dfa.c (dump_variable): If the variable is a pointer 24377 SSA_NAME, also dump its points-to information. 24378 * tree-flow.h (struct ptr_info_def): Add field 24379 is_dereferenced. 24380 (dump_points_to_info_for): Declare. 24381 (debug_points_to_info_for): Declare. 24382 * tree-optimize.c (init_tree_optimization_passes): Add a 24383 second alias analysis pass after DOM2. 24384 Move pass_del_pta to a later spot. 24385 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not 24386 create a name tags when we find a dereferenced pointer. Just 24387 mark the pointer dereferenced. 24388 (collect_points_to_info_for): Move code to clear points-to 24389 information to create_name_tags. 24390 (create_name_tags): New function. 24391 (compute_flow_sensitive_aliasing): Call it. 24392 (setup_pointers_and_addressables): Mark type tags for renaming 24393 here instead of ... 24394 (create_memory_tag): ... here. 24395 (merge_pointed_to_info): Do not merge PT_MALLOC attributes. 24396 (dump_points_to_info_for): Declare extern. 24397 (debug_points_to_info_for): New function. 24398 243992004-07-09 Paolo Bonzini <bonzini@gnu.org> 24400 24401 * config/arc/arc.md: Switch to DFA-based scheduler description. 24402 * config/arc/arc.c: Switch to DFA-based scheduler description. 24403 244042004-07-09 Richard Earnshaw <rearnsha@arm.com> 24405 24406 * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame 24407 pointer. 24408 244092004-07-09 Richard Henderson <rth@redhat.com> 24410 24411 * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove. 24412 * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24413 (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg. 24414 * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove. 24415 24416 * config/v850/v850-protos.h (v850_va_arg): Remove. 24417 * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24418 (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg. 24419 * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove. 24420 (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types. 24421 (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE. 24422 244232004-07-09 Richard Earnshaw <rearnsha@arm.com> 24424 24425 PR target/12133 24426 * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float 24427 and DImode to use +/-4k offset. 24428 244292004-07-09 Richard Henderson <rth@redhat.com> 24430 24431 * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg): 24432 Remove. 24433 * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24434 (xstormy16_gimplify_va_arg_expr): Rewrite from 24435 xstormy16_expand_builtin_va_arg. 24436 * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove. 24437 24438 * config/sparc/sparc-protos.h (sparc_va_arg): Remove. 24439 * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static. 24440 24441 * config/sh/sh-protos.h (sh_va_arg): Remove. 24442 * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24443 (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg. 24444 * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove. 24445 24446 * config/pa/pa-protos.h (hppa_va_arg): Remove. 24447 * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24448 (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg. 24449 * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove. 24450 24451 * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove. 24452 * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24453 (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg. 24454 * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove. 24455 244562004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr> 24457 24458 * config/sparc/sparc.md (return): Rewrite length formula. 24459 * config/sparc/sparc.c (output_return): Pass 1 as 5th 24460 argument to final_scan_insn when in a delay slot. 24461 (output_sibcall): Likewise. 24462 244632004-07-09 Richard Earnshaw <rearnsha@arm.com> 24464 24465 * arm.c (arm_cpp_interwork): New variable. 24466 (arm_override_options): Set it if TARGET_INTERWORK was on the command 24467 line. 24468 * arm.h (arm_cpp_interwork): Declare it. 24469 (TARGET_CPU_CPP_BUILTINS): Use it to control definition of 24470 __THUMB_INTERWORK__ in the preprocessor. 24471 244722004-07-09 Nathan Sidwell <nathan@codesourcery.com> 24473 24474 * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto. 24475 244762004-07-09 Eric Botcazou <ebotcazou@libertysurf.fr> 24477 24478 PR target/16416 24479 * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro. 24480 Override default settings to account for -m32 and -m64. 24481 244822004-07-08 Randolph Chung <tausq@debian.org> 24483 24484 * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. 24485 244862004-07-09 Alexandre Oliva <aoliva@redhat.com> 24487 24488 * builtins.c (fold_builtin_strncpy): Make sure len is a constant 24489 before comparing it as such. 24490 244912004-07-08 Richard Henderson <rth@redhat.com> 24492 24493 * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a 24494 temporary. Use bit arithmetic to align. 24495 244962004-07-08 Jerry Quinn <jlquinn@optonline.net> 24497 24498 * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p, 24499 nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P, 24500 NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P. 24501 * bb-reorder.c (mark_bb_for_unlikely_executed_section, 24502 add_labels_and_missing_jumps, find_jump_block, 24503 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): 24504 Likewise. 24505 * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen, 24506 link_btr_uses, move_btr_def): Likewise. 24507 * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto, 24508 expand_builtin_expect_jump): Likewise. 24509 * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise. 24510 * calls.c (expand_call, emit_library_call_value_1): Likewise. 24511 * cfganal.c (forwarder_block_p): Likewise. 24512 * cfgbuild.c (inside_basic_block_p, count_basic_blocks, 24513 make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1, 24514 find_bb_boundaries): Likewise. 24515 * cfgcleanup.c (try_simplify_condjump, try_forward_edges, 24516 merge_blocks_move_predecessor_nojumps, 24517 merge_blocks_move_successor_nojumps, insns_match_p, 24518 flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, 24519 try_optimize_cfg): Likewise. 24520 * cfgexpand.c (expand_block, construct_exit_block): Likewise. 24521 * cfglayout.c (skip_insns_after_block, label_for_bb, 24522 record_effective_endpoints, insn_locators_initialize, 24523 fixup_reorder_chain, update_unlikely_executed_notes): Likewise. 24524 * cfgmainloop.c (create_loop_notes): Likewise. 24525 * cfgrtl.c (delete_insn, delete_insn_chain, 24526 create_basic_block_structure, rtl_delete_block, free_bb_for_insn, 24527 update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks, 24528 block_label, try_redirect_by_replacing_jump, last_loop_beg_note, 24529 redirect_branch_edge, force_nonfallthru_and_redirect, 24530 rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p, 24531 rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb, 24532 update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info, 24533 purge_dead_edges, cfg_layout_redirect_edge_and_branch, 24534 cfg_layout_delete_block, cfg_layout_can_merge_blocks_p, 24535 cfg_layout_merge_blocks, rtl_block_ends_with_call_p, 24536 need_fake_edge_p, rtl_flow_call_edges_add): Likewise. 24537 * combine.c (combine_instructions, can_combine_p, try_combine, 24538 find_split_point, record_dead_and_set_regs, reg_dead_at_p, 24539 distribute_notes, distribute_links, insn_cuid): Likewise. 24540 * cse.c (fold_rtx, cse_insn, cse_around_loop, 24541 invalidate_skipped_block, cse_set_around_loop, 24542 cse_end_of_basic_block, cse_main, cse_basic_block, 24543 cse_condition_code_reg): Likewise. 24544 * cselib.c (cselib_process_insn): Likewise. 24545 * ddg.c (create_ddg): Likewise. 24546 * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify): 24547 Likewise. 24548 * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug, 24549 gen_label_die, dwarf2out_var_location): Likewise. 24550 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn, 24551 next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn, 24552 last_call_insn, active_insn_p, next_label, prev_label, 24553 link_cc0_insns, next_cc0_user, try_split, add_insn_after, 24554 add_insn_before, remove_insn, add_function_usage_to, 24555 reorder_insns, find_line_note, remove_unnecessary_notes, 24556 emit_insn_after_1, classify_insn): Likewise. 24557 * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before, 24558 connect_post_landing_pads, sjlj_mark_call_sites, 24559 sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers, 24560 can_throw_internal, can_throw_external, set_nothrow_function_flags, 24561 convert_to_eh_region_ranges): Likewise. 24562 * explow.c (optimize_save_area_alloca): Likewise. 24563 * expr.c (expand_expr_real): Likewise. 24564 * final.c (insn_current_reference_address, compute_alignments, 24565 shorten_branches, final, scan_ahead_for_unlikely_executed_note, 24566 final_scan_insn, output_asm_label, leaf_function_p): Likewise. 24567 * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables, 24568 propagate_block_delete_insn, propagate_one_insn, 24569 init_propagate_block_info, propagate_block, libcall_dead_p, 24570 mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment): 24571 Likewise. 24572 * function.c (instantiate_virtual_regs, reorder_blocks_1, 24573 expand_function_start, expand_function_end, contains, 24574 thread_prologue_and_epilogue_insns, 24575 reposition_prologue_and_epilogue_notes): Likewise. 24576 * gcse.c (constprop_register, bypass_conditional_jumps, 24577 insert_insn_end_bb, gcse_after_reload): Likewise. 24578 * genemit.c (gen_expand, gen_split): Likewise. 24579 * genpeep.c (gen_peephole, main): Likewise. 24580 * global.c (build_insn_chain): Likewise. 24581 * graph.c (node_data, print_rtl_graph_with_bb): Likewise. 24582 * haifa-sched.c (unlink_other_notes, unlink_line_notes, 24583 get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes, 24584 restore_line_notes, rm_redundant_line_notes, rm_other_notes, 24585 ok_for_early_queue_removal, set_priorities, sched_init): Likewise. 24586 * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn, 24587 cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block, 24588 merge_if_block, block_jumps_and_fallthru_p, find_if_block, 24589 dead_or_predicable): Likewise. 24590 * integrate.c (try_constants): Likewise. 24591 * jump.c (rebuild_jump_labels, cleanup_barriers, 24592 purge_line_number_notes, init_label_info, mark_all_labels, 24593 squeeze_notes, get_label_before, get_label_after, 24594 reversed_comparison_code_parts, simplejump_p, pc_set, 24595 returnjump_p, onlyjump_p, follow_jumps, mark_jump_label, 24596 delete_barrier, delete_prior_computation, delete_computation, 24597 delete_related_insns, delete_for_peephole, redirect_jump): 24598 Likewise. 24599 * lcm.c (optimize_mode_switching): Likewise. 24600 * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc): 24601 Likewise. 24602 * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise. 24603 * loop-invariant.c (find_exits, find_invariants_bb): Likewise. 24604 * loop-iv.c (simplify_using_assignment): Likewise. 24605 * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg, 24606 libcall_benefit, skip_consec_insns, move_movables, prescan_loop, 24607 find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop, 24608 loop_bivs_init_find, strength_reduce, check_insn_for_bivs, 24609 check_insn_for_givs, check_final_value, update_giv_derive, 24610 basic_induction_var, product_cheap_p, check_dbra_loop, 24611 loop_insn_first_p, last_use_this_basic_block, 24612 canonicalize_condition, get_condition, loop_regs_scan, load_mems, 24613 try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise. 24614 * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule, 24615 sms_schedule_by_order): Likewise. 24616 * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise. 24617 * postreload.c (reload_cse_simplify_operands, reload_combine, 24618 reload_cse_move2add): Likewise. 24619 * predict.c (can_predict_insn_p, estimate_probability, 24620 expected_value_to_br_prob, process_note_predictions): Likewise. 24621 * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise. 24622 * profile.c (branch_prob): Likewise. 24623 * ra-build.c (live_out_1, livethrough_conflicts_bb, 24624 detect_webs_set_in_cond_jump): Likewise. 24625 * ra-debug.c (ra_print_rtx_object, ra_debug_insns, 24626 ra_print_rtl_with_bb): Likewise. 24627 * ra-rewrite.c (insert_stores, rewrite_program2): Likewise. 24628 * recog.c (next_insn_tests_no_inequality, find_single_use, 24629 split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise. 24630 * reg-stack.c (next_flags_user, record_label_references, 24631 emit_swap_insn, swap_rtx_condition, subst_stack_regs, 24632 compensate_edge, convert_regs_1): Likewise. 24633 * regclass.c (scan_one_insn): Likewise. 24634 * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, 24635 regmove_optimize, fixup_match_1, single_set_for_csa, 24636 combine_stack_adjustments_for_block): Likewise. 24637 * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise. 24638 * reload.c (find_reloads, find_reloads_address_1, subst_reloads, 24639 find_equiv_reg): Likewise. 24640 * reload1.c (reload, calculate_needs_all_insns, set_label_offsets, 24641 reload_as_needed, emit_input_reload_insns, do_output_reload, 24642 delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges): 24643 Likewise. 24644 * reorg.c (find_end_label, emit_delay_sequence, 24645 delete_from_delay_slot, delete_scheduled_jump, optimize_skip, 24646 get_jump_flags, rare_destination, mostly_true_jump, 24647 try_merge_delay_insns, redundant_insn, own_thread_p, 24648 fill_simple_delay_slots, fill_slots_from_thread, 24649 fill_eager_delay_slots, relax_delay_slots, make_return_insns, 24650 dbr_schedule): Likewise. 24651 * resource.c (find_basic_block, next_insn_no_annul, 24652 find_dead_or_set_registers, mark_target_live_regs): Likewise. 24653 * rtl.h (RTX_PREV): Likewise. 24654 * rtlanal.c (global_reg_mentioned_p, no_labels_between_p, 24655 no_jumps_between_p, reg_used_between_p, reg_referenced_between_p, 24656 reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage, 24657 find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1, 24658 tablejump_p, computed_jump_p, insns_safe_to_move_p, 24659 find_first_parameter_load, can_hoist_insn_p): Likewise. 24660 * sched-deps.c (get_condition, add_dependence, sched_analyze_2, 24661 sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise. 24662 * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns, 24663 schedule_ebbs): Likewise. 24664 * sched-rgn.c (is_cfg_nonregular, find_conditional_protection, 24665 is_conditionally_protected, can_schedule_ready_p, 24666 add_branch_dependences, debug_dependencies): Likewise. 24667 * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable): 24668 Likewise. 24669 * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p, 24670 reg_dead_after_loop, loop_find_equiv_value, loop_iterations, 24671 set_dominates_use, ujump_to_loop_cont): Likewise. 24672 * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise. 24673 * varasm.c (output_constant_pool_1): Likewise. 24674 246752004-07-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 24676 24677 * tree-scalar-evolution.c: New file. 24678 * tree-scalar-evolution.h: New file. 24679 * tree-ssa-loop-niter.c: New file. 24680 * Makefile.in (SCEV_H): New. 24681 (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files. 24682 * cfgloop.h (struct loop): Add bounds field. 24683 * tree-flow.h (struct tree_niter_desc): New type. 24684 (number_of_iterations_cond, number_of_iterations_exit, 24685 loop_niter_by_eval, find_loop_niter_by_eval, 24686 estimate_numbers_of_iterations, can_count_iv_in_wider_type, 24687 free_numbers_of_iterations_estimates): Declare. 24688 * tree.h (lower_bound_in_type, upper_bound_in_type): Declare. 24689 * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter. 24690 * doc/invoke.texi (max-iterations-to-track): Document. 24691 246922004-07-08 Kaz Kojima <kkojima@gcc.gnu.org> 24693 24694 * config/sh/sh.c (sh_va_arg): Initinalize lab_over. 24695 * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses. 24696 (MODE_AFTER): Add cast appropriately. 24697 * config/sh/sh.md (movdi splitter): Likewise. 24698 (casesi_worker_2): Add const qualifier appropriately. 24699 (eh_return): Remove unused variable. 24700 (insv): Initialize v; 24701 247022004-07-08 Richard Henderson <rth@redhat.com> 24703 24704 * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove. 24705 * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24706 (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg. 24707 * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove. 24708 (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label. 24709 24710 * config/m32r/m32r-protos.h (m32r_va_arg): Remove. 24711 * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24712 (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg. 24713 * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove. 24714 24715 * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove. 24716 * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24717 (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg. 24718 * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove. 24719 24720 * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove. 24721 * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24722 (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg. 24723 * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove. 24724 24725 * config/i860/i860-protos.h (i860_va_arg): Remove. 24726 * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24727 (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg. 24728 * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove. 24729 247302004-05-31 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> 24731 24732 * system.h: Prototype getpagesize if missing. 24733 * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS. 24734 * configure: Regenerate. 24735 * config.in: Regenerate. 24736 247372004-07-08 Richard Henderson <rth@redhat.com> 24738 24739 * config/fr30/fr30-protos.h (fr30_va_arg): Remove. 24740 * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24741 (fr30_gimplify_va_arg_expr): New. 24742 (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove. 24743 * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove. 24744 247452004-07-08 Vladimir Makarov <vmakarov@redhat.com> 24746 24747 PR target/16414 24748 * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison 24749 of asm_noperands result. 24750 247512004-07-08 Richard Henderson <rth@redhat.com> 24752 24753 * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove. 24754 * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24755 (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg. 24756 * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove. 24757 247582004-07-08 Richard Henderson <rth@redhat.com> 24759 24760 * builtins.c (ind_gimplify_va_arg_expr): New. 24761 * tree.h (ind_gimplify_va_arg_expr): Declare. 24762 * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it. 24763 247642004-07-08 Jan Beulich <jbeulich@novell.com> 24765 24766 * expmed.c (extract_bit_field): Correct condition to use vec_extract 24767 patterns also on vector elements other than the first one. 24768 * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing 24769 break statements. 24770 247712004-07-08 Geoffrey Keating <geoffk@apple.com> 24772 24773 * config/rs6000/darwin-ldouble.c: Correct reference 24774 to the Linnainmaa paper. 24775 247762004-07-08 Richard Henderson <rth@redhat.com> 24777 24778 * config/arc/arc-protos.h (arc_va_arg): Remove. 24779 * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24780 (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg. 24781 * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove. 24782 24783 * config/c4x/c4x-protos.h (c4x_va_arg): Remove. 24784 * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. 24785 (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg. 24786 * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove. 24787 247882004-07-08 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 24789 24790 * pa.md (prefetch_32, prefetch_64): Simplify constraint checks. 24791 247922004-07-08 Zack Weinberg <zack@codesourcery.com> 24793 24794 * c-decl.c (static_ctors, static_dtors): Make static. 24795 (pop_file_scope): Call c_common_write_pch and 24796 cgraph_finalize_compilation_unit here. 24797 (build_cdtor): Moved here from c-objc-common.c; simplify. 24798 (c_write_global_declarations_1): Clarify comment. 24799 (c_write_global_declarations): Close the external scope before 24800 doing anything else. Call build_cdtor, cgraph_optimize, and 24801 mudflap_finish_file here. 24802 * c-lang.c (finish_file): Don't call c_objc_common_finish_file. 24803 Clarify comment. 24804 * c-objc-common.c: No need to include cgraph.h. 24805 (build_cdtor): Moved to c-decl.c. 24806 (c_objc_common_finish_file): Delete. 24807 * c-tree.h: Update to match. 24808 * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file. 24809 (generate_static_references): Set TREE_USED before calling finish_decl. 24810 Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation 24811 on the static_instances_decl. 24812 248132004-07-08 Zack Weinberg <zack@codesourcery.com> 24814 24815 * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope 24816 decls when there is only one input translation unit. 24817 * langhooks.c (lhd_set_decl_assembler_name): Partially revert 24818 change of 2004-07-05; do not treat declarations with 24819 DECL_CONTEXT a TRANSLATION_UNIT_DECL specially. 24820 * opts.c (cur_in_fname): Delete. 24821 * opts.h: Likewise. 24822 * tree.c: Revert changes of 2004-07-05; no special treatment 24823 for TRANSLATION_UNIT_DECLs. 24824 * Makefile.in (tree.o): Update dependencies. 24825 248262004-07-08 Roger Sayle <roger@eyesopen.com> 24827 24828 * builtins.c (fold_builtin_strcpy): Merge functionality from 24829 simplify_builtin_strcpy. Add additional len argument. No longer 24830 static. Remove function prototype. 24831 (fold_builtin_strncpy): Likewise integrate functionality from 24832 simplify_builtin_strncpy. Add additional slen argument. No 24833 longer static. Remove function prototype. 24834 (simplify_builtin_strcy, simplify_builtin_strncpy): Delete. 24835 (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change 24836 types of "ignore" and "unlocked" parameters to bool. 24837 (fold_builtin_1): Add additional ignore argument. Call renamed 24838 fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked" 24839 builtins. Update arguments to fold_builtin_strncpy and 24840 fold_builtin_strcpy. Add function prototype. 24841 (fold_builtin): Add additional Boolean ignore argument to pass 24842 to fold_builtin_1. 24843 (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy 24844 and fold_builtin_strncpy instead of simplify_builtin_fputs, 24845 simplify_builtin_strcpy and simplify_builtin_strncpy respectively. 24846 24847 * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy, 24848 simplify_builtin_strncpy): Delete function prototypes. 24849 * tree.h (fold_builtin_fputs, fold_builtin_strcpy, 24850 fold_builtin_strncpy): Add function prototypes here. 24851 (fold_builtin): Update function prototype with new "bool ignore". 24852 24853 * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin. 24854 (ccp_fold_builtin): Update call to fold_builtin. Call 24855 fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy 24856 instead of simplify_builtin_fputs, simplify_builtin_strcpy and 24857 simplify_builtin_strncpy respectively. 24858 * fold-const.c (fold): Update call to fold_builtin. 24859 248602004-07-08 Alexandre Oliva <aoliva@redhat.com> 24861 24862 * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy 24863 to strcpy. 24864 24865 * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. 24866 (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise. 24867 (FUNCTION_ARG_CALLEE_COPIES): Likewise. 24868 * calls.c: Remove ifdefs of macros above. 24869 * functions.c: Likewise. 24870 * expr.c: Likewise. 24871 248722004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr> 24873 24874 * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete. 24875 (arch attribute): Delete. 24876 (current_function_calls_alloca attribute): Rename into calls_alloca. 24877 (calls_eh_return): New attribute. 24878 (leaf_function): Likewise. 24879 (length attribute): Fix formula for sibcalls. 24880 (return insn): Correctly compute the 'length' attribute. 24881 (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca. 24882 248832004-07-08 Richard Henderson <rth@redhat.com> 24884 24885 * tree-cfg.c (make_exit_edges): Use get_call_expr_in. 24886 (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise. 24887 (tree_block_ends_with_call_p, need_fake_edge_p): Likewise. 24888 * tree-eh.c (lower_eh_constructs_1): Likewise. 24889 * tree-sra.c (sra_walk_modify_expr): Likewise. 24890 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 24891 (eliminate_unnecessary_stmts): Likewise. 24892 * tree-ssa-dse.c (dse_optimize_stmt): Likewise. 24893 * tree-tailcall.c (optimize_tail_call): Likewise. 24894 * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch. 24895 248962004-07-08 Paolo Bonzini <bonzini@gnu.org> 24897 Jakub Jelinek <jakub@redhat.com> 24898 24899 * config/i386/i386.c (override_options): Enable 24900 SSE prefetches with -mtune, as long as we are 24901 compiling for i686 or higher. All i686 processors 24902 accept SSE prefetches as NOPS, some i586's don't. 24903 249042004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr> 24905 24906 PR target/10567 24907 * config/sparc/sparc.md (update_return): Honor flag_delayed_branch. 24908 249092004-07-08 Diego Novillo <dnovillo@redhat.com> 24910 24911 * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in 24912 the handling of clobbering ASM_EXPRs. 24913 249142004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr> 24915 24916 PR target/16430 24917 * config/sparc/sparc.c (function_value): In 64-bit mode, 24918 return the aggregates larger than 16 bytes like unions. 24919 249202004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr> 24921 24922 PR target/16199 24923 * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When 24924 'temp' is zero, generate new pseudos as needed and emit the 24925 sequence of insns in single-assignment form. Resync comments 24926 with code. 24927 (sparc_emit_set_const64): Pass zero as 'temp' argument to above 24928 function before reload. 24929 249302004-07-08 Nathan Sidwell <nathan@codesourcery.com> 24931 24932 * vec.c (vec_assert_fail): Remove duplicate 'function'. 24933 24934 * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed. 24935 24936 * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init): 24937 Allocation is signed. 24938 (VEC_reserve): Return flag, allocation is signed. 24939 249402004-07-08 Richard Henderson <rth@redhat.com> 24941 24942 * tree-ssa-ccp.c (fold_stmt): Get type directly from 24943 OBJ_TYPE_REF_OBJECT. 24944 249452004-07-08 Joseph S. Myers <jsm@polyomino.org.uk> 24946 Neil Booth <neil@daikokuya.co.uk> 24947 24948 PR c/2511 24949 PR c/3325 24950 * c-decl.c (finish_struct): Ensure bit-fields are given the 24951 correct type. 24952 * c-common.c (c_common_signed_or_unsigned_type): For C, require 24953 the precision to match as well as the mode. 24954 * expr.c (reduce_to_bit_field_precision): New function. 24955 (expand_expr_real_1): Reduce expressions of bit-field type to 24956 proper precision. 24957 * langhooks.h (reduce_bit_field_operations): New hook. 24958 * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): 24959 Define. 24960 * c-lang.c, objc/objc-lang.c 24961 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. 24962 * objc/objc-act.c (check_ivars): Convert types to bit-field types 24963 before checking. 24964 * tree.c (build_nonstandard_integer_type): New function. 24965 * tree.h (build_nonstandard_integer_type): New prototype. 24966 * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat 24967 conversions between integer and boolean types as useless. 24968 249692004-07-08 Paolo Bonzini <bonzini@gnu.org> 24970 24971 * c-common.c (c_common_nodes_and_builtins): Do not 24972 create __builtin_ptrdiff_t and __builtin_size_t. 24973 249742004-07-08 Andrew Pinski <apinski@apple.com> 24975 24976 * Makefile.in (libbackend.o): Add -combine to the gcc 24977 command line. 24978 249792004-07-08 Nick Clifton <nickc@redhat.com> 24980 24981 * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define. 24982 Set to -Os. 24983 249842004-07-08 Richard Henderson <rth@redhat.com> 24985 24986 * except.c (expand_eh_region_start, expand_eh_region_end, 24987 expand_eh_handler, expand_eh_region_end_cleanup, 24988 expand_start_all_catch, expand_start_catch, expand_end_catch, 24989 expand_end_all_catch, expand_eh_region_end_allowed, 24990 expand_eh_region_end_must_not_throw, expand_eh_region_end_throw, 24991 expand_eh_region_end_fixup): Remove. 24992 * stmt.c (struct nesting): Remove stack_level, innermost_stack_block, 24993 cleanups, outer_cleanups, label_chain, exception_region. 24994 (struct goto_fixup): Remove stack_level, cleanup_list_list. 24995 (struct label_chain): Remove. 24996 (struct stmt_status): Remove x_stack_block_stack. 24997 (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups, 24998 fixup_gotos, save_stack_pointer, expand_decl_cleanup, 24999 expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral, 25000 end_cleanup_deferral, last_cleanup_this_contour, 25001 containing_blocks_have_cleanups_or_stack_level, 25002 any_pending_cleanups): Remove. 25003 (expand_null_return_1): Take no arguments. 25004 (expand_label, expand_naked_return, expand_return, 25005 expand_start_bindings_and_block, expand_end_bindings, expand_decl, 25006 expand_anon_union_decl, expand_start_case, pushcase, pushcase_range, 25007 expand_end_case_type): Don't use any of them. 25008 * calls.c (expand_call): Likewise. 25009 * dojump.c (do_jump): Likewise. 25010 * function.c (expand_function_end): Likewise. 25011 * expr.c (store_expr, expand_expr_real_1): Likewise. 25012 (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR. 25013 (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR, 25014 CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR, 25015 EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR. 25016 * fold-const.c (fold_checksum_tree): Use first_rtl_op. 25017 * gengtype.c (adjust_field_tree_exp): Remove rtl op handling. 25018 * gimplify.c (gimplify_cleanup_point_expr): Renumber operands 25019 for WITH_CLEANUP_EXPR. 25020 (gimple_push_cleanup): Likewise. 25021 * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE. 25022 * print-tree.c (print_node): Likewise. 25023 * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR. 25024 * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH. 25025 (has_cleanups): Remove GOTO_SUBROUTINE_EXPR. 25026 * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2. 25027 (GOTO_SUBROUTINE_EXPR): Remove. 25028 * tree.h (WITH_CLEANUP_EXPR_RTL): Remove. 25029 (DECL_TOO_LATE): Remove. 25030 * except.h, tree.h: Update decls. 25031 250322004-07-08 Paolo Bonzini <bonzini@gnu.org> 25033 25034 * explow.c (optimize_save_area_alloca): Do not accept parameters. 25035 * passes.c (rest_of_handle_final): Handle symout. 25036 (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): 25037 Push timevar here. 25038 (rest_of_handle_sched): Break out SMS. Remove ifs for 25039 flag_schedule_insns and flag_modulo_sched. 25040 (rest_of_handle_addressof, rest_of_handle_cse2): Garbage 25041 collect at the end. 25042 (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS. 25043 (rest_of_handle_partition_blocks, rest_of_handle_sms, 25044 rest_of_handle_if_after_reload, rest_of_handle_peephole2, 25045 rest_of_handle_mode_switching, rest_of_handle_jump, 25046 rest_of_handle_guess_branch_prob, rest_of_handle_eh, 25047 rest_of_handle_jump2, rest_of_handle_postreload, 25048 rest_of_handle_flow2, rest_of_clean_state, 25049 rest_of_handle_shorten_branches, 25050 rest_of_handle_prologue_epilogue, 25051 rest_of_handle_branch_target_load_optimize): New. 25052 (rest_of_compilation): Call the above. Remove ggc_collect 25053 calls moved to rest_of_handle_*. 25054 * rtl.h (optimize_save_area_alloca): Do not accept parameters. 25055 25056 * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW. 25057 * except.c (set_nothrow_function_flags): Set TREE_NOTHROW. 25058 * except.h (set_nothrow_function_flags): Update comment. 25059 * function.c (current_function_nothrow): Remove. 25060 * output.h (current_function_nothrow): Remove. 25061 * passes.c (rest_of_compilation): Do not set TREE_NOTHROW. 25062 * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW. 25063 250642004-07-08 Eric Botcazou <ebotcazou@libertysurf.fr> 25065 25066 PR bootstrap/16326 25067 * reorg.c: Revert 2004-06-30 change. 25068 (find_end_label): If HAVE_epilogue and !HAVE_return, 25069 return 0 instead of creating a label at the end of the insn chain. 25070 (optimize_skip): Account for the failure mode of find_end_label. 25071 (fill_simple_delay_slots): Likewise. 25072 (fill_slots_from_thread): Likewise. 25073 (relax_delay_slots): Likewise. 25074 250752004-07-08 Diego Novillo <dnovillo@redhat.com> 25076 25077 * tree-flow.h (addressable_vars): Declare. 25078 * tree-ssa-alias.c (addressable_vars): Define. 25079 (setup_pointers_and_addressables): Add addressable variables 25080 to addressable_vars. 25081 * tree-ssa-operands.c (get_stmt_operands): Move 25082 handling of ASM_EXPRs ... 25083 (get_asm_expr_operands): ... here. 25084 When the ASM_EXPR clobbers memory, also clobber addressable 25085 variables. 25086 * tree-ssa.c (init_tree_ssa): Initialize addressable_vars. 25087 (delete_tree_ssa): Reset addressable_vars. 25088 250892004-07-07 Jan Beulich <jbeulich@novell.com> 25090 Richard Henderson <rth@redhat.com> 25091 25092 * varasm.c (assemble_variable): Use assemble_zeros for 25093 zero-initialized variables. 25094 (categorize_decl_for_section): Honor flag_zero_initialized_in_bss 25095 for SECCAT_BSS and SECCAT_TBSS. 25096 250972004-07-07 Jan Beulich <jbeulich@novell.com> 25098 25099 * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP. 25100 25101 * expmed.c (emit_store_flag): Also special-case double-word 25102 (in-)equality comparison against -1. 25103 25104 * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for 25105 passing arguments the containers for which are registers. 25106 25107 * calls.c (emit_library_call_value_1): Use mode of function parameter 25108 rather than that of argument since constants have none. 25109 251102004-07-08 Alexandre Oliva <aoliva@redhat.com> 25111 25112 Introduce H8SX support. 25113 * expr.c (expand_strcpy): Renamed and moved to... 25114 * builtins.c (expand_movstr): ... here. Tweak. 25115 (expand_builtin_strcpy): Adjust. Use movstr if len can't be 25116 computed or has side effects. 25117 (expand_builtin_stpcpy): Likewise. Use strcpy if return value is 25118 unused, or if mempcpy fails. Adjust the return value in the 25119 latter case. Use movstr if everything else fails. 25120 * doc/md.texi (movstr): Document. 25121 (movmemM, clrmemM): Fix explanation of memory block operands. 25122 * config/h8300/h8300.md (stpcpy): Renamed to... 25123 (movstr): ... this. Adjust. 25124 2004-07-07 Alexandre Oliva <aoliva@redhat.com> 25125 * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to 25126 movmem* and clrstr* to clrmem*. 25127 2004-06-27 Alexandre Oliva <aoliva@redhat.com> 25128 * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to 25129 GENERAL_REGS, always. 25130 (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of 25131 getting the stack pointer as addr. 25132 * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes 25133 from general_operand_dst. 25134 * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode 25135 variant of... 25136 (movmd_internal): ... this. Add modes to operands. Disparage `D' 25137 instead of requiring it to match only before reload. 25138 (stpcpy_internal_normal): New, normal-mode variant of... 25139 (stpcpy_internal): ... this. Add modes to operands. Disparage 25140 `D' instead of requiring it to match only before reload. 25141 * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add 25142 mode argument. 25143 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to... 25144 * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to 25145 h8300_get_index. 25146 * config/h8300/h8300.md (attr type): Add call. 25147 (attr can_delay): If type is call, set it no. 25148 (call, call_value): Set type to call. 25149 2004-06-21 Alexandre Oliva <aoliva@redhat.com> 25150 * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New. 25151 2004-06-16 Alexandre Oliva <aoliva@redhat.com> 25152 * tree.c (get_narrower): Don't narrow integral types into 25153 non-integral types. 25154 * config/h8300/h8300.c (h8300_expand_epilogue): Initialize 25155 frame_size *before* the first use. 25156 * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment 25157 on input. 25158 (peephole2): Don't widen instructions that push SP. Move 25159 decrement of SP to the end of all stm-generating peepholes. 25160 2003-07-24 Richard Sandiford <rsandifo@redhat.com> 25161 * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield 25162 and OR to set it to all ones. 25163 2003-07-24 Richard Sandiford <rsandifo@redhat.com> 25164 * config/h8300/h8300.md (can_delay): Default to "no" for bit branches. 25165 (call, call_value): Set can_delay to "no". 25166 2003-07-22 Richard Sandiford <rsandifo@redhat.com> 25167 * config/h8300/h8300.md (extzv): Make subreg check more robust. 25168 2003-07-21 Richard Sandiford <rsandifo@redhat.com> 25169 * config/h8300/h8300.md (*brabit): Remove. 25170 * config/h8300/h8300.md (*brabc, *brabs): Remove mode from 25171 zero_extract. Use bit_memory_operand as the predicate for 25172 operand 1 and 'WU' as the constraint. Check the difference 25173 between the base length and the final one when deciding which 25174 type of branch to use. 25175 2003-07-21 Richard Sandiford <rsandifo@redhat.com> 25176 * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1. 25177 Use convert_move to extend the result for TARGET_H8300SX. Check 25178 for QImode memory references. Optimize the case where the 25179 destination is a paradoxical subreg. 25180 2003-07-21 Richard Sandiford <rsandifo@redhat.com> 25181 * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative. 25182 * config/h8300/h8300.md (andqi): Remove bclr from h8sx version. 25183 2003-07-21 Richard Sandiford <rsandifo@redhat.com> 25184 * config/h8300/h8300.md: Include mova.md 25185 (length_table): Add mova and mova_zero. 25186 * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length 25187 after all constant addresses for '%R', '%X', '%T' and '%S'. 25188 (h8300_mova_length): New function. 25189 (h8300_insn_length_from_table): Use it to handle mova and mova_zero. 25190 * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to 25191 dependencies for s-config, etc. 25192 * config/h8300/gemova.sh: New file. 25193 * config/h8300/mova.md: Generated. 25194 2003-07-20 Alexandre Oliva <aoliva@redhat.com> 25195 * config/h8300/h8300.c (h8300_bitfield_length): New. 25196 (nibble_operand): Adjust. 25197 (h8300_binary_length): Handle conditional binary op. 25198 (h8300_insn_length_from_table): Handle bitfield and bitbranch. 25199 * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and 25200 P#<X, respectively. The original P is now IP4>X. Introduced P#>0 25201 and P#<0, unused so far. W and Y are now prefixes to multi-letter 25202 constraints. WU is introduced as a variant of U that requires a 25203 mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT. 25204 * config/h8300/h8300.md (attr type): Added bitbranch. 25205 (attr length_table): Added bitfield and bitbranch. 25206 (attr length): Compute bitbranch length. 25207 (andqi): Separate pattern for H8300SX. Use bfld for loading the 25208 least-significant bit of a byte. 25209 (brabit, brabc, brabs): New. 25210 (insv, extzv): Emit bfst and bfld on H8300SX. 25211 (bfld, bfst, seq, sne): New. 25212 (bstzhireg, cmpstz, bstz, bistz): New. 25213 (cmpcondbset, condbset, cmpcondbclr, condbclr): New. 25214 (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New. 25215 2003-07-11 Richard Sandiford <rsandifo@redhat.com> 25216 * config/h8300/h8300.c (h8sx_binary_memory_operator): New function. 25217 (h8sx_unary_memory_operator): New function. 25218 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable. 25219 (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator. 25220 * config/h8300/h8300.md: Add peepholes to combine reloads and 25221 arithmetic insns. 25222 2003-07-10 Richard Sandiford <rsandifo@redhat.com> 25223 * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints. 25224 (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise. 25225 (and?i, ior?i, xor?i): Likewise. 25226 2003-07-10 Richard Sandiford <rsandifo@redhat.com> 25227 * config/h8300/h8300.c: Move enums and prototypes to head of file. 25228 Various whitespace fixes. 25229 (h8300_constant_length): New function, split out from... 25230 (h8300_displacement_size): ...here. Rename h8300_displacement_length. 25231 (h8300_classify_operand): Use IN_RANGE. 25232 (h8300_classify_operand): Use h8300_constant_length. 25233 (h8300_short_move_mem_p): Tighten size check. 25234 (h8sx_mergeable_memrefs_p): Tighten equality check. 25235 2003-06-30 Richard Sandiford <rsandifo@redhat.com> 25236 * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__ 25237 for -msx. 25238 * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code. 25239 * config/h8300/crtn.asm: Likewise. 25240 * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers 25241 if __H8300SX__ is defined. 25242 2003-06-27 Richard Sandiford <rsandifo@redhat.com> 25243 * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter. 25244 * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly. 25245 (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed 25246 addresses as mode-dependent. 25247 * config/h8300/h8300.c (print_operand_address): Update call to 25248 h8300_get_index. 25249 (h8300_get_index): Take a mode argument. Rework to fix an 25250 earlier misunderstanding. 25251 2003-06-26 Richard Sandiford <rsandifo@redhat.com> 25252 * config/h8300/h8300.c (zero_extendqisi2): Force the source operand 25253 into a register if TARGET_H8300SX. 25254 (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for 25255 TARGET_H8300SX. Also disable related define_splits. 25256 (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns. 25257 2003-06-23 Richard Sandiford <rsandifo@redhat.com> 25258 * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling. 25259 2003-06-20 Richard Sandiford <rsandifo@redhat.com> 25260 * config/h8300/h8300.h (OK_FOR_Z): New macro. 25261 (EXTRA_CONSTRAINT_STR): Check it. 25262 * config/h8300/h8300.c (h8300_classify_operand): Accept null 25263 class arguments. 25264 (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4. 25265 * config/h8300/h8300.md (length_table): Add mov_imm4. 25266 (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns. 25267 2003-06-20 Richard Sandiford <rsandifo@redhat.com> 25268 * genattrtab.c (write_eligible_delay): Allow candidate_insn to 25269 be a label. 25270 * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro. 25271 * config/h8300/h8300.c (h8300_reorg): New function. 25272 (TARGET_MACHINE_DEPENDENT_REORG): Define. 25273 * config/h8300/h8300.md (length): Subtract the length of the 25274 delay slot from (pc) when checking the range of forward branches. 25275 (delay_slot, can_delay): New attributes. 25276 (define_delay): Add bra/s handling. 25277 (movmd_internal, return_h8sx, *return_1): Set can_delay to no. 25278 (jump): Add delayed-branch handling. 25279 2003-06-17 Richard Sandiford <rsandifo@redhat.com> 25280 * expr.c (expand_strcpy): New function. 25281 * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy. 25282 (expand_builtin_stpcpy): Likewise. 25283 * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove. 25284 (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare. 25285 * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd' 25286 handling to improve register allocation for -fno-omit-frame-pointer. 25287 (h8sx_split_movmd): Delete, moving er6 handling into... 25288 (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions. 25289 * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant. 25290 (movmd): Add calls to copy_rtx. 25291 (movmd_internal): In the second alternative, allow the initial and 25292 final destination registers to be different . Update the splitter 25293 accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6 25294 instead of h8sx_split_movmd. 25295 (stpcpy, movsd): New expanders. 25296 (movsd_internal): New define_insn. 25297 2003-06-13 Richard Sandiford <rsandifo@redhat.com> 25298 * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare. 25299 (h8sx_emit_movmd, h8sx_split_movmd): Declare. 25300 * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS 25301 and DESTINATION_REGS. 25302 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. 25303 (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes. 25304 (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter. 25305 (h8300_move_ratio): Declare. 25306 (MOVE_RATIO): Use it. 25307 * config/h8300/h8300.c (h8300_move_ratio): New variable. 25308 (h8300_init_once): Initialize it. 25309 (h8300_reg_class_from_letter): New function. 25310 (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l". 25311 (h8sx_emit_movmd, h8sx_split_movmd): New functions. 25312 * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant. 25313 (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants. 25314 (movstrsi, movmd): New expanders. 25315 (movmd_internal): New insn. 25316 2003-06-06 Richard Sandiford <rsandifo@redhat.com> 25317 * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define. 25318 2003-06-04 Richard Sandiford <rsandifo@redhat.com> 25319 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn. 25320 * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise. 25321 2003-06-03 Richard Sandiford <rsandifo@redhat.com> 25322 * config/h8300/h8300.c (nibble_operand): Fix warning. 25323 * config/h8300/h8300.md (movstricthi): Set adjust_length to no. 25324 (movsi_h8sx): Likewise here and the normal h8sx movhi pattern. 25325 (movsf_h8300h): Disable for TARGET_H8300SX. 25326 2003-06-03 Richard Sandiford <rsandifo@redhat.com> 25327 * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel, 25328 h8300_stm_parallel and h8300_return_parallel. 25329 * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p, 25330 h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel, 25331 h8300_stm_parallel, h8300_return_parallel): New functions. 25332 (h8300_expand_prologue): Don't enforce ldm/stm register alignment 25333 if TARGET_H8300SX. Use h8300_push_pop. 25334 (h8300_expand_epilogue): Likewise. Try to merge the return insn 25335 and final pop when generating h8sx code. Always emit some form 25336 of return insn. 25337 * config/h8300/h8300.md: Don't enforce register alignment in 25338 stm peepholes if TARGET_H8300SX. 25339 (ldm_h8300s, stm_h8300s, return_h8sx): New patterns. 25340 (ldm_h8300s_[234], stm_h8300_[234]): Disable. 25341 (epilogue): Expect h8300_expand_epilogue to emit a return insn. 25342 2003-06-03 Richard Sandiford <rsandifo@redhat.com> 25343 * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib. 25344 (MULTILIB_DIRNAMES): Add a directory for it. 25345 (MULTILIB_MATCHES): Delete. 25346 2003-05-28 Richard Sandiford <rsandifo@redhat.com> 25347 * final.c (walk_alter_subreg): Handle addresses with subregs 25348 inside a ZERO_EXTEND or AND. 25349 * config/h8300/h8300-protos.h (h8300_get_index): Declare. 25350 * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS 25351 if TARGET_H8300SX. 25352 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index. 25353 * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b), 25354 @(dd,Rn.w) and @(dd,ERn.L). 25355 (h8300_displacement_size): Take the whole address as argument. 25356 (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly. 25357 2003-05-28 Richard Sandiford <rsandifo@redhat.com> 25358 * config/mips/mips-protos.h (h8300_operands_match_p): Declare. 25359 (h8sx_mergeable_memrefs_p): Declare. 25360 * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX. 25361 (HAVE_PRE_INCREMENT): Likewise. 25362 (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement 25363 addresses for TARGET_H8300SX, 25364 * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC 25365 and POST_DEC. 25366 (movb_length_table, movl_length_table): New tables. 25367 (movw_length_table): Define to movb_length_table. 25368 (h8300_displacement_size): New, split out from... 25369 (h8300_classify_address): ...here. Handle pre/post inc/dec. 25370 (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands. 25371 (h8300_insn_length_from_table): Add cases for movb, movw and movl. 25372 (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions. 25373 (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx. 25374 (compute_plussi_length, compute_plussi_cc): Update accordingly. 25375 (h8sx_unary_shift_operator): Get the mode from the operator. 25376 (binary_shift_operator): Likewise. 25377 * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to 25378 a memory reference, check whether the reference is offsettable. 25379 (length_table): Add movb, movw and movl. 25380 (movqi): Add new h8sx pattern. Don't force one operand to be a 25381 register when generating h8sx code. 25382 (movhi, movsi, movsf): Likewise. 25383 (movstrictqi): Use the length_table attribute. 25384 (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn. 25385 (addqi3): Split into a define_expand and define_insn. Don't accept 25386 memory operands in the expander. Use h8300_operands_match_p to 25387 check for matching operands in the define_insn. 25388 (subqi3, negqi2, one_cmplqi2): Likewise. 25389 (add[hs]i3): Don't accept memory operands in the expander. Likewise 25390 in any patterns that are unused in h8sx code. In the h8sx patterns, 25391 use h8300_operands_match_p to check whether operands match. 25392 (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3, 25393 one_cmpl[hs]i3): Likewise. 25394 (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand 25395 in the expander. 25396 2003-05-23 Richard Sandiford <rsandifo@redhat.com> 25397 * config/h8300/h8300-protos.h (expand_a_shift): Return a bool. 25398 (h8300_insn_length_from_table): Add a second parameter. 25399 (output_h8sx_shift): Declare. 25400 * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros. 25401 (EXTRA_CONSTRAINT): Replace with... 25402 (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y. 25403 (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'. 25404 (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator 25405 and h8sx_binary_shift_operator. 25406 * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false 25407 for TARGET_H8300SX. 25408 (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U. 25409 (bit_memory_operand, fix_bit_operand): Likewise. 25410 (h8300_length_table_for_insn): Remove. 25411 (h8300_classify_operand): Fix check for 16-bit operands in 32-bit 25412 instructions. 25413 (h8300_short_immediate_length, h8300_binary_length): New functions. 25414 (h8300_insn_length_from_table): Add an opcodes parameter. Rework. 25415 (output_plussi): Use sub to add negative constants. 25416 (compute_plussi_length): Adjust accordingly. 25417 (h8sx_single_shift_type): New enum. 25418 (h8sx_single_shift, h8sx_unary_shift_operator, 25419 h8sx_binary_shift_operator, output_h8sx_shift): New functions. 25420 (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a 25421 single h8sx instruction. Return false in this case. 25422 * config/h8300/h8300.md (length_table): Add short_immediate. 25423 (length): Pass the operand array to h8300_insn_length_from_table. 25424 (adjust_length): Assume "no" for insns with a length_table attribute. 25425 (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3. 25426 (*addhi3_h8300hs): Don't use for h8sx. 25427 (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3 25428 and sub.w #xx:3. 25429 (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand 25430 1's predicate to nonimmediate_operand. Only skip default expansion 25431 if expand_a_shift or expand_a_rotate returns true. Add new patterns 25432 for single h8sx shift instructions. 25433 2003-05-22 Alexandre Oliva <aoliva@redhat.com> 25434 * config/h8300/h8300.c (nibble_operand): Split out of... 25435 (reg_or_nibble_operand): ... this. 25436 * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand. 25437 * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3, 25438 umulhisi3): Introduce expand, and introduce separate insns for 25439 sign- or zero-extended REG and already-extended CONST_INT. 25440 2003-05-20 Richard Sandiford <rsandifo@redhat.com> 25441 * config/h8300/h8300.c (h8300_unary_length): Fix miscounting. 25442 * config/h8300/h8300.md (subqi3): Generalize for h8sx. 25443 (subhi3): Likewise. Don't accept immediates for operand 1. 25444 Remove the early clobber from second alternative of the h8300s pattern. 25445 (subsi3): Generalize for h8sx. Force operand 2 into a register 25446 on plain h8300 targets. 25447 (subsi3_h8300): Use h8300_dst_operand for consistency with expander. 25448 (subsi3_h8300h): Generalize for h8sx. 25449 (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. 25450 2003-05-19 Alexandre Oliva <aoliva@redhat.com> 25451 * config/h8300/h8300.c (reg_or_nibble_operand): New. 25452 * config/h8300/h8300.h (PREDICATE_CODES): Adjust. 25453 (TARGET_H8300SXMUL): New. 25454 (CONST_OK_FOR_P): New. 25455 (CONST_OK_FOR_LETTER_P): Adjust. 25456 * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3, 25457 umulhisi3): Accept 4-bit immediate on H8SX. 25458 (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New. 25459 (udivsi3, divhi3, udivsi3, divsi3): New. 25460 2003-05-19 Richard Sandiford <rsandifo@redhat.com> 25461 * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare. 25462 * config/h8300/h8300.h (OK_FOR_Q): New macro. 25463 (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint. 25464 (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand. 25465 Add ADDRESSOF to the bit_operand entry. 25466 * config/h8300/h8300.c (h8300_dst_operand): New predicate. 25467 (h8300_src_operand): Likewise. 25468 (bit_operand): Check nonimmediate_operand rather than general_operand. 25469 Accept any nonimmediate_operand in h8sx code. 25470 (h8300_and_costs): Initialize operands[1]. 25471 (h8300_rtx_costs) <AND>: Return false if the operands aren't valid. 25472 (h8300_operand_class): New enum. 25473 (h8300_length_table): New typedef. 25474 (addb_length_table, addw_length_table, addl_length_table, 25475 logicl_length_table): New tables. 25476 (logicb_length_table, logicw_length_table): New macros. 25477 (h8300_classify_operand, h8300_length_from_table, 25478 h8300_length_table_for_insn, h8300_unary_length, 25479 h8300_insn_length_from_table): New functions. 25480 (output_plussi): Only use adds and subs for register destinations. 25481 Disable redundant clause. 25482 (compute_plussi_cc): Likewise. 25483 (compute_plussi_length): Likewise. Use h8300_length_from_table 25484 to work out the length of an insn. 25485 (output_logical_op): Only use narrower immediate instructions 25486 if the destination is a register. 25487 (compute_logical_op_cc): Likewise. 25488 (compute_logical_op_length): Likewise. Use h8300_length_from_table. 25489 (h8300_adjust_insn_length): Tighten check for reg<->mem moves. 25490 * config/h8300/h8300.md (length_table): New attribute. 25491 (length): When an instruction has a length_table attribute, use 25492 h8300_insn_length_from_table to calculate its default length. 25493 (cmpqi): Use h8300_dst_operand for the first operand and 25494 h8300_src_operand for the second. 25495 (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2, 25496 negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3, 25497 addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3, 25498 iorsi3, xorhi3, xorsi3): Likewise. 25499 (andqi3): Use h8300_src_operand for operand 2. Adjust the condition 25500 so that it allows any combination of operands for TARGET_H8300SX. 25501 (iorqi3, xorqi3): Likewise. 25502 (cmpqi): Use the length_table attribute. 25503 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3, 25504 xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. 25505 (cmpqi): Add 'Q' constraint. 25506 (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3, 25507 iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. 25508 2003-05-14 Richard Sandiford <rsandifo@redhat.com> 25509 * config/h8300/h8300.h (MASK_H8300SX): New macro. 25510 (TARGET_H8300S): True for both -ms and -msx. 25511 (TARGET_H8300SX): New macro. 25512 (TARGET_SWITCHES): Add entries for -msx and -mno-sx. 25513 * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx. 25514 * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx. 25515 * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx. 25516 [Temporary change.] 25517 2003-02-28 Alexandre Oliva <aoliva@redhat.com> 25518 * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with 25519 16-bit pointers and 32-bit ints. 25520 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept 25521 CONST_DOUBLE with mode no wider than SImode. 25522 * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for 25523 output operand. 25524 2003-02-27 Alexandre Oliva <aoliva@redhat.com> 25525 * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX 25526 or SUBREG thereof. 25527 * config/h8300/h8300.h (PREDICATE_CODES): Adjust. 25528 2003-02-22 Alexandre Oliva <aoliva@redhat.com> 25529 * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode. 25530 255312004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> 25532 25533 * config.gcc (i[34567]86-*-mingw32*): Enable threads by default. 25534 255352004-07-07 Per Bothner <per@bothner.com> 25536 25537 * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE. 25538 255392004-07-07 Mike Stump <mrs@apple.com> 25540 25541 * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore. 25542 * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name) 25543 (machopic_finish): Likewise. 25544 255452004-07-07 Richard Henderson <rth@redhat.com> 25546 25547 * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look 25548 through any value-preserving cast. 25549 255502004-07-07 Alexandre Oliva <aoliva@redhat.com> 25551 25552 * function.c (assign_parm_find_data_types): Call 25553 FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined. 25554 255552004-07-07 Steven Bosscher <stevenb@suse.de> 25556 25557 * tree-cfg.c (group_case_labels): Remove case labels that have 25558 the same target as the default case. 25559 255602004-07-07 Steven Bosscher <stevenb@suse.de> 25561 25562 * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS 25563 regardless of DECL_LANG_SPECIFIC being present or not. 25564 * tree.h (DECL_NUM_STMTS): Purge. 25565 255662004-07-07 Andrew Pinski <apinski@apple.com> 25567 25568 * configure: Regenerate with the right autoconf. 25569 255702004-07-07 David Edelsohn <edelsohn@gnu.org> 25571 25572 * ifcvt.c (total_bb_rtx_cost): New function. 25573 (find_if_case_1): Compare rtx_cost of basic block to cost of 25574 BRANCH_COST insns. 25575 (find_if_case_2): Same. 25576 255772004-07-07 Eric Botcazou <ebotcazou@libertysurf.fr> 25578 25579 PR target/10567 25580 * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch. 25581 (output_return): Likewise. 25582 (output_sibcall): Abort if !flag_delayed_branch. 25583 (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch. 25584 (emit_and_preserve): New function. 25585 (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an 25586 indirect jump to the thunked-to function if !flag_delayed_branch. 25587 * config/sparc/sparc.md (delayed_branch): New attribute. 25588 (load_pcrel_sym): Honor flag_delayed_branch. Use above 25589 attribute to compute the length of the insn. 25590 (goto_handler_and_restore): Likewise. 25591 255922004-07-07 Andrew Pinski <apinski@apple.com> 25593 25594 PR tree-optimization/15777 25595 * fold-const.c (fold_single_bit_test): Fold the x^1 expression. 25596 25597 * expr.c (expand_expr_real_1): Fix formating. 25598 BUFFER_REF and IN_EXPR are dead. 25599 * fold-const.c (non_lvalue): BUFFER_REF is dead. 25600 * tree-inline.c (estimate_num_insns_1): Likewise. 25601 * tree-pretty-print.c (dump_generic_node): BUFFER_REF, 25602 IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead. 25603 * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill. 25604 256052004-07-07 H.J. Lu <hongjiu.lu@intel.com> 25606 25607 * collect2.c (dump_file): Don't call cplus_demangle if 25608 HAVE_LD_DEMANGLE is defined. 25609 (main): Pass "--demangle" to ld if no_demangle is not 0 and 25610 HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style 25611 if HAVE_LD_DEMANGLE is defined. 25612 25613 * configure.ac (--with-demangler-in-ld): Added 25614 (HAVE_LD_DEMANGLE): Define if ld supports --demangle when 25615 --with-demangler-in-ld is used. 25616 * config.in: Regenerated. 25617 * configure: Likewise. 25618 256192004-07-07 Roger Sayle <roger@eyesopen.com> 25620 25621 * config/rs6000/rs6000.c (struct processor_costs): Add new fields 25622 for simple floating point operations "fp", double precision 25623 multiplication "dmul", and single and double precision division 25624 "sdiv" and "ddiv". Update all CPU variant tables as appropriate. 25625 (ppc630_cost): New table split from ppc620_cost, to distinguish 25626 differences in floating point latencies. 25627 (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630. 25628 (rs6000_rtx_costs): Add support for single and double precision 25629 floating point addition, subtraction, multiplication, division, 25630 fused-multiply-add, fused-multiply-sub, negation, absolute value 25631 and negative absolute value. Tweak MEM case to use prefered idiom. 25632 256332004-07-07 Richard Henderson <rth@redhat.com> 25634 25635 * tree-flow-inline.h (may_propagate_copy): Move... 25636 * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we 25637 attempt to copy between types requiring conversion. 25638 * tree-flow.h (may_propagate_copy): Update decl. 25639 * tree-ssa-dom.c (cprop_operand): Tidy redundant tests. 25640 256412004-07-07 Jakub Jelinek <jakub@redhat.com> 25642 25643 * config/i386/i386.c (override_options): Don't set x86_prefetch_sse 25644 from -mtune= option. 25645 256462004-07-07 Alexandre Oliva <aoliva@redhat.com> 25647 25648 * builtins.c: Rename movstr*, except for movstrict*, to 25649 movmem* and clrstr* to clrmem*. 25650 * expr.c: Likewise. 25651 * expr.h: Likewise. 25652 * genopinit.c: Likewise. 25653 * integrate.c: Likewise. 25654 * local-alloc.c: Likewise. 25655 * optabs.c: Likewise. 25656 * optabs.h: Likewise. 25657 * config/alpha/alpha.h: Likewise. 25658 * config/alpha/alpha.md: Likewise. 25659 * config/arm/arm-protos.h: Likewise. 25660 * config/arm/arm.c: Likewise. 25661 * config/arm/arm.md: Likewise. 25662 * config/avr/avr.md: Likewise. 25663 * config/c4x/c4x.c: Likewise. 25664 * config/c4x/c4x.md: Likewise. 25665 * config/frv/frv.md: Likewise. 25666 * config/i386/i386-protos.h: Likewise. 25667 * config/i386/i386.c: Likewise. 25668 * config/i386/i386.h: Likewise. 25669 * config/i386/i386.md: Likewise. 25670 * config/i860/i860.c: Likewise. 25671 * config/i860/i860.md: Likewise. 25672 * config/ip2k/ip2k.md: Likewise. 25673 * config/ip2k/libgcc.S: Likewise. 25674 * config/ip2k/t-ip2k: Likewise. 25675 * config/m32r/m32r.c: Likewise. 25676 * config/m32r/m32r.md: Likewise. 25677 * config/mcore/mcore.md: Likewise. 25678 * config/mips/mips.c: Likewise. 25679 * config/mips/mips.md: Likewise. 25680 * config/ns32k/ns32k.c: Likewise. 25681 * config/ns32k/ns32k.h: Likewise. 25682 * config/ns32k/ns32k.md: Likewise. 25683 * config/pa/pa.c: Likewise. 25684 * config/pa/pa.md: Likewise. 25685 * config/pdp11/pdp11.h: Likewise. 25686 * config/pdp11/pdp11.md: Likewise. 25687 * config/rs6000/rs6000.c: Likewise. 25688 * config/rs6000/rs6000.md: Likewise. 25689 * config/s390/s390-protos.h: Likewise. 25690 * config/s390/s390.c: Likewise. 25691 * config/s390/s390.md: Likewise. 25692 * config/sh/lib1funcs.asm: Likewise. 25693 * config/sh/sh.c: Likewise. 25694 * config/sh/sh.md: Likewise. 25695 * config/sh/t-sh: Likewise. 25696 * config/sparc/sparc.h: Likewise. 25697 * config/vax/vax.md: Likewise. 25698 * config/xtensa/xtensa.c: Likewise. 25699 * config/xtensa/xtensa.md: Likewise. 25700 * doc/invoke.texi: Likewise. 25701 * doc/md.texi: Likewise. 25702 * doc/rtl.texi: Likewise. 25703 257042004-07-07 Richard Sandiford <rsandifo@redhat.com> 25705 25706 PR target/16407 25707 * config/mips/mips-protos.h (mips_declare_common_object): Declare. 25708 * config/mips/mips.c (mips_declare_common_object): New function, 25709 mostly split out from... 25710 (mips_output_aligned_decl_common): ...here. 25711 * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of... 25712 (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition. 25713 * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this 25714 rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object. 25715 257162004-07-07 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 25717 25718 PR c/16392 25719 * function.c (assign_parms): Fix typo from previous change. 25720 257212004-07-07 Jason Merrill <jason@redhat.com> 25722 25723 PR c++/15815 25724 * doc/extend.texi (C++ Interface): Correct information and 25725 discourage use. 25726 257272004-07-07 Vladimir Makarov <vmakarov@redhat.com> 25728 25729 PR target/16130 25730 PR target/16142 25731 PR target/16143 25732 * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm 25733 insn. 25734 257352004-07-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 25736 25737 PR target/1679. 25738 * config/m32r/m32r.c (m32r_function_symbol): New function: 25739 Generate a symbol name RTX with the correct m32r specific flags 25740 set. 25741 (block_move_call): Use new function to generate correct symbol. 25742 * config/m32r/m32r-protos.h: Add prototype for new funcion. 25743 * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new 25744 function. 25745 257462004-07-07 Nathan Sidwell <nathan@codesourcery.com> 25747 25748 * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE, 25749 TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES, 25750 TYPE_BINFO_BASETYPE): Remove. 25751 (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename 25752 to ... 25753 (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ... 25754 here. 25755 (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ... 25756 (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here. 25757 (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used. 25758 (struct tree_binfo): Rename base_types to base_binfos. 25759 * alias.c (record_component_aliases): Adjust BINFO macros. 25760 * dbxout.c (dbxout_type): Likewise. 25761 * dwarf2out.c (gen_member_die): Likewise. 25762 * sdbout.c (sdbout_one_type): Likewise. 25763 * tree-dump.c (deque_and_dump): Likewise. 25764 * config/i386/i386.c (classify_argument, 25765 contains_128bit_aligned_vector_p): Likewise. 25766 257672004-07-07 Nick Clifton <nickc@redhat.com> 25768 25769 * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change 25770 arguments to match TARGET_SETUP_INCOMING_VARARGS prototype. 25771 257722004-07-07 Nathan Sidwell <nathan@codesourcery.com> 25773 25774 * vec.h: Fix the example use. 25775 257762004-07-06 Richard Henderson <rth@redhat.com> 25777 25778 * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove. 25779 * langhooks.h (struct lang_hooks): Remove gimple_before_inlining. 25780 * tree-inline.c (copy_body_r, setup_one_parameter, 25781 initialize_inlined_parameters, expand_call_inline, 25782 declare_inline_vars): Don't check it. 25783 (expand_calls_inline): Remove old version, rename new version 25784 from gimple_expand_calls_inline. 25785 * tree-optimize.c (execute_gimple): Remove. 25786 (pass_gimple): Don't run anything. 25787 257882004-07-06 Joseph S. Myers <jsm@polyomino.org.uk> 25789 25790 * doc/sourcebuild.texi: Use semicolons instead of commas in 25791 section title. 25792 257932004-07-06 Richard Henderson <rth@redhat.com> 25794 25795 * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change. 25796 (sra_walk_modify_expr, scan_init): Likewise. 25797 (generate_element_zero): Check visited before scanning children. 25798 (generate_element_init): Set visited on error. 25799 (scalarize_init): Handle generate_element_init failure similar 25800 to use_block_copy. 25801 258022004-07-06 Joseph S. Myers <jsm@polyomino.org.uk> 25803 25804 * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define. 25805 (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG. 25806 258072004-07-06 Richard Henderson <rth@redhat.com> 25808 25809 * config/i386/i386.c (legitimize_pic_address): Make static. 25810 (legitimize_address): Handle CONST with TLS operand. 25811 (ix86_expand_move): Don't call legitimize_pic_address directly. 25812 * config/i386/i386-protos.h (legitimize_pic_address): Remove. 25813 258142004-07-06 Roger Sayle <roger@eyesopen.com> 25815 25816 * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field. 25817 (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway. 25818 (noce_process_if_block): Initialize if_info.b_unconditional if insn_b 25819 is currently executed unconditionally, i.e. not in "else_bb". 25820 258212004-07-06 Steven Bosscher <stevenb@suse.de> 25822 25823 * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove. 25824 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25825 * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove. 25826 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25827 * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove. 25828 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25829 * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove. 25830 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25831 * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove. 25832 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25833 * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove. 25834 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25835 * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove. 25836 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25837 * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove. 25838 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. 25839 258402004-07-06 Daniel Berlin <dberlin@dberlin.org> 25841 25842 * dojump.c (do_jump): REFERENCE_EXPR is dead. 25843 * expr.c (expand_expr_real_1): Ditto. 25844 * tree-inline.c (estimate_num_insns_1): Ditto. 25845 * tree-pretty-print.c (dump_generic_node): Ditto. 25846 (op_symbol): Ditto. 25847 * tree.def: Ditto. 25848 258492004-07-06 Daniel Berlin <dberlin@dberlin.org> 25850 25851 * tree-ssa-pre.c (reference_node_pool): New pool. 25852 (find_or_generate_expression): Class 'r' is okay too. 25853 (create_value_expr_from): Ditto. 25854 (add_to_sets): LHS should not include vuses. 25855 (eliminate): Ditto. 25856 (compute_avail): Reverse ordering of tests. 25857 Valuize INDIRECT_REF as well. 25858 258592004-07-06 Richard Sandiford <rsandifo@redhat.com> 25860 25861 PR rtl-optimization/16380 25862 * loop.c (check_dbra_loop): Sink comparison instructions if they 25863 do something other than set cc0. 25864 258652004-07-06 James E Wilson <wilson@specifixinc.com> 25866 25867 * doc/interface.texi (longjmp and automatic variables): Delete 25868 paragraph recommending taking the address of a variable. 25869 258702004-07-06 Nathan Sidwell <nathan@codesourcery.com> 25871 25872 * vec.h (VEC_embedded_alloc): Remove. 25873 (VEC_embedded_size, VEC_embedded_init): New. 25874 (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add 25875 MEM_STAT_INFO. 25876 (VEC_truncate): New. 25877 (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL. 25878 (vec_embedded_alloc): Remove. 25879 * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust. 25880 (vec_embedded_alloc): Remove. 25881 258822004-07-06 Mark Mitchell <mark@codesourcery.com> 25883 25884 * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h. 25885 (gt-langhooks.h): Remove. 25886 258872004-07-06 George Helffrich <george@gly.bris.ac.uk> 25888 25889 * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo. 25890 258912004-07-06 Eric Botcazou <ebotcazou@libertysurf.fr> 25892 25893 * config/sparc/sparc.c (get_pc_symbol): Rename into 25894 add_pc_to_pic_symbol. 25895 (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name. 25896 (load_pic_register): Account for previous changes. 25897 Use reg_names. Don't create the label twice. 25898 * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into 25899 UNSPEC_LOAD_PCREL_SYM. 25900 (get_pc): Rename into load_pcrel_sym. Add predicate to 25901 operands. Remove condition. 25902 259032004-07-06 Nathan Sidwell <nathan@codesourcery.com> 25904 25905 * dbxout.c (dbxout_type): Don't test whether the binfo slot of 25906 RECORD, UNION & QUAL_UNION is actually a binfo. 25907 25908 * tree.h (TREE_VIA_VIRTUAL): Rename to ... 25909 (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only. 25910 (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags. 25911 * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P. 25912 * dwarf2out.c (add_data_member_location_attribute): Likewise. 25913 (gen_inheritance_die): Likewise. 25914 * tree-dump.c (deque_and_dump): Likewise. 25915 * doc/c-tree.texi (Binfos): Add under reconstruction note. 25916 259172004-07-06 Steven Bosscher <stevenb@suse.de> 25918 25919 * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): 25920 Define. 25921 * config/mcore/mcore.md: Model memory latency with a simple DFA 25922 pipeline description instead of a define_function_unit. 25923 259242004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 25925 25926 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg. 25927 * langhooks.h (var_mod_type_p): Likewise. 25928 * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p. 25929 * expr.c (count_type_elements): Properly handle return from 25930 array_type_nelts and properly test for overflow. 25931 * gimplify.c (gimplify_init_constructor): Properly handle return 25932 from array_type_nelts. 25933 (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS. 25934 * integrate.c (copy_decl_for_inlining): Correct comments. 25935 * tree-inline.c (remap_decl): Update comments, remove dead code, 25936 and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist. 25937 (remap_type): Only remap if variably modified by vars in function 25938 being inlined. 25939 (copy_body_r): Use compatible_type langhooks to see when can fold. 25940 (setup_one_parameter): Don't remap type. 25941 (inline_forbidden_p_1): Add arg to variably_modified_type_p. 25942 * tree.c (recompute_tree_invarant_for_addr_expr): Properly 25943 compute TREE_INVARIANT for decl case. 25944 (find_var_from_fn): New function. 25945 (variably_modified_type_p): Add arg and call new function. 25946 * tree.h (variably_modified_type_p): Add extra arg. 25947 259482004-07-05 Eric Botcazou <ebotcazou@libertysurf.fr> 25949 25950 * config/sparc/sparc.md (nonlocal_goto): Remove disabled code. 25951 (goto_handler_and_restore_v9): Delete disabled insn. 25952 (goto_handler_and_restore_v9_sp64): Likewise. 25953 259542004-07-05 Roger Sayle <roger@eyesopen.com> 25955 25956 * calls.c (load_register_parameters): Call expand_shift instead 25957 of expand_binop with ashl_optab (or other shift optab) directly. 25958 * expr.c (emit_group_load, emit_group_store): Likewise. 25959 * function.c (assign_parm_setup_block): Likewise. 25960 * stmt.c (shift_return_value): Likewise. 25961 259622004-07-05 Jakub Jelinek <jakub@redhat.com> 25963 25964 * expr.c (expand_assignment): Disable the bitfield += optimizations. 25965 259662004-07-05 Joseph S. Myers <jsm@polyomino.org.uk> 25967 25968 * doc/sourcebuild.texi: Revert previous patch. 25969 259702004-07-05 Joseph S. Myers <jsm@polyomino.org.uk> 25971 25972 * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check 25973 TARGET_MEM_FUNCTIONS. 25974 * system.h: Poison TARGET_MEM_FUNCTIONS. 25975 * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc, 25976 bcmp_libfunc, bzero_libfunc): Remove. 25977 * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or 25978 bzero_libfunc. 25979 * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove. 25980 * doc/standards.texi: Don't mention calling BSD string functions. 25981 * doc/invoke.texi: Likewise. Mention that memmove may be called. 25982 * config/vax/t-memfuncs: New. 25983 * config/memcmp.c, config/memcpy.c, config/memmove.c, 25984 config/memset.c: New. 25985 * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files. 25986 * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use 25987 vax/t-memfuncs. 25988 * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h, 25989 config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h, 25990 config/elfos.h, config/gnu.h, config/h8300/h8300.h, 25991 config/i386/gas.h, config/ia64/ia64.h, config/interix.h, 25992 config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h, 25993 config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, 25994 config/netbsd.h, config/openbsd.h, config/pa/pa.h, 25995 config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h, 25996 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, 25997 config/svr3.h: Don't define TARGET_MEM_FUNCTIONS. 25998 259992004-07-05 Richard Henderson <rth@redhat.com> 26000 26001 * function.c (assign_parm_setup_reg): Properly rename variables in 26002 FUNCTION_ARG_CALLEE_COPIES section. 26003 260042004-07-05 Zack Weinberg <zack@codesourcery.com> 26005 26006 * tree-mudflap.c: Include cgraph.h. 26007 (mf_init_extern_trees): Rename to mudflap_init. Export. 26008 Rewrite to create synthetic declarations instead of looking 26009 up declarations from mf-runtime.h. 26010 (mf_make_builtin, mf_make_cache_struct_type): New functions. 26011 (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl): 26012 Correct commentary. 26013 (execute_mudflap_function_decls, mudflap_register_call): 26014 Don't call mf_init_extern_trees. 26015 (mudflap_finish_file): Use cgraph_build_static_cdtor. 26016 26017 * tree-mudflap.h: Update prototypes. 26018 * c-mudflap.c: Delete file. 26019 * c-common.c: Include tree-mudflap.h. 26020 (c_common_nodes_and_builtins): Call mudflap_init if appropriate. 26021 * Makefile.in: Remove all references to c-mudflap.o. 26022 Update dependencies. 26023 260242004-07-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 26025 26026 * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short 26027 displacements with the spatial-locality cache-control completer. 26028 260292004-07-05 Zack Weinberg <zack@codesourcery.com> 26030 26031 * langhooks.c: Don't include gt-langhooks.h. 26032 (var_labelno): Delete. 26033 (lhd_set_decl_assembler_name): Do not append a distinguishing 26034 number to file-scope internal-linkage declarations for the first 26035 input file, even if they have DECL_CONTEXT set. Use DECL_UID of 26036 the declaration itself (if at block scope), or its containing 26037 TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing 26038 number. 26039 26040 * opts.c (cur_in_fname): New global. 26041 * opts.h: Declare it. 26042 * tree.c: Include opts.h. 26043 (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it 26044 DECL_UID equal to cur_in_fname. 26045 (copy_node_stat): Do not change DECL_UID when copying a 26046 TRANSLATION_UNIT_DECL. 26047 (build_common_tree_nodes): Adjust next_decl_uid to reserve the 26048 range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs. 26049 26050 * c-decl.c (c_static_assembler_name): Delete. 26051 * c-tree.h (c_static_assembler_name): Delete prototype. 26052 * c-lang.c, objc/objc-lang.c: Don't override 26053 LANG_HOOKS_SET_DECL_ASSEMBLER_NAME. 26054 26055 * Makefile.in (tree.o): Update dependencies. 26056 (GTFILES): Remove langhooks.c. 26057 260582004-07-05 Roger Sayle <roger@eyesopen.com> 26059 26060 * fold-const.c (fold) <TRUNC_MOD_EXPR>: Optimize unsigned modulus 26061 by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)". 26062 Normalize "X % C" as "X % -C" for signed modulus and negative C. 26063 Optimize "X % -Y" as "X % Y" for signed modulus. 26064 <EQ_EXPR>: Recursively call "fold" when transforming "(X % Y) == 0" 26065 into "((unsigned) X % Y) == 0". 26066 260672004-07-05 Joseph S. Myers <jsm@polyomino.org.uk> 26068 26069 * sourcebuild.texi (Config Fragments): Use @comma{} in 26070 cross-reference to section title. 26071 260722004-07-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 26073 26074 * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro. 26075 * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it. 26076 (gimplify_target_expr, gimplify_expr): Likewise. 26077 (copy_if_shared_r): No longer need special case for BIND_EXPR. 26078 (unshare_body, unvisit_body): Only look at nested if BODY_P is 26079 whole function. 26080 (gimplify_compound_lval): See if we can strip any useless conversion. 26081 (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size 26082 from RHS, not LHS. 26083 (gimplify_modify_expr_to_memset): Likewise. 26084 (gimplify_expr, case CONSTRUCTOR): Handle use as statement. 26085 * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P. 26086 (declare_inline_vars): Likewise. 26087 (walk_type_fields): New function. 26088 (walk_tree): Use it. 26089 * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR. 26090 26091 * tree-sra.c (struct sra_walk_fns): Init function now returns bool. 26092 (sra_walk_modify_expr): Allow init function to fail. 26093 (scan_init): Now returns bool. 26094 (generate_element_init): If can't understand INIT, return false. 26095 (scalarize_init): Return false if generate_element_init does. 26096 26097 * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly 26098 print bounds. 26099 26100 * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against 26101 bounds if bounds aren't constant. 26102 26103 * tree-cfg.c (verify_expr): Use CHECK_OP in binary case. 26104 26105 * function.c, langhooks-def.h, langhooks.h: Move max_size hook 26106 to type hooks; remove bogus PARAMS. 26107 261082004-07-05 Nathan Sidwell <nathan@codesourcery.com> 26109 26110 * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1. 26111 * dwarf2out.c (add_data_member_location_attribute): Check for 26112 TREE_BINFO. 26113 * tree.c (tree_node_kinds): Add "binfos". 26114 (binfo_lang_slots): New. 26115 (make_node_stat): Add TREE_BINFO. 26116 (make_tree_binfo_stat): New. 26117 (tree_node_structure): Add TREE_BINFO. 26118 * tree.def (TREE_BINFO): New. 26119 * tree.h (REC_OR_UNION_CHECK): Rename to ... 26120 (RECORD_OR_UNION_CHECK): ... here. 26121 (NOT_RECORD_OR_UNION_CHECK): New. 26122 (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO. 26123 (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for 26124 RECORD_OR_UNION_CHECK. 26125 (TYPE_BINFO): Use RECORD_OR_UNION_CHECK. 26126 (TYPE_LANG_SLOT_1): New. 26127 (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS, 26128 BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD, 26129 BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust. 26130 (BINFO_ELTS): Remove. 26131 (BINFO_LANG_SLOT): New. 26132 (struct tree_binfo): New. 26133 (binfo_lang_slots): Declare. 26134 (enum tree_node_structure_enum): Add TS_BINFO. 26135 (union tree_node): Add binfo. 26136 (make_tree_binfo_stat): Declare. 26137 (make_tree_binfo): New. 26138 (enum tree_node_kind): Add binfo_kind. 26139 26140 * objc/objc-act.c (start_class, objc_declare_protocols, 26141 start_protocols): Use TYPE_LANG_SLOT_1. 26142 * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename 26143 to ... 26144 (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here. 26145 (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE, 26146 CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS, 26147 PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1. 26148 261492004-07-05 Steven Bosscher <stevenb@suse.de> 26150 26151 * rtl.h (struct rtx_def): Remove the integrated flag. 26152 Use the return_val flag for MEM_SCALAR_P. 26153 Reshuffle and update flags in CLEAR_RTX_FLAGS. 26154 261552004-07-05 Richard Sandiford <rsandifo@redhat.com> 26156 26157 PR target/16357 26158 * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs 26159 to mips_expand_unaligned_load, mips_expand_unaligned_store, and 26160 move_by_pieces. 26161 261622004-07-05 Josef Zlomek <zlomekj@suse.cz> 26163 26164 * var-tracking.c: Fix some comments. 26165 (frame_stack_adjust): New. 26166 (vt_stack_adjustments): Init stack_adjust of entry block to 26167 minus stack adjustment of function prologue. 26168 (adjust_stack_reference): Do not adjust if adjustment == 0. 26169 (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS. 26170 (emit_notes_in_bb): Likewise. 26171 (vt_add_function_parameters): Do not adjust locations of 26172 function arguments. 26173 (vt_initialize): Compute the stack adjustment of function 26174 prologue and offset the initial "location" of frame_base_decl 26175 from the stack pointer after prologue. 26176 261772004-07-04 Richard Henderson <rth@redhat.com> 26178 26179 * function.c (struct assign_parm_data_all): New. 26180 (struct assign_parm_data_one): New. 26181 (assign_parms_initialize_all, assign_parms_augmented_arg_list, 26182 assign_parm_find_data_types, assign_parms_setup_varargs, 26183 assign_parm_find_entry_rtl, assign_parm_is_stack_parm, 26184 assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl, 26185 assign_parm_adjust_stack_rtl, assign_parm_setup_block_p, 26186 assign_parm_setup_block, assign_parm_setup_reg, 26187 assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ... 26188 (assign_parms): ... here. 26189 261902004-07-04 Daniel Berlin <dberlin@dberlin.org> 26191 26192 * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets 26193 now are bitmap_set_t's. 26194 (bitmap_insert_into_set): No point in inserting the value if 26195 it's invariant. 26196 (bitmap_set_contains): New function. 26197 (bitmap_set_replace_value): Add comment on why we do it 26198 this way. 26199 (set_contains): Removed. 26200 (bitmap_set_subtract_from_value_set): New name of 26201 set_subtract now that it's arguments are two different 26202 types of sets. 26203 Update callers. 26204 (bitmap_find_leader): Change algorithm used. 26205 (find_or_generate_expression): Update use of functions for new 26206 bitmap sets. 26207 (create_expression_by_pieces): Ditto. 26208 (insert_aux): Ditto. 26209 (insert): Ditto. 26210 (add_to_sets): Ditto. 26211 (init_pre): Ditto. 26212 (execute_pre): Ditto. 26213 (compute_avail): Ditto. 26214 Also ignore virtual phis. 26215 262162004-07-04 Richard Sandiford <rsandifo@redhat.com> 26217 26218 * combine.c (simplify_comparison): Fix comment typo. 26219 262202004-07-04 Eric Botcazou <ebotcazou@libertysurf.fr> 26221 26222 * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename 26223 into LEAF_SIBCALL_SLOT_RESERVED_P after negation. 26224 (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P. 26225 (output_restore): Change parameter from 'insn' to 'pat'. 26226 (output_return): Adjust call to output_restore. 26227 (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P. 26228 Adjust call to output_restore. 26229 262302004-07-04 Neil Booth <neil@duron.akihabara.co.uk> 26231 26232 * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__ 26233 and assert system is bsd. 26234 262352004-07-04 Richard Sandiford <rsandifo@redhat.com> 26236 26237 * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete. 26238 (TARGET_SWITCHES): Remove -mdebugc. 26239 * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) 26240 (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling. 26241 (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i) 26242 (sle_[sd]i_reg): Delete. 26243 262442004-07-04 Steven Bosscher <stevenb@suse.de> 26245 26246 * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): 26247 Define. 26248 * config/iq2000/iq2000.md: Translate old pipeline description to an 26249 equivalent new one. 26250 262512004-07-04 Roger Sayle <roger@eyesopen.com> 26252 26253 * tree-ssa-ccp.c (set_rhs): Change function to return a bool. 26254 Ensure the replacement rhs is valid gimple before performing 26255 the substitution. Return false if these sanity checks fail. 26256 (fold_stmt): Only set changed to true, if set_rhs returns true. 26257 (execute_fold_all_builtins): Only call modify_stmt if set_rhs 26258 succeeds. 26259 262602004-07-04 Richard Henderson <rth@redhat.com> 26261 26262 PR c/16348 26263 * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops. 26264 262652004-07-04 Mark Mitchell <mark@codesourcery.com> 26266 26267 * configure.ac (ranlib_flags): New variable. 26268 * Makefile.in (RANLIB_FLAGS): New variable. 26269 (libbackend.a): Use it. 26270 * configure: Regenerated. 26271 262722004-07-04 Roger Sayle <roger@eyesopen.com> 26273 26274 * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate 26275 a "sign mask" instead of using ashr_optab directly. 26276 262772004-07-04 Neil Booth <neil@duron.akihabara.co.uk> 26278 26279 * doc/cpp.texi: Don't document what we do for ill-formed expressions. 26280 * doc/cppopts.texi: Clarify processing of command-line defines. 26281 262822004-07-04 Gerald Pfeifer <gerald@pfeifer.com> 26283 26284 * doc/contrib.texi (Contributors): Adjust link for GNU Classpath. 26285 262862004-07-04 Richard Henderson <rth@redhat.com> 26287 26288 * rtl.def (ADDRESSOF): Remove. 26289 * alias.c (rtx_equal_for_memref_p): Don't handle addressof. 26290 (find_base_term, memrefs_conflict_p): Likewise. 26291 * cse.c (fixed_base_plus_p, find_best_addr: Likewise. 26292 (fold_rtx, cse_insn, set_live_p): Likewise. 26293 * dwarf2out.c (mem_loc_descriptor): Likewise. 26294 (add_location_or_const_value_attribute): Likewise. 26295 * emit-rtl.c (copy_insn_1): Likewise. 26296 * explow.c (memory_address): Likewise. 26297 * expmed.c (store_split_bit_field): Likewise. 26298 * expr.c (expand_expr_real_1): Likewise. 26299 * function.c (instantiate_decl 26300 (instantiate_virtual_regs_1, fix_lexical_addr): Likewise. 26301 * genrecog.c (preds, validate_pattern): Likewise. 26302 * integrate.c (copy_rtx_and_substitute): Likewise. 26303 * recog.c (general_operand, register_operand): Likewise. 26304 (memory_address_p): Likwise. 26305 * reload1.c (eliminate_regs, elimination_effects): Likewise. 26306 * rtl.c (copy_rtx): Likewise. 26307 * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. 26308 (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise. 26309 * rtlhooks.c (gen_lowpart_general): Likewise. 26310 * stmt.c (expand_asm_operands): Likewise. 26311 * web.c (entry_register, replace_ref, web_main): Likewise. 26312 * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p, 26313 alpha_expand_block_move, alpha_expand_block_clear): Likewise. 26314 * config/arm/arm.c (thumb_rtx_costs): Likewise. 26315 * config/c4x/c4x.c (c4x_valid_operands): Likewise. 26316 * config/frv/frv.c (move_destination_operand, move_source_operand, 26317 condexec_dest_operand, condexec_source_operand, 26318 condexec_memory_operand): Likewise. 26319 * config/h8300/h8300.h (PREDICATE_CODES): Likewise. 26320 * config/ia64/ia64.c (general_xfmode_operand): Likewise. 26321 (destination_xfmode_operand): Likewise. 26322 * config/mips/mips.h (PREDICATE_CODES): Likewise. 26323 * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise. 26324 * config/s390/s390.c (general_s_operand): Likewise. 26325 * config/s390/s390.md (mov*): Likewise. 26326 * config/sparc/sparc.h (PREDICATE_CODES): Likewise. 26327 26328 * c-typeck.c (c_mark_addressable): Don't put_var_into_stack. 26329 * expr.c (expand_expr_real_1): Likewise. 26330 * stmt.c (expand_decl): Likewise. 26331 * config/c4x/c4x.c (c4x_expand_builtin): Likewise. 26332 26333 * function.c (struct fixup_replacement, struct insns_for_mem_entry, 26334 postponed_insns, put_var_into_stack, put_reg_into_stack, 26335 schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement, 26336 fixup_var_refs_insns, fixup_var_refs_insns_with_hash, 26337 fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg, 26338 walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field, 26339 gen_mem_addressof, flush_addressof, put_addressof_into_stack, 26340 purge_bitfield_addressof_replacements, purge_addressof_replacements, 26341 purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp, 26342 struct insns_for_mem_walk_info, insns_for_mem_walk, 26343 compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect, 26344 setjmp_protect_args): Remove. 26345 (push_function_context_to): Don't handle var_refs_queue. 26346 (pop_function_context_from, free_after_compilation): Likewise. 26347 (instantiate_virtual_regs): Don't handle parm_reg_stack_loc. 26348 (assign_parms, allocate_struct_function): Likewise. 26349 (use_register_for_decl): New. 26350 (expand_function_end): Don't setjmp_protect. 26351 * function.h (struct emit_status): Update commentary. 26352 (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc. 26353 (max_parm_reg, parm_reg_stack_loc): Remove. 26354 * passes.c (DFI_addressof): Remove. 26355 (dump_file_info): Remove addressof. 26356 (rest_of_handle_addressof): Remove. 26357 (rest_of_compilation): Don't call it. 26358 * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove. 26359 * stmt.c (expand_decl): Use use_register_for_decl. 26360 * tree.h: Update decls. 26361 * web.c (mark_addressof): Remove. 26362 * doc/invoke.texi (-dF): Remove. 26363 263642004-07-03 Richard Henderson <rth@redhat.com> 26365 26366 * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp 26367 instead of gen_mem_addressof. 26368 * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle 26369 TImode output register. 26370 263712004-07-03 Richard Henderson <rth@redhat.com> 26372 26373 PR tree-optimization/16341 26374 * tree-sra.c (sra_walk_function): Increment to next stmt before 26375 processing the current stmt. 26376 (sra_insert_after): Always use BSI_SAME_STMT. 26377 263782004-07-03 Richard Henderson <rth@redhat.com> 26379 26380 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold 26381 fp plus with minus. 26382 263832004-07-03 Joseph S. Myers <jsm@polyomino.org.uk> 26384 26385 * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal 26386 with tree_int_cst_equal. 26387 263882004-07-03 Andreas Schwab <schwab@suse.de> 26389 26390 * config/ia64/ia64.md: Define new attribute "empty". 26391 (prologue_use, nop_x, insn_group_barrier): Set it. 26392 26393 * config/ia64/ia64.c (ia64_reorg): When looking for trailing call 26394 skip over "empty" insns. 26395 263962004-07-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 26397 26398 * tree-inline.c (initialize_inlined_parameters): Pass proper function 26399 context to gimplify_body. 26400 (walk_tree): Don't walk into types twice. 26401 (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers. 26402 26403 * tree-sra.c (generate_element_init): Remove any useless conversions. 26404 26405 * gimplify.c (gimplify_conversion): Remove stripping useless 26406 conversions from here. 26407 (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS. 26408 (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare): 26409 Unshare before substituting PLACEHOLDER_EXPR. 26410 (gimplify_modify_expr_to_memset): Likewise. 26411 Pass address of TO to memset, not TO itself. 26412 (gimplify_init_constructor): Make copy of OBJECT so we have it each 26413 time we make an expression (to match a PLACEHOLDER_EXPR). 26414 26415 * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at 26416 VIEW_CONVERT_EXPR and NON_LVALUE_EXPR. 26417 * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION. 26418 * tree-ssa-dom.c (local_fold): Likewise. 26419 26420 * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook. 26421 * langhooks.h (strct lang_hooks): New field type_max_size. 26422 * function.c (assign_temp): Call it. 26423 264242004-07-03 Steven Bosscher <stevenb@suse.de> 26425 26426 * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1. 26427 * config/sh/sh.md: Convert the SH1 pipeline description to 26428 a DFA model. 26429 264302004-07-02 Zack Weinberg <zack@codesourcery.com> 26431 26432 * c-decl.c (struct c_binding): Remove contour field; add 26433 depth, invisible, nested fields. 26434 (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE) 26435 (B_IN_EXTERNAL_SCOPE): New convenience macros. 26436 (bind): Add invisible and nested arguments. Initialize 26437 new fields of struct c_binding; adjust loop scanning for 26438 insertion point. 26439 (free_binding_and_advance): Clear structure with memset. 26440 (pop_scope): Adjust to match. Set DECL_CONTEXT on everything 26441 in file scope, even if it's in external scope too. 26442 (pushdecl): Adjust to match. Create invisible file-scope 26443 declarations for block-scope forward declarations of static functions. 26444 (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare) 26445 (undeclared_variable, lookup_label, declare_label, define_label) 26446 (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function) 26447 (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value) 26448 (store_parm_decls_oldstyle): Adjust to match. 26449 (diagnose_mismatched_decls): Correct handling of linkage clashes. 26450 (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE. 26451 26452 * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete. 26453 (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one. 26454 264552004-07-02 Richard Henderson <rth@redhat.com> 26456 26457 * c-decl.c (grokdeclarator): Don't frob current_function_decl 26458 around variable_size. 26459 (set_decl_nonlocal): Remove. 26460 (store_parm_decls): Add stmts for pending sizes. 26461 * calls.c (calls_function, calls_function_1): Remove. 26462 (precompute_arguments): Don't call it. 26463 * cfgexpand.c (set_save_expr_context): Remove. 26464 (tree_expand_cfg): Don't call it. 26465 * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR. 26466 (dwarf2out_finish): Likewise. 26467 * expr.c (emit_block_move): Adjust addresses to BLKmode. 26468 (store_constructor): Don't pre-evaluate SAVE_EXPR. 26469 (safe_from_p): Don't queue SAVE_EXPRs. 26470 (expand_expr_real_1 <case SAVE_EXPR>): Rewrite to expect, 26471 or build plain VAR_DECLs. 26472 * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL. 26473 (fold): Likewise. 26474 (fold_checksum_tree): Don't special-case SAVE_EXPR. 26475 * function.c (free_after_compilation): Don't clear x_save_expr_regs. 26476 (put_var_into_stack): Don't handle SAVE_EXPR. 26477 (gen_mem_addressof): Likewise. 26478 * function.h (struct function): Remove x_save_expr_regs. 26479 (save_expr_regs): Remove. 26480 * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR. 26481 * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER. 26482 * stor-layout.c (variable_size): Don't set it. 26483 (force_type_save_exprs, force_type_save_exprs_1): Remove. 26484 * tree-inline.c (remap_save_expr): Remove fn argument. Update 26485 all callers. Don't set SAVE_EXPR_CONTEXT. 26486 * tree-inline.h (remap_save_expr): Update decl. 26487 * tree.c (save_expr): Update build size. 26488 (first_rtl_op): Don't handle SAVE_EXPR. 26489 (unsave_expr_1, contains_placeholder_p): Likewise. 26490 (decl_function_context): Likewise. 26491 * tree.def (SAVE_EXPR): Remove args 1 and 2. 26492 * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove. 26493 (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove. 26494 264952004-07-03 Joseph S. Myers <jsm@polyomino.org.uk> 26496 26497 * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi, 26498 doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi, 26499 doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, 26500 doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid 26501 some first-person references and patronizing comments. Based on 26502 printed manual. 26503 * doc/invoke.texi: Don't reference fortran@gnu.org. 26504 * doc/trouble.texi (Warning when a non-void function value is 26505 ignored): Rewrite. From Russ Allbery and Chris Devers. 26506 265072004-07-02 Daniel Berlin <dberlin@dberlin.org) 26508 26509 * tree-ssa-pre.c (bitmap_set_t): New. 26510 (bb_value_sets): avail_out is now a bitmap_set_t. 26511 (bitmap_find_leader): New function. 26512 (bitmap_value_insert_into_set): Ditto. 26513 (bitmap_set_copy): Ditto. 26514 (bitmap_value_replace_in_set): Ditto. 26515 (bitmap_set_contains_value): Ditto. 26516 (bitmap_set_new): Ditto. 26517 (bitmap_set_pool): New pool. 26518 (find_or_generate_expression): Use bitmap_ functions on AVAIL sets. 26519 (insert_aux): Ditto. 26520 (add_to_sets): Ditto. 26521 (compute_avail): Ditto 26522 (eliminate): Ditto. 26523 (init_pre): Ditto. 26524 (fini_pre): Ditto. 26525 (execute_pre): Ditto. 26526 265272004-07-02 Roger Sayle <roger@eyesopen.com> 26528 26529 * config/rs6000/rs6000.c (struct processor_costs): New structure 26530 used to hold instruction latencies/sizes for processor types. 26531 (rs6000_cost): New global variable pointing to current CPU's costs. 26532 (rs6000_override_options): Initialize rs6000_cost to point to the 26533 appropriate cost table based upon rs6000_cpu and optimize_size. 26534 (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor 26535 timings inline. 26536 265372004-07-02 Richard Henderson <rth@redhat.com> 26538 26539 * expmed.c (make_tree): Don't use SET_DECL_RTL. 26540 265412004-07-02 Steven Bosscher <stevenb@suse.de> 26542 26543 * tree-flow.h (bb_ann_d): Remove ephi_nodes field. 26544 265452004-07-01 Richard Henderson <rth@redhat.com> 26546 26547 * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx. 26548 (alpha_gp_save_rtx): Use assign_stack_local instead of 26549 gen_mem_addressof. 26550 265512004-07-01 Richard Henderson <rth@redhat.com> 26552 26553 * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div. 26554 (alpha_rtx_cost_data): Update to match. 26555 (alpha_rtx_cost_size): New. 26556 (alpha_rtx_costs): Honor optimize_size. 26557 265582004-07-01 Richard Henderson <rth@redhat.com> 26559 26560 * gimple-low.c (lower_function_body): Don't reset_block_changes here. 26561 * cfgexpand.c (tree_expand_cfg): Do it here. 26562 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here. 26563 * config/ia64/ia64.c (ia64_output_mi_thunk): And here. 26564 * config/mips/mips.c (mips_output_mi_thunk): And here. 26565 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here. 26566 * config/sh/sh.c (sh_output_mi_thunk): And here. 26567 * config/sparc/sparc.c (sparc_output_mi_thunk): And here. 26568 265692004-07-01 Richard Henderson <rth@redhat.com> 26570 26571 * tree.def (RTL_EXPR): Remove. 26572 * c-typeck.c (lvalue_p): Don't handle it. 26573 * expr.c (safe_from_p): Likewise. 26574 (expand_expr_real_1): Likewise. 26575 * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise. 26576 (fold_checksum_tree, tree_expr_nonnegative_p): Likewise. 26577 * gengtype.c (adjust_field_tree_exp): Likewise. 26578 * stmt.c (warn_if_unused_value): Likewise. 26579 * tree-gimple.c (recalculate_side_effects): Likewise. 26580 * tree-pretty-print.c (dump_generic_node): Likewise. 26581 * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise. 26582 (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise. 26583 * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove. 26584 26585 * stmt.c (struct stmt_status): Remove x_last_expr_type, 26586 x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value. 26587 (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove. 26588 (expand_expr_stmt): Merge with expand_expr_stmt_value. Remove 26589 all the bits that tracked last_expr. 26590 (expand_end_bindings): Don't track last_expr. 26591 (expand_start_stmt_expr, expand_end_stmt_expr): Remove. 26592 (clear_last_expr): Remove. 26593 (expand_asm): Don't call it. 26594 (expand_asm_operands, expand_end_cond): Likewise. 26595 (expand_naked_return, expand_null_return_1): Likewise. 26596 * c-typeck.c (c_begin_compound_stmt): Likewise. 26597 * cfgexpand.c (expand_block): Use expand_expr_stmt. 26598 * expr.c (expand_expr_real_1): Likewise. 26599 * tree.h: Update prototypes. 26600 26601 * function.h (struct sequence_stack): Remove sequence_rtl_expr. 26602 (struct emit_status): Remove sequence_rtl_expr. 26603 (struct function): Remove x_rtl_expr_chain. 26604 (seq_rtl_expr, rtl_expr_chain): Remove. 26605 * function.c (struct temp_slot): Remove rtl_expr. 26606 (assign_stack_temp_for_type): Don't set it. 26607 (free_temp_slots, pop_temp_slots): Don't check it. 26608 (free_after_compilation): Don't clear x_rtl_expr_chain. 26609 (fixup_var_refs): Don't search it. 26610 (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove. 26611 * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr 26612 or seq_rtl_expr. 26613 (push_topmost_sequence): Likewise. 26614 (end_sequence, init_emit): Likewise. 26615 (start_sequence_for_rtl_expr): Remove. 26616 * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR. 26617 * rtl.h (preserve_rtl_expr_result): Remove. 26618 266192004-07-02 Kazu Hirata <kazu@cs.umass.edu> 26620 26621 * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c, 26622 tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment 26623 typos. 26624 266252004-07-02 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> 26626 26627 * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define. 26628 (STANDARD_STARTFILE_PREFIX_2): Define. 26629 (standard_startfile_prefix_1): Initialize to 26630 STANDARD_STARTFILE_PREFIX_1. 26631 (standard_startfile_prefix_2): Initialize to 26632 STANDARD_STARTFILE_PREFIX_2. 26633 * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove. 26634 (STANDARD_STARTFILE_PREFIX_1): Define. 26635 (STANDARD_STARTFILE_PREFIX_2): Define. 26636 * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document. 26637 (STANDARD_STARTFILE_PREFIX_2): Document. 26638 266392004-07-01 Richard Henderson <rth@redhat.com> 26640 26641 * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr 26642 in order to disable scalarization. Instead set a flag and wait 26643 for a candidate decl. 26644 266452004-07-01 Joseph S. Myers <jsm@polyomino.org.uk> 26646 26647 * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi, 26648 doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: 26649 Use terminology "testsuite" and "enumerated". 26650 266512004-07-01 Richard Henderson <rth@redhat.com> 26652 26653 * dwarf2out.c (reg_save): Use INVALID_REGNUM. 26654 (dwarf2out_reg_save, dwarf2out_return_save): Likewise. 26655 (initial_return_save): Likewise. 26656 (flush_queued_reg_saves): Remap register numbers. 26657 (dwarf2out_return_reg): Likewise. 26658 266592004-07-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 26660 26661 * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL. 26662 26663 * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use 26664 access functions for lower bound and element size and only output 26665 if lower bound nonzero or element size not same as that of type. 26666 (dump_generic_node, case COMPONENT_REF): Use access func. for offset. 26667 266682004-07-01 Paolo Bonzini <bonzini@gnu.org> 26669 26670 * c-pretty-print.c (pp_c_postfix_expression): Fix pasto. 26671 266722004-07-01 Per Bothner <per@bothner.com> 26673 26674 * final.c (final): Fix typo reported by Aaron W. LaFramboise. 26675 266762004-07-01 Jakub Jelinek <jakub@redhat.com> 26677 26678 * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit 26679 bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's 26680 first operand. Don't optimize if the bitfield is volatile. 26681 266822004-07-01 Paolo Bonzini <bonzini@gnu.org> 26683 26684 * c-pretty-print.c (pp_c_postfix_expression): Handle 26685 floating-point comparison operators. 26686 (pp_c_expression): Pass floating-point comparison 26687 operators to pp_c_postfix_expression. 26688 266892004-07-01 Roger Sayle <roger@eyesopen.com> 26690 26691 * simplify-rtx.c (simplify_binary_operation) <PLUS, MINUS>: Use 26692 rtx_cost instead of "had_mult" to determine whether the transformed 26693 expression is cheaper than the original. 26694 266952004-07-01 Jerry Quinn <jlquinn@optonline.net> 26696 26697 * alias.c (get_alias_set, canon_rtx, get_addr, 26698 nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1): 26699 Use MEM_P. 26700 * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func, 26701 expand_builtin): Likewise. 26702 * calls.c (expand_call, emit_library_call_value_1, store_one_arg): 26703 Likewise. 26704 * combine.c (can_combine_p, combinable_i3pat, try_combine, 26705 find_split_point, combine_simplify_rtx, simplify_set, make_extraction, 26706 rtx_equal_for_field_assignment_p, gen_lowpart_for_combine, 26707 record_dead_and_set_regs_1, get_last_value_validate, 26708 mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise. 26709 * cse.c (check_dependence, canon_hash, equiv_constant, 26710 gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers, 26711 cse_around_loop, cse_check_loop_start, cse_set_around_loop, 26712 count_reg_usage): Likewise. 26713 * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup, 26714 cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set, 26715 cselib_record_sets): Likewise. 26716 * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol, 26717 dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise. 26718 * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise. 26719 * df.c (df_uses_record): Likewise. 26720 * dojump (do_jump): Likewise. 26721 * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor, 26722 loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info, 26723 decl_start_label): Likewise. 26724 * emit-rtl.c (gen_complex_constant_part, gen_highpart, 26725 operand_subword, change_address_1, make_safe_from): Likewise. 26726 * explow.c (break_out_memory_refs, copy_all_regs, validize_mem, 26727 stabilize, force_not_mem): Likewise. 26728 * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field, 26729 expand_mult_const, expand_divmod, emit_store_flag): Likewise. 26730 * expr.c (convert_move, convert_modes, emit_block_move, 26731 emit_group_load, emit_group_store, clear_storage, emit_move_insn, 26732 emit_move_insn_1, expand_assignment, store_expr, 26733 store_constructor_field, store_constructor, store_field, 26734 force_operand, safe_from_p, expand_expr_real_1, expand_increment): 26735 Likewise. 26736 * final.c (cleanup_subreg_operands, alter_subreg, 26737 get_mem_expr_from_op): Likewise. 26738 * flow.c (notice_stack_pointer_modification_1, 26739 init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs): 26740 Likewise. 26741 * function.c (mark_temp_addr_taken, preserve_temp_slots, 26742 preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1, 26743 optimize_bit_field, flush_addressof, purge_addressof_1, 26744 instantiate_decl, instantiate_virtual_regs_1, assign_parms, 26745 setjmp_protect, setjmp_protect_args, fix_lexical_addr, 26746 keep_stack_depressed): Likewise. 26747 * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok, 26748 noce_process_if_block, find_memory): Likewise. 26749 * integrate.c (subst_constants, allocate_initial_values): Likewise. 26750 * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p, 26751 update_equiv_regs): Likewise. 26752 * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store, 26753 maybe_eliminate_biv_1, find_mem_in_note_1): Likewise. 26754 * optabs.c (expand_abs, emit_unop_insn): Likewise. 26755 * passes.c (rest_of_handle_final): Likewise. 26756 * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands, 26757 move2add_note_store): Likewise. 26758 * ra-build.c (detect_remat_webs): Likewise. 26759 * ra-debug.c (dump_static_insn_cost): Likewise. 26760 * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise. 26761 * recog.c (validate_change, apply_change_group, cancel_changes, 26762 validate_replace_rtx_1, general_operand, register_operand, 26763 nonmemory_operand, push_operand, pop_operand, memory_operand, 26764 indirect_operand, asm_operand_ok, offsettable_memref_p, 26765 offsettable_nonstrict_memref_p, constrain_operands, 26766 store_data_bypass_p): Likewise. 26767 * reg-stack.c (subst_stack_regs_pat): Likewise. 26768 * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes, 26769 copy_cost, reg_scan_mark_refs): Likewise. 26770 * regmove.c (optimize_reg_copy_3, stack_memref_p, 26771 combine_stack_adjustments_for_block): Likewise. 26772 * regrename.c (copyprop_hardreg_forward_1): Likewise. 26773 * reload.c (can_reload_into, push_reload, decompose, immune_p, 26774 find_reloads, find_reloads_address, find_reloads_address_1, 26775 reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p, 26776 find_equiv_reg): Likewise. 26777 * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn, 26778 reload_as_needed, choose_reload_regs, emit_input_reload_insns, 26779 do_input_reload, emit_reload_insns, gen_reload, delete_output_reload, 26780 delete_address_reloads): Likewise. 26781 * resource.c (mark_referenced_resources): Likewise. 26782 * rtlanal.c (get_jump_table_offset, count_occurrences, 26783 reg_referenced_p, reg_set_p, set_of_1, set_noop_p, 26784 reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1, 26785 num_sign_bit_copies1): Likewise. 26786 * rtlhooks.c (gen_lowpart_general): Likewise. 26787 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. 26788 * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol, 26789 sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms, 26790 sdbout_global_decl): Likewise. 26791 * simplify-rtx.c (simplify_subreg): Likewise. 26792 * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl, 26793 expand_anon_union_decl, expand_end_case_type): Likewise. 26794 * unroll.c (calculate_giv_inc): Likewise. 26795 * var-tracking.c (stack_adjust_offset_pre_post, 26796 bb_stack_adjust_offset, track_expr_p, count_uses, add_uses, 26797 add_stores, compute_bb_dataflow, vt_get_decl_and_offset, 26798 vt_add_function_parameters): Likewise. 26799 * varasm.c (make_var_volatile, notice_global_symbol, 26800 assemble_external, decode_addr_const, mark_weak, 26801 default_encode_section_info): Likewise. 26802 268032004-07-01 Steven Bosscher <stevenb@suse.de> 26804 26805 * stmt.c (check_seenlabel): Remove. 26806 (pushcase, pushcase_range, expand_end_case_type): Don't call it. 26807 268082004-07-01 Richard Henderson <rth@redhat.com> 26809 26810 * function.h (struct function): Remove x_function_call_count. 26811 (function_call_count): Remove. 26812 * calls.c (expand_call): Don't set it. 26813 * integrate.c (copy_rtx_and_substitute): Likewise. 26814 26815 * function.h (struct function): Remove x_cleanup_label. 26816 (cleanup_label): Remove. 26817 * stmt.c (expand_value_return): Don't use it. 26818 * function.c (free_after_compilation): Don't set it. 26819 (expand_function_start): Likewise. Remove parms_have_cleanups arg. 26820 * cfgexpand.c (tree_expand_cfg): Update call. 26821 * tree.h (expand_function_start): Update decl. 26822 268232004-07-01 Joseph S. Myers <jsm@polyomino.org.uk> 26824 26825 PR c/1027 26826 * c-lang.c (c_initialize_diagnostics): Move from here ... 26827 * c-objc-common.c: ... to here. Include "c-pretty-print.h". 26828 (c_tree_printer): Use pretty-printer to format %T. 26829 * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space 26830 before '*' if not C++. 26831 (pp_c_direct_abstract_declarator): Don't try to print array upper 26832 bound for flexible array members. 26833 * c-tree.h: Include "diagnostic.h". 26834 (c_initialize_diagnostics): Declare. 26835 * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define. 26836 * c-format.c (format_type_warning): New function. Improve 26837 diagnostics for incorrect format argument types. 26838 (check_format_types): Use it. Add two parameters. Use the 26839 TYPE_MAIN_VARIANT of wanted_type. 26840 (check_format_info_main): Pass new parameters to 26841 check_format_types. 26842 (struct format_wanted_type): Update comment. 26843 268442004-07-01 Nick Clifton <nickc@redhat.com> 26845 26846 * target.h (struct gcc_target): Add new field to struct cxx: 26847 import_export_class. 26848 * target-def.h (TARGET_CXX): Initialise the new field. 26849 (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for 26850 the new field. 26851 * doc/tm.texi: Document the new target hook. 26852 268532004-07-01 Paolo Bonzini <bonzini@gnu.org> 26854 26855 * builtins.c (fold_builtin_classify): Fix typo. 26856 268572004-07-01 Richard Henderson <rth@redhat.com> 26858 26859 * function.c (identify_blocks, identify_blocks_1): Remove. 26860 * function.h (identify_blocks): Remove. 26861 * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment. 26862 268632004-07-01 Paolo Bonzini <bonzini@gnu.org> 26864 26865 * builtins.c (fold_builtin_classify): New. 26866 (fold_builtin_unordered_cmp): Fix commentary. 26867 (fold_builtin): Use it. 26868 * builtins.def: Define builtins for isnan, 26869 isnanf, isnanl, finite, finitef, finitel, 26870 isinf, isinff, isinfl. 26871 268722004-07-01 Richard Henderson <rth@redhat.com> 26873 26874 * function.h (struct function): Remove dont_emit_block_notes. 26875 * gimple-low.c (lower_function_body): Don't set it. 26876 * cfgexpand.c (expand_block): Don't check it. 26877 * cfglayout.c (insn_locators_initialize): Likewise. 26878 * expr.c (expand_expr_real, expand_expr_real_1): Likewise. 26879 * passes.c (rest_of_compilation): Likewise. 26880 * stmt.c (expand_start_bindings_and_block): Likewise. 26881 (expand_end_bindings): Likewise. 26882 268832004-07-01 Richard Henderson <rth@redhat.com> 26884 26885 * cgraph.h (cgraph_build_static_cdtor): Declare. 26886 * cgraphunit.c (cgraph_build_static_cdtor): New. 26887 * c-objc-common.c (build_cdtor): Use it. 26888 * coverage.c (create_coverage): Likewise. 26889 * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove. 26890 * optabs.c (init_optabs): Don't set gcov_init_libfunc. 26891 268922004-06-30 Roger Sayle <roger@eyesopen.com> 26893 26894 * expmed.c (expand_shift): Consider expanding LSHIFT_EXPR by a 26895 constant as a sequence of additions depending upon the rtx_costs. 26896 (synth_mult): Update the "observed" cost of a shift, based upon 26897 the above optimization. 26898 268992004-06-28 Geoffrey Keating <geoffk@apple.com> 26900 Andreas Tobler <a.tobler@schweiz.ch> 26901 26902 PR 15813 26903 * dwarf2out.c (reg_save): Output DW_CFA_same_value when a 26904 register is saved in itself. 26905 (initial_return_save): If the return address is a register, 26906 it's already there, don't bother to mention it in the CFI. 26907 (struct queued_reg_save): Add field saved_reg. 26908 (struct reg_saved_in_data): New. 26909 (regs_saved_in_regs): New. 26910 (num_regs_saved_in_regs): New. 26911 (queue_reg_save): Add extra parameter to specify register saved 26912 in register. Remove duplicate entries from queue. Add comment 26913 for function. 26914 (flush_queued_reg_saves): Handle registers saved in registers. 26915 Update regs_saved_in_regs. Add comment for function. 26916 (clobbers_queued_reg_save): Add comment for function. Allow 26917 for regs_saved_in_regs. 26918 (reg_saved_in): New. 26919 (dwarf2out_frame_debug_expr): Handle saving registers in other 26920 registers. 26921 (dwarf2out_frame_debug): Reset regs_saved_in_regs. 26922 * unwind-dw2.c (execute_cfa_program): Correct handling of 26923 DW_CFA_same_value. Add FIXME comment about incorrect implementation 26924 of DW_CFA_restore_extended. 26925 * config/rs6000/rs6000.c (rs6000_emit_prologue): Let 26926 dwarf2out_frame_debug_expr see instructions that save registers 26927 in other registers or save those other registers in memory. 26928 26929 * unwind-dw2.c (DWARF_FRAME_REGISTERS): Move to unwind-dw2.h. 26930 (_Unwind_FrameState): Likewise. 26931 * unwind-dw2.h: New. 26932 * Makefile.in (LIB2ADDEHDEP): Add unwind-dw2.h. 26933 * config/rs6000/darwin-fallback.c: New file. 26934 * config/rs6000/darwin.h (MD_FALLBACK_FRAME_STATE_FOR): Define. 26935 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Add darwin-fallback.o. 26936 269372004-07-01 Alan Modra <amodra@bigpond.net.au> 26938 26939 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): Rewrite. 26940 (function_arg): Use rs6000_arg_size rather than CLASS_MAX_NREGS in 26941 calculating gpr size for altivec. Simplify and correct 26942 rs6000_mixed_function_arg calls. Call rs6000_mixed_function_arg 26943 for ABI_V4 gpr case too. Fix off-by-one error in long double 26944 reg test. Generate the correct PARALLEL to handle long double 26945 for ABI_AIX 32-bit. Use this for -m32 -mpowerpc64 fpr case too. 26946 (function_arg_partial_nregs): Align before calculating regs left. 26947 Don't return info on partial fprs when we need info on gprs. 26948 Correct long double fpr off-by-one error. 26949 269502004-06-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 26951 26952 * pa-protos.h (prefetch_operand): Add prototype. 26953 * pa.c (prefetch_operand): New function. 26954 * pa.h (prefetch_operand): Add to PREDICATE_CODES. 26955 * pa.md (prefetch, prefetch_32, prefetch_64): New prefetch patterns. 26956 269572004-06-30 Richard Henderson <rth@redhat.com> 26958 26959 * function.h (struct function): Remove x_whole_function_mode_p. 26960 * c-decl.c (store_parm_decls): Don't set it. 26961 * tree-optimize.c (tree_rest_of_compilation): Likewise. 26962 * passes.c (rest_of_compilation): Don't check it. 26963 * stmt.c (expand_fixup): Likewise. 26964 * function.c (fixup_var_refs_insn): Remove unused variable. 26965 269662004-06-30 Richard Henderson <rth@redhat.com> 26967 26968 * tree.h (immediate_size_expand): Delete. 26969 * stor-layout.c (immediate_size_expand): Delete. 26970 (variable_size): Don't look at it. 26971 * c-decl.c (push_parm_decl): Don't frob immediate_size_expand. 26972 (start_function): Likewise. 26973 * cfgexpand.c (construct_exit_block): Likewise. 26974 * function.c (init_function_start, expand_function_end): Likewise. 26975 * tree-optimize.c (tree_rest_of_compilation): Likewise. 26976 269772004-06-30 Richard Henderson <rth@redhat.com> 26978 26979 * gimplify.c (gimplify_compound_lval): Take fallback argument 26980 instead of want_lvalue. 26981 (gimplify_call_expr): Take want_value argument instead of test 26982 function. Gimplify arguments to val only if reg_type; otherwise 26983 allow lvalue forms. 26984 (gimplify_expr): Update gimplify_compound_lval and gimplify_call_expr 26985 calls. 26986 * tree-gimple.c: Update GIMPLE grammer. Use true/false not 1/0. 26987 Tidy commentary globally. 26988 (get_call_expr_in): Remove RETURN_EXPR handling. Tidy. 26989 * tree-gimple.h (is_gimple_call_addr): Mark extern. 26990 26991 * gimplify.c (gimplify_modify_expr_to_memcpy): Fix typo. 26992 269932004-06-30 Richard Henderson <rth@redhat.com> 26994 26995 * tree-gimple.c (right_assocify_expr): Kill 26996 (rationalize_compound_expr): Kill. 26997 * tree-gimple.h: Likewise. 26998 * tree-inline.c (expand_call_inline): Don't call it. 26999 27000 * function.h (struct function): Remove x_last_parm_insn, 27001 inl_last_parm_insn. 27002 (last_parm_insn): Remove. 27003 * function.c (free_after_compilation): Don't clear them. 27004 (fixup_var_refs_insn, assign_parms): Don't set them. 27005 27006 * function.c, rtl.h (get_first_nonparm_insn): Remove. 27007 270082004-06-30 Joseph S. Myers <jsm@polyomino.org.uk> 27009 27010 * c-common.h (check_function_format): Remove first parameter. 27011 * c-format.c (format_check_context): Remove status. 27012 (check_format_info, check_format_info_main, 27013 maybe_read_dollar_number, avoid_dollar_number, 27014 finish_dollar_format_checking, check_format_types, 27015 check_function_format): Remove first parameter. Don't use 27016 status_warning. 27017 (check_format_arg): Don't use status_warning. 27018 (status_warning): Remove. 27019 * c-common.c (check_function_arguments): Update call to 27020 check_function_format. 27021 270222004-06-30 Eric Botcazou <ebotcazou@libertysurf.fr> 27023 27024 * config/sparc/sparc-protos.h (output_cbranch): Constify return 27025 value. 27026 (output_v9branch): Likewise. 27027 (sparc_v8plus_shift): Likewise. Rename into output_v8plus_shift. 27028 * config/sparc/sparc.c (output_cbranch): Constify return value. 27029 Prettify output for delay slots. 27030 (output_v9branch): Likewise. 27031 (sparc_v8plus_shift): Constify return value. Rename into 27032 output_v8plus_shift. 27033 * config/sparc/sparc.md (ashldi3_v8plus): Adjust call to 27034 sparc_v8plus_shift. 27035 (ashrdi3_v8plus): Likewise. 27036 (lshrdi3_v8plus): Likewise. 27037 (call_address_struct_value_sp32): Prettify output for delay slots. 27038 (call_symbolic_struct_value_sp32): Likewise. 27039 (call_address_untyped_struct_value_sp32): Likewise. 27040 (call_symbolic_untyped_struct_value_sp32): Likewise. 27041 270422004-06-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 27043 27044 * common.opt (ftree-loop-optimize): New flag. 27045 * tree-flow.h (kill_redundant_phi_nodes): Declare. 27046 * tree-optimize.c (init_tree_optimization_passes): Add pass_loop. 27047 * tree-pass.h (pass_loop_init, pass_loop_done): Declare. 27048 * tree-ssa-loop.c (current_loops): New variable. 27049 (tree_loop_optimizer_init, gate_loop, tree_ssa_loop_init, 27050 tree_ssa_loop_done): New functions. 27051 (pass_loop, pass_loop_init, pass_loop_done): New passes. 27052 * tree-ssa.c (kill_redundant_phi_nodes): Export. 27053 * doc/invoke.texi (-ftree-loop-optimize): Document. 27054 270552004-06-30 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 27056 27057 * tree-ssa-loop-ch.c: New file. 27058 * Makefile.in (tree-ssa-loop-ch.o): Add. 27059 (tree-into-ssa.o): Add GGC_H dependency. 27060 * tree-cfg.c (tree_duplicate_bb): Copy virtual arguments. 27061 * tree-flow.h (rewrite_into_ssa): Declaration changed. 27062 (rewrite_ssa_into_ssa, compute_global_livein, duplicate_ssa_name): 27063 Declare. 27064 * tree-into-ssa.c: Include ggc.h. 27065 (struct def_blocks_d): Add phi_blocks field. 27066 (struct mark_def_sites_global_data): Add names_to_rename field. 27067 (struct ssa_name_info): New. 27068 (compute_global_livein): Export. 27069 (set_def_block, insert_phi_nodes, mark_def_sites, set_livein_block, 27070 insert_phi_nodes_1, rewrite_finalize_block, insert_phi_nodes_for, 27071 register_new_def, get_reaching_def, def_blocks_free, 27072 get_def_blocks_for, rewrite_into_ssa): Modified to work with 27073 rewrite_ssa_into_ssa. 27074 (get_ssa_name_ann, get_phi_state, set_phi_state, get_current_def, 27075 set_current_def, ssa_mark_def_sites_initialize_block, 27076 ssa_mark_phi_uses, ssa_mark_def_sites, duplicate_ssa_name, 27077 ssa_register_new_def, ssa_rewrite_initialize_block, 27078 ssa_rewrite_phi_arguments, ssa_rewrite_finalize_block, 27079 ssa_rewrite_stmt, rewrite_ssa_into_ssa, rewrite_all_into_ssa): New 27080 functions. 27081 (pass_build_ssa): Call rewrite_all_into_ssa. 27082 * tree-optimize.c (execute_todo, execute_one_pass, 27083 tree_rest_of_compilation): Allocate vars_to_rename only once. 27084 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Provide parameter 27085 to rewrite_into_ssa. 27086 * tree-ssa-loop.c (should_duplicate_loop_header_p, 27087 mark_defs_for_rewrite, duplicate_blocks, do_while_loop_p, 27088 copy_loop_headers, gate_ch, pass_ch): Moved to tree-ssa-loop-ch.c. 27089 Use rewrite_ssa_into_ssa. 27090 * tree-ssa-operands.c (copy_virtual_operands): New function. 27091 * tree-ssa-operands.h (copy_virtual_operands): Declare. 27092 * tree.h (struct tree_ssa_name): Add aux field. 27093 (SSA_NAME_AUX): New macro to access it. 27094 270952004-05-28 Aaron W. LaFramboise <aaronraolete36@aaronwl.com> 27096 27097 * prefix.c (lookup_key): Cast buffer to LPBYTE. 27098 270992004-06-30 Per Bothner <per@bothner.com> 27100 27101 Conditionally compile support for --enable-mapped_location. 27102 * input.h: #include line-map.h for source_location typedef. 27103 (BUILTINS_LOCATION, UNKNOWN_LOCATION, expand_location, 27104 LOCATION_FILE, LOCATION_LINE): New macros and functions. 27105 (expanded_location, source_locus): New typedefs. 27106 (push_srcloc): Change parameter list if USE_MAPPED_LOCATION. 27107 * rtl.def (NOTE, ASM_OPERANDS): Modify specifcation, if 27108 USE_MAPPED_LOCATION. 27109 * rtl.h (NOTE_DELETED_LABEL_NAME): New macro. 27110 (NOTE_SOURCE_LOCATION, NOTE_EXPNDED_LOCATION, SET_INSN_DELETED): 27111 New conditional macros. 27112 (ASM_OPERANDS_SOURCE_FILE, ASM_OPERANDS_SOURCE_LINE): Replace 27113 by ASM_OPERANDS_SOURCE_LOCATION if USE_MAPPED_LOCATION. 27114 * tree.h (EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION, 27115 EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, EXPR_LINENO, 27116 DECL_IS_BUILTIN): New macros, most depending on USE_MAPPED__LOCATION. 27117 (tree_exp): Change type of locus to use new source_locus typedef. 27118 * tree.c (build1_stat): Use SET_EXPR_LOCATION. 27119 (annotate_with_locus, annotate_with_file_line): Conditionalize. 27120 (expand_location): New function. 27121 * toplev.c (unknown_location): New static, when USE_MAPPED_LOCATION. 27122 (push_srcloc, pop_loc): Adjust parameter handling. 27123 (process_options): Don't set input_filename by itself. 27124 (lang_dependent_init): Save, set input_location to <built-in>. 27125 (warn_deprecated_use): Use expand_location. 27126 27127 * basic-block.h (struct edge_def): Use new source_locus typedef. 27128 * c-common.c (fname_decl): Update save/clear/store of input_location. 27129 (c_do_switch_warnings): Update for USE_MAPPED_LOCATION case. 27130 * c-decl.c: Likewise. 27131 * c-dump.c (dump_stmt): Likewise. 27132 * c-gimplify.c (c-gimplify.c): Generalize using SET_EXPR_LOCATION. 27133 * c-lex.c (cb_line_change): If USE_MAPPED_LOCATION use token's src_loc 27134 to set input_location direction, rather than using linemap_lookup. 27135 (fe_file_change, cb_def_pragma): Again use source_location directly. 27136 * c-opts.c (saved_lineno): Remove static variable. 27137 (c_common_post_options, c_common_init): Don't bothner to save, 27138 clear and restore input_Location - now handled by lang_dependent_init. 27139 * function.c (init_function_start): Use new DECL_IS_BUILTIN macro. 27140 * xcoffout.c (xcoff_assign_fundamental_type_number): Likewise. 27141 * tree-mudflap.c (mf_file_function_line_tree): Take a location_t 27142 rather than a pointer to one. Use expand_location. 27143 (mf_varname_tree): Use expand_location. 27144 * tree-dump.c: Use expand_location on DECL_SOURCE_LOCATION. 27145 * coverage.c: Likewise. 27146 * print-tree.c: Likewise. 27147 * c-aux-info.c (gen_aux_info_record): Likewise. 27148 * c-parse.in: Use SET_EXPR_LOCATION macro. 27149 * gimple-low.c: Likewise. 27150 * tree-mudflap.c: Likewise. 27151 * gimplify.c: Likewise. Also use EXPR_LOCATION and EXPR_HAS_LOCATION. 27152 * c-ppoutput.c: Use new source_location typedef instead of fileline. 27153 * c-semantics.c: Use new macros. 27154 * c-typeck.c: Likewise. 27155 * cfgexpand.c: Handle USE_MAPPED_LOCATION case for function_end_locus. 27156 * cfglayout.c (insn_locators_initialize): Const cleanup. New macros. 27157 * cfgrtl.c (delete_insn): Use new NOTE_DELETED_LABEL_NAME macro. 27158 * print-rtl.c (print_rtx): Likewise. 27159 * emit-rtl.c: Don't clear NOTE_SOURCE_FILE if USE_MAPPED_LOCATION. 27160 * combine.c: Use new SET_INSN_DELETED macro. 27161 * flow.c: Likewise. 27162 * haifa-sched.c: Likewise. 27163 * ifcvt.c: Likewise. 27164 * recog.c: Likewise. 27165 * reload1.c: Likewise. 27166 * diagnostic.c: Use expand_location macro. 27167 * pretty-print.c (pp_base_format_text): Likewise. 27168 * profile.c: Likewise. 27169 * dwarf2out.c: Likewise. Also use expand_location, DECL_IS_BUILTIN. 27170 * dwarf2out.c (dwarf2out_decl: Use BUILTINS_LOCATION. 27171 * emit-rtl.c (emit_line_note): Simplify if USE_MAPPED_LOCATION. 27172 (force_next_line_note, insn_emit): Handle USE_MAPPED_LOCATION case. 27173 * final.c (final): Likewise. 27174 * haifa-sched.c: Likewise. 27175 * integrate.c: Likewise. 27176 * jump.c: Likewise. 27177 * rtl-error.c: Likewise. 27178 * stmt.c (check_seenlabel): Likewise. 27179 * tree-pretty-print.c: Likewise. 27180 * gengtype-lex.l: Temporary kludge to avoid duplicate typedef. 27181 * gengtype.c: Update for now typdefs in input.h. More kludges. 27182 * modulo-sched.c (sms_schedule): Use NOTE_EXPANDED_LOCATION macro. 27183 * ra-debug.c (ra_print_rtl): Likewise. 27184 * sched-rgn.c: Likewise. 27185 * sched-vis.c: Likewise. 27186 * rtl.h (gen_rtx_ASM_OPERANDS): Redefine if USE_MAPPED_LOCATION. 27187 * stmt.c (expand_asm_operands): Adjust calls to gen_rtx_ASM_OPERANDS. 27188 * tree-cfg.c: Use new macros and typedefs. 27189 * tree-flow-inline.h: Likewise. 27190 271912004-06-30 Richard Sandiford <rsandifo@redhat.com> 27192 Eric Christopher <echristo@redhat.com> 27193 27194 * config/mips/3000.md: Improve description. 27195 271962004-06-30 Paul Brook <paul@codesourcery.com> 27197 27198 * config/arm/cirrus.md (cirrus_arm_movdi, cirrus_movsf_hard_insn, 27199 cirrus_movdf_hard_insn): Set pool ranges for coprocessor loads. 27200 272012004-06-30 Sebastian Pop <pop@cri.ensmp.fr> 27202 27203 * Makefile.in (OBJS-common): Add tree-chrec.o. 27204 (tree-chrec.o): New rule. 27205 (GTFILES): Add tree-chrec.h. 27206 * gengtype.c (open_base_files): Add tree-chrec.h. 27207 * tree-chrec.c: New file. 27208 * tree-chrec.h: New file. 27209 * tree.def (SCEV_KNOWN, SCEV_NOT_KNOWN, POLYNOMIAL_CHREC): New nodes. 27210 272112004-06-30 Roger Sayle <roger@eyesopen.com> 27212 27213 * combine.c: Include "output.h" to define dump_file. 27214 (uid_insn_cost, last_insn_cost): New global variables. 27215 (combine_insn_cost): New function to estimate cost of an insn. 27216 (combine_validate_cost): New function to determine whether a 27217 try_combine replacement sequence is cheaper than the original. 27218 (combine_instructions): Allocate and populate uid_insn_cost 27219 array at the start of the combine pass, and deallocate it after. 27220 (try_combine): Check combine_validate_cost to determine whether 27221 a "recombination" should be rejected as being more expensive. 27222 * Makefile.in (combine.o): Add dependency upon output.h. 27223 272242004-06-30 Roger Sayle <roger@eyesopen.com> 27225 27226 * config/rs6000/rs6000.c (rs6000_rtx_costs) <MINUS_EXPR>: Handle 27227 subtractions identically to additions, always COSTS_N_INSNS (1). 27228 272292004-06-30 J"orn Rennecke <joern.rennecke@superh.com> 27230 27231 * expmed.c (expand_smod_pow2): Fix sign of mask. 27232 272332004-06-29 Diego Novillo <dnovillo@redhat.com> 27234 27235 * tree-ssa-pre.c (phi_trans_add): Use is_gimple_min_invariant 27236 to check for constants. 27237 (set_remove): Likewise. 27238 (value_replace_in_set): Likewise. 27239 (find_leader): Likewise. 27240 * tree-vn.c (set_value_handle): Likewise. 27241 (vn_lookup): Likewise. 27242 (vn_lookup_or_add): Likewise. 27243 272442004-06-30 Eric Botcazou <ebotcazou@libertysurf.fr> 27245 27246 RTL prologue/epilogue for SPARC 27247 * config/sparc/sparc-protos.h (sparc_emitting_epilogue): Delete. 27248 (sparc_skip_caller_unimp): Likewise. 27249 (load_pic_register): Likewise. 27250 (leaf_return_peephole_ok): Likewise. 27251 (compute_frame_size): Rename into sparc_compute_frame_size. 27252 (sparc_expand_prologue): New prototype. 27253 (sparc_expand_epilogue): Likewise. 27254 (output_return): Likewise. 27255 (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. 27256 * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Adjust call to 27257 compute_frame_size. Move comment up. 27258 (DELAY_SLOTS_FOR_EPILOGUE): Delete. 27259 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. 27260 (EPILOGUE_USES): Return true for %g1 if the function uses EH return. 27261 * config/sparc/sparc.md (UNSPECV_SAVEW): New constant. 27262 (type attribute): Add 'return' and 'savew'. 27263 (eligible_for_return_delay): New attribute. 27264 (return): New delay_slot. 27265 (sibcall_epilogue): Call sparc_expand_epilogue. 27266 (prologue): Likewise. Move up. 27267 (save_register_window): New expander. 27268 (save_register_windowsi): New pattern. 27269 (save_register_windowdi): Likewise. 27270 (epilogue): New expander. 27271 (return_internal): New pattern. 27272 (Return peepholes): Delete. 27273 * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): New macro. 27274 (sparc_emitting_epilogue): Delete. 27275 (sparc_skip_caller_unimp): Likewise. 27276 (sparc_sr_alias_set): New global variable. 27277 (frame_base_name): Delete. 27278 (frame_base_reg): New global variable. 27279 (sparc_override_options): Get new alias set for save/restore. 27280 (leaf_return_peephole_ok): Delete. 27281 (eligible_for_epilogue_delay): Rename into eligible_for_return_delay. 27282 Factor out code into eligible_for_restore_insn_delay. 27283 (eligible_for_restore_insn_delay): New function extraced from above. 27284 Use IN_UNCOND_BRANCH_DELAY_TRUE instead of IN_BRANCH_DELAY_TRUE. 27285 (eligible_for_sibcall_delay): Use SIBCALL_SLOT_EMPTY_P. 27286 Factor out code into eligible_for_restore_insn_delay. 27287 (load_pic_register): Make static. Remove check. 27288 (save_regs): Delete. 27289 (restore_regs): Likewise. 27290 (compute_frame_size): Rename into sparc_compute_frame_size. 27291 Rename leaf_function into leaf_function_p. 27292 (build_big_number): Delete. 27293 (save_or_restore_regs): New function. 27294 (emit_save_regs): Likewise. 27295 (emit_restore_regs): Likewise. 27296 (emit_stack_pointer_increment ): Likewise. 27297 (emit_stack_pointer_decrement): Likewise. 27298 (sparc_expand_prologue): Likewise. 27299 (sparc_function_prologue): Rename into sparc_asm_function_prologue. 27300 Remove all code to emit instructions. 27301 (sparc_expand_epilogue): New function. 27302 (sparc_function_epilogue): Rename into sparc_asm_function_epilogue. 27303 Remove all code to emit instructions. 27304 (output_restore): New function. 27305 (output_return): Likewise. 27306 (output_sibcall): Factor out code into output_restore. 27307 (print_operand): Adjust for frame_base_reg. 27308 * target.h (struct gcc_target): New field 'late_rtl_prologue_epilogue'. 27309 * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): New define. 27310 (TARGET_INITIALIZER): Add it. 27311 * passes.c (rest_of_compilation): Set the conditional predicate 27312 'current_function_uses_only_leaf_regs' before sched2. If target 27313 has 'late_rtl_prologue_epilogue', emit RTL prologue/epilogue right 27314 before sched2. 27315 * reorg.c (return_insn_p): New predicate. 27316 (find_end_label): Use it. 27317 (relax_delay_slots): Do not thread an unconditional jump that points 27318 to the end return label. 27319 * doc/tm.texi (Registers) <Leaf Functions>: Clarify the validity 27320 domain of 'current_function_uses_only_leaf_regs'. 27321 (Stack and Calling) <Function Entry>: Document new target hook 27322 TARGET_LATE_RTL_PROLOGUE_EPILOGUE. 27323 273242004-06-30 Jakub Jelinek <jakub@redhat.com> 27325 27326 * simplify-rtx.c (simplify_binary_operation): Simplify 27327 ((A & N) + B) & M -> (A + B) & M if M is pow2 minus 1 constant and 27328 N has at least all bits in M set as well. 27329 27330 PR tree-optimization/15310 27331 * expr.c (expand_assignment): Optimize += or -= on a bit field in 27332 most significant bits. 27333 273342004-06-30 Steven Bosscher <stevenb@suse.de> 27335 27336 * config/c4x/c4x.md: Fix comment. 27337 273382004-06-30 Akos Kiss <akiss@inf.u-szeged.hu> 27339 27340 * arm.md (cond_return_inverted): Add "length" attribute. 27341 273422004-06-29 Per Bothner <per@bothner.com> 27343 27344 * config/i386/winnt.c (i386_pe_encode_section_info): Smash rtlname's 27345 XSTR in place, so we don't lose SYMBOL_REF_DECL info. 27346 273472004-06-29 Zack Weinberg <zack@codesourcery.com> 27348 27349 * config/ia64/hpux.h: Target does too support thread-local storage. 27350 273512004-06-29 Zack Weinberg <zack@codesourcery.com> 27352 27353 * combine.c (distribute_notes): Don't look at global_regs for 27354 pseudos. 27355 273562004-06-29 Richard Henderson <rth@redhat.com> 27357 27358 * gimplify.c (gimplify_modify_expr_rhs): Move immediately before 27359 gimplify_modify_expr. 27360 (gimplify_init_constructor): Likewise. Gimplify the null 27361 CONSTRUCTOR assignment. 27362 (gimplify_modify_expr_to_memcpy): New. 27363 (gimplify_modify_expr_to_memset): New. 27364 (gimplify_modify_expr): Use them. 27365 273662004-06-29 Roman Zippel <zippel@linux-m68k.org> 27367 27368 * web.c (union_defs): use all defs of an instruction to create a 27369 union with a read/write use 27370 273712004-06-29 Richard Henderson <rth@redhat.com> 27372 27373 PR middle-end/16216 27374 * builtins.c (gimplify_va_arg_expr): Check for valist being 27375 an error_mark_node. 27376 273772004-06-29 Jakub Jelinek <jakub@redhat.com> 27378 27379 PR target/16195 27380 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Make 27381 r30 fixed if TARGET_TOC && TARGET_MINIMAL_TOC. 27382 (first_reg_to_save): Pretend call_used_regs[30] is 0 if 27383 TARGET_TOC && TARGET_MINIMAL_TOC. 27384 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. 27385 273862004-06-29 J"orn Rennecke <joern.rennecke@superh.com> 27387 27388 Fix gcc.dg/builtin-apply2.c failures: 27389 * sh.h (TARGET_VARARGS_PRETEND_ARGS): Define. 27390 * sh.c (extra_push): Delete. 27391 (sh_expand_prologue): Don't do extra stack adjustment for 27392 current_function_pretend_args_size if it comes from varargs setup. 27393 Use TARGET_VARARGS_PRETEND_ARGS. Don't set extra_push. 27394 (sh_expand_epilogue): Don't use extra_push. 27395 (sh_setup_incoming_varargs): Set pretend_arg_size when necessary. 27396 273972004-06-29 Roger Sayle <roger@eyesopen.com> 27398 27399 * expmed.c (expand_smod_pow2): Provide alternate implementations 27400 that avoid conditional jumps, and choose between them based upon 27401 the target's rtx_costs. 27402 274032004-06-29 Andrew Pinski <apinski@apple.com> 27404 27405 * tree-sra.c: Include expr.h for definition of MOVE_RATIO. 27406 * Makefile.in (tree-sra.c): Update dependencies. 27407 274082004-06-29 Richard Henderson <rth@redhat.com> 27409 27410 * tree-sra.c: Rewrite from scratch. Handle nested aggregates. 27411 274122004-06-29 Nathan Sidwell <nathan@codesourcery.com> 27413 27414 * vec.h (VEC_T_safe_push, VEC_T_safe_insert): Tweak for when 27415 size_t is bigger than int. 27416 274172004-06-29 Paul Brook <paul@codesourcery.com> 27418 27419 * target-def.h (TARGET_CXX_GET_COOKIE_SIZE, 27420 TARGET_CXX_COOKIE_HAS_SIZE): Define. 27421 (TARGET_CXX): Use them. 27422 * target.h (struct gcc_target): Add cxx.get_cookie_size and 27423 cxx.cookie_has_size. 27424 * targhooks.c (default_cxx_get_cookie_size): New fucntion. 27425 * targhooks.h (default_cxx_get_cookie_size): Add prototype. 27426 * config/arm/arm.c (TARGET_CXX_GET_COOKIE_SIZE, 27427 TARGET_CXX_COOKIE_HAS_SIZE): Define. 27428 (arm_get_cookie_size, arm_cookie_has_size): New functions. 27429 * Make-lang.in (cp/init.o): Add dependency on $(TARGET_H). 27430 * doc/tm.texi: Document TARGET_CXX_GET_COOKIE_SIZE and 27431 TARGET_CXX_COOKIE_HAS_SIZE. 27432 274332004-06-29 J"orn Rennecke <joern.rennecke@superh.com> 27434 27435 * cfglayout.c (fixup_reorder_chain): Don't do anything for 27436 e_fall->dest == EXIT_BLOCK_PTR. 27437 274382004-06-28 Richard Henderson <rth@redhat.com> 27439 27440 * tree-cfg.c (verify_stmt): Add last_in_block parameter. Verify 27441 that eh stmts can throw. 27442 (verify_stmts): Update verify_stmt call. 27443 (tree_purge_dead_eh_edges, tree_purge_all_dead_eh_edges): New. 27444 * tree-eh.c (remove_stmt_from_eh_region): New. 27445 (lower_eh_constructs): Fix throw_stmt_table delete routine. 27446 (tree_could_trap_p): Match may_trap_p. 27447 (maybe_clean_eh_stmt): New. 27448 * tree-flow.h: Update decls. 27449 * tree-ssa-ccp.c (pass_ccp): Add TODO_verify_stmts. 27450 (substitute_and_fold): Clean eh edges. 27451 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Handle 27452 empty basic blocks. 27453 * tree-ssa-dom.c (need_eh_cleanup): New. 27454 (tree_ssa_dominator_optimize): Allocate it. Cleanup eh edges. 27455 (optimize_stmt): Cleanup eh stmts; set need_eh_cleanup. 27456 274572004-06-29 Alan Modra <amodra@bigpond.net.au> 27458 27459 * function.c (assign_parms): Don't abort with zero size stack 27460 parm failing the PARM_BOUNDARY check. 27461 274622004-06-28 Diego Novillo <dnovillo@redhat.com> 27463 27464 * common.opt (ftree-fre): New flag. 27465 * flags.h (flag_tree_fre): Declare. 27466 * opts.c (decode_options): Set. 27467 * timevar.def (TV_TREE_FRE): Define. 27468 * tree-flow-inline.h (may_propagate_copy): Re-arrange for 27469 readability. Handle destinations that are not SSA_NAMEs. 27470 * tree-flow.h (struct ptr_info_def): Move from tree.h 27471 (cprop_into_stmt, cprop_into_successor_phis): Remove. 27472 (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Add 27473 vuse_optype parameter. 27474 * tree-pass.h (pass_fre): Declare. 27475 * tree-ssa-copy.c (cprop_operand): Move to tree-ssa-dom.c 27476 (cprop_into_stmt): Likewise. 27477 (cprop_into_successor_phis): Likewise. 27478 * tree-ssa-dom.c (eliminate_redundant_computations): Fix 27479 argument ordering in call to may_propagate_copy. 27480 * tree-ssa-pre.c (is_undefined_value): Assume hard registers 27481 to be always defined. 27482 (add_to_sets): New local function. 27483 (create_value_expr_from): New local function. 27484 (compute_avail): Call them. 27485 (eliminate): Don't ignore statements with virtual operands. 27486 (init_pre): New local function. 27487 (fini_pre): New local function. 27488 (execute_pre): Call them. 27489 Add argument DO_FRE. Don't do insertion if DO_FRE is true. 27490 (do_pre): New function. 27491 (do_fre): New function. 27492 (gate_fre): New function. 27493 (pass_fre): Declare. 27494 * tree-ssa.c (init_tree_ssa): Don't call vn_init. 27495 (delete_tree_ssa): Don't call vn_delete. 27496 * tree-vn.c (val_expr_pair_d): Add documentation. 27497 (vn_compute): Add VUSES argument to incorporate in computing 27498 hash values. Update all callers. 27499 (expressions_equal_p): Call operand_equal_p with 27500 OEP_PURE_SAME. 27501 (vn_add): Add VUSES argument. Update all callers. 27502 (vn_lookup): Likewise. 27503 (vn_lookup_or_add): Likewise. 27504 * doc/invoke.texi: Document -ftree-fre and -fdump-tree-fre. 27505 275062004-06-28 Steven Bosscher <stevenb@suse.de> 27507 27508 * config/m32r/m32r.c (m32r_sched_odd_word_p, m32r_adjust_cost, 27509 m32r_sched_init, m32r_sched_reorder, m32r_variable_issue): Remove. 27510 (TARGET_SCHED_ADJUST_COST, TARGET_SCHED_VARIABLE_ISSUE, 27511 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Don't define. 27512 * config/m32r/m32r.md: Rewrite the pipeline description as a DFA. 27513 275142004-06-28 Richard Henderson <rth@redhat.com> 27515 27516 * tree.def (REALPART_EXPR, IMAGPART_EXPR): Change class to 'r'. 27517 * fold-const.c (operand_equal_p <case 'r'>): Add REALPART_EXPR, 27518 IMAGPART_EXPR. 27519 * tree-dump.c (dequeue_and_dump): Handle REALPART_EXPR and 27520 IMAGPART_EXPR explicitly. 27521 * tree-inline.c (estimate_num_insns_1): Don't handle REALPART_EXPR 27522 and IMAGPART_EXPR specially. 27523 * tree.c (build1_stat): Copy TREE_THIS_VOLATILE into class 'r'. 27524 275252004-06-28 J"orn Rennecke <joern.rennecke@superh.com> 27526 27527 * config.gcc (sh*-*elf*): Remove dead assignment of sh_multilibs. 27528 275292004-06-28 Joseph S. Myers <jsm@polyomino.org.uk> 27530 27531 * builtins.def (execl, execlp, execle, execv, execvp, execve, 27532 fork): Change to DEF_EXT_LIB_BUILTIN. 27533 275342004-06-28 Roger Sayle <roger@eyesopen.com> 27535 27536 * expmed.c (expand_smod_pow2): New function to expand signed 27537 remainder by a constant power of 2, such as "x % 16". 27538 (expand_divmod): Call new expand_smod_pow2 when appropriate. 27539 Minor corrections to comments, e.g. wrapping long lines. 27540 275412004-06-28 Ulrich Weigand <uweigand@de.ibm.com> 27542 27543 * Makefile.in (vec.o): Fix dependencies. 27544 275452004-06-28 Andreas Tobler <a.tobler@schweiz.ch> 27546 27547 * Makefile.in: Fix parallel make dependency problem on vec.o. 27548 275492004-06-28 Dhananjay Deshpande <dhananjayd@kpitcummins.com> 27550 27551 PR target/14041 27552 * config/h8300/h8300.h (ASM_OUTPUT_ALIGNED_BSS): Define. 27553 275542004-06-28 Nathan Sidwell <nathan@codesourcery.com> 27555 27556 * tree.h (tree_check_failed): Make varadic. 27557 (tree_not_check_failed): New prototype. 27558 (tree_check2_failed, tree_check3_failed, 27559 tree_check4_failed, tree_check5_failed): Remove. 27560 (TREE_CHECK, TREE_CHECK2, TREE_CHECK3, TREE_CHECK4, 27561 TREE_CHECK5): Adjust. 27562 (TREE_NOT_CHECK, TREE_NOT_CHECK2, TREE_NOT_CHECK3, TREE_NOT_CHECK4, 27563 TREE_NOT_CHECK5): New. 27564 (TREE_VEC_ELT_CHECK, PHI_NODE_ELT_CHECK, TREE_OPERAND_CHECK_CODE, 27565 TREE_RTL_OPERAND_CHECK): Adjust. 27566 * tree.c (tree_check_failed): Make varadic. 27567 (tree_not_check_failed): New. 27568 (tree_check2_failed, tree_check3_failed, 27569 tree_check4_failed, tree_check5_failed): Remove. 27570 275712004-06-28 Ulrich Weigand <uweigand@de.ibm.com> 27572 27573 * combine.c (can_combine_p): Do not prevent building insns that use 27574 and clobber the same fixed hard register. 27575 (reg_dead_at_p): Likewise. 27576 275772004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27578 27579 * tree-sra.c (is_sra_candidate_ref): Remove second arg; all callers 27580 changed. 27581 (is_sra_candidate_complex_ref): New function. 27582 (scalarize_modify_expr): Call it and check for LHS also. 27583 27584 * tree-pretty-print.c (dump_function_declaration): New. 27585 (dump_generic_node, case FUNCTION_TYPE): Call it. 27586 (dump_generic_node, case RECORD_TYPE): Don't output dup semicolon. 27587 (dump_generic_node, case DECL_EXPR): New case. 27588 (dump_generic_node, case PLACEHOLDER_EXPR): Handle. 27589 (print_declaration): Handle type and function declarations. 27590 27591 * tree-nested.c (create_tmp_var_for): Allow ARRAY_TYPE. 27592 (convert_nonlocal_reference, convert_local_reference): Properly 27593 convert nest of handled component references. 27594 275952004-06-28 Nathan Sidwell <nathan@codesourcery.com> 27596 27597 * vec.h, vec.c: New, type safe vector API. 27598 * Makefile.in (OBJS-common): Add vec.o. 27599 (vec.o): New target. 27600 (gengtype-lex.o): Depend on vec.h. 27601 276022004-06-28 Paolo Bonzini <bonzini@gnu.org> 27603 27604 * fold-const.c (fold_cond_expr_with_comparison): Add ARG1 27605 parameter. Use it instead of ARG00 to produce the result. 27606 276072004-06-28 Alexandre Oliva <aoliva@redhat.com> 27608 27609 * config/mn10300/mn10300-protos.h (legitimate_address_p): Declare. 27610 * config/mn10300/mn10300.c (legitimate_address_p): New. Test that 27611 index is legitimate, compared with code moved from... 27612 * config/mn10300/mn10300.h (GO_IF_LEGITIMATE_ADDRESS): here. 27613 (REG_STRICT): Define, according to REG_OK_STRICT. 27614 (REGNO_IN_RANGE_P, REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P, 27615 REGNO_EXTENDED_P, REGNO_AM33_P, REGNO_FP_P): Introduce strict 27616 argument. 27617 (REGNO_STRICT_OK_FOR_BASE_P, REGNO_STRICT_OK_FOR_BIT_BASE_P, 27618 REGNO_STRICT_OK_FOR_INDEX_P): New. 27619 (REGNO_OK_FOR_BASE_P, REG_OK_FOR_BASE_P, REGNO_OK_FOR_BIT_BASE_P, 27620 REG_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P, 27621 RTX_OK_FOR_BASE_P): Use them. 27622 276232004-06-28 Ben Elliston <bje@au.ibm.com> 27624 27625 * doc/cfg.texi (Basic Blocks): Define dominators. 27626 276272004-06-27 Andrew Pinski <pinskia@physics.uc.edu> 27628 27629 PR c++/16205 27630 * c-common.c (warn_for_collisions_1): Warn for only decls which 27631 have a name. 27632 27633 PR c++/15145 27634 * c.opt (Wsequence-point): Enable for C++ and ObjC++. 27635 27636 PR c/14963 27637 * c-decl.c (start_decl): Check for null types. 27638 276392004-06-27 David Edelsohn <edelsohn@gnu.org> 27640 27641 * config/rs6000/rs6000.c (rs6000_legitimate_offset_address_p): 27642 Accept TOC addresses. 27643 276442004-06-27 Ulrich Weigand <uweigand@de.ibm.com> 27645 27646 * config/s390/s390-protos.h (s390_load_got): Update prototype. 27647 * config/s390/s390.c (struct machine_function): Add member base_reg. 27648 (s390_decompose_address): Accept UNSPEC_LTREF. Simplify logic. 27649 (s390_split_branches): Annotate late pool references. 27650 (annotate_constant_pool_refs): New function. 27651 (find_constant_pool_ref): Work on annotated pool references. 27652 (replace_constant_pool_ref): Likewise. Use explicit base. 27653 (replace_ltrel_base): Use explicit base. 27654 (s390_mainpool_start): Reflect main_pool pattern change. 27655 (s390_mainpool_finish): Use base register from main_pool. 27656 Update calls to replace_ltrel_base and replace_constant_pool_ref. 27657 (s390_chunkify_start): Use base_reg from struct machine_function. 27658 (s390_chunkify_finish): Remove base_reg argument. Update calls 27659 to replace_ltrel_base and replace_constant_pool_ref. 27660 (s390_reorg): Don't decide upon base register. Update calls. 27661 (s390_load_got): Remove MAYBE_DEAD handling. Do not emit insns 27662 but return sequence instead. 27663 (s390_emit_prologue): Decide upon base register to use. Annotate 27664 all literal pool references. Adapt to main_pool pattern change. 27665 Update s390_load_got call; move MAYBE_DEAD handling here. 27666 (s390_emit_epilogue): Annotate late literal pool references. 27667 Remove barrier before register restore instruction. 27668 * config/s390/s390.md (UNSPEC_LTREF): New constant. 27669 ("builtin_setjmp_receiver"): Update s390_load_got call. 27670 ("main_pool"): Explicitly reference base register. 27671 276722004-06-27 Roger Sayle <roger@eyesopen.com> 27673 27674 * fold-const.c (fold) <BIT_IOR_EXPR>: Optimize ~X|X and X|~X as -1. 27675 <BIT_XOR_EXPR>: Optimize ~X|X and X|~X as -1. 27676 <BIT_AND_EXPR>: Optimize ~X&X and X&~X as 0. 27677 <TRUTH_AND_EXPR, TRUTH_ANDIF_EXPR>: Optimize !X&&X and X&&!X as false. 27678 <TRUTH_OR_EXPR, TRUTH_ORIF_EXPR>: Optimize !X||X and !X||X as true. 27679 <TRUTH_XOR_EXPR>: Optimize !X^X and X^X! as true. Now that 27680 TRUTH_XOR_EXPR is a commutative tree code, don't test whether arg0 27681 is a constant. 27682 276832004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27684 27685 * c-common.c (c_safe_from_p, c_walk_subtrees): Deleted. 27686 * c-common.def (DECL_STMT): Remove. 27687 * c-common.h (DECL_STMT_DECL): Deleted. 27688 (COMPOUNT_LITERAL_EXPR_DECL): Use DECL_EXPR_DECL. 27689 (c_safe_from_p, c_walk_subtrees): Deleted. 27690 * c-decl.c, c-parse.in, c-pretty-print.c: DECL_STMT now DECL_EXPR. 27691 * c-dump.c (c_dump_tree, case DECL_STMT): Deleted. 27692 * c-gimplify.c (gimplify_decl_stmt): Deleted. 27693 (gimplify_compound_literal_expr): Use DECL_EXPR_DECL 27694 and gimplify_and_add. 27695 (c_gimplify_expr, case DECL_EXPR): New case. 27696 (c_gimplify_expr, case DECL_STMT): Deleted. 27697 * c-lang.c (LANG_HOOKS_SAFE_FROM_P): Likewise. 27698 (LANG_HOOKS_TREE_INLINING_WALK_SUBTREES): Likewise. 27699 * expr.c (safe_from_p, case 's'): New case. 27700 * gimplify.c (gimplify_decl_expr): New function. 27701 (gimplify_expr, case DECL_EXPR): New case. 27702 * tree-inline.c (walk_tree): Walk into all fields of a type and 27703 decl only if they are in a DECL_EXPR. 27704 (mark_local_for_remap_r): Minor code cleanup. 27705 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Add else. 27706 * tree.c (has_cleanups, case DECL_EXPR): New case. 27707 * tree.def (DECL_EXPR): New code. 27708 * tree.h (DECL_EXPR_DECL): New macro. 27709 27710 * objc/objc-lang.c (LANG_HOOKS_SAFE_FROM_P): Deleted. 27711 277122004-06-26 Andrew Pinski <pinskia@physics.uc.edu> 27713 27714 PR 13334 27715 * doc/install.texi: Document non-standard CFLAGS and bootstrap 27716 failures and warnings. 27717 277182004-06-26 Andrew Haley <aph@redhat.com> 27719 27720 * emit-rtl.c (set_mem_attributes_minus_bitpos): Check 27721 TREE_THIS_NOTRAP when setting MEM_NOTRAP_P. 27722 * tree-eh.c (tree_could_trap_p): Check TREE_THIS_NOTRAP. 27723 * tree.h (TREE_THIS_NOTRAP): New. 27724 277252004-06-26 Kaz Kojima <kkojima@gcc.gnu.org> 27726 27727 * genattrtab.c (write_test_expr): Put a unsigned cast before 27728 the first operand for GEU, GTU, LEU and LTU. 27729 277302004-06-26 Kazu Hirata <kazu@cs.umass.edu> 27731 27732 * c-typeck.c, cfgexpand.c, ddg.c, ddg.h, df.c, fold-const.c, 27733 gcov.c, gimplify.c, modulo-sched.c, passes.c, tree-cfg.c, 27734 tree-mudflap.c, tree-nrv.c, tree-outof-ssa.c, tree-ssa-dom.c, 27735 tree-ssa-dse.c, tree-ssa-operands.c, tree-ssa-pre.c, 27736 tree-tailcall.c: Fix comment typos. Follow spelling 27737 conventions. 27738 277392004-06-25 Eric Christopher <echristo@redhat.com> 27740 27741 * config/mips/mips.md: Add back scheduling exclusion info. 27742 277432004-06-25 Roger Sayle <roger@eyesopen.com> 27744 27745 * ifcvt.c (seq_contains_jump): Delete function. 27746 (end_ifcvt_sequence): Replace call to seq_contains_jump with an 27747 inline test for a jump instruction in the existing "insn" loop. 27748 (block_fallthru): Document function. 27749 277502004-06-25 Philip Blundell <philb@gnu.org> 27751 27752 PR wrong-code/15089 27753 * loop.c (scan_loop): Do not move user-specified register 27754 assignments. 27755 277562004-06-25 DJ Delorie <dj@redhat.com> 27757 27758 * c-common.h (warn_cast_qual, warn_missing_format_attribute, 27759 warn_pointer_arith, warn_missing_prototypes, warn_parentheses, 27760 warn_missing_braces, warn_sign_compare, warn_long_long, 27761 warn_redundant_decls, warn_float_equal, warn_char_subscripts, 27762 warn_conversion, warn_format_y2k, warn_format_extra_args, 27763 warn_format_zero_length, warn_format_nonliteral, 27764 warn_format_security, mesg_implicit_function_declaration, 27765 warn_bad_function_cast, warn_traditional, 27766 warn_declaration_after_statement, warn_strict_prototypes, 27767 warn_missing_declarations, warn_nested_externs, 27768 warn_sequence_point, warn_init_self, warn_div_by_zero, 27769 warn_implicit_int, warn_nonnull, warn_old_style_definition, 27770 warn_selector, warn_undeclared_selector, warn_protocol, 27771 warn_abi, warn_invalid_offsetof, warn_ctor_dtor_privacy, 27772 warn_overloaded_virtual, warn_nonvdtor, warn_reorder, 27773 warn_synth, warn_pmf2ptr, warn_ecpp, warn_sign_promo, 27774 warn_old_style_cast, warn_nontemplate_friend, 27775 warn_deprecated): Remove explicit declarations. 27776 * c-common.c: Likewise, remove explicit definitions. 27777 * c-opts.c: Likewise, remove explicit assignments. 27778 * c.opts: Likewise, add implicit declare/define/assign. 27779 277802004-06-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27781 27782 * gimplify.c (lookup_tmp_var): Set TREE_READONLY in is_formal case. 27783 (build_addr_expr_with_type): Deleted. 27784 (build_addr_expr): Deleted; callers changed to build_fold_addr_expr. 27785 (gimplify_compound_lval): Make two passes over reference nest. 27786 27787 * tree-nested.c (build_addr): Merge real/imagpart with 27788 handled_component_p. 27789 (convert_nonlocal_reference, convert_local_reference): Process extra 27790 args to COMPONENT_REF and ARRAY_REF. 27791 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Check for 27792 lower bound and field offset being constant. 27793 277942004-06-25 Mark Mitchell <mark@codesourcery.com> 27795 27796 PR wrong-code/16129 27797 * alias.c (get_alias_set): Adjust setting of 27798 DECL_POINTER_ALIAS_SET for pointers to aggregates. 27799 278002004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27801 27802 * tree-inline.c (remap_type): Arrange to have just one pointer type 27803 for each type, mode, and 'can alias' value. 27804 (setup_one_parameter): Remap type when making VAR_DECL for PARM_DECL. 27805 (estimate_num_insns_1): Minor code reformatting. 27806 (inline_forbidden_p_1): Likewise; add; missing return statement. 27807 278082004-06-25 Roger Sayle <roger@eyesopen.com> 27809 27810 PR middle-end/15825 27811 * ifcvt.c (unshare_ifcvt_sequence): Rename to end_ifcvt_sequence. 27812 Use get_isns and end_sequence instead of accepting a seq argument. 27813 Scan the instruction sequence for unrecognizable or jump insns. 27814 (noce_try_move, noce_try_store_flag, noce_try_store_flag_constants, 27815 noce_try_addcc, noce_try_store_flag_mask, noce_try_cmove, 27816 noce_try_cmove_arith, noce_try_minmax, noce_try_abs, 27817 noce_try_sign_mask): Use end_ifcvt_sequence to factor common code. 27818 278192004-06-24 Jeff Law <law@redhat.com> 27820 27821 * gimplify.c (gimplify_compound_lval): Reset TREE_SIDE_EFFECTS 27822 after gimplifying the innermost component. 27823 278242004-06-25 Richard Sandiford <rsandifo@redhat.com> 27825 27826 PR target/16176 27827 * config/mips/mips.c (mips_expand_unaligned_load): Use a temporary 27828 register for the destination of the lwl or ldl. 27829 278302004-06-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27831 27832 * tree-dfa.c (get_virtual_var): Merge real/imaginary parts with 27833 handled_component_p handling. 27834 * tree-gimple.c (get_base_address): Likewise and fix typo that 27835 caused both recursion and looping. 27836 27837 * tree-cfg.c (verify_expr): Add macro CHECK_OK. 27838 Properly test for nest of handled_components in LHS context. 27839 278402004-06-25 Devang Patel <dpatel@apple.com> 27841 27842 * doc/tree-ssa.texi: Document info about MODIFY_EXPR's type 27843 278442004-06-25 Paul Brook <paul@codesourcery.com> 27845 27846 * target-def.h (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT, 27847 TARGET_CXX): Define. 27848 (TARGET_INITIALIZER): Use TARGET_CXX. 27849 * target.h (struct gcc_target): Add struct cxx. 27850 * targhooks.h (default_cxx_guard_type): Add prototype. 27851 * targhooks.c (default_cxx_guard_type): New function. 27852 * config/arm/arm.c (TARGET_CXX_GUARD_TYPE, TARGET_CXX_GUARD_MASK_BIT): 27853 Define. 27854 (arm_cxx_guard_type, arm_cxx_guard_mask_bit): New functions. 27855 * doc/tm.texi: Document TARGET_CXX_GUARD_TYPE and 27856 TARGET_CXX_GUARD_MASK_BIT. 27857 278582004-06-25 Devang Patel <dpatel@apple.com> 27859 27860 * config/rs6000/darwin.h (CC1_SPEC): Handle -gused and -gfull. 27861 * config/i386/darwin.h (CC1_SPEC): Same. 27862 278632004-06-25 Mark G. Adams <mark.g.adams@sympatico.ca> 27864 27865 * dbxout.h: Add include guards 27866 278672004-06-25 Paul Brook <paul@codesourcery.com> 27868 27869 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define __ARM_EABI__. 27870 278712004-06-25 Richard Earnshaw <rearnsha@arm.com> 27872 27873 * arm.c (arm_arch4t): New variable. 27874 (arm_override_options): Initialize it. If compiling for armv5 or 27875 higher clear TARGET_INTERWORK. 27876 (output_call): Abort if called for armv5. Use BX if it's available. 27877 (output_call_mem): Use BLX if available and ensure that all armv5 27878 code is interworking safe. 27879 (output_return_instruction): Always use BX in preference to MOV if 27880 it's available. 27881 (arm_output_epilogue): Likewise. 27882 (arm_final_prescan_insn): Never conditionally call a subroutine 27883 on armv5. 27884 * arm.h (arm_arch4t): Declare. 27885 * arm.md (call_reg_armv5, call_value_reg_armv5): New. 27886 (call_reg_arm, call_value_reg_arm): Renamed from call_reg and 27887 call_value_reg respectively. 27888 (call_reg_thumb_v5, call_value_reg_thumb_v5): New. 27889 (call_reg_thumb, call_value_reg_thumb): Renamed from call_indirect 27890 and call_value_indirect respectively. 27891 278922004-06-25 Richard Sandiford <rsandifo@redhat.com> 27893 27894 * config/mips/mips.c (reg_or_const_float_1_operand): Reimplement 27895 in terms of const_float_1_operand. 27896 278972004-06-25 Richard Sandiford <rsandifo@redhat.com> 27898 27899 PR target/16144 27900 * config/mips/mips.md (divsf, divdf): Don't FAIL if the first operand 27901 is 1.0; force it into a register instead. 27902 279032004-06-25 Bernardo Innocenti <bernie@develer.com> 27904 27905 * config/m68k/m68k.h: Restore valid comment removed by mistake with 27906 the recent m68k comments cleanup. 27907 279082004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27909 27910 * c-gimplify.c (gimplify_for_stmt): Use gimplify_and_add. 27911 * gimplify.c (internal_get_tmp_var, gimplify_return_expr): Likewise. 27912 (gimplify_loop_expr, gimplify_init_constructor): Likewise. 27913 (gimplify_self_mod_expr, gimplify_cond_expr): Likewise. 27914 27915 PR/16131 27916 * gimplify.c (voidify_wrapper_expr): Allow TARGET_EXPR. 27917 27918 * gimplify.c: Remove unneeded forward declarations. 27919 27920 * gimplify.c (append_to_compound_expr): Deleted. 27921 * tree-gimple.h (append_to_compound_expr): Deleted. 27922 27923 * fold-const.c (fold_addr_expr_with_type): Look through all 27924 valid LHS modifiers to find a base to mark addressable. 27925 27926 * tree.h (debug_find_tree): Add declaration. 27927 * tree-inline.c (debug_find_tree): Remove extern declaration. 27928 279292004-06-24 Eric Christopher <echristo@redhat.com> 27930 27931 * config/rs6000/rs6000.md: Apply change mistakenly 27932 deleted with 2004-06-22 patch. 27933 279342004-06-24 Richard Henderson <rth@redhat.com> 27935 27936 * c-decl.c (c_in_iteration_stmt, c_in_case_stmt): Remove. 27937 (c_break_label, c_cont_label): New. 27938 (start_function): Update initializations. 27939 (c_push_function_context): Update saves. 27940 (c_pop_function_context): Update restores. 27941 * c-parse.in: Update expected conflicts. 27942 (stmt_count, compstmt_count): Remove. Remove all updates. 27943 (if_prefix, simple_if, do_stmt_start): Remove. 27944 (lineno_labeled_stmt): Remove. 27945 (lineno_labels): New. 27946 (c99_block_lineno_labeled_stmt): Use it. 27947 (lineno_stmt, lineno_label): Don't clear EXPR_LOCUS before calling 27948 annotate_with_locus. 27949 (select_or_iter_stmt): Replace by ... 27950 (condition, if_statement_1, if_statement_2, if_statement, 27951 start_break, start_continue, while_statement, do_statement, 27952 for_cond_expr, for_incr_expr, for_statement, switch_statement): New. 27953 (stmt): Split out ... 27954 (stmt_nocomp): ... this. Use c_finish_bc_stmt, c_finish_goto_label, 27955 c_finish_goto_ptr. 27956 * c-semantics.c (add_stmt): Don't add line numbers to labels. 27957 * c-tree.h: Update prototypes. 27958 (struct language_function): Remove x_in_iteration_stmt, x_in_case_stmt; 27959 add x_break_label, x_cont_label, x_switch_stack. 27960 (c_switch_stack): Declare. 27961 * c-typeck.c (c_finish_goto_label, c_finish_goto_ptr): New. 27962 (c_finish_return): Return the statement. 27963 (c_switch_stack): Rename from switch_stack; export. 27964 (if_elt, if_stack, if_stack_space, if_stack_pointer): Remove. 27965 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_begin_else, 27966 c_finish_else): Remove. 27967 (c_finish_if_stmt): Rewrite to perform the entire operation. 27968 (c_begin_while_stmt, c_finish_while_stmt_cond, c_finish_while_stmt, 27969 c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, 27970 c_finish_for_stmt_incr, c_finish_for_stmt): Remove. 27971 (c_finish_loop): New. 27972 (c_finish_bc_stmt): New. 27973 (c_finish_expr_stmt): Return the statement. Split out... 27974 (c_process_expr_stmt): ... this. Don't add locus to error marks. 27975 * gimplify.c (gimplify_cond_expr): Accept NULL type statements. 27976 * tree-gimple.c (is_gimple_stmt): Likewise. 27977 * tree-pretty-print.c (dump_generic_node <COND_EXPR>): Likewise. 27978 (print_struct_decl): Delete empty compound statement. 27979 * objc/objc-act.c (objc_build_throw_stmt): Return the statement. 27980 * objc/objc-act.h: Update decl. 27981 279822004-06-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 27983 27984 * tree-pretty-print.c (dump_generic_node, case TYPE_DECL): 27985 Don't look at TYPE_METHODS unless RECORD_TYPE or UNION_TYPE. 27986 279872004-06-24 Andrew Pinski <apinski@apple.com> 27988 27989 * objc-act.c (build_objc_method_call): Save the lookup_object 27990 so we do not call it twice. 27991 279922004-06-24 Richard Henderson <rth@redhat.com> 27993 27994 * tree-ssa-dom.c (real_avail_expr_hash): New. 27995 (tree_ssa_dominator_optimize): Use it in the htab. 27996 279972004-06-24 Frank Ch. Eigler <fche@redhat.com> 27998 27999 * tree-mudflap.c (mx_register_decls): Add third (type) argument 28000 to synthesized __mf_unregister call. 28001 280022004-06-24 Roger Sayle <roger@eyesopen.com> 28003 28004 PR middle-end/15239 28005 * expmed.c (expand_mult): Remove artificial restriction on the 28006 maximum cost of a synthetic multiplication sequence. 28007 280082004-06-24 Eric Christopher <echristo@redhat.com> 28009 28010 * combine.c (distribute_notes): Don't delete sets to 28011 global register variables. 28012 280132004-06-24 Jakub Jelinek <jakub@redhat.com> 28014 28015 * config/i386/i386.md (ffsdi2, clzdi2): New expanders. 28016 (ffs_rex64): New splitter. 28017 (ffsdi_1, ctzdi2, bsr_rex64): New instructions. 28018 280192004-06-24 Andrew Pinski <apinski@apple.com> 28020 28021 * config/darwin7.h (MATH_LIBRARY): Remove. 28022 (LIB_SPEC): Define. 28023 * config/darwin.h (MATH_LIBRARY): Define always to empty. 28024 (LIB_SPEC): Only define if not already defined. 28025 280262004-06-24 Revital Eres <eres@il.ibm.com> 28027 28028 * loop-iv.c (iv_analyze, simple_set_p): Support for identifying 28029 shifts of induction variable. 28030 (iv_shift): New function. 28031 280322004-06-24 Richard Henderson <rth@redhat.com> 28033 28034 * gimplify.c (gimplify_body): Watch for body vanishing. 28035 280362004-06-24 Jeff Law <law@redhat.com> 28037 28038 * tree-ssa-dom.c (record_dominating_conditions): New function. 28039 (dom_opt_finalize_block, get_eq_expr_value): Use it. 28040 280412004-06-24 Richard Sandiford <rsandifo@redhat.com> 28042 28043 * calls.c (shift_returned_value): Fix handling of non-integer 28044 TYPE_MODEs. 28045 280462004-06-24 Ulrich Weigand <uweigand@de.ibm.com> 28047 28048 * c-decl.c (finish_function): Do not check for DEFAULT_MAIN_RETURN. 28049 * system.h (DEFAULT_MAIN_RETURN): Poison. 28050 * doc/tm.texi (DEFAULT_MAIN_RETURN): Remove documentation. 28051 280522004-06-24 Ben Elliston <bje@au.ibm.com> 28053 28054 * doc/cfg.texi (Edges): Fix typo. 28055 280562004-06-24 Paul Brook <paul@codesourcery.com> 28057 28058 * config/arm/arm.c (arm_output_epilogue): Remove excess checks. 28059 280602004-06-23 Andrew Pinski <apinski@apple.com> 28061 28062 PR middle-end/15988 28063 * fold-const.c (fold_convert): Types which are compatible 28064 can be converted with only a NOP_EXPR. 28065 280662004-06-24 Alan Modra <amodra@bigpond.net.au> 28067 28068 * calls.c (expand_call): Call INIT_CUMULATIVE_ARGS earlier, and 28069 pass raw n_named_args to it. 28070 * targhooks.c: Formatting. 28071 (hook_bool_CUMULATIVE_ARGS_false): Correct comment. 28072 280732004-06-23 Richard Henderson <rth@redhat.com> 28074 28075 * c-gimplify.c (gimplify_decl_stmt): Push gimplify_one_sizepos inside 28076 non-constant size check. Gimplify the type too. Tidy building 28077 BUILT_IN_STACK_ALLOC call. 28078 280792004-06-23 Roger Sayle <roger@eyesopen.com> 28080 28081 * c-common.c (expand_unordered_cmp): Delete. 28082 (expand_tree_builtin): Delete. 28083 * c-common.h (expand_tree_builtin): Delete function prototype. 28084 * c-typeck.c (build_function_call): Don't call expand_tree_builtin. 28085 280862004-06-23 Richard Henderson <rth@redhat.com> 28087 28088 * gimplify.c (gimplify_compound_lval): Don't set ARRAY_REF or 28089 COMPONENT_REF variable fields unless they're non-constant. 28090 280912004-06-23 Robert Millan <robertmh@gnu.org> 28092 28093 * config.gcc: Merge kfreebsd*-gnu with linux* and add knetbsd*-gnu. 28094 * config/i386/linux.h: Allow overriding of LINK_EMULATION, 28095 DYNAMIC_LINKER and register names in sc_ structure. 28096 * config/kfreebsd-gnu.h: New. kfreebsd-gnu followup for linux.h. 28097 * config/i386/kfreebsd-gnu.h: New. Ditto for i386-kfreebsd-gnu. 28098 * config/knetbsd-gnu.h: New. Ditto for knetbsd-gnu. 28099 * config/i386/knetbsd-gnu.h: New. Ditto for i386-knetbsd-gnu. 28100 28101 * config/kfreebsdgnu.h: Remove. 28102 * config/t-kfreebsd-gnu: Likewise. 28103 * config/i386/kfreebsdgnu.h: Likewise. 28104 281052004-06-23 Eric Christopher <echristo@redhat.com> 28106 28107 * fold-const.c (make_range): Cleanup type checking through function. 28108 Remove orig_type. Replace with checks to exp_type and arg0_type. 28109 Clarify comment when converting from unsigned to signed. 28110 281112004-06-23 Eric Christopher <echristo@redhat.com> 28112 28113 * config/mips/mips.c (mips_use_dfa_pipeline_interface): Add R3000. 28114 * config/mips/mips.md: Remove R3000 scheduling description. 28115 * config/mips/3000.md: New file. 28116 281172004-06-23 Ulrich Weigand <uweigand@de.ibm.com> 28118 28119 * config/s390/s390-protos.h (s390_emit_compare): Add prototype. 28120 (s390_emit_jump): Likewise. 28121 * config/s390/s390.c (s390_emit_compare): New function. 28122 (s390_emit_jump): Likewise. 28123 * config/s390/s390.md ("beq", "bne", "bgt", "bgtu", "blt", "bltu", 28124 "bge", "bgeu", "ble", "bleu", "bunordered", "bordered", "buneq", 28125 "bungt", "bunlt", "bunge", "bunle", "bltgt"): Use s390_emit_compare 28126 and s390_emit_jump. 28127 ("cjump"): Remove, replace by ... 28128 ("*cjump_64", "*cjump_31"): ... these insns. Improve length default. 28129 ("icjump", "*icjump_64", "*icjump_31"): Likewise. 28130 ("trap"): Fix type attribute. 28131 ("conditional_trap"): Use s390_emit_compare. 28132 ("doloop_si"): Remove, replace by ... 28133 ("doloop_si64", "doloop_si31"): ... these new insn_and_split. 28134 Merge existing splitter into insn_and_split. Improve length default. 28135 ("doloop_di"): Merge with existing splitter into insn_and_split. 28136 ("doloop"): Adapt. 28137 ("jump"): Convert to expander. Use s390_emit_jump. 28138 ("*jump_64", "*jump_31"): New insns. Improve length default. 28139 281402004-06-23 Wu Yongwei <adah@sh163.net> 28141 28142 * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. 28143 (__gthr_i486_lock_cmp_xchg): New inline assembly function. 28144 (__GTHR_W32_InterlockedCompareExchange): New macro to choose a 28145 suitable function for interlocked compare-and-exchange. 28146 (__gthread_mutex_trylock): Use 28147 __GTHR_W32_InterlockedCompareExchange. 28148 (__gthread_mutex_init_function, __gthread_mutex_lock, 28149 __gthread_mutex_trylock, __gthread_mutex_unlock): Adjust the 28150 initial counter value to work correctly under Windows 95. 28151 * config/i386/gthr-win32.c: Adjust include order. 28152 Define __GTHREAD_I486_INLINE_LOCK_PRIMITIVES before including 28153 gthr-win32.h. 28154 (__gthr_win32_mutex_init_function, __gthr_win32_mutex_lock, 28155 __gthr_win32_mutex_trylock, __gthr_win32_mutex_unlock): Adjust 28156 to match inline versions in gthr-win32.h. 28157 281582004-06-23 David Edelsohn <edelsohn@gnu.org> 28159 28160 * config/rs6000/rs6000.c (rs6000_use_dfa_pipeline_interface): Delete. 28161 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Redefine a hook_int_void_1. 28162 (insvdi_rshift_rlwimi_p): New function. 28163 * config/rs6000/rs6000.md (insvdi_internal2/3): New patterns. 28164 (extendsfdf2): Convert to define_insn_and_split. 28165 * config/rs6000/rs6000-protos.h (insvdi_rshift_rlwimi_p): Prototype. 28166 281672004-06-23 Andrew Pinski <apinski@apple.com> 28168 28169 * c-typeck.c (composite_type, <case ARRAY_TYPE>): Abort if we have 28170 type qualifiers at all. 28171 If both of the type domains are null and the new element type is 28172 the same as one of the, return the one which the element type. 28173 matches. 28174 Do not call qualify_type on the new type. 28175 281762004-06-23 Ulrich Weigand <uweigand@de.ibm.com> 28177 28178 * config/s390/s390.h (DEFAULT_MAIN_RETURN): Remove. 28179 281802004-06-23 Roger Sayle <roger@eyesopen.com> 28181 28182 * convert.c (strip_float_extension): Skip both NOP_EXPR and 28183 CONVERT_EXPR floating point extensions. 28184 281852004-06-23 Diego Novillo <dnovillo@redhat.com> 28186 28187 * Makefile.in (tree-vn.o): New. 28188 (tree-ssa-pre.o): Don't depend on RTL_H. 28189 * tree-dfa.c (find_referenced_vars): Don't call init_tree_ssa. 28190 * tree-flow.h (struct var_ann_d): Remove field expr_set. 28191 (add_to_value, expressions_equal_p, get_value_handle, vn_compute, 28192 vn_lookup_or_add, vn_add, vn_lookup, vn_init, vn_delete): Declare. 28193 * tree-optimize.c (execute_init_datastructures): New local function. 28194 (pass_init_datastructures): New local variable. 28195 (init_tree_optimization_passes): Sequence pass_init_datastructures. 28196 * tree-pretty-print.c (MASK_POINTER): Remove. 28197 (dump_generic_node): Handle VALUE_HANDLE. 28198 * tree-ssa-pre.c: Move all value numbering routines to tree-vn.c. 28199 Update callers to use new function names. 28200 Use VALUE_HANDLE_ID and VALUE_HANDLE_EXPR_SET instead of 28201 variable annotations. 28202 * tree-ssa.c (init_tree_ssa): Call vn_init. 28203 (delete_tree_ssa): Call vn_delete. 28204 * tree-vn.c: New file. 28205 * tree.c (tree_size): Handle VALUE_HANDLE. 28206 (tree_node_structure): Likewise. 28207 (iterative_hash_expr): Likewise. 28208 * tree.def (VALUE_HANDLE): New code. 28209 * tree.h (struct tree_value_handle): New. 28210 (VALUE_HANDLE_ID): Define. 28211 (VALUE_HANDLE_EXPR_SET): Define. 28212 (enum tree_node_structure_enum): Add TS_VALUE_HANDLE. 28213 (union tree_node): Add struct tree_value_handle. 28214 282152004-06-23 Andrew Pinski <apinski@apple.com> 28216 28217 * c-typeck.c (composite_type): 28218 <case POINTER_TYPE>: Build a qualified type of 28219 the new type. 28220 <case ARRAY_TYPE>: Likewise. 28221 <case FUNCTION_TYPE>: Likewise. 28222 282232004-06-23 Pat Haugen <pthaugen@us.ibm.com> 28224 28225 PR optimization/15633 28226 * value-prof.c (divmod_fixed_value_transform): Compute probability 28227 of taking optimal path and pass along to gen_ routine. 28228 (mod_pow2_value_transform): Same. 28229 (mod_subtract_transform): Same. 28230 (gen_divmod_fixed_value): Add new probability parameter. 28231 Add probability to newly created jump. 28232 (gen_mod_pow2): Same. 28233 (gen_mod_subtract): Same. 28234 282352004-06-23 Richard Earnshaw <rearnsha@arm.com> 28236 28237 * PR target/15948 28238 * arm.md (bicsi3_cbranch): Add alternative to handle tying operands 28239 one and two. 28240 282412004-06-23 Richard Earnshaw <rearnsha@arm.com> 28242 28243 PR target/15927 28244 * arm.h (THUMB_SECONDARY_OUTPUT_RELOAD_CLASS): Don't need a secondary 28245 reload if CLASS is BASE_REGS. 28246 282472004-06-23 Richard Sandiford <rsandifo@redhat.com> 28248 28249 * gengtype-yacc.y (option): Avoid use of non-constant struct 28250 initializer. 28251 282522004-06-23 Nathan Sidwell <nathan@codesourcery.com> 28253 28254 * doc/extend.texi (Function Attributes): Alphabetize. 28255 282562004-06-23 Richard Henderson <rth@redhat.com> 28257 28258 * c-gimplify.c (gimplify_decl_stmt): Update gimplify_type_sizes call. 28259 Use gimplify_and_add. 28260 * c-typeck.c (c_finish_if_stmt): Use NULL instead of empty stmt. 28261 * gimplify.c (build_and_jump, gimplify_exit_expr, 28262 gimplify_init_constructor, gimplify_save_expr, gimple_push_cleanup, 28263 gimplify_stmt, gimplify_expr): Likewise. 28264 (shortcut_cond_expr): Handle NULL arms of COND_EXPR. 28265 (gimplify_statement_list): Remove NULL entries. 28266 (gimplify_to_stmt_list): Handle NULL results. 28267 (gimplify_type_sizes): Add list_p argument. 28268 (gimplify_one_sizepos): Don't use internal pre/post queue. 28269 * tree-gimple.h (gimplify_type_sizes): Update. 28270 282712004-06-22 Eric Christopher <echristo@redhat.com> 28272 28273 * config/rs6000/rs6000.md (*insvsi_internal5/6): New patterns. 28274 282752004-06-22 Pat Haugen <pthaugen@us.ibm.com> 28276 28277 * cfghooks.c (make_forwarder_block): Decrement count on fallthru edge 28278 when redirecting back edges. 28279 28280 * cfghooks.c (split_block): Call make_single_succ_edge so that edge 28281 count/probability are set correctly. 28282 282832004-06-22 Richard Henderson <rth@redhat.com> 28284 28285 * c-typeck.c (emit_side_effect_warnings): Ignore error marks. 28286 (c_finish_stmt_expr): Likewise. 28287 28288 * config/i386/i386.c (TARGET_STRUCT_VALUE_RTX): New. 28289 (ix86_return_in_memory): Move SSE vector return warning ... 28290 (ix86_struct_value_rtx): ... here. New. 28291 282922004-06-22 Richard Henderson <rth@redhat.com> 28293 28294 * tree.def (VTABLE_REF): Remove. 28295 (OBJ_TYPE_REF): New. 28296 (TRY_CATCH_EXPR, TRY_FINALLY_EXPR): Set type 's'. 28297 * expr.c (expand_expr_real_1): Replace VTABLE_REF with OBJ_TYPE_REF. 28298 * fold-const.c (non_lvalue): Likewise. 28299 * gimplify.c (gimplify_expr): Likewise. 28300 (gimplify_call_expr): Use is_gimple_call_addr. 28301 * langhooks-def.h (LANG_HOOKS_FOLD_OBJ_TYPE_REF): New. 28302 * langhooks.h (fold_obj_type_ref): New. 28303 * tree-gimple.c (is_gimple_call_addr): New. 28304 * tree-gimple.h (is_gimple_call_addr): Declare. 28305 * tree-inline.c (inlinable_function_p): Fix merge error. 28306 (estimate_num_insns_1): Replace VTABLE_REF with OBJ_TYPE_REF. 28307 * tree-pretty-print.c (dump_generic_node): Likewise. 28308 (print_call_name): Handle OBJ_TYPE_REF. 28309 * tree-ssa-ccp.c (fold_stmt): Fold OBJ_TYPE_REF. 28310 * tree-ssa-operands.c (get_expr_operands): Handle OBJ_TYPE_REF. 28311 * tree.h (OBJ_TYPE_REF_EXPR): New. 28312 (OBJ_TYPE_REF_OBJECT, OBJ_TYPE_REF_TOKEN): New. 28313 * doc/c-tree.texi (VTABLE_REF): Remove. 28314 * objc/objc-act.c (build_objc_method_call): Build an OBJ_TYPE_REF. 28315 283162004-06-22 Richard Henderson <rth@redhat.com> 28317 28318 PR middle-end/16026 28319 * function.c (assign_parms): Don't abort for overaligned PARALLEL. 28320 283212004-06-22 Joseph S. Myers <jsm@polyomino.org.uk> 28322 28323 * Makefile.in (distclean): Don't try to remove empty directories. 28324 283252004-06-22 Richard Sandiford <rsandifo@redhat.com> 28326 28327 PR target/15869 28328 * config/mips/mips.c (mips_avoid_hazards): Call split_all_insns_noflow. 28329 283302004-06-22 Alexandre Oliva <aoliva@redhat.com> 28331 28332 * config/mn10300/mn10300.md (movdi, movdf): Use high/low for movu 28333 operands. 28334 283352004-06-22 Dale Johannesen <dalej@apple.com> 28336 28337 * config/rs6000/rs6000.c (legitimate_offset_address_p): Make 28338 global, rename rs6000_legitimate_offset_address_p. 28339 (rs6000_legitimate_address_p): Adjust calls to it. 28340 (lmw_operation): Ditto. 28341 (stmw_operation): Ditto. 28342 * config/rs6000/rs6000-protos.h: Declare it. 28343 * config/rs6000/rs6000.md (*movdf_hardfloat32): Use it 28344 instead of offsettable_memref_p. 28345 283462004-06-22 Dale Johannesen <dalej@apple.com> 28347 28348 * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow 28349 [reg+reg] mode for TFmode memory accesses. 28350 (rs6000_eliminate_indexed_memrefs): New. 28351 (rs6000_emit_move): Call preceding for TImode and TFmode. 28352 283532004-06-22 Paolo Bonzini <bonzini@gnu.org> 28354 28355 * tree-cfg.c (pass_warn_function_return): It needs 28356 CFG, not SSA. 28357 283582004-06-22 Nathan Sidwell <nathan@codesourcery.com> 28359 28360 * doc/invoke.texi (Machine Dependent Options): Alphabetize. 28361 (Submodel Options): Likewise. 28362 283632004-06-21 Andrew Pinski <apinski@apple.com> 28364 28365 Radar #: 3701874 28366 * c-decl.c (push_file_scope): Return early if we already 28367 have a file scope. 28368 283692004-06-21 Geoffrey Keating <geoffk@apple.com> 28370 28371 * c-opts.c (c_common_handle_option): Handle -fpch-preprocess. 28372 * c-common.h (flag_pch_preprocess): Declare. 28373 (c_common_pch_pragma): Likewise. 28374 * c-common.c (flag_pch_preprocess): New. 28375 * c-pch.c (c_common_read_pch): Support -fpreprocess-only. 28376 (c_common_pch_pragma): New. 28377 * c-ppoutput.c (cb_read_pch): New. 28378 (init_pp_output): Support -fpch-preprocess. 28379 * c-pragma.c (init_pragma): Support #pragma GNUC pch_preprocess. 28380 * c.opt (fpch-preprocess): New. 28381 * gcc.c (cpp_options): When save-temps, pass -fpch-preprocess. 28382 * doc/cppopts.texi: Document -fpch-preprocess. 28383 * doc/invoke.texi (Precompiled Headers): Mention that 28384 -fpreprocessed is safe for PCH. Mention that if an option is 28385 listed as safe that doesn't mean it does what you expect. 28386 283872004-06-22 Ben Elliston <bje@au.ibm.com> 28388 28389 * tree-ssa.c (ssa_redirect_edge): Correct leading comment. 28390 283912004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 28392 28393 * Makefile.in (gimplify.o): Add cgraph.h. 28394 * alias.c (adjust_offset_for_component_ref): Use 28395 component_ref_field_offset. 28396 * c-decl.c (build_array_declarator): Add news args for ARRAY_REF. 28397 * c-gimplify.c (gimplify_expr_stmt): Use alloc_stmt_list. 28398 (gimplify_decl_stmt): Call gimplify_type_sizes for type. 28399 For decl, call gimplify_one_sizepos and use statement list. 28400 (gimplify_compound_literal_expr): New arg PRE_P. 28401 Add statement to PRE_P list and return DECL. 28402 (c_gimplify_expr, case COMPOUND_LITERAL_EXPR): Add arg to 28403 gimplify_compound_literal_expr. 28404 * c-tree.h (getdecls): Deleted. 28405 * c-typeck.c (build_component_ref): Add operand for COMPONENT_REF. 28406 (build_array_ref): Add two operands for ARRAY_REF. 28407 (build_unary_op): Set TREE_INVARIANT and TREE_CONSTANT for 28408 COMPOUND_LITERAL_EXPR. 28409 * coverage.c (tree_coverage_counter_ref): Add new operands 28410 for ARRAY_REF. 28411 * emit-rtl.c (component_ref_for_mem_expr): Add new operand 28412 for COMPONENT_REF. 28413 (set_mem_attributes_minus_bitpos): Use array_ref_low_bound 28414 and array_ref_element_size. 28415 (widen_memory_access):Use component_ref_field_offset. 28416 * explow.c (update_nonlocal_goto_save_area): Add two operands 28417 for ARRAY_REF. 28418 * expr.c (array_ref_element_size, array_ref_low_bound): New functions. 28419 (component_ref_field_offset): Likewise. 28420 (get_inner_reference): Use them. 28421 (expand_expr_real_1, case ARRAY_REF): Use array_ref_low_bound. 28422 * fold-const.c (fold, case EQ_EXPR): Properly handle DECL_SIZE. 28423 (fold_read_from_constant_string): Use array_ref_low_bound. 28424 Verify that result is a character type. 28425 (build_fold_indirect_ref): Add two operands for ARRAY_REF. 28426 * function.c (expand_function_start): Likewise. 28427 * gimple-low.c (expand_var_p): Delete duplicated line. 28428 * gimplify.c: Add static decls for local functions. 28429 (cgraph.h): Now included. 28430 (create_tmp_var): Remove check for ARRAY_TYPE. 28431 (copy_if_shared_r): Look at bounds and sizes of types. 28432 (build_and_jump): Return alloc_stmt_list instead of build_empty_stmt. 28433 (gimplify_exit_expr, shortcut_cond_expr): Likewise. 28434 (gimplify_save_expr, gimple_push_cleanup): Likewise. 28435 (gimplify_init_constructor): Likewise. 28436 WANT_VALUE now bool. 28437 If empty list with no result wanted, return GS_UNHANDLED. 28438 Add additional operands for ARRAY_REF and COMPONENT_REF. 28439 (canonicalize_component_ref): Convert to &array[L]. 28440 (gimplify_array_ref_to_plus): Use array_ref_element_size and 28441 array_ref_lower_bound. 28442 (build_addr_expr_with_type, build_addr_expr): New functions. 28443 (gimplify_compound_lval): WANT_LVALUE now bool. 28444 Major rework to allow handle_component_p and initialize and 28445 gimplify new operands for ARRAY_REF, ARRAY_RANGE_REF, and 28446 COMPONENT_REF. 28447 (gimplify_array_ref): Deleted. 28448 (gimplify_self_mod_expr): WANT_VALUE now bool. 28449 (gimplify_modify_expr): Gimplify to_p and from_p later. 28450 Factor out code into gimplify_modify_expr_rhs and call twice. 28451 Move variable-size code earlier and handle PLACEHOLDER_EXPR. 28452 (gimplify_modify_expr_rhs, gimplify_variable_sized_compare): New fns. 28453 (gimplify_addr_expr, case VIEW_CONVERT_EXPR): New case. 28454 (gimplify_expr, case ARRAY_REF): Delete special case. 28455 Instead handle like COMPONENT_REF; also do ARRAY_RANGE_REF, 28456 IMAGPART, and REALPART the same way. 28457 (gimplify_expr, case VIEW_CONVERT_EXPR): New case. 28458 (gimplify_expr): Call gimplify_variable_sized_compare if applicable. 28459 Call alloc_stmt_list instead of build_empty_stmt. 28460 Deal with _REF that's volatile. 28461 (gimplify_type_sizes, gimplify_one_sizepos): New functions. 28462 (unshare_body, unvisit_body): New functions. 28463 (gimplify_body): Call them. 28464 * stmt.c (expand_stack_alloc): Don't expand TYPE_MAX_VALUE. 28465 * stor-layout.c (get_pending_sizes): Don't change SAVE_EXPR_CONTEXT. 28466 * tree-alias-common.c (get_alias_var): Also skip ARRAY_RANGE_REF. 28467 * tree-cfg.c (tree_node_can_be_shared): Treat ARRAY_RANGE_REF 28468 like ARRAY_REF. 28469 (verify_expr, case ADDR_EXPR): Use handled_component_p. 28470 * tree-dfa.c (get_virtual_var): Likewise. 28471 * tree-dump.c (dequeue_and_dump, case COMPONENT_REF, ARRAY_REF): 28472 New cases to dump new operands; likewise for ARRAY_RANGE_REF. 28473 * tree-eh.c (tree_could_trap, case ARRAY_RANGE_REF): Like ARRAY_REF. 28474 * tree-gimple.c (is_gimple_addr_expr_arg): Add ARRAY_RANGE_REF 28475 and INDIRECT_REF. 28476 (get_base_address): Use handled_component_p. 28477 * tree-gimple.h (gimplify_type_sizes, gimplify_one_sizepos): New. 28478 * tree-inline.c (walk_tree): Walk more things for types and decls. 28479 * tree-mudflap.c (mf_build_check_statement_for): Add new operands 28480 for ARRAY_REF and COMPONENT_REF. 28481 (mx_xform_derefs_1): Clean up usage of decl sizes. 28482 * tree-nested.c (build_addr): Use handled_component_p. 28483 (walk_stmts, case CATCH_EXPR): Add missing "break". 28484 (get_static_chain, get_frame_field): Add new operand for COMPONENT_REF. 28485 (finalize_nesting_tree_1): Likewise. 28486 (convert_nonlocal_reference, case ARRAY_RANGE_REF): Like ARRAY_REF 28487 and process additional operands. 28488 (convert_local_reference): Likewise. 28489 * tree-outof-ssa.c (discover_nonconstant_array_refs_r): Treat 28490 ARRAY_RANGE_REF similarly to ARRAY_REF. 28491 * tree-pretty-print.c (dump_generic_node, case QUAL_UNION_TYPE): Handle 28492 like RECORD_TYPE. 28493 (dump_generic_node, case COMPONENT_REF): Print offset operand. 28494 (dump_generic_node, case ARRAY_RANGE_REF): Treat like ARRAY_REF 28495 and print lower bound and element size for both. 28496 (op_prio, case ARRAY_RANGE_REF): Like ARRAY_REF. 28497 * tree-sra.c (csc_build_component_ref): Add new operand. 28498 (scalarize_call_expr): Use get_base_address. 28499 * tree-ssa-ccp.c (widen_bitfield): Clean up size handling. 28500 (maybe_fold_offset_to_array_ref): Rework to handle input having an 28501 ARRAY_REF, refine handling of lower bound, and add new operands 28502 for ARRAY_REF. 28503 (maybe_fold_to_component_ref): Add new operand for COMPONENT_REF. 28504 (maybe_fold_stmt_indirect): Only fold *&B to B if types match. 28505 (maybe_fold_stmt_addition): Only handle constant lower bound. 28506 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. 28507 Treat ARRAY_REF and ARRAY_RANGE_REF the same; look at extra operands. 28508 Look at new offset operand of COMPONENT_REF. 28509 * tree-ssa.c (set_is_used): Use handled_component_p. 28510 * tree.c (substitute_in_expr, case COMPONENT_REF): Add new operand. 28511 (stabilize_reference, case COMPONENT_REF): Likewise. 28512 (stabilize_reference, case ARRAY_RANGE_REF, ARRAY_REF): Similarly. 28513 (recompute_tree_invariant_for_addr_expr): Completely rework to 28514 be more precise. Also set TREE_SIDE_EFFECTS. 28515 (build1_stat, case ARRAY_EXPR): Don't handle TREE_SIDE_EFFECTS here. 28516 (build2_stat, build3_stat, build4_stat): For references, 28517 propagate TREE_THIS_VOLATILE. 28518 (get_unwidened): Add new operand for COMPONENT_REF. 28519 (get_narrower): Likewise; use host_integerp for DECL_SIZE. 28520 * tree.def (COMPONENT_REF): Add new operand. 28521 (ARRAY_REF, ARRAY_RANGE_REF): Add two new operands. 28522 * tree.h (array_ref_element_size, array_ref_low_bound): New decls. 28523 (component_ref_field_offset): Likewise. 28524 * config/alpha/alpha.c (alpha_va_start): Add new op for COMPONENT_REF. 28525 (alpha_gimplify_va_arg): Likewise. 28526 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. 28527 * config/i860/i860.c (i860_va_start, i860_va_arg): Likewise. 28528 * config/iq2000/iq2000.c (iq2000_va_arg): Likewise. 28529 * config/mips/mips.c (mips_va_start, mips_va_arg): Likewise. 28530 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg): 28531 Likewise. 28532 * config/s390/s390.c (s390_va_start, s390_gimplify_va_arg): Likewise. 28533 * config/sh/sh.c (sh_va_start, sh_va_arg): Likewise. 28534 * config/stormy16/stormy16.c (xstormy1_expand_builin_va_start): 28535 Likewise. 28536 (xstormy16_expand_builtin_va_arg): Likewise. 28537 * config/xtensa/xtensa.c (xtensa_va_start, xtensa_va_arg): Likewise. 28538 * objc/objc-act.c (generate_static_references): Likewise. 28539 (generate_strings, build_method_prototype_list_template): Likewise. 28540 (generate_protocol_list): Likewise. 28541 285422004-06-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 28543 28544 PR rtl-optimization/14782 28545 * pa.c (emit_move_sequence): Use SFmode for 4-byte modes when doing 28546 the address checks for secondary reloads for loads from and stores 28547 to floating-point registers. 28548 * pa.h (EXTRA_CONSTRAINT, case T): Use SFmode for 4-byte modes 28549 in the address check. Move work around for ELF32 targets to 28550 GO_IF_LEGITIMATE_ADDRESS. 28551 (GO_IF_LEGITIMATE_ADDRESS): Require constant offsets to be 28552 correctly aligned for DImode loads and stores. Don't allow long 28553 SFmode displacements on ELF32. 28554 285552004-06-21 Richard Henderson <rth@redhat.com> 28556 28557 PR rtl-opt/16114 28558 * cse.c (merge_equiv_classes): Also rehash in response to 28559 delete_reg_equiv changes. 28560 (rehash_using_reg): Don't exclude REGs from rehashing. 28561 285622004-06-21 Richard Henderson <rth@redhat.com> 28563 28564 * c-common.def (RETURN_STMT): Remove. 28565 * c-common.h (RETURN_STMT_EXPR): Remove. 28566 (c_expand_return, build_return_stmt): Remove. 28567 (c_common_stmt_codes): Remove RETURN_STMT. 28568 * c-dump.c (dump_next_stmt): Remove. 28569 (c_dump_tree): Remove RETURN_STMT. 28570 * c-decl.c (finish_function): Use c_finish_return. 28571 * c-parse.in (stmt): Likewise. 28572 * c-gimplify.c (gimplify_return_stmt): Remove. 28573 (c_gimplify_expr): Remove RETURN_STMT. 28574 * c-pretty-print.c (pp_c_statement): Likewise. 28575 * c-semantics.c (build_return_stmt): Remove. 28576 * c-tree.h (c_finish_return): Declare. 28577 * c-typeck.c (c_finish_return): Rename from c_expand_return. 28578 Return void. Build RETURN_EXPR directly. 28579 * tree-dump.h (dump_next_stmt): Remove. 28580 285812004-06-21 Zack Weinberg <zack@codesourcery.com> 28582 28583 * c-decl.c (start_function): Don't call make_decl_rtl. Don't 28584 look at TREE_ADDRESSABLE of symbol name. 28585 285862004-06-21 Kelley Cook <kcook@gcc.gnu.org> 28587 28588 PR target/15551 28589 * config/i386/i386.md: Change UNSPEC_STACK_PROBE to UNSPECV_STACK_PROBE. 28590 (allocate_stack_worker): Make unspec_volatile. 28591 (allocate_stack_worker_rex64): Likewise. 28592 (allocate_stack_worker_postreload): Likewise. 28593 (allocate_stack_worker_rex64_postreload): Likewise. 28594 285952004-06-21 Daniel Berlin <dberlin@dberlin.org> 28596 28597 Fix PR optimization/15982 28598 * tree-ssa-pre.c: Update a few comments and todos to 28599 reflect constants change. 28600 (get_value_handle): Constants now value number to themselves. 28601 (lookup): Constants lookup to themselves. 28602 (add_to_value): Adjust to always be on. 28603 (set_contains_value): Adjust for constants change. 28604 (find_leader): Ditto. 28605 (phi_translate): 'r' nodes are never ANTIC right now. 28606 (valid_in_set): Ditto. 28607 (get_expr_set): New function. 28608 (find_or_generate_expression): New function, broken out from 28609 insert_aux. 28610 (create_expression_by_pieces): Ditto, plus additional 28611 machinery to handle complex values. 28612 (compute_avail): Remove dead RETURN_EXPR handling. 28613 286142004-06-21 Steven Bosscher <stevenb@suse.de> 28615 28616 * config/i386/i386.c: Include insn-codes.h 28617 * config/i386/i386.h (FLAGS_REG, FPSR_REG, DIRFLAG_REG): Don't 28618 define here. 28619 * config/i386/i386.md (BP_REG, SP_REG, FLAGS_REG, FPSR_REG, 28620 DIRFLAG_REG): New define_constants. Use them everywhere. 28621 286222004-06-21 Kaz Kojima <kkojima@gcc.gnu.org> 28623 28624 * config/sh/t-linux (MULTILIB_OPTIONS): Remove. 28625 286262004-06-21 J"orn Rennecke <joern.rennecke@superh.com> 28627 28628 * sh.h (SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4): Conditionally define. 28629 (SUPPORT_SH4_SINGLE): Likewise. 28630 (TARGET_SWITCHES): Break out switches for cpu subtargets: 28631 (TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E): Define. 28632 (TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E): Likewise. 28633 (TARGET_SWITCH_SH4_SINGLE_ONLY, TARGET_SWITCH_SH4_SINGLE): Likewise. 28634 (TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4): Likewise. 28635 (TARGET_SWITCH_SH5_64MEDIA, TARGET_SWITCH_SH5_64MEDIA_NOFPU): Likewise. 28636 (TARGET_SWITCHES_SH5_32MEDIA): Likewise. 28637 (TARGET_SWITCHES_SH5_32MEDIA_NOFPU): Likewise. 28638 (SELECT_SH5_64, SELECT_SH5_64_NOFPU): Rename to: 28639 (SELECT_SH5_64MEDIA, SELECT_SH5_64MEDIA_NOFPU) 28640 (SELECT_SH5_32, SELECT_SH5_32_NOFPU): Rename to: 28641 (SELECT_SH5_32MEDIA, SELECT_SH5_32MEDIA_NOFPU). 28642 (SH_MULTILIB_CPU_DEFAULT, MULTILIB_DEFAULTS): Define. 28643 (ASM_ISA_SPEC_DEFAULT, ASM_ISA_DEFAULT_SPEC): Likewise. 28644 * sh64.h (ASM_SPEC, LINK_DEFAULT_CPU_EMUL): Don't redefine. 28645 (TARGET_DEFAULT): Likewise. 28646 * config/sh/t-elf: Amend comment. 28647 * config/sh/t-1e, config/sh/t-mlib-sh1: New files. 28648 * config/sh/t-mlib-sh2, config/sh/t-mlib-sh2e: Likewise. 28649 * config/sh/t-mlib-sh3, config/sh/t-mlib-sh3e: Likewise. 28650 * config/sh/t-mlib-sh4, config/sh/t-mlib-sh4-nofpu: Likewise. 28651 * config/sh/t-mlib-sh4-single: Likewise. 28652 * config/sh/t-mlib-sh4-single-only: Likewise. 28653 * config/sh/t-mlib-sh5-32media: Likewise. 28654 * config/sh/t-mlib-sh5-32media-nofpu: Likewise. 28655 * config/sh/t-mlib-sh5-64media: Likewise. 28656 * config/sh/t-mlib-sh5-64media-nofpu: Likewise. 28657 * config/sh/t-mlib-sh5-compact: Likewise. 28658 * config/sh/t-mlib-sh5-compact-nofpu: Likewise. 28659 * config/sh/t-sh: (MULTILIB_ENDIAN): Add mb. 28660 (MULTILIB_CPUS): Define. 28661 (MULTILIB_OPTIONS): Use MULTILIB_CPUS. 28662 (MULTILIB_MATCHES): Use some shell code to calculate it. 28663 (MULTILIB_EXCEPTIONS): Change to ml/m1. 28664 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Use ASM_ISA_DEFAULT_SPEC. 28665 * config/sh/netbsd-elf.h: Update code which sets TARGET_VERSION_CPU. 28666 (LINK_DEFAULT_CPU_EMUL): Don't redefine. 28667 (NO_PROFILE_COUNTERS): Define to 1. 28668 * config/sh/t-netbsd (MULTILIB_OPTIONS): Don't append to. 28669 (MULTILIB_DIRNAMES, MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. 28670 * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Don't redefine. 28671 (MULTILIB_MATCHES): Don't zap. 28672 (MULTILIB_DIRNAMES): Use MULTILIB_RAW_DIRNAMES. 28673 * config/sh/t-sh64 (MULTILIB_OPTIONS): Don't redefine. 28674 (MULTILIB_MATCHES, MULTILIB_EXCEPTIONS): Don't zap. 28675 (MULTILIB_RAW_DIRNAMES): Define. 28676 (MULTILIB_DIRNAMES): Use it. 28677 * config.gcc: Also set cpu_type / need_64bit_hwint for sh[be]*-*-*. 28678 (sh*linux configurations): Merge into: 28679 (sh*elf / sh*kaos configurations). Support --with-endian, --with-cpu, 28680 --with-multilib-list options. Support sh-superh-elf configuration. 28681 (sh*-netbsd*): Use SELECT_SH* macros. 28682 (supported_defaults): sh[123456ble]-*-* | sh-*-* support "cpu". 28683 Merge sh*-*-netbsd* configurations into sh-elf configurations. 28684 * config/sh/t-netbsd-sh5, config/sh/t-be, config/sh/t-le: Delete. 28685 * config/sh/t-monolib: Likewise. 28686 286872004-06-21 Paul Brook <paul@codesourcery.com> 28688 28689 * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Soft-float need 28690 not imply FPA. 28691 286922004-06-21 Roger Sayle <roger@eyesopen.com> 28693 28694 * fold-const.c (operand_equal_p): Pass flags in recursive calls for 28695 binary and relational operations. Add support for TRUTH_ANDIF_EXPR, 28696 TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR and TRUTH_XOR_EXPR. 28697 * tree.c (commutative_tree_code): Also list UNORDERED_EXPR, 28698 ORDERED_EXPR, UNEQ_EXPR, LTGT_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR 28699 and TRUTH_XOR_EXPR. 28700 287012004-06-21 Paolo Bonzini <bonzini@gnu.org> 28702 28703 * rtlanal.c (may_trap_p): Mark LTGT as trapping. 28704 287052004-06-21 Joseph S. Myers <jsm@polyomino.org.uk> 28706 28707 * tree-alias-common.h (struct tree_alias_ops): Change ip and 28708 ip_partial to unsigned int. 28709 287102004-06-21 Richard Henderson <rth@redhat.com> 28711 28712 * c-common.c (verify_sequence_points): Export. 28713 (c_expand_expr_stmt): Move to c-typeck.c. 28714 * c-common.h (c_expand_expr_stmt): Remove. 28715 (verify_sequence_points): Declare. 28716 * c-mudflap.c (mflang_flush_calls): Use c_finish_expr_stmt. 28717 * c-parse.in (for_init_stmt, stmt): Likewise. 28718 * c-tree.h (c_finish_expr_stmt): Declare. 28719 (c_tree_expr_nonnegative_p): Remove. 28720 * c-typeck.c (c_tree_expr_nonnegative_p): Remove. 28721 (build_conditional_expr, build_binary_op): Use tree_expr_nonnegative_p. 28722 (emit_side_effect_warnings): New. 28723 (c_finish_expr_stmt): Rename from c_expand_expr_stmt. Use it. 28724 (c_finish_stmt_expr): Work without EXPR_STMT. Handle eh regions. 28725 Use emit_side_effect_warnings. 28726 (push_cleanup): Copy STATEMENT_LIST_STMT_EXPR. 28727 * fold-const.c (tree_expr_nonnegative_p): Handle TARGET_EXPR. 28728 * gimplify.c (gimplify_modify_expr): Don't discard TARGET_EXPR 28729 with void initializer. 28730 (gimplify_target_expr): Handle void BIND_EXPR initializer. 28731 * tree-inline.c (estimate_num_insns_1): Fix type lookup for 28732 INIT_EXPR and MODIFY_EXPR. 28733 * objc/objc-act.c (build_module_descriptor): Use add_stmt 28734 instead of c_expand_expr_stmt. 28735 287362004-06-21 Paolo Bonzini <bonzini@gnu.org> 28737 28738 * fold-const.c (fold_cond_expr_with_comparison): 28739 New function, extracted from fold. 28740 (fold): Extract code to fold A op B ? A : C, use 28741 it to fold A op B ? C : A. Really optimize 28742 A & N ? N : 0 where N is a power of two. Avoid 28743 relying on canonicalization and recursion for 28744 foldings of COND_EXPR to happen. 28745 287462004-06-20 David Ayers <d.ayers@inode.at> 28747 28748 * objc/objc-act.h (get_object_reference): Rename to 28749 get_protocol_reference. 28750 (super_type): Rename to objc_super_type. 28751 (selector_type): Rename to objc_selector_type. 28752 (id_type): Rename to objc_id_type. 28753 (instance_type): Rename to objc_instance_type. 28754 (protocol_type): Rename to objc_protocol_type. 28755 (IS_ID): Update reference to id_type. 28756 * objc/objc-act.c (get_object_reference): Rename to 28757 get_protocol_reference; add documentation; update references to 28758 id_type. 28759 (lookup_method_in_protocol_list): Rename class_meth to 28760 is_class; add documentation. 28761 (finish_message_expr): Rename is_class to class_tree. 28762 (synth_module_prologue, objc_is_object_ptr, objc_build_exc_ptr, 28763 next_sjlj_build_try_catch_finally, objc_begin_catch_clause, 28764 build_next_objc_exception_stuff, get_arg_type_list, 28765 build_objc_method_call): Update references to id_type. 28766 (synth_module_prologue, build_objc_symtab_template, 28767 build_selector_reference_decl, build_selector, 28768 build_selector_translation_table, build_typed_selector_reference, 28769 get_arg_type_list, synth_self_and_ucmd_args, get_arg_type_list, 28770 synth_self_and_ucmd_args): Update references to selector_type. 28771 (build_private_template, build_ivar_reference): Update references 28772 to instance_type. 28773 (synth_module_prologue, build_protocol_reference, 28774 build_protocol_expr, start_protocol): Update references to 28775 protocol_type. 28776 (synth_module_prologue, get_arg_type_list, build_objc_method_call): 28777 Update references to super_type. 28778 * c-parse.in: (typespec_nonreserved_nonattr): Update 28779 references to get_object_reference. 28780 * objc/objc-tree.def: Add C mode identifier sequence. 28781 287822004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 28783 28784 * loop-invariant.c: New file. 28785 * Makefile.in (loop-invariant.o): New. 28786 * cfgloop.h (global_cost_for_size, init_set_costs, 28787 move_loop_invariants): Declare. 28788 * cfgloopanal.c (seq_cost, init_set_costs, global_cost_for_size): New 28789 functions. 28790 (avail_regs, res_regs, small_cost, pres_cost, spill_cost): New 28791 variables. 28792 * common.opt (floop-optimize2, fmove-loop-invariants): New options. 28793 * loop-init.c (loop_optimizer_init): Call init_set_costs. 28794 * passes.c (rest_of_handle_loop2): Call move_loop_invariants. 28795 (rest_of_compilation): Check flag_loop_optimize2. 28796 * toplev.c (process_options): Handle flag_loop_optimize2. 28797 * doc/invoke.texi (-floop-optimize2, -fmove-loop-invariants): Document. 28798 * doc/passes.texi (loop-invariant.c): Document. 28799 288002004-06-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 28801 28802 * tree-ssa-pre.c (compute_antic): Keep BB_VISITED flag zeroed. 28803 288042004-06-20 Richard Henderson <rth@redhat.com> 28805 28806 * stmt.c (warn_if_unused_value): Add locus argument. 28807 * tree.h (warn_if_unused_value): Update decl. 28808 * c-typeck.c (internal_build_compound_expr): Update call. 28809 * c-gimplify.c (gimplify_expr_stmt): Likewise. 28810 288112004-06-20 Andrew Pinski <pinskia@physics.uc.edu> 28812 28813 PR middle-end/16089 28814 * builtins.c (entry_of_function): Move to ... 28815 * cfgrtl.c (entry_of_function): Here and make non-static. 28816 * integrate.c (emit_initial_value_sets): Use entry_of_function. 28817 * rtl.h (entry_of_function): Prototype. 28818 288192004-06-20 Roger Sayle <roger@eyesopen.com> 28820 28821 * config/i386/i386.c (pentium4_cost): Increase "lea" cost from 1 to 3. 28822 (ix86_rtx_costs) <ASHIFT, PLUS>: Consider ix86_cost->lea even when 28823 TARGET_DECOMPOSE_LEA. 28824 288252004-06-20 Richard Henderson <rth@redhat.com> 28826 28827 * c-common.h (add_decl_stmt): Move to cp-tree.h. 28828 * c-decl.c (finish_decl): Don't use add_decl_stmt. 28829 * c-parse.in: Likewise. 28830 * c-gimplify.c (gimplify_expr_stmt): Don't build CLEANUP_POINT_EXPR. 28831 (gimplify_c_loop, gimplify_return_stmt, gimplify_decl_stmt): Likewise. 28832 * c-semantics.c (add_decl_stmt): Move to cp/semantics.c. 28833 288342004-06-20 Richard Henderson <rth@redhat.com> 28835 28836 * c-common.def (IF_STMT, CLEANUP_STMT): Move to cp-tree.def. 28837 * c-common.h (IF_COND, THEN_CLAUSE, ELSE_CLAUSE, CLEANUP_BODY, 28838 CLEANUP_EXPR, CLEANUP_DECL): Move to cp-tree.h. 28839 (c_common_stmt_codes): Remove IF_STMT, CLEANUP_STMT. 28840 * c-dump.c (c_dump_tree): Move IF_STMT, CLEANUP_STMT to cp_dump_tree. 28841 * c-pretty-print.c (pp_c_statement): Similarly. 28842 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts, 28843 gimplify_if_stmt): Move to cp-gimplify.c. 28844 (c_genericize, c_gimplify_expr): Don't call them. 28845 * c-semantics.c (push_cleanup): Move to cp/semantics.c. 28846 * c-typeck.c (push_cleanup): New. 28847 (c_begin_if_stmt, c_finish_if_cond, c_finish_then, c_finish_else, 28848 c_finish_if_stmt): Use COND_EXPR. 28849 * tree.h (CLEANUP_EH_ONLY): Update documentation. 28850 288512004-06-20 Zack Weinberg <zack@codesourcery.com> 28852 28853 * c-common.h (has_c_linkage): New interface. 28854 * c-cppbuiltin.c: Include target.h. 28855 (c_cpp_builtins): Define __PRAGMA_REDEFINE_EXTNAME and 28856 __PRAGMA_EXTERN_PREFIX when appropriate. 28857 * c-pragma.c: Include target.h. 28858 Document clarified semantics of symbol-renaming #pragmas. 28859 (handle_pragma_redefine_extname, handle_pragma_extern_prefix) 28860 (maybe_apply_renaming_pragma): Rewrite according to clarified 28861 semantics. Always recognize, but do not necessarily execute. 28862 (init_pragma): Unconditionally register symbol-renaming pragmas. 28863 * system.h: Poison HANDLE_PRAGMA_REDEFINE_EXTNAME 28864 and HANDLE_PRAGMA_EXTERN_PREFIX. 28865 * target.h (struct gcc_target): Add handle_pragma_redefine_extname 28866 and handle_pragma_extern_prefix flags. 28867 * target-def.h: Add defaults for TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME 28868 and TARGET_HANDLE_PRAGMA_EXTERN_PREFIX. 28869 * Makefile.in (c-pragma.o, c-cppbuiltin.o): Update dependencies. 28870 * config/sol2.h: Define TARGET_HANDLE_PRAGMA_REDEFINE_EXTNAME, 28871 not HANDLE_PRAGMA_REDEFINE_EXTNAME. 28872 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_REDEFINE_EXTNAME. 28873 (TRANSFER_FROM_TRAMPOLINE): Prototype mprotect. 28874 * config/alpha/osf.h: Define TARGET_HANDLE_PRAGMA_EXTERN_PREFIX, 28875 not HANDLE_PRAGMA_EXTERN_PREFIX. 28876 (TARGET_OS_CPP_BUILTINS): No need to define __PRAGMA_EXTERN_PREFIX. 28877 * doc/extend.texi (Solaris Pragmas, Tru64 Pragmas): Combine 28878 into one section "Symbol-Renaming Pragmas"; clarify; document 28879 adjusted semantics. 28880 28881 * builtins.c (expand_builtin): Do not issue error for a builtin 28882 with no special case code and no DECL_ASSEMBLER_NAME; just do the 28883 library call. 28884 * c-decl.c (builtin_function): Don't call make_decl_rtl. 28885 * c-objc-common.c (has_c_linkage): Stub implementation. 28886 * cgraphunit.c (cgraph_expand_function) 28887 (cgraph_remove_unreachable_nodes): Don't clear DECL_ARGUMENTS. 28888 288892004-06-19 Roger Sayle <roger@eyesopen.com> 28890 28891 * builtins.c (fold_builtin_unordered_cmp): Take an EXP argument 28892 instead of both an ARGLIST and a result TYPE. Handle these C99 28893 comparison functions as "polymorphic" builtins. Also handle 28894 lowering of BUILT_IN_ISUNORDERED to an UNORDERED_EXPR tree node. 28895 (fold_builtin_1): Update calls to fold_builtin_unordered_cmp. 28896 Move handling of BUILT_IN_ISUNORDERED from here to there. 28897 288982004-06-19 Richard Henderson <rth@redhat.com> 28899 28900 * c-common.c, c-common.h (lang_gimplify_stmt): Remove. 28901 * c-gimplify.c: Remove unnecessary prototypes. 28902 (c_gimplify_stmt): Merge into ... 28903 (c_gimplify_expr): ... here. Don't play with prep_stmt. 28904 * c-semantics.c (prep_stmt): Remove. 28905 * gimplify.c (annotate_one_with_locus): Break out from ... 28906 (annotate_all_with_locus): ... here. 28907 (gimplify_expr): Add locus to expressions even if pre/post queues 28908 are not present. 28909 289102004-06-19 Richard Henderson <rth@redhat.com> 28911 28912 PR target/15941 28913 * function.c (assign_parms): If not padding upward or intentionally 28914 forcing upward padding, take offset_rtx into account when determining 28915 the alignment for stack_parm. 28916 289172004-06-19 Richard Henderson <rth@redhat.com> 28918 28919 PR target/15550 28920 * ifcvt.c (noce_try_move): Recognize all generated instructions. 28921 289222004-06-19 Jan Hubicka <jh@suse.cz> 28923 28924 * function.c (free_after_compilation): Do not free computed_goto_common*. 28925 * function.h (struct function): Kill computed_goto_common*. 28926 * stmt.c (expand_computed_goto): Do not commonize the computed gotos. 28927 * tree-cfg.c (disband_implicit_edges): Do not forward across the 28928 commonized computed goto. 28929 289302004-06-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 28931 28932 * doc/invoke.texi: Remove obsolete comment regarding PA 2.0 support 28933 in binutils. 28934 289352004-06-19 Andrew Pinski <apinski@apple.com> 28936 28937 PR c++/15721 28938 * toplev.c (wrapup_global_declarations): Do not check 28939 TREE_SYMBOL_REFERENCED of the DECL_ASSEMBLER_NAME but check 28940 cgraph_varpool_node's needed field. 28941 289422004-06-19 Jan Hubicka <jh@suse.cz> 28943 Steven Bosscher <stevenb@suse.de> 28944 28945 CFG transparent RTL expansion: 28946 * Makefile.in (cfgexpand.o): New object file. 28947 (builtins.o): Add dependency on basic-block.h 28948 * builtins.c: Include basic-block.h 28949 (entry_of_function): New function. 28950 (expand_builtin_apply_args, expand_builtin_saveargs): Use it. 28951 * cfgexpand.c: New file. 28952 * expr.c (execute_expand, pass_expand): Kill. 28953 * pass.c (rest_of_compilation): Do not build CFG unless called from 28954 coverage code. 28955 * tree-cfg.c (delete_tree_cfg): Rename to.. 28956 (delete_tree_cfg_annotations): ... this one; Do not remove the CFG itself. 28957 * tree-flow.h (delete_tree_cfg_annotations): Declare. 28958 (dleete_tree_cfg): Kill. 28959 * tree-optimize.c (execute_rebuild_bind, pass_rebuild_bind): Kill. 28960 (execute_del_cfg): Rename to... 28961 (execute_free_datastructures): This one... 28962 (pass_del_cfg): Rename to... 28963 (pass_free_datastructures): ... this one; Do not kill PROP_cfg. 28964 (init_tree_optimization_passes): Make cfg build and profiling to happen 28965 unconditionally. 28966 289672004-06-19 Steven Bosscher <stevenb@suse.de> 28968 28969 * tree-mudflap.c (mf_decl_cache_locals): Skip labels before 28970 inserting the cache variables. 28971 28972 * tree-mudflap.c: Include headers to make basic_block available. 28973 Move functions around such that related functions are near each 28974 other. Add prototypes for all static functions. Add comments 28975 briefly explaining what IR the mudflap1 and mudflap2 work on and 28976 what they do. 28977 (mudflap_function_decls): Rename to execute_mudflap_function_decls. 28978 (mudflap_function_ops): Rename to execute_mudflap_function_ops. 28979 (pass_mudflap_1, pass_mudflap_2): Update. 28980 (mf_decl_cache_locals): Make it work on the CFG instead of the saved 28981 function tree. 28982 (mf_build_check_statement_for): Make it work on the CFG. 28983 (mf_xform_derefs_1): Likewise. Cleanup code style. 28984 (mf_xform_derefs): Likewise. 28985 289862004-06-19 Jan Hubicka <jh@suse.cz> 28987 28988 * tree-cfg.c (label_to_block): Invent the label destination for 28989 undefined labels. 28990 (cleanup_dead_labels): Update table in the case label_to_block added 28991 new label. 28992 289932004-06-18 Richard Henderson <rth@redhat.com> 28994 28995 PR c++/16036 28996 * gimple-low.c (lower_function_body): Generate return statement for 28997 fall off the end of the function here ... 28998 * tree-cfg.c (make_edges): ... instead of here. 28999 * gimplify.c (gimplify_return_expr): Mark return temp TREE_NO_WARNING. 29000 290012004-06-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 29002 29003 * tree-ssa.c (raise_value): Removed. 29004 (get_eq_name, check_phi_redundancy): New functions. 29005 (kill_redundant_phi_nodes): Use standard ssa minimalization algorithm. 29006 290072004-06-18 Roger Sayle <roger@eyesopen.com> 29008 29009 * fold-const.c (fold) <UNORDERED_EXPR, ORDERED_EXPR, UNLT_EXPR, 29010 UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR>: Add 29011 constant folding for unordered comparison tree nodes. If both 29012 operands are real constants, call fold_relational_const. If either 29013 operand is a NaN, evaluate the other for side-effects and return a 29014 constant. Optimize (double)float1 CMP (double)float2 into the 29015 equivalent float1 CMP float2. 29016 (nondestructive_fold_binary_to_constant) <UNORDERED_EXPR, 29017 ORDERED_EXPR, UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, 29018 LTGT_EXPR>: Call fold_relational_const for constant operands. 29019 (fold_relational_const): Add support for unordered comparison tree 29020 nodes. Don't constant fold "ordered" floating point comparisons 29021 against NaN if when flag_trapping_math is set. 29022 290232004-06-19 Jakub Jelinek <jakub@redhat.com> 29024 29025 * fold-const.c (build_range_check): If !in_p and recursive call 29026 fails, exit immediately. If high - low overflows and etype is 29027 a signed type, retry with unsigned etype. 29028 (merge_ranges): If !in0_p and !in1_p, handle even range2 adjacent 29029 to range1 at TYPE_MAX_VALUE and TYPE_MIN_VALUE. 29030 290312004-06-18 Richard Henderson <rth@redhat.com> 29032 29033 * c-gimplify.c (gimplify_condition): Remove. 29034 (gimplify_c_loop, gimplify_if_stmt, gimplify_switch_stmt): Don't 29035 call it. 29036 290372004-06-18 Richard Henderson <rth@redhat.com> 29038 29039 * tree-eh.c (decide_copy_try_finally): Fix scaling of copy and 29040 switch estimates. 29041 290422004-06-18 Andrew Pinski <pinskia@physics.uc.edu> 29043 29044 * config/i386/darwin.h (HOT_TEXT_SECTION_NAME): Define. 29045 (NORMAL_TEXT_SECTION_NAME): Define. 29046 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. 29047 (SECTION_FORMAT_STRING): Define. 29048 290492004-06-18 Steven Bosscher <stevenb@suse.de> 29050 29051 * config/xtensa/xtensa.c 29052 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. 29053 * xtensa.md: Replace the old pipeline description with a DFA model. 29054 290552004-06-18 Steven Bosscher <stevenb@suse.de> 29056 Ulrich Weigand <Ulrich.Weigand@de.ibm.com> 29057 29058 * config/s390/s390.md: Remove the generic pipeline description. 29059 * config/s390/2064.md: Make all insn reservations apply to 29060 the z900, g5 and g6. 29061 * config/s390/s390.c (s390_use_dfa_pipeline_interface): Remove. 29062 (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): 29063 Define to hook_int_void_1. 29064 (s390_adjust_cost): Cleanup. Don't check address dependency here. 29065 (s390_first_cycle_multipass_dfa_lookahead): Always return 4. 29066 290672004-06-18 Daniel Berlin <dberlin@dberlin.org> 29068 Diego Novillo <dnovillo@redhat.com> 29069 29070 * tree-dfa.c (create_var_ann): tree_ann -> tree_ann_t. 29071 (create_stmt_ann): Ditto. 29072 (create_tree_ann): New function. 29073 (create_cst_ann): Remove. 29074 (create_expr_ann): Ditto. 29075 29076 * tree-flow-inline.h (cst_ann): Remove. 29077 (get_cst_ann): Ditto. 29078 (get_expr_ann): Ditto. 29079 (expr_ann): Ditto. 29080 (get_tree_ann): New function. 29081 (tree_ann): Ditto. 29082 (ann_type): tree_ann -> tree_ann_t. 29083 * tree-flow.h (tree_ann_type): CST_ANN, EXPR_ANN removed. 29084 (struct cst_ann_d): Removed. 29085 (struct expr_ann_d): Ditto. 29086 (union tree_ann_d): Removed cst and expr. 29087 (tree_ann): Renamed to tree_ann_t. 29088 * tree-ssa-ccp.c (set_rhs): tree_ann -> tree_ann_t. 29089 * tree-ssa-pre.c (get_value_handle): Rewrite for single common 29090 annotation. 29091 (set_value_handle): Ditto. 29092 (phi_translate): Ditto. 29093 * tree-tailcall.c (adjust_return_value): tree_ann -> tree_ann_t. 29094 290952004-06-18 Kaz Kojima <kkojima@gcc.gnu.org> 29096 29097 * config/sh/t-linux64: New file. 29098 * config.gcc: Add it to tmake_file for sh64*-*-linux*. 29099 291002004-06-18 Paolo Bonzini <bonzini@gnu.org> 29101 29102 * emit-rtl.c (unshare_all_rtl_1): New name of unshare_all_rtl. 29103 (unshare_all_rtl_again): Call unshare_all_rtl_1. 29104 (unshare_all_rtl): New. 29105 * function.c (instantiate_virtual_regs): Remove parameters. 29106 * function.h (instantiate_virtual_regs): Add prototype. 29107 * rtl.h (unshare_all_rtl): Add prototype. 29108 * tree.h (instantiate_virtual_regs, unshare_all_rtl): Remove 29109 prototype. 29110 * passes.c: Remove assertions on the parameters to 29111 rest_of_handle_* functions. Remove the parameters to 29112 the functions, replacing decl with current_function_decl 29113 and insns with get_insns (). 29114 291152004-06-17 Roger Sayle <roger@eyesopen.com> 29116 29117 * fold-const.c (constant_boolean_node): Handle boolean_type_node 29118 directly, return either boolean_true_node or boolean_false_node. 29119 291202004-06-18 Kelley Cook <kcook@gcc.gnu.org> 29121 29122 * opts.sh: Delete. Break out generated code to next four files. 29123 * opt-gather.awk: New file. 29124 * optc-gen.awk: New file. 29125 * opth-gen.awk: New file. 29126 * opt-functions.awk: New common file. 29127 * Makefile.in: Update for above. 29128 * configure.ac: Update comment. 29129 * configure: Regenerate. 29130 291312004-06-17 Richard Henderson <rth@redhat.com> 29132 29133 * c-common.c (flag_objc_sjlj_exceptions): New. 29134 * c-common.h (flag_objc_sjlj_exceptions): Declare. 29135 * c-opts.c (c_common_handle_option): Set it. 29136 (c_common_post_options): Handle interation of different 29137 objective-c exception and runtime switches. 29138 * c-decl.c (c_eh_initialized_p): New. 29139 (finish_decl): Use it instead of local eh_initialized_p. 29140 * c-parse.in (nested_function, notype_nested_function): Record 29141 the result of compstmt. 29142 (compstmt_or_error): Likewise. 29143 (compstmt): Don't add_stmt the result. 29144 (stmt): Don't return anything. Rewrite objc try and sync rules. 29145 (objc_try_stmt, objc_catch_list): Remove. 29146 (objc_catch_block, objc_finally_block): Remove. 29147 (objc_catch_prefix, objc_catch_clause, objc_opt_catch_list): New. 29148 (objc_try_catch_clause, objc_finally_clause): New. 29149 (objc_try_catch_stmt): Rewrite. 29150 * c-tree.h (c_eh_initialized_p): Declare. 29151 * c-opt (fobjc-sjlj-exceptions): New. 29152 * except.c (output_function_exception_table): Don't call cgraph 29153 on non-decls. 29154 * objc/objc-act.c (UTAG_EXCDATA_VAR, UTAG_CAUGHTEXC_VAR, 29155 UTAG_RETHROWEXC_VAR, UTAG_EVALONCE_VAR, struct val_stack, 29156 catch_count_stack, exc_binding_stack, if_nesting_count, 29157 blk_nesting_count, objc_enter_block, objc_exit_block, 29158 objc_declare_variable, val_stack_push, val_stack_pop, 29159 objc_build_try_enter_fragment, objc_build_extract_expr, 29160 objc_build_try_exit_fragment, objc_build_extract_fragment, 29161 objc_build_try_prologue, objc_build_try_epilogue, 29162 objc_build_catch_stmt, objc_build_catch_epilogue, 29163 objc_build_finally_prologue, objc_build_finally_epilogue, 29164 objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue, 29165 objc_build_synchronized_epilogue): Remove. 29166 (objc_create_temporary_var, struct objc_try_context, cur_try_context, 29167 objc_eh_runtime_type, objc_init_exceptions, objc_build_exc_ptr, 29168 next_sjlj_build_try_exit, next_sjlj_build_enter_and_setjmp, 29169 next_sjlj_build_exc_extract, next_sjlj_build_catch_list, 29170 next_sjlj_build_try_catch_finally, objc_begin_try_stmt, 29171 objc_begin_catch_clause, objc_finish_catch_clause, 29172 objc_build_finally_clause, objc_finish_try_stmt, 29173 objc_build_synchronized): New. 29174 (objc_is_object_id, objc_is_class_id): New. 29175 (objc_comptypes): Use them. 29176 (build_next_objc_exception_stuff): Break NeXT sjlj out from 29177 build_objc_exception_stuff. 29178 (synth_module_prologue): Update to match. 29179 (objc_build_throw_stmt): Use cur_try_context to decide if 29180 we're in a @catch. 29181 * objc/objc-act.h: Update prototypes. 29182 (OCTI_EXCEPTION_BLK_STACK, objc_exception_block_stack): Remove. 29183 291842004-06-17 Andrew Pinski <apinski@apple.com> 29185 29186 * c-typeck.c (tagged_types_tu_compatible_p <case UNION_TYPE>): 29187 Use TYPE_FIELDS instead of TYPE_VALUES. 29188 291892004-06-17 Jason Merrill <jason@redhat.com> 29190 29191 PR c++/16015 29192 * gimplify.c (gimplify_target_expr): Handle void initializer. 29193 * expr.c (expand_expr_real_1) [TARGET_EXPR]: Likewise. 29194 * doc/c-tree.texi (Expression trees): Update TARGET_EXPR 29195 and AGGR_INIT_EXPR. 29196 291972004-06-17 Roger Sayle <roger@eyesopen.com> 29198 29199 * fold-const.c (fold_relational_const): Use constant_boolean_node. 29200 292012004-06-17 Jan Hubicka <jh@suse.cz> 29202 29203 PR target/15433 29204 * i386.md (SSE SF cmov 0 splitter): The conditional is VOIDmode; fix 29205 operand numbering in the output template. 29206 (SSE DF cmov 0 splitter): The conditional is VOIDmode. 29207 292082004-06-17 Jan Hubicka <jh@suse.cz> 29209 29210 * except.c (can_throw_internal): Recognize RESX expresisons. 29211 292122004-06-17 Jan Hubicka <jh@suse.cz> 29213 29214 * cfgbuild.c (make_edges): Do not use label_value_list. 29215 (find_basic_blocks_1): Do not collect label_value_list. 29216 (find_sub_basic_blocks): Update call of make_edges. 29217 292182004-06-17 Andrew MacLeod <amacleod@redhat.com> 29219 29220 * tree-cfg.c (tree_make_forwarder_block): Use SET_PHI_RESULT. 29221 * tree-flow-inline.h (get_use_op_ptr): Return a use_operand_p. 29222 (get_use_from_ptr, get_def_from_ptr): New. Return operand pointers. 29223 (get_def_op_ptr): Return a def_operand_p instead of a 'tree *'. 29224 (get_v_may_def_result_ptr): Return a def_operand_p. 29225 (get_v_may_def_op_ptr, get_vuse_op_ptr): Return a use_operand_p. 29226 (get_v_must_def_op_ptr): Return a def_operand_p. 29227 (get_phi_result_ptr): New. Return a pointer to the result of a PHI. 29228 (get_phi_arg_def_ptr): New. Return a pointer to an argument of a PHI. 29229 (phi_element_for_edge): Remove. 29230 * tree-flow.h (propagate_value, replace_exp): Change prototype. 29231 (propagate_tree_value): Add new prototype. 29232 (phi_element_for_edge): Remove prototype. 29233 * tree-into-ssa.c (mark_def_sites): Use new operand types. 29234 (prepare_operand_for_rename): Split into two functions. 29235 (prepare_use_operand_for_rename): Prepare use operands. 29236 (prepare_def_operand_for_rename): Prepare def operands. 29237 (rewrite_stmt): Use new operand types. 29238 (rewrite_operand): Use new operand types, change parameter type. 29239 * tree-outof-ssa.c (replace_variable): Split into two functions. 29240 (replace_use_variable): Rewrite uses. 29241 (replace_def_variable): Rewrite defs. 29242 (rewrite_trees, rewrite_vars_out_of_ssa): Use new operand types. 29243 * tree-phinodes.c (make_phi_node, resize_phi_node): Use new types. 29244 (add_phi_arg, remove_phi_arg_num): Use new operand types. 29245 * tree-ssa-ccp.c (substitute_and_fold): Use new operand types. 29246 (ccp_fold, replace_uses_in): Use new operand types. 29247 * tree-ssa-copy.c (replace_ssa_names): Rename to replace_ssa_names_ann 29248 and no longer set the value, change parameter type. 29249 (replace_exp_1): Use new operand types. 29250 (propagate_value): Change parameter type, use new operand types. 29251 (propagate_tree_value): Propagate_value without SSA operands. 29252 (replace_exp, cprop_operand, cprop_into_stmt): Use new operand types. 29253 (cprop_into_successor_phis): Use new operand types. 29254 * tree-ssa-dom.c (thread_across_edge): Use new operand types. 29255 (eliminate_redundant_computations): Use new operand types. 29256 * tree-ssa-dse.c (fix_phi_uses): Use new operand_types. 29257 (fix_stmt_v_may_defs): Use new operand_types. 29258 * tree-ssa-live.c (create_ssa_var_map): Use new operand_types. 29259 (build_tree_conflict_graph): Use new operand_types. 29260 * tree-ssa-loop.c (duplicate_blocks): Use PHI_ARG_DEF_FROM_EDGE. 29261 * tree-ssa-operands.c (struct freelist_d): Remove. 29262 (check_optype_freelist, add_optype_freelist): Remove. 29263 (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype, 29264 allocate_vuse_optype, allocate_v_must_def_optype): Call ggc_alloc. 29265 (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs): 29266 Call ggc_free instead of add_optype_freelist. 29267 (init_ssa_operands, fini_ssa_operands): Remove free list code. 29268 (finalize_ssa_defs, finalize_ssa_uses): Set new use/def operands. 29269 * tree-ssa-operands.h (struct def_optype_d): Change underlying type. 29270 (struct use_optype_d): Change underlying type. 29271 (def_operand_p, use_operand_p): New types for pointers to operands. 29272 (USE_OP, DEF_OP, V_MAY_DEF_RESULT, V_MAY_DEF_OP, VUSE_OP, 29273 V_MUST_DEF_OP): Use new pointer type instead of dereferencing directly. 29274 (USE_FROM_PTR, DEF_FROM_PTR): New macros to "dereference" operand 29275 pointer types. 29276 (SET_USE, SET_DEF): New macros to set operands from their pointer. 29277 (SET_USE_OP, SET_DEF_OP, SET_V_MAY_DEF_RESULT, SET_V_MAY_DEF_OP, 29278 SET_VUSE_OP, SET_V_MUST_DEF_OP): New SET routines for operands. 29279 (PHI_RESULT_PTR, PHI_RESULT, SET_PHI_RESULT): Macros to manage the 29280 PHI result as an operand. 29281 (PHI_ARG_DEF_PTR, PHI_ARG_DEF, SET_PHI_ARG_DEF, PHI_ARG_DEF_FROM_EDGE, 29282 PHI_ARG_DEF_PTR_FROM_EDGE): Macros to manage the PHI arguments. 29283 * tree-ssa-pre.c (eliminate): Call propagate_tree_value. 29284 * tree-tailcall.c (independent_of_stmt_p, propagate_through_phis): Use 29285 PHI_ARG_DEF_FROM_EDGE. 29286 * tree.h (PHI_RESULT): Renamed to PHI_RESULT_TREE. 29287 (PHI_ARG_DEF): Renamed to PHI_ARG_DEF_TREE. 29288 292892004-06-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 29290 29291 PR tree-optimization/15991 29292 * tree-cfg.c (tree_block_label): Export. 29293 * tree-flow-inline.h (bsi_after_labels): New function. 29294 * tree-flow.h (bsi_after_labels, tree_block_label): Declare. 29295 * tree-ssa.c (propagate_into_addr): New function. 29296 (replace_immediate_uses): Handle propagation of pointer constants. 29297 (raise_value): Do not restrict propagation of pointer constants. 29298 * tree-ssanames.c (duplicate_ssa_name): New function. 29299 * tree.h (duplicate_ssa_name): Declare. 29300 293012004-06-17 David Ayers <d.ayers@inode.at> 29302 29303 * c-parse.in: Unify Objective-C token names. 29304 293052004-06-17 Zack Weinberg <zack@codesourcery.com> 29306 29307 Bug 14610 29308 * Makefile.in (min-insn-modes.o): Correct dependencies. 29309 * real.c (encode_ieee_extended, decode_ieee_extended): Always 29310 produce/consume 12-byte little-endian Intel format. 29311 (encode_ieee_extended_128, decode_ieee_extended_128): Delete. 29312 (encode_ieee_extended_motorola, decode_ieee_extended_motorola) 29313 (encode_ieee_extended_intel_96, decode_ieee_extended_intel_96) 29314 (encode_ieee_extended_intel_128, decode_ieee_extended_intel_128): 29315 New functions which convert between 12-byte little-endian Intel 29316 format and the desired format. 29317 (ieee_extended_motorola_format, ieee_extended_intel_96_round_53_format) 29318 (ieee_extended_intel_96_format, ieee_extended_intel_128_format): 29319 Update. 29320 293212004-06-17 Zack Weinberg <zack@codesourcery.com> 29322 29323 * expmed.c (expand_mult_const): In sanity check, compare only 29324 the bits of val and val_so_far that are significant in the 29325 result mode. 29326 293272004-06-17 Daniel Berlin <dberlin@dberlin.org> 29328 29329 * tree-ssa-pre.c: Update comments. 29330 (val_expr_pair_eq): Factor code from here. 29331 (expr_pred_trans_eq): and here. 29332 (expressions_equal_p): To here. 29333 (print_value_set): Print value for expression. 29334 (phi_trans_lookup): Rename some variables. 29335 (lookup): Ditto. 29336 (value_exists_in_set_bitmap): Ditto. 29337 (value_remove_from_set_bitmap): Ditto. 29338 (value_insert_into_set_bitmap): Ditto. 29339 293402004-06-17 Ulrich Weigand <uweigand@de.ibm.com> 29341 29342 * config/s390/s390-modes.def (CCL3mode): New machine mode. 29343 * config/s390/s390.c (s390_match_ccmode_set): Support CCL3mode. 29344 (s390_alc_comparison, s390_slb_comparison): Likewise. 29345 (s390_branch_condition_mask): Likewise. 29346 * config/s390/s390.md ("*subdi3_cc2", "*subdi3_cconly2"): New. 29347 ("*subsi3_cc2", "*subsi3_cconly2"): New. 29348 29349 * config/s390/s390.h (PREDICATE_CODE): Accept SIGN_EXTEND and 29350 ZERO_EXTEND for s390_alc_comparison and s390_slb_comparison. 29351 * config/s390/s390.c (s390_alc_comparison, s390_slb_comparison): 29352 Handle SIGN_EXTEND and ZERO_EXTEND. 29353 29354 * config/s390/s390-protos.h (s390_expand_addcc): New prototype. 29355 * config/s390/s390.c (s390_expand_addcc): New function. 29356 * config/s390/s390.md ("adddicc", "addsicc"): New expanders. 29357 ("*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg"): New insns. 29358 ("sltu", "sgtu", "sleu", "sgeu"): New expanders. 29359 293602004-06-17 Ben Elliston <bje@au.ibm.com> 29361 29362 * tree-alias-common.c: Add whitespace. 29363 * tree-inline.c: Correct comment about this file's purpose. 29364 * tree-optimize.c: Likewise. 29365 * tree-tailcall.c: Likewise. 29366 29367 * tree-alias-ander.h: Add standard top-of-file comment. 29368 * tree-alias-common.h: Likewise. 29369 * tree-alias-type.h: Likewise. 29370 293712004-06-16 Daniel Berlin <dberlin@dberlin.org> 29372 29373 * tree-ssa-pre.c (compute_avail): Value number uses as well. 29374 Strip useless type conversions. 29375 Casts have to be treated slightly different than normal unaries. 29376 293772004-06-16 Richard Henderson <rth@redhat.com> 29378 29379 * c-common.def (COMPOUND_STMT): Remove. 29380 * c-common.c (finish_fname_decls): Don't look through it. 29381 * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. 29382 * c-common.h (COMPOUND_BODY): Remove. 29383 (c_common_stmt_codes): Remove COMPOUND_STMT. 29384 * c-dump.c (c_dump_tree): Likewise. 29385 * c-gimplify.c (c_gimplify_stmt): Likewise. 29386 * c-pretty-print.c (pp_c_statement): Likewise. 29387 * tree.h (DECL_SAVED_TREE): Update commentary. 29388 * doc/c-tree.texi (ASM_EXPR): Rename from ASM_STMT. 29389 (CASE_LABEL_EXPR): Rename from CASE_LABEL. 29390 (GOTO_EXPR): Rename from GOTO_STMT. 29391 (GOTO_FAKE_P): Remove. 29392 (COMPOUND_STMT): Remove. 29393 (HANDLER): Update wrt COMPOUND_STMT. 29394 (STMT_EXPR): Likewise. 29395 (LABEL_EXPR): Rename from LABEL_STMT. 29396 (SCOPE_STMT): Remove. 29397 * objc/objc-act.c (objc_build_try_catch_finally_stmt): Don't look 29398 through COMPOUND_STMT. 29399 294002004-06-16 Richard Henderson <rth@redhat.com> 29401 29402 * c-common.h (c_begin_if_stmt, c_begin_while_stmt, 29403 c_finish_while_stmt_cond): Remove decls. 29404 * c-parse.in (if_prefix): Don't save c_begin_if_stmt result. 29405 * c-typeck.c (c_begin_if_stmt): Return void. 29406 (c_begin_else): Tidy. Save stmt_count. 29407 * c-tree.h (c_begin_if_stmt): Update decl. 29408 29409 * objc/objc-act.c (objc_build_try_enter_fragment, 29410 objc_build_extract_fragment, objc_build_try_epilogue, 29411 objc_build_catch_stmt, objc_build_catch_epilogue, 29412 objc_build_finally_prologue, objc_build_finally_epilogue): Update 29413 for if builder function changes. 29414 294152004-06-16 Ulrich Weigand <uweigand@de.ibm.com> 29416 29417 * config/s390/s390.c (struct machine_function): New member 29418 last_restore_gpr. 29419 (s390_frame_info): Add BASE_USED and RETURN_ADDR_USED parameters. 29420 Do not modify machine->save_return_addr_p or regs_ever_live. 29421 Fill in machine->last_restore_gpr. 29422 (s390_optimize_prolog): Use s390_frame_info to compute registers 29423 to save/restore, remove duplicated code. 29424 (s390_arg_frame_offset): Use s390_frame_info to compute frame 29425 size, remove duplicated code. 29426 (s390_emit_prologue): Adapt s390_frame_info call. Update 29427 machine->save_return_addr_p and regs_ever_live. 29428 (s390_emit_epilogue): Use machine->last_restore_gpr instead of 29429 machine->last_save_gpr. 29430 294312004-06-16 Richard Henderson <rth@redhat.com> 29432 29433 * c-parse.in (if_stmt_locus): Remove. 29434 (if_prefix): Increment stmt_count; pass it to c_finish_if_cond. 29435 (select_or_iter_stmt): Move empty if warnings to c-typeck.c. 29436 * c-typeck.c (if_elt): Sort by expected size. Rename locus to 29437 empty_locus. Add stmt_count, saw_else. 29438 (c_begin_if_stmt): Push if_stack here. 29439 (c_finish_if_cond): Rename from c_expand_end_cond. Record stmt_count. 29440 (c_finish_then, c_finish_else): Record empty_locus. 29441 (c_begin_else): Rename from c_expand_start_else. Record stmt_count. 29442 (c_finish_if_stmt): Rename from c_expand_end_cond. Warn for empty 29443 if or else body. 29444 * c-tree.h: Update prototypes. 29445 294462004-06-16 Steven Bosscher <stevenb@suse.de> 29447 29448 * tree.h (PHI_CHAIN): New. 29449 * (tree-cfg.c, tree-dfa.c, tree-flow-inline.h, tree-into-ssa.c, 29450 tree-outof-ssa.c, tree-phinodes.c, tree-pretty-print.c, 29451 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-dse.c, 29452 tree-ssa-live.c, tree-ssa-loop.c, tree-ssa-phiopt.c, tree-ssa-pre.c, 29453 tree-ssa.c, tree-tailcall.c): Use PHI_CHAIN instead of TREE_CHAIN 29454 when traversing a list of PHI_NODEs. 29455 294562004-06-16 Bernardo Innocenti <bernie@develer.com> 29457 29458 PR target/13292 29459 * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040_ONLY 29460 on -msoft-float. 29461 (TARGET_FLT_EVAL_METHOD): Don't advertise extended precision for 29462 68040 and soft-float. 29463 * config/m68k/m68k.md (truncdfsf2): Explicitly require TARGET_68881 29464 in the TARGET_68040_ONLY case. 29465 294662004-06-16 Peter Barada <peter@the-baradas.com> 29467 29468 * config/m68k/m68k.md (movsi_cfv4): New pattern to allow mov3q. 29469 (movsi_cf): Make named, don't match TARGET_CFV4. 29470 (pushexthisi_const): Use mov3q if possible. 29471 (extendhisi2, cvf4_extendhisi2): Split extendhisi2 pattern 29472 to special case mvz.w for ColdFire V4. 29473 (extendqisi2, cvf4_extendqisi2): Split extendhisi2 pattern 29474 to special case mvz.b for ColdFire V4. 29475 (udivmodhi4, divmodhi4): Use mvz to zero extend arg for 29476 divide. 29477 (iorsi3, xorsi3, andsi3): Use bitfield instructions if possible. 29478 * config/m68k/m68k.c(valid_mov3q_const): New function. 29479 (const_method): SWAP is valid for ColdFire. 29480 (MULL_COST, MULW_COST): Fix costs for ColdFire V3/V4. 29481 * config/m68k/m68k-protos.h (valid_mov3q_const): Prototype here. 29482 294832004-06-16 Richard Henderson <rth@redhat.com> 29484 29485 * c-common.def (CASE_LABEL): Remove. 29486 * c-common.c (c_add_case_label): Use CASE_LABEL, not CASE_LABEL_DECL. 29487 (match_case_to_enum_1): Likewise. 29488 * c-common.h (c_common_stmt_codes): Remove CASE_LABEL. 29489 * c-dump.c (c_dump_tree): Likewise. 29490 * c-gimplify.c (c_gimplify_stmt): Likewise. 29491 * c-pretty-print.c (pp_c_statement): Likewise. 29492 * c-semantics.c (build_case_label): Use CASE_LABEL_EXPR. 29493 * tree.h (CASE_LOW): Update commentary. 29494 294952004-06-16 Richard Henderson <rth@redhat.com> 29496 29497 * c-common.def (ASM_STMT): Remove. 29498 * c-common.h (c_common_stmt_codes): Remove ASM_STMT. 29499 * c-dump.c (c_dump_tree): Likewise. 29500 * c-gimplify.c (c_gimplify_stmt): Likewise. 29501 * c-pretty-print.c (pp_c_statement): Likewise. 29502 * c-typeck.c (build_asm_expr): Use ASM_EXPR. 29503 * tree.h: Fix commentary. 29504 295052004-06-16 Richard Henderson <rth@redhat.com> 29506 29507 * c-common.def (GOTO_STMT, LABEL_STMT): Remove. 29508 * c-common.c (c_add_case_label): Use LABEL_EXPR. 29509 * c-common.h (GOTO_FAKE_P, LABEL_STMT_LABEL): Remove. 29510 (c_common_stmt_codes): Remove GOTO_STMT, LABEL_STMT. 29511 * c-dump.c (c_dump_tree): Likewise. 29512 * c-gimplify.c (c_gimplify_stmt): Likewise. 29513 * c-pretty-print.c (pp_c_statement): Likewise. 29514 * c-parse.in (stmt): Use GOTO_EXPR. 29515 (label): Use LABEL_EXPR. 29516 * c-semantics.c (build_stmt): Set TREE_TYPE to void. 29517 * tree-inline.c (copy_body_r): Don't build empty BLOCKs. 29518 295192004-06-16 J"orn Rennecke <joern.rennecke@superh.com> 29520 29521 * cfgcleanup.c (try_simplify_condjump): Update test to make 29522 sure we have a conditional branch around am unconditional branch. 29523 295242004-06-16 Daniel Berlin <dberlin@dberlin.org> 29525 29526 * tree-cfg.c (pass_split_crit_edge): Give it a name and a dump file. 29527 295282004-06-16 Dale Johannesen <dalej@apple.com> 29529 29530 * loop.c (loop_givs_reduce): Avoid miscompilation of 29531 loops entered at bottom. 29532 295332004-06-16 J"orn Rennecke <joern.rennecke@superh.com> 29534 29535 * cfglayout.c (fixup_reorder_chain): Handle case where the 29536 destination of E_FALL is EXIT_BLOCK_PTR. 29537 295382004-06-16 Vladimir Makarov <vmakarov@redhat.com> 29539 29540 PR target/15653 29541 * config/ia64/ia64.c (ia64_dfa_new_cycle): Do not insert nops 29542 after shifts before asm. 29543 295442004-06-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 29545 29546 PR tree-optimization/15993 29547 * tree-ssa-dom.c (thread_across_edge): Do not thread edge if its 29548 destination is unchanged. 29549 295502004-06-16 Andreas Jaeger <aj@suse.de> 29551 29552 * doc/install.texi (Configuration): Update description for 29553 --enable-version-specific-runtime-libs. 29554 295552004-06-16 Paolo Bonzini <bonzini@gnu.org> 29556 29557 * doc/install.texi: boehm-gc now uses automake 1.8.5. 29558 295592004-06-16 Paolo Bonzini <bonzini@gnu.org> 29560 29561 * toplev.h (rest_of_compilation): Adjust prototype. 29562 295632004-06-16 Paolo Bonzini <bonzini@gnu.org> 29564 29565 * coverage.c: Remove argument to rest_of_compilation. 29566 * expr.c (execute_expand, set_save_expr_context, pass_expand): New. 29567 * passes.c (rest_of_compilation): Remove argument. 29568 (pass_rest_of_compilation): New. 29569 (rest_of_handle_final, rest_of_handle_delay_slots, 29570 rest_of_handle_stack_regs, rest_of_handle_variable_tracking 29571 rest_of_handle_machine_reorg, rest_of_handle_regrename 29572 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_gcse2 29573 rest_of_handle_regmove, rest_of_handle_tracer 29574 rest_of_handle_if_conversion, rest_of_handle_if_after_combine 29575 rest_of_handle_web, rest_of_handle_branch_prob 29576 rest_of_handle_value_profile_transformations, rest_of_handle_cfg 29577 rest_of_handle_addressof, rest_of_handle_jump_bypass 29578 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2): 29579 Check that the two arguments are actually superfluous. 29580 * tree-optimize.c (register_dump_files): Add properties argument. 29581 Track validity of passes. Only initialize dump files for 29582 tree-based passes. Store the full set of provided passes in 29583 the pass. 29584 (init_tree_optimization_passes): Register pass_expand and 29585 pass_rest_of_compilation. 29586 (execute_one_pass): Do not track the presence of required properties 29587 here. Set in_gimple_form. Do not update current_properties. 29588 (current_properties): Remove. 29589 (set_save_expr_context): Remove. 29590 (tree_rest_of_compilation): Do not set in_gimple_form. Do not 29591 expand to RTL here, and do not call rest_of_compilation. Push 29592 GGC context even before gimplification. 29593 * tree-pass.h (PROP_rtl, PROP_trees): New flags. 29594 (pass_expand, pass_rest_of_compilation): Declare. 29595 295962004-06-15 Jeff Law <law@redhat.com> 29597 29598 * fold-const.c (swap_tree_comparison): No longer static. 29599 (tree_swap_operands_p): Similarly. Return true if both operands 29600 are SSA_NAMEs and the first operand has a higher version number than 29601 the second operand. 29602 * tree.h (swap_tree_comparison): Prototype. 29603 (tree_swap_operands_p): Prototype. 29604 * tree-ssa-operands.c (get_expr_operands): For commutative 29605 operators and relational comparisons, canonicalize the 29606 order of the operands. 29607 296082004-06-15 Richard Henderson <rth@redhat.com> 29609 29610 * c-common.c (lang_gimplify_stmt): Remove next_p argument. 29611 (if_elt, if_stack, if_stack_space, c_expand_start_cond, c_finish_then, 29612 c_expand_end_cond, c_expand_start_else, c_finish_else, c_begin_if_stmt, 29613 c_begin_while_stmt, c_finish_while_stmt_cond): Move to c-typeck.c. 29614 (finish_fname_decls, fname_decl): Use statement_lists. 29615 (c_expand_expr_stmt): Don't set last_expr_type. 29616 (c_type_hash): Fix indentation. 29617 (c_safe_from_p): Don't follow TREE_CHAIN. 29618 (c_tree_chain_matters_p): Remove. 29619 * c-common.def (SCOPE_STMT): Remove. 29620 (CLEANUP_STMT): Redefine to contain its own body. 29621 * c-common.h (struct stmt_tree_s): Remove x_last_stmt, 29622 x_last_expr_type, x_last_expr_filename, x_scope_stmt_stack. 29623 Add x_cur_stmt_list. 29624 (last_tree, last_expr_type, last_expr_filename, RECHAIN_STMTS): Remove. 29625 (cur_stmt_list): New. 29626 (STATEMENT_LIST_STMT_EXPR): New. 29627 (SCOPE_BEGIN_P, SCOPE_END_P, SCOPE_STMT_BLOCK, SCOPE_NULLIFIED_P, 29628 SCOPE_NO_CLEANUPS_P, SCOPE_PARTIAL_P, NEW_FOR_SCOPE_P): Remove. 29629 (CLEANUP_BODY): New. 29630 (CLEANUP_DECL): Move to operand 2. 29631 (c_common_stmt_codes): Remove SCOPE_STMT. 29632 (COMPOUND_STMT_NO_SCOPE, COMPOUND_STMT_BODY_BLOCK): Remove. 29633 * c-decl.c (c_scope_stmt_stack, current_scope_stmt_stack): Remove. 29634 (c_push_function_context, c_pop_function_context): Don't save it. 29635 (finish_decl): Set TREE_USED on the decl for a cleanup. 29636 Use push_cleanup. 29637 (store_parm_decls): Use statement lists. 29638 (finish_function): Remove compstmt rule workaround. Use statement 29639 lists. Call finish_fname_decls after finalizing the body. 29640 (c_begin_compound_stmt): Move to c-typeck.c. 29641 * c-dump.c (c_dump_tree): Remove SCOPE_STMT. 29642 * c-gimplify.c (gimplify_cleanup_stmt, gimplify_cleanup_stmts): New. 29643 (c_genericize): Invoke them. 29644 (c_gimplify_stmt): Don't look through TREE_CHAIN. Kill SCOPE_STMT. 29645 (c_build_bind_expr): Export. 29646 (gimplify_block, gimplify_cleanup): Remove. 29647 (gimplify_condition): Use gimplify_stmt. 29648 (gimplify_for_stmt): Remove FOR_INIT_STMT chaining hack. 29649 (gimplify_if_stmt): Remove recursion hack. 29650 (c_gimplify_expr): Remove STMT_EXPR handling. 29651 (stmt_expr_last_stmt, gimplify_stmt_expr): Remove. 29652 (is_last_stmt_of_scope): Remove. 29653 * c-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Remove. 29654 * c-mudflap.c (mflang_flush_calls): Use c_begin_compound_stmt, 29655 c_end_compound_stmt. 29656 * c-objc-common.c (build_cdtor): Likewise. 29657 * c-parse.in (primary): Use c_finish_stmt_expr. 29658 (push_scope, pop_scope): Remove. 29659 (c99_block_start, compstmt_start): Use c_begin_compound_stmt. 29660 (c99_block_end, compstmt): Use c_end_compound_stmt. 29661 (c99_block_lineno_labeled_stmt): Likewise. 29662 (compstmt_primary_start): Use c_begin_stmt_expr. 29663 (simple_if, select_or_iter_stmt): Update calls to stmt builders. 29664 (do_stmt_start): Fill in body directly. 29665 (lineno_stmt): Avoid setting lineno on constants. 29666 * c-pretty-print.c (pp_c_statement): Handle STATEMENT_LIST. 29667 Remove SCOPE_STMT. 29668 * c-semantics.c (begin_stmt_tree): Remove. 29669 (push_stmt_list, re_push_stmt_list, pop_stmt_list): New. 29670 (add_stmt): Use statement lists. 29671 (add_scope_stmt, finish_stmt_tree): Remove. 29672 (push_cleanup): New. 29673 * c-tree.h: Move some decls from c-common.h. 29674 * c-typeck.c (c_tree_expr_nonnegative_p): Simplify for statement lists. 29675 (do_case, c_finish_case): Likewise. 29676 (c_finish_then): Take body for then as argument. 29677 (c_finish_else): Similarly. 29678 (c_begin_for_stmt, c_finish_for_stmt_init, c_finish_for_stmt_cond, 29679 c_finish_for_stmt_incr, c_finish_for_stmt): New. 29680 (c_begin_stmt_expr, c_finish_stmt_expr): New. 29681 (c_begin_compound_stmt): Do scope management. 29682 (c_end_compound_stmt): New. 29683 * fold-const.c (tree_expr_nonnegative_p): Fix BIND_EXPR. 29684 * gimplify.c (voidify_wrapper_expr): Accept temporary argument. 29685 Look through exception handling constructs. 29686 (gimplify_bind_expr): Accept temporary argument. 29687 (gimplify_target_expr): Special case BIND_EXPR bodies. 29688 (gimplify_expr): Handle fallback == fb_none like a statement. 29689 * langhooks-def.h (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): Kill. 29690 * langhooks.c (lhd_tree_inlining_tree_chain_matters_p): Remove. 29691 * langhooks.h (tree_chain_matters_p): Remove. 29692 * stub-objc.c (objc_clear_super_receiver): New. 29693 * tree-gimple.h (voidify_wrapper_expr): Update decl. 29694 (append_to_statement_list, append_to_statement_list_force): Move 29695 to tree-iterator.h. 29696 * tree-inline.c (expand_call_inline): Update call. 29697 (clone_body): Use statement lists. 29698 (walk_tree): Don't check tree_chain_matters_p. 29699 (copy_tree_r): Likewise. 29700 * tree-iterator.c (alloc_stmt_list): Clear lang bits. 29701 (tsi_link_before, tsi_link_after): Set TREE_SIDE_EFFECTS properly. 29702 * tree-iterator.h (append_to_statement_list, 29703 append_to_statement_list_force): Moved from tree-gimple.h. 29704 * tree-pretty-print.c (dump_generic_node): Clean up TARGET_EXPR dump. 29705 * objc/objc-act.c (build_module_descriptor): Use c_begin_compound_stmt. 29706 (objc_enter_block): Likewise. 29707 (objc_exit_block): Use c_end_compound_stmt. 29708 (objc_build_try_enter_fragment): Add #error and comment for 29709 rewriting for OBJCPLUS. 29710 (objc_build_extract_fragment, objc_build_try_epilogue, 29711 objc_build_catch_stmt, objc_build_finally_prologue, 29712 objc_build_finally_epilogue): Update for C statement builders. 29713 * objc/objc-lang.c (LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P): 29714 Remove. 29715 297162004-06-15 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 29717 29718 * df.c (df_reg_clobber_gen): Removed. 29719 (df_bb_rd_local_compute, df_insn_refs_record, df_rd_local_compute): 29720 Make more effective for hard regs. 29721 * ra-build.c (livethrough_conflicts_bb): Check contains_call. 29722 297232004-06-15 Alexandre Oliva <aoliva@redhat.com> 29724 29725 * c-pragma.h (c_lex_string_translate): Change type to int. 29726 * c-parse.in: Change all assignments of c_lex_string_translate 29727 to true and false to 1 and 0. 29728 * c-lex.c (c_lex_string_translate): Likewise. 29729 (lex_string): Convert string without translation in the -1 29730 case. 29731 297322004-06-15 Mark G. Adams <mark.g.adams@sympatico.ca> 29733 29734 * convert.h: Add include guards 29735 297362004-06-15 Daniel Berlin <dberlin@dberlin.org> 29737 29738 * tree-flow-inline.h: Document all functions. 29739 297402004-06-15 Daniel Berlin <dberlin@dberlin.org> 29741 29742 * tree-flow-inline.h (stmt_ann): Remove use of is_essa_node. 29743 * tree-dfa.c (create_stmt_ann): Ditto. 29744 * tree-pretty-print.c (dump_generic_node): Remove E* node handling. 29745 * tree-inline.c (estimate_num_insns_1): Ditto. 29746 * tree.c (tree_size): Ditto. 29747 (make_node_stat): Ditto. 29748 (tree_node_structure): Ditto. 29749 (ephi_node_elt_check_failed): Remove. 29750 (is_essa_node): Ditto. 29751 * tree.def (EPHI_NODE): Ditto. 29752 (EEXIT_NODE): Ditto. 29753 (EUSE_NODE): Ditto. 29754 (EKILL_NODE): Ditto. 29755 * tree.h (EREF_NODE_CHECK): Remove. 29756 (EPHI_NODE_ELT_CHECK): Ditto. 29757 (struct tree_eref_common): Ditto. 29758 (struct tree_euse_node): Ditto. 29759 (struct ephi_arg_d): Ditto. 29760 (struct tree_ephi_node): Ditto. 29761 (ephi_node_elt_check_failed): Remove prototype. 29762 (is_essa_node): Ditto. 29763 (enum tree_node_structure_enum): Remove TS_E*_NODE. 29764 (union tree_node): Remove E*_NODE uses. 29765 297662004-06-15 Jerry Quinn <jlquinn@optonline.net> 29767 29768 * alias.c (record_set, record_base_value, canon_rtx, get_addr, 29769 nonlocal_mentioned_p_1, init_alias_analysis): Use REG_P. 29770 * bt-load.c (find_btr_reference, insn_sets_btr_p, note_btr_set): 29771 Likewise. 29772 * builtins.c (expand_builtin_setjmp, expand_builtin_apply, 29773 expand_builtin_mathfn, expand_builtin_strlen, expand_builtin_memcmp, 29774 expand_builtin_strcmp, expand_builtin_strncmp, 29775 expand_builtin_frame_address): Likewise. 29776 * caller-save.c (mark_set_regs, add_stored_regs, mark_referenced_regs, 29777 insert_one_insn): Likewise. 29778 * calls.c (prepare_call_address, precompute_register_parameters, 29779 precompute_arguments, expand_call, emit_library_call_value_1): Likewise. 29780 * cfganal.c (flow_active_insn_p): Likewise. 29781 * combine.c (set_nonzero_bits_and_sign_copies, can_combine_p, 29782 combinable_i3pat, try_combine, find_split_point, COMBINE_RTX_EQUAL_P, 29783 subst, combine_simplify_rtx, simplify_if_then_else, simplify_set, 29784 make_extraction, recog_for_combine, gen_lowpart_for_combine, 29785 simplify_comparison, record_dead_and_set_regs_1, 29786 record_dead_and_set_regs, record_promoted_value, 29787 check_promoted_subreg, get_last_value_validate, get_last_value, 29788 reg_dead_at_p_1, reg_bitfield_target_p, distribute_notes, 29789 unmentioned_reg_p_1): Likewise. 29790 * conflict.c (mark_reg): Likewise. 29791 * cse.c (HASH, COST, COST_IN, approx_reg_cost_1, notreg_cost, 29792 mention_regs, insert_regs, lookup, lookup_for_remove, insert, 29793 merge_equiv_classes, flush_hash_table, invalidate, 29794 remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, 29795 invalidate_for_call, use_related_value, canon_hash, exp_equiv_p, 29796 cse_rtx_varies_p, canon_reg, find_best_addr, fold_rtx, equiv_constant, 29797 record_jump_cond, cse_insn, addr_affects_sp_p, 29798 invalidate_from_clobbers, cse_process_notes, cse_around_loop, 29799 cse_set_around_loop, count_reg_usage, set_live_p, cse_change_cc_mode, 29800 cse_cc_succs, cse_condition_code_reg): Likewise. 29801 * cselib.c (cselib_reg_set_mode, rtx_equal_for_cselib_p, 29802 cselib_lookup, cselib_invalidate_regno, cselib_invalidate_rtx, 29803 cselib_record_set, cselib_record_sets): Likewise. 29804 * dbxout.c (dbxout_symbol_location, dbxout_parms, dbxout_reg_parms, 29805 dbxout_block): Likewise. 29806 * df.c (df_ref_record, df_def_record_1, df_uses_record): Likewise. 29807 * dojump.c (do_jump): Likewise. 29808 * dwarf2out.c (dwarf2out_frame_debug_expr, is_pseudo_reg, 29809 is_based_loc, rtl_for_decl_location): Likewise. 29810 * emit-rtl.c (set_reg_attrs_for_parm, set_decl_rtl, 29811 set_decl_incoming_rtl, mark_user_reg): Likewise. 29812 * explow.c (copy_all_regs, copy_all_regs, memory_address, force_reg, 29813 copy_to_suggested_reg, allocate_dynamic_stack_space, 29814 probe_stack_range, hard_function_value): Likewise. 29815 * expmed.c (store_bit_field, store_fixed_bit_field, 29816 store_split_bit_field, extract_bit_field, extract_fixed_bit_field, 29817 extract_split_bit_field, expand_divmod, emit_store_flag_force): 29818 Likewise. 29819 * expr.c (convert_move, convert_modes, 29820 block_move_libcall_safe_for_call_parm, emit_group_load, use_reg, 29821 use_group_regs, emit_move_insn, emit_move_insn_1, 29822 compress_float_constant, push_block, emit_single_push_insn, 29823 emit_push_insn, get_subtarget, expand_assignment, store_expr, 29824 store_constructor, store_field, force_operand, safe_from_p, 29825 expand_expr_real_1, expand_increment, do_store_flag, do_tablejump): 29826 Likewise. 29827 * final.c (profile_function, final_scan_insn, alter_subreg, 29828 get_mem_expr_from_op, output_asm_operand_names, output_operand, 29829 only_leaf_regs_used, leaf_renumber_regs_insn): Likewise. 29830 * flow.c (verify_wide_reg_1, mark_regs_live_at_end, 29831 find_regno_partial, propagate_one_insn, init_propagate_block_info, 29832 insn_dead_p, libcall_dead_p, mark_set_1, not_reg_cond, 29833 attempt_auto_inc, find_auto_inc, mark_used_regs, 29834 count_or_remove_death_notes_bb): Likewise. 29835 * function.c (find_temp_slot_from_address, update_temp_slot_address, 29836 preserve_temp_slots, put_var_into_stack, fixup_var_refs_insn, 29837 fixup_var_refs_1, fixup_stack_1, optimize_bit_field, flush_addressof, 29838 put_addressof_into_stack, purge_addressof_1, insns_for_mem_walk, 29839 purge_single_hard_subreg_set, instantiate_decl, 29840 instantiate_virtual_regs_1, aggregate_value_p, assign_parms, 29841 promoted_input_arg, setjmp_vars_warning, setjmp_args_warning, 29842 setjmp_protect, setjmp_protect_args, fix_lexical_addr, 29843 expand_function_start, diddle_return_value, clobber_return_register, 29844 expand_function_end, keep_stack_depressed, handle_epilogue_set, 29845 update_epilogue_consts): Likewise. 29846 * genemit.c (gen_exp, gen_insn): Likewise. 29847 * genrecog.c (make_insn_sequence): Likewise. 29848 * global.c (global_conflicts, expand_preferences, mark_reg_store, 29849 mark_reg_conflicts, set_preference, reg_becomes_live, 29850 build_insn_chain, mark_reg_change): Likewise. 29851 * haifa_sched.c (CONST_BASED_ADDRESS_P, find_set_reg_weight): 29852 Likewise. 29853 * ifcvt.c (noce_try_abs, noce_get_condition, noce_process_if_block): 29854 Likewise. 29855 * integrate.c (copy_rtx_and_substitute, try_constants, 29856 subst_constants, mark_stores, allocate_initial_values): Likewise. 29857 * jump.c (reversed_comparison_code_parts, delete_prior_computation, 29858 delete_computation, rtx_renumbered_equal_p, true_regnum, 29859 reg_or_subregno): Likewise. 29860 * lcm.c (reg_dies, reg_becomes_live): Likewise. 29861 * local-alloc.c (validate_equiv_mem_from_store, validate_equiv_mem, 29862 update_equiv_regs, no_equiv, block_alloc, combine_regs, reg_is_set, 29863 wipe_dead_reg, no_conflict_p): Likewise. 29864 * loop-iv.c (simple_reg_p, simple_set_p, kill_sets, 29865 iv_get_reaching_def, iv_analyze_biv, altered_reg_used, mark_altered, 29866 simple_rhs_p, simplify_using_assignment, implies_p): Likewise. 29867 * loop.c (scan_loop, combine_movables, rtx_equal_for_loop_p, 29868 move_movables, note_set_pseudo_multiple_uses, consec_sets_invariant_p, 29869 find_single_use_in_loop, count_one_set, loop_bivs_init_find, 29870 loop_givs_rescan, check_insn_for_bivs, check_insn_for_givs, 29871 valid_initial_value_p, simplify_giv_expr, consec_sets_giv, 29872 loop_regs_update, check_dbra_loop, maybe_eliminate_biv, 29873 maybe_eliminate_biv_1, record_initial, update_reg_last_use, 29874 canonicalize_condition, loop_regs_scan, load_mems, try_copy_prop, 29875 try_swap_copy_prop): Likewise. 29876 * optabs.c (expand_binop, expand_vector_binop, expand_vector_unop, 29877 expand_abs, emit_no_conflict_block, emit_libcall_block, expand_float): 29878 Likewise. 29879 * postreload.c (reload_cse_simplify, reload_cse_simplify_set, 29880 reload_cse_simplify_operands, reload_combine, 29881 reload_combine_note_store, reload_combine_note_use, 29882 reload_cse_move2add, move2add_note_store): Likewise. 29883 * print-rtl.c (print_rtx): Likewise. 29884 * ra-build.c (copy_insn_p, remember_move, init_one_web_common, 29885 contains_pseudo, handle_asm_insn): Likewise. 29886 * ra-debug.c (ra_print_rtx_object, dump_constraints, 29887 dump_static_insn_cost): Likewise. 29888 * ra-rewrite.c (slots_overlap_p, emit_colors, 29889 remove_suspicious_death_notes): Likewise. 29890 * recog.c (validate_replace_rtx_1, find_single_use_1, find_single_use, 29891 register_operand, scratch_operand, nonmemory_operand, 29892 constrain_operands): Likewise. 29893 * reg-stack (check_asm_stack_operands, remove_regno_note, 29894 emit_swap_insn, swap_rtx_condition, subst_stack_regs_pat, 29895 subst_asm_stack_regs): Likewise. 29896 * regclass.c (scan_one_insn, record_reg_classes, copy_cost, 29897 record_address_regs, reg_scan_mark_refs): Likewise. 29898 * regmove.c (discover_flags_reg, replacement_quality, 29899 copy_src_to_dest, reg_is_remote_constant_p, regmove_optimize, 29900 fixup_match_1): Likewise. 29901 * regrename.c (note_sets, clear_dead_regs, build_def_use, kill_value, 29902 kill_set_value, copyprop_hardreg_forward_1): Likewise. 29903 * reload.c (MATCHES, push_secondary_reload, find_reusable_reload, 29904 reload_inner_reg_of_subreg, can_reload_into, push_reload, 29905 combine_reloads, find_dummy_reload, hard_reg_set_here_p, 29906 operands_match_p, decompose, find_reloads, find_reloads_toplev, 29907 find_reloads_address, subst_indexed_address, find_reloads_address_1, 29908 find_reloads_subreg_address, find_replacement, 29909 refers_to_regno_for_reload_p, reg_overlap_mentioned_for_reload_p, 29910 refers_to_mem_for_reload_p, find_equiv_reg, regno_clobbered_p): Likewise. 29911 * reload1.c (replace_pseudos_in, reload, calculate_needs_all_insns, 29912 find_reg, delete_dead_insn, alter_reg, eliminate_regs, 29913 elimination_effects, eliminate_regs_in_insn, scan_paradoxical_subregs, 29914 forget_old_reloads_1, reload_reg_free_for_value_p, choose_reload_regs, 29915 emit_input_reload_insns, emit_output_reload_insns, do_input_reload, 29916 do_output_reload, emit_reload_insns, gen_reload, 29917 delete_address_reloads_1, inc_for_reload): Likewise. 29918 * reorg.c (update_reg_dead_notes, fix_reg_dead_note, 29919 update_reg_unused_notes, fill_slots_from_thread): Likewise. 29920 * resource.c (update_live_status, mark_referenced_resources, 29921 mark_set_resources, mark_target_live_regs): Likewise. 29922 * rtlanal.c (nonzero_address_p, get_jump_table_offset, 29923 global_reg_mentioned_p_1, reg_mentioned_p, reg_referenced_p, 29924 reg_set_p, set_noop_p, find_last_value, refers_to_regno_p, 29925 note_stores, dead_or_set_p, dead_or_set_regno_p, find_regno_note, 29926 find_reg_fusage, find_regno_fusage, replace_regs, regno_use_in, 29927 parms_set, find_first_parameter_load, keep_with_call_p, 29928 hoist_test_store, hoist_update_store, address_cost, nonzero_bits1, 29929 num_sign_bit_copies1): Likewise. 29930 * rtlhooks.c (gen_lowpart_general): Likewise. 29931 * sched-deps.c (deps_may_trap_p, sched_analyze_1, sched_analyze_insn, 29932 sched_analyze): Likewise. 29933 * sched-rgn.c (check_live_1, update_live_1, sets_likely_spilled_1): 29934 Likewise. 29935 * sdbout.c (sdbout_symbol, sdbout_parms, sdbout_reg_parms): Likewise. 29936 * simplify-rtx.c (simplify_replace_rtx, simplify_unary_operation, 29937 simplify_binary_operation, simplify_const_relational_operation, 29938 simplify_subreg): Likewise. 29939 * stmt.c (decl_conflicts_with_clobbers_p, expand_asm_operands, 29940 expand_end_stmt_expr, expand_return, expand_decl, 29941 expand_anon_union_decl): Likewise. 29942 * unroll.c (precondition_loop_p, calculate_giv_inc, copy_loop_body, 29943 find_splittable_regs, find_splittable_givs, find_common_reg_term, 29944 loop_iterations): Likewise. 29945 * var-tracking.c (variable_union, variable_part_different_p, 29946 variable_different_p, count_uses, add_uses, add_stores, 29947 compute_bb_dataflow, set_variable_part, delete_variable_part, 29948 emit_notes_in_bb, vt_get_decl_and_offset, vt_add_function_parameters): 29949 Likewise. 29950 * varasm.c (assemble_variable): Likewise. 29951 299522004-06-15 Chris Demetriou <cgd@broadcom.com> 29953 29954 * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove 29955 definition. 29956 * config/mips/linux64.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove 29957 #undef and #if 0'd definition. 29958 299592004-06-15 J"orn Rennecke <joern.rennecke@superh.com> 29960 29961 * combine.c (distribute_notes): Comment typo fix. 29962 299632004-06-15 Roger Sayle <roger@eyesopen.com> 29964 29965 * expmed.c (synth_mult): Mask bits of the multiplier to the 29966 machine mode of the multiplication. Don't consider shifts 29967 by more than (or equal to) the width of the operation's mode. 29968 299692004-06-15 Paolo Bonzini <bonzini@gnu.org> 29970 29971 * doc/install.texi: Yet another update for autoconf 29972 and automake versions. 29973 299742004-06-15 Paolo Bonzini <bonzini@gnu.org> 29975 29976 * function.h (struct function): Remove cannot_inline field. 29977 (current_function_cannot_inline): Remove. 29978 * passes.c (rest_of_compilation): Reset DECL_DEFER_OUTPUT. 29979 Simplify conditionals to ignore warn_return_type. 29980 * tree-optimize.c (tree_rest_of_compilation): Do not reset 29981 DECL_DEFER_OUTPUT. 29982 * objc/objc-act.c (build_module_descriptor, finish_method_def): 29983 Do not set current_function_cannot_inline. 29984 299852004-06-15 J"orn Rennecke <joern.rennecke@superh.com> 29986 29987 * cfglayout.c (fixup_reorder_chain): Handle case where the 29988 destination of E_TAKEN is EXIT_BLOCK_PTR. 29989 299902004-06-15 Diego Novillo <dnovillo@redhat.com> 29991 29992 * tree-ssa-copy.c (cprop_into_successor_phis): Fix typo. 29993 299942004-06-15 Paolo Bonzini <bonzini@gnu.org> 29995 29996 * fold-const.c (operand_equal_p): Update comment. 29997 299982004-06-15 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 29999 30000 * config/m32r/m32r.h (RETURN_ADDR_RTX): Define. 30001 (INCOMING_RETURN_ADDR_RTX): Define. 30002 * config/m32r/m32r-protos.h (m32r_return_addr): Added. 30003 * config/m32r/m32r.c (m32r_exppand_prologue): Changed for 30004 __builtin_return_address(0). 30005 (m32r_return_addr): Added for __builtin_return_address(0). 30006 (m32r_reload_lr): Ditto. 30007 30008 * longlong.h: Fix macros for m32r add_ssaaaa and sub_ddmmss. 30009 300102004-06-15 Paolo Bonzini <bonzini@gnu.org> 30011 30012 * doc/install.texi (Prerequisites): Update libbanshee, 30013 fastjar, libcpp, libjava/libltdl entries to 30014 automake 1.8.5. 30015 300162004-06-15 Eric Botcazou <ebotcazou@act-europe.fr> 30017 Olivier Hainque <hainque@act-europe.fr> 30018 30019 * function.c (fixup_var_refs): Also adjust the start of sequence 30020 after fixing up the insns. 30021 300222004-06-15 Giovanni Bajo <giovannibajo@gcc.gnu.org> 30023 30024 * gccbug.in: Update optimization -> tree-optimization/rtl-optimization. 30025 300262004-06-14 Benjamin Kosnik <bkoz@redhat.com> 30027 30028 * doc/install.texi (Prerequisites): Update libstdc++ entry to 30029 automake 1.8.5. 30030 300312004-06-14 Eric Christopher <echristo@redhat.com> 30032 30033 * config/s390/s390.h (TARGET_SWITCHES): Change -mtpf (-mno-tpf) 30034 to -mtpf-trace (-mno-tpf-trace). 30035 * doc/invoke.texi (S/390 and zSeries Options): Add tpf option 30036 documentation. 30037 300382004-06-14 Eric Botcazou <ebotcazou@libertysurf.fr> 30039 30040 * real.c: Fix bit count in head comment. 30041 300422004-06-14 Jeff Law <law@redhat.com> 30043 30044 * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle 30045 PHIs where the destination or an argument is marked with 30046 SSA_NAME_OCCURS_IN_ABNORMAL_PHI. 30047 300482004-06-14 Jakub Jelinek <jakub@redhat.com> 30049 30050 PR middle-end/15945 30051 * simplify-rtx.c (simplify_binary_operation): Don't optimize out 30052 Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math. 30053 300542004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 30055 30056 * opts.sh (var_args): Fix regexp. 30057 300582004-06-14 Jakub Jelinek <jakub@redhat.com> 30059 30060 PR target/15178 30061 * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. 30062 300632004-06-14 Paul Brook <paul@codesourcery.com> 30064 30065 * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries. 30066 300672004-06-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 30068 30069 * Makefile.in (FLAGS_H): New. 30070 (flags.h): Replace by FLAGS_H. 30071 * c.opt: Document Var, VarExists, Init and Report attributes. 30072 * common.opt: Fill the values of the attributes. 30073 * diagnostic.c (flag_fatal_errors): Do not define. 30074 * except.c (flag_non_call_exceptions): Do not define. 30075 * flags.h: Include options.h. Remove declarations conflicting with 30076 the automatically defined ones. 30077 * opts.c: Remove automatically defined variables. 30078 (handle_option): Perform default initialization. 30079 (common_handle_option): Do not handle options covered by the 30080 default initialization. 30081 * opts.h (struct cl_option): Add flag_var, has_set_value and set_value 30082 fields. 30083 (CL_REPORT): New. 30084 * opts.sh: Generate variable declarations, handle CL_REPORT. 30085 * toplev.c: Remove automatically defined variables. 30086 (f_options): Removed. 30087 (print_switch_values): Use cl_options instead of f_options. 30088 * toplev.h (version_flag): Declaration removed. 30089 300902004-06-14 Ian Lance Taylor <ian@wasabisystems.com> 30091 30092 * config/sparc/sparc.h: Correct comment about availability of 30093 little endian option. 30094 30095 * config.gcc: Remove sparc64-*-aout*. 30096 * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove. 30097 * config/sparc/sp64-aout.h: Remove. 30098 * config/sparc/aout.h: Remove. 30099 301002004-06-14 Ulrich Weigand <uweigand@de.ibm.com> 30101 30102 * config/s390/s390.c: Include "tree-gimple.h". 30103 (s390_gimplify_va_arg): New function. 30104 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. 30105 (s390_va_arg): Remove. 30106 * config/s390/s390-protos.h (s390_va_arg): Remove. 30107 * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort (). 30108 301092004-06-14 J"orn Rennecke <joern.rennecke@superh.com> 30110 30111 * basic-block.h (could_fall_through): Declare. 30112 * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR. 30113 Fail if the source already has a fallthrough edge to the exit 30114 block pointer. 30115 (could_fall_through): New function. 30116 * cfgbuild.c (make_edges): Check if we already have a fallthrough 30117 edge to the exit block pointer. 30118 * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is 30119 not called before reload has completed. 30120 Handle special case of first block having a fall-through exit edge. 30121 (cfg_layout_finalize): Don't call it before reload or if we have 30122 rtl epilogues. 30123 (fixup_reorder_chain): A fall through to the exit block does not 30124 require the block to come last. Add sanity checks. 30125 * cfgrtl.c (rtl_split_edge): Add special handling of fall through 30126 edges to the exit block. 30127 * function.c (cfglayout.h): #include. 30128 (thread_prologue_and_epilogue_insns): If we have neither return nor 30129 epilogue, but a fall through to the exit block from mid-function, 30130 force a non-fall-through exit. 30131 * Makefile.in (function.o): Depend on CFGLAYOUT_H. 30132 301332004-06-14 Alan Modra <amodra@bigpond.net.au> 30134 30135 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu 30136 for power5 and rs64a. Correct condition for default. Correct power3, 30137 620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries. Add -many. 30138 301392004-06-13 Steven Bosscher <stevenb@suse.de> 30140 30141 * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set): 30142 Revert previous change, don't use CALL_P. 30143 301442004-06-13 Jason Merrill <jason@redhat.com> 30145 30146 * tree.h: Move std_gimplify_va_arg_expr protoype here. 30147 * tree-gimple.h: From here. 30148 301492004-06-13 Daniel Berlin <dberlin@dberlin.org> 30150 30151 Fix PR tree-optimization/15979 30152 Fix PR tree-optimization/15981 30153 * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't 30154 try to insert values undefined along some path. 30155 301562004-06-13 Daniel Berlin <dberlin@dberlin.org> 30157 30158 * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things 30159 are available everywhere too. 30160 301612004-06-13 Andrew Pinski <pinskia@physics.uc.edu> 30162 30163 * fold-const.c (fold_checksum_tree <case 't'>): Only 30164 look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE. 30165 Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if 30166 EXPR is an INTEGERAL_TYPE or a scalar float type. 30167 301682004-06-13 Diego Novillo <dnovillo@redhat.com> 30169 30170 * tree-sra.c (tree_sra): Update documentation. 30171 301722004-06-13 Joseph S. Myers <jsm@polyomino.org.uk> 30173 30174 * c-typeck.c (comptypes, tagged_types_tu_compatible_p, 30175 function_types_compatible_p, type_lists_compatible_p): Remove 30176 flags parameter. 30177 * c-tree.h (comptypes): Likewise. 30178 (COMPARE_STRICT): Remove. 30179 * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All 30180 callers changed. 30181 301822004-06-13 Eric Christopher <echristo@redhat.com> 30183 30184 * c-decl.c (diagnose_mismatched_decls): Improve error message. 30185 Remove unused code. 30186 * c-typeck.c (comptypes): Add location in standard we're checking. 30187 301882004-06-13 Kaz Kojima <kkojima@gcc.gnu.org> 30189 30190 * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with 30191 version 3.3.4. 30192 301932004-06-12 Roger Sayle <roger@eyesopen.com> 30194 30195 * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally 30196 index by machine mode. 30197 (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost 30198 tables inside the loop over machine modes. 30199 (synth_mult, expand_mult_highpart_optab, expand_mult_highpart, 30200 expand_divmod): Index shift*_cost by the appropriate machine mode. 30201 302022004-06-12 Eric Christopher <echristo@redhat.com> 30203 30204 * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING. 30205 * config/s390/s390.md: Ditto. 30206 * config/s390/s390.c: Ditto. 30207 (s390_frame_info): Conditionalize frame and setup info on 30208 TARGET_TPF_PROFILING. 30209 (s390_arg_frame_offset): Ditto. 30210 302112004-06-12 Roger Sayle <roger@eyesopen.com> 30212 30213 * fold-const.c (omit_two_operands): New function. 30214 * tree.h (omit_two_operands): Prototype here. 30215 * builtins.c (fold_builtin_unordered_cmp): New function to lower 30216 C99 unordered comparison builtins to the appropriate tree nodes. 30217 (fold_builtin_1): Use fold_builtin_unordered_cmp to lower 30218 BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS, 30219 BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER. Manually lower 30220 BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node. 30221 (simplify_builtin_memcmp, simplify_builtin_strncmp, 30222 simplify_builtin_strncat, simplify_builtin_strspn): Use the new 30223 omit_two_operands function to build the required COMPOUND_EXPRs. 30224 302252004-06-12 Steven Bosscher <stevenb@suse.de>, 30226 Andreas Jaeger <aj@suse.de> 30227 30228 * gcse.c (record_set_info): Use predicates like REG_P. 30229 (mems_conflict_for_gcse_p): Likewise. 30230 (load_killed_in_block_p): Likewise. 30231 (hash_expr_1): Likewise. 30232 (insert_set_in_table): Likewise. 30233 (gcse_constant_p): Likewise. 30234 (hash_scan_set): Likewise. 30235 (hash_scan_insn): Likewise. 30236 (canon_list_insert): Likewise. 30237 (record_last_mem_set_info): Likewise. 30238 (record_last_set_info): Likewise. 30239 (compute_hash_table_work): Likewise. 30240 (mark_set): Likewise. 30241 (mark_clobber): Likewise. 30242 (mark_oprs_set): Likewise. 30243 (compute_transp): Likewise. 30244 (find_avail_set): Likewise. 30245 (cprop_insn): Likewise. 30246 (do_local_cprop): Likewise. 30247 (cprop): Likewise. 30248 (find_implicit_sets): Likewise. 30249 (find_bypass_set): Likewise. 30250 (bypass_conditional_jumps): Likewise. 30251 (insert_insn_end_bb): Likewise. 30252 (pre_insert_copy_insn): Likewise. 30253 (compute_transpout): Likewise. 30254 (next_ls_expr): Likewise. 30255 (invalidate_any_buried_refs): Likewise. 30256 (compute_ld_motion_mems): Likewise. 30257 (reg_set_info): Likewise. 30258 (reg_clear_last_set): Likewise. 30259 (find_moveable_store): Likewise. 30260 (compute_store_table): Likewise. 30261 (find_loads): Likewise. 30262 (store_killed_in_insn): Likewise. 30263 (insert_insn_start_bb): Likewise. 30264 (reg_set_between_after_reload_p): Likewise. 30265 (reg_used_between_after_reload_p): Likewise. 30266 (is_jump_table_basic_block): Likewise. 30267 (gcse_after_reload): Likewise. 30268 (hash_scan_set_after_reload): Likewise. 30269 (compute_hash_table_after_reload): Likewise. 30270 302712004-06-12 Steven Bosscher <stevenb@suse.de> 30272 30273 * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates. 30274 (INSN_P): Don't look at the rtx code class, just explicitly 30275 check for one of the tree RTX_INSN codes. 30276 302772004-06-11 Zack Weinberg <zack@codesourcery.com> 30278 30279 * c-typeck.c (default_function_array_conversion): Use 30280 build_pointer_type not TYPE_POINTER_TO. 30281 302822004-06-11 Zack Weinberg <zack@codesourcery.com> 30283 30284 * configure.ac: Don't invoke ACX_HEADER_STDBOOL. 30285 * configure, config.in: Regenerate. 30286 * system.h: Unconditionally define bool as unsigned char, 30287 BOOL_BITFIELD as unsigned int. 30288 * domwalk.h: Use BOOL_BITFIELD. 30289 302902004-06-12 Andreas Jaeger <aj@suse.de> 30291 30292 * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4. 30293 * libgcc-darwin.ver: Likewise. 30294 302952004-06-12 Peter Jakubek <peter@laseranimation.com> 30296 30297 * reload.c (find_reloads): Force reload for pseudo registers on big 30298 endian machines. 30299 303002004-06-11 Steven Bosscher <stevenb@suse.de> 30301 30302 * tree-ssa-dce.c (mark_control_dependent_edges_necessary): 30303 Don't try to mark anything control dependent on the entry or 30304 exit blocks. 30305 303062004-06-11 Daniel Berlin <dberlin@dberlin.org> 30307 30308 Fix Bug 15899 30309 Fix Bug 15460 30310 * tree.h (SSA_NAME_VALUE): New macro. 30311 (struct tree_ssa_name): Add value_handle member. 30312 * tree-ssa-pre.c: Replaced. 30313 * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN. 30314 (struct cst_ann_d): New. 30315 (struct expr_ann_d): New. 30316 (union tree_ann_d): Add cst_ann, expr_ann. 30317 * tree-dfa.c (create_cst_ann): New function. 30318 (create_expr_ann): Ditto. 30319 * tree-flow-inline.h (cst_ann): New function. 30320 (expr_ann): Ditto. 30321 (get_cst_ann): Ditto. 30322 (get_expr_ann): Ditto.. 30323 303242004-06-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 30325 30326 * pa.c (pa_hpux_init_libfunc): Add support for unord_optab. 30327 * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to 30328 _U_Qfcmp library function. 30329 (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq, 30330 _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions. 30331 30332 * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify 30333 unspec used for loading address from DLT. 30334 * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE. 30335 Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants. 30336 Don't use short code sequence when loading the address of a nonlocal 30337 label. 30338 (nonlocal_goto): New expander. 30339 (indirect_goto): New jump pattern for nonlocal gotos. 30340 (short_jump): Remove extra whitespace. 30341 (builtin_longjmp): Clobber memory and hard frame pointer. Restore 30342 frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto 30343 pattern. 30344 303452004-06-11 Roger Sayle <roger@eyesopen.com> 30346 30347 * expmed.c (synth_mult): Add an additional MODE argument for the 30348 machine mode of the multiplication. Update recursive calls. Use 30349 mode instead of word_mode for determining operation costs. 30350 (choose_mult_variant): Update calls to synth_mult with "mode". 30351 303522004-06-11 Richard Henderson <rth@redhat.com> 30353 30354 * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads 30355 and makes_aliased_stores. 30356 303572004-06-11 Andrew Pinski <pinskia@physics.uc.edu> 30358 30359 * doc/install.text (--enable-shared): Fix typo. 30360 303612004-06-11 Richard Henderson <rth@redhat.com> 30362 30363 * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p 30364 argument. Use internal post for call to gimplify_expr. Tidy 30365 rounded type size computation. 30366 (alpha_gimplify_va_arg): Use get_formal_tmp_var and 30367 get_initialized_tmp_var. 30368 303692004-06-11 Andrew Pinski <pinskia@physics.uc.edu> 30370 30371 * doc/install.texi (--enable-shared): Update libobjc's shared library 30372 status. Remove reference to libf2c. 30373 303742004-06-11 Jason Merrill <jason@redhat.com> 30375 30376 * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort. 30377 * config/i386/i386.c (ix86_va_arg): Remove. 30378 * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort. 30379 * config/rs6000/rs6000.c (rs6000_va_arg): Remove. 30380 * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort. 30381 * config/alpha/alpha.c (alpha_va_arg): Remove. 30382 * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort. 30383 * config/sparc/sparc.c (sparc_va_arg): Remove. 30384 30385 * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the 30386 assignment might throw. 30387 * tree-eh.c (tree_could_throw_p): Support non-call exceptions in 30388 expressions. 30389 303902004-06-11 J"orn Rennecke <joern.rennecke@superh.com> 30391 30392 PR 15886: 30393 * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx. 30394 303952004-06-11 Joseph S. Myers <jsm@polyomino.org.uk> 30396 30397 * doc/install.texi (Prerequisites): Update documentation of 30398 required versions of autoconf and automake. Remove mention of 30399 libf2c. 30400 304012004-06-11 Jason Merrill <jason@redhat.com> 30402 30403 * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn. 30404 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. 30405 304062004-06-11 Jerry Quinn <jlquinn@optonline.net> 30407 30408 * typeclass.h: Add GPL plus exception license. Add include 30409 guard. 30410 304112004-06-10 Jason Merrill <jason@redhat.com> 30412 30413 * gimplify.c (gimplify_modify_expr): Don't force a temporary 30414 of an aggregate_value_p type. 30415 304162004-06-10 Jeff Law <law@redhat.com> 30417 30418 * fold-const.c (fold_inf_compare): Avoid creating non-gimple 30419 code when we are in gimple form. 30420 304212004-06-10 Diego Novillo <dnovillo@redhat.com> 30422 30423 * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H. 30424 * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare. 30425 (highest_ssa_version): Remove. 30426 * tree-outof-ssa.c (new_temp_expr_table): Replace 30427 highest_ssa_version with num_ssa_names. 30428 (dump_replaceable_exprs): Likewise. 30429 (rewrite_vars_out_of_ssa): Likewise. 30430 * tree-ssa-ccp.c (initialize): Likewise 30431 * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. 30432 * tree-ssa-dce.c (tree_dce_init): Likewise. 30433 * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. 30434 * tree-ssa-live.c (create_ssa_var_map): Likewise. 30435 (dump_var_map): Likewise. 30436 * tree-ssa.c (verify_ssa): Likewise. 30437 (kill_redundant_phi_nodes): Likewise. 30438 Do not build a local array of SSA_NAMEs. Use the ssa_names table. 30439 * tree-ssanames.c: Include tree-flow.h 30440 (ssa_names): New varray. 30441 (init_ssa_names): Initialize ssa_names. 30442 Reserve the first slot of the ssa_names table. 30443 (make_ssa_name): Push the newly created SSA_NAME into ssa_names. 30444 Assign version numbers using num_ssa_names. 30445 304462004-06-10 Joseph S. Myers <jsm@polyomino.org.uk> 30447 30448 * doc/sourcebuild.texi (Front End): Add details of more 30449 installation documentation required. 30450 304512004-06-10 Brian Booth <bbooth@redhat.com> 30452 30453 * doc/tree-ssa.texi: Remove references to VDEF and add descriptions 30454 of V_MAY_DEF and V_MUST_DEF. 30455 * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename 30456 num_vdefs to num_v_may_defs. 30457 (compute_immediate_uses_for_stmt): Rename occurences of vdef 30458 to v_may_def. 30459 (redirect_immediate_uses): Ditto. 30460 (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs. 30461 (collect_dfa_stats_r): Rename occurences of vdef to v_may_def. 30462 Also add code to sum up the number of v_must_defs. 30463 (vdefs_disappeared_p): Replace with... 30464 (v_may_defs_disappeared_p): This. 30465 (v_must_defs_disappeared_p): New function. 30466 (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def. 30467 Also add code to mark new variables found in V_MUST_DEFs for 30468 renameing. 30469 * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace 30470 vdef_ops to v_may_def_ops. 30471 (get_vdef_ops): Replace with... 30472 (get_v_may_def_ops): This. 30473 * tree-flow-inline.h (get_vdef_ops): Replace with... 30474 (get_v_may_def_ops): This. 30475 (get_v_must_def_ops): New function. 30476 (get_vdef_result_ptr): Replace with... 30477 (get_v_may_def_result_ptr): This. 30478 (get_vdef_op_ptr): Ditto with... 30479 (get_v_may_def_op_ptr); This. 30480 (get_v_must_def_op_ptr): New function. 30481 * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef 30482 to v_may_def. Also add code to mark statements with 30483 V_MUST_DEFs as definition sites. 30484 (rewrite_stmt): Rename occurences of vdef to v_may_def. Also 30485 add code to register new V_MUST_DEFs made by the statement. 30486 * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments. 30487 (check_replaceable): Rename occurences of vdef to v_may_def. Also 30488 add check for V_MUST_DEFs. 30489 (find_replaceable_in_bb): Ditto. 30490 * tree-pretty-print.c (dump_vops): Rename occurences of vdef 30491 to v_may_def. Also add code to dump V_MUST_DEFs. 30492 * tree-sra.c (mark_all_vdefs): Replace with... 30493 (mark_all_v_may_defs): This. 30494 (mark_all_v_must_defs): New function. 30495 (create_scalar_copies): Replace call to mark_all_vdefs with 30496 calls to mark_all_v_may_defs and mark_all_v_must_defs. 30497 (scalarize_structures): Rename occurences of vdef to v_may_def. 30498 Also add a check for V_MUST_DEFs. 30499 (scalarize_modify_expr): Rename occurences of vdef to v_may_def. 30500 * tree-ssa-alias.c (global_var): Update comment. 30501 (compute_may_aliases): Ditto. 30502 (compute_points_to_and_addr_escape): Rename occurences of vdef 30503 to v_may_def. Also add code to mark variables in V_MUST_DEF 30504 operands as being written to. 30505 (group_aliases): Update comment. 30506 (maybe_create_global_var): Ditto. 30507 * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def. 30508 Also add a check for V_MUST_DEFs on GIMPLE registers. 30509 (replace_immediate_uses): Rename occurences of vdef to v_may_def. 30510 * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef 30511 to v_may_def. Also add code to mark all V_MUST_DEF operands 30512 VARYING. 30513 (initialize): Ditto. 30514 (set_rhs): Rename occurences of vdef to v_may_def. Also add 30515 code to update SSA_NAMEs in V_MUST_DEFs. 30516 * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef 30517 to v_may_def. 30518 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename 30519 occurences of vdef to v_may_def. Also add code to mark statements 30520 with V_MUST_DEFs as necessary. 30521 (propagate_necessity): Rename occurences of vdef to v_may_def. 30522 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename 30523 occurences of vdef to v_may_def. Also add code to mark operands 30524 in V_MUST_DEFs for renaming. 30525 (eliminate_redundant_computations): Rename occurences of vdef 30526 to v_may_def. 30527 (record_equivalences_from_stmt): Rename occurences of vdef 30528 to v_may_def. Also add code to record VUSEs for V_MUST_DEFs. 30529 (optimize_stmt): Remove unnesessary variable vdefs. Update 30530 comment. 30531 (register_definitions_for_stmt): Rename occurences of vdef 30532 to v_may_def. Also add code to register definitions made with 30533 V_MUST_DEFs. 30534 * tree-ssa-dse.c (fix_stmt_vdefs): Replace with... 30535 (fix_stmt_v_may_defs): This. 30536 (fix_phi_uses): Rename occurences of vdef to v_may_def. 30537 (dse_optimize_stmt): Ditto. 30538 * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef 30539 to v_may_def. Also add code to mark V_MUST_DEF operands as being 30540 used in virtual operators. 30541 * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of 30542 vdef to v_may_def. Also add code to mark V_MUST_DEF operands for 30543 renaming. 30544 * tree-ssa-operands.c (opf_kill_def): New flag for killing 30545 definitions. 30546 (build_vdefs): Renamed to... 30547 (build_v_may_defs): This. 30548 (build_v_must_defs): New variable. 30549 (voperands_d): Add v_must_def_ops and replace vdef_ops with 30550 v_may_def_ops. 30551 (append_vdef): Replace with... 30552 (append_v_may_def): This. 30553 (append_v_must_def): New function. 30554 (NUM_FREE): Increment for V_MUST_DEF 30555 (optype_freelist): Increment its size for V_MUST_DEF 30556 (allocate_vdef_optype): Replace with... 30557 (allocate_v_may_def_optype): This. 30558 (allocate_v_must_def_optype): New function. 30559 (free_vdefs): Replace with... 30560 (free_v_may_defs): This. 30561 (free_v_must_defs): New function. 30562 (remove_vdefs): Replace with... 30563 (remove_v_may_defs): This. 30564 (remove_v_must_defs): New function. 30565 (init_ssa_operands): Rename occurences of vdef to v_may_def. Also 30566 add code to initialize build_v_must_defs. 30567 (finalize_ssa_vdefs): Replace with... 30568 (finalize_ssa_v_may_defs): This. 30569 (finalize_ssa_vuses): Rename occurences of vdef to v_may_def. 30570 (finalize_ssa_v_must_defs): New function. 30571 (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs 30572 with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs. 30573 (verify_start_operands): Rename occurences of vdef to v_may_def. 30574 Also add check for build_v_must_defs. 30575 (get_stmt_operands): Rename occurences of vdef to v_may_def. 30576 Also add code to handle V_MUST_DEFs and to use opf_kill_def for 30577 killing definitions. 30578 (get_expr_operands): Update comment and use opf_kill_def for 30579 killing definitions. 30580 (add_stmt_operand): Replace code that appends VDEFs with code 30581 that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs 30582 otherwise. 30583 (add_call_clobber_ops): Update comments. 30584 * tree-ssa-operands.h (vdef_optype_d): Replace with... 30585 (v_may_def_optype_d): This. 30586 (v_must_def_optype_d): New structure. 30587 (VDEF_OPS): Replace with... 30588 (V_MAY_DEF_OPS): This. 30589 (STMT_VDEF_OPS): Same with... 30590 (STMT_V_MAY_DEF_OPS): This. 30591 (NUM_VDEFS): And... 30592 (NUM_V_MAY_DEFS): This. 30593 (VDEF_RESULT_PTR): As well as... 30594 (V_MAY_DEF_RESULT_PTR): This. 30595 (VDEF_RESULT): Same goes for... 30596 (V_MAY_DEF_RESULT): This. 30597 (VDEF_OP_PTR): And... 30598 (V_MAY_DEF_OP_PTR): This. 30599 (VDEF_OP): And... 30600 (V_MAY_DEF_OP): This. 30601 (V_MUST_DEF_OPS): New macro. 30602 (STMT_V_MUST_DEF_OPS): Ditto. 30603 (NUM_V_MUST_DEFS): Ditto. 30604 (V_MUST_DEF_OP_PTR): Ditto. 30605 (V_MUST_DEF_OP): Ditto. 30606 (remove_vdefs): Replace signature with... 30607 (remove_v_may_defs): This. 30608 (remove_v_must_defs): New function signature. 30609 * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs 30610 with calls to remove_v_may_defs and remove_v_must_defs. 30611 (process_left_occs_and_kills): Rename occurences of vdef to v_may_def. 30612 Also add code that marks left occurences of operands in V_MUST_DEFs. 30613 * tree-tailcall.c (find_tail_calls): Rename occurences of vdef 30614 to v_may_def. Also add check for V_MUST_DEFs. 30615 (eliminate_tail_call):Rename occurences of vdef to v_may_def. 30616 306172004-06-10 Vladimir Makarov <vmakarov@redhat.com> 30618 30619 PR target/15653 30620 * haifa-sched.c (schedule_block): Finish cycle after issuing asm 30621 insn. 30622 306232004-06-10 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 30624 30625 PR web/15263 30626 * doc/install.texi: Remove superfluous linebreak. 30627 306282004-06-10 Roger Sayle <roger@eyesopen.com> 30629 30630 * builtins.c (expand_builtin): Fall back to library function call for 30631 conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl. 30632 (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR, 30633 BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to 30634 IMAGPART_EXPR respectively. 30635 306362004-06-10 J"orn Rennecke <joern.rennecke@superh.com> 30637 30638 * sh.c (dump_table): New argument start. Changed caller. 30639 (fixup_mova): New function. 30640 (find_barrier): Use it. 30641 (sh_reorg): Likewise. Check for CODE_FOR_casesi_worker_2. 30642 If the label a mova refers to is above the mova itself, change 30643 the mova into a load. 30644 * sh.md (*casesi_worker): Rename to: 30645 (casesi_worker_1). 30646 (casesi_worker_2): New insn. 30647 306482004-06-10 Jason Merrill <jason@redhat.com> 30649 30650 * target.h (struct gcc_target): Change gimplify_va_arg_expr 30651 hook signature. 30652 * tree-gimple.h: Adjust. 30653 * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust. 30654 * config/i386/i386.c (ix86_gimplify_va_arg): Adjust. 30655 Use fold_convert. 30656 * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust. 30657 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust. 30658 Use COMPLEX_EXPR for complex numbers. Use fold_convert. 30659 * builtins.c (std_gimplify_va_arg_expr): Adjust. Use fold_convert. 30660 (gimplify_va_arg_expr): Return GS_ERROR in error case. 30661 Gimplify valist rather than calling stabilize_va_list. 30662 306632004-06-10 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 30664 30665 * Makefile.in (df.o): Remove fibheap dependency. 30666 * df.h: Do not include sbitmap.h. 30667 (struct ref): New field "data". 30668 (DF_REF_DATA): New accessor macro. 30669 (struct df): Field "dom" removed. 30670 (df_analyze_subcfg): New function. 30671 (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ... 30672 (transfer_function): ... new type. 30673 (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ... 30674 (iterative_dataflow): ... new function. 30675 (enum set_representation, struct dataflow): New. 30676 * df.c: Do not include fibheap.h. 30677 30678 (df_reg_def_chain_clean, df_reg_use_chain_clean, 30679 (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain, 30680 prune_to_subcfg, df_bb_modify): New functions. 30681 (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create, 30682 df_refs_update, df_reg_table_realloc, df_ref_create, 30683 df_bb_reg_def_chain_create, df_bb_reg_use_chain_create, 30684 df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute, 30685 df_analyse_1, df_insn_modify): Support analysing only a part of the cfg. 30686 30687 (dataflow_set_a_op_b, dataflow_set_copy): New functions. 30688 (df_rd_transfer_function, df_ru_transfer_function, 30689 df_lr_transfer_function): Type of bitmaps changed to void *. 30690 (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ... 30691 (hybrid_search): ... new function. 30692 (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ... 30693 (iterative_dataflow): ... new function. Avoid use of fibheaps for 30694 a worklist. Do not process basic blocks unnecessarily. 30695 306962004-06-10 Roger Sayle <roger@eyesopen.com> 30697 30698 * fold-const.c (fold_abs_const): Make extern. 30699 * tree.h (fold_abs_const): Prototype here. 30700 * builtins.c (fold_builtin_fabs): New function to transform 30701 fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes. 30702 (fold_builtin_abs): New function to transform abs, labs, llabs 30703 and imaxabs builtins into ABS_EXPR tree nodes. 30704 (expand_builtin): Fall back to a function call for abs, labs, 30705 llabs and imaxabs builtins that survive constant folding. 30706 (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and 30707 FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS. 30708 307092004-06-10 Jakub Jelinek <jakub@redhat.com> 30710 30711 * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a 30712 leaf function without unwind info at RP 0. 30713 307142004-06-10 Jakub Jelinek <jakub@redhat.com> 30715 30716 PR c++/14791 30717 * tree.h (enum tree_index): Add TI_FILEPTR_TYPE. 30718 (fileptr_type_node): Define. 30719 * tree.c (build_common_tree_nodes_2): Initialize 30720 fileptr_type_node to ptr_type_node. 30721 * c-common.c (c_common_nodes_and_builtins): For C++, make 30722 fileptr_type_node a distinct type copy. 30723 * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR, 30724 BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG, 30725 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR, 30726 BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add. 30727 (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR, 30728 BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR, 30729 BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove. 30730 * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED, 30731 BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS, 30732 BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE, 30733 BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use 30734 the above *FILEPTR* types instead of *PTR*. 30735 307362004-06-09 Daniel Berlin <dberlin@dberlin.org> 30737 30738 * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores 30739 match. 30740 307412004-06-09 Roger Sayle <roger@eyesopen.com> 30742 30743 * fold-const.c (fold_not_const): New function. 30744 (fold) <ABS_EXPR>: Don't bother testing wins. 30745 (fold) <BIT_NOT_EXPR>: Call fold_not_const. 30746 (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise. 30747 307482004-06-09 Richard Henderson <rth@redhat.com> 30749 30750 PR middle-end/15228 30751 * function.c (assign_parms): Always set_mem_align with the computed 30752 FUNCTION_ARG_BOUNDARY. Don't clear stack_parm if !STRICT_ALIGNMENT. 30753 307542004-06-09 Richard Henderson <rth@redhat.com> 30755 30756 PR opt/15108 30757 * tree-tailcall.c (find_tail_calls): Don't check early for 30758 tail_recursion failure. 30759 307602004-06-09 Diego Novillo <dnovillo@redhat.com> 30761 30762 Move SSA_NAME annotations into tree_ssa_name. 30763 30764 * tree-dfa.c (create_ssa_name_ann): Remove. 30765 * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove. 30766 * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN. 30767 (struct ssa_name_ann_d): Remove. 30768 (union tree_ann_d): Update. 30769 (ssa_name_ann_t): Remove. 30770 * tree-ssa-alias.c: (get_ptr_info): New local function. 30771 Replace references to ssa_name_ann_t with struct ptr_info_def. 30772 * tree-ssa-operands.c (get_expr_operands): Likewise. 30773 * tree.h (SSA_NAME_PTR_INFO): Define. 30774 (struct ptr_info_def): Declare. 30775 (struct tree_ssa_name): Add field 'ptr_info'. 30776 307772004-06-09 Danny Smith <dannysmith@users.sourceforge.net> 30778 30779 * config/i386/winnt.c (i386_pe_output_labelref): Correct 30780 misplaced ')'. 30781 307822004-06-09 Steven Bosscher <stevenb@suse.de> 30783 30784 * config/i386/k6.md: Rewrite using the DFA model. 30785 * config/i386/i386.c (ix86_adjust_cost): Don't increase the 30786 cost of load-operation insns for the K6. 30787 (ia32_use_dfa_pipeline_interface): Add TARGET_K6. 30788 (ia32_multipass_dfa_lookahead): Likewise. 30789 307902004-06-09 Richard Henderson <rth@redhat.com> 30791 30792 * config/alpha/alpha.c (alpha_gimplify_va_arg_1, 30793 alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New. 30794 307952004-06-09 Richard Henderson <rth@redhat.com> 30796 30797 * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE. 30798 307992004-06-09 Geoffrey Keating <geoffk@apple.com> 30800 30801 * Makefile.in (CPPLIB_H): Put files in order of inclusion. 30802 (CPP_ID_DATA_H): New. 30803 (gtype-desc.o): Update dependencies. 30804 (GTFILES): Use CPP_ID_DATA_H. 30805 308062004-06-09 Mark Mitchell <mark@codesourcery.com> 30807 30808 Revert: 30809 PR c++/15815 30810 2004-06-07 Mark Mitchell <mark@codesourcery.com> 30811 * doc/extend.texi: Deprecate #pragma interface and #pragma 30812 implementation. 30813 308142004-06-09 David S. Miller <davem@nuts.davemloft.net> 30815 30816 * config/sparc/sparc.h (MOVE_RATIO): New definition. 30817 308182004-06-09 Richard Henderson <rth@redhat.com> 30819 30820 * basic-block.h (struct edge_def): Add goto_locus. 30821 * tree-cfg.c (make_goto_expr_edges): Set it. 30822 (disband_implicit_edges): Use it. 30823 * tree-pretty-print.c (dump_implicit_edges): Print it. 30824 308252004-06-08 Anil Paranjpe <anilp1@kpitcummins.com> 30826 30827 * h8300.md (ldm_h8300s_4): Fix condition for expander. 30828 308292004-06-08 Jason Merrill <jason@redhat.com> 30830 30831 Gimplify VA_ARG_EXPR into simpler forms. 30832 * target.h: Add gimplify_va_arg_expr hook. 30833 * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR. 30834 * fold-const.c (build_fold_addr_expr) 30835 (build_fold_addr_expr_with_type): Move from gimplify.c. 30836 * tree.h: Declare them. 30837 * gimplify.c (gimplify_and_add): New fn. 30838 (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c. 30839 (gimplify_array_ref_to_plus, gimplify_modify_expr) 30840 (gimplify_expr): Use build_fold_*. 30841 (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we 30842 don't know how to gimplify it. 30843 * builtins.c (std_gimplify_va_arg_expr): New fn. 30844 (dummy_object): New static fn. 30845 (gimplify_va_arg_expr): New fn. 30846 (stabilize_va_list): Use build_fold_*. 30847 * tree-gimple.h: Declare new fns. 30848 * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. 30849 (ix86_gimplify_va_arg): New fn. 30850 * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. 30851 (ia64_gimplify_va_arg): New fn. 30852 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn. 30853 (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. 30854 * alias.c (get_varargs_alias_set): Just return 0 for now. 30855 30856 * c-objc-common.c (c_tree_printer): Improve handling of %T. 30857 308582004-06-09 Andrew Pinski <pinskia@physics.uc.edu> 30859 30860 * tree-complex.c (expand_complex_comparison): Use fold_convert instead 30861 of convert. 30862 * tree-inline.c (setup_one_parameter): Likewise. 30863 * tree-sra.c (csc_build_component_ref): Likewise. 30864 * tree-ssa-ccp.c (ccp_fold): Likewise. 30865 * tree-ssa-copy.c (cprop_operand): Likewise. 30866 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. 30867 * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. 30868 308692004-06-09 J"orn Rennecke <joern.rennecke@superh.com> 30870 30871 PR rtl-optimization/15521: 30872 * sched-int.h (in_post_call_group_p): Change type to enum. 30873 * sched-deps.c (sched_analyze_insn): 30874 (sched_analyze): When in_post_call_group_p is post_call_initial, 30875 don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE, 30876 and also reset in_post_call_group_p to post_call. 30877 (sched_analyze): When the previous basic block ended in a CALL_INSN, 30878 initialize in_post_call_group_p as post_call_initial. 30879 (init_deps): initialize in_post_call_group_p to not_post_call. 30880 308812004-06-09 Arnaud Charlet <charlet@act-europe.fr> 30882 30883 PR ada/6637 30884 * doc/install.texi: List ada, libada as options to --enable-shared 30885 308862004-06-09 Paolo Bonzini <bonzini@gnu.org> 30887 30888 * aclocal.m4 (gcc_AC_PROG_LN): Remove. 30889 (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate 30890 config.in entries. 30891 * configure.ac: Call ACX_PROG_LN, falling back to $LN_S 30892 if hard links are not available. 30893 * configure: Regenerate. 30894 * config.in: Regenerate. 30895 308962004-06-08 Per Bothner <per@bothner.com> 30897 30898 * configure.ac: New --enable-mapped-location sets USE_MAPPED_LOCATION. 30899 309002004-06-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 30901 30902 * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts. 30903 Correct formatting. 30904 309052004-06-08 James E Wilson <wilson@specifixinc.com> 30906 30907 PR target/15790 30908 * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define. 30909 309102004-06-08 Andrew Pinski <pinskia@physics.uc.edu> 30911 30912 * fold-const.c (fold_convert): Treat OFFSET_TYPE like 30913 POINTER_TYPE and INTEGER_TYPE. 30914 309152004-06-08 Bernardo Innocenti <bernie@develer.com> 30916 30917 * modulo-sched.c: Compile only when INSN_SCHEDULING is 30918 defined. 30919 309202004-06-08 Jeff Law <law@redhat.com> 30921 30922 * doc/contrib.texi: Add entries for Stefan Olsson and 30923 Ola Ronnerup. 30924 309252004-06-08 DJ Delorie <dj@redhat.com> 30926 30927 * toplev.c (floor_log2_wide): Replace loop with faster bit 30928 operations. 30929 (exact_log2_wide): Define in terms of the above. 30930 * toplev.h (floor_log2): Use _builtin_clz family of builtins if 30931 available. 30932 309332004-06-08 Andrew Pinski <pinskia@physics.uc.edu> 30934 30935 * config/rs6000/rs6000.c (print_operand, <case 'z'>): 30936 Make sure that we are in INDIRECT mode when getting the 30937 stub name. 30938 309392004-06-08 Anil Paranjpe <anilp1@kpitcummins.com> 30940 30941 * h8300.md (extendqisi2_h8300): Add constraints. 30942 (ldm_h8300s_4_normal): Fix typo. 30943 309442004-06-08 Richard Henderson <rth@redhat.com> 30945 30946 * gimple-low.c (struct lower_data): Replace the_return_label and 30947 one_return_stmt with return_statements. 30948 (lower_function_body): Process the entire list of return_statements. 30949 (lower_return_expr): Check source value before unifying return_exprs. 30950 * gimplify.c (gimplify_return_expr): Force the use of a temporary 30951 for !aggregate_value_p. 30952 * tree-gimple.c: Update RETURN_EXPR grammer. 30953 309542004-06-08 Vladimir Makarov <vmakarov@redhat.com> 30955 30956 PR target/15598 30957 * config/ia64/ia64.c (bundling): Add missed TYPE_A. 30958 309592004-06-08 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 30960 30961 PR rtl-optimization/15717 30962 * config/i386/i386.c (legitimate_constant_p): Do not allow 30963 x - symbol_ref. 30964 309652004-06-08 Alexandre Oliva <aoliva@redhat.com> 30966 30967 * gimplify.c (copy_if_shared_r): Revert: 30968 2004-05-21 Richard Henderson <rth@redhat.com> 30969 * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here. 30970 309712004-06-07 Roger Sayle <roger@eyesopen.com> 30972 30973 * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap): 30974 Make arrays indexed by machine mode. Rename negate_cost to neg_cost. 30975 (init_expmed): Initialize these cost arrays as appropriate. 30976 (store_bit_field, extract_bit_field): Correct whitespace. 30977 (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart, 30978 expand_mult_highpart_optab, expand_divmod): Update uses of add_cost, 30979 neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode, 30980 word_mode or compute_mode as appropriate. 30981 309822004-06-07 Eric Botcazou <ebotcazou@libertysurf.fr> 30983 30984 PR target/15783 30985 * config/sparc/sparc.c (function_arg_union_value): Add 'mode' 30986 parameter. Enumerate the registers inside the PARALLEL. 30987 (function_arg): Adjust call to function_arg_union_value. 30988 (function_value): Likewise. 30989 30990 * config/sparc/sparc.c (sparc_function_epilogue): Properly format. 30991 309922004-06-07 Roger Sayle <roger@eyesopen.com> 30993 30994 * real.c (real_copysign): New function to implement libm's copysign. 30995 * real.h (real_copysign): Prototype here. 30996 * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf 30997 and sqrtl can be negative, as sqrt(-0.0) = -0.0. Correct whitespace. 30998 * builtins.c (fold_builtin_isascii, fold_builtin_toascii, 30999 fold_builtin_isdigit): Add function prototypes. 31000 (fold_builtin_copysign): New function to fold copysign, copysignf 31001 and copysignl. Optimize copysign(x,x) as x. Evaluate copysign of 31002 constant arguments at compile-time using real_copysign. Fold 31003 copysign(X,Y) as fabs(X) if Y is always non-negative. 31004 (fold_builtin_1): Correct minor whitespace/style issues. Call 31005 fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}. 31006 310072004-06-07 J"orn Rennecke <joern.rennecke@superh.com> 31008 31009 * tree.c (iterative_hash_expr): Use real_hash. 31010 310112004-06-07 Joseph S. Myers <jsm@polyomino.org.uk> 31012 31013 PR c/14765 31014 * c-parse.in (compstmt_primary_start): Set last_expr_type to 31015 NULL_TREE. 31016 310172004-06-07 Mark Mitchell <mark@codesourcery.com> 31018 31019 PR c++/15815 31020 * doc/extend.texi: Deprecate #pragma interface and #pragma 31021 implementation. 31022 310232004-06-07 Alexandre Oliva <aoliva@redhat.com> 31024 31025 PR middle-end/15666 31026 * c-decl.c (finish_decl): Use change_decl_assembler_name for the 31027 builtin decl as well. 31028 310292004-06-07 Roger Sayle <roger@eyesopen.com> 31030 31031 PR c/14649 31032 * c-typeck.c (require_constant_value, require_constant_elements): 31033 Move declarations to the top of the file. 31034 (build_function_call): If we require a constant value, fold with 31035 fold_initializer. If the result is a constant, and the function 31036 wasn't called using __builtin_foo, issue a pedantic warning. 31037 (build_unary_op): If we require a constant value, fold tree with 31038 fold_initializer. 31039 (build_binary_op): Use require_constant_value to determine whether 31040 to call fold or fold_initializer. 31041 310422004-06-07 Richard Henderson <rth@redhat.com> 31043 31044 * gimple-low.c (struct lower_data): Add the_return_label and 31045 one_return_stmt. 31046 (lower_function_body): Initialize and use them. 31047 (lower_return_expr): New. 31048 (lower_stmt): Call it. 31049 * gimplify.c (gimplify_return_expr): Force the argument to be either 31050 null or a result_decl. 31051 * tree-gimple.c: Update gimple grammer to match. 31052 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny 31053 coalescing of result_decls. 31054 310552004-06-07 Richard Henderson <rth@redhat.com> 31056 31057 PR rtl-opt/15193 31058 * expmed.c (extract_bit_field): Fix vector_extract return. 31059 31060 * config/i386/i386.md (negv4sf2): New pattern. 31061 310622004-06-07 Mark Mitchell <mark@codesourcery.com> 31063 31064 PR c++/15337 31065 * c-common.c (c_sizeof_or_alignof_type): Use more detailed error 31066 message. 31067 310682004-06-06 Paolo Bonzini <bonzini@gnu.org> 31069 31070 * config.in: Regenerate. 31071 310722004-06-06 Steven Bosscher <stevenb@suse.de> 31073 31074 * tree-cfg.c (tree_verify_flow_info): Make sure that labels in 31075 SWITCH_LABELS are always sorted. 31076 310772004-06-06 Steven Bosscher <stevenb@suse.de> 31078 31079 * hooks.c (hook_int_void_1): New generic hook. 31080 * hooks.h (hook_int_void_1): Add prototype. 31081 * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): 31082 Define to hook_int_void_1. 31083 * config/c4x/c4x.md: Replace dummies for the old pipeline model 31084 with dummies for the new one. 31085 310862004-06-06 Roger Sayle <roger@eyesopen.com> 31087 31088 * tree.h (lvalue_or_else): Delete function prototype. 31089 * c-typeck.c (lvalue_or_else): Make static. Add static prototype. 31090 310912004-06-06 Stephane Carrez <stcarrez@nerim.fr> 31092 31093 PR target/14542 31094 * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid 31095 a live change of a register after peephole replacement. 31096 310972004-06-06 Joseph S. Myers <jsm@polyomino.org.uk> 31098 31099 PR c/13519 31100 * c-typeck.c (composite_type, common_pointer_type): New functions. 31101 (common_type): Split parts into composite_type and 31102 common_pointer_type. Ensure that arithmetic operations return 31103 unqualified types without attributes. Don't make composite type 31104 of signed enum and compatible integer be unsigned. 31105 (build_conditional_expr, build_binary_op): Use 31106 common_pointer_type. 31107 * c-decl.c (merge_decls): Use composite_type. 31108 * c-tree.h (composite_type): Declare. 31109 311102004-06-06 Stephane Carrez <stcarrez@nerim.fr> 31111 31112 PR target/14457 31113 * config/m68hc11/m68hc11.c (splitable_operand): New predicate. 31114 * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare. 31115 * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it. 31116 (inhibit_libc): Must define. 31117 * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand. 31118 ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise. 31119 ("xorhi3"): Likewise. 31120 311212004-06-06 Eric Botcazou <ebotcazou@libertysurf.fr> 31122 31123 * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in 31124 always_inline pass. 31125 311262004-06-05 David S. Miller <davem@nuts.davemloft.net> 31127 31128 * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set. 31129 * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise. 31130 311312004-06-05 Bernardo Innocenti <bernie@develer.com> 31132 31133 * regclass.c (init_reg_sets): Check for missing registers in target 31134 initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS. 31135 311362004-06-05 Zack Weinberg <zack@codesourcery.com> 31137 31138 * Makefile.in (MKDEPS_H): New shorthand. 31139 (c-opts.o): Update dependencies. 31140 * c-opts.c: Include mkdeps.h. 31141 (handle_deferred_opts): Use cpp_get_deps and deps_add_target, 31142 not cpp_add_dependency_target. 31143 311442004-06-05 Steven Bosscher <stevenb@suse.de> 31145 31146 * config/v850/v850.c (v850_use_dfa_pipeline_interface): New. 31147 * config/v850/v850.md: Convert to DFA scheduler description. 31148 311492004-06-05 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de> 31150 31151 PR fortran/15478 31152 * doc/install.texi: Document GMP as prerequisite. Document 31153 --with-gmp and --with-gmp-dir configure options. 31154 * fortran/gfortran.texi: Remove section "Compiling and testing", 31155 remove TOC reference to it. 31156 311572004-06-05 Graham Stott <graham.stott@btinternet.com> 31158 31159 * combine.c(simplify_shift_const): Check shift amount is a 31160 CONST_INT. 31161 311622004-06-05 Danny Smith <dannysmith@users.sourceforge.net> 31163 31164 * toplev.c (init_asm_output): Add explicit 'b' to mode when 31165 opening asm_out_file. 31166 * c-pch.c (c_common_write_pch): Remove unnecessary fflush before 31167 reading asm_out_file. Replace fflush after reading asm_out_file 31168 with fseek. 31169 * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define 31170 default and add to HOST_HOOKS_INITIALIZER. 31171 * hosthooks.h (gt_pch_alloc_granularity): Declare hook function. 31172 * ggc-common.c (default_gt_pch_alloc_granularity): New function. 31173 (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity 31174 to set mmi.offset padding. 31175 * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to 31176 $(srcdir)/config/i386/winnt.c. 31177 (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise. 31178 (i[34567]86-*-uwin*): Likewise. 31179 *i[34567]86-*-interix3*): Likewise. 31180 * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj. 31181 * config/i386/host-mingw32.c: New file. 31182 * config/i386/x-mingw32: Add rule for host-mingw32.o. 31183 * config/i386/winnt.c: (struct extern_list) Tag as GTY. 31184 (extern_head): Likewise. 31185 (struct export_list) Likewise. 31186 (export_head): Likewise. 31187 (i386_pe_record_external_function): Use ggc_alloc. 31188 (i386_pe_record_exported_symbol): Likewise. 31189 Include "gt-winnt.h" at end. 31190 * doc/hostconfig.texi: Document 31191 HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY. 31192 311932004-06-04 Bernardo Innocenti <bernie@develer.com> 31194 31195 * config/m68k/m68k.h: Remove comments copied over from tm.texi. 31196 Rename 68000 and 68k to m68k for consistency in comments. Remove 31197 trailing whitespace before EOLs and before TABs. 31198 (MAX_CODE_ALIGN): Remove unused macro. 31199 (CALL_USED_REGISTERS): Reformat and add comments. 31200 312012004-06-04 Frank Ch. Eigler <fche@redhat.com> 31202 31203 * gcc.c (MFLIB_SPEC): Remove library references, to require users 31204 to enumerate -lmudflap* and dependencies when linking. 31205 312062004-06-04 Paolo Bonzini <bonzini@gnu.org> 31207 31208 PR target/15822 31209 * dojump.c (do_jump): Fix uninitialized variable tcode1. 31210 312112004-06-04 Jerry Quinn <jlquinn@optonline.net> 31212 31213 * Makefile.in (insn-conditions.o): Back out removal of reload.h. 31214 * genconditions.c (write_header): Back out removal of reload.h. 31215 312162004-06-04 Jan Hubicka <jh@suse.cz> 31217 31218 Re-apply hopefully fixed patch: 31219 * i386.md (UNSPECV_EH_RETURN): Kill. 31220 (eh_return): Use jump_insn. 31221 (eh_return_si, eh_return_di): Change pattern to jump instruction. 31222 312232004-06-04 Jeff Law <law@redhat.com> 31224 31225 * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value. 31226 312272004-06-04 Steven Bosscher <stevenb@suse.de> 31228 31229 * except.c (for_each_eh_region): New function. 31230 * except.h (for_each_eh_region): Add a prototype for it. 31231 * tree-cfg.c (update_eh_labels): New function, callback for 31232 for_each_eh_region. 31233 (label_for_bb): Make global static, unfortunately. 31234 (cleanup_dead_labels): Also update label references for 31235 exception regions. 31236 312372004-06-03 Chris Demetriou <cgd@broadcom.com> 31238 31239 * config/mips/mips.c (struct irix_section_align_entry): Fix 31240 GTY marker. 31241 312422004-06-03 Geoffrey Keating <geoffk@apple.com> 31243 31244 * toplev.c (check_global_declarations): Don't ask for 31245 DECL_ASSEMBLER_NAME unless the function really is declared 31246 static and not defined. 31247 312482004-06-03 Matt Austern <austern@apple.com> 31249 31250 PR c++/15428 31251 * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name 31252 for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense. 31253 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise. 31254 * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite 31255 documentation to reflect the new macro name and to clarify its 31256 meaning. 31257 312582004-06-03 Steven Bosscher <stevenb@suse.de> 31259 31260 * rtl.def (VAR_LOCATION): Make RTX_EXTRA. 31261 312622004-06-03 Andrew Pinski <pinskia@physics.uc.edu> 31263 31264 * config/darwin.c (machopic_indirect_data_reference): Copy 31265 the SYMBOL_REF_DECL from the original RTX for the new 31266 non-lazy pointer RTX. 31267 312682004-06-03 Mark G. Adams <mark.g.adams@sympatico.ca> 31269 31270 * tree.h: Remove include of version.h 31271 * c-cppbuiltin.c: Include version.h 31272 * diagnostic.c: Include version.h 31273 * dwarf2out.c: Include version.h 31274 * toplev.c: Include version.h 31275 * vmsdbgout.c: Include version.h 31276 * Makefile.in: Remove dependency on version.h from TREE_H, and 31277 add dependencies to required .o targets 31278 312792004-06-03 Jerry Quinn <jlquinn@optonline.net> 31280 31281 * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H, 31282 CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New. 31283 (TARGET_H): Add insn-modes.h. 31284 (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o, 31285 loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o, 31286 loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o, 31287 loop-unroll.o, ddg.o, modulo-sched.o, predict.o, 31288 cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H. 31289 (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o, 31290 loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o, 31291 bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with 31292 CFGLAYOUT_H. 31293 (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o): 31294 Replace ra.h with RA_H. 31295 (resource.o, regrename.o, insn-conditions.o, insn-emit.o, 31296 insn-recog.o): Replace resource.h with RESOURCE_H. 31297 (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o, 31298 sched-ebb.o, sched-vis.o, out_object_file): Replace sched-int.h 31299 with SCHED_INT_H. 31300 (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o, 31301 ra-rewrite.o): Replace df.h with DF_H. 31302 (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H. 31303 (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o): 31304 Replace tree-ssa-live.h with TREE_SSA_LIVE_H. 31305 (insn-conditions.o): Remove unused reload.h. 31306 * cfglayout.h: Add include guard. Include basic-block.h. 31307 * cfgloop.h: Add include guard. Include basic-block.h, rtl.h. 31308 * ddg.h: Include sbitmap.h, basic-block.h, df.h. 31309 * df.h: Add include guard. Include bitmap.h, sbitmap.h, 31310 basic-block.h. 31311 * genconditions.c: Remove reload.h. 31312 * ra.h: Add include guard. Include bitmap.h, sbitmap.h, 31313 hard-reg-set.h, insn-modes.h. 31314 * resource.h: Add include guard. Include hard-reg-set.h. 31315 * sched-int.h: Add include guard. Include insn-attr.h, 31316 basic-block.h, rtl.h. 31317 * target.h: Add include guard. Include insn-modes.h. 31318 * tree-ssa-live.h: Include partition.h. 31319 313202004-06-03 Daniel Berlin <dberlin@dberlin.org> 31321 Kenneth Zadeck <zadeck@naturalbridge.com> 31322 31323 * tree-ssa-ccp.c (varying_ssa_edges): New worklist. 31324 (add_var_to_ssa_edges_worklist): Add value argument. 31325 Update callers. 31326 Use new worklist. 31327 (process_ssa_edge_worklist): New function. 31328 (tree_ssa_ccp): Move worklist processing core to 31329 process_ssa_edge_worklist, and just call that for the two worklists. 31330 313312004-06-03 Steven Bosscher <stevenb@suse.de> 31332 31333 * basic-block.c (tail_recursion_label_list): Don't declare. 31334 (CLEANUP_PRE_SIBCALL): Remove. Renumber the other CLEANUP_* 31335 accordingly. 31336 * cfgbuild.c (find_label_refs): Remove. 31337 (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns. 31338 * cfgcleanup.c (tail_recursion_label_p): Remove. 31339 (merge_blocks_move): Do not check for tail recursion. 31340 (try_optimize_cfg): Likewise. 31341 (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL. 31342 * cfgrtl.c (tail_recursion_label_list): Remove. 31343 * except.c (remove_unreachable_regions): Don't handle 31344 CALL_PLACEHOLDER insns. 31345 (convert_from_eh_region_ranges_1, can_throw_internal, 31346 can_throw_external): Likewise. 31347 * function.c (free_after_compilation): Don't clear 31348 x_tail_recursion_label. 31349 (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns. 31350 (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns. 31351 (reorder_blocks_1): Likewise. 31352 * function.h (struct function): Remove x_tail_recursion_label 31353 member. Don't define tail_recursion_label. 31354 * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns. 31355 * print-rtl.c (print_rtx): Likewise. 31356 * rtl.def (CALL_PLACEHOLDER): Remove. 31357 * rtl.h (sibcall_use_t): Remove enum. 31358 (optimize_sibling_and_tail_recursive_calls, 31359 replace_call_placeholder): Remove function prototypes. 31360 * stmt.c (tail_recursion_args): Remove. 31361 (optimize_tail_recursion): Remove. 31362 (expand_return): Don't check for possible tail recursion. 31363 * tree.h (optimize_tail_recursion): Remove prototype. 31364 313652004-06-02 Jan Hubicka <jh@suse.cz> 31366 31367 * tree-cfg.c (tree_find_edge_insert_loc): Allow inserting before 31368 return_stmt. 31369 313702004-06-02 Jason Merrill <jason@redhat.com> 31371 31372 * Makefile.in (TAGS): Don't mess with c-parse.[ch]. 31373 Do include c-parse.in. 31374 313752004-06-02 Eric Christopher <echristo@redhat.com> 31376 31377 * c-typeck.c (common_type): Don't lose type qualifiers 31378 when creating new variants. 31379 313802004-06-02 Andrew Pinski <pinskia@physics.uc.edu> 31381 31382 PR tree-optimization/14042 31383 PR tree-optimization/14729 31384 PR tree-optimization/14736 31385 * tree-ssa.c (tree_ssa_useless_type_conversion_1): 31386 Check the type which the pointer points to 31387 instead of the pointer types. 31388 313892004-06-02 Kazu Hirata <kazu@cs.umass.edu> 31390 31391 PR tree-optimization/15738. 31392 * builtins.c (fold_builtin_strchr): Transform 31393 strrchr (s, '\0') to strchr (s, '\0'). 31394 313952004-06-02 Steven Bosscher <stevenb@suse.de> 31396 31397 * i386.c (ix86_adjust_cost): Don't increase the cost for 31398 load+operation for PROCESSOR_PENTIUMPRO, it is already 31399 modelled in the DFA description 31400 314012004-06-01 Jerry Quinn <jlquinn@optonline.net> 31402 31403 * Makefile.in (EXPR_H): Add insn-config.h, function.h, 31404 $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H). 31405 (ALIAS_H, EMIT_RTL_H): New. 31406 (cselib.o): Replace EXPR_H with EMIT_RTL_H. 31407 (cfgcleanup.o): Add EMIT_RTL_H. 31408 (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H. 31409 * alias.c: Replace expr.h with emit-rtl.h and alias.h. 31410 * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h. 31411 * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h. 31412 * expr.h: Add include guard. Include function.h, rtl.h, flags.h, 31413 tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h. 31414 (get_varargs_alias_set, get_frame_alias_set, record_base_value, 31415 record_alias_subset, new_alias_set, can_address_p): Move to alias.h. 31416 (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset, 31417 set_mem_size): Move to emit-rtl.h. 31418 * emit-rtl.h: New. 31419 * alias.h: New. 31420 314212004-06-01 Eric Botcazou <ebotcazou@act-europe.fr> 31422 31423 * function.c (walk_fixup_memory_subreg): New parameter 'var'. 31424 Call fixup_memory_subreg only if the MEM is equal to 'var'. 31425 Adjust recursive calls to self. 31426 (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg. 31427 314282004-06-01 Richard Henderson <rth@redhat.com> 31429 Andrew Pinski <pinskia@physics.uc.edu> 31430 31431 * c-parse.in (OFFSETOF, offsetof_member_designator): New. 31432 (primary): Handle offsetof. Add error productions for faux functions. 31433 Move component_ref objc checking to build_component_ref. 31434 (reswords): Add offsetof. 31435 (rid_to_yy): Add offsetof. 31436 * c-tree.h (build_offsetof): Declare. 31437 * c-common.h (objc_is_public): Declare. 31438 * c-typeck.c (build_component_ref): Check objc_is_public. 31439 (build_offsetof): New. 31440 * stub-objc.c (objc_is_public): New. 31441 * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename 31442 from is_public. 31443 * ginclude/stddef.h (offsetof): Use __builtin_offsetof. 31444 * doc/extend.texi (Offsetof): Move from C++ section to C section 31445 and rewrite for __builtin_offsetof. 31446 314472004-06-01 Peter Barada <peter@the-baradas.com> 31448 Peter Jakubek <peter@laseranimation.com> 31449 31450 * config/m68k/m68k.c(m68k_output_mi_thunk): For ColdFire, use %d0 as 31451 a scratch to perform an add to memory. 31452 314532004-06-01 Bernardo Innocenti <bernie@develer.com> 31454 31455 PR target/14018 31456 * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string, 31457 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps, 31458 m68k_align_funcs): Remove. 31459 (override_options): Remove code to handle -malign-* options. 31460 * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options. 31461 (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove. 31462 (m68k_align_loops_string, m68k_align_jumps_string, 31463 m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps, 31464 m68k_align_funcs): Remove definitions. 31465 314662004-06-01 Paul Eggert <eggert@cs.ucla.edu> 31467 31468 PR target/15626 31469 * doc/install.texi (sparc-sun-solaris2*): Document messages issued 31470 by the Sun linker in conjunction with the Sun assembler. 31471 (sparc-sun-solaris2.7): Update revision info for Sun patch 106950. 31472 314732004-06-01 Jeff Law <law@redhat.com> 31474 31475 * stmt.c (expand_decl): Be more selective about calling 31476 mark_reg_pointer. 31477 314782004-06-01 Nicola Pero <nicola@brainstorm.co.uk> 31479 31480 PR objc/7993 31481 * objc-act.c (is_private): Do not emit the 'instance variable %s 31482 is declared private' error. 31483 (is_public): Emit the error after calling is_private. 31484 (lookup_objc_ivar): If the instance variable is private, return 0 31485 - the instance variable is invisible here. 31486 314872004-06-01 Eric Botcazou <ebotcazou@libertysurf.fr> 31488 31489 * doc/invoke.texi (-static-libgcc): Explicitly mention 31490 non-GNU linkers. 31491 314922004-06-01 Bernardo Innocenti <bernie@develer.com> 31493 31494 PR target/12968 31495 * doc/invoke.texi: Document stack alignment side-effect of -mshort. 31496 314972004-05-31 Joseph S. Myers <jsm@polyomino.org.uk> 31498 31499 PR c/15749 31500 * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for 31501 misuses of structures with flexible array members if 31502 in_system_header. 31503 315042004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr> 31505 31506 PR target/15693 31507 * config/sparc/sparc.c (compare_operand): New predicate. 31508 * config/sparc/sparc.h (PREDICATE_CODES): Add it. 31509 * config/sparc/sparc.md (cmpsi expander): Use it. If the first 31510 operand is a ZERO_EXTRACT and the second operand is not zero, 31511 force the former to a register. 31512 (cmpdi expander): Likewise. 31513 315142004-05-31 Geoffrey Keating <geoffk@apple.com> 31515 31516 * gengtype-lex.l: Catch stray GTY markers in the files gengtype 31517 looks at. 31518 * alias.c (alias_invariant_size): Make alias_invariant_size 31519 static, fix GTY marker. 31520 315212004-05-31 Kazu Hirata <kazu@cs.umass.edu> 31522 31523 PR tree-optimization/15743. 31524 * builtins.c (fold_builtin_1): Fold index() and rindex(). 31525 315262004-05-31 Roger Sayle <roger@eyesopen.com> 31527 31528 PR middle-end/15069 31529 * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0" 31530 into "X < 0" (where C is the signbit) if X's type is a full mode. 31531 315322004-05-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 31533 31534 * pa.md: Disable the peephole2 patterns that generate indexed 31535 floating-point stores when indexing is disabled. 31536 315372004-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net> 31538 31539 * c-pretty-print.c (pp_c_left_bracket): Make a function. 31540 (pp_c_right_bracket): Likewise. 31541 (pp_c_star): Likewise. 31542 (pp_c_ampersand): Define. 31543 * c-pretty-print.h (pp_c_left_bracket): Declare. 31544 (pp_c_right_bracket): Likewise. 31545 (pp_c_star): Likewise. 31546 (pp_c_ampersand): Likewise. 31547 315482004-05-31 Eric Botcazou <ebotcazou@libertysurf.fr> 31549 31550 * config/sol2.h (__enable_execute_stack): ANSIfy function 31551 definition. 31552 315532004-05-31 Danny Smith <dannysmith@users.sourceforge.net> 31554 31555 * c-incpath.c (add_path): Canonicalize paths to use '/' if 31556 HAVE_DOS_BASED_FILESYSTEM. 31557 315582004-05-31 Steven Bosscher <stevenb@suse.de> 31559 31560 * tree-ssa-dom.c (record_equivalences_from_incoming_edge): 31561 Only look at case labels if the immediate dominator is also 31562 the only predecessor. Don't look for more case labels if the 31563 first seen is a case range. 31564 315652004-05-31 Kazu Hirata <kazu@cs.umass.edu> 31566 31567 * builtins.c: Add a prototype for fold_builtin_strchr(). 31568 315692004-05-31 Paolo Bonzini <bonzini@gnu.org> 31570 31571 Revert this patch: 31572 2004-05-27 Paolo Bonzini <bonzini@gnu.org> 31573 31574 * combine.c (gen_binary): Remove. 31575 (known_cond, simplify_shift_const 31576 find_split_point, combine_simplify_rtx, 31577 simplify_if_then_else, simplify_set, 31578 simplify_logical, expand_field_assignment, 31579 extract_left_shift, force_to_mode, 31580 if_then_else_cond, apply_distributive_law, 31581 simplify_and_const_int, simplify_shift_const, 31582 gen_lowpart_for_combine, simplify_comparison, 31583 reversed_comparison): Replace with 31584 simplify_gen_binary, simplify_gen_relational or 31585 distribute_and_simplify_rtx. 31586 (distribute_and_simplify_rtx): New function. 31587 315882004-05-30 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 31589 31590 * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands 31591 when generating PIC code. 31592 315932004-05-30 Andrew Pinski <pinskia@physics.uc.edu> 31594 31595 * c-decl.c (c_expand_body_1): Remove and fold back into ... 31596 (c_expand_body): here. 31597 (c_expand_decl): Move to ... 31598 * c-common.c (c_expand_decl): Here and remove check for nested 31599 functions. 31600 * c-common.h (c_expand_decl): Add prototype. 31601 * c-tree.h (c_expand_decl): Remove. 31602 316032004-05-30 Roger Sayle <roger@eyesopen.com> 31604 31605 * fold-const.c (combine_comparisons, optimize_bit_field_compare, 31606 range_binop, fold_truthop, fold_binary_op_with_conditional_arg, 31607 fold_mathfn_compare, fold_inf_compare, fold, 31608 fold_relational_hi_lo, nondestructive_fold_binary_to_constant): 31609 Use constant_boolean_node where appropriate. Don't bother using 31610 fold_convert on the second argument to omit_one_operand. 31611 316122004-05-30 Roger Sayle <roger@eyesopen.com> 31613 31614 * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR, 31615 CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR, 31616 ROUND_MOD_EXPR, EXACT_DIV_EXPR. Improve documentation of 31617 TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations. 31618 Add missing (but documented) tree nodes to the index. 31619 316202004-05-30 Steven Bosscher <stevenb@suse.de> 31621 31622 PR tree-optimization/14819 31623 * builtins.c (fold_builtin_strchr): New. 31624 (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR 31625 with fold_builtin_strchr(). 31626 316272004-05-30 Kazu Hirata <kazu@cs.umass.edu> 31628 31629 * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c, 31630 c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c, 31631 expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c, 31632 passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c, 31633 tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c, 31634 tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c, 31635 tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c, 31636 tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h, 31637 tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment 31638 formatting. 31639 316402004-05-30 Steven Bosscher <stevenb@suse.de> 31641 31642 * gimplify.c (sort_case_labels): New. Split out from... 31643 (gimplify_switch_expr): ...here. Use it. 31644 * tree-eh.c (lower_try_finally_switch): Sort the labels of 31645 the SWITCH_EXPR created here before leaving the function. 31646 * tree.c (sort_case_labels): Add prototype. 31647 316482004-05-30 Andrew Pinski <pinskia@physics.uc.edu> 31649 31650 * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is 31651 of BOOLEAN_TYPE. 31652 316532004-05-30 Kazu Hirata <kazu@cs.umass.edu> 31654 31655 * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c, 31656 ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h, 31657 fold-const.c, gcc.c, gimplify.c, haifa-sched.c, 31658 modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c, 31659 tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c, 31660 tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix 31661 comment typos. Follow spelling conventions. 31662 316632004-05-29 Geoffrey Keating <geoffk@apple.com> 31664 31665 * gengtype-yacc.y: Add NESTED_PTR token. 31666 (option): Record `nested_ptr' option. 31667 * gengtype-lex.l: Handle `nested_ptr' keyword. 31668 * gengtype.c (walk_type): Process `nested_ptr' option. 31669 * gengtype.h (struct nested_ptr_data): New. 31670 * doc/gty.texi (GTY Options): Document `nested_ptr' option. 31671 * stringpool.c (struct string_pool_data): Make 'entries' point to 31672 ht_identifier instead of tree. 31673 (gt_pch_save_stringpool): Don't adjust pointers. 31674 (gt_pch_restore_stringpool): Call ht_load. 31675 316762004-05-29 Jason Merrill <jason@redhat.com> 31677 31678 * gimplify.c (gimplify_expr): Don't build a statement list 31679 if no gimplification was necessary. 31680 316812004-05-29 Joseph S. Myers <jsm@polyomino.org.uk> 31682 31683 * pretty-print.c (pp_base_format_text): Support %< instead of %` 31684 and %> as well as %'. 31685 * c-format.c: Use %< and %>. 31686 (gcc_diag_char_table, gcc_cdiag_char_table, 31687 gcc_cxxdiag_char_table): Update. 31688 316892004-05-29 Joseph S. Myers <jsm@polyomino.org.uk> 31690 31691 * c-typeck.c (common_type): Correct comment. 31692 316932004-05-29 Peter Barada <peter@the-baradas.com> 31694 31695 * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS. 31696 * config/m68k/m68k.c (const_method): Likewise. 31697 * config/m68k/m68k.c (const_int_cost): Likewise. 31698 * config/m68k/m68k.c (const_int_cost): Likewise. 31699 * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise. 31700 317012004-05-29 Peter Barada <peter@the-baradas.com> 31702 31703 * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset 31704 addressing. 31705 * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of 31706 movsi,movhi,movqi insn patterns. 31707 317082004-05-28 Andrew Pinski <pinskia@physics.uc.edu> 31709 31710 * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL. 31711 31712 PR target/15720 31713 * config/darwin.c (machopic_indirect_call_target): Copy 31714 the SYMBOL_REF_DECL from the original RTX for the new 31715 stub RTX. 31716 317172004-05-28 DJ Delorie <dj@redhat.com> 31718 31719 * stor-layout.c (place_field): Revert erroneous commit. 31720 317212004-05-28 Ziemowit Laski <zlaski@apple.com> 31722 31723 * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts, 31724 vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld, 31725 vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw, 31726 vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32, 31727 vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl, 31728 vec_ste): Remove type checks for integral parameters and literals 31729 from '..._args_eq' macros. 31730 317312004-05-28 Aldy Hernandez <aldyh@redhat.com> 31732 31733 * c-common.c (fname_as_string): Fix xcalloc to xmalloc. 31734 317352004-05-28 Aldy Hernandez <aldyh@redhat.com> 31736 31737 * testsuite/g++.dg/charset/function.cc: New. 31738 31739 * testsuite/gcc.dg/charset/function.c: New. 31740 31741 * c-decl.c (c_make_fname_decl): Free return value from 31742 fname_as_string. 31743 31744 * cp/decl.c (cp_make_fname_decl): Free return value from 31745 fname_as_string. 31746 31747 * c-common.c (fname_as_string): Translate if necessary. 31748 317492004-05-28 Geoffrey Keating <geoffk@apple.com> 31750 31751 * stringpool.c: Add comments to PCH saving/restoring routines. 31752 317532004-05-28 Andrew Pinski <pinskia@physics.uc.edu> 31754 31755 * c-common.c (c_estimate_num_insns_1): Kill. 31756 (c_estimate_num_insns): Kill. 31757 * c-common.h (c_estimate_num_insns): Kill. 31758 31759 * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING 31760 when checking for _POSIX_THREAD_PRIORITY_SCHEDULING. 31761 Remove comment about not checking for 31762 _POSIX_PRIORITY_SCHEDULING. 31763 * gthr-posix.c: Likewise. 31764 317652004-05-28 Paolo Bonzini <bonzini@gnu.org> 31766 Roger Sayle <roger@eyesopen.com> 31767 31768 PR rtl-optimization/15649 31769 Add LTGT_EXPR and improve pretty-printing of unordered 31770 comparisons. 31771 * c-common.c (c_common_truthvalue_conversion): 31772 Handle LTGT_EXPR. 31773 * c-typeck.c (build_binary_op): Likewise. 31774 * dojump.c (do_jump): Likewise. 31775 * expr.c (expand_expr_real_1, do_store_flag): Likewise. 31776 * predict.c (tree_predict_by_opcode): Likewise. 31777 * real.c (real_compare): Likewise. 31778 * tree-cfg.c (verify_expr): Likewise. 31779 * tree-inline.c (estimate_num_insns_1): Likewise. 31780 * tree-pretty-print.c (dump_generic_node): Likewise. 31781 Handle ORDERED_EXPR, UNORDERED_EXPR. 31782 (op_symbol): Print unordered comparisons differently 31783 than ordered ones. 31784 * tree.def (LTGT_EXPR): New '<' tree code. 31785 * doc/c-tree.texi (Expressions): Document floating-point 31786 comparison nodes. 31787 31788 Fold comparisons between floating point values. 31789 * fold-const.c (enum comparison_code): New, from 31790 #define'd constants. Define compcodes for unordered 31791 comparisons and for invalid transformations. 31792 (invert_tree_comparison): Add "honor_nans" parameter. 31793 (fold_truthop): Revamp to work on floating-point types too. 31794 (comparison_to_compcode): Support unordered comparisons. 31795 Use new enum comparison_code. 31796 (compcode_to_comparison): Likewise. 31797 (combine_compcodes): New function. 31798 (invert_truthvalue): Let invert_tree_comparison decide 31799 whether it is valid to fold the comparison. Fold ORDERED 31800 and UNORDERED even if flag_unsafe_math_optimizations is off, 31801 and the remaining even if flag_unsafe_math_optimizations 31802 is off but we are under -fno-trapping-math. 31803 (fold_relational_const): Integer modes do not honor NaNs. 31804 318052004-05-28 Paul Brook <paul@codesourcery.com> 31806 31807 * config/arm/arm.c (arm_output_epilogue): Remove redundant code. 31808 318092004-05-28 Paul Brook <paul@codesourcery.com> 31810 31811 * config/arm/arm.c (thumb_force_lr_save): New function. 31812 (arm_get_frame_offsets, thumb_unexpanded_epilogue, 31813 thumb_output_function_prologue): Use it. 31814 (thumb_expand_prologue): Set lr_save_eliminated. 31815 318162004-05-28 Richard Sandiford <rsandifo@redhat.com> 31817 31818 * config/mips/mips.md (extendsidi2): Tie the source and destination 31819 of the register alternative. Split it into nothing. 31820 318212004-05-28 Richard Sandiford <rsandifo@redhat.com> 31822 31823 * rtl.h (skip_consecutive_labels): Declare. 31824 * emit-rtl.c (skip_consecutive_labels): New function. 31825 * reorg.c (relax_delay_slots, dbr_schedule): Use it. 31826 * jump.c (follow_jumps): Say what null return values mean. 31827 318282004-05-28 Kaz Kojima <kkojima@gcc.gnu.org> 31829 31830 PR target/13250 31831 * config/sh/sh.md (rotlsi3): Use emit_move_insn. 31832 318332004-05-27 Kaz Kojima <kkojima@gcc.gnu.org> 31834 31835 * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific 31836 libgcc-std.ver. 31837 * config/sh/libgcc-std.ver: New file. 31838 318392004-05-27 Bryce McKinlay <mckinlay@redhat.com> 31840 31841 * except.c: Revert change of 2004-05-26. 31842 * config/i386/i386.md: Revert change of 2004-05-27. 31843 318442004-05-27 Bryce McKinlay <mckinlay@redhat.com> 31845 31846 * configure.ac: Remove --enable-tree-browser option. 31847 Define TREEBROWSER when ac_tree_checking is defined. 31848 * configure: Rebuilt. 31849 318502004-05-27 Olivier Hainque <hainque@act-europe.fr> 31851 31852 * expr.c (store_constructor): Restore sanity check on 31853 the size of the type before clearing. 31854 318552004-05-27 Jan Hubicka <jh@suse.cz> 31856 31857 * cfgbuild.c (control_flow_insn_p): Notice noreturn call 31858 318592004-05-27 Paolo Bonzini <bonzini@gnu.org> 31860 31861 * combine.c (gen_binary): Remove. 31862 (known_cond, simplify_shift_const 31863 find_split_point, combine_simplify_rtx, 31864 simplify_if_then_else, simplify_set, 31865 simplify_logical, expand_field_assignment, 31866 extract_left_shift, force_to_mode, 31867 if_then_else_cond, apply_distributive_law, 31868 simplify_and_const_int, simplify_shift_const, 31869 gen_lowpart_for_combine, simplify_comparison, 31870 reversed_comparison): Replace with 31871 simplify_gen_binary, simplify_gen_relational or 31872 distribute_and_simplify_rtx. 31873 (distribute_and_simplify_rtx): New function. 31874 * simplify-rtx.c (simplify_binary_operation): 31875 Use nonzero_bits to simplify ANDs where we are 31876 turning off bits already known to be off in OP0. 31877 318782004-05-27 Alan Modra <amodra@bigpond.net.au> 31879 31880 PR target/14478 31881 * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero. 31882 318832004-05-27 Josef Zlomek <zlomekj@suse.cz> 31884 31885 PR middle-end/14084 31886 * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according 31887 to size of decl. 31888 318892004-05-26 Aldy Hernandez <aldyh@redhat.com> 31890 31891 PR/14924 31892 * config/rs6000/rs6000.c (spe_expand_stv_builtin): New. 31893 318942004-05-26 Roger Sayle <roger@eyesopen.com> 31895 31896 * tree.h: Fix comment typo. 31897 318982004-05-27 Steven Bosscher <stevenb@suse.de> 31899 31900 * gimplify.c (compare_case_labels): New function. 31901 (gimplify_switch_expr): Sort case labels, and make sure the 31902 last label in the label vector is the default case. 31903 * tree-cfg.c (group_case_labels): New function. 31904 (build_tree_cfg): Cleanup redundant labels and group case labels 31905 before creating edges. 31906 (cleanup_dead_labels): Handle GOTO_EXPRs. 31907 (find_case_label_for_value): Use a binary search to find the 31908 case label for the given value. 31909 * tree-gimple.c: Mention that labels are sorted, and that the 31910 last label must be the default. 31911 319122004-05-27 Jan Hubicka <jh@suse.cz> 31913 31914 * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables. 31915 319162004-05-27 Jan Hubicka <jh@suse.cz> 31917 31918 * i386.md (UNSPECV_EH_RETURN): Kill. 31919 (eh_return): Use jump_insn. 31920 (eh_return_si, eh_return_di): Change pattern to jump instruction. 31921 319222004-05-26 Jan Hubicka <jh@suse.cz> 31923 31924 * cfgcleanup.c (try_forward_edges): Do not check loop structure when 31925 not loop optimizing. 31926 319272004-05-26 Jan Hubicka <jh@suse.cz> 31928 31929 * except.c (can_throw_internal): Notice RESX instructions. 31930 319312004-05-26 Eric Botcazou <ebotcazou@act-europe.fr> 31932 31933 * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum 31934 of the two sizes to assemble_integer. 31935 319362004-05-25 Paul Brook <paul@codesourcery.com> 31937 31938 * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove 31939 pointless #ifdef. 31940 319412004-04-25 Paolo Bonzini <bonzini@gnu.org> 31942 31943 * Makefile.in (top_builddir): Define to . 31944 319452004-05-25 Alexandre Oliva <aoliva@redhat.com> 31946 31947 * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the 31948 top-level detects, except when in-tree ld is being cross-built. 31949 (gcc_cv_as): Likewise for as. Use AS_FOR_TARGET otherwise, and 31950 then AS only if target is host. 31951 * configure: Rebuilt. 31952 319532004-05-25 Vladimir Makarov <vmakarov@redhat.com> 31954 31955 * global.c (global_alloc): Call make_accurate_live_analysis. 31956 (record_one_conflict): Remove dead code. 31957 (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data. 31958 (bb_info): New structure. 31959 (BB_INFO, BB_INFO_BY_INDEX): New macros. 31960 (allocate_bb_info, free_bb_info, mark_reg_change, 31961 calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp, 31962 modify_bb_reg_pav, calculate_reg_pav, 31963 make_accurate_live_analysis): New functions. 31964 319652004-05-25 Devang Patel <dpatel@apple.com> 31966 31967 * alias.c (init_alias_analysis): Use ggc_calloc instead of 31968 xrealloc. 31969 (end_alias_analysis): Use ggc_free instead fo free. 31970 319712004-05-25 Andrew Pinski <pinskia@physics.uc.edu> 31972 31973 PR target/15546 31974 * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL 31975 as needed to be outputted. 31976 319772004-05-25 Jan Hubicka <jh@suse.cz> 31978 31979 * builtins.def (__builtin_expect): Mark the function as const¬hrow. 31980 319812004-05-25 Ayal Zaks <zaks@il.ibm.com> 31982 Mostafa Hagog <mustafa@il.ibm.com> 31983 31984 * Makefile.in (modulo-sched.o, ddg.o): New. 31985 * ddg.h, ddg.c, modulo-sched.c: New files. 31986 * cfglayout.c (duplicate_insn_chain): Remove "static" and push 31987 internals to "dupicate_insn". 31988 (duplicate_insn): New function. 31989 * cfglayout.h (duplicate_insn_chain, duplicate_insn): New 31990 declarations. 31991 * common.opt (fmodulo-sched): New flag. 31992 * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find): 31993 Remove static and forward declaration. 31994 (df_find_def, df_reg_used, df_bb_regno_last_def_find): New 31995 functions. 31996 * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find, 31997 df_bb_regno_last_def_find, df_find_def, df_reg_used): New 31998 declarations. 31999 * flags.h (flag_modulo_sched): New flag. 32000 * opts.c (common_handle_option): Handle modulo-sched flag. 32001 * params.def (max-sms-loop-number, sms-max-ii-factor, 32002 sms-dfa-history, sms-loop-average-count-threshold): New 32003 parameters. 32004 * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR, 32005 SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New 32006 parameters. 32007 * passes.c ("sms", "sms-vcg"): New dumps. 32008 (rest_of_handle_sched): Call sms_schedule. 32009 * rtl.h (sms_schedule): New declaration. 32010 * timevar.def (TV_SMS): New. 32011 * toplev.c (flag_modulo_sched): Initialize. 32012 (f_options): Handle -fmodulo-sched option. 32013 * docs/invoke.texi: Document -fmodulo-sched & -dm options. 32014 * docs/passes.texi: Document new SMS pass. 32015 320162004-05-25 Paolo Bonzini <bonzini@gnu.org> 32017 32018 * Makefile.in (OBJS): Add rtlhooks.o. 32019 (rtlanal.o): Depend on function.h. 32020 (cse.o): Depend on rtlhooks-def.h. 32021 (combine.o): Depend on rtlhooks-def.h. 32022 (rtlhooks.o): New rule. 32023 * combine.c: Include rtlhooks-def.h. 32024 (nonzero_bits, cached_nonzero_bits, nonzero_bits1, 32025 num_sign_bit_copies, cached_num_sign_bit_copies, 32026 num_sign_bit_copies1): Move most of the code to rtlanal.c. 32027 (reg_nonzero_bits_for_combine, 32028 reg_num_sign_bit_copies_for_combine): New functions holding 32029 the remnants of the above. 32030 (combine_rtl_hooks): New. 32031 (combine_instructions): Set rtl_hooks instead of gen_lowpart. 32032 * cse.c: Include rtlhooks-def.h. 32033 (cse_rtl_hooks): New. 32034 (cse_main): Set rtl_hooks instead of gen_lowpart. 32035 * emit-rtl.c (gen_lowpart): Remove. 32036 (gen_lowpart_general): Move to rtlhooks.c. 32037 * rtl.h (nonzero_bits, num_sign_bit_copies, 32038 struct rtl_hooks, rtl_hooks, general_rtl_hooks): New. 32039 (gen_lowpart_general): Remove. 32040 (gen_lowpart): Temporarily redefine as a macro. 32041 * rtlanal.c: Include function.h. 32042 (nonzero_bits, cached_nonzero_bits, nonzero_bits1, 32043 num_sign_bit_copies, cached_num_sign_bit_copies, 32044 num_sign_bit_copies1): New, from combine.c. 32045 * rtlhooks.c: New file. 32046 * rtlhooks-def.h: New file. 32047 320482004-05-25 Svein E. Seldal <Svein.Seldal@solidas.com> 32049 32050 * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type 32051 to support 32-bit -mint8 mode. 32052 32053 * doc/invoke.texi (-mint8): Added documentation for the -mint8 32054 option in the AVR architecture. 32055 320562004-05-24 Mike Stump <mrs@apple.com> 32057 32058 * doc/install.texi: Document that dejagnu 1.4.4 is required. 32059 320602004-05-24 Joseph S. Myers <jsm@polyomino.org.uk> 32061 32062 * intl.h (open_quote, close_quote): New. 32063 * intl.c (open_quote, close_quote): New. 32064 (gcc_init_libintl): Set them. 32065 * pretty-print.c: Include "intl.h". 32066 (pp_base_format_text): Support 'q' format flag and %` and %' 32067 formats. Use ' instead of ` in comments. 32068 * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs, 32069 gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table, 32070 foramt_types_orig): Describe these new formats. 32071 (decode_format_attr, check_function_format, 32072 check_format_info_main): Use these new formats. 32073 (status_warning): Use ATTRIBUTE_GCC_DIAG. 32074 * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to 32075 check these formats to 3.5. 32076 320772004-05-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 32078 32079 * Makefile.in (CPPLIBS): Renamed to CPPLIB. 32080 (BACKEND): Reflect this. 32081 (LIBDEPS): Move CPPLIB before LIBIBERTY. 32082 (LIBS): Likewise. 32083 320842004-05-24 Ulrich Weigand <uweigand@de.ibm.com> 32085 32086 PR tree-optimization/14197 32087 * builtins.c: Include "tree-gimple.h" 32088 (readonly_data_expr): Use get_base_address. Make sure to call 32089 decl_readonly_section only on trees it can handle. 32090 * tree-gimple.c (get_base_address): Accept STRING_CST and 32091 CONSTRUCTOR expressions. 32092 * Makefile.in: Update dependencies. 32093 320942004-05-23 Paolo Bonzini <bonzini@gnu.org> 32095 32096 Move libcpp to the toplevel. 32097 * Makefile.in: Remove references to libcpp files, 32098 use CPPLIBS instead of libcpp.a. Define SYMTAB_H 32099 and change hashtable.h to that. 32100 * aclocal.m4 (gcc_AC_HEADER_STDBOOL, 32101 gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove. 32102 * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests. 32103 * configure: Regenerate. 32104 * config.in: Regenerate. 32105 * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h. 32106 * cppcharset.c: Removed. 32107 * cpperror.c: Removed. 32108 * cppexp.c: Removed. 32109 * cppfiles.c: Removed. 32110 * cpphash.c: Removed. 32111 * cpphash.h: Removed. 32112 * cppinit.c: Removed. 32113 * cpplex.c: Removed. 32114 * cpplib.c: Removed. 32115 * cpplib.h: Removed. 32116 * cppmacro.c: Removed. 32117 * cpppch.c: Removed. 32118 * cpptrad.c: Removed. 32119 * cppucnid.h: Removed. 32120 * cppucnid.pl: Removed. 32121 * cppucnid.tab: Removed. 32122 * hashtable.c: Removed. 32123 * hashtable.h: Removed. 32124 * line-map.c: Removed. 32125 * line-map.h: Removed. 32126 * mkdeps.c: Removed. 32127 * mkdeps.h: Removed. 32128 * stringpool.h: Include symtab.h instead of hashtable.h. 32129 * tree.h: Include symtab.h instead of hashtable.h. 32130 * system.h (O_NONBLOCK, O_NOCTTY): Do not define. 32131 321322004-05-23 Paolo Bonzini <bonzini@gnu.org> 32133 32134 * gcc.c (struct prefix_list): Add forward declaration. 32135 (do_spec_path): New function, extracted from... 32136 (do_spec_1) <'D'>: ... here. Drop support for 32137 SPACE_AFTER_L_OPTION. 32138 (do_spec_1) <'I'>: Use do_spec_path. 32139 (process_command): Do not store the 'include' suffix 32140 in include_prefixes. 32141 * system.h: Poison SPACE_AFTER_L_OPTION. 32142 321432002-05-23 Roger Sayle <roger@eyesopen.com> 32144 32145 * fold-const.c (non_lvalue): Explicitly list the tree codes that 32146 need to be wrapped by NON_LVALUE_EXPR, instead of those that don't. 32147 321482004-05-23 Joseph S. Myers <jsm@polyomino.org.uk> 32149 32150 * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi: 32151 Update based on printed manual. Enable setting of offsets for 32152 FSFPRINT and move it to gcc-common.texi. 32153 * doc/gcc.texi: Update FSF printing details. 32154 * doc/gccint.texi: Remove FSF printing details. 32155 321562004-05-23 Andrew Pinski <pinskia@physics.uc.edu> 32157 32158 * config/rs6000/t-rs6000: Remove the disabling -Werror. 32159 321602004-05-22 Roger Sayle <roger@eyesopen.com> 32161 32162 * builtins.c (expand_builtin_strstr, expand_builtin_strchr, 32163 expand_builtin_strrchr, expand_builtin_strpbrk, 32164 expand_builtin_mempcpy, expand_builtin_memcmp, 32165 expand_builtin_strcmp, expand_builtin_strncmp, 32166 expand_builtin_strcat, std_expand_builtin_va_start, 32167 std_expand_builtin_va_arg, expand_builtin_va_copy, 32168 expand_builtin_signbit, fold_builtin_cabs, 32169 fold_builtin_logarithm, fold_builtin_mempcpy, 32170 fold_builtin_signbit, fold_builtin_isascii, 32171 fold_builtin_toascii, fold_builtin_isdigit, 32172 fold_builtin_1, build_function_call_expr, 32173 simplify_builtin_strchr, simplify_builtin_strrchr, 32174 simplify_builtin_strpbrk, simplify_builtin_strncpy, 32175 simplify_builtin_memcmp, simplify_builtin_strcmp, 32176 simplify_builtin_strncmp, simplify_builtin_strncat, 32177 simplify_builtin_strspn, simplify_builtin_strcspn, 32178 simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls 32179 to build with calls to build2, build3 or omit_one_operand. 32180 321812004-05-22 Richard Sandiford <rsandifo@redhat.com> 32182 32183 * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX 32184 section when generating EABI code. 32185 321862004-05-22 Andrew Pinski <pinskia@physics.uc.edu> 32187 32188 PR 15546 32189 * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>): 32190 Call mark_decl_referenced on the SYMBOL_REF_DECL. 32191 321922004-05-22 Andrew Pinski <pinskia@physics.uc.edu> 32193 32194 * c-common.c (c_common_truthvalue_conversion): Handle 32195 UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR, 32196 ORDERED_EXPR, and UNORDERED_EXPR as comparison operators, 32197 i.e. set the type to truthvalue_type_node and return. 32198 321992004-05-22 Zack Weinberg <zack@codesourcery.com> 32200 32201 * tree.h (struct tree_decl): Add possibly_inlined bit. 32202 (DECL_POSSIBLY_INLINED): New accessor macro. 32203 * cgraph.h: Remove declaration of cgraph_inline_hash. 32204 * cgraph.c: Remove definition of cgraph_inline_hash. 32205 (hash_node): Revert to hashing DECL_UID. 32206 (eq_node): Take two pointers to cgraph_node structures. 32207 Compare DECL_UIDs. 32208 (cgraph_remove_node): Pass the node directly to htab_find_slot. 32209 (cgraph_varpool_hash_node): Rename hash_varpool_node; 32210 hash on DECL_UID. 32211 (eq_cgraph_varpool_node): Rename eq_varpool_node; take two 32212 pointers to cgraph_varpool_node structures; compare DECL_UIDs. 32213 (cgraph_node): Allocate a temporary node on the stack, fill in 32214 its DECL field, and pass that to htab_find_slot. 32215 (cgraph_varpool_node): Likewise. 32216 (cgraph_function_possibly_inlined_p): If global info is ready, 32217 return the DECL_POSSIBLY_INLINED bit. 32218 * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED 32219 instead of mucking with cgraph_inline_hash. 32220 322212004-05-22 Joseph S. Myers <jsm@polyomino.org.uk> 32222 32223 * doc/contrib.texi: Add g77 contributors. 32224 322252004-05-22 Richard Sandiford <rsandifo@redhat.com> 32226 32227 * calls.c (initialize_argument_information): Forbid sibcalls if a 32228 callee-copied argument is stored in the current function's frame. 32229 322302004-05-22 Eric Christopher <echristo@redhat.com> 32231 32232 * fix-header.c (read_scan_file): Update for add_path change. 32233 322342004-05-22 Ben Elliston <bje@au.ibm.com> 32235 32236 * c.opt (Wmissing-include-dirs): New. 32237 * c-opts.c (c_common_handle_option): Pass true for user_supplied_p 32238 to add_path () for -I, but false for OPT_idirafter, OPT_iquote and 32239 OPT_isystem. Handle case OPT_Wmissing_include_dirs. 32240 * c-incpath.h (add_path): Add fourth (bool) argument. 32241 * c-incpath.c (add_env_var_paths): Pass false to add_path (). 32242 (add_standard_paths): Likewise. 32243 (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs 32244 is used and the directory was user-supplied via -I. 32245 (add_path): Set p->user_supplied_p. Remove duplicated code by 32246 using add_cpp_dir_path (). 32247 * cpplib.h (struct cpp_options): Add warn_missing_include_dirs. 32248 (struct cpp_dir): Add user_supplied_p. 32249 * doc/invoke.texi (Warning Options): Document new option. 32250 322512004-05-21 Ulrich Weigand <uweigand@de.ibm.com> 32252 32253 * fold-const.c (fold_read_from_constant_string): Convert result to 32254 requested type. 32255 322562004-05-21 Richard Henderson <rth@redhat.com> 32257 32258 * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls. 32259 (copy_if_shared_r): Don't copy decls, types, constants, BINDs. 32260 Don't mark VA_ARG_EXPRs volatile here. 32261 (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT. 32262 322632004-05-21 Richard Henderson <rth@redhat.com> 32264 32265 * Makefile.in (tree-dump.o): Depend on tree-iterator.h. 32266 * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs. 32267 322682004-05-21 Roger Sayle <roger@eyesopen.com> 32269 32270 * fold-const.c (fold, fold_relational_hi_lo, 32271 nondestructive_fold_binary_to_constant, 32272 fold_read_from_constant_string): Use fold_convert instead of convert. 32273 * builtins.c (simplify_builtin, simplify_builtin_strstr, 32274 simplify_builtin_strchr, simplify_builtin_strrchr, 32275 simplify_builtin_strpbrk): Use fold_convert instead of convert. 32276 322772004-05-21 Diego Novillo <dnovillo@redhat.com> 32278 32279 * tree-flow-inline.h (num_immediate_uses): Don't abort if DF 32280 is NULL. 32281 322822004-05-21 Jakub Jelinek <jakub@redhat.com> 32283 32284 * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH, 32285 override sparc.h definition. 32286 322872004-05-20 Roger Sayle <roger@eyesopen.com> 32288 32289 * tree.c (array_type_nelts, save_expr, substitute_in_expr, 32290 get_unwidened, get_narrower): Replace build with build2. 32291 * fold-const.c (negate_expr, associate_trees, size_binop, 32292 fold_convert, eval_subst, omit_one_operand, invert_truthvalue, 32293 pedantic_omit_one_operand, distribute_bit_expr, 32294 make_bit_field_ref, optimize_bit_field_compare, 32295 decode_field_reference, range_binop, make_range, 32296 build_range_check, fold_range_test, fold_truthop, 32297 optimize_minmax_comparison, extract_muldiv_1, 32298 fold_binary_op_with_conditional_arg, fold_mathfn_compare, 32299 fold_inf_compare, fold_single_bit_test, fold, 32300 fold_relational_hi_lo, nondestructive_fold_binary_to_constant): 32301 Likewise replace build with either build2 or build3. 32302 323032004-05-20 Ian Lance Taylor <ian@wasabisystems.com> 32304 32305 * system.h: Poison NO_RECURSIVE_FUNCTION_CSE. 32306 * calls.c (prepare_call_address): Don't test 32307 NO_RECURSIVE_FUNCTION_CSE. 32308 * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define. 32309 * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32310 * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32311 * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32312 * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32313 * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32314 * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32315 * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32316 * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32317 * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32318 * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32319 * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE): 32320 Likewise. 32321 * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise. 32322 * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment. 32323 * doc/tm.texi (Costs): Remove documentation for 32324 NO_RECURSIVE_FUNCTION_CSE. 32325 323262004-05-20 Paul Brook <paul@codesourcery.com> 32327 32328 * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format. 32329 * unwind-dw2.c (extract_cie_info): Ditto. 32330 (_Unwind_FrameState): Change retaddr_column to word type. 32331 323322004-05-20 Roger Sayle <roger@eyesopen.com> 32333 32334 PR middle-end/3074 32335 * fold-const.c (strip_compound_expr): Delete function. 32336 (count_cond): Delete function. 32337 (fold_binary_op_with_conditional_arg): Only perform transformations 32338 "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a" 32339 when a is constant. This greatly simplifies this routine. 32340 32341 * tree.c (saved_expr_p): Delete function. 32342 * tree.h (saved_expr_p): Delete function prototype. 32343 323442004-05-20 Andrew Pinski <pinskia@physics.uc.edu> 32345 32346 * common.opt (ftree-loop-optimize): Remove. 32347 323482004-05-20 Daniel Jacobowitz <dan@debian.org> 32349 32350 * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET) 32351 (NM_FOR_TARGET): Use := and $(shell). 32352 (mainversion): Remove unused variable. 32353 323542004-05-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 32355 32356 * reorg.c (delete_from_delay_slot): If we have a barrier after the 32357 sequence containing the insn to be deleted, always reemit it. 32358 323592004-05-20 Richard Henderson <rth@redhat.com> 32360 32361 PR 15454 32362 * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand. 32363 * function.c (expand_function_start): Expand static_chain_decl by hand. 32364 * gimplify.c (create_tmp_var_name): Export. 32365 * tree-gimple.h (create_tmp_var_name): Declare. 32366 323672004-05-20 Andrew Pinski <pinskia@physics.uc.edu> 32368 32369 * rs6000.c (print_operand) <case 'z'>: Call 32370 mark_decl_referenced before assemble_name. 32371 323722004-05-20 Zack Weinberg <zack@codesourcery.com> 32373 32374 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) 32375 (cgraph_varpool_hash_node, eq_cgraph_varpool_node) 32376 (cgraph_varpool_node): Hash on the pointer to the decl, not 32377 the DECL_UID. Fixes 64-bit bootstrap failure. 32378 323792004-05-20 Richard Earnshaw <rearnsha@arm.com> 32380 32381 * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure 32382 we don't earlyclobber operands used in the second insn. 32383 323842004-05-20 Steven Bosscher <stevenb@suse.de> 32385 32386 * tree-mudflap.c: Formatting fixes. 32387 323882004-05-20 J"orn Rennecke <joern.rennecke@superh.com> 32389 32390 * Makefile.in (GTFILES): Add $(srcdir)/reload.h. 32391 * gengtype.c (open_base_files): Include reload.h in ifiles. 32392 * reload.h (reg_equiv_memory_loc_varray): Declare. 32393 * reload1.c (reg_equiv_memory_loc_varray): New variable. 32394 (init_reload): Initialize it. 32395 (reload): Instead of freeing reg_equiv_memory_loc, 'grow' 32396 reg_equiv_memory_loc_varray to size 0. 32397 * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by 32398 growing reg_equiv_memory_loc_varray to the desired size. 32399 * passes.c (rest_of_handle_old_regalloc): Likewise. 32400 * reload.c: Amend comment on calling init_reload. 32401 324022004-05-20 Nick Clifton <nickc@redhat.com> 32403 32404 * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp' 32405 with 'TRAMP' in the body of the macro definition. 32406 324072004-05-19 H.J. Lu <hongjiu.lu@intel.com> 32408 32409 PR target/15383 32410 * config/ia64/ia64.c (ia64_expand_compare): Don't check 32411 TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and 32412 cmptf_libfunc isn't set. 32413 (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX 32414 conventions. 32415 (ia64_sysv4_init_libfuncs): New. 32416 32417 * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as 32418 ia64_sysv4_init_libfuncs. 32419 324202004-05-20 Falk Hueffner <falk@debian.org> 32421 32422 PR other/15526 32423 * libgcc2.c (__mulvsi3): Fix overflow test. 32424 324252004-05-19 Andrew Pinski <pinskia@physics.uc.edu> 32426 32427 PR c/14171 32428 * reg-stack.c (nan): Rename to ... 32429 (not_a_num): Here. 32430 (reg_to_stack): Rename nan to not_a_num. 32431 (subst_stack_regs_pat): Likewise. 32432 (convert_regs_entry): Likewise. 32433 (convert_regs_1): Likewise. 32434 32435 * tree-cfg.c (find_case_label_for_value): Replace call to 32436 simple_cst_equal with tree_int_cst_equal. 32437 324382004-05-19 Jeff Law <law@redhat.com> 32439 32440 * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use. 32441 If the operand is for a use, then strip away the SSA_NAME, do not 32442 strip away the SSA_NAME for a set. Never call release_ssa_name. 32443 (mark_def_sites): Appropriately pass additional argument to 32444 prepare_operand_for_rename. If a VDEF_RESULT is not an SSA_NAME, 32445 then set the VDEF_RESULT to the VDEF_OP. 32446 (set_def_block): Strip away any SSA_NAME to get to the real 32447 underlying variable. 32448 32449 * tree-ssa-phiopt.c (value_replacement): Handle the case where 32450 the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than 32451 BB directly. 32452 324532004-05-19 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 32454 32455 PR c++/15463 32456 * loop-iv.c (iv_number_of_iterations): Use trunc_int_for_mode on 32457 result of inverse. 32458 32459 PR rtl-optimization/15274 32460 * loop-iv.c (determine_max_iter, shorten_into_mode, 32461 iv_number_of_iterations): Handle constants correctly. 32462 * rtl.h (get_mode_bounds): Declaration changed. 32463 * stor-layout.c (get_mode_bounds): Return a constant suitable for 32464 the target mode. 32465 32466 PR rtl-optimization/14692 32467 * loop-unswitch.c (may_unswitch_on): Try folding the result. 32468 (unswitch_single_loop): Work correctly when may_unswitch_on 32469 returns a folded constant. 32470 32471 * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B. 32472 * simplify-rtx.c (simplify_const_relational_operation): Optimize 32473 comparisons with mode bounds. 32474 32475 * function.c (struct temp_slot): Add new field prev. 32476 (free_after_compilation, init_temp_slots): Free new fields. 32477 (cut_slot_from_list, insert_slot_to_list, 32478 temp_slots_at_level, max_slot_level, move_slot_to_level, 32479 make_slot_available): New functions. 32480 (assign_stack_temp_for_type, combine_temp_slots, 32481 find_temp_slot_from_address, preserve_temp_slots, 32482 preserve_rtl_expr_result, free_temp_slots, 32483 free_temps_for_rtl_expr, pop_temp_slots): Work with 32484 the new structure of lists. 32485 (mark_all_temps_used): Removed. 32486 * function.h (struct function): Field x_temp_slots 32487 replaced by x_used_temp_slots and x_avail_temp_slots. 32488 (temp_slots): Replaced by ... 32489 (used_temp_slots, avail_temp_slots): New. 32490 * tree.h (mark_all_temps_used): Declaration removed. 32491 32492 * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze, 32493 simplify_using_assignment): Take the expression out of 32494 the expr_list wrapper. 32495 32496 * loop-iv.c (iv_number_of_iterations): Improve clasification of 32497 infinite loops. 32498 324992004-05-19 Roger Sayle <roger@eyesopen.com> 32500 32501 * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction 32502 costs should be based on code size when optimizing for size. 32503 325042004-05-19 Paolo Bonzini <bonzini@gnu.org> 32505 32506 * fold-const.c: Remove non-printable character 160. 32507 325082004-05-19 Nick Clifton <nickc@redhat.com> 32509 32510 * doc/invoke.texi (ARM Options): Fix typo. 32511 Remove descrption of -mshort-load-bytes and 32512 -mno-short-load-bytes. 32513 32514 * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add 32515 missing parenthesis. 32516 * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise. 32517 * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise. 32518 325192004-05-19 Steven Bosscher <stevenb@suse.de> 32520 32521 * expr.c (store_constructor): Build loop start and end by hand 32522 instead of via loop functions from stmt.c. 32523 (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR. 32524 Remove the code to expand them. 32525 32526 * stmt.c (loop_stack): Remove this and everything related. 32527 (struct nesting, enum nesting_desc): Update. 32528 (expand_fixup): Likewise. 32529 (expand_loop_start, expand_start_loop_continue_elsewhere, 32530 expand_start_null_loop, expand_loop_continue_here, expand_end_loop, 32531 expand_end_null_loop, expand_continue_loop, expand_exit_loop, 32532 expand_exit_loop_if_false, expand_exit_loop_top_cond, 32533 expand_exit_something): Remove. 32534 * tree.h: Remove prototypes. 32535 325362004-05-18 Mike Stump <mrs@apple.com> 32537 Devang Patel <dpatel@apple.com> 32538 32539 * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate 32540 if this label is for eh. 32541 * config/darwin-protos.h (darwin_emit_unwind_label): Likewise. 32542 * config/darwin.c (darwin_emit_unwind_label): Likewise. 32543 * dwarf2out.c (output_call_frame_info): Likewise. 32544 * output.h (default_emit_unwind_label): Likewise. 32545 * target.h (unwind_label): Likewise. 32546 * varasm.c (default_emit_unwind_label): Likewise. 32547 32548 * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, 32549 DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION, 32550 DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION, 32551 DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION, 32552 DEBUG_RANGES_SECTION): Define. 32553 325542004-05-18 Zack Weinberg <zack@codesourcery.com> 32555 32556 * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node) 32557 (cgraph_varpool_hash_node, eq_cgraph_varpool_node) 32558 (cgraph_varpool_node): 32559 Use DECL_UID for the key, not DECL_ASSEMBLER_NAME. 32560 (cgraph_function_possibly_inlined_p): Use the decl itself for 32561 the key, not DECL_ASSEMBLER_NAME. 32562 (change_decl_assembler_name): No need to muck with the hash tables. 32563 (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier): 32564 Delete. 32565 * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself 32566 for the key, not DECL_ASSEMBLER_NAME. 32567 * cgraph.h: Remove prototypes of deleted functions. 32568 * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED. 32569 (mark_decl_referenced): New function. 32570 * tree.h: Prototype mark_decl_referenced. 32571 * final.c (output_addr_const) <case SYMBOL_REF>: Call 32572 mark_decl_referenced before assemble_name. 32573 * c-decl.c (finish_decl): Use mark_decl_referenced. 32574 325752004-05-18 Andrew Pinski <pinskia@physics.uc.edu> 32576 Jeff Law <law@redhat.com> 32577 32578 * tree-ssa-phiopt.c (abs_replacement): New function. 32579 (empty_block_p): New function extracted from... 32580 (candidate_bb_for_phi_optimization): Break out empty block test. 32581 (conditional_replacement): Use empty_block_p. 32582 (value_replacement): Similarly. 32583 32584 * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h. 32585 * tree-ssa-phiopt.c: Include flags.h. 32586 (conditional_replacement): Remove argument names from prototype. 32587 Minor formatting and comment fixes. 32588 (tree_ssa_phiopt): If conditional_replacement returns false, then 32589 call value_replacement. 32590 (value_replacement): New function. 32591 325922004-05-18 Jeff Law <law@redhat.com> 32593 32594 * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted 32595 from conditional_replacement. 32596 (candidate_bb_for_phi_optimization): Similarly. 32597 (conditional_replacement): Use replace_phi_with_stmt and 32598 candidate_bb_for_phi_optimization. 32599 32600 * tree-ssa-phiopt.c: Fix various formatting issues. 32601 326022004-05-18 Steven Bosscher <stevenb@suse.de> 32603 32604 * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr, 32605 s390_expand_cmpmem): Do not use expand_start_loop and 32606 expand_end_loop, instead build the loop manually. 32607 326082004-05-18 Alan Modra <amodra@bigpond.net.au> 32609 32610 * config/rs6000/rs6000.md (ctrsi_internal3): Delete. 32611 (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete. 32612 326132004-05-17 Jeff Law <law@redhat.com> 32614 32615 * toplev.h (flag_delete_null_pointer_checks): Move from here to... 32616 * flags.h (flag_delete_null_pointer_checks): Here. 32617 * tree-flow.h (cprop_into_successor_phis): Add argument to prototype. 32618 * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO. 32619 (add_phi_arg, remove_phi_arg_num): Similarly. 32620 * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero 32621 property into PHI nodes. 32622 * tree-ssa-dom.c: Remove redundant inclusion of flags.h. 32623 (record_equivalences_from_phis): If all PHI arguments are known to be 32624 nonzero, then the result must be nonzero as well. 32625 (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis. 32626 (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks 32627 appropriately. Walk the USE-DEF chains and propagate nonzero property 32628 as appropriate. 32629 * tree.h (PHI_ARG_NONZERO): Define. 32630 (phi_arg_d): Add nonzero flag. 32631 326322004-05-17 Zack Weinberg <zack@codesourcery.com> 32633 32634 * f: Entire directory removed 32635 32636 * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE) 32637 (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE) 32638 (g77_integer_type_node, g77_uinteger_type_node) 32639 (g77_longint_type_node, or g77_ulongint_type_node): Delete. 32640 * c-common.c (c_common_nodes_and_builtins): Do not initialize 32641 the above set of variables. 32642 32643 * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET. 32644 * doc/invoke.texi, doc/standards.texi: Remove cross-references 32645 to g77 manual. 32646 326472004-05-17 Steven Bosscher <stevenb@suse.de> 32648 32649 PR tree-optimization/15438 32650 * tree-ssa-operands.c (get_expr_operands): Do not treat malloc 32651 attributed functions as pure or const. 32652 326532004-05-17 Frank Ch. Eigler <fche@redhat.com> 32654 32655 * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting 32656 from source code with errors. 32657 326582004-05-17 Ranjit Mathew <rmathew@hotmail.com> 32659 32660 Enable tree browser for all front ends. 32661 * Makefile.in (cc1): Moved @TREEBROWSER@ from here... 32662 (BACKEND): ...to here. 32663 326642004-05-17 Jan Hubicka <jh@suse.cz> 32665 32666 * i386.c (construct_container): Do not produce BLKmode registers. 32667 (classify_argument): Properly compute alignment of complex types. 32668 326692004-05-17 H.J. Lu <hongjiu.lu@intel.com> 32670 32671 PR target/15084 32672 * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode 32673 and renamed to movdi_insv_1_rex64. 32674 (insv): Support SImode for 32bit and DImode for 64bit. 32675 326762004-05-17 Richard Sandiford <rsandifo@redhat.com> 32677 32678 * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete. 32679 (TARGET_SWITCHES): Remove debugg. 32680 * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle 32681 TARGET_64BIT. 32682 (subdi3): Replace the define_expand with a define_insn, the latter 32683 renamed from subdi3_internal_3. 32684 (negdi2): Likewise negdi2_internal_2. 32685 (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3}) 32686 (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns 32687 and associated define_splits. 32688 (adddi3_internal): Renamed from adddi3_internal_3. 32689 (ashldi3_internal): Likewise ashldi3_internal4. 32690 (ashrdi3_internal): Likewise ashrdi3_internal4. 32691 (lshrdi3_internal): Likewise lshrdi3_internal4. 32692 326932004-05-17 Richard Sandiford <rsandifo@redhat.com> 32694 32695 * optabs.c (expand_unop): Try implementing negation using subtraction 32696 from zero. 32697 326982004-05-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 32699 32700 * pa.md: Fix typo from last change. Remove DFmode move to and from 32701 SAR register. 32702 327032004-05-16 Richard Earnshaw <rearnsha@arm.com> 32704 32705 PR target/10982 32706 * arm.md (ne_zeroextractsi): Convert to insn-and-split. 32707 (ne_zeroextractsi_shifted): New pattern. 32708 (ite_ne_zeroextractsi): New pattern. 32709 (ite_ne_zeroextractsi_shifted): New pattern. 32710 327112004-05-15 Steven Bosscher <stevenb@suse.de> 32712 32713 * c-gimplify.c (c_genericize): 32714 Replace calls via (*lang_hooks.foo) with lang_hooks.foo. 32715 * c-parse.in <expr_no_commas>: Likewise. 32716 <if_prefix>: Likewise. 32717 <select_or_iter_stmt>: Likewise. 32718 * expr.c (expand_var, expand_expr_real_1): Likewise. 32719 * expr.h (expand_expr): Make it a static inline function. 32720 Move prototype for expand_expr_real up before this. 32721 * fold-const.c (fold_relational_hi_lo, fold_relational_const): 32722 Likewise. 32723 * gimplify.c (gimple_boolify, gimplify_addr_expr, 32724 gimplify_asm_expr, gimplify_expr): Likewise. 32725 * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg, 32726 dump_function_to_file): Likewise. 32727 * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise. 32728 * tree-inline.c (remap_block, save_body, walk_tree): Likewise. 32729 * tree-into-ssa.c (dump_tree_ssa): Likewise. 32730 * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree): 32731 Likewise. 32732 * tree-optimize.c (execute_one_pass): Likewise. 32733 * tree-pretty-print.c (dump_generic_bb_buff): Likewise. 32734 * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise. 32735 32736 * objc/objc-act.c (objc_build_try_enter_fragment, 32737 objc_build_try_epilogue, objc_build_catch_stmt, 32738 objc_build_finally_prologue): Replace calls via (*lang_hooks.foo) 32739 with lang_hooks.foo (). 32740 327412004-05-15 Roger Sayle <roger@eyesopen.com> 32742 32743 * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so 32744 that simplify_builtin doesn't destructively modify its argument. 32745 327462004-05-15 Richard Earnshaw <reanrsha@arm.com> 32747 32748 * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM 32749 implementations for ARM and Thumb. 32750 * arm/t-arm-elf (LIB1ASMFUNCS): Use them. 32751 327522004-05-15 Thomas Quinot <quinot@act-europe.fr> 32753 32754 * prefix.c (update_path): Replace PREFIX with KEY only 32755 when it matches a full directory name in PATH. 32756 327572004-05-15 Richard Earnshaw <reanrsha@arm.com> 32758 32759 * arm.h (TARGET_APCS_32): Delete. 32760 (TARGET_MMU_TRAPS): Delete. 32761 (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__. Never 32762 define __APCS_26__. 32763 (CPP_SPEC): Remove checking of -mapcs-{26,32}. 32764 (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete. 32765 (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches. 32766 (prog_mode_type): Delete. 32767 (PROMOTE_MODE): Always promote unsigned for HImode. 32768 (SECONDARY_INPUT_RELOAD_CLASS): Simplify. 32769 (MASK_RETURN_ADDR): Simplify. 32770 * arm.c (arm_prgmode): Delete. 32771 (arm_override_options, arm_gen_rotated_half_load): Simplify. 32772 (print_multi_reg, output_return_instruction): Simplify. 32773 (arm_output_epilogue, arm_final_prescan_insn): Simplify. 32774 (arm_return_addr): Simplify. 32775 * arm.md (prog_mode): Delete. 32776 (conds): Simplify. 32777 (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify. 32778 (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete. 32779 (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete. 32780 (loadhi_shiftpredec): Delete. 32781 (peephole for post-increment on HImode load): Delete. 32782 * arm/crtn.asm: (FUNC_END): Simplify. 32783 * arm/lib1funcs.asm: Remove APCS-26 return macros. 32784 * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h 32785 * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h 32786 * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and 32787 MULTILIB_DEFAULTS as required. 32788 * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe 32789 * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB 32790 variables as required. 32791 * doc/invoke.texi (ARM Options): Remove obsolete flags. 32792 327932004-05-15 Alan Modra <amodra@bigpond.net.au> 32794 32795 * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use 32796 UNITS_PER_WORD to calculate gpr size. Re-instate code to set reg 32797 count to 8 to handle n_reg > 2. 32798 327992004-05-15 Joseph S. Myers <jsm@polyomino.org.uk> 32800 32801 * doc/extend.texi: Update WG14 URL. 32802 328032004-05-15 Steven Bosscher <stevenb@suse.de> 32804 32805 * basic-block.h (life_analysis, delete_noop_moves): 32806 Update prototypes. 32807 * bt-load.c (branch_target_load_optimize): Don't take the 32808 insns stream as an argument. Update the life_analysis calls. 32809 * combine.c (combine_instructions): Update delete_noop_moves 32810 calls. 32811 * flow.c (notice_stack_pointer_modification): Don't take the 32812 insns stream as an argument. Work on the flow graph. 32813 (life_analysis): Likewise. 32814 (delete_noop_moves): Likewise. 32815 * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call. 32816 (rest_of_handle_life): Update life_analysis call. 32817 (rest_of_compilation): Likewise, and also update 32818 branch_target_load_optimize call. 32819 * ra.c (reg_alloc): Update life_analysis call. 32820 * reg-stack.c (reg_to_stack): Likewise. Also, don't take 32821 the insns stream as an argument. 32822 * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves 32823 call. 32824 * rtl.c (branch_target_load_optimize, reg_to_stack): Update 32825 prototypes. 32826 * value-profile.c (branch_prob): Update life_analysis call. 32827 * web.c (web_main): Work on the CFG, not on the insns stream. 32828 32829 * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls. 32830 * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise. 32831 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 32832 328332004-05-15 Joseph S. Myers <jsm@polyomino.org.uk> 32834 32835 PR c/15444 32836 * c-format.c (avoid_dollar_number): New function. 32837 (check_format_info_main): Call avoid_dollar_number when operand 32838 numbers might occur but has_operand_number == 0. 32839 328402004-05-14 Richard Earnshaw <rearnsha@arm.com> 32841 32842 * arm.md (all peephole2 patterns): Use predicates that validate 32843 register classes as appropriate. 32844 328452004-05-14 Steven Bosscher <stevenb@suse.de> 32846 32847 PR opt/14472 32848 * tree-tailcall.c (process_assignment): Use STRIP_NOPS to 32849 ignore type conversions that do not inhibit tail calling. 32850 (find_tail_calls): Likewise. 32851 328522004-05-14 Jeff Law <law@redhat.com> 32853 32854 * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even 32855 bother marking bypassed virtuals for out-of-ssa. Instead merge 32856 bypassed virtuals into vars_to_rename just before into-ssa pass. 32857 32858 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize 32859 so that it picks up more opportunities to eliminate ABS expressions 32860 or turn them into negations. 32861 328622004-05-14 Steven Bosscher <stevenb@suse.de> 32863 32864 * passes.c (rest_of_handle_null_pointer): Remove. 32865 (rest_of_handle_cse): Don't call rest_of_handle_null_pointer. 32866 (rest_of_compilation): Likewise. 32867 * rtl.h (delete_null_pointer_checks): Remove prototype. 32868 * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out): 32869 Remove declarations. 32870 (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set, 32871 compute_kill_rd, compute_rd, alloc_avail_expr_mem, 32872 free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill, 32873 expr_reaches_here_p, computing_insn, def_reaches_here_p, 32874 can_disregard_other_sets, handle_avail_expr, classic_gcse, 32875 one_classic_gcse_pass, invalidate_nonnull_info, 32876 delete_null_pointer_checks_1, delete_null_pointer_checks, 32877 expr_reached_here_p_work): Remove. 32878 (gcse_main): Do not perform classic GCSE when optimizing for size. 32879 (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they 32880 are never used. 32881 328822004-05-14 Andrew Pinski <pinskia@physics.uc.edu> 32883 32884 PR optimization/14466 32885 * tree-complex.c (make_temp): Remove. 32886 (gimplify_val): Replace make_temp with make_rename_temp 32887 and add NULL as the second argument. 32888 (expand_complex_div_wide): Likewise. 32889 * tree-dfa.c (make_rename_temp): New function. 32890 * tree-flow.h (make_rename_temp): Declare. 32891 * tree-sra.c (make_temp): Remove. 32892 (lookup_scalar): Replace make_temp with make_rename_temp. 32893 (create_scalar_copies): Likewise. 32894 * tree-ssa-phiopt.c (conditional_replacement): When we 32895 get non gimple create a temporary variable to hold the 32896 casted expression. 32897 328982004-05-14 Paul Brook <paul@codesourcery.com> 32899 32900 * stor-layout.c (update_alignment_for_field): Use 32901 targetm.align_anon_bitfield. 32902 * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define. 32903 (TARGET_INITIALIZER): Use it. 32904 * target.h (struct gcc_target): Add align_anon_bitfield. 32905 * config/arm/arm.c (arm_align_anon_bitfield): New function. 32906 (TARGET_ALIGN_ANON_BITFIELD): Define. 32907 * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD. 32908 329092004-05-13 Zack Weinberg <zack@codesourcery.com> 32910 32911 * tree.def (documentation): Remove mention of class 'b'. 32912 (BLOCK): Now in class 'x'. 32913 * c-common.c (verify_tree): Remove case 'b'. 32914 * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'. 32915 * calls.c (calls_function_1): Control cannot get past the switch 32916 when exp is a BLOCK. 32917 * print-tree.c (print_node): Move code for class 'b' to the class 32918 'c'/'x' switch, as case BLOCK. 32919 * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise. 32920 (unsafe_for_reeval, substitute_placeholder_in_expr) 32921 (stabilize_reference_1): Remove case 'b'. 32922 * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS 32923 of something being 'b' to tests for TREE_CODE of something being 32924 BLOCK. 32925 * tree-ssa-operands.c (get_expr_operands): Likewise. 32926 329272004-05-13 Diego Novillo <dnovillo@redhat.com> 32928 32929 * tree-gimple.c: Rename from tree-simple.c. 32930 * tree-gimple.h: Rename from tree-simple.h. 32931 * c-gimplify.c: Rename from c-simplify.c 32932 * Makefile.in, c-decl.c, gimple-low.c, gimplify.c, 32933 langhooks.c, tree-alias-ander.c, tree-alias-common.c, 32934 tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c, 32935 tree-into-ssa.c, tree-iterator.c, tree-mudflap.c, 32936 tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c, 32937 tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c, 32938 tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c: 32939 Update. 32940 329412004-05-14 Ranjit Mathew <rmathew@hotmail.com> 32942 32943 * doc/sourcebuild.texi: Mention libbanshee and libmudflap. 32944 329452004-05-13 Andrew Pinski <pinskia@physics.uc.edu> 32946 32947 * tree-ssa.c (delete_tree_ssa): XFREE 32948 bitmaps allocated with BITMAP_XMALLOC. 32949 32950 * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and 32951 idfs_cache at the end of the function. 32952 32953 * tree-ssa-live.c (calculate_live_on_entry): Free saw_def 32954 at the end of the function. 32955 32956 * tree-ssa-dce.c (perform_tree_ssa_dce): Free 32957 el at the end of the function. 32958 32959 * tree-into-ssa.c (insert_phi_nodes_for): XFREE 32960 bitmaps allocated with BITMAP_XMALLOC. 32961 32962 * loop-unswitch.c (unswitch_single_loop): Free bbs at 32963 the end. 32964 32965 * final.c (shorten_branches): Free uid_shuid before 32966 reallocating it. 32967 32968 * bb-reoder.c (connect_traces): Free cold_traces at the end. 32969 329702004-05-13 Jeff Law <law@redhat.com> 32971 32972 * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual 32973 variables. Simplify slightly by using USE_OP/DEF_OP instead 32974 of USE_OP_PTR/DEF_OP_PTR and dereferencing the result. 32975 32976 * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP 32977 rather than iterating through the blocks testing each bit in 32978 livein to initialize the worklist. 32979 (mark_def_sites): Remove useless checks of KILLS for virtual 32980 operands. 32981 32982 * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept 32983 new parameters for the statement and variable worklist as well 32984 as a bitmap of interesting SSA_NAMEs. Walk over the statement 32985 worklist recording interesting variables in the variable worklist 32986 and bitmap. Handle casts between integral and boolean types. 32987 (substitute_single_use_vars): Accept new parameters for the statement 32988 and variable worklist. When a substitution is made add a new 32989 entry to the statement worklist. Handle casts between integral 32990 and boolean types. 32991 (tree_ssa_forward_propagate_single_use_vars): Rework to pass 32992 worklists to children. Iterate until the statement worklist 32993 is empty. 32994 329952004-05-13 Andrew Pinski <pinskia@physics.uc.edu> 32996 32997 * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at 32998 the end of the block. 32999 33000 * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated 33001 with BITMAP_XMALLOC. 33002 33003 * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated 33004 with BITMAP_XMALLOC. 33005 33006 * tree-ssa-dom.c (tree_ssa_dominator_optimize): 33007 Free nonzero_vars at the end of the function. 33008 33009 * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a 33010 need to generate code instead of a NOP_EXPR. 33011 330122004-05-13 Ian Lance Taylor <ian@wasabisystems.com> 33013 33014 * gcc.c (default_compilers): Fill out initializers for new Fortran 33015 entries. 33016 330172004-05-13 Paul Brook <paul@codesourcery.com> 33018 33019 * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define. 33020 330212004-05-13 Paul Brook <paul@codesourcery.com> 33022 33023 * config/arm/arm.c (arm_default_short_enums): New function. 33024 (TARGET_DEFAULT_SHORT_ENUMS): Define. 33025 330262004-05-13 Diego Novillo <dnovillo@redhat.com> 33027 33028 Merge from tree-ssa-20020619-branch. 33029 33030 * Makefile.in (reload1.o-warn): Add. 33031 (tree-alias-ander.o-warn): Add. 33032 (GMPLIBS): Define. 33033 (GMPINC): Define. 33034 (BANSHEELIB): Define. 33035 (BANSHEEINC): Define. 33036 (TREE_DUMP_H): Define. 33037 (TREE_SIMPLE_H): Define. 33038 (TREE_FLOW_H): Define. 33039 (LIBDEPS): Add BANSHEELIB. 33040 (INCLUDES): Add BANSHEEINC and GMPINC. 33041 (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o, 33042 c-mudflap.o and c-pretty-print.o. 33043 (C_OBJS): Remove c-pretty-print.o. 33044 (OBJS-common): Remove sibcall.o. 33045 Add tree-cfg.o, tree-dfa.o, tree-eh.o, 33046 tree-ssa.o, tree-optimize.o, tree-simple.o, 33047 tree-alias-type.o, gimplify.o, tree-pretty-print.o, 33048 tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o, 33049 tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o, 33050 tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o, 33051 tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o, 33052 tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o, 33053 tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o, 33054 tree-tailcall.o, gimple-low.o, tree-iterator.o, 33055 tree-phinodes.o, tree-ssanames.o, tree-sra.o, 33056 tree-complex.o, tree-ssa-loop.o, rtl-profile.o and 33057 tree-profile.o. 33058 (OBJC-archive): Add tree-nomudflap.o. 33059 (cc1): Add dependency on @TREEBROWSER@. 33060 (c-decl.o): Add dependency on TREE_DUMP_H. 33061 (c-dump.o): Likewise. 33062 (c-common.o): Add dependency on tree-iterator.h 33063 (c-pretty-print.o): Add dependency on DIAGNOSTIC_H. 33064 (gtype-desc.o): Add dependency on TREE_FLOW_H. 33065 (tree.o): Add dependency on tree-iterator.h, 33066 BASIC_BLOCK_H and TREE_FLOW_H. 33067 (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h. 33068 (langhooks.o): Add dependency on TREE_SIMPLE_H. 33069 (tree-alias-type.o, tree-alias-ander.o, 33070 tree-alias-common.o, tree-ssa.o, tree-into-ssa.o, 33071 tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o, 33072 tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o, 33073 tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o, 33074 domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o, 33075 tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o, 33076 tree-nested.o, tree-iterator.o, tree-dfa.o, 33077 tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o, 33078 tree-ssa-alias.o, tree-optimize.o, c-simplify.o, 33079 gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o, 33080 tree-mudflap.o, c-mudflap.o, tree-nomudflap.o, 33081 tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o, 33082 tree-sra.o, tree-complex.o, tree-profile.o, 33083 rtl-profile.o): New rules. 33084 (function.o): Add dependency on basic-block.h 33085 (expr.o): Add dependency on tree-iterator.h. 33086 (sibcall.o): Remove. 33087 (profile.o): Depend on TREE_FLOW_H instead of TREE_H. 33088 (cfg.o): Add dependency on TIMEVAR_H. 33089 (cfghooks.o): Add dependency on TREE_FLOW_H. 33090 (reg-stack.o): Add dependency on basic-block.h. 33091 (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h, 33092 c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c, 33093 tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c, 33094 tree-ssa-ccp.c, tree-iterator.c, gimplify.c, 33095 tree-alias-type.h, tree-alias-common.h, 33096 tree-alias-type.c, tree-alias-common.c, 33097 tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c, 33098 rtl-profile.c and tree-nested.c. 33099 (gt-tree-alias-common.h, gt-tree-mudflap.h, 33100 gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h, 33101 gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h, 33102 gt-tree-cfg.h, gt-tree-nested.h): New rules. 33103 (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi. 33104 * basic-block.h: Include predict.h 33105 (struct edge_def): Add GTY marker. 33106 Change field 'insns' to be a union of tree and rtx. 33107 (EDGE_TRUE_VALUE): Define. 33108 (EDGE_FALSE_VALUE): Define. 33109 (EDGE_EXECUTABLE): Define. 33110 (struct bb_ann_d): Forward declare. 33111 (struct basic_block_def): Add GTY marker. 33112 Remove fields head_tree and end_tree. 33113 Add fields stmt_list, rbi and tree_annotations. 33114 (struct reorder_block_def): Define. 33115 (basic_block_info): Add GTY marker. 33116 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global 33117 variables instead of macros. 33118 (flow_call_edges_add): Remove declaration. 33119 (make_eh_edge): Remove declaration. 33120 (brief_dump_cfg, find_edge, tree_predicted_by_p, 33121 rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge, 33122 predict_edge_def, rtl_make_eh_edge, find_basic_blocks, 33123 cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks, 33124 alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare. 33125 (try_redirect_by_replacing_jump): Modfiy return type to 33126 edge instead of bool. 33127 * bb-reorder.c (copy_bb): Call duplicate_block 33128 instead of cfg_layout_duplicate_bb. 33129 (copy_bb_p): Call can_duplicate_block_p instead of 33130 cfg_layout_can_duplicate_bb_p. 33131 * bitmap.c (bitmap_first_set_bit): Abort if word 33132 wasn't found. 33133 (bitmap_last_set_bit): Likewise. 33134 * builtin-types.def (DEF_FUNCTION_TYPE_2): Add 33135 (DEF_FUNCTION_TYPE_3): Add. 33136 * builtins.c (c_strlen): Make extern. 33137 (builtin_save_expr): New. 33138 (expand_builtin_nonlocal_goto): New. 33139 (expand_builtin_constant_p): Remove. 33140 (expand_builtin_mathfn): Call builtin_save_expr instead 33141 of save_expr. 33142 (expand_builtin_mathfn_2): Likewise. 33143 (expand_builtin_strcmp): Likewise. 33144 (expand_builtin_strncmp): Likewise. 33145 (expand_builtin_strcat): Likewise. 33146 (fold_builtin_cabs): Likewise. 33147 (expand_builtin_alloca): Don't trigger if -fmudflap is 33148 given. 33149 (build_string_literal): Set TREE_INVARIANT on new node. 33150 (expand_builtin_profile_fun): New. 33151 (round_trampoline_addr): New. 33152 (expand_builtin_init_trampoline): New. 33153 (expand_builtin_adjust_trampoline): New. 33154 (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg. 33155 <BUILT_IN_CONSTANT_P>: Return const0_rtx; 33156 <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE, 33157 BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO, 33158 BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT, 33159 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>: 33160 Handle. 33161 (fold_builtin_expect): New. 33162 (fold_builtin_isascii): Don't return non-constant results 33163 in GIMPLE form. 33164 (fold_builtin_isdigit): Likewise. 33165 (fold_builtin_1): New. 33166 (fold_builtin): Call it. 33167 (build_function_call_expr): Update call to build a new 33168 CALL_EXPR. 33169 (purge_builtin_constant_p): Remove. 33170 (simplify_builtin, simplify_builtin_memcmp, 33171 simplify_builtin_strcmp, simplify_builtin_strncmp, 33172 simplify_builtin_strpbrk, simplify_builtin_strstr, 33173 simplify_builtin_strchr, simplify_builtin_strrchr, 33174 simplify_builtin_strcat, simplify_builtin_strncat, 33175 simplify_builtin_strspn, simplify_builtin_strcspn, 33176 simplify_builtin_next_arg, simplify_builtin_va_start, 33177 simplify_builtin_sprintf): New. 33178 * builtins.def (BUILT_IN_STACK_ALLOC, 33179 BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, 33180 BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE, 33181 BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER, 33182 BUILT_IN_PROFILE_FUNC_EXIT): Define. 33183 * c-common.c: Include tree-iterator.h and hashtab.h. 33184 (lang_statement_code_p): Declare. 33185 (lang_gimplify_stmt): Declare. 33186 (fix_string_type): Set TREE_INVARIANT for value. 33187 (pointer_int_sum): Rely on build to set TREE_CONSTANT. 33188 (c_type_hash): New. 33189 (c_common_get_alias_set): Handle multiple type nodes 33190 referring to "the same" type, currently for C90 only. 33191 (c_add_case_label): Use create_artificial_label. 33192 (finish_label_address_expr): Don't set TREE_CONSTANT on 33193 result. 33194 (c_expand_expr): Don't handle STMT_EXPR. 33195 (handle_alias_attribute): Marke aliased variables to be 33196 TREE_STATIC. 33197 (handle_nonnull_attribute): Initialize arg_num. 33198 (check_function_nonnull): Likewise. 33199 (c_walk_subtrees): New. 33200 (c_estimate_num_insns_1): Don't handle 33201 EXPR_WITH_FILE_LOCATION nor FILE_STMT. 33202 (c_decl_uninit_1): Remove. 33203 (c_decl_uninit): Remove. 33204 (c_warn_unused_result): New. 33205 * c-common.def (ASM_STMT): Change number of operands 33206 to 4. 33207 (FILE_STMT): Remove. 33208 * c-common.h (lang_expand_stmt, lang_expand_decl_stmt): 33209 Remove. 33210 (lang_gimplify_stmt): Add. 33211 (expand_stmt): Remove. 33212 (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, 33213 ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT, 33214 ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE, 33215 FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P, 33216 ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove. 33217 (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, 33218 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, 33219 genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt, 33220 genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt, 33221 genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label, 33222 genrtl_compound_stmt, genrtl_asm_stmt, 33223 genrtl_cleanup_stmt, c_decl_uninit): Remove. 33224 (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees, 33225 c_tree_chain_matters_p, c_warn_unused_result, 33226 c_genericize, c_gimplify_stmt, stmt_expr_last_stmt): 33227 Declare. 33228 * c-convert.c (convert): Make convert work when 33229 converting to compatible types across translation unit. 33230 * c-decl.c: Include langhooks.h, tree-mudflap.h, 33231 tree-simple.h, diagnostic.h and tree-dump.h 33232 (merge_decls): Initialize oldtype to NULL. 33233 (finish_decl): Use DECL_HARD_REGISTER instead of 33234 DECL_C_HARD_REGISTER. 33235 (check_bitfield_type_and_width): Check for null 33236 lang_type_specific when check the precision of an enum. 33237 (grokdeclarator): Immediately layout an ARRAY_TYPE used 33238 in a pointer-to-array declarator. 33239 (finish_struct): Clear allocated struct lang_type. 33240 (finish_enum): Set enum_min and enum_max. Set 33241 TYPE_MIN/MAX_VALUE to the limits of the compatible type, 33242 not to the enumerators. 33243 (set_decl_nonlocal): New. 33244 (store_parm_decls): Use it via walk_tree. 33245 (c_finalize): New. 33246 (finish_function): When !targetm.have_ctors_dtors, 33247 record static constructors and destructors here... 33248 (c_expand_body_1): ... not here. 33249 (c_expand_decl): Rename from c_expand_decl_stmt. 33250 Handle all C-specific expansion semantics. 33251 * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of 33252 STMT_LINENO. 33253 * c-format.c (handle_format_arg_attribute): Initialize 33254 format_num. 33255 * c-lang.c: Include tree-inline.h 33256 (LANG_HOOKS_EXPAND_DECL, 33257 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, 33258 LANG_HOOKS_TREE_INLINING_WALK_SUBTREES, 33259 LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P, 33260 LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define. 33261 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, 33262 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove. 33263 (c_types_compatible_p): New. 33264 * c-mudflap.c: New file. 33265 * c-objc-common.c: Include tree-mudflap.h 33266 (start_cdtor, finish_cdtor): Collapse 33267 together into 33268 (build_cdtor): ...here. Update to construct a complete tree 33269 for the function. No need to call push_scope, pop_scope, or 33270 clear_last_expr, or set current_function_cannot_inline. 33271 (c_missing_noreturn_ok_p): Change prototype to return 33272 bool. 33273 (c_objc_common_init): Don't set lang_missing_noreturn_ok_p. 33274 * c-opts.c (c_common_handle_option): Move handling of -fdump- to 33275 opts.c. 33276 (c_common_post_options): Don't ever use rtl inlining. 33277 * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO. 33278 * c-pragma.c (handle_pragma_redefine_extname): Define 33279 always. 33280 (init_pragma): Activate #pragma redefine_extname for mudflap. 33281 * c-pretty-print.c (pp_c_statement): Remove FILE_STMT. 33282 (pp_c_initializer): Accept any type CONSTRUCTOR. 33283 (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and 33284 COMPLEX_TYPE. 33285 (decl_name_str): New local function. 33286 (pp_c_direct_declarator): Call it. 33287 (pp_c_primary_expression): Call it. 33288 (pp_c_id_expression): Call it. 33289 (pp_c_statement): Call it. 33290 (print_c_tree): Create new pp object. 33291 * c-pretty-print.h (pp_c_tree_decl_identifier, 33292 print_c_tree): Declare. 33293 * c-semantics.c: Include langhooks.h 33294 (lang_expand_stmt, lang_expand_decl_stmt, 33295 find_reachable_label_1, find_reachable_label, 33296 expand_unreachable_if_stmt, expand_unreachable_stmt, 33297 genrtl_do_stmt_1): Remove. 33298 (begin_stmt_tree): Don't check for changed filename. 33299 Call annotate_with_locus. 33300 (finish_stmt_tree): Don't set line for end of function. 33301 (build_stmt): Don't check type nodes for 33302 side effects. 33303 (build_stmt): Set TREE_SIDE_EFFECTS. 33304 Set EXPR_LOCUS instead of STMT_LINENO. 33305 (lang_expand_stmt, lang_expand_decl_stmt, 33306 expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt, 33307 genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt, 33308 genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt, 33309 genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt, 33310 genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt, 33311 genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt, 33312 genrtl_cleanup_stmt, expand_stmt, find_reachable_label, 33313 find_reachable_label_1, expand_unreachable_if_stmt, 33314 expand_unreachable_stmt): Remove. 33315 (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO. 33316 * c-simplify.c: New file. 33317 * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define. 33318 (struct lang_type): Add fields enum_min and enum_max. 33319 (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove. 33320 (c_expand_decl, c_missing_noreturn_ok_p, 33321 c_types_compatible_p): Declare. 33322 * c-typeck.c (tagged_types_tu_compatible_p): Allow for 33323 compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE. 33324 (default_function_array_conversion): Rely on build to 33325 set TREE_CONSTANT. 33326 (parser_build_binary_op, pointer_diff): Likewise. 33327 (build_unary_op, build_binary_op): Likewise. 33328 (build_array_ref): 33329 (build_external_ref): Set TREE_INVARIANT. 33330 (build_c_cast, pop_init_level): Likewise. 33331 (process_init_element): Use ASM_VOLATILE_P. 33332 (build_asm_expr): Adapt to GENERIC/GIMPLE syntax. 33333 (c_finish_case): Call c_do_switch_warnings. 33334 * c.opt (fdump-): Remove. 33335 * calls.c (try_to_integrate): Remove. 33336 (prepare_call_address): Replace fndecl arg with a 33337 precomputed static chain value. 33338 (emit_call_1): New argument for full call expr. 33339 (flags_from_decl_or_type): Call special_function_p. 33340 (initialize_argument_information): Add argument 33341 may_tailcall. 33342 (purge_reg_equiv_notes): New. 33343 (expand_call): Do not try to expand calls inline. 33344 (fixup_tail_calls): New. 33345 * cfg.c: Include timevar.h and ggc.h. 33346 (bb_pool, edge_pool): Remove. 33347 (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare. 33348 (entry_exit_blocks): Remove. 33349 (rbi_pool): Declare. 33350 (init_flow): Do not create pools. 33351 Allocate entry/exit block. 33352 (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC. 33353 (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New. 33354 (unlink_block): Clear b->prev_bb and b->next_bb. 33355 (compact_blocks): Clear all slots of BASIC_BLOCK array. 33356 (dump_flow_info): Work on trees too. 33357 (dump_cfg_bb_info): New. 33358 (brief_dump_cfg): New. 33359 * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove. 33360 (find_edge): New. 33361 * cfgbuild.c (rtl_make_eh_edge): Rename from 33362 make_eh_edge. Update all users. 33363 (find_basic_blocks): Don't call VARRAY_FREE on 33364 basic_block_info. 33365 * cfgcleanup.c (outgoing_edges_match): Initialize newpos1 33366 and newpos2. 33367 (delete_unreachable_blocks): Return changed status. 33368 (merge_seq_blocks): New. 33369 * cfghooks.c: Include tree-flow.h 33370 (tree_register_cfg_hooks, ir_type): New. 33371 (redirect_edge_and_branch): Change return type to edge. 33372 (predict_edge, predicted_by_p, can_duplicate_block_p, 33373 duplicate_block, block_ends_with_call_p, 33374 block_ends_with_condjump_p, flow_call_edges_add): New. 33375 * cfghooks.h (redirect_edge_and_branch): Change return 33376 type to edge. 33377 (predict_edge, predicted_by_p, can_duplicate_block_p, 33378 duplicate_block, block_ends_with_call_p, 33379 block_ends_with_condjump_p, flow_call_edges_add): Declare. 33380 (redirect_edge_and_branch): Change return type to edge. 33381 (struct cfg_hooks): Add fields block_ends_with_call_p, 33382 block_ends_with_condjump_p, flow_call_edges_add, 33383 predict_edge, predicted_by_p, can_duplicate_block_p and 33384 duplicate_block. 33385 (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare. 33386 * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed. 33387 (fixup_reorder_chain): Use initialize_bb_rbi. 33388 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized. 33389 (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions. 33390 (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication. 33391 (insn_locators_initialize): Use new info about blocks. 33392 * cfglayout.h (typedef struct reorder_block_def): Moved to 33393 basic_block.h. 33394 (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration 33395 removed. 33396 * cfgloop.c: Include tree.h and tree-flow.h. 33397 * cfgloop.h (create_loop_notes): Declare. 33398 * cfgloopmanip.c (create_loop_notes): New. 33399 * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi. 33400 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p 33401 and duplicate_block fields. 33402 (create_basic_block_structure): Don't look at 33403 RTX_INTEGRATED_P. 33404 (rtl_block_ends_with_call_p): New. 33405 (rtl_block_ends_with_condjump_p): New. 33406 (need_fake_edge_p): Moved from cfganal.c. 33407 (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add). 33408 (rtl_cfg_hooks): Add rtl_block_ends_with_call_p, 33409 rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add. 33410 (cfg_layout_rtl_cfg_hooks): Ditto. 33411 * cgraph.c (cgraph_mark_reachable_node): Don't force nested 33412 functions to be reachable. 33413 * cgraphunit.c (decide_is_function_needed): 33414 * cgraphunit.c (decide_is_function_needed): Nested functions of extern 33415 inline functions don't need to be output. 33416 (cgraph_assemble_pending_functions): Don't do anything 33417 special for nested functions. 33418 (cgraph_mark_functions_to_output): Likewise. 33419 (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION. 33420 (cgraph_analyze_function): Use estimate_num_insns. 33421 (cgraph_mark_functions_to_output): Likewise. 33422 (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise. 33423 (cgraph_expand_function): Allow functions to not be 33424 emitted. 33425 (cgraph_remove_unreachable_nodes): 33426 (cgraph_recursive_inlining_p): Simplify. 33427 (lookup_recursive_calls, 33428 cgraph_decide_recursive_inlining): New. 33429 (cgraph_decide_inlining_*): Update calls of 33430 cgraph_mark_inline. 33431 * combine.c (get_pos_from_mask): Always set *plen. 33432 * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir, 33433 ftree-based-profiling, ftree-ccp, ftree-ch, 33434 ftree-combine-temps, ftree-copyrename, ftree-dce, 33435 ftree-dominator-opts, ftree-dse, ftree-loop-optimize, 33436 ftree-points-to, ftree-pre, ftree-sra, ftree-ter, 33437 ftree-lrs): Add. 33438 * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR): 33439 Undefine. 33440 * configure.ac: Add --enable-tree-browser option. 33441 Add --with-libbanshee option. 33442 Add GMPLIBS and GMPINC. 33443 * configure: Regenerate. 33444 * coverage.c (tree_ctr_tables): New. 33445 (coverage_counter_alloc): Use it. 33446 (build_ctr_info_value): Ditto. 33447 (coverage_counter_ref): Ditto. Rename to rtl_coverage_counter_ref. 33448 (tree_coverage_counter_ref): New. 33449 * coverage.h (coverage_counter_ref): Remove declaration. 33450 (rtl_coverage_counter_ref): Declare. 33451 (tree_coverage_counter_ref): Declare. 33452 * cppexp.c (append_digit): Rearrange unsignedp/overflow setting. 33453 (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise. 33454 * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX. 33455 (struct cse_basic_block_data): Rename enum values to not 33456 conflict with profile.h; update all uses. 33457 * dbxout.c (dbxout_symbol_location): Don't mention integrate.c 33458 in comments. 33459 * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c. 33460 * diagnostic.h (debug_output_buffer, dump_generic_node, 33461 print_generic_stmt, print_generic_stmt_indented, 33462 print_generic_expr, print_generic_decl, 33463 debug_generic_expr, debug_generic_stmt, debug_c_tree): 33464 Declare. 33465 * dominance.c: Cache immediate dominators. 33466 * domwalk.c: New file. 33467 * domwalk.h: New file. 33468 * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95. 33469 (gen_subprogram_die): Generate a DIE for a named 33470 return value. 33471 (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL. 33472 (add_location_or_const_value_attribute): Likewise. 33473 (add_bound_info): Likewise. 33474 (gen_decl_die): Likewise. 33475 * emit-rtl.c (maybe_set_first_label_num): New. 33476 (copy_most_rtx): Don't copy the integrated flag. 33477 Copy the new return_val flag. 33478 * et-forest.c (MAX_NODES): Define. 33479 (record_path_before_1): Abort if len is greater than 33480 MAX_NODES. 33481 * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try, 33482 gen_eh_region_catch, gen_eh_region_allowed, 33483 gen_eh_region_must_not_throw, get_eh_region_number, 33484 get_eh_region_may_contain_throw, get_eh_region_tree_label, 33485 set_eh_region_tree_label, expand_resx_expr): New. 33486 (expand_eh_region_start, expand_start_catch): Use them. 33487 (expand_end_catch): Tidy. 33488 (note_eh_region_may_contain_throw): Take region argument. 33489 (note_current_region_may_contain_throw): New. 33490 (get_exception_filter): Export. 33491 (collect_eh_region_array): Export. 33492 (remove_unreachable_regions): Check ERT_TRY based on reachability 33493 of catches, not reachability of continue_label. Never remove 33494 ERT_MUST_NOT_THROW regions. 33495 (collect_rtl_labels_from_trees): New. 33496 (convert_from_eh_region_ranges): Use it. 33497 (connect_post_landing_pads): Handle dying cleanups. 33498 (struct reachable_info): Add callback data. 33499 (add_reachable_handler): Invoke the callback. 33500 (foreach_reachable_handler): New. 33501 (reachable_handlers): Use it. 33502 (arh_to_landing_pad, arh_to_label): New. 33503 (can_throw_internal_1): Split out from can_throw_internal. 33504 (can_throw_external_1): Similarly. 33505 * except.h: Update. 33506 * explow.c (emit_stack_save): Remove savearea mode check. 33507 (update_nonlocal_goto_save_area): New. 33508 (allocate_dynamic_stack_space): Use it. 33509 (probe_stack_range): Never emit loop notes. 33510 * expmed.c (extract_fixed_bit_field): Always propagate the 33511 target for the shift if it is a REG. 33512 * expr.c: Include tree-iterator.h 33513 (is_zeros_p): Remove. 33514 (categorize_ctor_elements_1, categorize_ctor_elements): New. 33515 (count_type_elements): New. 33516 (mostly_zeros_p): Use them. 33517 (expr_wfl_stack): Remove. 33518 (convert_move): Do nothing if to and from are the same. 33519 (emit_block_move_via_loop): Don't emit LOOP notes. 33520 (emit_move_insn): Don't handle CONSTANT_P_RTX. 33521 (emit_move_insn_1): Don't generate inline warnings. 33522 (expand_vars, expand_var): Split from ... 33523 (expand_expr_1): ... here. 33524 (expand_expr_real, expand_expr_real_1): Use new macros 33525 EXPR_LOCATION and EXPR_HAS_LOCATION. 33526 * expr.h (simplify_builtin_fputs, 33527 simplify_builtin_strcpy, simplify_builtin_strncpy, 33528 expand_var, fixup_tail_calls, 33529 update_nonlocal_goto_save_area): Declare. 33530 (lookup_static_chain, expand_inline_function, 33531 mark_seen_cases): Remove. 33532 (prepare_call_address): Change type of 2nd argument to 33533 rtx. 33534 * final.c (profile_function): Update static chain test. 33535 (final): Don't look at RTX_INTEGRATED_P. 33536 * flags.h (flag_mudflap, flag_mudflap_threads, 33537 flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp, 33538 flag_tree_dce, flag_tree_combine_temps, 33539 flag_tree_live_range_split, flag_tree_dom, flag_tree_ch, 33540 flag_tree_dse, flag_tree_sra, flag_tree_copyrename, 33541 flag_tree_points_to): Declare. 33542 (enum pta_type): Declare. 33543 * flow.c (lang_missing_noreturn_ok_p): Remove. 33544 (check_function_return_warnings): Remove. 33545 (update_life_info): Update comments. 33546 (free_basic_block_vars): Don't call VARRAY_FREE for 33547 basic_block_info. 33548 (regno_uninitialized): Remove. 33549 * fold-const.c (int_const_binop): Make extern. 33550 (non_lvalue): Rely on build to set TREE_CONSTANT. 33551 (operand_equal_p): Replace only_const argument with 33552 flags. Allow pure functions if OEP_PURE_SAME. 33553 (fold): Use OEP_ONLY_CONST. 33554 (invert_truthvalue) <NOP_EXPR> Break if argument is of 33555 boolean type. 33556 (fold_relational_hi_lo, 33557 nondestructive_fold_binary_to_constant, 33558 nondestructive_fold_unary_to_constant, 33559 fold_read_from_constant_string): New. 33560 * function.c (struct function): Remove calls_constant_p. 33561 (current_function_calls_constant_p): Remove. 33562 (inline_function_decl): Remove. 33563 (put_var_into_stack): Don't use it. 33564 (fix_lexical_addr): Likewise. 33565 (inline_function_decl): Remove extern declaration. 33566 (TRAMPOLINE_ALIGNMENT): Move to defaults.h. 33567 (trampolines_created): Move to varasm.c. 33568 (free_after_compilation): Update for removed fields. 33569 (allocate_struct_function): Likewise. 33570 (delete_handlers, lookup_static_chain): Remove. 33571 (fix_lexical_addr): Don't consider non-local variable refs. 33572 (trampoline_address): Remove. 33573 (round_trampoline_addr): Move to builtins.c. 33574 (adjust_trampoline_addr): Remove. 33575 (expand_function_start): Update for changes to static chain 33576 and nonlocal goto handling. 33577 (initial_trampoline): Move to varasm.c. 33578 (expand_function_end): Don't build trampolines or kill 33579 unreferenced nonlocal goto labels. 33580 (free_after_compilation): Don't set it. 33581 (expand_function_end): Likewise. 33582 (setjmp_vars_warning): Rename from 33583 uninitialized_vars_warning, remove uninitialized vars warning. 33584 (uninitialized_vars_warning): Remove old comment 33585 and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING 33586 and do not call the langhook. 33587 (expand_function_start, expand_function_end): Don't do 33588 function instrumentation here. 33589 (clear_block_marks): Rename from reorder_blocks_0, export. 33590 (blocks_nreverse): Export. 33591 (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence 33592 of rtl. 33593 (reset_block_changes, record_block_change, finalize_block_changes, 33594 check_block_change, free_block_changes): New functions. 33595 (assign_parms): Setting of current_function_stdarg 33596 moved ... 33597 (allocate_struct_function): ... here. 33598 * function.h (struct function): Remove x_nonlocal_labels, 33599 x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level, 33600 x_context_display, x_trampoline_list, needs_context. 33601 Add static_chain_decl, nonlocal_goto_save_area. 33602 (struct function): Remove x_clobber_return_insn. 33603 Add tail_call_emit field, last_label_uid, 33604 unexpanded_var_list, dont_emit_block_notes, 33605 ib_boundaries_block, function_end_locus and saved_tree/saved_args. 33606 (clear_block_marks): Declare. 33607 * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support. 33608 (mfwrap_spec, mflib_spec): Declare. 33609 (cpp_unique_options, cc1_options): Ditto. 33610 (default_compilers): Add .F and .f90. 33611 (static_specs): Add mfwrap and mflib. 33612 * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle 33613 CONSTANT_RTX_P. 33614 (reg_used_on_edge, reg_killed_on_edge, bypass_block): 33615 Update to match insns field in struct edge_def. 33616 * gdbinit.in (pgs, pge): Define. 33617 * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag 33618 instead of the integrated flag. 33619 * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT 33620 * gengtype-yacc.y (bitfieldlen): Add empty action. 33621 (struct_fields): Accept unnamed bitfields. 33622 (bitfieldlen): Split from ... 33623 (bitfieldopt): ... here. 33624 * gengtype.c (ifiles): Add tree-alias-type.h and 33625 tree-flow.h. 33626 * genrecog.c (validate_pattern): Do not handle 33627 CONSTANT_P_RTX. 33628 * gimple-low.c: New file. 33629 * gimplify.c: New file. 33630 * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX. 33631 (restore_line_notes): Do not set RTX_INTEGRATED_P. 33632 * ifcvt.c (dead_or_predicable): Initialize local variable 33633 'earliest'. 33634 * input.h (expr_wfl_stack): Remove. 33635 * integrate.c (INTEGRATE_THRESHOLD): Remove. 33636 (setup_initial_hard_reg_value_integration): Likewise. 33637 (initialize_for_inline): Likewise. 33638 (note_modified_parmregs): Likewise. 33639 (integrate_parm_decls): Likewise. 33640 (process_reg_param): Likewise. 33641 (save_parm_insns): Likewise. 33642 (copy_insn_list): Likewise. 33643 (copy_insn_notes): Likewise. 33644 (compare_blocks): Likewise. 33645 (find_block): Likewise. 33646 (inlining): Likewise. 33647 (function_cannot_inline_p): Likewise. 33648 (parmdecl_map): Likewise. 33649 (in_nonparam_insns): Likewise. 33650 (save_for_inline): Likewise. 33651 (FIXED_BASE_PLUS): Likewise. 33652 (expand_inline_function): Likewise. 33653 (copy_rtx_and_substitute): Don't look at map->integrating, 33654 map->inline_target, and inlining, since we are never copying 33655 for integrating. 33656 Don't abort on RTX_INTEGRATED_P. 33657 (old_fun): Remove. 33658 (output_inline_function): Remove. 33659 * integrate.h (struct inline_map): Remove fields integrating, 33660 block_map, leaf_reg_map, inline_target, and local_return_label. 33661 * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test, 33662 copy_loop_headers, never_reached_warning): Removed. 33663 (any_uncondjump_p): Reject nonlocal goto. 33664 * langhooks-def.h (lhd_types_compatible_p, 33665 lhd_expand_decl, lhd_gimplify_expr): Declare. 33666 (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P, 33667 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, 33668 LANG_HOOKS_FUNCTION_LEAVE_NESTED, 33669 LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P, 33670 LANG_HOOKS_GIMPLIFY_EXPR, 33671 LANG_HOOKS_GIMPLE_BEFORE_INLINING, 33672 LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P, 33673 LANG_HOOKS_GIMPLIFY_EXPR, 33674 LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define. 33675 (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START, 33676 LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END, 33677 LANG_HOOKS_FUNCTION_LEAVE_NESTED, 33678 LANG_HOOKS_RTL_EXPAND_INITIALIZER, 33679 LANG_HOOKS_DECL_UNINIT, 33680 LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove. 33681 * langhooks.c: Include tree-simple.h. 33682 (lhd_expand_decl): New. 33683 (lhd_types_compatible_p): New. 33684 (lhd_decl_uninit): Remove. 33685 (lhd_gimplify_expr): New. 33686 * langhooks.h (struct lang_hooks_for_rtl_expansion): 33687 Remove. 33688 (struct lang_hooks_for_functions): Add field 33689 missing_noreturn_ok_p. 33690 (struct lang_hooks): Add field expand_decl, 33691 types_compatible_p, gimplify_expr and 33692 gimple_before_inlining. 33693 Remove fields decl_uninit and rtl_expand 33694 * opts.c (decode_options): Set flag_tree_ccp, 33695 flag_tree_dce, flag_tree_dom, flag_tree_dse, 33696 flag_tree_pre, flag_tree_ter, 33697 flag_tree_live_range_split, flag_tree_sra, 33698 flag_tree_copyrename and flag_tree_ch at -O1 and higher. 33699 (common_handle_option): Handle OPT_fdump_, OPT_fmudflap, 33700 OPT_fmudflapth, OPT_fmudflapir, 33701 OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce, 33702 OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs, 33703 OPT_ftree_dominator_opts, OPT_ftree_copyrename, 33704 OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra, 33705 OPT_ftree_points_to_ and OPT_ftree_pre. 33706 * output.h (regno_uninitialized, find_basic_blocks, 33707 cleanup_cfg, delete_unreachable_blocks, 33708 check_function_return_warnings): Remove. 33709 * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE, 33710 PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO, 33711 PARAM_MAX_INLINE_RECURSIVE_DEPTH, 33712 PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO, 33713 PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS): 33714 * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS): 33715 Define. 33716 * passes.c (rest_of_decl_compilation): 33717 (rest_of_handle_sibling_calls): Remove. 33718 (rest_of_handle_inlining): Remove. 33719 (rest_of_handle_gcse): Do not run 33720 purge_builtin_constant_p. 33721 (rest_of_compilation): Update. 33722 Do not call copy_loop_headers. 33723 Do rtl-based profiling only when 33724 !flag_tree_based_profiling. Register rtl-based profiling 33725 hooks. 33726 * predict.c: Include tree-flow.h, ggc.h, tree-dump.h 33727 (predicted_by_p): Rename to ... 33728 (rtl_predicted_by_p): .. this one; make global 33729 (tree_predicted_by_p): New. 33730 (dump_prediction): Add FILE argument. 33731 (predict_edge): Rename to ... 33732 (rtl_predict_edge): .. this one. 33733 (tree_predict_edge): New. 33734 (combine_predictions_for_insn): Update calls of predict_edge. 33735 (predict_loops): Break out from ... 33736 (estimate_probability): ... here; update comments; move updating 33737 of unknown probabilities from ... 33738 (estimate_bb_frequencies): ... here. 33739 (combine_predictions_for_bb): New. 33740 (tree_predict_by_opcode): New. 33741 (tree_estimate_probability): New. 33742 * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE, 33743 PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors. 33744 * predict.h: Add include guard. 33745 (predict_edge, predict_edge_def): Move prototypes to basic_block.h 33746 * pretty-print.c (pp_write_text_to_stream): Make extern. 33747 * pretty-print.h (pp_write_text_to_stream): Declare. 33748 * print-rtl.c (print_rtx): Don't print the integrated flag. 33749 Print the return_val flag. 33750 * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead 33751 of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively. 33752 Remove support for EXPR_WITH_FILE_LOCATION nodes. 33753 (print_node): Print TREE_INVARIANT and TREE_VISITED. 33754 * profile.c: Include cfghooks.h, tree-flow.h. 33755 (profile_hooks): New. 33756 (profile_dump_file): New. 33757 (instrument_edges): Use hooks instead of RTL-specific code. 33758 (instrument_values): Ditto. 33759 (get_exec_counts): Ditto. 33760 (compute_branch_probabilities): Ditto. 33761 (compute_value_histograms): Ditto. 33762 (branch_prob): Ditto. 33763 (find_spanning_tree): Ditto. 33764 (end_branch_prob): Ditto. 33765 (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler). 33766 (gen_interval_profiler): Ditto (rtl_gen_interval_profiler). 33767 (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler). 33768 (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler). 33769 (tree_register_profile_hooks): New. 33770 (rtl_register_profile_hooks): New. 33771 * ra-rewrite.c (rewrite_program): Clear variable info. 33772 * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX. 33773 * regs.h: Add include guards. 33774 * reload.c (decompose): Clear val using memset. 33775 * rtl.def (CONSTANT_P_RTX): Remove. 33776 * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX. 33777 (copy_loop_headers): Remove. 33778 (struct rtx_def): Replace the integrated flag with the 33779 return_val flag. 33780 (maybe_set_first_label_num): Declare. 33781 (init_branch_prob): Move declaration to value-prof.h. 33782 (end_branch_prob): Ditto. 33783 (branch_prob): Ditto. 33784 (never_reached_warning): Don't declare it. 33785 * rtlanal.c (get_related_value): Initialize get_jump_table_offset 33786 (hoist_insn_to_edge): Update to match field insns in 33787 struct edge_def. 33788 * sbitmap.c (sbitmap_realloc): New. 33789 * sbitmap.h (sbitmap_realloc): Declare. 33790 * sibcall.c: Remove file. 33791 * simplify-rtx.c (simplify_rtx): Do not handle 33792 CONSTANT_P_RTX. 33793 * stmt.c (parse_output_constraint): Don't warn for read-write 33794 memory operand. 33795 (tail_recursion_args): Use types_compatible_p langhook. 33796 (force_label_rtx): Don't look at inline_function_decl. 33797 (label_rtx): Set LABEL_PRESERVE_P appropriately. 33798 (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL. 33799 (declare_nonlocal_label): Remove. 33800 (expand_goto): Don't handle nonlocal gotos. 33801 (expand_nl_handler_label): Remove. 33802 (expand_nl_goto_receivers): Remove. 33803 (expand_end_bindings): Don't expand_nl_goto_receivers. Use 33804 update_nonlocal_goto_save_area. 33805 (expand_expr_stmt_value): Check TREE_NO_WARNING. 33806 (warn_if_unused_value): Likewise. 33807 (expand_start_loop, expand_loop_continue_here, 33808 expand_end_loop): Don't create loop notes. 33809 (all_cases_count, BITARRAY_TEST, BITARRAY_SET, 33810 mark_seen_cases, check_for_full_enumeration_handling): Remove. 33811 (expand_end_case_type): Don't do warn_switch handling. 33812 (pushcase, pushcase_range) Update add_case_node calls. 33813 (add_case_node): Add dont_expand_label argument. 33814 (same_case_target_p): Don't search rtl. 33815 (expand_start_bindings_and_block, expand_end_bindings): 33816 Don't emit block notes when dont_emit_block_notes. 33817 (using_eh_for_cleanups_p): Export. 33818 (expand_return): Allow any typed rhs. 33819 (expand_stack_alloc): New. 33820 (expand_stack_save, expand_stack_restore): New. 33821 (containing_blocks_have_cleanups_or_stack_level): New 33822 function. 33823 (asm_op_is_mem_input): New fn. 33824 (expand_asm_expr): New fn. 33825 (warn_if_unused_value): Check operand 0 of SAVE_EXPR 33826 nodes. 33827 * stor-layout.c (layout_type): Just return if type is 33828 error_mark_node. 33829 (update_alignment_for_field): Export. 33830 (variable_size): We don't care about global_bindings_p if 33831 the frontend doesn't want a list of the expressions. 33832 * system.h: Poison INTEGRATE_THRESHOLD. 33833 * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG, 33834 TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS, 33835 TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS, 33836 TV_TREE_SSA_OTHER, TV_TREE_OPS, 33837 TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP, 33838 TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT, 33839 TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE, 33840 TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH, 33841 TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL, 33842 TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY, 33843 TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS, 33844 TV_CONTROL_DEPENDENCES): Define. 33845 * toplev.c: Include tree-alias-common.h 33846 (current_file_decl, flag_mudflap, flag_mudflap_threads, 33847 flag_mudflap_ignore_reads, flag_tree_based_profiling, 33848 flag_tree_gvn, flag_tree_points_to, flag_tree_ccp, 33849 flag_tree_dce, flag_tree_ch, flag_tree_sra, 33850 flag_tree_combine_temps, flag_tree_ter, 33851 flag_tree_live_range_split, flag_tree_dom, 33852 flag_tree_copyrename, flag_tree_dse): Declare. 33853 (f_options): Add tree-based-profiling, tree-gvn, 33854 tree-pre, tree-ccp, tree-dce, 33855 tree-dominator-opts, tree-copyrename, tree-dse, 33856 tree-combine-temps, tree-ter, tree-lrs and tree-ch. 33857 (wrapup_global_declarations): Don't output nested inlined functions. 33858 (general_init): Call init_tree_optimization_passes. 33859 (process_options): Sorry for -ftree-based-profiling plus 33860 -ftest-coverage or -fprofile-values. 33861 * toplev.h (init_tree_optimization_passes, 33862 flag_tree_based_profiling): Declare. 33863 * tracer.c (tail_duplicate): Use cfghooks for bb duplication. 33864 * tree-alias-ander.c: New file. 33865 * tree-alias-ander.h: New file. 33866 * tree-alias-common.c: New file. 33867 * tree-alias-common.h: New file. 33868 * tree-alias-type.c: New file. 33869 * tree-alias-type.h: New file. 33870 * tree-browser.c: New file. 33871 * tree-browser.def: New file. 33872 * tree-cfg.c: New file. 33873 * tree-complex.c: New file. 33874 * tree-dfa.c: New file. 33875 * tree-dump.c (dump_enable_all): New. 33876 (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION. 33877 (dump_node): Remove const from field suffix and swtch. 33878 (dump_files): Add null entry, .generic, .nested, .vcg, 33879 .xml and a match-all entry. 33880 (extra_dump_files, extra_dump_files_in_use, 33881 extra_dump_files_alloced): Declare 33882 (dump_option_value_info): Add raw, details, stats, 33883 blocks, vops, lineno, uid and all. 33884 (dump_register): New. 33885 (get_dump_file_info): New. 33886 (dump_begin): Call it. 33887 Do nothing for TDI_none. 33888 (dump_begin): Include phase number in dump filename. 33889 (dump_enable_all): New. 33890 (dump_switch_p_1): Split out from dump_switch_p. 33891 (dump_switch_p): Handle extra_dump_files. 33892 Start our scan at TDI_none + 1. 33893 If -fdump-tree-all was given, call dump_enable_all. 33894 * tree-dump.h: Include splay-tree.h. 33895 (dump_function, dump_function_to_file, dump_register): 33896 Declare. 33897 * tree-eh.c: New file. 33898 * tree-flow-inline.h: New file. 33899 * tree-flow.h: New file. 33900 * tree-inline.c: Re-write to handle inlining on GIMPLE. 33901 * tree-inline.h (walk_tree, 33902 walk_tree_without_duplicates): Move to tree.h. 33903 (estimate_num_insns): Declare. 33904 * tree-into-ssa.c: New file. 33905 * tree-iterator.c: New file. 33906 * tree-iterator.h: New file. 33907 * tree-mudflap.c: New file. 33908 * tree-mudflap.h: New file. 33909 * tree-nested.c: New file. 33910 * tree-nomudflap.c: New file. 33911 * tree-nrv.c: New file. 33912 * tree-optimize.c (dump_flags, vars_to_rename, 33913 in_gimple_form, all_passes, pass_gimple, 33914 pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare. 33915 (execute_gimple, execute_rebuild_bind, 33916 gate_all_optimizations, execute_del_cfg, 33917 register_one_dump_file, register_dump_files, dup_pass_1, 33918 init_tree_optimization_passes, execute_todo, 33919 execute_one_pass, execute_pass_list): New. 33920 (clear_decl_rtl): Remove. 33921 (tree_rest_of_compilation): Update to use tree 33922 optimizers. 33923 * tree-outof-ssa.c: New file. 33924 * tree-pass.h: New file. 33925 * tree-phinodes.c: New file. 33926 * tree-pretty-print.c: New file. 33927 * tree-profile.c: New file. 33928 * tree-simple.c: New file. 33929 * tree-simple.h: New file. 33930 * tree-sra.c: New file. 33931 * tree-ssa-alias.c: New file. 33932 * tree-ssa-ccp.c: New file. 33933 * tree-ssa-copy.c: New file. 33934 * tree-ssa-copyrename.c: New file. 33935 * tree-ssa-dce.c: New file. 33936 * tree-ssa-dom.c: New file. 33937 * tree-ssa-dse.c: New file. 33938 * tree-ssa-forwprop.c: New file. 33939 * tree-ssa-live.c: New file. 33940 * tree-ssa-live.h: New file. 33941 * tree-ssa-loop.c: New file. 33942 * tree-ssa-operands.c: New file. 33943 * tree-ssa-operands.h: New file. 33944 * tree-ssa-phiopt.c: New file. 33945 * tree-ssa-pre.c: New file. 33946 * tree-ssa.c: New file. 33947 * tree-ssanames.c: New file. 33948 * tree-tailcall.c: New file. 33949 * tree.c: Include tree-iterator.h, basic-block.h and 33950 tree-flow.h. 33951 (tree_node_kind): Add phi_nodes and ssa names. 33952 (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME, 33953 EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST. 33954 (make_node_stat): Handle PHI_NODE and SSA_NAME. 33955 <'c'> Set TREE_INVARIANT. 33956 (copy_node_stat): Abort if trying to copy a 33957 STATEMENT_LIST. 33958 Clear TREE_VISITED. 33959 Clear annotation field. 33960 (build_constructor): Copy TREE_INVARIANT from vals. 33961 Don't clear TREE_CONSTANT. 33962 (expr_first, expr_last, expr_length): Remove. 33963 (staticp): Pass unknown component references to the language. 33964 (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT. 33965 (skip_simple_arithmetic): Likewise. 33966 (stabilize_reference_1): Likewise. 33967 (tree_node_structure): Handle PHI_NODE, EPHI_NODE, 33968 EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and 33969 STATEMENT_LIST. 33970 (lhd_unsave_expr_now): Remove. 33971 (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR. 33972 (recompute_tree_invarant_for_addr_expr): New. 33973 (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK. 33974 Call recompute_tree_invarant_for_addr_expr. 33975 Set TREE_INVARIANT accordingly. 33976 (build2_stat): Don't handle CALL_EXPR. 33977 (build3_stat): Don't call build2_stat for CALL_EXPRs. 33978 (build_expr_wfl): Remove. 33979 (annotate_with_file_line, annotate_with_locus): New. 33980 (simple_cst_equal): Call simple_cst_list_equal to compare 33981 CONSTRUCTOR_ELTS pointers. 33982 (iterative_hash_expr): Don't hash types associated 33983 with conversions. Instead hash on the signedness of the 33984 toplevel object and the operand of the conversion. 33985 (dump_tree_statistics): Call ssanames_print_statistics 33986 and phinodes_print_statistics. 33987 (ephi_node_elt_check_failed, phi_node_elt_check_failed, 33988 add_var_to_bind_expr, build_empty_stmt, is_essa_node, 33989 needs_to_live_in_memory): New. 33990 (initializer_zerop): Handle VECTOR_CST. Don't check 33991 AGGREGATE_TYPE_P for CONSTRUCTOR. 33992 * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR, 33993 SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE, 33994 PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define. 33995 (GOTO_SUBROUTINE_EXPR): Change type to 's'. 33996 (CALL_EXPR): Add another operand. 33997 (EXPR_WITH_FILE_LOCATION): Remove. 33998 (SWITCH_EXPR): Add another operand. 33999 * tree.h: Update various comments. 34000 (union tree_ann_d): Forward declare. 34001 (struct tree_common): Add fields nowarning_flag, 34002 invariant_flag and visited. 34003 (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK, 34004 PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK, 34005 EPHI_NODE_ELT_CHECK, TREE_BLOCK, 34006 STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL, 34007 TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT, 34008 IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME, 34009 EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION, 34010 EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, 34011 CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS, 34012 BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION, 34013 ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS, 34014 ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND, 34015 COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL, 34016 CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES, 34017 EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW, 34018 SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION, 34019 SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST, 34020 PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS, 34021 PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF, 34022 EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT, 34023 EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED, 34024 EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED, 34025 EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY, 34026 EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF, 34027 EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME, 34028 EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS, 34029 EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED, 34030 EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE, 34031 EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS, 34032 TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS, 34033 DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID, 34034 DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL, 34035 STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW, 34036 TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, 34037 TDF_UID,): Define. 34038 (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE, 34039 EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, 34040 EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO, 34041 EXPR_WFL_SET_LINECOL): Remove. 34042 (phi_node_elt_check_failed, ephi_node_elt_check_failed, 34043 make_phi_node, init_phinodes, fini_phinodes, 34044 release_phi_node, phinodes_print_statistics, 34045 init_ssanames, fini_ssanames, make_ssa_name, 34046 release_ssa_name, ssanames_print_statistics, 34047 annotate_with_file_line, build_empty_stmt, 34048 annotate_with_locus, expr_only, categorize_ctor_elements, 34049 count_type_elements, add_var_to_bind_expr, is_essa_node, 34050 expand_stack_alloc, expand_stack_save, 34051 expand_stack_restore, add_case_node, operand_equal_p, 34052 nondestructive_fold_unary_to_constant, 34053 nondestructive_fold_binary_to_constant, 34054 fold_read_from_constant_string, int_const_binop, 34055 strip_float_extensions, simplify_builtin, c_strlen, 34056 recompute_tree_invarant_for_addr_expr, 34057 needs_to_live_in_memory, make_vector, 34058 setjmp_vars_warning, update_alignment_for_field, 34059 expand_asm_expr, asm_op_is_mem_input, 34060 containing_blocks_have_cleanups_or_stack_level, 34061 create_artificial_label, gimplify_function_tree, 34062 get_name, unshare_expr, walk_tree, 34063 walk_tree_without_duplicates, in_gimple_form): Declare. 34064 (struct tree_exp): Add fields locus and block. 34065 (struct tree_ssa_name, struct edge_def, struct 34066 tree_phi_node, struct tree_eref_common, struct 34067 tree_euse_node, struct ephi_arg_d, struct tree_ephi_node, 34068 union alias_var_def, struct tree_statement_list_node, 34069 struct tree_statement_list, enum operand_equal_flag): Declare. 34070 (enum tree_node_structure_enum): Add TS_SSA_NAME, 34071 TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE, 34072 TS_STATEMENT_LIST. 34073 (union tree_node): Add fields ssa_name, phi, eref, ephi, 34074 euse and stmt_list. 34075 (function_cannot_inline_p, uninitialized_vars_warning, 34076 save_for_inline, output_inline_function, all_cases_count, 34077 check_for_full_enumeration_handling, 34078 declare_nonlocal_label): Remove. 34079 (enum tree_dump_index): Add TDI_none, TDI_tu, 34080 TDI_generic, TDI_nested, TDI_vcg, TDI_xml. 34081 * unroll.c (unroll_loop): Don't clear map->inline_target. 34082 * unwind-sjlj.c (uw_install_context): Make a proper static inline 34083 function. 34084 * value-prof.c (value_prof_hooks): New. 34085 (find_values_to_profile): Rename to rtl_find_values_to_profile. 34086 Move rtl-specific bits in from branch_prob. 34087 (value_profile_transformations): Rename to 34088 rtl_value_profile_transformations. 34089 (struct value_prof_hooks): New. 34090 (rtl_value_prof_hooks): New. 34091 (rtl_register_value_prof_hooks): New. 34092 (tree_find_values_to_profile): New stub. 34093 (tree_value_profile_transformations): New stub. 34094 (tree_value_prof_hooks): New stub. 34095 (tree_register_value_prof_hooks): New stub. 34096 (find_values_to_profile): New. 34097 (value_profile_transformations): New. 34098 * value-prof.h: Add multiple inclusion guard. 34099 (struct histogram_value): Change rtx fields to void *. 34100 (rtl_register_value_prof_hooks): New declaration. 34101 (tree_register_value_prof_hooks): New declaration. 34102 (find_values_to_profile): New declaration. 34103 (free_profiled_values): New declaration. 34104 (value_profile_transformations): New declaration. 34105 (struct profile_hooks): New declaration. 34106 (init_branch_prob): Declaration moved from rtl.h. 34107 (branch_prob): Declaration moved from rtl.h. 34108 (end_branch_prob): Declaration mooved from rtl.h. 34109 (tree_register_profile_hooks): New declaration. 34110 (rtl_register_profile_hooks): New declaration. 34111 (tree_profile_hooks): New declaration. 34112 (rtl_profile_hooks): New declaration. 34113 * varasm.c: Include tree-mudflap.h. 34114 (TRAMPOLINE_ALIGNMENT): Remove. 34115 (make_decl_rtl): Call mudflap_enqueue_decl. 34116 (assemble_static_space): 34117 (assemble_trampoline_template): Set and return 34118 TRAMPOLINE_ALIGNMENT. 34119 * varray.c (element): Add GENERIC_PTR_NOGC entry. 34120 Add entry for 'tree *'. 34121 Add entry for struct edge_def *. 34122 (varray_copy): New. 34123 * varray.h (enum varray_data_enum): Add 34124 VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and 34125 VARRAY_DATA_TREE_PTR. 34126 (union varray_data_tag): Corresponding changes. 34127 (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT, 34128 VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC, 34129 VARRAY_EDGE, VARRAY_TREE_PTR, 34130 VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE, 34131 VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC, 34132 VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define. 34133 34134 * config/*/*: Various updates for changed macros, tree 34135 codes, etc. Check ChangeLog.tree-ssa. 34136 34137 * doc/cfg.texi: New file. 34138 * doc/tree-ssa.texi: New file. 34139 * doc/c-tree.texi: Document new codes. 34140 * doc/gccint.texi: Include new files. 34141 * doc/install.texi: Document new features. 34142 * doc/invoke.texi: Document new switches. 34143 * doc/passes.texi: Document new passes. 34144 * doc/rtl.texi: Update changed RTL codes. 34145 * doc/sourcebuild.texi: Update build instructions. 34146 * doc/standards.texi: Document Fortran changes. 34147 * doc/tm.texi: Update. 34148 341492004-05-12 Paolo Bonzini <bonzini@gnu.org> 34150 34151 Replace several arrays with a struct of arrays. 34152 * combine.c (struct reg_stat): New. 34153 (init_reg_last_arrays): Renamed to... 34154 (init_reg_last): ...this. Callers adjusted. 34155 (reg_stat): New. 34156 (combine_instructions): Allocate it and use it. 34157 (reg_last_death, reg_last_set, reg_last_set_value, 34158 reg_last_set_label, reg_last_set_table_tick, 34159 reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies, 34160 reg_last_set_mode, reg_last_set_nonzero_bits, 34161 reg_last_set_sign_bit_copies): Replace throughout 34162 with items of reg_stat. 34163 341642004-05-11 Kaz Kojima <kkojima@gcc.gnu.org> 34165 34166 PR optimization/15100 34167 * combine.c (distribute_notes): Don't create a dangling 34168 REG_LIBCALL/REG_RETVAL note. 34169 341702004-05-11 Aldy Hernandez <aldyh@redhat.com> 34171 34172 * config/rs6000/spe.md (spe_evneg): Rename to negv2si2. 34173 34174 * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to 34175 negv2si2. 34176 341772004-05-11 Aldy Hernandez <aldyh@redhat.com> 34178 34179 * doc/md.texi (Standard Names): Fix typo in vec_init description. 34180 341812004-05-11 Geoffrey Keating <geoffk@apple.com> 34182 34183 * doc/gty.texi (GTY Options): Clarify example. 34184 341852004-05-11 Fariborz Jahanian <fjahanian@apple.com> 34186 34187 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): 34188 Add const qualifier to altivec vector type if one is needed. 34189 341902004-05-11 Paul Brook <paul@codesourcery.com> 34191 34192 * flags.h (flag_short_enums): Update comment. 34193 * opts.c (decode_options): Set flag_short_enums to 2. 34194 * toplev.c (flag_short_enums): Update comment. 34195 (process_options): Call default_short_enums target hook. 34196 341972004-05-11 Andrew Pinski <pinskia@gcc.gnu.org> 34198 34199 PR target/14063 34200 * config/rs6000/altivec.md (altivec_dssall): 34201 Change to unspec_volatile. 34202 (altivec_dss): Likewise. 34203 342042004-05-10 Aldy Hernandez <aldyh@redhat.com> 34205 34206 * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to 34207 vnor. 34208 ("one_cmplv8hi2"): Same. 34209 ("one_cmplv4si2"): Same. 34210 342112004-05-10 Kaz Kojima <kkojima@gcc.gnu.org> 34212 34213 PR target/15130 34214 * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype. 34215 * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue 34216 into account. Compute the correct number of general registers 34217 for the return value. Generate a special push/pop sequence when 34218 failing to get a temporary register for non SHmedia epilogue. 34219 (sh_expand_epilogue): Add an argument to show whether it's for 34220 sibcall or not. Set the 3rd argument of output_stack_adjust to 34221 -1 if needed. 34222 (sh_need_epilogue): Call sh_expand_epilogue with 0. 34223 * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue 34224 with 1. 34225 (epilogue): Call sh_expand_epilogue with 0. 34226 342272004-05-10 Andrew Pinski <pinskia@physics.uc.edu> 34228 34229 * gcse.c (eliminate_partially_redundant_loads): Instead of returning early, 34230 goto a cleanup label. After the cleanup, free the allocated memory. 34231 342322004-05-10 Ziemowit Laski <zlaski@apple.com> 34233 34234 * config/rs6000/altivec.h (vec_sld): Add overloads for 34235 argument/return types of 'vector bool int', 'vector bool short' 34236 and 'vector bool char'. 34237 342382004-05-10 Zack Weinberg <zack@codesourcery.com> 34239 34240 * c-decl.c (store_parm_decls_newstyle): Correct test for a 34241 nested function. 34242 342432004-05-10 Richard Sandiford <rsandifo@redhat.com> 34244 34245 * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted, 34246 treating missing ones as "". 34247 * config/mips/mips.md: Remove constraints from match_operands and 34248 match_scratches if they appear in define_expands (except reload*), 34249 define_peephole2s, define_splits or attribute specifications. 34250 * config/mips/7000.md, config/mips/sb1.md: Remove match_operand 34251 constraint strings. 34252 342532004-05-10 Alan Modra <amodra@bigpond.net.au> 34254 34255 * config/rs6000/rs6000.c (function_arg_boundary): Always align 34256 AltiVec vectors. 34257 (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec 34258 vectors by refererence. Align the same for TARGET_64BIT to a 16 34259 byte boundary. Remove useless code. Add function comment. 34260 (function_arg): Similarly. Move gpr rs6000_mixed_function_arg 34261 call to where it belongs. 34262 (function_arg_partial_nregs): Return true for all TARGET_32BIT 34263 -mabi=no-altivec AltiVec vectors. Fix debug output. 34264 (rs6000_va_arg): Adjust for AltiVec change. 34265 342662004-05-10 Paul Brook <paul@codesourcery.com> 34267 34268 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED. 34269 * config/arm/arm.h (TARGET_AAPCS_BASED): Define. 34270 (TARGET_DOUBLEWORD_ALIGN): Use it. 34271 (WCHAR_TYPE): Define. 34272 (WCHAR_SIZE_TYPE): Define. 34273 (SIZE_TYPE): Define. 34274 342752004-05-10 Alan Modra <amodra@bigpond.net.au> 34276 34277 * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4 34278 when size is 8 bytes. 34279 (function_arg_advance): Account for stack space used by AltiVec 34280 args when -mabi=altivec. Simplify alignment calculations. For 34281 ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec. 34282 (function_arg): Similarly. 34283 (function_arg_pass_by_reference): True for ABI_V4 AltiVec when 34284 not AltiVec ABI. 34285 (rs6000_va_arg): Correct fp arg test. Adjust for AltiVec change. 34286 Correct alignment, and align before testing reg count. Remove 34287 TREE_THIS_VOLATILE from reg. Don't emit unused labels. 34288 (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and 34289 TARGET_FPRS here.. 34290 (rs6000_function_value): .. not here before call. 34291 342922004-05-09 Aldy Hernandez <aldyh@redhat.com> 34293 34294 * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec. 34295 342962004-05-09 Zack Weinberg <zack@codesourcery.com> 34297 34298 PR 15007 34299 * c-decl.c (current_file_decl): Rename to all_translation_units, 34300 adjust comment. 34301 (pop_scope): If popping file_scope, construct a 34302 TRANSLATION_UNIT_DECL and make it the context of all the 34303 symbols in the scope. 34304 (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here. 34305 (pushdecl): Clarify comment. Do not set DECL_CONTEXT of 34306 anything to current_file_decl. 34307 (pushdecl_top_level): Likewise. 34308 (store_parm_decls_newstyle): Adjust check for nested function. 34309 (c_write_global_declarations): Update for renamed variable. 34310 343112004-05-09 Aldy Hernandez <aldyh@redhat.com> 34312 34313 * config/rs6000/rs6000-protos.h 34314 (rs6000_conditional_register_usage): Protoize. 34315 34316 * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New. 34317 34318 * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call 34319 function. 34320 343212004-05-08 Roger Sayle <roger@eyesopen.com> 34322 34323 * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2 34324 where op is a comparison operator and C1 and C2 are integer constants 34325 into a range check. 34326 (fold): Call fold_div_compare. 34327 343282004-05-08 Eric Botcazou <ebotcazou@libertysurf.fr> 34329 34330 * doc/install.texi (sparc-sun-solaris2*): Document bootstrap 34331 problems with earlier versions of the GNU compiler. 34332 343332004-05-07 Aldy Hernandez <aldyh@redhat.com> 34334 34335 * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p): 34336 Declare. 34337 34338 * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New. 34339 (rs6000_hard_regno_mode_ok): New. 34340 (rs6000_init_hard_regno_mode_ok): New. 34341 (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok. 34342 34343 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed 34344 result. 34345 343462004-05-07 Ziemowit Laski <zlaski@apple.com> 34347 34348 * config/rs6000/altivec.h (vector, pixel, bool): Do not 34349 define as macros #ifdef __APPLE_ALTIVEC__. 34350 343512004-05-07 Fariborz Jahanian <fjahanian@apple.com> 34352 34353 * config/rs6000/rs6000.c (rs6000_mixed_function_arg): 34354 Generate appropriate parallels for vector arguments 34355 passed to vararg functions. (function_arg): make the call 34356 to rs6000_mixed_function_arg for vector args as needed. 34357 343582004-05-07 Richard Sandiford <rsandifo@redhat.com> 34359 34360 * config/mips/mips.c (mips_va_arg): Fix calculation of osize for 34361 EABI_FLOAT_VARARGS_P. 34362 343632004-05-07 Richard Sandiford <rsandifo@redhat.com> 34364 34365 * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500. 34366 * config/mips/mips.c (override_options): Disable branch likely 34367 instructions if TUNE_MIPS5500. 34368 343692004-05-07 Richard Sandiford <rsandifo@redhat.com> 34370 34371 * config/mips/mips.c (override_options): Allow the hi and lo registers 34372 to store any integral mode, not just MODE_INTs. 34373 343742004-05-07 Paul Brook <paul@codesourcery.com> 34375 34376 * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED. 34377 * config/arm/arm.h (TARGET_AAPCS_BASED): Define. 34378 (TARGET_DOUBLEWORD_ALIGN): Use it. 34379 (WCHAR_TYPE): Define. 34380 (WCHAR_SIZE_TYPE): Define. 34381 (SIZE_TYPE): Define. 34382 343832004-05-07 Uros Bizjak <uros@kss-loka.si> 34384 34385 * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use 34386 testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF. 34387 343882004-05-07 Andrew Pinski <pinskia@physics.uc.edu> 34389 34390 * loop-doloop.c (doloop_valid_p): Make sure that body 34391 gets freed. 34392 343932004-05-07 Eric Botcazou <ebotcazou@act-europe.fr> 34394 34395 * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New 34396 declaration. 34397 * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete. 34398 (sparc_skip_caller_unimp): New global variable. 34399 (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'. 34400 Use it instead of SKIP_CALLERS_UNIMP_P. 34401 * config/sparc/sparc.md (call expander): Add sanity check. 34402 (call_address_struct_value_sp32): Re-sync with expander. 34403 (call_symbolic_struct_value_sp32): Likewise. 34404 (return peepholes): Use 'sparc_skip_caller_unimp' instead 34405 of custom predicate. 34406 344072004-05-07 Eric Botcazou <ebotcazou@libertysurf.fr> 34408 34409 PR c++/14962 34410 * c-pragma.c (handle_pragma_redefine_extname): Only change 34411 the assembler name of FUNCTION_DECLs and VAR_DECLs. 34412 344132004-05-07 Uros Bizjak <uros@kss-loka.si> 34414 34415 * optabs.h (enum optab_index): Add new OTI_log1p. 34416 (log1p_optab): Define corresponding macro. 34417 * optabs.c (init_optabs): Initialize log1p_optab. 34418 * genopinit.c (optabs): Implement log1p_optab using log1p?f2 34419 patterns. 34420 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L} 34421 using log1p_optab. 34422 (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using 34423 expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 34424 34425 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1. 34426 34427 * config/i386/i386.c (ix86_emit_i387_log1p): New function. 34428 * config/i386/i386-protos.h (ix86_emit_i387_log1p): 34429 Prototype here. 34430 * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent 34431 x87's fyl2xp1 instruction. 34432 (*fyl2x_xf3): Rename insn definition to fyl2x_xf3. 34433 (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction. 34434 (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf, 34435 log1p and log1pl built-ins as inline x87 intrinsics. 34436 344372004-05-07 Loren James Rittle <ljrittle@acm.org> 34438 34439 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition. 34440 * config/arm/freebsd.h: Likewise. 34441 * config/ia64/freebsd.h: Likewise. 34442 * config/sparc/freebsd.h: Likewise. 34443 344442004-05-07 Hans-Peter Nilsson <hp@axis.com> 34445 34446 PR optimization/15296 34447 * reorg.c (fill_simple_delay_slots): Use next_real_insn when 34448 getting last consecutive label at a branch. 34449 (relax_delay_slots): Similar, near top of loop. 34450 344512004-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 34452 34453 PR target/15202 34454 * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount 34455 register to general register. 34456 344572004-05-07 Alan Modra <amodra@bigpond.net.au> 34458 34459 * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either 34460 TARGET_ALTIVEC or TARGET_ALTIVEC_ABI. 34461 * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise. 34462 (STACK_BOUNDARY): Delete. 34463 344642004-05-06 Stuart Hastings <stuart@apple.com> 34465 34466 * doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421, 34467 mistakenly clobbered by 1.423. 34468 344692004-05-06 Richard Sandiford <rsandifo@redhat.com> 34470 34471 * doc/invoke.texi: Document -mvr4130-align. 34472 * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN) 34473 (TUNE_MIPS4120, TUNE_MIPS4130): New macros. 34474 (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130. 34475 (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align. 34476 * config/mips/mips.md: Include sched-int.h. 34477 (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros. 34478 (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130. 34479 (override_options): Enable -mvr4130-align at -O3 and above. 34480 (mips_sim_insn): New variable. 34481 (mips_sim): New structure. 34482 (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg) 34483 (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs) 34484 (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set) 34485 (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn) 34486 (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions. 34487 (mips_reorg): Call vr4130_align_insns. 34488 (vr4130_last_insn): New variable. 34489 (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p) 34490 (vr4130_swap_insns_p, vr4130_reorder): New functions. 34491 (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code. 34492 (mips_issue_rate): Return 2 for PROCESSOR_R4130. 34493 (mips_use_dfa_pipeline_interface): Return true for the same. 34494 * config/mips/4130.md: New file. 34495 * config/mips/mips.md: Include it. Add a peephole2 to convert 34496 "mult;mflo" into "mtlo;macc". 34497 (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the 34498 target of maccs. 34499 (*msac_using_macc): New pattern. 34500 345012004-05-06 Richard Sandiford <rsandifo@redhat.com> 34502 34503 * config/mips/5500.md (ir_vr55_store): Set latency to 0. 34504 (ir_vr55_hilo): Split into... 34505 (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations. 34506 (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5. 34507 (ir_vr55_imul_di): Change latency to 9. Reserve vr55_mac for 4 cycles. 34508 Add various multiplication bypasses. 34509 * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer 34510 multiplication. 34511 345122004-05-06 Uros Bizjak <uros@kss-loka.si> 34513 34514 * config/i386/i386.md (*fscalexf4): Correct insn "mode" 34515 attribute to "XF". 34516 345172004-05-05 Uros Bizjak <uros@kss-loka.si> 34518 34519 * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem. 34520 (fmod_optab, drem_optab): Define corresponding macros. 34521 * optabs.c (init_optabs): Initialize fmod_optab and drem_optab. 34522 * genopinit.c (optabs): Implement fmod_optab and drem_optab 34523 using fmod?f3 and drem?f3 patterns. 34524 * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L} 34525 using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab. 34526 (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and 34527 BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if 34528 flag_unsafe_math_optimizations is set. 34529 34530 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F, 34531 UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U. 34532 34533 * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function. 34534 * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump): 34535 Prototype here. 34536 * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U, 34537 UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's 34538 fprem and fprem1 instructions. 34539 (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18). 34540 Rename insn definition to x86_fnstsw_1. 34541 (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1 34542 x87 instructions. 34543 (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod 34544 and fmodl built-ins as inline x87 intrinsics. 34545 (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem 34546 and dreml built-ins as inline x87 intrinsics. 34547 345482004-05-05 Roger Sayle <roger@eyesopen.com> 34549 34550 * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused. 34551 345522004-05-05 Ian Lance Taylor <ian@wasabisystems.com> 34553 34554 PR driver/9822 34555 * doc/invoke.texi (Spec Files): Remove documentation of %c. 34556 345572004-05-05 Chris Demetriou <cgd@broadcom.com> 34558 34559 * config/mips/mips.md: Update the msub define_split for new mflo/mfhi 34560 representation. 34561 345622004-05-06 Paul Brook <paul@codesourcery.com> 34563 34564 * config/arm/arm-protots.h (vfp_mem_operand): Rename ... 34565 (arm_coproc_mem_operand): ... To this. 34566 * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes. 34567 (arm_legitimate_index_p): Ditto. 34568 (vfp_mem_operand): Rename ... 34569 (arm_coproc_mem_operand): ... To this. Handle writeback modes. 34570 (vfp_secondary_reload_class): Use it. 34571 (output_move_double): Use doubleword load/store instructions. 34572 (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd. 34573 * config/arm/arm.h (TARGET_LDRD): Define. 34574 (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'. 34575 * config/arm/arm.md (arm_movdi): Allow all valid memory operands. 34576 New splitter for invalid doubleword loads. 34577 * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint. 34578 * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands. 34579 * doc/md.texi: Document Uy constraint. 34580 345812004-05-05 Jan Hubicka <jh@suse.cz> 34582 34583 PR opt/14980 34584 * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with 34585 inline clones. 34586 345872004-05-05 H.J. Lu <hongjiu.lu@intel.com> 34588 34589 PR target/15290 34590 * config/i386/i386.c (ix86_split_to_parts): Use real_to_target 34591 instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE. 34592 345932004-05-05 Mike Stump <mrs@apple.com> 34594 34595 * config/darwin-c.c (add_framework): Copy the directory name as it 34596 can be freed later. Also, ensure we always allocate enough room 34597 for the cached framework information. 34598 (find_subframework_header): Keep track of the directory where the 34599 subframework header was found. 34600 (framework_construct_pathname): Speed up by not trying to re-add a 34601 framework. 34602 * cppfiles.c (search_path_exhausted): Arrange for the missing 34603 header callback to be able to set the directory where the header 34604 was found. 34605 (cpp_get_dir): Add. 34606 * cpplib.h (missing_header_cb): Add a parameter. 34607 (cpp_get_dir): Add. 34608 346092004-05-03 Mike Stump <mrs@apple.com> 34610 34611 * doc/invoke.texi (Directory Options): Document -iquote. 34612 * doc/cpp.texi: Likewise. 34613 * doc/cppopts.texi: Likewise. 34614 * c-opts.c (c_common_missing_argument): Add -iquote processing. 34615 (c_common_handle_option): Likewise. 34616 * c.opt (iquote): Add. 34617 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote. 34618 * c-incpath.c (merge_include_chains): Update comment to use -iquote. 34619 34620 * c-opts.c (case OPT_I): Deprecate -I- support. 34621 * doc/invoke.texi: Likewise. 34622 * doc/cpp.texi: Likewise. 34623 * doc/cppopts.texi: Likewise. 34624 346252004-05-05 Steven Bosscher <stevenb@suse.de> 34626 34627 * basic-block.h (free_basic_block_vars): Update prototype. 34628 * flow.c (free_basic_block_vars): Remove the keep_head_end_p 34629 argument. 34630 (life_analysis): Update call. 34631 * ifcvt.c (if_convert): Likewise. 34632 * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise. 34633 * passes.c (rest_of_handle_final): Likewise. 34634 (rest_of_compilation): Likewise. 34635 * config/sh/sh.c (sh_output_mi_thunk): Likewise. 34636 34637 * emit-rtl.c (next_real_insn): Use INSN_P. 34638 (prev_real_insn): Likewise. 34639 346402004-05-05 Eric Christopher <echristo@redhat.com> 34641 34642 * config/mips/mips.md: Update the madd define_split for new mflo/mfhi 34643 representation. 34644 346452004-05-05 Paolo Bonzini <bonzini@gnu.org> 34646 34647 * config/rs6000/rs6000.c (build_opaque_vector_type): 34648 New function. 34649 (rs6000_init_builtins): Use it. 34650 346512004-05-04 Bernard Giroud <bgiroud2@free.fr> 34652 34653 * vmsdbgout.c (vms_func_node, vms_func_ref): New. 34654 (func_table): Change type from char ** to vms_func_ref. 34655 (write_rtnbeg): Update to reflect func_table change. Use 34656 fde->funcdef_number instead of rtnnum in output. 34657 (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise. 34658 346592004-05-04 Paolo Bonzini <bonzini@gnu.org> 34660 Richard Henderson <rth@redhat.com> 34661 34662 PR target/14899 34663 34664 * c-common.c (vector_types_convertible_p): New function. 34665 * c-typeck.c (comptypes): Recurse on vector types. 34666 (convert_for_assignment): Use vector_types_convertible_p. 34667 (digest_init): Use vector_types_convertible_p to check 34668 validness of constant vector initializers; otherwise treat 34669 them as scalars. 34670 * tree.c (make_or_reuse_type): New. 34671 (build_common_tree_nodes): Use it. 34672 * cp/call.c (standard_conversion): Likewise. 34673 * cp/typeck.c (comptypes): Recurse on vector types. 34674 (convert_for_assignment): Use vector_types_convertible_p. 34675 346762004-05-04 Chris Demetriou <cgd@broadcom.com> 34677 34678 * config/mips/mips.c (override_options): Default to no 34679 generation of branch-likely operations when tuning for 34680 CPUs where they tend to have a negative performance impact 34681 (e.g., SB-1). 34682 346832004-05-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 34684 34685 * expr.c (store_constructor_field): Don't call store_constructor 34686 if bitsize is not a multiple of a byte. 34687 346882004-05-04 Richard Sandiford <rsandifo@redhat.com> 34689 34690 * reload1.c (inherit_piecemeal_p): New function. 34691 (emit_reload_insns): When reloading a group of hard registers, use 34692 inherit_piecemeal_p to decide whether the values of individual hard 34693 registers can be inherited. 34694 346952004-05-04 H.J. Lu <hongjiu.lu@intel.com> 34696 34697 * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c. 34698 * config/s390/t-tpf (LIB2ADDEHDEP): Likewise. 34699 * config/t-linux (LIB2ADDEHDEP): Likewise. 34700 347012004-05-04 Paul Brook <paul@codesourcery.com> 34702 34703 * config/arm/crti.asm: Push an even number of registers. 34704 * config/arm/crtn.asm: And restore them. Load via sp. 34705 347062004-05-04 Paolo Bonzini <bonzini@gnu.org> 34707 34708 * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter. 34709 Collect overhead information. 34710 (ggc_alloc_stat): New name of ggc_alloc. Add MEM_STAT_DECL 34711 parameter and pass it through. 34712 (ggc_alloc_typed_stat): New name of ggc_alloc_typed. Add 34713 MEM_STAT_DECL parameter and pass it through. 34714 (ggc_alloc_zone_stat): New name of ggc_alloc_zone. Add 34715 MEM_STAT_DECL parameter and pass it through. 34716 347172004-05-03 Aldy Hernandez <aldyh@redhat.com> 34718 34719 * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs. 34720 34721 * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New. 34722 34723 * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call 34724 rs6000_hard_regno_nregs. 34725 347262004-05-03 Eric Christopher <echristo@redhat.com> 34727 34728 * config/s390/s390.c (s390_emit_prologue): Call unspec tpf 34729 prologue insn instead of setting up call. 34730 (s390_emit_epilogue): Ditto. 34731 * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns. 34732 (define_constants): Add numbers for above patterns. 34733 347342004-05-03 Eric Christopher <echristo@redhat.com> 34735 34736 * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body... 34737 * config/s390/s390.c (s390_conditional_register_usage): ...here. 34738 * config/s390/s390-protos.h: Prototype. 34739 347402004-05-03 Joe Buck <jbuck@welsh-buck.org> 34741 34742 * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only 34743 assignment. 34744 347452004-05-03 Eric Christopher <echristo@redhat.com> 34746 34747 * config/mips/mips.md: Fix branch length attribute definition. 34748 347492004-05-03 Aldy Hernandez <aldyh@redhat.com> 34750 34751 * config.gcc: Remove --enable-altivec support. 34752 34753 * config/rs6000/altivec-defs.h: Remove. 34754 347552004-05-03 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 34756 34757 * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6. 34758 * fixinc/fixincl.x: Regenerate. 34759 347602004-05-03 Uros Bizjak <uros@kss-loka.si> 34761 34762 * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn 34763 definition. 34764 (log?f2, log10?f2, log2?f2): Reimplement expanders with 34765 float_truncate insn. 34766 (*fxtractsf3, *fxtractdf3): Remove insn definition. 34767 (logb?f2): Reimplement expanders with float_truncate insn. 34768 347692004-05-03 Graham Stott <graham.stott@btinternet.com> 34770 34771 PR 14718 34772 * dwarf2out.c (dwarf2out_imported_module_or_decl): Use 34773 force_type_die for CONST_DECL. 34774 347752004-05-03 Eric Botcazou <ebotcazou@libertysurf.fr> 34776 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 34777 34778 * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add 34779 tm-dwarf2.h to tm_file. 34780 (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+. 34781 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete. 34782 (ASM_DEBUG_SPEC): Delete. 34783 347842004-05-03 Uros Bizjak <uros@kss-loka.si> 34785 34786 * optabs.h (enum optab_index): Add new OTI_expm1. 34787 (expm1_optab): Define corresponding macro. 34788 * optabs.c (init_optabs): Initialize expm1_optab. 34789 * genopinit.c (optabs): Implement expm1_optab using expm1?f2 34790 patterns. 34791 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L} 34792 using expm1_optab. 34793 (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using 34794 expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 34795 34796 * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders 34797 to implement expm1, expm1f and expm1l built-ins as inline x87 34798 intrinsics. 34799 348002004-05-02 Alexandre Oliva <aoliva@redhat.com> 34801 34802 2003-11-19 Richard Sandiford <rsandifo@redhat.com> 34803 * config/frv/frv.md (*return_true, *return_false): New patterns. 34804 348052004-05-02 Kazu Hirata <kazu@cs.umass.edu> 34806 34807 * rtl.h (PHI_NODE_P): Remove. 34808 348092004-05-02 Eric Botcazou <ebotcazou@act-europe.fr> 34810 34811 PR middle-end/14988 34812 * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment 34813 when passed -2 as 'align'. 34814 (put_var_into_stack): Use 'bool' as the type for the three local 34815 predicates. Adjust calls to put_reg_into_stack. 34816 When passed a CONCAT, instruct put_reg_into_stack to use 34817 a consecutive stack slot for the second part. 34818 (put_reg_into_stack): Remove 'promoted_mode' parameter, add 34819 'consecutive_p' parameter. Turn the three predicates into 'bool' 34820 parameters. Retrieve the register mode from 'reg'. 34821 When consecutive_p is true, instruct assign_stack_local_1 to use 34822 BITS_PER_UNIT alignment. 34823 (put_addressof_into_stack): Use 'bool' as the type for the two 34824 local predicates. Adjust call to put_reg_into_stack. 34825 348262004-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 34827 34828 * fold-const.c (fold_convert_const, fold): Add missing 34829 FIX_ROUND_EXPR case. 34830 348312004-05-02 Alexandre Oliva <aoliva@redhat.com> 34832 34833 * configure.ac (FLEX, BISON): Only use tools from the build tree 34834 if build equals host. 34835 * configure: Rebuilt. 34836 34837 * config/frv/frv-protos.h (frv_expand_epilogue, 34838 frv_expand_fdpic_call): Add bool argument. 34839 * config/frv/frv.c (frv_function_ok_for_sibcall): New. 34840 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it. 34841 (frv_expand_epilogue): Use new argument to decide whether to emit 34842 return instruction or copy the return address to LR. 34843 (frv_expand_fdpic_call): Inline PLT entry when emitting direct 34844 sibcalls. 34845 (sibcall_operand): New. 34846 * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match 34847 PLUS nor LABEL_REF. Add sibcall_operand. 34848 * config/frv/frv.md (call, call_value): Pass false to 34849 frv_expand_fdpic_call. 34850 (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll. 34851 (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value, 34852 sibcall_value_internal, sibcall_value_fdpicdi): New. 34853 (return_unsigned_true, return_unsigned_false): New. 34854 (epilogue): Adjust call to frv_expand_epilogue. 34855 (sibcall_epilogue): New. 34856 34857 * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic. 34858 (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__ 34859 before redefining them. 34860 348612004-05-01 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 34862 34863 * builtins.c (fold_fixed_mathfn): New function. 34864 (fold_builtin_lround, fold_builtin): Use it. 34865 348662004-05-01 Jakub Jelinek <jakub@redhat.com> 34867 34868 * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default 34869 also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3. 34870 348712004-05-01 Kazu Hirata <kazu@cs.umass.edu> 34872 34873 * config/cris/cris.h: Revert my "fix comment typos" patch. 34874 348752004-05-01 Richard Sandiford <rsandifo@redhat.com> 34876 34877 * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment. 34878 348792004-05-01 Falk Hueffner <falk@debian.org> 34880 34881 * config/alpha/alpha.md (builtin_insbl, builtin_inswl, 34882 builtin_insll): Disallow 0 as first input operand. 34883 348842004-05-01 Falk Hueffner <falk@debian.org> 34885 34886 * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs. 34887 348882004-05-01 Ulrich Weigand <uweigand@de.ibm.com> 34889 34890 PR middle-end/15054 34891 * expr.c (expand_expr_real): Do not call preserve_temp_slots 34892 on a TARGET_EXPR temp. 34893 * function.c (assign_stack_temp_for_type): Set 'keep' flag for 34894 TARGET_EXPR temp slots. 34895 348962004-05-01 Paolo Bonzini <bonzini@gnu.org> 34897 34898 * simplify-rtx.c (simplify_ternary_operation): When 34899 converting an IF_THEN_ELSE to a relational op, return 34900 correct mode. 34901 349022004-04-30 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 34903 34904 * builtins.c (fold_builtin_round): Fix comment typo. 34905 (fold_builtin_lround): New function. 34906 (fold_builtin): Use it. 34907 349082004-04-20 Andrew Pinski <pinskia@physics.uc.edu> 34909 34910 PR target/11608 34911 * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it 34912 more like the one in config/dbxelf.h. 34913 349142004-04-30 Zack Weinberg <zack@codesourcery.com> 34915 34916 * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK 34917 and adjust definition accordingly. 34918 (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE. 34919 (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE. 34920 * expr.c (store_constructor): Do not access TYPE_DOMAIN of a 34921 VECTOR_TYPE. 34922 349232004-04-30 Jason Merrill <jason@redhat.com> 34924 34925 PR c++/14587 34926 * config/i386/winnt.c (associated_type): Look for attributes on 34927 the TYPE_MAIN_VARIANT of *this. 34928 * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also 34929 apply the attributes to the variants. 34930 349312004-04-30 Paul Brook <paul@codesourcery.com> 34932 34933 * config.gcc: Simplify arm --with-{cpu,tune} test. 34934 * config/arm/arm-cores.def: Document whitespace restrictions. 34935 349362004-04-30 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 34937 34938 PR other/1963 34939 * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define. 34940 349412004-04-30 Brian Ford <ford@vss.fsi.com> 34942 DJ Delorie <dj@redhat.com> 34943 34944 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC] 34945 (DWARF2_DEBUGGING_INFO): Define to enable. 34946 (DBX_REGISTER_NUMBER): Define to use the svr4 register map for 34947 DWARF2. 34948 * configure.ac (Target-specific assembler checks) 34949 <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32 34950 relocs. 34951 * configure: Regenerate. 34952 * config.in: Likewise. 34953 34954 * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC] 34955 (ASM_OUPUT_DWARF_OFFSET): Define. 34956 349572004-04-29 Andreas Krebbel <krebbel1@de.ibm.com> 34958 34959 * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added. 34960 (s390_emit_call): New function prototype added. 34961 (s390_tls_get_offset): Function removed. 34962 * config/s390/s390.c (s390_function_ok_for_sibcall, 34963 s390_call_saved_register_used_p): New functions. 34964 (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added. 34965 (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn. 34966 (s390_emit_tls_call_insn): New function. 34967 (legitimize_tls_address): Call s390_emit_tls_call_insn instead of 34968 emit_call_insn. 34969 (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn. 34970 (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls 34971 added. 34972 * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the 34973 register number used to hold the target address for sibcalls. 34974 * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"): 34975 New expanders. 34976 ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br", 34977 "*sibcall_value_brc", "*sibcall_value_brcl"): New insns. 34978 ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"): 34979 Expanders removed. 34980 ("call", "call_value"): Call s390_emit_call to emit the call patterns. 34981 ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls", 34982 "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P. 34983 ("epilogue"): Changed the call to s390_emit_epilogue to use the 34984 new parameter. 34985 349862004-04-30 Kazu Hirata <kazu@cs.umass.edu> 34987 34988 * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c, 34989 cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c, 34990 reg-stack.c, varasm.c, config/alpha/ev4.md, 34991 config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c, 34992 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c, 34993 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c, 34994 config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c, 34995 config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c, 34996 config/ia64/itanium2.md, config/ip2k/ip2k.c, 34997 config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md, 34998 config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix 34999 comment typos. 35000 350012004-04-30 Paul Brook <paul@codesourcery.com> 35002 35003 * config.gcc: Default ep9312 to hard-float. 35004 * config/arm/arm-cores.def: Add ARCH field. 35005 * config/arm/arm.c (FL_FOR_ARCH*): Define. 35006 (arm_arch_cirrus): New variable. 35007 (all_cores): Set and use arch. 35008 (all_architectures): Ditto. 35009 (arm_arch_name): New variable. 35010 (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT. 35011 Set and use arm_arch_cirrus. 35012 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines. 35013 (enum processor_type): Update ARM_CORE define. 35014 (enum target_cpus): Add. Replaces TARGET_CPU_* defines. 35015 (CPP_SPEC): Remove %(cpp_cpu_arch). 35016 (CPP_ARCH_DEFAULT_SPEC): Remove. 35017 (CPP_CPU_ARCH_SPEC): Remove. 35018 (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC. 35019 (FPUTYPE_DEFAULT): Don't define here. 35020 350212004-04-30 J"orn Rennecke <joern.rennecke@superh.com> 35022 35023 * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer 35024 updates too. 35025 350262004-04-30 Paul Brook <paul@codesourcery.com> 35027 35028 * arm.c (arm_needs_doubleword_align): Use mode alignment. 35029 350302004-04-30 Paolo Bonzini <bonzini@gnu.org> 35031 35032 * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to 35033 vec_sububs. 35034 [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without 35035 duplicates. 35036 350372004-04-30 Uros Bizjak <uros@kss-loka.si> 35038 35039 * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near 35040 atan2?f3 expanders. 35041 350422004-04-29 Nick Clifton <nickc@redhat.com> 35043 35044 Bug 14093 35045 * config/sh/sh-protos.h (sh_promote_prototypes): Declare. 35046 * config/sh/sh.c (sh_promote_prototypes): Remove declaration. 35047 Delete static from definition. 35048 * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call. 35049 350502004-04-30 Uros Bizjak <uros@kss-loka.si> 35051 35052 * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS, 35053 UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies. 35054 <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same. 35055 <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same. 35056 350572004-04-29 Richard Guenther <richard.guenther@uni-tuebingen.de> 35058 35059 * commom.opt (Wfatal-errors): Add it. 35060 * diagnostic.c (flag_fatal_errors): Define it. 35061 (diagnostic_action_after_output): Check for flag_fatal_errors. 35062 * flags.h (flag_fatal_errors): Declare it. 35063 * opts.c (common_handle_option): Add OPT_Wfatal_errors. 35064 * doc/invoke.texi (Warning Options): Document -Wfatal-errors. 35065 350662004-04-30 Josef Zlomek <zlomekj@suse.cz> 35067 35068 * gcse.c (remove_reachable_equiv_notes): Delete notes also in 35069 blocks which have kill flag set. 35070 350712004-04-29 Ben Elliston <bje@au.ibm.com> 35072 35073 * configure.ac (--with-as): Abort if user-supplied assembler 35074 cannot be executed. 35075 (--with-ld): Likewise for the linker. 35076 * configure: Regenerate. 35077 350782004-04-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 35079 35080 * convert.c (convert_to_integer): Ensure `long_integer_type_node' 35081 isn't NULL before using it. 35082 350832004-04-29 Richard Sandiford <rsandifo@redhat.com> 35084 35085 PR target/15189 35086 * config/mips/mips.md (load_df_low): Use default length. 35087 (load_df_high, store_df_high): Likewise. 35088 350892004-04-29 Kazu Hirata <kazu@cs.umass.edu> 35090 35091 * config/mips/mips.md, config/mips/sb1.md, 35092 config/rs6000/rs6000.c: Fix comment typos. 35093 350942004-04-29 Kazu Hirata <kazu@cs.umass.edu> 35095 35096 * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c: 35097 Fix comment typos. 35098 350992004-04-29 Douglas B Rupp <rupp@gnat.com> 35100 35101 * gcc.c (DELETE_IF_ORDINARY): New macro default definition. 35102 (delete_if_ordinary): Use above macro. 35103 * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition. 35104 Update copyright. 35105 * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro. 35106 351072004-04-29 Richard Earnshaw <rearnsha@arm.com> 35108 35109 * c-decl.c (get_parm_info): Use the correct tag keywords when 35110 warning about type declarations in prototypes. 35111 351122004-04-29 Paul Brook <paul@codesourcery.com> 35113 35114 * config.gcc: Pull list of cores from arm-cores.def. 35115 351162004-04-29 Paolo Bonzini <bonzini@gnu.org> 35117 35118 * combine.c (combine_simplify_rtx): Adjust call to use 35119 simplify_relational_operation. Do not use SELECT_CC_MODE 35120 when a comparison already has a MODE_CC mode. 35121 351222004-04-29 Paolo Bonzini <bonzini@gnu.org> 35123 35124 (simplify_set): simplify_relational_operation may now 35125 return another relational expression. 35126 * cse.c (fold_rtx): simplify_relational_operation now 35127 takes of computing the comparison mode. 35128 * dojump.c (compare_from_rtx): Use simplify_relational_operation, 35129 remove dead code. 35130 (do_compare_rtx_and_jump): Likewise. 35131 * integrate.c (subst_constants): simplify_relational_operation 35132 may now return another relational expression. 35133 * simplify-rtx.c (simplify_gen_relational): Move most code to 35134 the new simplify_relational_operation and 35135 simplify_relational_operation_1 functions. 35136 (simplify_relational_operation): Rewritten. 35137 (simplify_relational_operation_1): New function. 35138 (simplify_ternary_operation): simplify_relational_operation 35139 may now return another relational expression. 35140 (simplify_rtx): Remove unnecessary temp variable. 35141 351422004-04-29 Uros Bizjak <uros@kss-loka.si> 35143 35144 * reg-stack.c (swap_to_top): New function. 35145 (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use 35146 swap_to_top(). 35147 (subst_stack_regs_pat): UNSPEC_FSCALE: Remove. 35148 (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and 35149 UNSPEC_FSCALE_EXP. 35150 35151 * config/i386/i386.md (UNSPEC_FSCALE): Remove. 35152 (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern. 35153 (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent 35154 x87's fscale insn. 35155 (*fscalexf4: Define new insn pattern to implement x87 fscale insn. 35156 (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate 35157 patterns. 35158 351592004-04-28 Serge Belyshev <1319@bot.ru> 35160 35161 PR 14944 35162 * coverage.c (read_counts_file): Fix usage of warning () call. 35163 * pretty-print.c (pp_base_format_text): Fix typo in the comment. 35164 351652004-04-28 Ben Elliston <bje@au.ibm.com> 35166 35167 * doc/invoke.texi (Objective-C Dialect Options): Don't prefix 35168 options with "-" in the option index. 35169 (SPARC Options): Likewise. 35170 (M32R/D Options): Likewise. 35171 351722004-04-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 35173 35174 * convert.c (convert_to_integer): Convert (long)round -> lround, 35175 etc. 35176 351772004-04-28 Andrew Pinski <pinskia@physics.uc.edu> 35178 35179 * config/rs6000/rs6000.c (registers_ok_for_quad_peep): 35180 Return false if we do not have fp register. 35181 (addrs_ok_for_quad_peep): Rename to ... 35182 (mems_ok_for_quad_peep): this. 35183 Add check for volatile memory. 35184 * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep): 35185 Rename to ... 35186 (mems_ok_for_quad_peep): this. 35187 * config/rs6000/rs6000.md: Change peephole's for lfq/stq 35188 to peephole2's. 35189 (lfq_power2): New instruction. 35190 (stfq_power2): Likewise. 35191 351922004-04-28 Jan Hubicka <jh@suse.cz> 35193 35194 PR c/15004 35195 * function.c (do_warn_unused_parameter): Break out form ... 35196 (expand_function_end): ... here; warn only when not using cgraphunit. 35197 * function.h (do_warn_unused_parameter): Declare. 35198 * cgraphunit.c: Include function.h. 35199 (cgraph_finalize_function): Do unused parameter warning. 35200 * Makefile.in (cgraphunit.o): Depend on function.h 35201 352022004-04-28 Joseph S. Myers <jsm@polyomino.org.uk> 35203 35204 * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition 35205 calling install-info on $(DESTDIR)$(infodir)/dir already being 35206 present. 35207 352082004-04-28 Paul Brook <paul@codesourcery.com> 35209 35210 * dwarf2out.c (mem_loc_descriptor): Handle shifts. 35211 352122004-04-28 Ulrich Weigand <uweigand@de.ibm.com> 35213 35214 * gcse.c (find_moveable_store): Do not accept store insns with 35215 REG_EH_REGION note. 35216 352172004-04-28 Paul Brook <paul@codesourcery.com> 35218 35219 * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY. 35220 * function.c (assign_temp): Ditto. 35221 * system.h (PROMOTE_FOR_CALL_ONLY): Poison. 35222 352232004-04-28 Paul Brook <paul@codesourcery.com> 35224 35225 * config/arm/lib1funcs.asm: Recognize armv5tej and armv6. 35226 352272004-04-28 Josef Zlomek <zlomekj@suse.cz> 35228 35229 * var-tracking.c (variable_different_p): Add a parameter 35230 compare_current_location, compare current location of variable parts 35231 if it is true. 35232 (dataflow_set_different_1): Pass compare_current_location == false. 35233 (dataflow_set_different_2): Pass compare_current_location == false. 35234 (emit_notes_for_differences_1): Pass compare_current_location == true. 35235 352362004-04-28 Ulrich Weigand <uweigand@de.ibm.com> 35237 35238 * config/s390/s390.md ("casesi"): Mark jump table access as 35239 non-trapping and unchanging. 35240 352412004-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 35242 35243 PR debug/14829 35244 * dwarf2out.c (reg_number): Rename to dbx_reg_number. Adjust all 35245 callers. 35246 (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register 35247 number for indexing hard_regno_nregs array. 35248 352492004-04-27 Geoffrey Keating <geoffk@apple.com> 35250 35251 * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o. 35252 * config/darwin-crt2.c: Only have contents on __ppc__. 35253 352542004-04-27 Bob Wilson <bob.wilson@acm.org> 35255 35256 * config/xtensa/xtensa.c (call_insn_operand): Check 35257 SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P. 35258 * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise. 35259 * config/xtensa/xtensa.md (call, call_value): Likewise. 35260 352612004-04-27 Wu Yongwei <adah@sh163.net> 35262 35263 * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure. 35264 (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust. 35265 (__gthread_mutex_init_function): Replace CreateMutex with 35266 initialization of custom mutex using CreateSemaphore. 35267 (__gthread_mutex_lock): Use InterlockedIncrement. 35268 (__gthread_mutex_trylock): Use InterlockedCompareExchange. 35269 (__gthread_mutex_unlock): Use InterlockedDecrement and 35270 ReleaseSemaphore to unlock 35271 * config/i386/gthr-win32.c (__gthread_mutex_init_function, 35272 __gthread_mutex_lock, __gthread_mutex_trylock, 35273 __gthread_mutex_unlock): Adjust to match inline versions in 35274 gthr-win32.h. 35275 352762004-04-27 Paul Brook <paul@codesourcery.com> 35277 35278 * config/arm/arm.c (arm_promote_prototypes): New function. 35279 (TARGET_PROMOTE_PROTOTYPES): Use it. 35280 352812004-04-27 Paul Brook <paul@codesourcery.com> 35282 35283 * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs. 35284 352852004-04-26 Bernard Giroud <bgiroud@free.fr> 35286 35287 * config/alpha.c (alpha_end_function): For OpenVMS gas, 35288 correctly output .pdesc directive before .end. 35289 352902004-04-26 James E Wilson <wilson@specifixinc.com> 35291 35292 Bug 14927 35293 * config/ia64/ia64.md (movxf): New local op0. Handle case where 35294 operands[0] is a SUBREG. Handle case where operands[1] is a GR reg. 35295 352962004-04-26 Zack Weinberg <zack@codesourcery.com> 35297 35298 * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++. 35299 * config/pa/pa-hpux10.h: Likewise. 35300 * config/pa/pa-hpux11.h: Likewise. 35301 353022004-04-26 Geoffrey Keating <geoffk@apple.com> 35303 35304 * doc/invoke.texi (Overall Options): Document default for -o 35305 for PCH files. 35306 353072004-04-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 35308 35309 * builtins.c (expand_builtin_update_setjmp_buf): New function. 35310 (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case. 35311 * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code. 35312 353132004-04-26 Paul Brook <paul@codesourcery.com> 35314 35315 * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets. 35316 353172004-04-26 Paul Brook <paul@codesourcery.com> 35318 35319 * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets. 35320 353212004-04-25 Roger Sayle <roger@eyesopen.com> 35322 35323 * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to 35324 fold (build1 (NEGATE_EXPR, ...)). Optimize X / -1 as -X and 35325 X % -1 as 0. 35326 353272004-04-26 Hans-Peter Nilsson <hp@bitrange.com> 35328 35329 PR bootstrap/15141 35330 * except.c (connect_post_landing_pads): Delete insns after the 35331 barrier when generating a unwind_resume_libfunc call. 35332 353332004-04-25 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 35334 35335 PR/c++ 15119 35336 * tree.c (substitute_placeholder_in_expr, case 4): New case, 35337 for TARGET_EXPR. 35338 353392004-04-25 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 35340 35341 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, 35342 __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when 35343 inhibit_libc is defined. 35344 353452004-04-25 Richard Sandiford <rsandifo@redhat.com> 35346 35347 * config/mips/mips-protos.h (mips_linked_macc_p): Declare. 35348 * config/mips/mips.h (TUNE_MACC_CHAINS): New macro. 35349 * config/mips/mips.c (TARGET_SCHED_REORDER): Define. 35350 (TARGET_SCHED_VARIABLE_ISSUE): Define. 35351 (mips_adjust_cost): Move later in file, next to other sched hooks. 35352 (mips_macc_chains_last_hilo): New variable. 35353 (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder) 35354 (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New. 35355 * config/mips/mips.md (may_clobber_hilo): New attribute. 35356 353572004-04-24 Roger Sayle <roger@eyesopen.com> 35358 Bruce Korb <bkorb@gnu.org> 35359 35360 * fixinc/inclhack.def (aix_syswait_2): New fix. 35361 * fixinc/fixincl.x: Regenerate. 35362 * fixinc/tests/base/sys/wait.h: Update for new test. 35363 353642004-04-24 Alan Modra <amodra@bigpond.net.au> 35365 35366 PR target/14960 35367 * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size 35368 to non_fixed_size, and leave out fixed_size from the sum. 35369 (generate_set_vrsave): Correct clobbers. 35370 (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE. 35371 (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI. 35372 (rs6000_libcall_value): Likewise. 35373 * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise. 35374 (FUNCTION_ARG_REGNO_P): Likewise. 35375 353762004-04-24 Ulrich Weigand <uweigand@de.ibm.com> 35377 35378 * expmed.c (expand_mult_highpart_adjust): Do not assume OP1 35379 is a CONST_INT. 35380 (expand_mult_highpart_optab): Call expand_mult_highpart_adjust 35381 with NARROW_OP1 instead of OP1. 35382 353832004-04-24 Ulrich Weigand <uweigand@de.ibm.com> 35384 35385 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__ 35386 and __s390x__ hosts. 35387 353882004-03-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 35389 35390 * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp, 35391 _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve. 35392 * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID, 35393 BT_FN_INT_CONST_STRING_PTR_CONST_STRING, 35394 BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New. 35395 * builtins.c (expand_builtin_fork_or_exec): New. 35396 (expand_builtin): Call it. 35397 * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE, 35398 BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New. 35399 * c-common.c (PID_TYPE): New macro. 35400 (c_common_nodes_and_builtins): Initialize pid_type_node. 35401 * calls.c (special_function_p): Do not handle fork and exec. 35402 (expand_call): Do not handle ECF_FORK_OR_EXEC. 35403 * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, 35404 __gcov_execv, __gcov_execvp, __gcov_execve): Declare. 35405 * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle, 35406 __gcov_execv, __gcov_execvp, __gcov_execve): New. 35407 * tree.h (enum tree_index): Add TI_PID_TYPE. 35408 (pid_type_node): New macro. 35409 (ECF_FORK_OR_EXEC): Removed. 35410 354112004-04-23 Eric Botcazou <ebotcazou@libertysurf.fr> 35412 35413 PR optimization/13985 35414 * cfgloopmanip.c (fix_loop_placements): New prototype. 35415 Call fix_bb_placements on the preheader of loops that have 35416 been reparented. 35417 (remove_path): Adjust call to fix_loop_placements. 35418 354192004-04-23 Andrew Pinski <pinskia@physics.uc.edu> 35420 35421 * config/darwin7.h: New file. 35422 * config.gcc (*-*-darwin*): Add darwin7.h if the 35423 version is greater than 6. 35424 * config/darwin.h (TARGET_C99_FUNCTIONS): Define. 35425 (MATH_LIBRARY): Wrap in ifdefs. 35426 354272004-04-23 Daniel Jacobowitz <drow@mvista.com> 35428 35429 * config/arm/arm.c (arm_output_epilogue): Reverse the order of 35430 loading iWMMXt registers with a frame pointer. Use post-increment 35431 without a frame pointer. 35432 (arm_expand_prologue): Reverse the order of saving iWMMXt registers. 35433 354342004-04-23 Paolo Bonzini <bonzini@gnu.org> 35435 35436 * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time 35437 mode" rather than "-funit-at-a-time" since -O2 enables it 35438 without requiring -f* options. Refer to -fprofile-generate and 35439 -fprofile-use correctly. Move -funit-at-a-time among options 35440 enabled by -O. Add information about unit-at-a-time caveats. 35441 354422004-04-22 Per Bothner <per@bothner.com> 35443 35444 * line-map.h (struct line_maps): New field highest_line. 35445 (linemap_position_for_column): Make non-inline function. 35446 (LINEMAP_POSITION_FOR_COLUMN): New macro. 35447 * line-map.c (linemap_init): Clear highest_line field. 35448 (linemap_add): Set highest_line field. 35449 (linemap_line_start): Minor optimization - use highest_line field. 35450 Reduce maximum column hint to 10000. Update highest_line field. 35451 (linemap_position_for_column): Moved from line-map.h. Optimize a bit. 35452 * cpphash.h (struct cpp_reader): Remove line field - instead use 35453 line_table->highest_line. 35454 (saved_line): Remove unused field. 35455 (CPP_INCREMENT_FILE): Don't do linemap_lookup - just use newest map. 35456 Use line_table's highest_line field instead of cpp_reader's line. 35457 * cpplib.c (start_directive): Likewise use highest_line field. 35458 (do_line, do_linemarker): Likewise just use newest map. 35459 (_cpp_do_file_change): Don't need to set cpp_reader's line field. 35460 * cpperror.c (cpp_error): Likewise use highest_line field. 35461 * cppfiles.c (open_file_failed: Likewise. 35462 (cpp_make_system_header): Likewise use newest map and highest_line. 35463 * cppinit.c (cpp_create_reader): Don't initialize removed field. 35464 * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment, 35465 skip_line_comment, skip_whitespace, _cpp_get_fresh_line, 35466 _cpp_lex_direct): Likewise use highest_line. 35467 (_cpp_lex_direct): Use new LINEMAP_POSITION_FOR_COLUMN macro. 35468 * cppmacro.c (_cpp_builtin_macro_text): Likewise use highest_line, 35469 and use newest map. 35470 * cpppch.c (cpp_read_state): Don't save+restore cpp_reader's line. 35471 * cpptrad.c (_cpp_overlay_buffer): Don't save cpp_reader's line. 35472 (copy_comment, _cpp_scan_out_logical_line): Likewise use highest_line. 35473 354742004-04-23 Alan Modra <amodra@bigpond.net.au> 35475 35476 PR bootstrap/14992 35477 * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED. 35478 * config/linux.h (USE_LD_AS_NEEDED): Define. 35479 * config/alpha/linux.h (USE_LD_AS_NEEDED): Define. 35480 * config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define. 35481 * config/rs6000/linux.h (USE_LD_AS_NEEDED): Define. 35482 * config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define. 35483 * config/sh/linux.h (USE_LD_AS_NEEDED): Define. 35484 * config/sparc/linux.h (USE_LD_AS_NEEDED): Define. 35485 * config/sparc/linux64.h (USE_LD_AS_NEEDED): Define. 35486 354872004-04-22 Per Bothner <per@bothner.com> 35488 35489 * cppinit.c (cpp_read_main_file): Return NULL rather than false. 35490 Fixes PR preprocessor/15067. 35491 354922004-04-23 Andreas Schwab <schwab@suse.de> 35493 35494 * config/ia64/ia64intrin.h: Add intermediate cast to void * to 35495 avoid aliasing warning. 35496 354972004-04-22 Jan Hubicka <jh@suse.cz> 35498 Mostafa Hagog <mustafa@il.ibm.com> 35499 35500 * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro 35501 * cfgloopanal.c (expected_loop_iterations): Change the return value 35502 355032004-04-22 Jakub Jelinek <jakub@redhat.com> 35504 35505 * cselib.h (struct elt_loc_list): Remove canon_loc field. 35506 * cselib.c (new_elt_loc_list): Remove canon_loc initialization. 35507 (cselib_invalidate_mem): Remove all canon_loc and canon_x 35508 traces. 35509 355102004-04-22 Josef Zlomek <zlomekj@suse.cz> 35511 35512 Revert 35513 2004-04-20 Josef Zlomek <zlomekj@suse.cz> 35514 35515 * var-tracking.c (variable_part_different_p): Variable parts 35516 differ when the most recent locations differ. 35517 355182004-04-22 Richard Sandiford <rsandifo@redhat.com> 35519 35520 * doc/invoke.texi: Remove the MIPS -membedded-pic option. 35521 * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete. 35522 (embedded_pic_offset): Delete. 35523 * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete. Shuffle other 35524 MASK_* constants. 35525 (TARGET_EMBEDDED_PIC): Delete. 35526 (TARGET_SWITCHES): Remove -m{no-,}embedded-pic. 35527 (ASM_SPEC): Remove -membedded-pic. 35528 (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling. 35529 (ASM_OUTPUT_CASE_LABEL): Likewise. 35530 * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic. 35531 * config/mips/windiss.h (ASM_SPEC): Likewise. 35532 * config/mips/mips.c (struct machine_function): Remove 35533 embedded_pic_fnaddr_rtx. 35534 (TARGET_ENCODE_SECTION_INFO): Remove override. 35535 (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete. 35536 (override_options): Remove -membedded-pic handling. 35537 (print_operand): Remove handling of '%S'. 35538 (mips_select_section: Remove -membedded-pic handling. 35539 (mips_encode_section_info): Delete. 35540 (mips_output_conditional_branch): Remove mention of -membedded-pic. 35541 * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove 35542 -membedded-pic handling. 35543 (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete. 35544 355452004-04-22 Alan Modra <amodra@bigpond.net.au> 35546 35547 * var-tracking.c (frame_base_decl): Remove useless GTY. 35548 355492004-04-21 Aldy Hernandez <aldyh@redhat.com> 35550 35551 * config/rs6000/rs6000.c (rs6000_override_options): Error when 35552 user wants altivec and e500 instructions. 35553 355542004-04-21 H.J. Lu <hongjiu.lu@intel.com> 35555 35556 PR target/14813 35557 * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux 35558 in .init_array section to ... 35559 * config/ia64/crtbegin.asm: Here. 35560 35561 * config/ia64/crtend.asm: Mark __do_global_ctors_aux global 35562 and hidden if HAVE_INITFINI_ARRAY is defined. 35563 355642004-04-21 James E Wilson <wilson@specifixinc.com> 35565 35566 * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare. 35567 * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare. 35568 (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New. 35569 (fp_register_operand, lo_operand): New. 35570 (mips_rtx_costs): Add TUNE_SB1 support. 35571 (mips_issue_rate): Add comment. Add PROCESSOR_SB1 support. 35572 (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support. 35573 (mips_multipass_dfa_lookahead): New. 35574 * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS, 35575 TUNE_SB1): New. 35576 (TARGET_SWITCHES): Add -mfp-exceptions support. 35577 (TARGET_FP_EXCEPTIONS_DEFAULT): New. 35578 (BRANCH_COST): Fix whitespace. 35579 * config/mips/mips.md: Include sb1.md. 35580 * config/mips/sb1.md: New file. 35581 * doc/invoke.texi: Document -mfp-exceptions. 35582 35583 * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS. Fix 35584 comment. 35585 * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS. 35586 (fixincl.o-warn): Delete. 35587 355882004-04-21 Andrew Pinski <pinskia@physics.uc.edu> 35589 35590 * config/rs6000/rs6000 (print_operand) ['z']: 35591 Change ifdef of TARGET_MACHO to if TARGET_MACHO. 35592 355932004-04-21 Daniel Jacobowitz <drow@mvista.com> 35594 35595 * config.gcc: Support --with-arch=iwmmxt for ARM. 35596 355972004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 35598 35599 * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1 35600 in two more places; remove unneeded force_reg 35601 356022004-04-21 Andrew Pinski <pinskia@physics.uc.edu> 35603 35604 * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack 35605 for TARGET_MACHO. 35606 (print_operand): For TARGET_MACHO check to see if we need a stub 35607 and output one if we need it. 35608 35609 PR debug/15033 35610 * dwarf2out.c (rtl_for_decl_location): Check for NULL 35611 rtl. 35612 356132004-04-20 James E Wilson <wilson@specifixinc.com> 35614 35615 * config/ia64/ia64.md (call_value_nogp): Add constraints for op0. 35616 (vall_value_gp): Likewise. 35617 356182004-04-20 DJ Delorie <dj@redhat.com> 35619 35620 * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte 35621 variables stored in word registers, then in memory. 35622 356232004-04-20 Eric Christopher <echristo@redhat.com> 35624 35625 * cp/parser.c (cp_parser_declaration): Move translate 35626 up before tokens are lexed. 35627 356282004-04-20 Uros Bizjak <uros@kss-loka.si> 35629 35630 * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos. 35631 (asin_optab, acos_optab): Define corresponding macros. 35632 * optabs.c (init_optabs): Initialize asin_optab and acos_optab. 35633 * genopinit.c (optabs): Implement asin_optab and acos_optab 35634 using asin?f2 and acos?f2 patterns. 35635 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L} 35636 using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab. 35637 (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L} 35638 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 35639 35640 * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2, 35641 acossf2, acosxf2): New expanders to implement asin, asinf, asinl, 35642 acos, acosf and acosl built-ins as inline x87 intrinsics. 35643 356442004-04-20 Paul Brook <paul@codesourcery.com> 35645 35646 * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p. 35647 356482004-04-20 Paul Brook <paul@codesourcery.com> 35649 35650 * config/arm/arm.c (arm_expand_prologue): Fix size calculation. 35651 356522004-04-20 Paolo Bonzini <bonzini@gnu.org> 35653 35654 Revert part of 2004-04-17 change that moved -frename-registers 35655 to -O1. -frename-registers is buggy. 35656 35657 * toplev.c (flag_rename_registers): Initialize to 0. 35658 * doc/invoke.texi (Optimize options): Move -frename-registers 35659 to "Not triggered by any -O level" section. Adjust commentary 35660 accordingly. 35661 356622004-04-20 Anil Paranjpe <anilp1@kpitcummins.com> 35663 35664 * toplev.c (compile_file): Move targetm.asm_out.file_end call to end. 35665 356662004-04-20 Richard Sandiford <rsandifo@redhat.com> 35667 35668 * config/mips/mips.c (mips_legitimize_move): Generate special patterns 35669 for mflo and mfhi instructions. 35670 (mips_output_move): Remove mflo and mfhi handling. 35671 * config/mips/mips.md (UNSPEC_MFHILO): New unspec. 35672 (*mulsidi3_64bit): Update for new mfhi/mflo representation. 35673 Likewise various define_peephole2s. 35674 (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d 35675 alternatives. 35676 (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal) 35677 (*mov[shq]i_mips16): Remove mflo and mfhi alternatives. 35678 (mfhilo_di, mfhilo_si): New patterns. 35679 356802004-04-20 Josef Zlomek <zlomekj@suse.cz> 35681 35682 * function.c (assign_parms): Force 35683 MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm. 35684 356852004-04-20 Josef Zlomek <zlomekj@suse.cz> 35686 35687 * var-tracking.c (variable_part_different_p): Variable parts differ 35688 when the most recent locations differ. 35689 356902004-04-19 James E Wilson <wilson@specifixinc.com> 35691 35692 * rtl.h (reg_set_last): Delete declaration. 35693 * rtlanal.c (reg_set_last): Delete. 35694 356952004-04-19 Roger Sayle <roger@eyesopen.com> 35696 35697 * fold-const.c (fold_convert): Make function extern/public. 35698 * tree.h (fold_convert): Prototype here. 35699 * builtins.c (expand_builtin_strstr, expand_builtin_strchr, 35700 expand_builtin_strrchr, expand_builtin_strpbrk, 35701 expand_builtin_mempcpy, expand_builtin_bcopy, 35702 expand_builtin_bzero, expand_builtin_memcmp, 35703 expand_builtin_strcmp, expand_builtin_strncmp, 35704 stabilize_va_list, expand_builtin_sprintf, 35705 fold_trunc_transparent_mathfn, fold_builtin_logarithm, 35706 fold_builtin_exponent, fold_builtin_mempcpy, 35707 fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp, 35708 fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer 35709 fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))". 35710 357112004-04-19 Aldy Hernandez <aldyh@redhat.com> 35712 35713 * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant. 35714 (move_from_CR_gt_bit): New. 35715 (cceq_ior_compare): Name previously unnamed pattern. Disable for 35716 E500. 35717 (cceq_rev_compare): Name previously unnamed pattern. Allow for 35718 E500. 35719 35720 * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec. 35721 (tstsfeq_gpr): Same. 35722 (cmpsfgt_gpr): Same. 35723 (tstsfgt_gpr): Same. 35724 (cmpsflt_gpr): Same. 35725 (tstsflt_gpr): Same. 35726 (e500_cceq_ior_compare): New. 35727 (e500_flip_gt_bit): New. 35728 35729 * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code. 35730 (print_operand): Add 'c' and 'D'. 35731 (rs6000_generate_compare): Rewrite to generate correct rtl. 35732 (rs6000_emit_sCOND): Handle E500. 35733 (output_cbranch): Adjust for changes in rs6000_generate_compare. 35734 (output_e500_flip_gt_bit): New. 35735 35736 * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit): 35737 Protoize. 35738 357392004-04-19 Eric Christopher <echristo@redhat.com> 35740 35741 * config/mips/mips.h (DWARF2_ADDR_SIZE): New. 35742 357432004-04-19 David Edelsohn <edelsohn@gnu.org> 35744 35745 * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver 35746 fix information. 35747 357482004-04-19 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 35749 35750 * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO 35751 download URL. 35752 357532004-04-19 Daniel Jacobowitz <drow@mvista.com> 35754 35755 * stor-layout.c (layout_decl): Check DECL_PACKED before calling 35756 ADJUST_FIELD_ALIGN. Check maximum_field_alignment after. 35757 357582004-04-19 Andrew PInski <pinskia@physics.uc.edu> 35759 35760 * builtins.c (fold_builtin_cabs): Remove fndecl parameter. 35761 (fold_builtin): Update caller to match. 35762 35763 PR bootstrap/15009 35764 * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump. 35765 35766 PR bootstrap/14999 35767 * builtins.c (fold_builtin_cabs): Mark fndecl as unused. 35768 357692004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 35770 35771 * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case. 35772 35773 * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE. 35774 (expand_mult_highpart_optab): Likewise. 35775 (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE. 35776 357772004-04-19 Paul Brook <paul@codesourcery.com> 35778 35779 * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2, 35780 floatunssisf2, floatunssidf2): New patterns. 35781 357822004-04-18 Mark Mitchell <mark@codesourcery.com> 35783 35784 PR other/14918 35785 * doc/invoke.texi (-fprofile-generate): Document requirement to 35786 use -fprofile-generate when linking. 35787 35788 * doc/extend.texi (Strong Using): Warn users against using this 35789 feature. 35790 357912004-04-18 Richard Sandiford <rsandifo@redhat.com> 35792 35793 * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete. 35794 * config/mips/mips.h (mips_entry, mips_string_length): Delete. 35795 (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine. 35796 * config/mips/mips.c (struct mips16_constant): Renamed from struct 35797 constant. Propogate change throughout file. 35798 (struct machine_function): Remove insns_len. 35799 (mips_string_length, mips16_strings, string_constants): Delete. 35800 (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs 35801 when generating mips16 code. Remove special mips16 treatment of 35802 string constants. 35803 (mips_symbolic_constant_p): Allow mips16 constant pool accesses 35804 to have the form LABEL+CONSTANT. 35805 (mips_symbolic_address_p): Fix comment. 35806 (m16_usym8_4, m16_usym5_4): Delete. 35807 (mips_output_function_epilogue): Remove mips16 string handling. 35808 (mips_output_mi_thunk): Call mips16_lay_out_constants. 35809 (mips_select_section, mips_encode_section_info): Remove mips16 35810 string handling. 35811 (struct mips16_constant_pool): New. 35812 (add_constant): Take a mips16_constant_pool structure. Keep pool 35813 sorted into order of ascending mode size. Keep track of the highest 35814 possible start address, taking padding and the masking of the base PC 35815 value into account. 35816 (dump_constants_1): New function, split out from dump_constants. 35817 Handle vector constants. Use gen_consttable_{int,float} rather than 35818 separate functions for each mode. 35819 (dump_constants): Simplify. Use GET_MODE_ALIGNMENT. Use gen_align 35820 rather than separate functions for each alignment. 35821 (mips_find_symbol): Delete. 35822 (mips16_insn_length): New function, split out from 35823 mips16_lay_out_constants. 35824 (mips16_rewrite_pool_refs): New function. 35825 (mips16_lay_out_constants): Rework. Remove string handling. 35826 Always create an inline constant pool. 35827 * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT) 35828 (UNSPEC_ALIGN): New constants. 35829 (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete. 35830 (UNSPEC_ALIGN_[248]): Delete. 35831 (consttable_int, consttable_float, align): New patterns. 35832 (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete. 35833 358342004-04-17 Aldy Hernandez <aldyh@redhat.com> 35835 35836 * config/rs6000/altivec.h (vec_any_numeric): Correct typo in 35837 __unn_args_eq. 35838 358392004-04-17 Alan Modra <amodra@bigpond.net.au> 35840 35841 PR target/14715 35842 * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree 35843 with STARTING_FRAME_OFFSET. 35844 358452004-04-17 Richard Sandiford <rsandifo@redhat.com> 35846 35847 * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand. 35848 * config/mips/mips.c (macc_msac_operand): New function. 35849 * config/mips/mips.md (*msac): Move after *macc. 35850 (*msac2): New. Generalize macc-related peepholes so that they apply 35851 to msac too. 35852 358532004-04-17 Paolo Bonzini <bonzini@gnu.org> 35854 35855 * opts.c (decode_options): Do not enable flag_rename_registers 35856 and flag_web at -O3. 35857 * toplev.c (flag_rename_registers): Initialize 35858 flag_rename_registers and flag_web to 35859 AUTODETECT_FLAG_VAR_TRACKING. 35860 (default_debug_hooks): New global. 35861 (process_options): Initialize default_debug_hooks. Warn if 35862 -fvar-tracking specified but not supported by the current 35863 debug format. Do not run var tracking at -O0 or if not 35864 supported by the current debug format, even if 35865 -fvar-tracking was given. If -fno-rename-registers 35866 is not specified, always run register renaming if var 35867 tracking is supported by the default debugging information 35868 format for the target, and we are at -O1 or higher; similarly 35869 for -fweb, but only at -O2 or higher. 35870 * doc/invoke.texi (Optimize Options): Document this. 35871 358722004-04-17 Richard Sandiford <rsandifo@redhat.com> 35873 35874 * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK. 35875 * configure: Regenerate. 35876 358772004-04-17 Richard Sandiford <rsandifo@redhat.com> 35878 35879 * gcc.c (used_arg): Check whether an option has been removed. 35880 358812004-04-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 35882 35883 * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2 35884 debugging on Solaris 7 and up. 35885 358862004-04-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 35887 35888 * doc/install.texi (Specific, mips-sgi-irix5): Reflect working 35889 IRIX 5 port. 35890 Remove -save-temps workaround, handled automatically. 35891 Require GNU binutils 2.15 for debugging. 35892 Remove SGI make warnings since GNU make is now required. 35893 (Specific, mips-sgi-irix6): Some markup fixes. 35894 Describe MIPSpro C problems and workarounds. 35895 Mention working O32 ABI support. 35896 Recommend GNU as 2.15 for O32 with debugging. 35897 Remove description of fixed structure pass/return bug. 35898 358992004-04-16 DJ Delorie <dj@redhat.com> 35900 35901 * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not 35902 TYPE_FIELDS. 35903 (sdbout_finish): Don't free deferred_global_decls; it's GC'd. 35904 359052004-04-16 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 35906 35907 * pa.md: Remove unnecessary declarations for asm_out_file. 35908 35909 * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of 35910 SAR register. Fix comment. 35911 (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register 35912 (%cr11). 35913 35914 * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld. 35915 359162004-04-16 Nick Clifton <nickc@redhat.com> 35917 35918 * config/arm/arm.c (arm_override_options): Revert previous patch. 35919 * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can 35920 be safely built. 35921 359222004-04-16 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 35923 35924 * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian 35925 bug. 35926 (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN, 35927 TARGET_DEFAULT): Changed. Ditto. 35928 (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT, 35929 TARGET_ENDIAN_DEFAULT): Added. Ditto. 35930 * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted. 35931 (TARGET_ENDIAN_DEFAULT): Added. 35932 359332004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 35934 35935 * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with 35936 ATTR_CONST_NOTHROW_LIST. 35937 359382004-04-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 35939 35940 PR/middle-end 14915 35941 * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not 35942 BITS_BIG_ENDIAN. 35943 359442004-04-15 Pat Haugen <pthaugen@us.ibm.com> 35945 35946 * ra-debug.c (ra_print_rtx): Add break's to case legs. 35947 359482004-04-14 James E Wilson <wilson@specifixinc.com> 35949 35950 * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string. 35951 359522004-04-14 Nathanael Nerode <neroden@gcc.gnu.org> 35953 35954 * libada-mk.in: New file. 35955 * configure.ac: Create libada-mk from libada-mk.in. 35956 * configure: Regenerate. 35957 359582004-04-14 Uros Bizjak <uros@kss-loka.si> 35959 35960 * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb. 35961 (logb_optab, ilogb_optab): Define corresponding macros. 35962 * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab. 35963 * genopinit.c (optabs): Implement logb_optab and ilogb_optab 35964 using logb?f2 and ilogb?i2 patterns. 35965 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L} 35966 using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab. 35967 (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L} 35968 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 35969 35970 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT 35971 and UNSPEC_XTRACT_EXP. 35972 35973 * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New 35974 patterns to implement fxtract x87 instruction. 35975 (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement 35976 logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87 35977 intrinsics. 35978 (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent 35979 x87's fxtract insn. 35980 359812004-04-14 Eric Christopher <echristo@redhat.com> 35982 35983 * config/mips/t-elf: Enable multilibs by default. 35984 359852004-04-14 Andreas Tobler <a.tobler@schweiz.ch> 35986 35987 * bb-reorder.c (fix_crossing_conditional_branches): Adjust the 35988 previous fix to check HAVE_return at runtime too. 35989 359902004-04-14 Nick Clifton <nickc@redhat.com> 35991 35992 * config/arm/arm.c (arm_override_options): If the user has not 35993 specified an ABI, then default to AAPCS for the iWMMXt processor. 35994 * config/arm/t-xscale-elf: Remove redundant multilib specifications. 35995 * config/arm/t-xscale-coff: Likewise. 35996 359972004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 35998 35999 * builtins.c (fold_builtin_isdigit): New. 36000 (fold_builtin): Handle BUILT_IN_ISDIGIT. 36001 * defaults.h: Add TARGET_DIGIT0 and sort. 36002 * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0. 36003 360042004-04-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 36005 36006 * builtins.c (fold_builtin_cabs, fold_builtin): Use 36007 `mathfn_built_in' to determine the new builtin. 36008 * fold-const.c (fold): Likewise. 36009 360102004-04-14 Richard Sandiford <rsandifo@redhat.com> 36011 36012 * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120. 36013 * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122. 36014 (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122. 36015 (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120. 36016 (ASM_SPEC): Update accordingly. 36017 * config/mips/mips.c: Update after above renaming. 36018 * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise. 36019 * config/mips/vr4120-div.S: Renamed from vr4122-div.S. 36020 360212004-04-13 James E Wilson <wilson@specifixinc.com> 36022 36023 * c-opt.c (c_common_post_options): If this_input_filename is NULL, 36024 increment errorcount and return false instead of true. 36025 360262004-04-13 Uros Bizjak <uros@kss-loka.si>: 36027 36028 * optabs.c (expand_twoval_unop): Reorder function arguments. 36029 * builtins.c (expand_builtin_mathfn_3): Update calls to 36030 expand_twoval_unop. 36031 36032 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE 36033 and UNSPEC_TAN_TAN. Add missing comment. 36034 36035 * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New 36036 patterns to implement fptan x87 instruction. 36037 (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf 36038 and tanl built-ins as inline x87 intrinsics. Define corresponding 36039 peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence. 36040 (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent 36041 x87's fptan insn. 36042 360432004-03-13 Richard Henderson <rth@redhat.com> 36044 36045 * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode 36046 for LABEL_REFs. 36047 36048 * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot. 36049 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise. 36050 * doc/invoke.texi: Update to match. 36051 36052 * varasm.c (unlikely_text_section): Use assemble_align instead of 36053 ASM_OUTPUT_ALIGN. Use it in the correct place with an approximately 36054 correct alignment argument. 36055 360562004-04-13 Ulrich Weigand <uweigand@de.ibm.com> 36057 36058 * reload1.c (emit_reload_insns): Set reg_has_output_reload to one 36059 after setting reg_last_reload_reg for optional output reloads. 36060 360612004-04-12 Fariborz Jahanian <fjahanian@apple.com> 36062 36063 * config/rs6000/altivec.h (vec_mergeh, vec_mergel): 36064 Definition of these two macros are corrected by adding 36065 matchine right paren. 36066 360672004-04-12 Jonathan Larmour <jifl@eCosCentric.com> 36068 36069 * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI. 36070 360712004-04-12 Roger Sayle <roger@eyesopen.com> 36072 36073 * config/i386/i386.c (output_387_reg_move): New function. 36074 * config/i386/i386-protos.h (output_387_reg_move): Prototype here. 36075 * config/i386/i386.md (*movsf_1, *movsf1_nointerunit, 36076 *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer, 36077 *extendsfdf2_1, *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop, 36078 truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move. 36079 360802004-04-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 36081 36082 * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized 36083 TYPE_DECL. 36084 * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL. 36085 * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN. 36086 * stor-layout.c (variable_size): Don't check for MINUS_EXPR. 36087 Use skip_simple_arithmetic to find SAVE_EXPR. 36088 (force_type_save_exprs, force_type_save_exprs_1): New functions. 36089 * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE): 36090 Properly chain multiple pointers. 36091 (copy_tree_r): Copy a TYPE_DECL. 36092 * tree.c (variably_modified_type_p): Add some missing tests and 36093 make some other minor changes. 36094 * tree.h (force_type_save_exprs): New declaration. 36095 360962004-04-12 Roger Sayle <roger@eyesopen.com> 36097 36098 * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>: 36099 Remove fall throughs. Convert 0/x and 0%x into x&0 when x has 36100 side-effects. Don't convert x/1.0 into x if we honor signaling NaNs. 36101 Convert x/-1.0 into -x if we don't honor signaling NaNs. Convert 36102 x/-1 into -x. Optimize x%1 into x&0 if x has side-effects. Optimize 36103 x%-1 into 0 (or x&0 if x has side-effects). 36104 361052004-04-11 Aldy Hernandez <aldyh@redhat.com> 36106 36107 * config/rs6000/rs6000.md: Document why a pattern is not 36108 available. 36109 36110 * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons 36111 of floats on the E500. 36112 (branch_positive_comparison_operator): Do not allow NE even on the 36113 E500. 36114 361152004-04-11 Aldy Hernandez <aldyh@redhat.com> 36116 36117 * config/rs6000/rs6000.c (rs6000_assemble_integer): Change 36118 in_text_unlikely_section to in_unlikely_text_section. 36119 361202004-04-11 Roger Sayle <roger@eyesopen.com> 36121 36122 * fold-const.c (fold_binary_op_with_conditional_arg): Tweak 36123 calling convention to allow a NULL_TREE to be returned. Factor 36124 sanity checks from callers, return NULL_TREE when appropriate. 36125 (fold): Handle COMPOUND_EXPR operands of binary expressions 36126 before COND_EXPR operands. Use reorder_operands_p(a,b) to check 36127 whether a op (b,c) can be rewritten as (b, a op c). Simplify 36128 calls to fold_binary_op_with_conditional_arg. 36129 361302004-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 36131 36132 * config/mips/iris5.h (current_section_flags): Add 36133 in_unlikely_executed_text and default case. 36134 361352004-04-11 Andreas Tobler <a.tobler@schweiz.ch> 36136 36137 * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap 36138 failure on solaris. Place ifdef HAVE_return around gen_ret call. 36139 * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef 36140 HAVE_return and place it around the place where it is needed. 36141 361422004-04-11 Andrew Pinski <pinskia@physics.uc.edu> 36143 36144 * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and 36145 ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING 36146 and NORMAL_TEXT_SECTION_NAME. 36147 (unlikely_text_section): Check targetm.have_named_sections 36148 instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP 36149 instead of SECTION_FORMAT_STRING. 36150 * config/mips/iris5.h (current_section_name): Add 36151 in_unlikely_executed_text case and move the abort into the switch. 36152 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove. 36153 (NORMAL_TEXT_SECTION_NAME): Remove. 36154 (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove. 36155 (SECTION_FORMAT_STRING): Remove. 36156 * defaults.h (SECTION_FORMAT_STRING): Remove. 36157 * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove. 36158 (SECTION_FORMAT_STRING): Remove. 36159 361602004-04-10 Joseph S. Myers <jsm@polyomino.org.uk> 36161 36162 * c-typeck.c (common_type): Prefer long long to long when same 36163 precision. 36164 361652004-04-09 Zack Weinberg <zack@codesourcery.com> 36166 36167 PR 14887 36168 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at 36169 mode argument. 36170 * config/ia64/ia64.c (ia64_hpux_file_end): Check 36171 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME. 36172 361732004-04-09 Roger Sayle <roger@eyesopen.com> 36174 36175 * simplify-rtx.c (mode_signbit_p): New function to check whether 36176 an RTX is an immediate constant that represents the most significant 36177 bit of a given machine mode. 36178 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where 36179 C is the sign bit. 36180 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2) 36181 when C2 is the sign bit. 36182 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C 36183 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the 36184 sign bit. 36185 361862004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 36187 36188 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not 36189 TYPE_MODE. 36190 361912004-04-09 Andrew Pinski <pinskia@physics.uc.edu> 36192 36193 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead 36194 of TREE_READONLY for types. 36195 361962004-04-09 Caroline Tice <ctice@apple.com> 36197 36198 * basic-block.h (struct edge_def): Add new field, crossing_edge. 36199 (struct basic_block_def): Add new field, partition. 36200 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro 36201 definitions. 36202 (partition_hot_cold_basic_blocks): Add extern function 36203 declaration. 36204 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new 36205 include statements. 36206 (N_ROUNDS): Increase the maximum number of rounds by 1. 36207 (branch_threshold): Add array value for new round. 36208 (exec_threshold): Add array value for new round. 36209 (push_to_next_round_p): New function. 36210 (add_unlikely_executed_notes): New function. 36211 (find_rarely_executed_basic_blocks_and_crossing_edges): New function. 36212 (mark_bb_for_unlikely_executed_section): New function. 36213 (add_labels_and_missing_jumps): New function. 36214 (add_reg_crossing_jump_notes): New function. 36215 (fix_up_fall_thru_edges): New function. 36216 (find_jump_block): New function. 36217 (fix_crossing_conditional_branches): New function. 36218 (fix_crossing_unconditional_branches): New function. 36219 (fix_edges_for_rarely_executed_code): New function. 36220 (partition_hot_cold_basic_blocks): New function. 36221 (find_traces): Add an extra round for partitioning hot/cold 36222 basic blocks. 36223 (find_traces_1_round): Add a parameter. Modify to push all cold blocks, 36224 and only cold blocks, into the last (extra) round of collecting traces. 36225 (better_edge_p): Add a parameter. Modify to favor non-crossing edges 36226 over crossing edges. 36227 (bb_to_key): Add code to correctly identify cold blocks when 36228 doing partitioning. 36229 (connect_traces): Modify to connect all the non-cold traces first, then 36230 go back and connect up all the cold traces. 36231 (reorder_basic_blocks): Add call to add_unlikely_executed_notes. 36232 * cfg.c (entry_exit_blocks): Add initialization for partition field in 36233 entry and exit blocks. 36234 * cfgbuild.c (make_edges): Update current_function_has_computed_jump 36235 if we are doing hot/cold partitioning. 36236 * cfgcleanup.c (cfglayout.h): Add new include statement. 36237 (try_simplify_condjump): Modify to not attempt on blocks with jumps 36238 that cross section boundaries. 36239 (try_forward_edges): Likewise. 36240 (merge_blocks_move_predecessor_nojumps): Likewise. 36241 (merge_blocks_move_successor_nojumps): Likewise. 36242 (merge_blocks_move): Likewise. 36243 (try_crossjump_to_edge): Modify to not attempt after we have done 36244 the block partitioning. 36245 (try_crossjump_bb): Modify to not attempt on blocks with jumps that 36246 cross section boundaries. 36247 (try_optimize_cfg): Likewise. 36248 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect 36249 jumps that cross section boundaries. 36250 * cfglayout.c (flags.h): Add new include statement. 36251 (update_unlikely_executed_notes): New function. 36252 (fixup_reorder_chain): Add code so when a new jumping basic block is 36253 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are 36254 updated appropriately. 36255 (duplicate_insn_chain): Add code to duplicate the new NOTE insn 36256 introduced by this optimization. 36257 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new 36258 extern function declaration. 36259 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to 36260 list of notes that can be deleted. 36261 (create_basic_block_structure): Add initialization for partition field. 36262 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross 36263 section boundaries. 36264 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that 36265 cross section boundaries. 36266 (commit_one_edge_insertion): Add code so newly created basic block 36267 ends up in correct (hot or cold) section. Modify to disallow 36268 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. 36269 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge 36270 crosses section boundaries. 36271 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that 36272 cross section boundaries. 36273 (force_nonfallthru_and_redirect): Modify to make sure new basic block 36274 ends up in correct section, with correct notes attached. 36275 * common.opt (freorder-blocks-and-partition): Add new flag for this 36276 optimization. 36277 * dbxout.c (dbx_function_end): Add code to make sure scope labels at 36278 the end of functions are written into the correct (hot or cold) 36279 section. 36280 (dbx_source_file): Add code so writing debug file information 36281 doesn't incorrectly change sections. 36282 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use 36283 in partitioning hot/cold basic blocks into separate sections. 36284 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold 36285 section partitioning. 36286 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not 36287 conditional branches can span all of memory. 36288 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not 36289 unconditional branches can span all of memory. 36290 * final.c (scan_ahead_for_unlikely_executed_note): New function. 36291 (final_scan_insn): Add code to check for NOTE instruction indicating 36292 whether basic block belongs in hot or cold section, and to make sure 36293 the current basic block is being written to the appropriate section. 36294 Also added code to ensure that jump table basic blocks end up in the 36295 correct section. 36296 * flags.h (flag_reorder_blocks_and_partition): New flag. 36297 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if 36298 one of the branches has a jump that crosses between sections. 36299 (find_if_case_2): Likewise. 36300 (ifcvt): Modify to not attempt to mark loop exit edges after 36301 hot/cold partitioning has occurred. 36302 * opts.c (decode_options): Code to handle new flag, 36303 flag_reorder_blocks_and_partition; also to turn it off if 36304 flag_exceptions is on. 36305 (common_handle_option): Code to handle new flag, 36306 flag_reorder_blocks_and_partition. 36307 * output.h (unlikely_text_section): New extern function declaration. 36308 (in_unlikely_text_section): New extern function declaration. 36309 * passes.c (rest_of_handle_stack_regs): Add 36310 flag_reorder_blocks_and_partition as an 'or' condition for calling 36311 reorder_basic_blocks. 36312 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition 36313 as an 'or' condition for calling reorder_basic_blocks. 36314 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks. 36315 * print-rtl.c (print_rtx): Add code for handling new note, 36316 NOTE_INSN_UNLIKELY_EXECUTED_CODE 36317 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below). 36318 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that 36319 cross between section boundaries. 36320 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction, 36321 indicating the basic block containing it belongs in the cold section. 36322 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross 36323 between hot and cold sections. 36324 * toplev.c (flag_reorder_blocks_and_partition): Add code to 36325 initialize this flag, and to tie it to the command-line option 36326 freorder-blocks-and-partition. 36327 * varasm.c (cfglayout.h): Add new include statement. 36328 (unlikely_section_label_printed): New global variable, used for 36329 determining when to output section name labels for cold sections. 36330 (in_section): Add in_unlikely_executed_text to enum data structure. 36331 (text_section): Modify code to use SECTION_FORMAT_STRING and 36332 NORMAL_TEXT_SECTION_NAME macros. 36333 (unlikely_text_section): New function. 36334 (in_unlikely_text_section): New function. 36335 (function_section): Add code to make sure beginning of function is 36336 written into correct section (hot or cold). 36337 (assemble_start_function): Add code to make sure stuff is written to 36338 the correct section. 36339 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition 36340 to an if statement that was checking 'in_text_section'. 36341 (assemble_variable): Add 'in_unlikely_text_section' as an 'or' 36342 condition to an if statement that was checking 'in_text_section'. 36343 (default_section_type_flags_1): Add check: if in cold section 36344 flags = SECTION_CODE. 36345 * config/darwin.c (darwin_asm_named_section): Modify to use 36346 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks. 36347 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro 36348 specifically for the i386. 36349 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386. 36350 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change 36351 text string to something more informative. 36352 (NORMAL_TEXT_SECTION_NAME): Add new definition. 36353 (SECTION_FORMAT_STRING): Add new definition. 36354 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add 36355 '!in_unlikely_text_section' as an 'and' condition to an if statement 36356 that was already checking '!in_text_section'. 36357 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME, 36358 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make 36359 sure these are properly defined for linux on ppc. 36360 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation 36361 for this new flag. 36362 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new 36363 reg_note. 36364 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING, 36365 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for 36366 these new macros. 36367 363682004-04-08 Roger Sayle <roger@eyesopen.com> 36369 36370 * function.c (gen_mem_addressof): When changing the RTX from a REG 36371 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P. 36372 363732004-04-08 Roger Sayle <roger@eyesopen.com> 36374 36375 PR target/14888 36376 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop, 36377 truncxfdf2_noop): Provide dummy "fmov" implementations. 36378 363792004-04-08 Ian Lance Taylor <ian@wasabisystems.com> 36380 36381 * gcc.c (default_compilers): Add missing initializers. 36382 36383 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): 36384 Return 1 if file was successfully mapped. 36385 363862004-04-08 Geoffrey Keating <geoffk@apple.com> 36387 36388 PR pch/13419 36389 PR pch/14137 36390 Radar #: 3315288 36391 * doc/invoke.texi (Precompiled Headers): Suggest -o 36392 to put an output file in a particular place. Be more detailed 36393 about which options affect PCH validity and which options 36394 might not work. 36395 * c-pch.c (pch_matching): New. 36396 (MATCH_SIZE): New. 36397 (struct c_pch_validity): New field 'match'. 36398 (pch_init): Handle pch_matching. 36399 (c_common_valid_pch): Check pch_matching. 36400 36401 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE. 36402 364032004-04-08 Mark Mitchell <mark@codesourcery.com> 36404 36405 * doc/invoke.texi (Precompiled Headers): Warn about known 36406 problems. 36407 364082004-04-08 Danny Smith <dannysmith@users.sourceforge.net> 36409 36410 PR c++/14808 36411 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default 36412 to 1 if ASM_OUTPUT_DEF is defined. 36413 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document. 36414 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define. 36415 Set to non-zero iff not a one_only decl. 36416 364172004-04-08 Paul Brook <paul@codesourcery.com> 36418 36419 * arm.h (CLASS_LIKELY_SPILLED_P): Define. 36420 364212004-04-08 Paul Brook <paul@codesourcery.com> 36422 36423 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of 36424 PROMOTE_FOR_CALL_ONLY. 36425 * config/arm/arm-protos.h (arm_function_value): Declare. 36426 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define. 36427 (TARGET_PROMOTE_PROTOTYPES): Return false. 36428 (arm_function_value): New function. 36429 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define. 36430 (FUNCTION_VALUE): Call arm_function_value. 36431 * config/cris/cris.h (PROMOTE_MODE): Rename ... 36432 (PROMOTE_FUNCTION_MODE): ... to this. 36433 (PROMOTE_FOR_CALL_ONLY): Remove. 36434 * config/mmix/mmix.h: Likewise. 36435 * config/s390/s390.h: Likewise. 36436 * config/sparc/sparc.h: Likewise. 36437 * config/sparc/sparc.c: Update comments about PROMOTE_MODE. 36438 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document. 36439 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update. 36440 (PROMOTE_FOR_CALL_ONLY): Remove. 36441 364422004-04-08 Joel Sherrill <joel@oarcorp.com> 36443 36444 PR ada/14538 36445 * ada/5rosinte.adb: Remove fake mprotect() body. 36446 * ada/5rosinte.ads: Add SA_SIGINFO. 36447 * ada/5rtpopsp.adb: Rewrite to use new interface. 36448 * ada/init.c: Reorder so the simple single OS conditional __rtems__ 36449 is tested before more complex ones which mix UNIX and embedded 36450 systems in the conditional. 36451 364522004-04-08 Joel Sherrill <joel@oarcorp.com> 36453 36454 PR ada/14665 36455 * ada/osint.adb (Find_Program_Name): Rework to properly handle 36456 filenames which end in .exe or have versioning suffixes like VMS. 36457 364582004-04-08 Andrew Pinski <pinskia@physics.uc.edu> 36459 36460 PR target/10129 36461 * config/darwin.c (darwin_encode_section_info): When the decl has 36462 a DECL_INITIAL, it is only defined also when it is not a common. 36463 364642004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 36465 36466 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New. 36467 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII. 36468 364692004-04-07 H.J. Lu <hongjiu.lu@intel.com> 36470 36471 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod 36472 global register variables. 36473 364742004-04-07 Joseph S. Myers <jsm@polyomino.org.uk> 36475 36476 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a, 36477 rpc_xdr_lvalue_cast_b): New fixes. 36478 * fixinc/fixincl.x: Regenerate. 36479 * fixinc/tests/base/rpc/xdr.h: Add new tests. 36480 364812004-04-07 David Edelsohn <edelsohn@gnu.org> 36482 36483 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF 36484 to power4 and power5 entries. 36485 364862004-04-06 Geoffrey Keating <geoffk@apple.com> 36487 36488 * c-common.h (pending_lang_change): Mark for PCH. 36489 364902004-04-07 Caroline Tice <ctice@apple.com> 36491 36492 * gcc.c (main): Move 'break' in main loops (on an error) 36493 to wait until error processing has occurred. 36494 364952004-04-06 Nathanael Nerode <neroden@gcc.gnu.org> 36496 36497 * config.gcc: Stop changing enable_threads midstream. 36498 Replace uses of enable_threads_flag with enable_threads. 36499 * configure.ac: Replace uses of enable_threads_flag with 36500 enable_threads. Improve autoconf quotation in one place. 36501 * configure: Regenerate. 36502 365032004-04-06 Uros Bizjak <uros@kss-loka.si> 36504 36505 * builtins.c: Implement support for sincos function. 36506 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and 36507 BUILT_IN_COS{,F,L}. 36508 (expand_builtin_mathfn_3): New function. 36509 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and 36510 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if 36511 flag_unsafe_math_optimization is set. 36512 36513 * optabs.h (enum optab_index): Add new OTI_sincos. 36514 (sincos_optab): Define corresponding macro. 36515 36516 * optabs.c (init_optabs): Initialize sincos_optab. 36517 (expand_twoval_unop): New function. 36518 36519 * genopinit.c (optabs): Implement sincos_optab using sincos?f3 36520 patterns. 36521 36522 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS 36523 and UNSPEC_SINCOS_SIN. 36524 36525 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3, 36526 sincosxf3): New patterns to implement sincos, sincosf and sincosl 36527 built-ins as inline x87 intrinsics. Define splits for 36528 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2, 36529 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding 36530 sincos patterns. 36531 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2. 36532 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2. 36533 36534 (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent 36535 x87's fsincos insn. 36536 365372004-04-06 Devang Patel <dpatel@apple.com> 36538 36539 PR 14467 36540 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3. 36541 365422004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 36543 36544 * doc/install.texi: Update HP-UX 11 installation procedure. 36545 365462004-04-06 Paul Brook <paul@codesourcery.com> 36547 36548 * doc/sourcebuild.texi: Remove obsolete contraint on testcases. 36549 365502004-04-05 Kaz Kojima <kkojima@gcc.gnu.org> 36551 36552 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn 36553 when the TLS address is generated by a function call. 36554 * config/sh/sh.md (tls_global_dynamic): Use a call expression. 36555 (tls_local_dynamic): Likewise. 36556 365572004-04-05 Andrew Pinski <pinskia@physics.uc.edu> 36558 36559 * tree.c (reconstruct_complex_type): Use TYPE_READONLY 36560 and TYPE_VOLATILE. 36561 365622004-04-05 Caroline Tice <ctice@apple.com> 36563 36564 * gcc.c (combine_flag): New global variable, for new driver option. 36565 (struct compiler): Add two new fields, to be used when 36566 combining multiple input files in a single pass (IMA). 36567 (default_compilers): Add values for the new fields to all 36568 compiler entries. Modify the "@c" compiler entry for doing IMA 36569 properly with "-save-temps" and the "combine" flag. 36570 (option_map): Add new driver option, "--combine", to tell driver 36571 to pass multiple input files to compiler at one time. 36572 (have_o_argbuf_index): New global variable. 36573 (store_arg): Modify to assign value to have_o_argbuf_index. 36574 (struct infile): Add three new fields, to help with IMA. 36575 (display_help): Add help for new "combine" option. 36576 (process_command): Remove local variable have_o; add code to check 36577 for new "combine" option; remove assignment to combine_inputs. 36578 (do_spec_1): Modify to deal with IMA better. 36579 (main): Make variable 'lang_n_infiles' local to entire function 36580 rather than to a single block. Use flag combine_flag to 36581 determine whether to do IMA or not; Modify loop initializing 36582 infiles to deal properly with linker files. 36583 Add code for doing preprocessing in presence of 36584 IMA with "-save-temps" flag. Modify "main" loop to handle 36585 multiple input files, in multiple languages, with or without 36586 preprocessing, gracefully. 36587 * toplev.c (set_src_pwd): Modify to not complain if attempting to 36588 re-set it to same directory it's previously been set to (avoid 36589 irritating, meaningless warning messages when doing IMA with 36590 save-temps). 36591 * doc/invoke.texi: Add "-combine" to list of Overall Options; 36592 remove documentation about IMA that is no longer accurate; Add 36593 documentation explaining what "-combine" does. 36594 * ada/lang-specs.h: Add initialization values for new fields in 36595 "struct compiler". 36596 * cp/lang-specs.h: Likewise. 36597 * f/lang-specs.h: Likewise. 36598 * java/lang-specs.h: Likewise. 36599 * objc/lang-specs.h: Likewise. 36600 * treelang/lang-specs.h: Likewise. 36601 366022004-04-05 David Edelsohn 36603 36604 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special 36605 symbol handling. 36606 366072004-04-05 Jakub Jelinek <jakub@redhat.com> 36608 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 36609 36610 PR optimization/13424 (hppa), bootstrap/14462, c/14828 36611 * pa.md: Use replace_equiv_address to retain the attributes of the 36612 memory operands used in the split and peephole2 patterns for optimizing 36613 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns. 36614 366152004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 36616 36617 * c-decl.c (build_compound_literal): Use TYPE_READONLY. 36618 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. 36619 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise. 36620 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a 36621 PARM_DECL. 36622 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only 36623 for a type. 36624 * print-tree.c (print_node): Properly handle side-effects, readonly, 36625 and constant flags. 36626 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS 36627 and TREE_CONSTANT if not a type. 36628 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro. 36629 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'. 36630 (NON_TYPE_CHECK): New macro. 36631 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check. 36632 366332004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr> 36634 36635 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set 36636 to DWARF2_DEBUG unconditionally. 36637 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally. 36638 366392004-04-04 Ian Lance Taylor <ian@wasabisystems.com> 36640 Nathanael Nerode <neroden@gcc.gnu.org> 36641 36642 PR target/14548 36643 * config.host: Set the shell variable host_can_use_collect2. 36644 Set it to yes by default, and to no for alpha*-dec-*vms*, 36645 i[34567]86-*-mingw32*, and powerpc-*-beos*. 36646 * configure.ac: Set and substitute the shell variable collect2. 36647 Give an error if use_collect2 is yes and host_can_use_collect2 is 36648 no. 36649 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all 36650 uses. Initialize to @collect2@. 36651 (STAGESTUFF): Remove $(USE_COLLECT2). 36652 * config/alpha/x-vms (USE_COLLECT2): Don't set. 36653 * config/i386/t-mingw32 (USE_COLLECT2): Likewise. 36654 * config/rs6000/t-beos (USE_COLLECT2): Likewise. 36655 * config/pa/t-pa64: Remove commented out USE_COLLECT2. 36656 * configure: Regenerate. 36657 366582004-04-04 Roger Sayle <roger@eyesopen.com> 36659 36660 * simplify-rtx.c (simplify_binary_operation): Constant fold 36661 DIV, MOD, UDIV and UMOD using div_and_round_double. 36662 366632004-04-04 Mark Mitchell <mark@codesourcery.com> 36664 36665 PR c++/14804 36666 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to 36667 RECORD_TYPEs. 36668 366692004-04-04 Mark Mitchell <mark@codesourcery.com> 36670 36671 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI 36672 documentation. 36673 366742004-04-04 Roger Sayle <roger@eyesopen.com> 36675 36676 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when 36677 updating the REG_EQUAL note on an insn's libcall_insn. 36678 366792004-04-04 Roger Sayle <roger@eyesopen.com> 36680 36681 * df.h: Tidy up whitespace in the definitions of the DF_ flags. 36682 366832004-04-03 Roger Sayle <roger@eyesopen.com> 36684 36685 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation 36686 with reorder_operands_p. 36687 366882004-04-03 Jan Hubicka <jh@suse.cz> 36689 36690 * md.texi (vec_set, vec_extract, vec_init): Document. 36691 366922004-04-02 Gabor Loki <loki@inf.u-szeged.hu> 36693 36694 * opts.c (decode_options): Do function inlining with very small 36695 max-inline-insns-* parameters when optimizing for size. 36696 366972004-04-02 Vladimir Makarov <vmakarov@redhat.com> 36698 36699 * config/i386/i386.h (TARGET_NOCONA): New macro. 36700 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona. 36701 (processor_type): Add PROCESSOR_NOCONA. 36702 36703 * config/i386/i386.md (cpu): Add nocona to the attribute values. 36704 36705 * config/i386/i386.c (nocona_cost): New variable. 36706 (m_NOCONA): New macro. 36707 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, 36708 x86_branch_hints, x86_use_sahf, x86_single_stringop, 36709 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8, 36710 x86_integer_DFmode_moves, x86_partial_reg_dependency, 36711 x86_memory_mismatch_stall, x86_accumulate_outgoing_args, 36712 x86_decompose_lea, x86_arch_always_fancy_math_387, 36713 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor, 36714 x86_ext_80387_constants, x86_four_jump_limit): 36715 (override_options): Add nocona_cost to processor_target_table. 36716 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table. 36717 (incdec_operand): Prevent inc/dec generation for Nocona too. 36718 (ix86_issue_rate): Add PROCESSOR_NOCONA. 36719 367202004-04-01 Andrew Pinski <pinskia@physics.uc.edu> 36721 36722 * rtlanal.c (find_reg_note): Manually 36723 unswitch the loop. 36724 367252004-04-01 Mark Mitchell <mark@codesourcery.com> 36726 36727 * genemit.c (gen_split): Change prototype of generated code. 36728 * genrecog.c (write_action): Adjust prototype for and calls to 36729 gen_split_*. 36730 * gensupport.c (struct queue_elem): Add split field. 36731 (queue_pattern): Return a value. Clear the split field. 36732 (process_rtx): Maintain an association between an insn and the 36733 split generated from it for a define_insn_and_split. 36734 (process_one_cond_exec): Generate a new split for a 36735 define_insn_and_split. 36736 * config/arm/arm-protos.h (arm_split_constant): Add insn 36737 parameter. 36738 (emit_constant_insn): New function. 36739 (arm_gen_constant): Use it. 36740 * config/arm/arm.md: Adjust calls to arm_split_constant. 36741 367422004-04-02 Jan Hubicka <jh@suse.cz> 36743 36744 * cgraph.c: Add overall comment. 36745 (cgraph_inline_hash): New global variable. 36746 (cgraph_create_node): Break out from ... 36747 (cgraph_node): ... here. 36748 (cgraph_edge): New function. 36749 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking. 36750 (cgraph_remove_edge): Accept edge, intead of source and destination. 36751 (cgraph_redirect_edge_callee): New. 36752 (cgraph_remove_node): Update all new datastructures. 36753 (cgraph_record_call, cgraph_remove_call): Kill. 36754 (dump_cgraph_node): Break out from ... ; dump new datastructures. 36755 (dump_cgraph): ... here. 36756 (cgraph_function_possibly_inlined_p): Use new hashtable. 36757 (cgraph_clone_edge, cgraph_clone_node): New. 36758 * cgraph.h: Include hashtab.h 36759 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output 36760 fields, add inlined_to pointer. 36761 (cgraph_node): Add pointer to next_clone. 36762 (cgraph_remove_edge, cgraph_create_edge): Update prototype. 36763 (cgraph_remove_call, cgraph_record_call): Kill. 36764 (cgraph_inline_hash): Declare. 36765 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node, 36766 cgraph_redirect_edge_callee): Declare. 36767 (cgraph_create_edges, cgraph_inline_p): Update prorotype. 36768 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node, 36769 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare. 36770 * cgraphunit.c: Add overall comment. 36771 (cgraph_optimize_function): Kill. 36772 (cgraph_assemble_pending_functions): Do not assemble inline clones. 36773 (cgraph_finalize_function): Update call of cgraph_remove_node 36774 (record_call_1): Record call sites. 36775 (cgraph_create_edges): Accept node instead of decl argument. 36776 (error_found): New static variable. 36777 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions. 36778 (cgraph_analyze_function): Update for new datastructures. 36779 (cgraph_finalize_compilation_unit): Plug memory leak. 36780 (cgraph_optimize_function): Kill. 36781 (cgraph_expand_function): Do not use cgraph_optimize_function. 36782 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into, 36783 cgraph_inlined_callees): Kill. 36784 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of 36785 clones. 36786 (estimate_growth): Simplify. 36787 (cgraph_clone_inlined_nodes): New function. 36788 (cgraph_mark_inline_edge): Re-implement. 36789 (cgraph_mark_inline): Likewise. 36790 (cgraph_check_inline_limits): Simplify. 36791 (cgraph_recursive_inlining_p): New. 36792 (update_callee_keys): Break out from ... 36793 (cgraph_decide_inlining_of_small_functions): ... here; simplify. 36794 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally): 36795 Likewise. 36796 (cgraph_expand_all_functions): Remove inline clones from the ordered 36797 list. 36798 (cgraph_preserve_function_body_p): New predicate. 36799 (cgraph_optimize): Verify cgraph. 36800 * function.h (struct function): Add fields saved_tree/saved_args. 36801 * timevar.def (TV_CGRAPH_VERIFY): Use verifier. 36802 * toplev.c (rest_of_compilation): Do not free cfun. 36803 * tree-inline.c: Include function.h 36804 (struct inline_data): Add saving_p field; replace decl/current_decl by 36805 node/current_node. 36806 (insert_decl_map): New function. 36807 (copy_body_r): Handle saving; update cgraph datastructure. 36808 (copy_body): Handle recursive inlining. 36809 (initialize_inlined_parameters): Likewise. 36810 (expand_call_inline): Propagate node attributes; update cgraph. 36811 (optimize_inline_calls): Verify that datastructure still match. 36812 (save_body): New function. 36813 * tree-inline.h (save_body): New. 36814 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining. 36815 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New. 36816 * langhooks.c (lang_hooks): Add update_decl_after_saving. 36817 368182004-04-01 Serge Belyshev <1319@bot.ru> 36819 36820 PR target/14702 36821 * config/i386/i386.md: fix source operand constraints in 36822 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw 36823 368242004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl> 36825 36826 * fold-const.c (folda): Preserve types of comparisons. 36827 368282004-04-01 Richard Henderson <rth@redhat.com> 36829 36830 * toplev.c (backend_init): Move init_optimization_passes call ... 36831 (lang_dependent_init): ... here. 36832 368332004-04-01 Alan Modra <amodra@bigpond.net.au> 36834 Jakub Jelinek <jakub@redhat.com> 36835 36836 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with 36837 -lgcc --as-needed -lgcc_s --no-as-needed by default. 36838 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed. 36839 * configure: Rebuilt. 36840 * config.in: Rebuilt. 36841 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT). 36842 (stage2-start, stage3-start, stage4-start): Likewise. 36843 (stageprofile-start, stagefeedback-start): Likewise. 36844 368452004-04-01 Jakub Jelinek <jakub@redhat.com> 36846 36847 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0. 36848 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. 36849 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. 36850 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1. 36851 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS. 36852 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs 36853 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS. 36854 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change. 36855 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise. 36856 * config/sparc/t-linux: Removed. 36857 368582004-04-01 Jakub Jelinek <jakub@redhat.com> 36859 36860 PR c++/14755 36861 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in 36862 "bitfld++ == const" to "++bitfld == const + incr" transformations. 36863 368642004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 36865 36866 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED. 36867 * stor-layout.c (layout_decl): Likewise. 36868 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED. 36869 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED. 36870 * print-tree.c (print_node): Handle various used of unsigned_flag. 36871 * tree.def (BIT_FIELD_REF): Update comment. 36872 * tree.h (TREE_UNSIGNED): Deleted. 36873 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros. 36874 368752004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 36876 36877 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c: 36878 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED. 36879 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise. 36880 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise. 36881 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise. 36882 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise. 36883 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise. 36884 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise. 36885 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise. 36886 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for 36887 REAL_TYPE, not INTEGER_TYPE. 36888 (layout_type, case VECTOR_TYPE): Simplify code. 36889 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting. 36890 * tree.h: Update comments. 36891 (STRIP_NOPS): Use TYPE_UNSIGNED. 36892 (TYPE_UNSIGNED): New macro. 36893 (TYPE_TRAP_SIGNED): Remove now redundant check. 36894 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED. 36895 368962004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 36897 36898 * function.c (put_var_into_stack): Properly set orig_reg for indirect. 36899 369002004-03-31 Andrew Pinski <pinskia@physics.uc.edu> 36901 36902 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA): 36903 Add darwin-fpsave.asm, darwin-vecsave.asm, 36904 and darwin-world.asm. 36905 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL 36906 as the asm files contain altivec instructions. 36907 * config/rs6000/darwin-fpsave.asm: New file. 36908 * config/rs6000/darwin-vecsave.asm: New file. 36909 * config/rs6000/darwin-world.asm: New file. 36910 369112004-03-31 Zack Weinberg <zack@codesourcery.com> 36912 36913 * gengtype-yacc.y (option, stringseq): Add missing 36914 terminating semicolon. 36915 369162004-03-30 David Edelsohn <edelsohn@gnu.org> 36917 36918 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64, 36919 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64, 36920 tls_dtprel_ha_32, tls_dtprel_ha_64, 36921 tls_dtprel_lo_32, tls_dtprel_lo_64, 36922 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64, 36923 tls_tprel_ha_32, tls_tprel_ha_64, 36924 tls_tprel_lo_32, tls_tprel_lo_64, 36925 tls_got_tprel_32, tls_got_tprel_64, 36926 tls_tls_32, tls_tls_64): Replace register_operand with 36927 gpc_reg_operand. 36928 369292004-03-30 Mostafa Hagog <mustafa@il.ibm.com> 36930 36931 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2, 36932 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3, 36933 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4, 36934 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5, 36935 *ctrdi_internal6): Replace register_operand with 36936 nonimmediate_operand. 36937 369382004-03-29 Fariborz Jahanian <fjahanian@apple.com> 36939 36940 * fold-const.c (fold): Reassociate multiply expression 36941 with an adjacent non-multiply expression to use 36942 architecture's multiply-add instruction. 36943 369442004-03-30 Zack Weinberg <zack@codesourcery.com> 36945 36946 * gengtype.c (create_option): New function. 36947 * gengtype.h: Prototype it. 36948 * gengtype-yacc.y (stringseq): New rule. 36949 (option): Use create_option. Add new bare ID production. Use 36950 stringseq, not STRING directly. 36951 36952 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h 36953 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h 36954 * varray.h, config/alpha/alpha.c: 36955 Use new shorter form of GTY markers. 36956 36957 * doc/gty.texi: Rewrite. 36958 369592004-03-30 Andrew Pinski <pinskia@physics.uc.edu> 36960 36961 * config/darwin.c (machopic_function_base_name): 36962 Remove current_name and getting the name of the 36963 current function. 36964 369652004-03-30 Nick Clifton <nickc@redhat.com> 36966 36967 * config/arm/arm.md (thumb_jump): Reduce the backward branch 36968 range, and increase the forward branch range, to allow for 36969 the fact that the PC will be off by 4. 36970 369712004-03-30 Alan Modra <amodra@bigpond.net.au> 36972 36973 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL) 36974 369752004-03-30 Hartmut Penner <hpenner@de.ibm.com> 36976 36977 * config/rs6000/rs6000.c (output_vec_const_move): 36978 Find all cases of EASY_VECTOR_15_ADD_SELF. 36979 (easy_vector_constant_add_self): Accept 36980 all vector constant loadable by vsplt* and vadd*. 36981 (easy_vector_same): Use easy_vector_splat_const. 36982 (easy_vector_const): Use easy_vector_splat_const. 36983 (easy_vector_splat_const): New function. 36984 (gen_easy_vector_constant_add_self): New function. 36985 36986 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self): 36987 New prototype. 36988 36989 * config/rs6000/altivec.md (movv4si splitter): Change to 36990 emit move insn with halfed vector constant. 36991 (*movv8hi splitter): Likewise. 36992 (*movv16qi splitter): Likewise. 36993 369942004-03-30 Hartmut Penner <hpenner@de.ibm.com> 36995 36996 PR 11591 36997 * config/rs6000/rs6000.c (rs6000_legitimate_address): 36998 Allow any offset to argument pointer in no-strict case. 36999 370002004-03-30 Jan Hubicka <jh@suse.cz> 37001 37002 * toplev.c (backend_init): Add missing call to inint_optimization_passes. 37003 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph 37004 dump file in non-unit-at-a-time mode. 37005 370062004-03-29 Hans-Peter Nilsson <hp@axis.com> 37007 37008 * config/cris/cris.h: Correct #ifdef to test for 37009 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not 37010 HAVE_AS_MUL_BUG_ABORT_OPTION. 37011 370122004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37013 37014 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update 37015 the address inside the old RTL. 37016 370172004-03-28 Zack Weinberg <zack@codesourcery.com> 37018 37019 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct. 37020 (struct c_binding, struct c_scope): Add chain_next 37021 attributes to GTY markers. 37022 (struct lang_identifier, struct lang_tree_node): Define 37023 here... 37024 * c-tree.h: ... not here. No longer need to declare struct 37025 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER. 37026 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE 37027 to C_SIZEOF_STRUCT_LANG_IDENTIFIER. 37028 37029 PR 14734, 11944 37030 * c-decl.c (get_parm_info): If error_mark_node is encountered 37031 in the bindings chain, unbind and discard it; don't abort. 37032 370332004-03-28 Olga Golovonevsky <olga@il.ibm.com> 37034 Dorit Naishlos <dorit@il.ibm.com> 37035 37036 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2, 37037 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling. 37038 370392004-03-28 Stephane Carrez <stcarrez@nerim.fr> 37040 37041 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare. 37042 37043 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New. 37044 (m68hc11_attribute_table): New attribute "page0" to mark a global 37045 variable as being allocated from within page0 section. 37046 (m68hc11_encode_label): New function. 37047 (m68hc11_strip_name_encoding): New function. 37048 (m68hc11_page0_symbol_p): New function. 37049 (m68hc11_indirect_p): Accept global variables marked in page0. 37050 (m68hc11_encode_section_info): Lookup "page0" attribute. 37051 37052 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also 37053 represents access to page0 variables. 37054 37055 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG. 37056 ("*logicalsi3_silshl16_zext"): Likewise. 37057 ("*ashldi3_const32"): Likewise. 37058 (peephole2 ashift): Likewise. 37059 370602004-03-28 Joseph S. Myers <jsm@polyomino.org.uk> 37061 37062 * c-tree.h (C_DECL_REGISTER): New. 37063 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile, 37064 finish_decl, grokdeclarator, get_parm_info), c-typeck.c 37065 (build_array_ref, c_mark_addressable): Set and use it. 37066 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable): 37067 Allow structures with volatile fields to be declared register. 37068 Don't check TREE_ADDRESSABLE before warning about taking address 37069 of register. 37070 * c-decl.c (finish_decl): Don't allow structures with volatile 37071 fields to be placed in named register. 37072 * doc/trouble.texi: Remove reference to structures with volatile 37073 fields in registers. 37074 370752004-03-27 Ulrich Weigand <uweigand@de.ibm.com> 37076 37077 * function.c (thread_prologue_and_epilogue): Move 37078 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes 37079 before the epilogue. 37080 370812004-03-27 Ulrich Weigand <uweigand@de.ibm.com> 37082 37083 * expr.c (store_constructor): Use gen_int_mode to correctly 37084 sign-extend CONST_INT value. 37085 370862004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 37087 37088 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New. 37089 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins. 37090 * doc/extend.texi: Likewise. 37091 370922004-03-26 Diego Novillo <dnovillo@redhat.com> 37093 37094 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN 37095 with TYPE_ORIG_SIZE_TYPE. 37096 370972004-03-25 Aldy Hernandez <aldyh@redhat.com> 37098 37099 PR 14219 37100 * c-typeck.c (build_binary_op): Do not allow comparisons of 37101 vectors. 37102 371032004-03-26 James A. Morrison <ja2morri@uwaterloo.ca> 37104 37105 * config.gcc: Remove sparc-tti-*. 37106 * config/sparc/pbd.h: Delete. 37107 37108 * config/sparc/sol2.h: Remove note about Sun OS 4.x. 37109 * config/sparc/aout.h: Likewise. 37110 37111 * config/sparc/sparc.h: Remove if 0'd code. 37112 * config/sparc/sparc.md (call): Remove if 0'd code. 37113 (call_value): Likewise. 37114 (nonlocal_goto): Likewise. 37115 (unimp_insn): Delete. 37116 371172004-03-25 Roger Sayle <roger@eyesopen.com> 37118 37119 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like 37120 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative. 37121 371222004-03-25 Richard Henderson <rth@redhat.com> 37123 37124 PR 11527 37125 * c-typeck.c (pop_init_level): Emit pending init elements earlier 37126 rather than later. 37127 371282004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 37129 37130 * builtins.c (fold_builtin): Fix error in last change. 37131 371322004-03-25 Richard Sandiford <rsandifo@redhat.com> 37133 37134 * config/mips/mips.h: Formatting fix. 37135 371362004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 37137 37138 * builtins.def: Add ctype builtins. 37139 * doc/extend.texi: Likewise. 37140 371412004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 37142 37143 * builtins.c (fold_builtin): Add new builtin optimizations for 37144 sqrt and/or cbrt. 37145 * fold-const.c (fold): Likewise. 37146 371472004-03-25 David Edelsohn <edelsohn@gnu.org> 37148 37149 * config/rs6000/rs6000.c (rs6000_always_hint): New variable. 37150 (rs6000_sched_groups): New variable. 37151 (processor_target_table): Add power5. 37152 (rs6000_override_options): Set rs6000_sched_insert_nops, 37153 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority 37154 from rs6000_sched_groups. 37155 (output_cbranch): Use rs6000_always_hint. 37156 (rs6000_variable_issue): Use rs6000_sched_groups. 37157 (rs6000_adjust_cost): Add CPU_POWER5. 37158 (is_microcoded_insn): Use rs6000_sched_groups. 37159 (is_dispatch_slot_restricted): Use rs6000_sched_groups. 37160 Return 2 for POWER5 cracked instructions. 37161 (is_cracked_insn): Use rs6000_sched_groups. 37162 (is_branch_slot_insn): Use rs6000_sched_groups. 37163 (rs6000_issue_rate): Add CPU_POWER5. 37164 (rs6000_sched_finish): Use rs6000_sched_groups. 37165 (rs6000_rtx_costs): Add PROCESSOR_POWER5. 37166 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5. 37167 (DEFAULT_SCHED_COSTLY_DEP): Delete. 37168 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete. 37169 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete. 37170 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5. 37171 * config/rs6000/power5.md: New file. 37172 * doc/invoke.texi: Add power5 option. 37173 371742004-03-25 Kazu Hirata <kazu@cs.umass.edu> 37175 37176 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h, 37177 config/arm/arm.c, objc/objc-act.c: Fix comment typos. 37178 * doc/invoke.texi: Fix a typo. 37179 371802004-03-25 Kazu Hirata <kazu@cs.umass.edu> 37181 37182 PR optimization/9707. 37183 * stmt.c (emit_case_nodes): Emit equality comparisons instead 37184 of recursing if both children are single-valued cases with no 37185 children. 37186 371872004-03-25 Paul Brook <paul@codesourcery.com> 37188 37189 * config/arm/arm.c (vfp_print_multi): Remove. 37190 (arm_output_fldmx): New function. 37191 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix. 37192 (arm_expand_prologue): Update to match. 37193 (arm_get_vfp_saved_size): New Function. 37194 (arm_get_frame_offsets): Use it. 37195 (arm_output_epilogue): Use new functions. 37196 371972004-03-24 Richard Henderson <rth@redhat.com> 37198 37199 * alias.c (alias_invariant, alias_invariant_size): Mark GTY. 37200 (reg_known_value, reg_known_value_size): Likewise; make static. 37201 (reg_known_equiv_p): Make static. 37202 (clear_reg_alias_info): Update for new indexing. 37203 (get_reg_known_value, set_reg_known_value): New. 37204 (get_reg_known_equiv_p, set_reg_known_equiv_p): New. 37205 (canon_rtx): Use them. 37206 (init_alias_analysis): Likewise. Allocate reg_known_value with gc. 37207 Don't play queer offsetting games with reg_known_value and 37208 reg_known_equiv_p. 37209 (end_alias_analysis): Free reg_known_value with gc. 37210 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare. 37211 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove. 37212 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new 37213 functions instead. 37214 372152004-03-24 Kazu Hirata <kazu@cs.umass.edu> 37216 37217 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h, 37218 config/i386/mmintrin.h: Update copyright. 37219 372202004-03-24 Nathanael Nerode <neroden@gcc.gnu.org> 37221 37222 * configure.ac: Add --enable-werror-always (for top level bootstrap 37223 support). 37224 * configure: Regenerate. 37225 372262004-03-24 Ziemowit Laski <zlaski@apple.com> 37227 37228 * objc/objc-act.c (objc_comptypes): Treat comparisons 37229 between 'Class' and '<class> *' as explicitly invalid. 37230 372312004-03-24 David Edelsohn <edelsohn@gnu.org> 37232 37233 * doc/invoke.texi (-frename-registers): Add enabled at -O3. 37234 (-fprofile-values): Add enabled with profile-{generate,use}. 37235 (-fvpt): Same. 37236 (-ftracer): Add enabled with profile-use. 37237 (-funit-at-a-time): Add enabled at -O2,-O3. 37238 (-funroll-loops): Add enabled with profile-use. 37239 (-funswitch-loops): Add enabled with profile-use. Remove duplicates. 37240 (max-gcse-passes): Mention default. 37241 (max-cse-path-length): Mention default. 37242 372432004-03-24 Nathanael Nerode <neroden@gcc.gnu.org> 37244 37245 * Makefile.in (STRICT2_WARN): Reorder. 37246 * configure.ac: Check for -Wold-style-definition, and use it 37247 in strict1_warn if it's available. 37248 * configure: Regnerate. 37249 372502004-03-24 Paul Brook <paul@nowt.org> 37251 37252 * config.gcc <arm>: Add --with-abi= 37253 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size, 37254 thumb_far_jump_used): Remove prototypes. 37255 (arm_needs_doubleword_align): Add prototype. 37256 (thumb_compute_initial_elimination_offset): Ditto. 37257 * config/arm/arm.c (arm_get_frame_offsets): New function. 37258 (use_return_insn, output_return_instruction, arm_output_epilogue, 37259 arm_output_function_epilogue, arm_compute_initial_elimination_offset, 37260 arm_expand_prologue, thumb_expand_epilogue): Use it. 37261 (arm_abi, target_abi_name, all_arm_abis): New variables. 37262 (arm_override_options): Set them. Set structure padding for AAPCS. 37263 (arm_return_in_memory): Update ABI check. 37264 (arm_init_cumulative_args): Initialize can_split. 37265 (arm_needs_doubleword_align): New function. 37266 (arm_function_arg): Don't split args after pushing to stack. Handle 37267 doubleword/even reg alignment. 37268 (arm_va_arg): Handle all doubleword aligned args. 37269 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based 37270 on ABI, not CPU. 37271 (arm_compute_save_reg0_reg12_mask): Fix comment. 37272 (thumb_get_frame_size, thumb_get_frame_size): Remove. 37273 (thumb_jump_far_used_p): Remove superfluous argument. Return save 37274 value for alignment. 37275 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change 37276 to match. 37277 (thumb_compute_initial_elimination_offset): New function. 37278 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove 37279 unneccessary rounding. 37280 * config/arm/arm.h (target_abi_name): Declare. 37281 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI, 37282 arm_abi_type, ARM_DEFAULT_ABI): Define. 37283 (ARM_FLAG_ATPCS): Remove. 37284 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=. 37285 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it. 37286 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT, 37287 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove. 37288 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P): 37289 Contitionalize on ABI, not CPU. 37290 (struct arm_stack_offsets): Define. 37291 (struct machine_function): Add stack_offsets. Remove frame_size. 37292 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been 37293 pushed. 37294 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general 37295 doubleword alignment. 37296 (THUMB_INITIAL_ELIMINATION_OFFSET, 37297 ARM_INITIAL_ELIMINATION_OFFSET): Remove. 37298 (INITIAL_ELIMINATION_OFFSET): Call functions directly. 37299 * config/arm/arm.md (align_8): Enable for all targets. 37300 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS. 37301 (ARM_DEFAULT_ABI): Define. 37302 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for 37303 -mstructure-size-boundary. 37304 373052004-03-24 Nathanael Nerode <neroden@gcc.gnu.org> 37306 37307 * configure.ac: Check for -Wno-variadic-macros; don't use 37308 -pedantic (in stage 1 or a simple 'make all') unless it's available, 37309 and if it's available, use it. Also, clean up check for 37310 -Wno-long-long. 37311 * configure: Regenerate. 37312 373132004-03-24 Richard Sandiford <rsandifo@redhat.com> 37314 37315 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines. 37316 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130. 37317 (MULTILIB_DEFAULTS): Use it. 37318 (MIPS_CPU_STRING_DEFAULT): Remove. 37319 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define. 37320 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make 37321 EABI64 -mlong32 the default ABI. Enforce the default architecture. 37322 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs, 37323 march=vr4130, march=vr4300, march=vr5000 and march=vr5500. 37324 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120. 37325 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments 37326 accordingly. 37327 373282004-03-24 DJ Delorie <dj@redhat.com> 37329 Richard Sandiford <rsandifo@redhat.com> 37330 37331 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros. 37332 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs. 37333 (ASM_SPEC): Pass down -mfix-vr4122-bugs. 37334 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions 37335 in .set noreorder and .set nomacro if TARGET_FIX_VR4122. 37336 (mips_init_libfuncs): Use special functions for divsi3 and modsi3 37337 if TARGET_FIX_VR4122. 37338 * config/mips/mips.md (define_attr length): Account for nops inserted 37339 after macc and dmult when using -mfix-vr4122-bugs. 37340 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122. 37341 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of 37342 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S. 37343 * config/mips/vr4122-div.S: New file. 37344 * doc/invoke.texi: Document -mfix-vr4122-bugs. 37345 373462004-03-24 Richard Sandiford <rsandifo@redhat.com> 37347 37348 * config/mips/mips.h (PROCESSOR_R4130): New processor_type. 37349 (TARGET_MIPS4130): New macro. 37350 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16. 37351 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry. 37352 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal 37353 with PROCESSOR_R4130. 37354 * config/mips/mips.md (define_attr cpu): Add r4130. 37355 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture. 37356 373572004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 37358 Richard Sandiford <rsandifo@redhat.com> 37359 37360 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change. 37361 373622004-03-24 Alexandre Oliva <aoliva@redhat.com> 37363 37364 PR preprocessor/14438 37365 * cpplib.c (do_pragma): Remove line_change call after pragma 37366 handler. 37367 373682004-03-23 Ian Lance Taylor <ian@wasabisystems.com> 37369 37370 * doc/extend.texi (ARM Built-in Functions): Replace with correct 37371 declarations. 37372 373732004-03-23 Roger Sayle <roger@eyesopen.com> 37374 37375 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND 37376 if flag_unsafe_math_optimizations. 37377 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations 37378 and TARGET_80387 expand using truncdfsf2_noop pattern. 37379 (truncxfsf2): Likewise using truncxfsf2_noop. 37380 (truncxfdf2): Likewise using truncxfdf2_noop. 37381 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns. 37382 373832004-03-23 Ziemowit Laski <zlaski@apple.com> 37384 37385 * hooks.c (hook_constcharptr_tree_null): New hook. 37386 * hooks.h (hook_constcharptr_tree_null): New prototype. 37387 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook. 37388 * target.h (mangle_fundamental_type): New target hook. 37389 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point 37390 target hook at rs6000_mangle_fundamental_type. 37391 (rs6000_mangle_fundamental_type): New function. 37392 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document. 37393 373942004-03-23 Zack Weinberg <zack@codesourcery.com> 37395 37396 PR 12267, 12391, 12560, 13129, 14114, 14133 37397 * c-tree.h: Forward declare struct c_binding. Declare 37398 c_override_bindings_to_false. Update prototypes. 37399 (struct lang_identifier): Update comments. Change fields to be 37400 struct c_binding *. 37401 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE) 37402 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE) 37403 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete. 37404 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New. 37405 * c-common.h: Update prototypes. 37406 * c-decl.c (struct c_scope): Update commentary. Remove names, 37407 names_last, parms, parms_last, tags, and shadowed fields. Add 37408 bindings and depth fields. 37409 (scope_freelist): Move to more appropriate location. 37410 (c_print_identifier): Update for changes to struct lang_identifier. 37411 (objc_mark_locals_volatile): Update for new bindings structures. 37412 (global_bindings_p): Honor c_override_global_bindings_to_false. 37413 (pushlevel): Rename to push_scope; take no arguments; use the 37414 scope_freelist; initialize scope->depth and check for overflow. 37415 (poplevel): Rename to pop_scope; totally rewritten for new bindings 37416 structures. 37417 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not 37418 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics. 37419 Improve some commentary. Adjust handling of forward parm decls. 37420 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate. 37421 Preserve C_DECL_IN_EXTERNAL_SCOPE. 37422 (warn_if_shadowing): Correct indentation. Improve diagnostics. 37423 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous 37424 decls. Rewrite for new bindings structures. Improve commentary. 37425 Eliminate the copy_node call. 37426 (implicit_decl_warning): Use the "diag" idiom (as seen in 37427 locate_old_decl) to reduce code duplication; call locate_old_decl 37428 if appropriate. Relocate to remove need for forward declaration. 37429 (implicitly_declare): Adjust for new bindings structures. Kludge 37430 around Objective-C not-really-builtin functions. 37431 (undeclared_variable): Improve diagnostics. If current_function_decl 37432 is nonnull but current_function_scope is null, use current_scope. 37433 Use bind. 37434 (lookup_tag): Adjust for new bindings structures. Kludge around 37435 Objective-C's tag declarations that wind up in the external scope. 37436 (lookup_name): Adjust for new bindings structures. Kludge around 37437 c-common.c's pseudo-typedefs that wind up in the external scope. 37438 (lookup_name_current_level): Rename lookup_name_in_scope; take a 37439 second argument indicating the scope to examine; rewrite for 37440 new bindings structures. 37441 (c_init_decl_processing): Adjust for renamed functions. Do not 37442 initialize current_file_decl, first_builtin_decl, last_builtin_decl. 37443 First scope pushed is the external scope, not the global scope. 37444 (builtin_function): Use bind, not pushdecl. Adjust other bits 37445 for new data structures. Keep track of builtins that should be 37446 made visible automatically. 37447 (start_decl): Adjust diagnostics. Remove unnecessary call to 37448 expand_decl. 37449 (grokparms): Return 0 if arg_types is error_mark_node. 37450 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with 37451 reversed sense. Rewrite for new bindings structures. Do not 37452 leave any decls in the scope, to prevent pop_scope from doing 37453 contradictory things with them. 37454 (finish_struct, finish_enum): Remove redundant diagnostics. 37455 (build_enumerator): Don't cascade diagnostics for error_mark_node. 37456 Mark location where -pedantic changes the meaning of the program. 37457 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the 37458 parameter decls into the function's scope structure using bind. 37459 Warn here about function definitions in the wrong style. 37460 Adjust diagnostics. 37461 (store_parm_decls): Correct the determination of whether a 37462 function was defined with a prototype. 37463 (c_write_global_declarations): Operate on all file decls and on 37464 the external scope. Split body of the loop to... 37465 (c_write_global_declarations_1): ... this new function, to avoid 37466 code duplication. 37467 (truly_local_externals, first_builtin_decl, last_builtin_decl) 37468 (make_scope, pop_scope, in_parm_level_p, set_block) 37469 (any_external_decl, record_external_decl, bind_label, getdecls) 37470 (link_hash_hash, link_hash_eq, merge_translation_unit_decls) 37471 (c_reset_state): Delete. 37472 (visible_builtins, c_override_global_bindings_to_false) 37473 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING) 37474 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope) 37475 (external_scope, binding_freelist, bind, free_binding_and_advance) 37476 (push_file_scope, pop_file_scope): New. 37477 (pushtag, pushdecl_top_level, lookup_label, declare_label) 37478 (define_label, c_make_fname_decl, finish_decl) 37479 (mark_forward_parm_decls, build_compound_literal) 37480 (grokdeclarator, start_function, check_for_loop_decls) 37481 (identifier_global_value, record_builtin_type): Minor adjustments 37482 for new bindings structures. Improve diagnostics and commentary. 37483 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to 37484 pushlevel/poplevel respectively. 37485 (c_objc_common_finish_file): Don't call merge_translation_unit_decls. 37486 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED. 37487 Warn about YYDEBUG not being defined only if -dy. Remove no-longer- 37488 correct loop over multiple translation units; call fatal_error if 37489 requested to compile more than one file at once. (This disables 37490 IMA temporarily - an up-front error being preferable to a crash.) 37491 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope. 37492 (all actions): Adjust calls to pushlevel/poplevel. 37493 (parsing_iso_function_signature): Delete. 37494 (extdef_1): Fold into extdef. 37495 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't 37496 warn here about function definitions in the wrong style. 37497 (after_tyle_declarator, parm_declarator_starttypename) 37498 (parm_declarator_nostarttypename, notype_declarator): Remove 37499 commented-out productions. 37500 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create 37501 an empty TREE_LIST node. Adjust calls to get_parm_info. 37502 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node 37503 to suppress -Wold-style-definition after this error. 37504 (c_parse_file): Don't clear the binding stack or call 37505 finish_fname_decls here. Correct comment. 37506 * c-typeck.c (same_translation_unit_p): Export. 37507 (common_type): Use c_override_global_bindings_to_false, not 37508 pushlevel/poplevel/declare_parm_level. 37509 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK, 37510 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK, 37511 and LANG_HOOKS_GETDECLS with do-nothing stubs. 37512 * objc/objc-lang.c: Likewise. 37513 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel, 37514 get_parm_info. 37515 (OBJC_VOID_AT_END): Delete; replace all uses 37516 with void_list_node. 37517 (generate_forward_declaration_to_string_table): Delete. 37518 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete. 37519 37520 * coverage.c (create_coverage): Don't pushdecl anything. 37521 * langhooks.c (lhd_clear_binding_stack): Call 37522 lang_hooks.decls.poplevel, not poplevel. 37523 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a 37524 circular list rather than going into an infinite loop. 37525 375262004-03-23 Olivier Hainque <hainque@act-europe.fr> 37527 37528 * optabs.c (expand_binop): When synthesizing double word rotates 37529 from single word shifts, use a new register target if the provided 37530 target is not a REG already. 37531 375322004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37533 37534 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL. 37535 * c-common.c (handle_mode_attribute): Add extra arg to 37536 build_pointer_type_for_mode and build_reference_type_for_mode. 37537 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW 37538 for INTEGER_CST. 37539 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL. 37540 Chain pointers via TYPE_NEXT_PTR_TO. 37541 (build_reference_type_for_mode): Similarly. 37542 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode 37543 and build_reference_type_for_mode. 37544 (tree_check4_failed): New function. 37545 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros. 37546 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise. 37547 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW): 37548 Add check. 37549 375502004-03-23 Roger Sayle <roger@eyesopen.com> 37551 37552 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when 37553 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative 37554 when both A and B are nonnegative. 37555 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is 37556 nonzero. 37557 375582004-03-23 Kazu Hirata <kazu@cs.umass.edu> 37559 37560 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST, 37561 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR. 37562 375632004-03-23 Kazu Hirata <kazu@cs.umass.edu> 37564 37565 PR optimization/14669 37566 * fold-const.c (fold): Only unwiden integer comparisons for equality 37567 and inequality operators, or when the signedness doesn't change. 37568 375692004-03-23 Jakub Jelinek <jakub@redhat.com> 37570 37571 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file. 37572 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set. 37573 * config/sparc/t-linux: New file. 37574 375752004-03-23 Richard Sandiford <rsandifo@redhat.com> 37576 37577 * gcse.c (can_assign_to_reg_p): New function, split out from... 37578 (want_to_gcse_p): ...here. 37579 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate 37580 the rhs of a store. 37581 375822004-03-22 Diego Novillo <dnovillo@redhat.com> 37583 37584 * c-typeck.c (same_translation_unit_p): Fix pasto. 37585 375862004-03-22 David Edelsohn <edelsohn@gnu.org> 37587 37588 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New. 37589 (PARAM_MAX_SCHED_REGION_INSNS): New. 37590 * sched-rgn.c: Include params.h 37591 (MAX_RGN_BLOCKS): Delete. 37592 (MAX_RGN_INSNS): Delete. 37593 (too_large): Return bool. Convert to PARAM_VALUE. 37594 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H). 37595 * doc/invoke.texi (param): Document max-sched-region-blocks and 37596 max-sched-region-insns. 37597 375982004-03-22 Joel Brobecker <brobecker@gnat.com> 37599 37600 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE 37601 for base types. 37602 376032004-03-22 Joel Brobecker <brobecker@gnat.com> 37604 37605 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior 37606 change. 37607 376082004-03-22 Jakub Jelinek <jakub@redhat.com> 37609 37610 PR c/14069 37611 * c-decl.c (finish_struct): Change type of incorrect flexible array 37612 field into error_mark_node. 37613 376142004-03-22 Andrew Pinski <pinskia@physics.uc.edu> 37615 37616 PR target/14580 37617 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols 37618 who are not local for Darwin PIC. 37619 376202004-03-22 Ulrich Weigand <uweigand@de.ibm.com> 37621 37622 * regrename.c (regrename_optimize): Set regs_ever_live for all 37623 registers introduced as replacement. 37624 376252004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr> 37626 37627 PR middle-end/14470 37628 * expr.c (mark_queue): New function. 37629 (emit_insns_enqueued_after_mark): New function replacing 37630 emit_queue. Clear the body of emitted queued insns. 37631 (emit_queue): Call emit_insns_enqueued_after_mark. 37632 (store_expr): Mark the increment queue on entry. Emit 37633 only the incrementations queued when expanding the source. 37634 376352004-03-22 Nathanael Nerode <neroden@gcc.gnu.org> 37636 37637 * configure.ac: Allow --disable-coverage-flags (for the future benefit 37638 of top level bootstrap, and consistency). Reindent. 37639 * configure: Regenerate. 37640 376412004-03-21 Kazu Hirata <kazu@cs.umass.edu> 37642 37643 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c, 37644 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove 37645 unnecessary casts. 37646 376472004-03-22 Danny Smith <dannysmith@users.sourceforge.net> 37648 37649 PR target/14291 37650 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for 37651 __MINGW32__. 37652 376532004-03-21 Ulrich Weigand <uweigand@de.ibm.com> 37654 37655 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2 37656 to nonimmediate_operand. 37657 ("*doloop_di"): Likewise. 37658 376592004-03-21 Alexandre Oliva <aoliva@redhat.com> 37660 37661 * real.h (struct real_value): Use the same type for all 37662 bitfields. Rename exp to uexp. 37663 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp. 37664 Adjust all uses of exp... 37665 * builtins.c: ... here, ... 37666 * emit-rtl.c: ... here, and ... 37667 * real.c: ... and here. 37668 376692004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net> 37670 37671 * pretty-print.c (pp_base_maybe_space): New function. 37672 * pretty-print.h (pp_base_maybe_space): Declare. 37673 (pp_maybe_space): New macro. 37674 376752004-03-21 Ulrich Weigand <uweigand@de.ibm.com> 37676 37677 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters. 37678 376792004-03-21 Ulrich Weigand <uweigand@de.ibm.com> 37680 37681 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead 37682 of using register multiplication cost. 37683 (expand_mult): Adapt choose_mult_variant call. 37684 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE 37685 of MODE; pass appropriate cost bound. Adjust result when 37686 performing signed multiplication by a negative constant. 37687 Don't use intermediate modes larger than word_mode. 37688 376892004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37690 37691 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR. 37692 * emit-rtl.c (component_ref_for_mem_expr): Likewise. 37693 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR. 37694 * explow.c (expr_size): Likewise. 37695 * expr.h (placeholder_list, find_placeholder): Deleted. 37696 * expr.c (store_constructor): Likewise. 37697 (get_inner_reference): Likewise. Also don't call find_placeholder. 37698 (placeholder_list, find_placeholder): Deleted. 37699 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR. 37700 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise. 37701 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove. 37702 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise. 37703 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR): 37704 Likewise. 37705 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise. 37706 (extract_muldiv, case WITH_RECORD_EXPR): Likewise. 37707 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise. 37708 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR. 37709 Clean up by using first_rtl_op. 37710 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call. 37711 (substitute_placeholder_in_expr): New function. 37712 * tree.def (WITH_RECORD_EXPR): Deleted. 37713 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New. 37714 (substitute_placeholder_in_expr): New. 37715 377162004-03-21 Andrew Pinski <pinskia@gcc.gnu.org> 37717 37718 * dojump.c (prefer_and_bit_test): Fix which part of 37719 the and_test is replaced. 37720 377212004-03-21 Joseph S. Myers <jsm@polyomino.org.uk> 37722 37723 * frontends.texi: Add missing line. 37724 377252004-03-21 Zack Weinberg <zack@codesourcery.com> 37726 Chris Devers <cdevers@pobox.com> 37727 Joseph S. Myers <jsm@polyomino.org.uk> 37728 37729 * doc/frontends.texi: Rewrite. 37730 * doc/gcc.texi: Update last modification date. 37731 377322004-03-21 Josef Zlomek <zlomekj@suse.cz> 37733 37734 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug 37735 message before redirecting the edge. 37736 377372004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 37738 37739 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER 37740 flag. 37741 * explow.c (force_not_mem): Set REG_POINTER flag according to 37742 MEM_POINTER one. 37743 * rtl.h (MEM_POINTER): New macro. 37744 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related 37745 for MEM_POINTER. 37746 377472004-03-20 Roger Sayle <roger@eyesopen.com> 37748 37749 PR target/13889 37750 * cse.c (fold_rtx): Avoid substituting constants into unary 37751 conversion operations. 37752 377532004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37754 37755 * fold-const.c (fold): Replace "expr" with "t". 37756 377572004-03-20 Ian Lance Taylor <ian@wasabisystems.com> 37758 37759 PR c/12373 37760 * c-typeck.c (tagged_types_tu_compatible_p): Don't use 37761 DECL_ORIGINAL_TYPE if there isn't one. 37762 377632004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37764 37765 * fold-const.c (fold): Replace "final_type" with "type". 37766 Remove variable "final_type". 37767 377682004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37769 37770 * fold-const.c (fold): Constify "type". 37771 Replace "TREE_TYPE (t)" with "type". 37772 377732004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37774 37775 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c, 37776 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls 37777 via (*targetm.foo) () with targetm.foo (). 37778 377792004-03-20 Joseph S. Myers <jsm@polyomino.org.uk> 37780 37781 PR other/14630 37782 * doc/install.texi: Add info directory category and entry. 37783 377842004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37785 37786 * fold-const.c (fold): Replace "t" with "tem" where it is used 37787 as a temporary variable. Remove "orig_t" and all of its uses. 37788 377892004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37790 37791 * fold-const.c (fold): Remove variable "invert". 37792 Move the handling of relational expressions that can be folded 37793 to a constant ... 37794 (fold_relational_const): ... here. 37795 (tree_expr_nonzero_p): New. 37796 377972004-03-20 Joseph S. Myers <jsm@polyomino.org.uk> 37798 37799 PR c/14635 37800 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to 37801 DEF_GCC_BUILTIN. 37802 378032004-03-20 Richard Sandiford <rsandifo@redhat.com> 37804 37805 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h. 37806 (GTFILES): Add $(srcdir)/dojump.h. 37807 (gt-dojump.h): New dependency. 37808 * dojump.c (and_reg, and_test, shift_test): New static variables. 37809 (prefer_and_bit_test): New function. 37810 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1. 37811 378122004-03-20 Kazu Hirata <kazu@cs.umass.edu> 37813 37814 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c, 37815 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c, 37816 reorg.c, tree.h: Fix comment typos. 37817 378182004-03-19 Kazu Hirata <kazu@cs.umass.edu> 37819 37820 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c, 37821 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c, 37822 cse.c, dbxout.c, dwarf2out.c, except.c, final.c, 37823 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c, 37824 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c, 37825 vmsdbgout.c: Replace calls via (*targetm.foo) () with 37826 targetm.foo (). 37827 378282004-03-19 Ziemowit Laski <zlaski@apple.com> 37829 37830 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt, 37831 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with 37832 always_inline attribute. 37833 * config/rs6000/rs6000.c (altivec_expand_dst_builtin): 37834 Treat expansion as completed even if literal argument is 37835 invalid (so that other expansions are not tried in vain). 37836 378372004-03-19 Kazu Hirata <kazu@cs.umass.edu> 37838 37839 * loop-doloop.c (add_test): Replace GEN_INT (0) with 37840 const0_rtx. 37841 378422004-03-19 Kazu Hirata <kazu@cs.umass.edu> 37843 37844 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants 37845 ... 37846 (fold_abs_const): ... here. 37847 378482004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37849 37850 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly. 37851 378522004-03-19 Denis Chertykov <denisc@overta.ru> 37853 37854 PR target/11520 37855 * config/avr/avr.md ("call_insn"): Handle explicit integer 37856 specially. 37857 (call_value_insn): Likewise. 37858 378592004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37860 37861 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic. 37862 378632004-03-19 Kazu Hirata <kazu@cs.umass.edu> 37864 37865 * fold-const.c (negate_expr): Move the handling of constants 37866 ... 37867 (fold_negate_const): ... here. 37868 378692004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37870 37871 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook. 37872 * langhooks.h (struct lang_hooks_for_types): New field hash_types. 37873 * tree.c (debug_no_type_hash): Deleted. 37874 (type_hash_canon): Abort if passed a variant. 37875 Check lang_hooks.types.hash_types. 37876 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE. 37877 (build_array_type): Remove unnecessary allocation of pointer type. 37878 (build_complex_type): Properly qualify resulting type. 37879 378802004-03-19 Paolo Bonzini <bonzini@gnu.org> 37881 37882 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo. 37883 378842004-03-19 Richard Sandiford <rsandifo@redhat.com> 37885 37886 * expmed.c (choose_mult_variant, expand_mult_const): New, split from... 37887 (expand_mult): ...here. 37888 (extract_high_half): New, split out from expand_mult_highpart. 37889 (expand_highpart_optab): Likewise. Don't clobber target prematurely. 37890 (expand_highpart): Evaluate the cost of a shift/add sequence, 37891 then see if any of the specialized optabs are cheaper. 37892 378932004-03-18 Ian Lance Taylor <ian@wasabisystems.com> 37894 37895 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2. 37896 378972004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 37898 37899 * convert.c (convert_to_real): Add more math builtins. 37900 379012004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 37902 37903 * convert.c (convert_to_real): Reformat using switch stmt. 37904 379052004-03-18 Mark Mitchell <mark@codesourcery.com> 37906 37907 * c-common.c (pointer_int_sum): Do not complain about using 37908 pointers to pointers-to-members. 37909 379102004-03-18 Kazu Hirata <kazu@cs.umass.edu> 37911 37912 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that 37913 have moved to the target hooks structure". 37914 379152004-03-18 James E Wilson <wilson@specifixinc.com> 37916 37917 * config/mips/mips.md (type): Split move into arith and fmove. Split 37918 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses. 37919 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs): 37920 Likewise. 37921 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs): 37922 Likewise. 37923 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo, 37924 rm7_fp_quick): Likewise. 37925 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo, 37926 rm9k_fquick): Likewise. 37927 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs): 37928 Likewise. 37929 (ir_sr70_icmp): Delete. 37930 379312004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 37932 37933 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros. 37934 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl. 37935 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros. 37936 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise. 37937 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): 37938 Protect with proper check. 37939 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise. 37940 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise. 37941 * tree.c (type_hash_eq): Rewrite to access proper fields for each type. 37942 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New. 37943 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES. 37944 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES, 37945 not TYPE_FIELDS. 37946 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE. 37947 379482004-03-18 Mostafa Hagog <mustafa@il.ibm.com> 37949 37950 * gcse.c (eliminate_partially_redundant_loads): Reject change if 37951 dest is set between beginning and current insn. 37952 379532004-03-18 Mark Mitchell <mark@codesourcery.com> 37954 37955 * c-decl.c (grokdeclarator): Do not complain about redeclaring 37956 visible "static" identifiers "extern" in a local scope. 37957 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and 37958 post-increments/decrements. 37959 379602004-03-18 Bob Wilson <bob.wilson@acm.org> 37961 37962 * config/xtensa/xtensa.c (current_function_arg_words): Delete. 37963 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words. 37964 (xtensa_va_start): Remove assignment to current_function_arg_words. 37965 379662004-03-18 Richard Sandiford <rsandifo@redhat.com> 37967 37968 * alias.c (record_set): Detect the case where a register is assigned 37969 a new value that has the same base term as the old one. 37970 379712004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 37972 37973 * doloop.c: Removed. 37974 * loop-doloop.c: New file. 37975 * Makefile.in (doloop.o): Remove. 37976 (loop-doloop.o): New. 37977 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare. 37978 * cfgloopanal.c (get_loop_level): New function. 37979 * loop-iv.c (iv_number_of_iterations): Handle case when loop 37980 is leaved immediatelly. 37981 * loop.c (strength_reduce): Do not call doloop optimization. 37982 * loop.h (LOOP_BCT): Removed. 37983 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT. 37984 (rest_of_handle_loop2): Call doloop_optimize_loops. 37985 (rest_of_compilation): Test for optimizations moved to 37986 rest_of_handle_loop2. 37987 379882004-03-17 Fariborz Jahanian <fjahanian@apple.com> 37989 37990 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size 37991 for mixed mode. 37992 (rs6000_emit_prologue): Ditto. 37993 (rs6000_emit_epilogue): Ditto. 37994 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT 37995 macro for mixed mode. 37996 379972004-03-18 Jan Hubicka <jh@suse.cz> 37998 37999 * predict.c (propagate_freq): Compute correctly frequency of 38000 EXIT_BLOCK. 38001 380022004-03-17 Eric Christopher <echristo@redhat.com> 38003 38004 * builtins.c (apply_args_size): Use reg_raw_mode. 38005 (apply_result_size): Ditto. 38006 380072004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de> 38008 38009 PR target/14620 38010 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC. 38011 380122004-03-17 Jakub Jelinek <jakub@redhat.com> 38013 38014 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for 38015 32-bit builds when defaulting to 32-bit. 38016 380172004-03-17 Jan Hubicka <jh@suse.cz> 38018 38019 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info 38020 array. 38021 380222004-03-17 James E Wilson <wilson@specifixinc.com> 38023 38024 * config/mips/mips.md (zero_extendsidi2): Add length attribute. 38025 (hazard_nop): Change type to nop. 38026 (type): Split arith into arith, shift, slt, clz. Delete darith. 38027 Fix all uses. Change arith to multi if more than one insn emitted. 38028 * config/mips/5400.md (ir_vr54_arith): Likewise. 38029 * config/mips/5500.md (ir_vr55_arith): Likewise. 38030 * config/mips/7000.md (rm7_int_other): Likewise. 38031 * config/mips/9000.md (rm9k_int): Likewise. 38032 * config/mips/sr71k.md (ir_sr70_arith): Likewise. 38033 380342004-03-17 Joel Brobecker <brobecker@gnat.com> 38035 38036 * dwarf2out.c (subrange_type_die): Define new variable "subtype" 38037 to hold the subtype tree instead of recomputing it several times. 38038 380392004-03-17 Kazu Hirata <kazu@cs.umass.edu> 38040 38041 * config/mn10300/mn10300.c (notice_update_cc): Don't handle 38042 CC_INVERT. 38043 * config/mn10300/mn10300.md (cc): Remove "invert". 38044 380452004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 38046 38047 * builtins.c (integer_valued_real_p): Add builtin rint. 38048 (fold_builtin): Likewise. 38049 * convert.c (convert_to_real): Likewise. 38050 38051 * convert.c (convert_to_real): Fix typos in `long double' 38052 builtins. 38053 380542004-03-16 Mark Mitchell <mark@codesourcery.com> 38055 38056 PR c++/14481 38057 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly 38058 generated COMPOUND_EXPRs. 38059 380602004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de> 38061 38062 * config/h8300/t-rtems (h8300-*-rtems*): New. 38063 380642004-03-16 Eric Christopher <echristo@redhat.com> 38065 38066 * doc/cppopts.texi(fwide-exec-charset): Fix typo. 38067 380682004-03-16 Kazu Hirata <kazu@cs.umass.edu> 38069 38070 * config/i386/i386-protos.h: Add a prototype for 38071 ix86_reverse_condition. 38072 * config/i386/i386.c (ix86_reverse_condition): New. 38073 * config/i386/i386.h (REVERSE_CONDITION): Use 38074 ix86_reverse_condition. 38075 * config/i386/i386.md: Use ix86_reverse_condition instead of 38076 REVERSE_CONDITION. 38077 380782004-03-16 J. Brobecker <brobecker@gnat.com> 38079 38080 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR. 38081 380822004-03-16 Nathanael Nerode <neroden@gcc.gnu.org> 38083 38084 PR bootstrap/12974 38085 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly. 38086 380872004-03-16 Paolo Bonzini <bonzini@gnu.org> 38088 38089 * c-common.c (c_common_type_for_mode): Build vector types on 38090 demand. 38091 (handle_mode_attribute): Deprecate using the mode attribute 38092 to create vector types. Fix indentation. 38093 (vector_type_node_list): Remove. 38094 (handle_vector_size_attribute): Create vector types on demand. 38095 Strip a NON_LVALUE_EXPR from the attribute if there is one. 38096 * c-typeck.c (comptypes): Make vector types compatible if they 38097 have the same underlying mode. 38098 (convert_for_assignment): Use comptypes to convert between 38099 vector types. 38100 * tree.c (build_common_tree_nodes_2): Do not create vector types. 38101 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary 38102 vector types. 38103 * tree.h: Remove vector types. 38104 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise. 38105 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise. 38106 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node, 38107 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals. 38108 * doc/extend.texi (Vector Types): Document how to use the 38109 vector_size attribute to create vectors, rather than mode. 38110 38111 * config/arm/mmintrin.h: Use vector_size attribute, not mode. 38112 * config/i386/emmintrin.h: Likewise. 38113 * config/i386/mmintrin.h: Likewise. 38114 * config/i386/xmmintrin.h: Likewise. 38115 * config/sh/ushmedia.h: Likewise. 38116 381172004-03-16 Kazu Hirata <kazu@cs.umass.edu> 38118 38119 * config/freebsd-spec.h, config/arc/arc-protos.h, 38120 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h, 38121 config/arm/linux-gas.h, config/arm/semi.h, 38122 config/cris/cris-protos.h, config/i386/xm-djgpp.h, 38123 config/ia64/freebsd.h, config/mips/7000.md, 38124 config/mips/9000.md, config/ns32k/ns32k-protos.h, 38125 config/sparc/pbd.h: Update copyright. 38126 381272004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de> 38128 38129 PR target/14577 38130 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff. 38131 381322004-03-16 Paolo Bonzini <bonzini@gnu.org> 38133 38134 * combine.c (combine_simplify_rtx): Remove the "last" 38135 parameter and its documentation. Adjust recursive calls. 38136 (simplify_logical): Always perform the only simplification 38137 controlled by "last", if the simplified expression is 38138 actually different. 38139 (try_combine): Do not pass the "last" parameter to 38140 combine_simplify_rtx. 38141 381422004-03-16 Richard Sandiford <rsandifo@redhat.com> 38143 38144 PR target/14599 38145 * config/mips/mips.md (UNSPEC_GP): New constant. 38146 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain 38147 an UNSPEC instead of (reg $gp). 38148 (mips16_gp_pseudo_reg): Change accordingly. 38149 (print_operand): Print $gp directly when handling CONST_GP_P. 38150 381512004-03-16 Richard Zidlicky <rz@linux-m68k.org> 38152 38153 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux. 38154 * longlong.h: Make code 68060 clean when compiling for m68060. 38155 381562004-03-16 Richard Zidlicky <rz@linux-m68k.org> 38157 38158 * config/m68k/m68k.md: Fix constraints for bitfield instructions. 38159 * doc/md.texi: Clarify description of "i" constraint. 38160 381612004-03-15 James E Wilson <wilson@specifixinc.com> 38162 38163 * config/mips/mips.md (type): Split load into load, fpload, fpidxload. 38164 Split store into store, fpstore, fpidxstore. Fix all uses. 38165 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore): 38166 Likewise. 38167 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise. 38168 * config/mips/7000.md (rm7_ld, rm7_st): Likewise. 38169 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise. 38170 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload, 38171 ir_sr70_fstore): Likewise. 38172 381732004-03-15 Richard Henderson <rth@redhat.com> 38174 38175 PR middle-end/14535 38176 * except.c (collect_one_action_chain): Record action for cleanup 38177 outer of exception spec. 38178 381792004-03-15 Ian Lance Taylor <ian@wasabisystems.com> 38180 38181 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): 38182 Fix the check for abort and only do the mmap if we can. 38183 381842004-03-15 Eric Botcazou <ebotcazou@act-europe.fr> 38185 38186 * config/sparc/sparc.h: Rework comments about the code model 38187 in 64-bit environment and the mode 'Pmode'. 38188 * doc/invoke.texi (SPARC options): Rework description of the 38189 different code models supported in 64-bit environment. 38190 381912004-03-15 Kazu Hirata <kazu@cs.umass.edu> 38192 38193 * defaults.h (REVERSIBLE_CC_MODE): Define. 38194 * jump.c (reversed_comparison_code_parts): Don't check if 38195 REVERSIBLE_CC_MODE is defined. 38196 381972004-03-15 Kazu Hirata <kazu@cs.umass.edu> 38198 38199 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c, 38200 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h, 38201 hosthooks.h, params.h, ra-colorize.c, web.c, 38202 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c, 38203 config/avr/avr-protos.h, config/avr/avr.md, 38204 config/fr30/fr30-protos.h, config/fr30/fr30.md, 38205 config/h8300/fixunssfsi.c, config/i386/darwin.h, 38206 config/i386/freebsd.h, config/i386/freebsd64.h, 38207 config/ia64/hpux.h, config/ia64/unwind-ia64.c, 38208 config/ip2k/libgcc.S, config/m32r/xm-m32r.h, 38209 config/mmix/mmix-modes.def, config/ns32k/netbsd.h, 38210 config/ns32k/ns32k.md, config/pa/pa64-hpux.h, 38211 config/pa/pa64-regs.h, config/rs6000/aix41.h, 38212 config/rs6000/aix43.h, config/rs6000/host-darwin.c, 38213 config/sparc/aout.h, config/sparc/freebsd.h, 38214 config/sparc/litecoff.h, config/vax/vax-protos.h, 38215 doc/hostconfig.texi, doc/include/gcc-common.texi: Update 38216 copyright. 38217 382182004-03-15 Paul Brook <paul@codesourcery.com> 38219 38220 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp. 38221 382222004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net> 38223 38224 * c-pretty-print.c (pp_c_semicolon): Fix formatting. 38225 (pp_c_cv_qualifier): Document. 38226 (pp_c_space_for_pointer_operator): Likewise. 38227 (pp_c_integer_constant): Likewise. 38228 (pp_c_identifier): Likewise. 38229 (pp_c_init_declarator): Don't print function body. 38230 382312004-03-14 Joseph S. Myers <jsm@polyomino.org.uk> 38232 38233 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi, 38234 doc/install.texi, doc/invoke.texi, doc/makefile.texi, 38235 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize 38236 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust 38237 wording and grammar. 38238 382392004-03-14 Roger Sayle <roger@eyesopen.com> 38240 38241 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) () 38242 with lang_hooks.foo (). 38243 * builtins.c (expand_builtin_va_arg): Likewise. 38244 * c-common.c (fname_as_string, c_common_truthvalue_conversion, 38245 c_common_type_for_mode, c_common_nodes_and_builtins, 38246 handle_mode_attribute, handle_vector_size_attribute): Likewise. 38247 * c-convert.c (convert): Likewise. 38248 * c-format.c (check_format_types): Likewise. 38249 * c-objc-common.c (c_tree_printer): Likewise. 38250 * c-typeck.c (build_unary_op, build_conditional_expr, 38251 build_binary_op): Likewise. 38252 * calls.c (try_to_integrate, expand_call, 38253 emit_library_call_value_1): Likewise. 38254 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p): 38255 Likewise. 38256 * cgraphunit.c (record_call_1, cgraph_analyze_function, 38257 cgraph_expand_function): Likewise. 38258 * convert.c (convert_to_pointer, convert_to_integer): Likewise. 38259 * coverage.c (build_fn_info_type, build_ctr_info_type, 38260 build_gcov_info, create_coverage): Likewise. 38261 * dbxout.c (dbxout_init): Likewise. 38262 * diagnostic.c (diagnostic_report_current_function): Likewise. 38263 * dojump.c (do_jump): Likewise. 38264 * dwarf2out.c (dwarf2_name): Likewise. 38265 * except.c (init_eh): Likewise. 38266 * explow.c (expr_size, int_expr_size): Likewise. 38267 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add): 38268 Likewise. 38269 * expr.c (store_expr, store_constructor, safe_from_p, 38270 expand_expr_real, do_store_flag, try_casesi): Likewise. 38271 * function.c (push_function_context_to, pop_function_context_from, 38272 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type, 38273 put_var_into_stack, allocate_struct_function, current_function_name): 38274 Likewise. 38275 * integrate.c (copy_decl_for_inlining, expand_inline_function): 38276 Likewise. 38277 * langhooks.c (lhd_clear_binding_stack, write_global_declarations, 38278 lhd_print_error_function): Likewise. 38279 * opts.c (handle_option, decode_options): Likewise. 38280 * passes.c (open_dump_file): Likewise. 38281 * print-tree.c (print_node): Likewise. 38282 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands, 38283 expand_decl_cleanup, emit_case_nodes): Likewise. 38284 * stor-layout.c (variable_size): Likewise. 38285 * toplev.c (announce_function, wrapup_global_declarations, 38286 check_global_declarations, compile_file, default_tree_printer, 38287 process_options, lang_dependent_init, finalize): Likewise. 38288 * tree-dump.c (dequeue_and_dump): Likewise. 38289 * tree-inline.c (remap_decl, remap_block, copy_body_r, 38290 initialize_inlined_parameters, declare_return_variable, 38291 inlinable_function_p, expand_call_inline, optimize_inline_calls, 38292 walk_tree, copy_tree_r): Likewise. 38293 * tree-optimize.c (tree_rest_of_compilation): Likewise. 38294 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp, 38295 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl, 38296 variably_modified_type_p, dump_tree_statistics): Likewise. 38297 * varasm.c (assemble_variable, compare_constant, copy_constant, 38298 force_const_mem, compute_reloc_for_constant, output_constant, 38299 output_addressed_constants, initializer_constant_valid_p): Likewise. 38300 383012004-03-14 Kelley Cook <kcook@gcc.gnu.org> 38302 38303 * doc/install.texi: Make autoconf 2.13 the exception, not the rule. 38304 383052004-03-14 Andreas Tobler <a.tobler@schweiz.ch> 38306 38307 * doc/install.texi: Reflect autoconf and automake version for 38308 libffi. Update autoconf version to 2.59. 38309 383102004-03-13 Roger Sayle <roger@eyesopen.com> 38311 38312 * fold-const.c (negate_expr, operand_equal_for_comparison_p, 38313 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p, 38314 make_range, build_range_check, fold_range_test, unextend, 38315 constant_boolean_node, fold_binary_op_with_conditional_arg, 38316 fold_truthop, fold_mathfn_compare, fold_inf_compare, 38317 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) () 38318 with lang_hooks.foo (). 38319 383202004-03-14 Richard Earnshaw <rearnsha@arm.com> 38321 38322 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment. 38323 383242004-03-13 Dara Hazeghi <dhazeghi@yahoo.com> 38325 38326 * doc/install.texi: Note status of -fnew-ra. 38327 383282004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr> 38329 38330 PR middle-end/14470 38331 * expr.c (store_expr): Call emit_queue before generating the move 38332 from the temporary to the original target. Protect the temporary 38333 from emit_queue. 38334 383352004-03-13 Jakub Jelinek <jakub@redhat.com> 38336 38337 PR target/14533 38338 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC 38339 other than UNSPEC_GOTOFF. 38340 383412004-03-13 Richard Earnshaw <rearnsha@arm.com> 38342 38343 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through 38344 to arm_legitimate_index_p. Update all callers with SET as default 38345 value. 38346 (arm_legitimate_index_p): New argument, OUTER. Restrict the index 38347 range if OUTER is a sign-extend operation on QImode. Correctly 38348 reject shift operations on sign-extended QImode addresses. 38349 (bad_signed_byte_operand): Delete. 38350 (arm_extendqisi_mem_op): New function. 38351 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with... 38352 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address 38353 constraints. 38354 (CONSTRAINT_LEN): New. 38355 (EXTRA_CONSTRAINT): Delete. Replace with... 38356 (EXTRA_CONSTRAINT_STR): ... this. 38357 (PREDICATE_CODES): Remove bad_signed_byte_operand. 38358 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length 38359 is now always default. 38360 (define_splits for bad sign-extend loads): Delete. 38361 (arm_extendqisi, arm_extendqisi_v5): Likewise. 38362 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp): 38363 Rework 'U' constraint to 'Uv'. 38364 * arm-protos.h: Remove bad_signed_byte_operand. Add 38365 arm_extendqisi_mem_op. 38366 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv). 38367 Add Uq constraint. 38368 383692004-03-13 Alan Modra <amodra@bigpond.net.au> 38370 38371 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS 38372 with targetm version. 38373 38374 PR target/14567 38375 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete. 38376 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31. 38377 * config/rs6000/rs6000.c (rs6000_arg_size): New function. 38378 Update all users of RS6000_ARG_SIZE. 38379 (function_arg_advance): Count fregno using mode size. 38380 (function_arg): Handle long double split over regs and memory. 38381 (function_arg_partial_nregs): Likewise. 38382 (rs6000_va_arg): Repackage complex args. 38383 383842004-03-13 Dean Ferreyra <dferreyra@igc.org> 38385 38386 PR target/14047 38387 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter. 38388 (avr_insert_attributes): Pass "attributes" to avr_progmem_p. 38389 * config/avr/avr-protos.h (avr_progmem_p): Change prototype. 38390 383912004-03-12 Jakub Jelinek <jakub@redhat.com> 38392 38393 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add 38394 prototype. 38395 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New. 38396 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define. 38397 383982004-03-12 Andrew Pinski <apinski@apple.com> 38399 38400 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address): 38401 Use ret instead of result. Use addr instead of base. 38402 384032004-03-12 David Edelsohn <edelsohn@gnu.org> 38404 38405 * doc/install.texi (*-ibm-aix*): Document assembler and achiver 38406 fixes required by libstdc++ and update installation instructions 38407 for libstdc++.a. 38408 384092004-03-12 Danny Smith <dannysmith@users.sourceforge.net> 38410 38411 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip 38412 leading '@' on fastcall symbols before stripping suffix. 38413 384142004-03-12 Roger Sayle <roger@eyesopen.com> 38415 38416 * combine.c (unmentioned_reg_p): New function to check whether an 38417 expression is a "specialization" of another, i.e. that there are 38418 no registers or memory references mentioned in the first that don't 38419 appear in the second. 38420 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p. 38421 (combine_instructions): Also try combining instructions using the 38422 REG_EQUAL note from a preceding log-linked instruction. 38423 384242004-03-12 Roger Sayle <roger@eyesopen.com> 38425 38426 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63. 38427 384282004-03-12 Matt Austern <austern@apple.com> 38429 38430 * target.h (struct gcc_target): New target hook, unwind_label. 38431 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook. 38432 * output.h (default_emit_unwind_label): New function. 38433 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro. 38434 (TARGET_USES_WEAK_UNWIND_INFO): New target macro. 38435 (TARGET_SUPPORTS_HIDDEN): New target macro. 38436 * dwarf2out.c (struct dw_fde_struct): Add field for function decl 38437 that corresponds to this FDE. 38438 (FRAME_BEGIN_LABEL): Allow target to override default label. 38439 (output_call_frame_info): If FDEs are linknonce, then use extra 38440 indirection for FDE encoding, output a label for each FDE, and 38441 output an empty label for each function without an FDE. 38442 (dwarf2out_begin_prologue): Set up decl field when creating an FDE. 38443 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for 38444 decls with DECL_ONE_ONLY set, if that macro is defined. 38445 (make_decl_one_only): Don't use DECL_COMMON if we're compiling 38446 for a SUPPORTS_ONE_ONLY target. 38447 * config/darwin-protos.h (darwin_unique_section): Declare. 38448 (darwin_asm_named_section): Likewise. 38449 (darwin_section_type_flags): Likewise. 38450 (darwin_non_lazy_pcrel): Likewise. 38451 (darwin_emit_unwind_label): Likewise. 38452 (darwin_make_decl_one_only): Likewise. 38453 * config/darwin.c (machopic_finish): Get rid of tweak that 38454 eliminate stubs for symbols that are defined. 38455 (darwin_encode_section_info): Don't treat weak functions as defined. 38456 (darwin_make_decl_one_only): Define. 38457 (darwin_asm_named_section): Likewise. 38458 (darwin_section_type_flags): Likewise. 38459 (darwin_unique_section): Likewise. 38460 (darwin_emit_unwind_label): Likewise. 38461 (darwin_non_lazy_pcrel): Likewise. 38462 (darwin_asm_output_dwarf_delta): Difference between two labels is 38463 local only if both labels are local. 38464 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define. 38465 (ASM_MAKE_LABEL_LINKONCE): Likewise. 38466 (TARGET_SUPPORTS_HIDDEN): Likewise. 38467 (TARGET_USES_WEAK_UNWIND_INFO): Likewise. 38468 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise. 38469 (FRAME_BEGIN_LABEL): Likewise. 38470 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect. 38471 (ASM_DECLARE_FUNCTION_NAME): Likewise. 38472 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag. 38473 (TARGET_ASM_UNIQUE_SECTION): Define. 38474 (EH_FRAME_SECTION_NAME): Define. 38475 (EH_FRAME_SECTION_ATTR): Likewise. 38476 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. 38477 (TARGET_ASM_NAMED_SECTION): Likewise. 38478 (TARGET_SECTION_TYPE_FLAGS): Likewise. 38479 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO, 38480 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN, 38481 TARGET_ASM_EMIT_UNWIND_LABEL. 38482 384832004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 38484 38485 * builtins.c (expand_builtin_mathfn): Add pow10* to the 38486 existing exp10* case. 38487 (expand_builtin): Likewise. 38488 384892004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr> 38490 38491 * doc/tm.texi (registers) <Values in Registers>: Add 38492 entry for REGMODE_NATURAL_SIZE. 38493 384942004-03-12 Richard Henderson <rth@redhat.com> 38495 38496 PR target/14547 38497 * target.h (struct gcc_target): Move calls substructure before 38498 booleans. Add split_complex_arg. 38499 * function.c (assign_parms, split_complex_args): Use it. 38500 * calls.c (expand_call): Likewise. 38501 (split_complex_values): Likewise. Check for splittable types 38502 before allocating memory. 38503 (split_complex_types): Likewise. 38504 * system.h (SPLIT_COMPLEX_ARGS): Poison. 38505 * expr.h (SPLIT_COMPLEX_ARGS): Remove. 38506 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New. 38507 * config/alpha/alpha.c (alpha_split_complex_arg): New. 38508 (TARGET_SPLIT_COMPLEX_ARG): New. 38509 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove. 38510 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New. 38511 (rs6000_override_options): Zap it for non-AIX. 38512 (rs6000_function_value): Use targetm.calls.split_complex_arg. 38513 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove. 38514 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New. 38515 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove. 38516 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old 38517 SPLIT_COMPLEX_ARGS entry. 38518 385192004-03-11 Richard Henderson <rth@redhat.com> 38520 38521 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New. 38522 (alpha_lookup_xfloating_lib_func): Use them, return rtx. 38523 (alpha_emit_xfloating_arith): Update to match. 38524 (alpha_emit_xfloating_compare): Likewise. 38525 (alpha_emit_xfloating_cvt): Likewise. 38526 (alpha_emit_xfloating_libcall): Take already built symbol, 38527 mark call const. 38528 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take 38529 op1 in a register. 38530 385312004-03-11 Richard Henderson <rth@redhat.com> 38532 38533 PR target/14539 38534 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128. 38535 38536 * simplify-rtx.c (simplify_relational_operation): Fix typo. 38537 385382004-03-11 Richard Henderson <rth@redhat.com> 38539 38540 PR middle-end/14477 38541 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER. 38542 385432004-03-11 Ulrich Weigand <uweigand@de.ibm.com> 38544 38545 PR target/14262 38546 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not 38547 defined, pass small BLKmode values in registers in the low-order part. 38548 385492004-03-11 Ulrich Weigand <uweigand@de.ibm.com> 38550 38551 * combine.c (if_then_else_cond): Check for NULL return value of 38552 simplify_gen_subreg. 38553 385542004-03-11 Richard Sandiford <rsandifo@redhat.com> 38555 38556 PR target/14496 38557 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for 38558 TARGET_SINGLE_FLOAT. 38559 385602004-03-11 Steve Ellcey <sje@cup.hp.com> 38561 38562 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef. 38563 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define. 38564 * config/ia64/ia64.c (ia64_init_libfuncs): New. 38565 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs. 38566 385672004-03-11 Roger Sayle <roger@eyesopen.com> 38568 38569 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize 38570 -((int)X>>C) where C is an integer constant one bit less than the 38571 size of X into (unsigned)X>>C. Similarly for unsigned->signed. 38572 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations. 38573 38574 * simplify-rtx.c (simplify_unary_operation): Also implement the 38575 above transformations at the RTL level. 38576 385772004-03-11 Alan Modra <amodra@bigpond.net.au> 38578 38579 * real.c (encode_ibm_extended): Do round low word. 38580 385812004-03-11 Ben Elliston <bje@wasabisystems.com> 38582 38583 * config/arm/arm.md (is_xscale): Comment this attribute and move 38584 it a bit further up in the file, closer to related attributes. 38585 385862004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr> 38587 38588 * config/host-solaris.c (sol_gt_pch_use_address): Add 38589 missing terminating marker to comment. 38590 385912004-03-11 Richard Sandiford <rsandifo@redhat.com> 38592 38593 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves. 38594 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates. 38595 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16) 38596 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use 38597 move_operand as source predicate in all cases. 38598 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint. 38599 Test reg_or_0_operand. Use move_operand as source predicate. 38600 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand. 38601 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16. 38602 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand. 38603 (movhi, movqi, movsf, movdf): Use mips_legitimize_move. 38604 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand. 38605 Use move_operand as source predicate. Remove 'K' constraint. 38606 (*movqi_internal): Likewise movqi_internal. 38607 (*movsf_hardfloat): Renamed from movsf_internal1. Test 38608 reg_or_0_operand. Use move_operand as source predicate. 38609 (*movsf_softfloat): Likewise movsf_internal2. 38610 (*movdf_hardfloat_64bit): Likewise movsf_internal1a. 38611 (*movdf_hardfloat_32bit): Likewise movsf_internal1b. 38612 (*movdf_softfloat): Likewise movdf_internal2. 38613 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs 38614 for DImode if !TARGET_64BIT. 38615 (mips_legitimize_move): Simplify accordingly. 38616 386172004-03-11 Josef Zlomek <zlomekj@suse.cz> 38618 38619 PR/14362 38620 * var-tracking.c (struct variable_def): Added field refcount. 38621 (variable_htab_free): Decrease the refcount and delete variable 38622 only if there are no more references. 38623 (unshare_variable): New function. 38624 (vars_copy_1): Increase refcount instead of copying the variable. 38625 (variable_union): Share the variables where possible, unshare 38626 the variables if needed. 38627 (variable_different_p): Return false if var1 and var2 are 38628 the same structure. 38629 (variable_was_changed): Init the refcount of new variable. 38630 (set_frame_base_location): Unshare variable if needed. 38631 (set_variable_part): Init the refcount of new variable. 38632 Unshare the variables if needed. 38633 (delete_variable_part): Unshare the variables if needed. 38634 (emit_notes_for_differences_1): Init the refcount of new variable. 38635 (vt_add_function_parameters): Do not add function parameters to 38636 IN set of ENTRY_BLOCK_PTR because it is unused anyway. 38637 (vt_initialize): Do not add frame_base_decl to IN set of 38638 ENTRY_BLOCK_PTR because it is unused anyway. 38639 386402004-03-11 Josef Zlomek <zlomekj@suse.cz> 38641 38642 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations. 38643 (vars_copy): Likewise. 38644 (variable_union): Likewise. 38645 (set_variable_part): Likewise. 38646 (delete_variable_part): Likewise. 38647 386482004-03-11 Kazu Hirata <kazu@cs.umass.edu> 38649 38650 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h, 38651 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c, 38652 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c, 38653 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h, 38654 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md, 38655 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h, 38656 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h, 38657 config/pdp11/pdp11.h, config/rs6000/rs6000.c, 38658 config/stormy16/stormy16.c: Fix comment typos and formatting. 38659 386602004-03-11 Nathanael Nerode <neroden@gcc.gnu.org> 38661 38662 * configure: Regenerate, since I forgot to while committing Paolo's 38663 changes. 38664 386652004-03-08 Paolo Bonzini <bonzini@gnu.org> 38666 38667 PR ada/14131 38668 Move language detection to the top level. 38669 * configure.ac: Remove code to detect languages, 38670 it now lives exclusively in the top level. 38671 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the 38672 top level, renamed to ACX_PROG_GNAT. 38673 386742004-03-10 Richard Henderson <rth@redhat.com> 38675 38676 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address 38677 extra arguments. 38678 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj 38679 and host_xmake_file fragments. 38680 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change. 38681 (gt_pch_restore): Similarly for gt_pch_use_address. 38682 (default_gt_pch_get_address): New. 38683 (mmap_gt_pch_get_address): Split out of gt_pch_save. 38684 (default_gt_pch_use_address): Split out of gt_pch_restore. 38685 (mmap_gt_pch_use_address): Likewise. 38686 * hooks.c (hook_voidp_size_t_null): Remove. 38687 (hook_bool_voidp_size_t_false): Remove. 38688 * hooks.h: Likewise. 38689 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the 38690 default_ or mmap_ definitions. 38691 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise. 38692 * hosthooks.h (struct host_hooks): Update gt_pch_get_address 38693 and gt_pch_use_address. 38694 * config/host-linux.c, config/host-solaris.c: New files. 38695 * config/x-linux, config/x-solaris: New files. 38696 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address): 38697 Update for changed definition. 38698 (darwin_rs6000_gt_pch_use_address): Likewise. 38699 * doc/hostconfig.texi: Update docs. 38700 387012004-03-10 Richard Henderson <rth@redhat.com> 38702 38703 PR c/14517 38704 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers 38705 except for pedantic c90 mode. 38706 387072004-03-10 Kelley Cook <kcook@gcc.gnu.org> 38708 38709 * configure.ac: Bump AC_PREREQ to 2.59. 38710 * configure: Regenerate. 38711 387122004-03-10 Uros Bizjak <uros@kss-loka.si> 38713 38714 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2. 38715 (exp10_optab, exp2_optab): Define corresponding macros. 38716 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab. 38717 * genopinit.c (optabs): Implement exp10_optab and exp2_optab 38718 using exp10?f2 and exp2?f2 patterns. 38719 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L} 38720 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab. 38721 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L} 38722 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 38723 38724 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2, 38725 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l, 38726 exp2, exp2f and exp2l built-ins as inline x87 intrinsics. 38727 387282004-03-10 Anthony Green <green@redhat.com> 38729 38730 * doc/invoke.texi (ARM Options): Fix -mpfu typo. 38731 387322004-03-10 David Edelsohn <edelsohn@gnu.org> 38733 38734 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ... 38735 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define 38736 __LONGDOUBLE128. 38737 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use 38738 TARGET_OS_AIX_CPP_BUILTINS. 38739 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same. 38740 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same. 38741 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same. 38742 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert 38743 previous change. 38744 387452004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 38746 38747 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases. 38748 387492004-03-10 David Edelsohn <edelsohn@gnu.org> 38750 38751 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define 38752 __LONGDOUBLE128 on AIX. 38753 387542004-03-10 Andrew Haley <aph@redhat.com> 38755 38756 PR optimization/14381 38757 * function.c (expand_function_end): Emit a blockage insn before 38758 the epilogue when -fnon-call-exceptions is used. 38759 38760 * except.c (expand_start_all_catch): Make comment more accurate. 38761 387622004-03-08 Joel Sherrill <joel@oarcorp.com> 38763 38764 PR target/14480 38765 * config/rs6000/t-rtems: Add missing file on branch. 38766 387672004-03-10 Ulrich Weigand <uweigand@de.ibm.com> 38768 38769 * dbxout.c (dbxout_symbol_location): Do not output references 38770 to optimized-out constant pool symbols. 38771 387722004-03-10 Andreas Schwab <schwab@suse.de> 38773 38774 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable 38775 twon34_r. 38776 387772004-03-09 James E Wilson <wilson@specifixinc.com> 38778 38779 * alias.c (alias_sets_might_conflict_p): New. 38780 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1. 38781 * common.opt (Wstrict-aliasing=): New. 38782 * flags.h (warn_strict_aliasing): Change type to int. 38783 * opts.c (warn_strict_aliasing): Change type to int. 38784 (common_handle_option): Handle OPT_Wstrict_aliasing_. 38785 * tree.h (alias_sets_might_conflict_p): Declare it. 38786 * doc/invoke.tex (-Wstrict-aliasing=2): Document it. 38787 387882004-03-10 Roman Zippel <zippel@linux-m68k.org> 38789 38790 PR bootstrap/12371 38791 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer. 38792 (CALL_USED_REGISTERS): Likewise. 38793 (REG_CLASS_CONTENTS): Likewise. 38794 (REG_ALLOC_ORDER): New. 38795 (REGNO_REG_CLASS): Use regno_reg_class. 38796 * config/m68k/m68k.c: Add regno_reg_class array. 38797 387982004-03-09 Steve Ellcey <sje@cup.hp.com> 38799 38800 * config/ia64/ia64.md (divsi3): Fix algorithm. 38801 (udivsi3): Ditto. 38802 (setf_exp_xf): Remove '*' from name. 38803 * testsuite/gcc.dg/20040309-1.c: New test. 38804 388052004-03-09 Ian Lance Taylor <ian@wasabisystems.com> 38806 38807 * system.h (SUNOS4_SHARED_LIBRARIES): Poison. 38808 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code. 38809 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define. 38810 * config/sparc/sparc.c (sparc_aout_select_section): Remove. 38811 (sparc_aout_select_rtx_section): Don't check 38812 SUNOS4_SHARED_LIBRARIES. 38813 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define. 38814 388152004-03-10 Hans-Peter Nilsson <hp@axis.com> 38816 38817 PR other/14474 38818 * doc/md.texi (Pattern Ordering, Dependent Patterns) 38819 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset 38820 INTERNALS". 38821 388222004-03-09 Zack Weinberg <zack@codesourcery.com> 38823 38824 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define. 38825 (LIBGCC_SPEC): Update to match. 38826 388272004-03-09 Zack Weinberg <zack@codesourcery.com> 38828 38829 * c-decl.c (last_function_parms, last_function_parm_tags) 38830 (last_function_parm_others, current_function_parms) 38831 (current_function_parm_tags, current_function_parm_others): 38832 Delete. 38833 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS): 38834 New macros. 38835 (grokdeclarator): For function definitions, save the arg-info 38836 block from the declarator in DECL_ARGUMENTS. 38837 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_* 38838 macros to operate on arg-info block. Can assume ARG_INFO_PARMS 38839 contains only PARM_DECLs. Improve diagnostics. 38840 (get_parm_info): Use ARG_INFO_* macros. Improve comments and 38841 diagnostics. Disable some expensive checks if not ENABLE_CHECKING. 38842 (store_parm_decls_newstyle): Take the function to operate on, 38843 and an arg-info block, as arguments; don't get anything from 38844 current_function_* globals. 38845 (store_parm_decls_oldstyle): Likewise. 38846 (store_parm_decls): Pass fndecl and its arg-info block down to 38847 store_parm_decls_newstyle/oldstyle. Send functions with empty 38848 argument lists through store_parm_decls_newstyle to reduce 38849 overhead. 38850 (pushdecl): Comment on the problems with the call to copy_node. 38851 Clear DECL_ARGUMENTS of the old node after copying it, if it 38852 is an arg-info block instead of a chain of decls. 38853 (start_function): Do not manipulate current_function_parm* or 38854 last_function_parm*. 38855 388562004-03-09 Roger Sayle <roger@eyesopen.com> 38857 Andrew Pinski <pinskia@physics.uc.edu> 38858 38859 * ifcvt.c (noce_try_sign_mask): New function to transform 38860 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z". 38861 (noce_process_if_block): Call noce_try_sign_mask. 38862 388632004-03-09 Andrew Pinski <apinski@apple.com> 38864 38865 * c-typeck.c (tagged_types_tu_compatible_p): 38866 Fix typo. 38867 388682004-03-09 Roger Sayle <roger@eyesopen.com> 38869 38870 * simplify-rtx.c (simplify_const_relational_operation): New function 38871 renamed from simplify_relational_operation. 38872 (simplify_relational_operation): Change prototype to accept an 38873 additional mode argument. Call simplify_const_relational_operation. 38874 (simplify_gen_relational): Update simplify_relational_operation call. 38875 (simplify_ternary_operation): Update simplify_relational_operation 38876 subroutine call to use simplify_const_relational_operation instead. 38877 38878 * rtl.h (simplify_const_relational_operation): Prototype here. 38879 (simplify_relational_operation): Add addtional mode argument. 38880 38881 * combine.c (combine_simplify_rtx): Update calls to 38882 simplify_relational_operation. 38883 (simplify_set): Likewise. 38884 (gen_binary): Likewise. 38885 * cse.c (fold_rtx): Likewise. 38886 * dojump.c (compare_from_rtx): Likewise. 38887 (do_compare_rtx_and_jump): Likewise. 38888 * integrate.c (subst_constants): Likewise. 38889 * unroll.c (simplify_cmp_and_jump_insns): Likewise. 38890 388912004-03-09 Kazu Hirata <kazu@cs.umass.edu> 38892 38893 * config/m32r/m32r.md: Remove all define_peephole's. 38894 388952004-03-09 Alan Modra <amodra@bigpond.net.au> 38896 38897 * config/rs6000/rs6000.md: Remove trailing whitespace. 38898 388992004-03-08 Eric Christopher <echristo@redhat.com> 38900 38901 * Makefile.in (site.exp): Add libiconv variable definition. 38902 389032004-03-09 Hans-Peter Nilsson <hp@axis.com> 38904 38905 * configure: Regenerate for config/accross.m4 correction. 38906 389072004-03-08 Joel Sherrill <joel@oarcorp.com> 38908 38909 PR target/14480 38910 * config/rs6000/t-rtems: Add missing file on branch. 38911 389122004-03-08 Roger Sayle <roger@eyesopen.com> 38913 38914 PR middle-end/14289 38915 * c-typeck.c (c_mark_addressable): A register variable should 38916 be considered global if its not automatic, i.e. TREE_PUBLIC, 38917 TREE_STATIC or DECL_EXTERNAL. 38918 * function.c (put_var_into_stack): Call abort when placing a 38919 hard register into the stack, if x_parm_reg_stack_loc is NULL. 38920 389212004-03-08 Ulrich Weigand <uweigand@de.ibm.com> 38922 38923 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber. 38924 ("*extendqisi2_short_displ"): Likewise. 38925 389262004-03-08 Kazu Hirata <kazu@cs.umass.edu> 38927 38928 * config/pdp11/pdp11.c (comparison_operator_index): Remove. 38929 (comp_operator): Likewise. 38930 * config/pdp11/pdp11-protos.h: Remove corresponding 38931 prototypes. 38932 389332004-03-08 Eric Botcazou <ebotcazou@act-europe.fr> 38934 38935 * expr.c (highest_pow2_factor_for_type): Rename into 38936 highest_pow2_factor_for_target. Use DECL_ALIGN instead of 38937 TYPE_ALIGN when the target is a COMPONENT_REF. 38938 (expand_assignment): Ajust call to highest_pow2_factor_for_type. 38939 389402004-03-08 Alan Modra <amodra@bigpond.net.au> 38941 38942 * config/rs6000/rs6000.c: Formatting fix. 38943 (legitimate_offset_address_p): Correct offset range check. 38944 38945 * config/rs6000/rs6000.c (rs6000_override_options): Don't override 38946 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE 38947 and MASK_STRING. 38948 389492004-03-07 Aldy Hernandez <aldyh@redhat.com> 38950 38951 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power 38952 for little endian. 38953 ("ashrdi3_no_power"): Disable for little endian. 38954 (ashrdi3): Same. 38955 389562004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 38957 38958 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for 38959 builtins. 38960 389612004-03-08 Hans-Peter Nilsson <hp@axis.com> 38962 38963 PR target/14471 38964 * configure.ac (Target-specific assembler checks) <cris-*-*>: New 38965 case, checking for -no-mul-bug-abort option. 38966 * configure, config.in: Regenerate. 38967 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround 38968 and -mno-mul-bug-workaround. 38969 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart") 38970 ("mulsidi3", "umulsidi3"): Prefix output template with "%!". 38971 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"): 38972 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG. 38973 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make 38974 sure mulu.d is not last on cache-line. 38975 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround 38976 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION. 38977 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros. 38978 (TARGET_SWITCHES): New options -mmul-bug-workaround and 38979 -mno-mul-bug-workaround. 38980 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG. 38981 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'. 38982 * config/cris/cris.c (cris_operand_extend_operator): Clarify 38983 relation to MULT in head comment. 38984 (cris_op_str): Abort for MULT. 38985 (cris_print_operand) <case '!'>: New case. 38986 389872004-03-08 Alan Modra <amodra@bigpond.net.au> 38988 38989 PR debug/11983 38990 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to 38991 dw_val_class_vec. Replace use throughout file. 38992 (dw_float_const): Delete. 38993 (dw_vec_const): New. 38994 (dw_val_struct_union): Rename val_float to val_vec. Replace use 38995 throughout file. 38996 (add_AT_vec): Rename from add_AT_float. Add elt_size param. 38997 (same_dw_val_p): Adjust vec comparison. Use memcmp. 38998 (size_of_die): Adjust dw_val_class_vec sizing. 38999 (output_die): Output dw_val_class_vec. 39000 (insert_int, extract_int, insert_float): New functions. 39001 (add_const_value_attribute): Use insert_float for CONST_DOUBLE. 39002 Handle CONST_VECTOR. 39003 (add_location_or_const_value_attribute): Handle CONST_VECTOR. 39004 390052004-03-07 Aldy Hernandez <aldyh@redhat.com> 39006 39007 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and 39008 AltiVec abi cannot co-exist. 39009 39010 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same. 39011 390122004-03-07 Jan Hubicka <jh@suse.cz> 39013 39014 * except.c (emit_to_new_bb_before): Break fallthru edges. 39015 390162004-03-07 Stephane Carrez <stcarrez@nerim.fr> 39017 39018 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12. 39019 ("*lshrsi3"): Also accept an immediate for 68HC12. 39020 ("*ashrsi3_const"): Likewise. 39021 ("*ashrsi3"): Likewise. 39022 ("*ashlsi3_const"): Likewise. 39023 ("*ashlsi3"): Likewise. 39024 ("cmphi_1_hc12"): Compare two hard register by pushing them and 39025 comparing with a pop; don't use a split for that. 39026 ("cmphi split"): Disable compare split for 68HC12. 39027 39028 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate 39029 the status operands if they have side effects. 39030 390312004-03-07 Kazu Hirata <kazu@cs.umass.edu> 39032 39033 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default 39034 definition. 39035 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h, 39036 config/h8300/h8300.h, config/ia64/ia64.h, 39037 config/mcore/mcore.h, config/mmix/mmix.h, 39038 config/ns32k/ns32k.h, config/pdp11/pdp11.h, 39039 config/stormy16/stormy16.h, config/v850/v850.h, 39040 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove. 39041 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default 39042 definition. 39043 390442004-03-07 Roger Sayle <roger@eyesopen.com> 39045 39046 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x. 39047 <XOR_EXPR>: Fold x ^ x as zero. 39048 <AND_EXPR>: Fold x & x as x. 39049 390502004-03-07 Roger Sayle <roger@eyesopen.com> 39051 39052 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform 39053 "foo++ == const" into "++foo == const+incr". 39054 390552004-03-07 Richard Sandiford <rsandifo@redhat.com> 39056 39057 * config/mips/mips.c (mips_in_small_data_p): Return false if 39058 TARGET_ABICALLS. 39059 390602004-03-06 Stephane Carrez <stcarrez@nerim.fr> 39061 39062 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push 39063 the stack register. 39064 (expand_prologue): Don't make an interrupt or a trap handler a far 39065 symbol. 39066 (m68hc11_initial_elimination_offset): Likewise. 39067 390682004-03-06 Richard Henderson <rth@redhat.com> 39069 39070 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions. 39071 390722004-03-06 Kazu Hirata <kazu@cs.umass.edu> 39073 39074 * config/ns32k/ns32k-protos.h: Add a prototype for 39075 ns32k_notice_update_cc. 39076 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New. 39077 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call 39078 ns32k_notice_update_cc. 39079 390802004-03-06 Ulrich Weigand <uweigand@de.ibm.com> 39081 39082 * config/s390/s390.md ("load_multiple", "*load_multiple_di", 39083 "*load_multiple_si"): Allow only if reload_completed. 39084 ("store_multiple", "*store_multiple_di", "*store_multiple_si"): 39085 Likewise. 39086 390872004-03-06 Kazu Hirata <kazu@cs.umass.edu> 39088 39089 * config/vax/vax-protos.h: Add a prototype for 39090 vax_notice_update_cc. 39091 * config/vax/vax.c (vax_notice_update_cc): New. 39092 * config/vax/vax.h (NOTICE_UPDATE_CC): Call 39093 vax_notice_update_cc. 39094 390952004-03-06 David Edelsohn <edelsohn@gnu.org> 39096 39097 * collect2.c (main): Only export initfunc and finifunc if 39098 LD_INIT_SWITCH not defined. 39099 (scan_prog_file): Only export constructors and destructors if 39100 LD_INIT_SWITCH not defined. Only export symbols not found in 39101 shared objects. 39102 391032004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 39104 39105 * pa.md (icacheflush): Reorder operands to make match_scratch operand 39106 last. 39107 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument 39108 from calls to gen_icacheflush. 39109 391102004-03-06 Richard Henderson <rth@redhat.com> 39111 39112 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New. 39113 (TARGET_LONG_DOUBLE_128): New. 39114 (TARGET_SWITCHES): Add long-double-{128,64}. 39115 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128. 39116 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128. 39117 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New. 39118 (WIDEST_HARDWARE_FP_SIZE): New. 39119 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__. 39120 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128 39121 if TARGET_VAX_FLOAT. 39122 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove. 39123 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128. 39124 391252004-03-06 Richard Henderson <rth@redhat.com> 39126 39127 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix 39128 botched rtx class conversion. 39129 391302004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 39131 39132 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P, 39133 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros. 39134 39135 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new 39136 macros. 39137 * fold-const.c (fold_mathfn_compare, fold): Likewise. 39138 391392004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr> 39140 39141 PR target/14343 39142 * config/i386/i386.md (movv2di_internal): Conditionalize on 39143 TARGET_SSE, not TARGET_SSE2. 39144 391452004-03-05 Chris Demetriou <cgd@broadcom.com> 39146 39147 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete 39148 duplicated line. 39149 391502004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 39151 39152 * builtins.c: Consistently use logN not log* in comments. 39153 391542004-03-05 Andreas Krebbel <krebbel1@de.ibm.com> 39155 39156 * rtl.h (mem_expr_equal_p): Function prototype added. 39157 * cfgcleanup.c (merge_memattrs): New function. 39158 (flow_find_cross_jump): Call merge_memattrs for matching insns. 39159 * emit-rtl.c (mem_expr_equal_p): New function. 39160 391612004-03-05 Ziemowit Laski <zlaski@apple.com> 39162 39163 * objc/objc-act.c (synth_module_prologue): Const-qualify 39164 objc_selector type if using the GNU runtime; fix generated 39165 signatures for objc_msg_lookup and objc_msg_lookup_super 39166 to match what GNU ObjC headers provide; reformat and clean up. 39167 (synth_self_and_ucmd_args): Use previously constructed (and 39168 hence possibly const-qualified) objc_selector type. 39169 391702004-03-05 Kazu Hirata <kazu@cs.umass.edu> 39171 39172 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document. 39173 391742004-03-05 Jason Merrill <jason@redhat.com> 39175 39176 * tree.h (TYPE_HASH): Use TYPE_UID. 39177 (TREE_HASH): New macro with old definition of TYPE_HASH. 39178 * tree.c (build_type_attribute_variant): Use iterative_hash_object. 39179 (build_array_type, build_function_type): Likewise. 39180 (build_method_type_directly): Likewise. 39181 (build_offset_type, build_complex_type): Likewise. 39182 (type_hash_list, attribute_hash_list): Likewise. Now static. 39183 * except.c: s/TYPE_HASH/TREE_HASH/. 39184 391852004-03-05 Bob Wilson <bob.wilson@acm.org> 39186 39187 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args. 39188 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust 39189 __va_ndx by 2 words when referencing an argument on the stack. 39190 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2 39191 words when an arg on the stack is first seen. 39192 391932004-03-05 Paul Brook <paul@codesourcery.com> 39194 39195 * arm.h (ARM_FLAG_VFP): Remove. 39196 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber. 39197 * netbsd-elf.h (ARM_FLAG_VFP): Remove. 39198 391992004-03-05 Paul Brook <paul@codesourcery.com> 39200 39201 * function.c (assign_parms): Include pretend alignment offset. 39202 392032004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 39204 39205 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size 39206 FUNCTION_BOUNDARY, not POINTER_SIZE * 2. 39207 392082004-03-05 Ian Lance Taylor <ian@wasabisystems.com> 39209 39210 * configure.ac: When passing --enable-languages to subdir 39211 configure when host != build, make sure we don't pass an empty 39212 value. 39213 * configure: Regenerate. 39214 392152004-03-05 Nathan Sidwell <nathan@codesourcery.com> 39216 39217 PR 13577 39218 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o 39219 options. 39220 392212004-03-05 Paolo Bonzini <bonzini@gnu.org> 39222 39223 * simplify-rtx.c (simplify_relational_operation): If 39224 flag_wrapv is set, do not move terms between the two 39225 side of a relational operator. 39226 392272004-03-05 Paolo Bonzini <bonzini@gnu.org> 39228 39229 * rtlanal.c: Include target.h and output.h 39230 (rtx_cost, address_cost, default_address_cost): Move from... 39231 * cse.c (rtx_cost, address_cost, default_address_cost): 39232 ... this file. 39233 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c. 39234 * Makefile.in: Adjust dependencies. 39235 392362004-03-05 Paolo Bonzini <bonzini@gnu.org> 39237 39238 * cse.c (cse_end_of_basic_block): Make static. 39239 * local-alloc.c (function_invariant_p): Move to 39240 reload1.c. 39241 * loop.c (libcall_other_reg, record_excess_regs): 39242 Make static. 39243 * reload1.c (function_invariant_p): Moved here 39244 from local-alloc.c, made static. 39245 * rtl.h (cse_end_of_basic_block, function_invariant_p, 39246 libcall_other_reg, record_excess_regs): Remove 39247 declarations. 39248 392492004-03-05 Kazu Hirata <kazu@cs.umass.edu> 39250 39251 * config/m32r/m32r.c (signed_comparison_operator): Add a 39252 missing parenthesis. 39253 392542004-03-04 Ian Lance Taylor <ian@wasabisystems.com> 39255 39256 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are 39257 going to call mmap again. Read the file into the right place. 39258 Give a fatal error if we have to relocate. 39259 392602004-03-04 Bob Wilson <bob.wilson@acm.org> 39261 39262 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function. 39263 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb. 39264 392652004-03-05 Hans-Peter Nilsson <hp@axis.com> 39266 39267 PR other/14354 39268 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would 39269 round the same. When rounding, clear bits that would cause a 39270 second rounding in pack_d. 39271 (_fpmul_parts): Ditto. Remove #if 0:d code. 39272 392732004-03-04 Ziemowit Laski <zlaski@apple.com> 39274 39275 PR c++/14425, c++/14426 39276 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16, 39277 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32): 39278 Change C++ definitions to accept a 'const int' argument; 39279 the prototypes already do. 39280 * config/rs6000/rs6000.c (rs6000_common_init_builtins): 39281 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char, 39282 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char, 39283 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char, 39284 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char, 39285 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to 39286 end in ..._int; change them to accept an int instead of a char 39287 as the last parameter. 39288 392892004-03-04 Phil Edwards <phil@codesourcery.com> 39290 39291 * genmultilib: Change '=' to '-' when translating option names 39292 to directory names. 39293 392942004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 39295 39296 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of 39297 stack slot for temp used for result of BLKmode but in integral mode. 39298 392992004-03-04 Jan Hubicka <jh@suse.cz> 39300 39301 * reload.c (find_reloads): Reorganize if seqeunce to switch. 39302 39303 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty. 39304 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty. 39305 393062004-03-04 Steve Ellcey <sje@cup.hp.com> 39307 39308 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm. 39309 * testsuite/gcc.dg/20040303-1.c: New test. 39310 393112004-03-04 Steven Bosscher <stevenb@suse.de> 39312 39313 * ppro.md: Rewrite as a DFA pipeline description. 39314 * i386.md: Remove all uses of the ppro_uops attribute. 39315 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet, 39316 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init, 39317 ix86_sched_reorder, ix86_variable_issue, 39318 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE, 39319 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove. 39320 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO. 39321 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO. 39322 * athlon.md (athlon_ssecmp_load): Fix comment 39323 393242004-03-04 Stuart Hastings <stuart@apple.com> 39325 39326 * doc/invoke.texi: Document -mlongcall for Darwin/PPC. 39327 393282004-03-04 Stuart Hastings <stuart@apple.com> 39329 39330 * config/i386/darwin.h: Darwin/x86 doesn't support CPUs before 39331 686, tell Darwin assembler to allow prefetch insns, non-empty def 39332 of SUBTARGET_OPTION_TRANSLATE_TABLE. 39333 393342004-03-04 DJ Delorie <dj@redhat.com> 39335 39336 PR optimization/14282 39337 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment 39338 between a call and the assignment of its return value. 39339 393402004-03-04 Kazu Hirata <kazu@cs.umass.edu> 39341 39342 * config/h8300/h8300.c: Put a comment for every function. 39343 393442004-03-04 Kazu Hirata <kazu@cs.umass.edu> 39345 39346 * config/h8300/h8300.md: Add comments about peephole2's. 39347 393482004-03-04 Steven Bosscher <stevenb@suse.de> 39349 39350 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value. 39351 393522004-03-04 Jan Hubicka <jh@suse.cz> 39353 39354 * cfgcleanup.c (thread_jump): Update call of cselib_init. 39355 * cselib.c (cselib_record_memory): New static variable. 39356 (cselib_lookup_mem, cselib_record_set, cselib_record_sets): 39357 Give up on memories when asked for. 39358 (cselib_init): Accept new argument. 39359 * cselib.h (cselib_init): Update prototype. 39360 * gcse.c (local_cprop_pass): Update call of cselib_init. 39361 * loop.c (load_mems): Update call of cselib_init. 39362 * postreload.c (reload_cse_regs_1): Update call of cselib_init. 39363 * sched-deps.c (sched_analyze): Update call of cselib_init. 39364 393652004-03-04 David Edelsohn <edelsohn@gnu.org> 39366 GP <gp@qnx.com> 39367 39368 * config/rs6000/rs6000.c (output_function_profiler): Append @plt 39369 when compiling PIC. 39370 393712004-03-04 Josef Zlomek <zlomekj@suse.cz> 39372 39373 PR/14362 39374 * var-tracking.c (track_expr_p): Do not track variables which 39375 should be ignored for debugging purposes. 39376 393772004-03-04 Alan Modra <amodra@bigpond.net.au> 39378 39379 * real.c (encode_ibm_extended): Don't bother rounding low double. 39380 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX 39381 when fmt->pnan < fmt->p. 39382 393832004-03-04 Eric Christopher <echristo@redhat.com> 39384 39385 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check 39386 only range of valid arg registers and fixed_regs. 39387 393882004-03-04 Alan Modra <amodra@bigpond.net.au> 39389 39390 PR target/14406 39391 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn. 39392 (abstf2, abstf2_internal): New define_expand. 39393 393942004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr> 39395 39396 PR optimization/14235 39397 * expr.c (convert_move): Copy the source to a new pseudo 39398 when converting from a sub-word source to a larger-than-word 39399 register which conflicts with the source. 39400 394012004-03-03 Zack Weinberg <zack@codesourcery.com> 39402 39403 PR 13728 39404 * c-decl.c (diagnose_mismatched_decls): Issue an error for two 39405 parameters with the same name, unless one is a forward decl. 39406 Do not issue a redundant-redeclaration warning for forward 39407 decls of parameters. 39408 394092004-03-04 David Edelsohn <edelsohn@gnu.org> 39410 39411 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up 39412 configuration. 39413 394142004-03-03 Ian Lance Taylor <ian@wasabisystems.com> 39415 39416 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer. 39417 394182004-03-04 Alan Modra <amodra@bigpond.net.au> 39419 39420 * target-def.h (TARGET_OPTF): Delete. 39421 * c-opts.c (TARGET_OPTF): Define. 39422 394232004-03-04 Jan Hubicka <jh@suse.cz> 39424 39425 * cselib.c (cselib_finish): Fix another miss-application of my previous 39426 patch. 39427 394282004-03-03 Mike Stump <mrs@apple.com> 39429 39430 Add framework support for darwin. 39431 39432 * c-incpath.c: Include target.h and machmode.h. 39433 (add_path): Use a consistent style for cpp_dir. Initialize 39434 p->construct to 0. 39435 (add_cpp_dir_path): New. 39436 (register_include_chains): Add use of extra_includes callback. 39437 (hook_void_int): Add. 39438 (target_c_incpath): Add. 39439 * c-incpath.h (add_cpp_dir_path): New. 39440 (target_c_incpath_s): Add. 39441 (target_c_incpath): Add. 39442 (C_INCPATH_INIT): Add. 39443 * c-opts.c (c_common_missing_argument, 39444 c_common_handle_option): Add -F argument processing. 39445 * c.opt: Add -F argument processing. 39446 * gcc.c (trad_capable_cpp): Add -F argument processing. 39447 * cppfiles.c (find_file_in_dir): Update to use construct 39448 callback. 39449 (search_path_exhausted, cpp_get_path, cpp_get_buffer, 39450 cpp_get_prev): New. 39451 (_cpp_find_file): Use search_path_exhausted. 39452 (make_cpp_dir): Initialize construct to 0. 39453 * cpplib.h (missing_header_cb 39454 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New. 39455 (cpp_callbacks): Add missing_header 39456 (cpp_dir): Add construct. 39457 * target-def.h: (TARGET_OPTF): New. 39458 * hooks.c (hook_void_int, hook_void_charptr): Add. 39459 * hooks.h (hook_void_int, hook_void_charptr): Add. 39460 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and 39461 $(MACHMODE_H) dependencies. 39462 * doc/invoke.texi (Darwin Options): Document -F. 39463 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add. 39464 (TARGET_OPTF): Add. 39465 * fix-header.c (target_c_incpath): Add. 39466 39467 * config/darwin-c.c: Add c-incpath.h include. 39468 (using_frameworks, find_subframework_file, 39469 find_subframework_header, add_system_framework_path, 39470 frameworks_in_use, num_frameworks, max_frameworks, 39471 add_framework, find_framework, struct framework_header, 39472 framework_header_dirs, framework_construct_pathname, 39473 find_subframework_file, add_system_framework_path, 39474 add_framework_path, framework_defaults, 39475 darwin_register_frameworks, find_subframework_header): Add. 39476 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New. 39477 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support. 39478 (CPP_SPEC): Add __APPLE_CC__ support. 39479 * t-darwin (darwin-c.o): Add c-incpath.h dependency. 39480 394812004-03-04 Jan Hubicka <jh@suse.cz> 39482 39483 * cselib.c (cselib_finish): Fix miss-application of my previous 39484 patch. 39485 394862004-03-03 Kazu Hirata <kazu@cs.umass.edu> 39487 39488 * hooks.c (hook_tree_tree_identity): New. 39489 * hooks.h: Add a prototype for hook_tree_tree_identity. 39490 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers 39491 instead of MD_ASM_CLOBBERS. 39492 * system.h (MD_ASM_CLOBBERS): Poison. 39493 * target-def.h (TARGET_MD_ASM_CLOBBERS): New. 39494 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS. 39495 * target.h (gcc_target): Add md_asm_clobbers. 39496 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New. 39497 (ix86_md_asm_clobbers): New. 39498 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove. 39499 * doc/tm.texi (MD_ASM_CLOBBERS): Change to 39500 TARGET_MD_ASM_CLOBBERS. 39501 395022004-03-03 Stuart Hastings <stuart@apple.com> 39503 39504 * config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a. 39505 395062004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr> 39507 39508 * config/sparc/sparc.c (noov_compare64_op): Fix typo. 39509 39510 * config/sparc/sparc.h (ASM_FLOAT): Delete. 39511 (ASM_DOUBLE): Likewise. 39512 (ASM_LONGDOUBLE): Likewise. 39513 * config/sparc/pbd.h (ASM_INT_OP): Delete. 39514 395152004-03-03 Richard Henderson <rth@redhat.com> 39516 39517 PR opt/13862 39518 * cselib.c (cselib_record_sets): Don't record multiple sets in 39519 asm insns. 39520 395212004-03-03 Mostafa Hagog <mustafa@il.ibm.com> 39522 39523 * common.opt: Add description of the new -fgcse-after-reload flag. 39524 39525 * flags.h (flag_gcse_after_reload): Declaration of global variable. 39526 39527 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p, 39528 reg_used_between_after_reload_p, rtx get_avail_load_store_reg, 39529 is_jump_table_basic_block, bb_has_well_behaved_predecessors, 39530 get_bb_avail_insn, hash_scan_set_after_reload, 39531 compute_hash_table_after_reload, eliminate_partially_redundant_loads, 39532 gcse_after_reload, get_bb_avail_insn): New functions to implement 39533 gcse-after-reload. 39534 (gcse_after_reload_main): New function, the main entry point to 39535 gcse-after-reload. 39536 39537 * rtl.h (gcse_after_reload_main): Declaration of the new function. 39538 39539 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag. 39540 39541 * toplev.c (flag_gcse_after_reload): Initialization. 39542 39543 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main. 39544 39545 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION, 39546 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning 39547 the gcse after reload optimization. 39548 39549 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION, 39550 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning 39551 parameters. 39552 39553 * doc/invoke.texi: Documentation for the new flag gcse-after-reload. 39554 395552004-03-03 Nicolas Pitre <nico@cam.org> 39556 39557 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of 39558 small negative values. 39559 395602004-03-03 Jan Hubicka <jh@suse.cz> 39561 39562 * cselib.c (hash_table): Remove GTY marker. 39563 (reg_values): Turn into array. 39564 (used_regs): Likewise. 39565 (n_used_regs): New static variable. 39566 (reg_values_old): Kill. 39567 (clear_table): Update uses of arrays. 39568 (cselib_lookup): Likewise. 39569 (cselib_record_set): Likewise. 39570 (cselib_init): Likewise. 39571 (cselib_finish): Likewise. 39572 (cselib_udpate_varray_sizes): Kill. 39573 * cselib.h (cselib_update_varray_sizes): Kill. 39574 395752004-03-03 Paul Brook <paul@codesourcery.com> 39576 39577 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")". 39578 395792004-03-03 Jan Hubicka <jh@suse.cz> 39580 39581 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat): 39582 Rename from ...; make statistics transparent. 39583 (ggc_alloc_cleared, ggc_realloc_stat): ... these. 39584 (loc_descriptor): New structure. 39585 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics, 39586 add_statistics): 39587 New static function. 39588 (ggc_record_overhead, dump_statistics): New global function. 39589 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat, 39590 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename 39591 from ...; accept locations 39592 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared, 39593 ggc_realloc, ggc_alloc_typed): ... this one. 39594 from ...; accept locations 39595 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat, 39596 ggc_alloc_stat): Rename from ... ; pass locations 39597 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc): 39598 ... this one. 39599 (ggc_alloc_stat): Record overehead. 39600 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared, 39601 ggc_realloc, ggc_alloc_typed): Turn to macros 39602 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat, 39603 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare. 39604 (dump_ggc_loc_satistics, ggc_record_overehead): Declare. 39605 * langhooks.h (lhd_make_node): Declare. 39606 (LANG_HOOKS_MAKE_TYPE): Default to new function, 39607 * langhooks.c (lhd_make_node): New. 39608 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass 39609 locations. 39610 (rtx_alloc, swallow_copy_rtx): ... this one. 39611 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros. 39612 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare. 39613 * toplpev.c (finalize): Dump stats. 39614 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat, 39615 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat): 39616 Rename from ... ; pass locators. 39617 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons, 39618 build?, build_decl): Declare. 39619 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat, 39620 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat): 39621 Declare. 39622 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons, 39623 build?, build_decl): New macros. 39624 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency. 39625 * statistics.h: New file. 39626 396272004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 39628 Richard Sandiford <rsandifo@redhat.com> 39629 39630 * config/mips/mips.h (MASK_FIX_SB1): Bump. 39631 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros. 39632 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400. 39633 * config/mips/mips.c (mips_output_division): Fill the branch delay 39634 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to 39635 TARGET_FIX_R4400. 39636 (mips_output_division): Adjust accordingly. 39637 (override_options): Make -march=r4400 imply -mfix-r4400 by default. 39638 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds. 39639 396402004-03-03 Paolo Bonzini <bonzini@gnu.org> 39641 39642 * alias.c (rtx_equal_for_memref_p): Use predicates 39643 to test rtx classes and new rtx class codes, possibly 39644 splitting conditionals that tested against '<' and 'o'. 39645 * caller-save.c (save_call_clobbered_regs): Likewise. 39646 * combine.c (contains_muldiv, find_split_point, subst, 39647 combine_simplify_rtx, simplify_if_then_else, 39648 simplify_set, simplify_logical, expand_compound_operation, 39649 make_compound_operation, if_then_else_cond, known_cond, 39650 apply_distributive_law, cached_nonzero_bits, 39651 cached_num_sign_bit_copies, simplify_shift_const, 39652 gen_binary, simplify_comparison, update_table_tick, 39653 record_value_for_reg, get_lsat_value_validate): Likewise. 39654 * cse.c (mention_regs, find_best_addr, find_comparison_args, 39655 fold_rtx, cse_insn, invalidate_memory, cse_basic_block): 39656 Likewise. 39657 * emit-rtl.c (copy_insn_1): Likewise. 39658 * expr.c (force_operand): Likewise. 39659 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise. 39660 * flow.c (notice_stack_pointer_modification_1, 39661 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond, 39662 and_reg_cond, elim_reg_cond): Likewise. 39663 * function.c (update_epilogue_consts): Likewise. 39664 * genattrtab.c (attr_rtx_1): Likewise. 39665 * genopinit.c (gen_insn): Likewise. 39666 * integrate.c (subst_constants): Likewise. 39667 * jump.c (reversed_comparison_code_parts, 39668 reversed_comparison_code, delete_related_insns, 39669 rtx_renumbered_equal_p): Likewise. 39670 * local-alloc.c (block_alloc): Likewise. 39671 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv, 39672 canonicalize_condition): Likewise. 39673 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations): 39674 Likewise. 39675 * optabs.c (add_equal_node, expand_binop): Likewise. 39676 * predict.c (estimate_probability): Likewise. 39677 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise. 39678 * recog.c (validate_replace_rtx_1, comparison_operator, 39679 offsettable_address_p, constrain_operands): Likewise. 39680 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat): 39681 Likewise. 39682 * regclass.c (scan_one_insn): Likewise. 39683 * regmove.c (stable_and_no_regs_but_for_p): Likewise. 39684 * regrename.c (kill_autoinc_value): Likewise. 39685 * reload.c (find_reusable_reload, find_reloads, 39686 reg_overlap_mentioned_for_reload_p): Likewise. 39687 * reload1.c (gen_reload, delete_address_reloads_1): Likewise. 39688 * rtl.c (copy_rtx): Likewise. 39689 * rtl.h (CONSTANT_P, INSN_P): Likewise. 39690 * rtlanal.c (commutative_operand_precedence): Likewise. 39691 * sched-deps.c (conditions_mutex_p): Likewise. 39692 * sched-rgn.c (is_cfg_nonregular): Likewise. 39693 * simplify-rtx.c (simplify_gen_binary, 39694 simplify_gen_relational, simplify_replace_rtx, 39695 simplify_unary_operation, simplify_binary_operation, 39696 simplify_ternary_operation, simplify_rtx): Likewise. 39697 * unroll.c (reg_dead_after_loop): Likewise. 39698 * config/alpha/alpha.c (alpha_swapped_comparison_operator, 39699 print_operand): Likewise. 39700 * config/arc/arc.c (proper_comparison_operator): Likewise. 39701 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode): 39702 Likewise. 39703 * config/avr/avr.c (_reg_unused_after): Likewise. 39704 * config/frv/frv.c (frv_ifcvt_modify_tests, 39705 frv_ifcvt_modify_insn, frv_pack_insn): Likewise. 39706 * config/i386/i386.c (ix86_comparison_operator, 39707 ix86_carry_flag_operator, fcmov_comparison_operator, 39708 arith_or_logical_operator, print_operand, 39709 ix86_expand_binary_operator, ix86_binary_operator_ok): 39710 Likewise. 39711 * config/i386/i386.md: Likewise. 39712 * config/ia64/ia64.c (not_postinc_memory_operand, 39713 ia64_print_operand, update_set_flags, errata_emit_nops): 39714 Likewise. 39715 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS, 39716 CONSTRAINT_OK_FOR_S): Likewise. 39717 * config/ip2k/ip2k.c (mdr_resequence_xy_yx, 39718 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref, 39719 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p, 39720 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator): 39721 Likewise. 39722 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p, 39723 eqne_comparison_operator, signed_comparison_operator): 39724 Likewise. 39725 * config/mips/mips.c (cmp_op, symbolic_expression_p): 39726 Likewise. 39727 * config/mmix/mmix (mmix_foldable_comparison_operator, 39728 mmix_comparison_operator): Likewise. 39729 * config/pa/pa.c (hppa_legitimize_address): Likewise. 39730 * config/rs6000/rs6000.c (stmw_operation, 39731 branch_comparison_operator, trap_comparison_operator, 39732 ccr_bit): Likewise. 39733 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise. 39734 * config/s390/s390.c (s390_alc_comparison, 39735 s390_slb_comparison):L Likewise. 39736 * config/sh/sh.c (gen_block_redirect, reg_unused_after): 39737 Likewise. 39738 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator, 39739 noov_compare_op, noov_compare64_op, v9_regcmp_op, 39740 emit_hard_tfmode_operation, reg_unused_after) 39741 * doc/md.texi, doc/rtl.texi: Likewise. 39742 39743 * ra-debug.c: Add 2004 to list of copyright years. 39744 * unroll.c: Likewise. 39745 39746 * combine.c (simplify_logical): Remove dummy test, 39747 (apply_distributive_law): Fix typo in comment. 39748 GET_CODE (x) == AND so x is a commutative binary op. 39749 * jump.c (delete_related_insns): simplify loop 39750 condition, move testing of RTX codes inside the loop. 39751 (rtx_renumbered_equal_p): do not use RTX_CODE. 39752 * rtl.c (rtx_class): Declare as enum rtx_class. 39753 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED): 39754 Move to RTX_COMM_COMPARE class. 39755 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE): 39756 Move to RTX_CONST_OBJ class. 39757 * rtl.h (enum rtx_class): New declaration, 39758 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK, 39759 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT, 39760 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK, 39761 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT, 39762 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P, 39763 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P, 39764 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P, 39765 OBJECT_P): New macros. 39766 * config/sparc/sparc.c (noov_compare_op): Remove register 39767 from parameter. 39768 397692004-03-03 Kazu Hirata <kazu@cs.umass.edu> 39770 39771 * target.h: Remove texi jargons in comments. 39772 397732004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39774 39775 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the 39776 threshold to 0x4f. 39777 39778 Revert: 39779 2004-02-27 Kazu Hirata <kazu@cs.umass.edu> 39780 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 39781 as well. 39782 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. 39783 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. 39784 397852004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39786 39787 * doc/md.texi (cbranchmode4): New. 39788 397892004-03-02 Eric Christopher <echristo@redhat.com> 39790 39791 * config/mips/mips16.S: Change fixsfsi and fixdfsi to 39792 fix_trunc. 39793 * config/mips/mips.c (mips_init_libfuncs): Change accordingly. 39794 * config/mips/t-elf (LIB1ASMFUNCS): Ditto. 39795 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto. 39796 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto. 39797 397982004-03-02 Richard Henderson <rth@redhat.com> 39799 39800 PR middle-end/11767 39801 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P. 39802 * optabs.c (prepare_cmp_insn): Force trapping memories to registers 39803 before the compare, if flag_non_call_exceptions. 39804 398052004-03-02 Richard Henderson <rth@redhat.com> 39806 39807 PR middle-end/14327 39808 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before 39809 emitting the label, not after. 39810 398112004-03-02 Stephane Carrez <stcarrez@nerim.fr> 39812 39813 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable. 39814 (m68hc11_mov_addr_mode): Likewise. 39815 (m68hc11_override_options): Initialize them based on target. 39816 (register_indirect_p): Allow a MEM for indirect addressing modes and 39817 use flags to control what is allowed. 39818 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for 39819 supported addressing modes. 39820 (m68hc11_register_indirect_p): Use m68hc11_addr_mode. 39821 (go_if_legitimate_address_internal): Likewise. 39822 (m68hc11_indirect_p): Likewise and check the mode. 39823 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing. 39824 398252004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39826 39827 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove. 39828 (expand_builtin_setjmp_setup): Use 39829 targetm.builtin_setjmp_frame_value instead of 39830 BUILTIN_SETJMP_FRAME_VALUE. 39831 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison. 39832 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New. 39833 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE. 39834 * target.h (gcc_target): Add builtin_setjmp_frame_value. 39835 * targhooks.c (default_builtin_setjmp_frame_value): New. 39836 * targhooks.h: Add a prototype for 39837 default_builtin_setjmp_frame_value. 39838 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to 39839 TARGET_BUILTIN_SETJMP_FRAME_VALUE. 39840 398412004-03-02 Stephane Carrez <stcarrez@nerim.fr> 39842 39843 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize 39844 sequences of moves. 39845 (add peepholes): New peepholes to optimize sequences adding small 39846 constants. 39847 (bset peepholes): New peepholes to transform an OR in a bset form 39848 (bclr peepholes): Likewise for bclr form. 39849 (cmp peepholes): New peepholes to avoid register copies when comparing. 39850 398512004-03-02 Stephane Carrez <stcarrez@nerim.fr> 39852 39853 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split 39854 to separate push from moves. 39855 ("*pushdf_internal"): Likewise. 39856 ("*pushsf_internal"): Likewise. 39857 ("*pushsi_internal"): Likewise. 39858 ("movdi_internal"): Use define_insn_and_split; non push operand. 39859 ("movdf_internal"): Likewise. 39860 ("movsf_internal"): Likewise. 39861 ("movsi_internal"): Likewise. 39862 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints 39863 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise. 39864 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise. 39865 398662004-03-02 Stephane Carrez <stcarrez@nerim.fr> 39867 39868 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split. 39869 ("cmphi_z_used", "cmpqi_z_used"): Likewise. 39870 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise. 39871 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise. 39872 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise. 39873 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise. 39874 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise. 39875 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise. 39876 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise. 39877 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise. 39878 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise. 39879 398802004-03-02 Stephane Carrez <stcarrez@nerim.fr> 39881 39882 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define. 39883 (SOFT_XY_REGNUM): Define. 39884 (cmp split): Use the above instead of hard coded numbers. 39885 (8-bit op split): No need to check the mode; allow Q_REG. 39886 (ashift split): Adjust the first operand if it uses the SP and we 39887 are pushing the shifted value. 39888 (plus shift split): Fix when a source is in register D+X. 39889 ("doloop_end"): Pass dummy arguments to gen_rtx_NE. 39890 398912004-03-02 Stephane Carrez <stcarrez@nerim.fr> 39892 39893 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when 39894 comparing with Z register. 39895 398962004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 39897 39898 * cfgloop.h (struct loop_desc): Removed. 39899 (struct loop): Fields simple, desc and has_desc removed. 39900 (simple_loop_p, count_loop_iterations): Declaration removed. 39901 * cfgloopanal.c (struct unmark_altered_insn_data): Removed. 39902 (unmark_altered, blocks_invariant_registers, unmark_altered_insn 39903 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper, 39904 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations, 39905 simple_loop_exit_p, variable_initial_value, variable_initial_values, 39906 simple_condition_p, simple_increment, count_strange_loop_iterations, 39907 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations): 39908 Removed. 39909 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments. 39910 399112004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39912 39913 * genattrtab.c: Don't handle MATCH_INSN. 39914 * genrecog.c: Likewise. 39915 * gensupport.c: Likewise. 39916 * rtl.def (match_insn): Remove. 39917 * doc/md.texi (match_insn, match_insn2): Remove. 39918 399192004-03-02 Mark Mitchell <mark@codesourcery.com> 39920 39921 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this 39922 macro results in memory allocation. 39923 399242004-03-02 David O'Brien <obrien@FreeBSD.org> 39925 39926 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add. 39927 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define 39928 %(fbsd_dynamic_linker), 39929 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with 39930 config/i386/freebsd.h 39931 * config/arm/freebsd.h: Ditto. 39932 * config/i386/freebsd.h: Ditto. 39933 * config/i386/freebsd64.h: Ditto. 39934 * config/ia64/freebsd.h: Ditto. 39935 * config/rs6000/sysv4.h: Ditto. 39936 * config/sparc/freebsd.h: Ditto. 39937 399382004-03-02 Loren James Rittle <ljrittle@acm.org> 39939 39940 * doc/install.texi (*-*-freebsd*): Update target information. 39941 399422004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39943 39944 * rtl.def (define_combine): Remove. 39945 399462004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39947 39948 * config/h8300/h8300.md: Tweak formatting. 39949 399502004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39951 39952 * config/h8300/h8300.md (*cmphi_h8300): Rename to 39953 *cmphi_h8300_znvc. 39954 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc. 39955 399562004-03-01 Mark Mitchell <mark@codesourcery.com> 39957 39958 PR bootstrap/14356 39959 * gcc.c (process_command): Remove const-qualification from argv. 39960 (main): Likewise. 39961 399622004-03-02 Kazu Hirata <kazu@cs.umass.edu> 39963 39964 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to 39965 pushqi1_h8300hs_advanced. Adjust its caller. 39966 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced. 39967 Adjust its caller. 39968 399692004-03-02 Nicolas Roche <roche@act-europe.fr> 39970 39971 * Makefile.in (install-libgcc, install-multilib): Pass 39972 mkinstalldirs var to libgcc.mk. 39973 399742004-03-01 Kazu Hirata <kazu@cs.umass.edu> 39975 39976 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison. 39977 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove. 39978 399792004-03-01 Kazu Hirata <kazu@cs.umass.edu> 39980 39981 * config/h8300/h8300.c (gtle_operator): Accept GT and LE. 39982 * config/h8300/h8300.md: Split several peephole2's, each into 39983 two. 39984 399852004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 39986 39987 * dominance.c (recount_dominator): Handle postdominators. 39988 399892004-03-01 Richard Sandiford <rsandifo@redhat.com> 39990 39991 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h. 39992 (NUM_SYMBOL_TYPES): Likewise. 39993 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types. 39994 (mips_unspec_address): Declare. 39995 (mips_gotoff_page, mips_gotoff_global): Delete. 39996 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand. 39997 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete. 39998 (mips_symbolic_constant_p, mips_symbolic_address_p) 39999 (mips_symbol_insns): Handle new symbol types. 40000 (general_symbolic_operand): New predicate. 40001 (mips_unspec_address): Make extern. 40002 (mips_gotoff_page, mips_gotoff_global): Delete. 40003 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs. 40004 Handle new symbol types. 40005 * config/mips/mips.md (*lea_high64, *lea64): New patterns. 40006 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call 40007 mips_unspec_address directly. 40008 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from 40009 the documentation of -mexplicit-relocs. 40010 400112004-03-01 Jeff Law <law@redhat.com> 40012 40013 * fold-const.c (fold): An equality comparison of a non-weak object 40014 against zero has a known result. Similarly an equality comparison 40015 of the address of two non-weak, unaliased symbols has a known result. 40016 40017 * ggc-page.c (struct page_entry): New field PREV. 40018 (ggc_alloc): Update PREV field appropriately. 40019 (sweep_pages): Likewise. 40020 (ggc_free): Likewise. Use PREV field rather than loop to 40021 improve ggc_free performance. 40022 400232004-03-01 Richard Sandiford <rsandifo@redhat.com> 40024 40025 * config/mips/mips.c (mips_output_division): Use the division 40026 instruction to fill the delay slot of a zero check. 40027 (mips_idiv_insns): Adjust accordingly. 40028 400292004-03-01 Nathanael Nerode <neroden@gcc.gnu.org> 40030 40031 * config.gcc: Create a default tmake_file for linux, and use 40032 it in all but two linux clauses. Comment those two. 40033 400342004-03-01 Paolo Bonzini <bonzini@gnu.org> 40035 40036 * combine.c (try_combine): Do not refer to is_replaced. 40037 (gen_lowpart_for_combine): Perverse subregs now have a 40038 more politically correct name. 40039 * cse.c (cse_insn): Likewise. 40040 * jump.c: Fix bogus reference to delete_insn. 40041 400422004-02-29 Mark Mitchell <mark@codesourcery.com> 40043 40044 PR debug/14328 40045 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration 40046 constants as signed values. 40047 40048 PR middle-end/13448 40049 * c-tree.h (readonly_warning): Rename to ... 40050 (readonly_error): ... this. 40051 * c-typeck.c (build_unary_op): Adjust accordingly. 40052 (readonly_warning): Rename to ... 40053 (readonly_error): ... this and issue errors, not warnings. 40054 (build_modify_expr): Call readonly_error, not readonly_warning. 40055 (c_expand_asm_operands): Likewise. 40056 * tree-inline.c (optimize_inline_calls): Do not inline functions 40057 after errors have occurred. 40058 400592004-02-29 Nathanael Nerode <neroden@gcc.gnu.org> 40060 40061 * configure.ac: Rearrange some threading code for clarity; 40062 add section comment. 40063 * configure: Regenerate. 40064 400652004-02-29 Kazu Hirata <kazu@cs.umass.edu> 40066 40067 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment 40068 typos. 40069 * doc/cppopts.texi: Fix a typo. 40070 400712004-02-29 Kazu Hirata <kazu@cs.umass.edu> 40072 40073 * config/i386/i386.md: Fix formatting. 40074 400752004-02-29 Nathanael Nerode <neroden@gcc.gnu.org> 40076 40077 * configure.ac: Add some comments delineating sections of code. 40078 40079 * doc/install.texi: Note that libada uses autoconf 2.57 also. 40080 40081 * doc/install.texi: Fix idiot typo in previous commit. 40082 40083 * doc/install.texi: Update for conversion of intl to autoconf 2.57. 40084 400852004-02-29 Kazu Hirata <kazu@cs.umass.edu> 40086 40087 * config/h8300/h8300.md: Add comments about peephole2's. 40088 400892004-02-29 Kazu Hirata <kazu@cs.umass.edu> 40090 40091 * config/h8300/h8300.md: Tweak operand numbers of some 40092 peephole2's. 40093 400942004-02-29 Kazu Hirata <kazu@cs.umass.edu> 40095 40096 * config/h8300/h8300.md: Tweak comments about peephole2's. 40097 400982004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl> 40099 40100 PR middle-end/14203 40101 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P 40102 instead of testing whether DECL_RTL is not NULL. 40103 401042004-02-28 Kazu Hirata <kazu@cs.umass.edu> 40105 40106 * config/sh/sh.c: Fix formatting. 40107 401082004-02-28 Kazu Hirata <kazu@cs.umass.edu> 40109 40110 * config/sh/sh.c: Convert to ISO-C. 40111 401122004-02-28 Andrew Pinski <pinskia@physics.uc.edu> 40113 40114 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in 40115 my previous patch. 40116 40117 * config/darwin.h (machopic_finish): Output stub even if the 40118 symbol is already defined. 40119 401202004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 40121 40122 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg. 40123 401242004-02-28 Kazu Hirata <kazu@cs.umass.edu> 40125 40126 * genattr.c (main): Don't define 40127 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE. 40128 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison. 40129 (DFA_PIPELINE_INTERFACE): Likewise. 40130 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove. 40131 (DFA_PIPELINE_INTERFACE): Likewise. 40132 401332004-02-28 Richard Sandiford <rsandifo@redhat.com> 40134 40135 * config/mips/mips.md (tstsi, tstdi): Delete. 40136 401372004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 40138 40139 * config/mips/mips.c (override_options): Remove an obsolete 40140 duplicate definition of the "e" constraint. 40141 * config/mips/mips.h: Update a comment accordingly. 40142 401432004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 40144 40145 * config/mips/mips.md: Complete the unfinished R4000 40146 multiply/shift errata workaround. Improve documentation. 40147 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction 40148 has a hilo hazard. 40149 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000. 40150 (muldi3, muldi3_internal): Likewise. 40151 (muldi3_internal2): Remove, replacing with... 40152 (muldi3_mult3, muldi3_r4000): ...these new patterns. 40153 (mulsidi3): Take the errata into account. 40154 (mulsidi3_32bit): Remove, replacing with... 40155 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns. 40156 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000. 40157 (umulsidi3): Take the errata into account. 40158 (umulsidi3_32bit): Remove, replacing with.. 40159 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns. 40160 (umulsi3_highpart, umulsi3_highpart_internal): Disable if 40161 TARGET_FIX_R4000. 40162 (smulsi3_highpart, smulsi3_highpart_internal): Likewise. 40163 (smuldi3_highpart, umuldi3_highpart): Likewise. 40164 * doc/invoke.texi: Document the errata workaround. 40165 401662004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 40167 40168 * config/mips/mips-protos.h (mips_idiv_insns): Declare. 40169 * config/mips/mips.h (MASK_FIX_SB1): Bump. 40170 (MASK_FIX_R4000, TARGET_FIX_R4000): New macros. 40171 (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000. 40172 * config/mips/mips.c (mips_idiv_insns): New function. 40173 (override_options): Make -march=r4000 imply -mfix-r4000 by default. 40174 (mips_output_division): Add a workaround for the R4000 divide/shift 40175 errata. 40176 * config/mips/mips.md (length): Use mips_idiv_insns() to calculate 40177 the length of an "idiv" instruction. 40178 * doc/invoke.texi: Document the new switches. 40179 401802004-02-28 Kazu Hirata <kazu@cs.umass.edu> 40181 40182 * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to 40183 TARGET_SCHED_IS_COSTLY_DEPENDENCE. 40184 401852004-02-28 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 40186 40187 PR optimization/14229 40188 * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump. 40189 401902004-02-28 Eric Botcazou <ebotcazou@act-europe.fr> 40191 40192 * fold-const.c (fold): Strip NOPs that change the signedness 40193 for RSHIFT too. Expand comment. 40194 401952004-02-27 Ian Lance Taylor <ian@wasabisystems.com> 40196 40197 PR optimization/7871 40198 * flow.c (mark_set_1): Don't add LOG_LINKS for global registers 40199 from or to call insns. 40200 402012004-02-27 Eric Botcazou <ebotcazou@libertysurf.fr> 40202 40203 PR optimization/7871 40204 * flow.c (propagate_one_insn): Interpret calls as setting global 40205 registers, not merely clobbering them. 40206 402072004-02-27 Dale Johannesen <dalej@apple.com> 40208 40209 * config/darwin.c (machopic_output_possible_stub_label): Remove. 40210 config/darwin-protos.h: Ditto. 40211 config/darwin.h: Remove call to it. 40212 * combine.c (distribute_notes): Do not place a REG_DEAD note 40213 when value is both set and used. 40214 402152004-02-27 Kazu Hirata <kazu@cs.umass.edu> 40216 40217 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300 40218 as well. 40219 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove. 40220 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm. 40221 402222004-02-27 Andrew Pinski <apinski@apple.com> 40223 40224 * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>: 40225 Speedup common case of the type values being in the same order. 40226 402272004-02-27 Steve Ellcey <sje@cup.hp.com> 40228 40229 * config/ia64/ia64.h (no-inline-float-divide): New option. 40230 * config/ia64/ia64.h (no-inline-int-divide): New option. 40231 * config/ia64/ia64.h (no-inline-sqrt): New option. 40232 (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define. 40233 * config/ia64/hpux.h (TARGET_DEFAULT): Ditto. 40234 * config/ia64/ia64.c (ia64_override_options): Modify error 40235 checking for inlined division/sqrt. 40236 402372004-02-27 Kazu Hirata <kazu@cs.umass.edu> 40238 40239 * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c, 40240 ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c, 40241 value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h, 40242 config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update 40243 copyright. 40244 402452004-02-27 Paul Brook <paul@codesourcery.com> 40246 40247 * function.c (assign_parms): Don't count pretend args for alignment. 40248 402492004-02-27 Richard Henderson <rth@redhat.com> 40250 40251 * passes.c: New file. 40252 * Makefile.in (OBJS-common): Add it. 40253 * diagnostic.c (rtl_dump_and_exit): Move decl ... 40254 * flags.h (rtl_dump_and_exit): ... here. 40255 * output.h (size_directive_output, last_assemble_variable_decl): 40256 Move from toplev.c. 40257 * rtl.h (reg_alloc): Move from toplev.c. 40258 * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT, 40259 struct dump_file_info, enum dump_file_index, dump_file_tbl, 40260 open_dump_file, close_dump_file, rest_of_decl_compilation, 40261 rest_of_type_compilation, rest_of_handle_final, 40262 rest_of_handle_delay_slots, rest_of_handle_stack_regs, 40263 rest_of_handle_variable_tracking, rest_of_handle_machine_reorg, 40264 rest_of_handle_new_regalloc, rest_of_handle_old_regalloc, 40265 rest_of_handle_regrename, rest_of_handle_reorder_blocks, 40266 rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove, 40267 rest_of_handle_tracer, rest_of_handle_if_conversion, 40268 rest_of_handle_if_after_combine, rest_of_handle_web, 40269 rest_of_handle_branch_prob, 40270 rest_of_handle_value_profile_transformations, rest_of_handle_cfg, 40271 rest_of_handle_addressof, rest_of_handle_sibling_calls, 40272 rest_of_handle_jump_bypass, rest_of_handle_inlining, 40273 rest_of_handle_null_pointer, rest_of_handle_combine, 40274 rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2, 40275 rest_of_handle_gcse, rest_of_handle_loop_optimize, 40276 rest_of_handle_loop2, rest_of_compilation): Move to passes.c. 40277 (decode_d_option): Use enable_rtl_dump_file. 40278 (compile_file, finalize, do_compile): Move profile+combine+graph 40279 cleanup to finish_optimization_passes. 40280 * toplev.h (init_optimization_passes, finish_optimization_passes, 40281 enable_rtl_dump_file): Declare. 40282 402832004-02-27 Eric Botcazou <ebotcazou@act-europe.fr> 40284 Roger Sayle <roger@eyesopen.com> 40285 40286 * fold-const.c (fold): Revert 2004-02-25 change. Use the original 40287 operands to build a tree with swapped operands. 40288 * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the 40289 'unsignedp' predicate to specify the signedness. 40290 402912004-02-27 Kazu Hirata <kazu@cs.umass.edu> 40292 40293 * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c, 40294 expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c, 40295 params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix 40296 comment typos and formatting. Follow spelling conventions. 40297 402982004-02-26 Aldy Hernandez <aldyh@redhat.com> 40299 40300 * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and 40301 fix_truncsfsi2. 40302 40303 * config/rs6000/spe.md: Delete spe_efsctuiz. 40304 Add spe_fixuns_truncsfsi2. 40305 Add spe_fix_truncsfsi2. 40306 403072004-02-26 Eric Christopher <echristo@redhat.com> 40308 40309 * c-lex.c (c_lex_string_translate): New variable. 40310 (lex_string): Use to determine string translation. 40311 * c-pragma.h: Prototype. 40312 * c-parse.in (start_string_translation): New. Set above. 40313 (stop_string_translation): Ditto. 40314 (attribute, attribute_list, asm_def, asm_stmt, 40315 asm_operand): Use above functions. 40316 * cp/parser.c (cp_parser_declaration): Translate strings 40317 unless token is RID_EXTERN. Set c_lex_string_translate 40318 for recursive use. 40319 (cp_parser_asm_definition): Only translate argument strings 40320 to asms. 40321 (cp_parser_asm_operand_list): Ditto. 40322 (cp_parser_attribute_list): Do not translate attribute strings. 40323 403242004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40325 40326 * stmt.c (expand_start_case_dummy): Remove. 40327 * tree.h: Remove the corresponding prototype. 40328 403292004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40330 40331 * builtins.c (apply_args_register_offset): Remove. 40332 * tree.h: Remove the corresponding prototype. 40333 403342004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40335 40336 * stor-layout.c (is_pending_size): Remove. 40337 * tree.h: Remove the corresponding prototype. 40338 403392004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40340 40341 * recog.c (validate_replace_src): Remove. 40342 * recog.h: Remove the corresponding prototype. 40343 403442004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40345 40346 * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or 40347 MAYBE_REG_PARM_STACK_SPACE. 40348 * function.c: Likewise. 40349 * system.h (FINAL_REG_PARM_STACK_SPACE): Poison. 40350 (MAYBE_REG_PARM_STACK_SPACE): Likewise. 40351 * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove. 40352 (MAYBE_REG_PARM_STACK_SPACE): Likewise. 40353 403542004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40355 40356 * c-decl.c (c_expand_deferred_function): Remove. 40357 * c-tree.h: Remove the corresponding prototype. 40358 403592004-02-26 Kazu Hirata <kazu@cs.umass.edu> 40360 40361 * postreload.c (reload_cse_move2add): Generate just a PLUS 40362 instead of an entire SET. 40363 403642004-02-26 Jan Hubicka <jh@suse.cz> 40365 40366 * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m 40367 /pentium4m. 40368 * i386.c (override_options): Add support for new CPUs. 40369 * i386.h (TARGET_CPU_DEFAULT_NAMES): New names. 40370 (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New 40371 constants. 40372 * invoke.texi: Extend documentation of -mtune/-march for new CPUs. 40373 403742004-02-26 Bob Wilson <bob.wilson@acm.org> 40375 40376 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__. 40377 403782004-02-26 Eric Botcazou <ebotcazou@act-europe.fr> 40379 40380 * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'. 40381 (sparc_emit_fixunsdi): New prototype. 40382 * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument. 40383 (sparc_emit_fixunsdi): New function. 40384 * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for 40385 operand 1. Pass SFmode to sparc_emit_floatunsdi. 40386 (floatunsdidf2): Use 'general_operand' for operand 1. Pass DFmode 40387 to sparc_emit_floatunsdi. 40388 (fixuns_truncsfdi2): New expander. 40389 (fixuns_truncdfdi2): Likewise. 40390 403912004-02-26 Alan Modra <amodra@bigpond.net.au> 40392 40393 * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter 40394 unless HAVE_cc0. 40395 403962004-02-25 Richard Henderson <rth@redhat.com> 40397 40398 * explow.c (force_reg): Call mark_reg_pointer as appropriate. 40399 * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't 40400 use (op0-op1) == 0 if op0 is a pointer. 40401 * config/alpha/alpha.md (cmpdi): Use some_operand. 40402 (three comparison combine splits): Remove. 40403 404042004-02-25 Richard Henderson <rth@redhat.com> 40405 40406 PR c/12794 40407 * c-common.c (handle_alias_attribute): Reject the attribute if 40408 current_function_decl is set. 40409 404102004-02-25 Kelley Cook <kcook@gcc.gnu.org> 40411 40412 * config.gcc: Add comment describing extra_gcc_objs. 40413 i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs. 40414 * configure.ac (extra_gcc_objs): New substitution variable. 40415 (host_extra_gcc_objs): Don't substitute. 40416 * configure: Regenerate. 40417 * Makefile.in: Use extra_gcc_objs. 40418 404192004-02-25 Kelley Cook <kcook@gcc.gnu.org> 40420 40421 * doc/contrib.texi: Add an entry for myself. 40422 404232004-02-25 Jan Hubicka <jh@suse.cz> 40424 40425 * basic-block.h (make_eh_edge, break_superblocks): Declare. 40426 * cfgbuild.c (make_eh_edge): Make global. 40427 * cfglayout.c (break_superblocks): Likewise; fix memory leak. 40428 * except.c (build_post_landing_pads, connect_post_landing_pads, 40429 dw2_build_landing_pads, sjlj_emit_function_enter, 40430 sjlj_emit_function_exit, sjlj_emit_dispatch_table, 40431 sjlj_build_landing_pads): Update CFG. 40432 (emit_to_new_bb_before): New function. 40433 (finish_eh_generation): Do not rebuild the CFG. 40434 404352004-02-25 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 40436 40437 * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all 40438 target_cpu_default defines. 40439 * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define. 40440 * pa.h (TARGET_DEFAULT): Likewise. 40441 404422004-02-25 Eric Botcazou <ebotcazou@act-europe.fr> 40443 40444 * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like 40445 comparisons with regard to signedness. 40446 404472004-02-25 Richard Earnshaw <rearnsha@arm.com> 40448 40449 * arm.c (thumb_legitimize_address): New function. 40450 * arm-protos.h: Prototype it. 40451 * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define. 40452 (LEGITIMIZE_ADDRESS): Use it. 40453 404542004-02-25 J"orn Rennecke <joern.rennecke@superh.com> 40455 40456 * reload1.c (reload): Only spill eliminable register with multiple 40457 adjacent elimination alternatives if all alternatives fail. 40458 404592004-02-25 Richard Earnshaw <rearnsha@arm.com> 40460 40461 * arm.c (arm_legitimate_index_p): For QImode the range of an offset 40462 is -4095...+4095 inclusive. 40463 404642004-02-25 Eric Botcazou <ebotcazou@libertysurf.fr> 40465 40466 * doc/install.texi (sparc-sun-solaris2* specific notes): Document 40467 the bootstrap failure with Sun CC 5.4 and 5.5. 40468 404692004-02-24 Kazu Hirata <kazu@cs.umass.edu> 40470 40471 * cse.c (cse_change_cc_mode_insns): Stop at any instruction 40472 which modifies NEWREG. 40473 (cse_condition_code_reg): Update the mode of CC_REG in 40474 CC_SRC_INSN on our own. 40475 404762004-02-24 Michael Matz <matz@suse.de> 40477 40478 * config/i386/i386.c (ix86_comp_type_attributes): Check for 40479 regparm attributes. 40480 404812004-02-24 Richard Henderson <rth@redhat.com> 40482 40483 * toplev.c (dump_file_tbl): Rename from dump_file. 40484 * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c, 40485 cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c, 40486 config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c, 40487 config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c, 40488 loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c, 40489 ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c, 40490 toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c: 40491 s/rtl_dump_file/dump_file/g. 40492 404932004-02-24 Aldy Hernandez <aldyh@redhat.com> 40494 40495 * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete. 40496 (spe_fixuns_truncsfsi2): Delete. 40497 40498 * config/rs6000/rs6000.md (fix_truncsfsi2): Delete. 40499 (fixuns_truncsfsi2): Delete. 40500 405012004-02-24 Josef Zlomek <zlomekj@suse.cz> 40502 40503 PR/14240 40504 * rtlanal.c (replace_label): Fix replacing labels in constant pool. 40505 405062004-02-24 Geoffrey Keating <geoffk@apple.com> 40507 40508 * config/darwin.h (TARGET_HAS_F_SETLKW): Define. 40509 405102004-02-24 Jason Merrill <jason@redhat.com> 40511 40512 * tree.c (check_qualified_type): New fn. 40513 (get_qualified_type): Use it. If type already has the desired 40514 quals, just return it. 40515 * tree.h: Declare it. 40516 405172004-02-24 Sanjiv Kumar Gupta <sanjivg@noida.hcltech.com> 40518 40519 * target-def.h (TARGET_SCHED_INIT_GLOBAL, 40520 TARGET_SCHED_FINISH_GLOBAL): New macros. 40521 40522 * target.h (md_init_global, md_finish_global): Function 40523 declarations corresponding to new target macros. 40524 40525 * haifa-sched.c (sched_init, sched_finish): Allow target to 40526 call the new schedular hooks. 40527 40528 * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in 40529 call to update_life_info. 40530 40531 * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable 40532 flag_schedule_insns for SH4. 40533 40534 * config/sh/sh.c (sh_md_init_global, sh_md_finish_global, 40535 find_set_regmode_weight, find_insn_regmode_weight, 40536 find_regmode_weight), sh_md_init, sh_dfa_new_cycle, 40537 sh_variable_issue, high_pressure, ready_reorder, 40538 rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New 40539 functions used to throttle the insn movement in first 40540 scheduling pass for SH. 40541 40542 * doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and 40543 TARGET_SCHED_FINISH_GLOBAL. 40544 405452004-02-24 Alexandre Oliva <aoliva@redhat.com> 40546 40547 Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux. 40548 2004-02-05 Alexandre Oliva <aoliva@redhat.com> 40549 * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for 40550 symbols in sections named by the user. 40551 2004-01-30 Alexandre Oliva <aoliva@redhat.com> 40552 * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New. 40553 2004-01-27 Alexandre Oliva <aoliva@redhat.com> 40554 * config.gcc (frv-*-*linux*): Handle like *-*-linux*. 40555 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by 40556 the above. 40557 2004-01-20 Alexandre Oliva <aoliva@redhat.com> 40558 * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add 40559 one more pseudo to further improve code generation. 40560 2004-01-19 Alexandre Oliva <aoliva@redhat.com> 40561 * config/frv/frv.md (movdi_ldd): Introduce explicit indirection 40562 inside UNSPEC. 40563 2004-01-16 Alexandre Oliva <aoliva@redhat.com> 40564 * config/frv/frv.c (frv_legitimate_address_p): Added 40565 allow_double_reg_p argument. Adjust all callers. Use it to 40566 decide whether to enable double-register indirect addressing. 40567 (frv_funcdesc_alias_set): Remove. 40568 (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into 40569 register. Emit movdi_ldd. 40570 (ldd_address_operand): New. 40571 * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust. 40572 * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise. 40573 (PREDICATE_CODES): Add ldd_address_operand. 40574 * config/frv/frv.md (movdi_ldd): New. 40575 (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for 40576 intermediate computations if possible. 40577 (symGOTOFF2reg_i): Fix harmless typo. 40578 2003-12-18 Alexandre Oliva <aoliva@redhat.com> 40579 * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast 40580 relocated p_vaddr to vaddr type. 40581 * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void. 40582 * config/frv/frv.c (frv_get_funcdesc_alias_set): New. 40583 (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc 40584 MEM, or use a funcdesc alias set. Use regular move instead of 40585 ldd. 40586 (dbl_memory_one_insn_operand): Recognize function descriptors by 40587 type or by alias set, and don't split them. 40588 * config/frv/frv.md (call, call_value): Never use call_internal 40589 for fdpic. 40590 (call_internal, call_value_internal): Never match for FDPIC. 40591 (call_fdpicdi, call_fdpicsi, call_value_fdpicdi, 40592 call_value_fdpicsi): Require FDPIC. 40593 (ldd): Removed. 40594 2003-12-17 Alexandre Oliva <aoliva@redhat.com> 40595 * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__. 40596 * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more. 40597 (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV 40598 FDPIC. Compute data base address. 40599 * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic 40600 before the other self-specs are processed. 40601 * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS): 40602 Build with -fPIC. 40603 2003-12-15 Alexandre Oliva <aoliva@redhat.com> 40604 * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if 40605 inhibit_libc is defined. 40606 2003-12-12 Alexandre Oliva <aoliva@redhat.com> 40607 * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for 40608 __FRV_FDPIC__. 40609 (__RELOC_POINTER): Define. 40610 (_Unwind_IteratePhdrCallback): Use it. 40611 * config/frv/frv.h (Twrite): Define. 40612 (TRANSFER_FROM_TRAMPOLINE): Use it. 40613 * config/frv/linux.h (INVOKE__main): Undefine. 40614 (Twrite): Override. 40615 2003-12-05 Richard Sandiford <rsandifo@redhat.com> 40616 * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options. 40617 (-mlibrary-pic): Emphasize that this option generates EABI code. 40618 (-mcpu): Add fr550. 40619 (-mpack): Remove. 40620 2003-11-30 Alexandre Oliva <aoliva@redhat.com> 40621 * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs 40622 and CONSTs in FDPIC mode. 40623 * config.gcc (with_cpu): Default to fr400 on frv-*-*linux*. 40624 2003-11-29 Richard Sandiford <rsandifo@redhat.com> 40625 * config/frv/frv.c (move_source_operand): Don't accept symbolic 40626 constants. 40627 * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n' 40628 rather than 'i' constraint for the 2-instruction alternative. 40629 (*movsi_2word): New, incorporating existing int_2word_operand splitter. 40630 2003-11-29 Richard Sandiford <rsandifo@redhat.com> 40631 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from 40632 EXTRA_CONSTRAINT_FOR_Y. 40633 (EXTRA_CONSTRAINT): Remove handling of 'Y'. 40634 * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint. 40635 (addsi3): Change 'Y' constraint to 'Q'. 40636 2003-11-27 Richard Sandiford <rsandifo@redhat.com> 40637 * reload.c (CONST_POOL_OK_P): New macro. 40638 (find_reloads): Use it to decide whether a constant can be forced 40639 into memory. 40640 * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the 40641 constant satisfies got12_operand. 40642 (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC. 40643 (frv_legitimate_address_p): Check for valid unspec offsets using 40644 got12_operand rather than frv_legitimate_fdpic_operand_p. 40645 (frv_legitimate_fdpic_operand_p): Delete. 40646 (frv_emit_movsi): Abort if we try to use the FDPIC register during 40647 or after reload. 40648 (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if 40649 TARGET_FDPIC. 40650 * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE. 40651 2003-11-19 Richard Sandiford <rsandifo@redhat.com> 40652 * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand) 40653 (frv_fdpic_fptr_operand): Don't declare here. 40654 * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand 40655 rather than fdpic_got12_operand. 40656 (PREDICATE_CODES): Remove symbolic_operand entry. Add entries for 40657 got12_operand and const_unspec_operand. 40658 * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand. 40659 (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls. 40660 (symbolic_operand): Remove. 40661 (const_unspec_operand): New predicate. 40662 * config/frv/frv.md (*movsi_got): Use got12_operand. 40663 (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand. 40664 2003-11-18 Richard Sandiford <rsandifo@redhat.com> 40665 * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove. 40666 * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition. 40667 * config/frv/frv.c (frv_unspec): New structure. 40668 (frv_small_data_reloc_p, frv_const_unspec_p): New functions. 40669 (frv_print_operand_memory_reference): Use frv_const_unspec_p to 40670 validate CONST indices. Use frv_output_const_unspec to print them. 40671 (frv_print_operand): Update call to unspec_got_name. Use 40672 frv_output_const_unspec to print constant unspecs. 40673 (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p. 40674 Reject UNSPECs otherwise. 40675 (unspec_got_name): Take the relocation number as argument, not an 40676 rtx containing it. 40677 (frv_output_addr_const_extra): Remove, replacing with... 40678 (frv_output_const_unspec): ...this new function. 40679 (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p. 40680 (gpr_or_int12_operand): Use fdpic_got12_operand. 40681 (dbl_memory_one_insn_operand): Likewise. 40682 (fdpic_got12_operand): Use frv_const_unspec_p. 40683 (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that 40684 are already legitimate. Use frv_small_data_reloc_p when deciding 40685 whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12. 40686 2003-11-18 Alexandre Oliva <aoliva@redhat.com> 40687 * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export... 40688 * config/frv/libgcc-frv.ver: ... frv-specific symbols. New file. 40689 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local 40690 label, for real this time. 40691 * config/frv/frv.c (frv_local_funcdesc_p): Update to new 40692 representation of visibility. 40693 (fdpic_got12_operand, symbolic_operand): Mark unused arguments as 40694 such. 40695 2003-11-17 Richard Sandiford <rsandifo@redhat.com> 40696 * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros. 40697 (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp. 40698 * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless 40699 it was explicitly disabled. 40700 (frv_stack_info): There is no need to save the link register in every 40701 frame unless TARGET_LINKED_FP is true. 40702 (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a 40703 frame pointer if the stack pointer might change value. 40704 (frv_return_addr_rtx): Check and process "count" argument. 40705 2003-11-14 Richard Sandiford <rsandifo@redhat.com> 40706 * config/frv/frv-protos.h (frv_legitimize_address): Remove. 40707 (frv_find_base_term): Declare. 40708 * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing. 40709 (FIND_BASE_TERM): Define. 40710 (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand, 40711 small_data_register_operand, small_data_symbolic_operand. Add 40712 symbolic_operand. 40713 * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete. 40714 (frv_print_operand_memory_reference, output_move_single): Remove 40715 special handling for unlegitimized sdata addresses. 40716 (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG 40717 and symbolic addresses. 40718 (frv_legitimize_address, frv_legitimize_fdpic_address): Delete. 40719 (frv_find_base_term): New function. 40720 (int_2word_operand): Check specifically for symbolic address constants. 40721 (pic_register_operand, pic_symbolic_operand): Delete. 40722 (small_data_register_operand, small_data_symbolic_operand): Delete. 40723 (dbl_memory_one_insn_operand): Don't call plus_small_data_p. 40724 Allow UNSPEC_GOT constants if !TARGET_FDPIC. 40725 (move_source_operand): Only accept CONSTs if they're a two-insn 40726 symbolic constant. 40727 (fdpic_got12_operand): Don't require TARGET_FDPIC. 40728 (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses 40729 using gen_symGOTOFF2reg*. 40730 (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases. 40731 (frv_rtx_costs): Give all MEM addresses a cost of 0. Give MEMs 40732 themselves a cost of 3 insns. 40733 * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too. 40734 Change predicate to symbolic_operand. 40735 (*movsi_high_got, *movsi_lo_sum_got): Likewise. 40736 (*movsi_lda_sdata): Delete. 40737 (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete. 40738 2003-11-05 Alexandre Oliva <aoliva@redhat.com> 40739 * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for 40740 frv-*-*linux*. 40741 * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local 40742 label. 40743 * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before 40744 -multilib-library-pic. 40745 (LINK_SPEC): Add -z text for -mfdpic. 40746 * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC. 40747 * config/frv/frvend.c (__ROFIXUP_END__): Likewise. 40748 * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC): 40749 Override. 40750 (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP, 40751 FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define. 40752 * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use 40753 crtstuff-generated files. 40754 2003-10-31 Alexandre Oliva <aoliva@redhat.com> 40755 * config.gcc: Add frv-*-*linux*. 40756 * config/frv/linux.h, config/frv/t-linux: New. 40757 2003-10-06 Alexandre Oliva <aoliva@redhat.com> 40758 * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker 40759 when -mfdpic even if a linker script is explicitly listed. 40760 2003-10-02 Alexandre Oliva <aoliva@redhat.com> 40761 * config/frv/frv.c (frv_override_options): Clear asm_out 40762 unaligned_op for SImode on FDPIC. 40763 (frv_emit_movsi): Use compute_reloc_for_constant to compute the 40764 argument passed to decl_readonly_section. 40765 (frv_assemble_integer): Revert 2003-09-30's change, but make the 40766 whole block run with FDPIC even with -fno-PIC. 40767 2003-10-02 Alexandre Oliva <aoliva@redhat.com> 40768 * config/frv/frv.c (frv_cannot_force_const_mem): Don't force 40769 symbol or label plus offset to memory. 40770 (frv_emit_movsi): Emit GPREL only if -mgprel-ro. Emit 32-bit 40771 GOTOFF and GPREL for LABEL_REF. 40772 * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with 40773 -mfdpic unless -mno-gprel-ro, -fpic or -fpie. 40774 (MASK_GPREL_RO, TARGET_GPREL_RO): New. 40775 (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro. 40776 * doc/invoke.texi: Document them. 40777 2003-09-30 Alexandre Oliva <aoliva@redhat.com> 40778 * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare. 40779 (frv_splittable_got_operand): Removed. 40780 * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and 40781 LO_SUM. Add comments. 40782 (frv_override_options): Moved enabling of FDPIC to 40783 DRIVER_SELF_SPECS. Don't enable MASK_DWORD. 40784 (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie. 40785 (frv_legitimize_fdpic_address): Don't duplicate logic in 40786 frv_emit_movsi. 40787 (frv_gen_GPsym2reg): New. 40788 (unspec_got_name): Added gprel. 40789 (frv_expand_fdpic_call): Add support for inlining PLTs. 40790 (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand. 40791 (gpr_or_int12_operand): Added GPREL12. 40792 (pic_symbolic_operand): Match even if !flag_pic for FDPIC. 40793 (small_data_symbolic_operand): Fail if FDPIC. 40794 (fdpic_splittable_got_operand): Removed. 40795 (fdpic_got12_operand): Added GPREL12. 40796 (frv_emit_movsi): Reorganize to avoid duplication. Emit GPREL 40797 when appropriate. Fix sdata GOTOFF. 40798 (frv_legitimate_constant_p): Require legitimate PIC operand for 40799 FDPIC with pic, but only a legitimate fdpic operand for non-pic. 40800 (frv_assemble_integer): Move FDPIC funcdesc handling out of 40801 flag_pic case. 40802 (frv_asm_out_constructor, frv_asm_out_destructor): Abort if 40803 frv_assemble_integer fails. 40804 * config/frv/frv.h (DRIVER_SELF_SPECS): New. 40805 (SUBTARGET_DRIVER_SELF_SPECS): New. 40806 (ASM_SPEC): Don't pass -mno-fdpic. 40807 (LINK_SPEC): Pass -melf32frvfd for FDPIC. 40808 (MASK_INLINE_PLT, TARGET_INLINE_PLT): New. 40809 (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and 40810 -multilib-library-pic. 40811 (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand, 40812 condexec_si_media_operator, condexec_sf_add_operator and 40813 condexec_sf_conv_operator. Removed condexec_sf_binary_operator 40814 and condexec_sf_unary_operator. 40815 * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO): 40816 New. 40817 (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before 40818 movsi_internal. Give them internal names. movsi_got has type 40819 int. 40820 (fdpic got splitters): Remove. 40821 (symGPREL2reg, symGPREL2reg_hilo): New. 40822 * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC 40823 to -mlibrary-pic. Map -multilib-library-pic to it. 40824 * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic: 40825 Document. 40826 2003-09-28 Alexandre Oliva <aoliva@redhat.com> 40827 * config/frv/frv.c (frv_function_symbol_referenced_p): Declare. 40828 (TARGET_CANNOT_FORCE_CONST_MEM): Define to... 40829 (frv_cannot_force_const_mem): New function. 40830 (const_small_data_p, plus_small_data_p): Update comments on sdata 40831 on FDPIC. 40832 (frv_override_options): Set flag_pie for FDPIC too. 40833 (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed, 40834 call-saved registers on FDPIC. 40835 (frv_stack_info): Don't preserve the PIC register on FDPIC, and 40836 don't force LR to be preserved. 40837 (frv_expand_prologue): Likewise. 40838 (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic. 40839 (frv_frame_pointer_required): Don't force it just because the 40840 FDPIC register is used. 40841 (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC 40842 operand only if !condexec_p. 40843 (frv_legitimize_address): Return the FDPIC-legitimized address. 40844 Don't match small data here on FDPIC. 40845 (frv_legitimate_fdpic_operand_p): Don't accept unadorned function 40846 symbols. Use TRUE/FALSE instead of 1/0. 40847 (frv_local_funcdesc_p): New. 40848 (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit 40849 immediates when possible. 40850 (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC. 40851 (dbl_memory_one_insn_operand): Accept addresses that add a REG and 40852 an UNSPEC_GOT. 40853 (frv_emit_movsi): Handle FDPIC before small data. Use GOTOFF and 40854 12-bit immediates when possible. 40855 (frv_legitimate_constant_p): In FDPIC, reject SImode operands that 40856 are not legitimate pic operands. 40857 (frv_in_small_data_p): Re-enable for FDPIC. 40858 * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC. 40859 (FRV_GLOBAL_P): Removed. 40860 * config/frv/frv.md: Add modes to CONSTs. 40861 (movsi_got): New. 40862 (movsi_lo_sum_got): Use separate matches instead of match_dup. 40863 (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only. 40864 (fdpic splittable operations): Match on flag_pic != 1. 40865 2003-09-22 Alexandre Oliva <aoliva@redhat.com> 40866 * config/frv/frv.c (frv_asm_out_constructor, 40867 frv_asm_out_destructor): Pass to frv_assemble_integer the size in 40868 bytes, not bits. 40869 2003-09-19 Alexandre Oliva <aoliva@redhat.com> 40870 * config/frv/frv.c (frv_assemble_integer): Reject complex 40871 expressions referencing function SYMBOL_REFs. 40872 * config/frv/frv.c (frv_function_symbol_referenced_p): New. 40873 (move_source_operand): Reject CONSTs that reference function 40874 SYMBOL_REFs on FDPIC. 40875 (frv_emit_movsi): If we get such a CONST, break it up. 40876 * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic. 40877 (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC. 40878 * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without 40879 MEM. 40880 (frv_assemble_integer): Don't use funcdesc for LABEL_REFs. 40881 (frv_trampoline_size): Increase for FDPIC. 40882 * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC. 40883 (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines. 40884 * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi): 40885 Disable use of GOTOFF for now. 40886 (const_small_data_p, plus_small_data_p, frv_in_small_data_p): 40887 Disable use of small data in FDPIC for now. 40888 (frv_asm_output_mi_thunk): Implement for FDPIC. 40889 * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC. 40890 * config/frv/frv.c (frv_asm_out_constructor): Use 40891 frv_assemble_integer for FDPIC pointers. 40892 (frv_asm_out_destructor): Likewise. 40893 * config/frv/frv.md (ldd): Fix order of operands. Use 40894 address_operand for input. 40895 2003-09-18 DJ Delorie <dj@redhat.com> 40896 * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC. 40897 (unspec_got_name): Correct typo. 40898 (frv_emit_movsi): Pre-expand splittable GOTs. 40899 (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd. 40900 * config/frv/frv.md (lddi): Fix syntax error, rename to ldd. 40901 (symGOT2reg_hilo, symGOTOFF2reg_hilo): New. 40902 * config/frv/t-frv: Add -mfdpic multilibs. 40903 * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic. 40904 (TARGET_SWITCHES): Add -mno-fdpic, fix documentation. 40905 * config/frv/frv.c (frv_override_options): -mfdpic assumes 40906 flag_pic, default to 32-bit pics, require DWORD ops. 40907 (frv_override_options): Add W and Z constraints. 40908 (frv_expand_prologue): No pic prologue for -mfdpic. 40909 (frv_asm_output_mi_thunk): Support -mfdpic (soon). 40910 (frv_print_operand_memory_reference): Handle GOT constants. 40911 (frv_legitimate_address_p): Allow GOT constants. 40912 (frv_legitimize_address): Handle GOT addresses too. 40913 (frv_legitimate_fdpic_operand_p): New. 40914 (frv_legitimize_fdpic_address): New. 40915 (unspec_got_name): New. 40916 (frv_output_addr_const_extra): New. 40917 (frv_expand_fdpic_call): New. 40918 (frv_fdpic_fptr_operand): New. 40919 (gpr_or_int12_operand): Handle GOT operands. 40920 (int_2word_operand): Handle GOT operands. 40921 (fdpic_operand): New. 40922 (fdpic_splittable_got_operand): New. 40923 (fdpic_got12_operand): New. 40924 (frv_emit_movsi): Handle GOT operands. 40925 (frv_assemble_integer): -mfdpic doesn't use rofixups. 40926 (frv_print_operand): Support 'g' code for GOT operands. 40927 * config/frv/frv-protos.h: Add prototypes as needed. 40928 * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO, 40929 R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI, 40930 R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE, 40931 R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI, 40932 R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI, 40933 R_FRV_GOTOFFLO): New. 40934 (movsi_high_got, movsi_lo_sum_got): New. 40935 (*movsi_pic): Don't use this splitter for -mfdpic. 40936 (addsi3): Allow GOT references also. 40937 (call, call_value): Handle -mfdpic separately. 40938 (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi, 40939 call_value_fdpicsi): New. 40940 (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg, 40941 symGOTOFF2reg_i): New. 40942 * config/frv/frv.h (MASK_FDPIC): New. 40943 (TARGET_FDPIC): New. 40944 (TARGET_SWITCHES): Add -mfdpic. 40945 (FDPIC_FPTR_REGNO): New. 40946 (FDPIC_REGNO): New. 40947 (OUR_FDPIC_REG): New. 40948 (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and 40949 FDPIC_CALL_REGS. 40950 (REG_CLASS_NAMES): Likewise. 40951 (REG_CLASS_CONTENTS): Likewise. 40952 (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs. 40953 (EXTRA_CONSTRAINT): Add it here. 40954 (FRV_GLOBAL_P): New. 40955 (OUTPUT_ADDR_CONST_EXTRA): New. 40956 409572004-02-24 Kazu Hirata <kazu@cs.umass.edu> 40958 40959 * config/sparc/sparc.h: Remove commented-out definitions of 40960 TARGET_EDOM and GEN_ERRNO_RTX. 40961 409622004-02-24 Kazu Hirata <kazu@cs.umass.edu> 40963 40964 * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace 40965 df_analyse with df_analyze. 40966 409672004-02-24 Alan Modra <amodra@bigpond.net.au> 40968 40969 * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not 40970 beginning of block. 40971 409722004-02-23 James E Wilson <wilson@specifixinc.com> 40973 40974 * calls.c (precompute_arguments): Update comment. 40975 409762004-02-23 Kazu Hirata <kazu@cs.umass.edu> 40977 40978 * et-forest.c: Replace et_occurences with et_occurrences. 40979 409802004-02-23 Kazu Hirata <kazu@cs.umass.edu> 40981 40982 * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse 40983 with iv_analyze. 40984 409852004-02-23 Kelley Cook <kcook@gcc.gnu.org> 40986 40987 * config/i386/i386.c: Rename pni to sse3. 40988 * config/i386/i386.h: Likewise. 40989 * config/i386/i386.md: Likewise. 40990 * config/i386/pmmintrin.h: Likewise. 40991 * doc/extend.texi: Likewise. 40992 * doc/invoke.texi: Likewise. 40993 409942004-02-23 Zack Weinberg <zack@codesourcery.com> 40995 Kazu Hirata <kazu@cs.umass.edu> 40996 40997 Remove -fwritable-strings. 40998 * c-common.c (fix_string_type): Don't check 40999 flag_writable_strings. 41000 (fix_string_type): Likewise. 41001 * c-opts.c (set_std_c89): Don't initialize 41002 flag_writable_strings. 41003 (set_std_c99): Likewise. 41004 * common.opt (fwritable-strings): Remove. 41005 * flags.h: Remove the external declaration of 41006 flag_writable_strings. 41007 * opts.c (common_handle_option) <OPT_fwritable_strings>: 41008 Remove. 41009 * toplev.c (flag_writable_strings): Remove. 41010 (f_options): Remove an entry for writable-strings. 41011 * varasm.c (const_hash_1) <STRING_CST>: Don't check 41012 flag_writable_strings. 41013 (compare_constant) <STRING_CST>: Likewise. 41014 (build_constant_desc): Likewise. 41015 * config/darwin.c (machopic_select_section): Likewise. 41016 * config/arm/arm.c (AOF_ASSEMBLER): Likewise. 41017 * config/arm/pe.c (arm_pe_encode_section_info): Likewise. 41018 * config/iq2000/iq2000.c (iq2000_select_section): Likewise. 41019 * config/mips/mips.c (mips_select_section): Likewise. 41020 (mips_encode_section_info): Likewise. 41021 * config/pa/pa.c (pa_select_section): Likewise. 41022 * config/pa/pa.h (TEXT_SPACE_P): Likewise. 41023 * config/v850/v850.c (v850_select_section): Likewise. 41024 * doc/invoke.texi (-fwritable-strings): Remove. 41025 (-fno-const-strings): Don't mention -fwritable-strings. 41026 * doc/trouble.texi: Don't mention -fwritable-strings. 41027 410282004-02-23 Nathanael Nerode <neroden@gcc.gnu.org> 41029 41030 * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57. 41031 410322004-02-23 Dale Johannesen <dalej@apple.com> 41033 41034 * config/rs6000.md (movsf_hardfloat): Add POWER form of nop. 41035 (movdf_hardfloat64): Ditto. 41036 (movdf_softfloat64): Ditto. 41037 410382004-02-23 Fariborz Jahanian <fjahanian@apple.com> 41039 * config/rs6000/rs6000.c (function_arg): call to 41040 rs6000_mixed_function_arg for DFmode moved to allow 41041 normal DFmode incoming register assignment. 41042 410432004-02-23 Dale Johannesen <dalej@apple.com> 41044 41045 * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy. 41046 (movdf_hardfloat64): Ditto. 41047 410482004-02-23 Kazu Hirata <kazu@cs.umass.edu> 41049 41050 * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c, 41051 config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update 41052 copyright. 41053 410542004-02-23 Andrew Pinski <pinskia@physics.uc.edu> 41055 41056 PR c/14156 41057 * c-typeck.c (c_expand_return): Change check for VAR_DECL 41058 to use DECL_P instead. 41059 41060 * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define. 41061 * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define. 41062 410632004-02-23 Kazu Hirata <kazu@cs.umass.edu> 41064 41065 * Makefile.in (opts.o): Depend on target.h. 41066 * opts.c (decode_options): Use targetm.default_short_enums 41067 instead of DEFAULT_SHORT_ENUMS. 41068 * system.h (DEFAULT_SHORT_ENUMS): Poison. 41069 * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New. 41070 (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS. 41071 * target.h (gcc_target): Add default_short_enums. 41072 * config/cris/cris.h: Remove a comment about 41073 DEFAULT_SHORT_ENUMS. 41074 * config/ip2k/ip2k.h: Likewise. 41075 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to 41076 TARGET_DEFAULT_SHORT_ENUMS. Update the description. 41077 410782004-02-23 Eric Botcazou <ebotcazou@libertysurf.fr> 41079 Falk Hueffner <falk@debian.org> 41080 41081 PR c/14188 41082 * builtins.c (expand_builtin_va_arg): Emit an informative message 41083 if a trap is generated. 41084 * c-typeck.c (build_function_call): Likewise. 41085 410862004-02-22 Jakub Jelinek <jakub@redhat.com> 41087 41088 * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of 41089 fopen. 41090 * libgcov.c: Include sys/stat.h. 41091 * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define. 41092 * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define. 41093 * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define. 41094 * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define. 41095 410962004-02-22 Kazu Hirata <kazu@cs.umass.edu> 41097 41098 * reorg.c: Remove comments about dead ports. 41099 411002004-02-22 Christopher Faylor <cgf@redhat.com> 41101 41102 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify 41103 extra host object file when targetting cygwin rather than generic 41104 object files. 41105 411062004-02-22 Josef Zlomek <zlomekj@suse.cz> 41107 41108 Merge from tree-ssa: 41109 2003-11-20 Richard Henderson <rth@redhat.com> 41110 41111 * tree-inline.c (insert_decl_map): New. 41112 (remap_decl, remap_type, remap_block, copy_body_r, 41113 initialize_inlined_parameters, declare_return_variable, 41114 remap_save_expr): Use it. 41115 41116 * function.c (copy_body_r): Add mapping from id->ret_label to 41117 id->ret_label. Revert test for ret_label. 41118 411192004-02-22 Jakub Jelinek <jakub@redhat.com> 41120 41121 * genoutput.c (process_template): Strip trailing whitespace in @ 41122 templates and issue a warning if there was any. 41123 411242004-02-21 Christopher Faylor <cgf@redhat.com> 41125 41126 * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host 41127 object file when targetting cygwin. 41128 * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is 41129 overridden by top-level Makefile. 41130 411312004-02-21 Roger Sayle <roger@eyesopen.com> 41132 41133 * config/i386/i386.c (standard_80387_constant_p): Also prefer 41134 the x87's load constant instructions when optimizing for size. 41135 411362004-02-21 Kazu Hirata <kazu@cs.umass.edu> 41137 41138 * combine.c (SHIFT_COUNT_TRUNCATED): Remove. 41139 * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default. 41140 * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined. 41141 * fold-const.c: Likewise. 41142 * simplify-rtx.c: Likewise. 41143 411442004-02-21 Alan Modra <amodra@bigpond.net.au> 41145 41146 * combine.c (can_combine_p): Don't ignore SETs marked with 41147 REG_EH_REGION notes. 41148 (try_combine): When attemting to fix unrecognized insns, don't 41149 split a PARALLEL that contains the original i2. 41150 411512004-02-21 Ziemowit Laski <zlaski@apple.com> 41152 41153 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to 41154 SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options. 41155 * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it. 41156 * config/rs6000/altivec.h: #error out if '-maltivec' not specified. 41157 (vector, pixel, bool): #define to __vector, __pixel and __bool. 41158 (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific 41159 portion of header. 41160 (__altivec_link_error_invalid_argument): Remove prototype; will use 41161 __builtin_altivec_compiletime_error("vec_*") instead. 41162 (vec_*): Fix/complete set of available operation overloads given the 41163 existence of distinct 'vector bool ...' and 'vector pixel' types; tighten 41164 cv-correctness of pointer arguments; in C, always check for correct 41165 argument types before macro expansion. 41166 * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro 41167 defining Darwin/PowerPC-specific '-f[no-]altivec' and 41168 '-W[no-]altivec-long-deprecated' switches. 41169 * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define 41170 '__vector', '__pixel' and '__bool' macros using 41171 '__attribute__((altivec(...)))' types. 41172 * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node, 41173 bool_int_type_node, pixel_type_node, bool_V16QI_type_node, 41174 bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node): 41175 New type nodes. 41176 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for 41177 handling '-W[no-]altivec-long-deprecated'. 41178 (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'. 41179 (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin, 41180 altivec_expand_dst_builtin): Remove casts from integer literals. 41181 (altivec_expand_builtin): Likewise; handle expansion of new 41182 '__builtin_altivec_compiletime_error' function. 41183 (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel' 41184 types, and make them distinct from other vector types; register 41185 '__builtin_altivec_compiletime_error' function. 41186 (print_operand): For 'P', print a full target register name instead of 41187 merely its number. 41188 (rs6000_attribute_table): Add "altivec" attribute. 41189 (rs6000_handle_altivec_attribute): New function. 41190 * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe 41191 '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated' 41192 maps to). 41193 (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward 41194 declare. 41195 (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration. 41196 411972004-02-20 James E Wilson <wilson@specifixinc.com> 41198 41199 * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed 41200 check. 41201 (shift_mix4left+2): Delete redundant pattern. 41202 412032004-02-20 Kazu Hirata <kazu@cs.umass.edu> 41204 41205 * alias.c (OUTGOING_REGNO): Don't define the default. 41206 * builtins.c (OUTGOING_REGNO): Likewise. 41207 (INCOMING_REGNO): Likewise. 41208 (apply_args_register_offset): Always use OUTGOING_REGNO. 41209 * combine.c (OUTGOING_REGNO): Likewise. 41210 * sibcall.c (OUTGOING_REGNO): Likewise. 41211 * defaults.h (INCOMING_REGNO): Provide the default. 41212 (OUTGOING_REGNO): Likewise. 41213 412142004-02-21 Jan Hubicka <jh@suse.cz> 41215 41216 * params.def (max-peeled-insns, max-completely-peeled-insns, 41217 max-once-peeled-insns): Set to 400. 41218 412192004-02-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 41220 41221 PR c++/12007 41222 * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL 41223 are set for parameters before outputing debugging information. 41224 412252004-02-20 Falk Hueffner <falk@debian.org> 41226 41227 PR target/14201 41228 * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand 41229 numbers. 41230 412312004-02-20 Per Bothner <per@bothner.com> 41232 41233 * input.h: Don't #include line-map.h. It may cause link problems 41234 with undefined linemap_line_start when line-map.h is included but 41235 line-map.o is not linked, as currently happens with gengtype on 41236 compilers that don't support inline. 41237 * toplev.c: So we do have to explicitly #include line-map.h here. 41238 412392004-02-20 Richard Henderson <rth@redhat.com> 41240 41241 * doc/invoke.texi: Add -Wvariadic-macros. 41242 412432004-02-20 Kazu Hirata <kazu@cs.umass.edu> 41244 41245 * haifa-sched.c (sched_emit_insn): Remove. 41246 * sched-int.h: Remove the corresponding prototype. 41247 412482004-02-20 Kazu Hirata <kazu@cs.umass.edu> 41249 41250 Revert: 41251 2004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41252 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS. 41253 * system.h (DEFAULT_SHORT_ENUMS): Poison. 41254 * config/cris/cris.h: Remove a comment about 41255 DEFAULT_SHORT_ENUMS. 41256 * config/ip2k/ip2k.h: Likewise. 41257 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove. 41258 412592004-02-20 Mohan Embar <gnustuff@thisiscool.com> 41260 Tom Tromey <tromey@redhat.com> 41261 41262 * doc/install.texi: Moved --disable-libgcj and 41263 --with-system-zlib documentation to new section for 41264 Java-specific options. 41265 Added explicit Cross-Compiler-Specific Options subheading. 41266 Added section for Java-specific options. 41267 412682004-02-20 Matt Kraai <kraai@alumni.cmu.edu> 41269 41270 * doc/install.texi (Building the Ada compiler): Remove 41271 example. 41272 412732004-02-20 James E Wilson <wilson@specifixinc.com> 41274 41275 * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg. 41276 412772004-02-20 Kazu Hirata <kazu@cs.umass.edu> 41278 41279 * gcc.c (process_command): Allow translation of the copyright 41280 symbol but not the rest of the copyright message. 41281 * gcov.c (print_version): Likewise. Allow translation of the 41282 message about warranty. 41283 412842004-02-20 Hans-Peter Nilsson <hp@axis.com> 41285 41286 * config/cris/cris.md ("*andsi_movu"): Correct parentheses in 41287 predicate. 41288 ("*andsi_clear"): Tweak constraints to not match postincrement. 41289 Adjust the predicate to exclude a volatile memory reference. 41290 ("*andhi_clear"): Ditto. Rename from "*andhi_clear_signed". 41291 ("*andhi_clear_unsigned"): Remove, non-matching pattern. 41292 412932004-02-19 Matt Kraai <kraai@alumni.cmu.edu> 41294 41295 * move-if-change: Remove. 41296 * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck) 41297 (s-specs, s-options, s-config, s-conditions, s-flags, s-codes) 41298 (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep) 41299 (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds) 41300 (s-gtyp-gen, s-iov): Use the top level move-if-change. 41301 * objc/Make-lang.in (objc/objc-parse.y): Likewise. 41302 413032004-02-19 James E Wilson <wilson@specifixinc.com> 41304 41305 * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand 41306 for operand2. Add condition that requires register_operand operand2 41307 before reload. 41308 413092004-02-19 Richard Sandiford <rsandifo@redhat.com> 41310 Maciej W. Rozycki <macro@ds2.pg.gda.pl> 41311 41312 * config/mips/mips.c (mips_address_insns): Treat BLKmode specially. 41313 * config/mips/mips.md: Expand comment above unaligned loads and stores. 41314 413152004-02-19 Richard Henderson <rth@redhat.com> 41316 41317 * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros. 41318 * tree.c (build0, build1, build2, build3, build4): Split out from... 41319 (build): ... here. Call them. 41320 * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New. 41321 41322 * convert.c (convert_to_integer): Remove extra build argument. 41323 * tree-inline.c (expand_call_inline): Likewise. 41324 413252004-02-19 Richard Henderson <rth@redhat.com> 41326 41327 * c-opts.c (warn_variadic_macros): New. 41328 (c_common_handle_option): Set it. 41329 (sanitize_cpp_opts): Copy it to cpp_opts. 41330 * c.opt (Wvariadic-macros): New. 41331 * cpplib.h (struct cpp_options): Add warn_variadic_macros. 41332 * cppinit.c (cpp_create_reader): Initialize it. 41333 * cppmacro.c (parse_params): Check it. 41334 413352004-02-19 David Daney <ddaney@avtrex.com> 41336 41337 PR preprocessor/14198 41338 * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add 41339 builtin_assert ("machine=mips") 41340 413412004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41342 41343 * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS. 41344 * system.h (DEFAULT_SHORT_ENUMS): Poison. 41345 * config/cris/cris.h: Remove a comment about 41346 DEFAULT_SHORT_ENUMS. 41347 * config/ip2k/ip2k.h: Likewise. 41348 * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove. 41349 413502004-02-19 Zack Weinberg <zack@codesourcery.com> 41351 41352 * config/ia64/ia64.c (ia64_function_arg): In big-endian mode, 41353 when passing single SFmode quantities in general registers, 41354 put them in the high half. 41355 413562004-02-19 Aldy Hernandez <aldyh@redhat.com> 41357 41358 * doc/md.texi (Standard Names): Document additional dependency on 41359 fix pattern. 41360 41361 * optabs.c (ftruncify): Remove. 41362 (expand_fix): Manually inline ftruncify above. 41363 (can_fix_p): Add FIXME note. 41364 413652004-02-19 Aldy Hernandez <aldyh@redhat.com> 41366 41367 * config/rs6000/spe.md (spe_fixunssfsi2): Rename to 41368 spe_fixuns_truncsfsi2. 41369 41370 * config/rs6000/rs6000.md (fixunssfsi2): Rename to 41371 fixuns_truncsfsi2. 41372 413732004-02-19 Steve Ellcey <sje@cup.hp.com> 41374 41375 * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro. 41376 * testsuite/gcc.dg/20040219-1.c: New test. 41377 413782004-02-19 Ulrich Weigand <uweigand@de.ibm.com> 41379 41380 * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc", 41381 "*subsf3_cconly"): Subtraction is not commutative. 41382 413832004-02-19 Zack Weinberg <zack@codesourcery.com> 41384 41385 * sdbout.c (preinit_symbols, sdbout_initialized): New statics. 41386 (sdbout_symbol): If called before sdbout_init, queue DECL for 41387 later and return. 41388 (sdbout_init): Set sdbout_initialized true, process decls 41389 queued earlier by sdbout_symbol. 41390 (sdbout_finish): Use size_t for index variable. 41391 413922004-02-19 Jeff Law <law@redhat.com> 41393 41394 * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison 41395 for unordered comparison codes. 41396 413972004-02-19 Ian Lance Taylor <ian@wasabisystems.com> 41398 41399 * reload1.c (reload): Correct comment. 41400 (scan_paradoxical_subregs): Remove #if 0 and old comment. 41401 * doc/extend.texi (Local Reg Vars): Remove obsolete comment that 41402 register variables are not used by reload. 41403 414042004-02-19 Hans-Peter Nilsson <hp@axis.com> 41405 41406 PR target/14209 41407 * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak 41408 constraints to not match postincrement. Adjust the predicate to 41409 exclude a volatile memory reference. 41410 414112004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41412 41413 * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove. 41414 414152004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41416 41417 * hooks.c (hook_void_tree_int): Remove. 41418 (hook_void_constcharptr): Likewise. 41419 (hook_int_void_0): Likewise. 41420 * hooks.h: Remove the prototypes for the above three 41421 functions. 41422 * targhooks.c (hook_bool_machine_mode_true): Remove. 41423 * targhooks.h: Remove the prototype for 41424 hook_bool_machine_mode_true. 41425 414262004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41427 41428 * emit-rtl.c (subreg_realpart_p): Remove. 41429 (reorder_insns_with_line_notes): Likewise. 41430 (end_full_sequence): Likewise. 41431 * rtl.h: Remove the prototype for the above functions. 41432 414332004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41434 41435 * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h, 41436 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h, 41437 config/iq2000/iq2000.h, config/m32r/m32r.h, 41438 config/pdp11/pdp11.h, config/sparc/sparc.h, 41439 config/xtensa/xtensa.h: Remove commented-out or useless 41440 definitions of CASE_VECTOR_PC_RELATIVE. 41441 414422004-02-19 Kazu Hirata <kazu@cs.umass.edu> 41443 41444 * loop.c (all_sets_invariant_p): Remove. 41445 414462004-02-19 Eric Botcazou <ebotcazou@libertysurf.fr> 41447 41448 PR target/12916 41449 * config/sparc/sparc.h (NPARM_REGS): Delete. 41450 (BASE_RETURN_VALUE_REG): Likewise. 41451 (BASE_OUTGOING_VALUE_REG): Likewise. 41452 (BASE_PASSING_ARG_REG): Likewise. 41453 (BASE_INCOMING_ARG_REG): Likewise. 41454 * config/sparc/sparc.c (sparc_strict_argument_naming): Test 41455 TARGET_ARCH64, not TARGET_V9. 41456 (function_arg_slotno): Dispatch based on the mode class. 41457 Handle vector modes like floating-point modes. 41458 (function_arg_record_value_1): Handle vector types like 41459 floating-point types. 41460 (function_arg_record_value_2): Likewise. 41461 Calculate regno after mode transformation. 41462 (function_arg): Handle vector modes like floating-point modes. 41463 (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX. 41464 If ARCH64, do not recheck alignment. 41465 (function_arg_pass_by_reference): Reorder the conditions. 41466 (sparc_return_in_memory): Move after function_arg_padding. 41467 Implement calling conventions for vector modes. 41468 (sparc_struct_value_rtx): Move after sparc_return_in_memory. 41469 (function_value): Move scope of 'regbase'. 41470 Implement calling conventions for vector modes. 41471 (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX 41472 and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST. 41473 (sparc_va_arg): Use function_arg_pass_by_reference to test whether 41474 the argument is passed by reference. 41475 (sparc_type_code): Handle vector types. 41476 414772004-02-19 Alan Modra <amodra@bigpond.net.au> 41478 41479 * function.c (assign_parms): When building decl_rtl for 41480 SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer. 41481 414822004-02-19 Olivier Hainque <hainque@act-europe.fr> 41483 41484 * expr.c (is_aligning_offset): Check if we are aligning the 41485 expressions's address over BIGGEST_ALIGNMENT in bytes, not 41486 in bits. 41487 414882004-02-18 Matt Austern <austern@apple.com> 41489 41490 * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and 41491 LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC. 41492 (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is 41493 defined. Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc 41494 spec string. 41495 * doc/tm.texi (REAL_LIBGCC_SPEC): Document. 41496 414972004-02-18 Zack Weinberg <zack@codesourcery.com> 41498 41499 * dwarf2out.c (loclabel_num): Move outside #ifdef 41500 DWARF2_DEBUGGING_INFO and mark with GTY(()). 41501 * config/ia64/ia64.c (struct extern_func_list,extern_func_head): 41502 Mark with GTY(()). 41503 (ia64_hpux_add_extern_decl): Save the decl, not the name string. 41504 Allocate memory with ggc_alloc. No need to copy anything. 41505 (ia64_hpux_file_end): Update to match. 41506 415072004-02-18 Jakub Jelinek <jakub@redhat.com> 41508 41509 * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64 41510 by default. 41511 415122004-02-18 Ulrich Weigand <uweigand@de.ibm.com> 41513 41514 * config/s390/s390.md ("divmodtidi3"): Use canonical RTL. 41515 ("divmodtisi3"): Likewise. 41516 ("udivmoddi4", "udivmodtidi3"): Likewise. 41517 ("divmodsi4", "divmoddisi3"): Likewise. 41518 ("udivmodsi4", "udivmoddisi3"): Likewise. 41519 ("udivsi3", "umodsi3"): Likewise. 41520 415212004-02-18 Ulrich Weigand <uweigand@de.ibm.com> 41522 41523 * config/s390/s390.c (s390_mainpool_start): Delete the main pool 41524 placeholder insn when chunkifying the pool. 41525 415262004-02-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 41527 41528 * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not 41529 generating PIC code. 41530 415312004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41532 41533 * config/h8300/h8300-protos.h: Add a prototype for 41534 h8300_expand_branch. 41535 * config/h8300/h8300.c (h8300_expand_branch): New. 41536 * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt, 41537 bgtu, beq, bne): Call h8300_expand_branch(). 41538 415392004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41540 41541 * config/h8300/h8300-protos.h: Add prototypes for 41542 h8300_hard_regno_nregs and h8300_hard_regno_mode_ok. 41543 * config/h8300/h8300.c (h8300_hard_regno_nregs): New. 41544 (h8300_hard_regno_mode_ok): Likewise. 41545 * config/h8300/h8300.h (HARD_REGNO_NREGS): Call 41546 h8300_hard_regno_nregs(). 41547 (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok(). 41548 415492004-02-18 Per Bothner <per@bothner.com> 41550 41551 * cpphash.h (struct cpp_buffer): Restore return_at_eof field. This 41552 partly reverts my 2003-10-01 change, because we're back to logically 41553 including <command line> inside the main line. 41554 * cpplex.c (_cpp_get_fresh_line): Check return_at_eof field. 41555 * cppmacro.c (cpp_scan_nooutput): Set return_at_eof of current buffer. 41556 Fixes PR preprocessor/14103. 41557 41558 * cppfiles.c (_cpp_stack_include): When appropriate decrement 41559 line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION. 41560 (cpp_push_include): Don't need to increment pfile's line field. 41561 * line-map.h (LAST_SOURCE_LINE_LOCATION): Only decrement by 1. 41562 41563 * c-ppoutput.c (print struct): New first_time field. 41564 (init_pp_output): Set print.first_time. 41565 (pp_file_change): Use print.first_time, rather than MAIN_FILE_P, 41566 which is set also for (say) <command line>. Clear print.first_time. 41567 41568 * cppfiles.c (struct _cpp_file): Comment and type for pch field 41569 does not match the code, so fix both. 41570 (should_stack_file): Inline include_pch_p function. 41571 (include_pch_p): Remove pointless function. 41572 41573 * cpphash.h (struct cpp_buffer): Remove unused search_cached field. 41574 415752004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41576 41577 * config/h8300/h8300.md (four define_peephole2's): Use 41578 h8300_regs_ok_for_stm(). 41579 415802004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41581 41582 * config/h8300/h8300-protos.h: Update the prototype for 41583 expand_a_rotate(). 41584 * config/h8300/h8300.c (expand_a_rotate): Remove the first 41585 argument. 41586 * config/h8300/h8300.md: Update all callers. 41587 415882004-02-18 Jan Hubicka <jh@suse.cz> 41589 41590 * simplify-rtx.c (simplify_unary_operation): Deal with logicals on 41591 floats. 41592 (simplify_binary_operation): Deal with logicals on floats. 41593 41594 * i386.md (SSE fabs splitters): Emit new patterns. 41595 (SSE cmov splitters): Likewise. 41596 (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3 41597 (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use 41598 subregs. 41599 (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill. 41600 (sse_anddf3, sse_nanddf3, sse_xordf3): Kill. 41601 416022004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41603 41604 * config/h8300/h8300.c (expand_a_rotate): Don't generate insns 41605 by hand. 41606 (output_a_rotate): Tweak a comment. 41607 * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1. 41608 (*rotlhi3_1): Change to rotlhi3_1. 41609 (*rotlsi3_1): Change to rotlsi3_1. 41610 416112004-02-18 Richard Earnshaw <rearnsha@arm.com> 41612 41613 PR target/13866 41614 * arm.c (load_multiple_operation): Don't insist that the source reg 41615 of a post-increment component is the same as the destination. 41616 (store_multiple_operation): Likewise. 41617 416182004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41619 41620 * config/h8300/h8300.md: Move movsf patterns into one section 41621 of the file. 41622 416232004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41624 41625 * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c, 41626 loop-unroll.c, scan-decls.c, scan.h, stor-layout.c, 41627 xcoffout.c, xcoffout.h, config/arm/mmintrin.h, 41628 config/mips/linux64.h, config/pa/pa-64.h, 41629 config/rs6000/aix51.h, config/rs6000/aix52.h, 41630 config/rs6000/spe.md, config/sparc/linux.h, 41631 config/sparc/linux64.h: Update copyright. 41632 416332004-02-18 Kazu Hirata <kazu@cs.umass.edu> 41634 41635 * config/h8300/h8300.md: Move push patterns into one 41636 section of the file. 41637 416382004-02-18 Mark Mitchell <mark@codesourcery.com> 41639 41640 PR c++/11326 41641 * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL 41642 fntype. 41643 416442004-02-18 Paul Brook <paul@codesourcery.com> 41645 41646 * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX 41647 416482004-02-18 Paul Brook <paul@codesourcery.com> 41649 41650 PR debug/12934 41651 * dwarf2out.c (loc_descriptor_from_tree): Handle 41652 EXPR_WITH_FILE_LOCATION. 41653 416542004-02-18 Jakub Jelinek <jakub@redhat.com> 41655 41656 * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2, 41657 testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove 41658 trailing whitespace from instructions. 41659 416602004-02-17 Geoffrey Keating <geoffk@apple.com> 41661 41662 * configure.ac: When generating auto-build.h, pass 41663 --enable-languages to the sub-configure. 41664 Put quotes around ${program_transform_name} when generating 41665 name of as, ld, nm, objdump. 41666 * configure: Regenerate. 41667 416682004-02-17 Matt Kraai <kraai@alumni.cmu.edu> 41669 41670 * Makefile.in (s-check, s-config, s-conditions, s-flags) 41671 (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract) 41672 (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes) 41673 (s-preds, s-iov): Do not depend on move-if-change. 41674 416752004-02-17 James E Wilson <wilson@specifixinc.com> 41676 41677 * caller-save.c (insert_restore): Pass mem through copy_rtx. 41678 (insert_save): Likewise. 41679 416802004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41681 41682 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a 41683 warning. 41684 416852004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41686 41687 * config/h8300/h8300.md (*one_complsi2_h8300): Change to 41688 *one_cmplsi2_h8300. 41689 (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs. 41690 416912004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41692 41693 * config/h8300/h8300-protos.h: Update the prototype of 41694 fix_bit_operand(). 41695 * config/h8300/h8300.c (fix_bit_operand): Remove the second 41696 argument "what". 41697 * config/h8300/h8300.md: Update all callers. 41698 416992004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41700 41701 * config/h8300/h8300.c (fix_bit_operand): Change the name of 41702 the last argument to "code" from "type". 41703 417042004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41705 41706 * config/h8300/h8300.c: Remove an extern declaration of 41707 rtx_equal_function_value_matters. 41708 417092004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41710 41711 * config/h8300/h8300.c (fix_bit_operand): Don't generate insns 41712 by hand. 41713 * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1. 41714 (*iorqi3_1): Change to iorqi3_1. 41715 (*xorqi3_1): Change to xorqi3_1. 41716 417172004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41718 41719 * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment 41720 typos. 41721 417222004-02-17 Jan Hubicka <jh@suse.cz> 41723 41724 * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4. 41725 417262004-02-18 Alan Modra <amodra@bigpond.net.au> 41727 41728 PR optimization/14119 41729 * combine.c (try_combine): When attemting to fix unrecognized insns, 41730 don't delete SETs marked with REG_EH_REGION notes. 41731 417322004-02-17 Ulrich Weigand <uweigand@de.ibm.com> 41733 41734 * combine.c (simplify_if_then_else): Do not replace 41735 (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the 41736 modes differ. 41737 417382004-02-17 Steven Bosscher <stevenb@suse.de> 41739 41740 * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c, 41741 function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c, 41742 tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION. 41743 * ada/utils.c: Likewise. 41744 * cp/decl.c: Likewise. 41745 * f/com.c: Likewise. 41746 * java/class.c: Likewise. 41747 417482004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41749 41750 * config/h8300/h8300.md: Fix comment typos. 41751 417522004-02-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 41753 41754 * config/mips/t-iris6gld: Renamed to ... 41755 * config/mips/t-irix-gld: ... this. 41756 * config.gcc (mips-sgi-irix6*): Reflect this 41757 (mips-sgi-irix5*): Use it with GNU ld. 41758 41759 * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed 41760 to ... 41761 * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this. 41762 * config/mips/t-irix-gld: Reflect this. 41763 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. 41764 41765 * config/mips/iris5gld.h: New file. 41766 * config.gcc (mips-sgi-irix5*): Use it with GNU ld. 41767 Only use collect2 without gas. 41768 41769 * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC): 41770 Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. 41771 (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this. 41772 * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. 41773 41774 * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ... 41775 * config/mips/iris5.h: ... here. 41776 41777 * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to 41778 IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC. 41779 (STARTFILE_SPEC, ENDFILE_SPEC): Define. 41780 41781 * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify 41782 using irix_startfile_spec, irix_endfile_spec. 41783 417842004-02-16 Gunther Nikl <gni@gecko.de> 41785 41786 * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM. 41787 417882004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41789 41790 * config/h8300/h8300.c (h8300_expand_prologue): Don't generate 41791 insns by hand. 41792 417932004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 41794 41795 * cfghooks.c (split_edge): Speed up updating of dominators. 41796 417972004-02-17 Mark Mitchell <mark@codesourcery.com> 41798 41799 PR c++/11326 41800 * c-common.c (flag_abi_version): Remove. 41801 * c-common.h (flag_abi_version): Likewise. 41802 * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case. 41803 * c.opt (fabi-version): Remove. 41804 * calls.c (expand_call): Always pass a function type to 41805 struct_value_rtx. Use convert_memory_address. 41806 * common.opt (fabi-version): Add it. 41807 * flags.h (flag_abi_version): Likewise. 41808 (abi_version_at_least): New macro. 41809 * opts.c (common_handle_option): Add OPT_fabi_version. 41810 * toplev.c (flag_abi_version): Define it. 41811 * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p): 41812 New function. 41813 (ia64_output_mi_thunk): Use it. 41814 (ia64_struct_value_rtx): Likewise. 41815 418162004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41817 41818 * config/h8300/h8300.c (h8300_emit_stack_adjustment): 41819 Don't generate insns by hand. 41820 418212004-02-17 Andrew Pinski <pinskia@physics.uc.edu> 41822 41823 PR c++/14178 41824 * doc/invoke.texi (fabi-version): The default is 2 now. 41825 418262004-02-17 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 41827 41828 * loop-iv.c: New file. 41829 * Makefile.in (loop-iv.o): New. 41830 * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros. 41831 * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order, 41832 num_loop_branches): New functions. 41833 * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches, 41834 iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value, 41835 find_simple_exit, iv_number_of_iterations, iv_analysis_done, 41836 get_simple_loop_desc, free_simple_loop_desc): Declare. 41837 (simple_loop_desc): New inline function. 41838 (struct rtx_iv, struct niter_desc): New. 41839 * cfgloopmanip.c (loopify): Specify semantics more precisely. 41840 * expr.c (force_operand): Handle subregs of expressions created by 41841 loop unroller. 41842 * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move 41843 parts of the initialization to toplev.c 41844 * loop-unroll.c (loop_exit_at_end_p): New. 41845 (unroll_and_peel_loops): Call iv_analysis_done. 41846 (decide_peel_once_rolling, decide_peel_completely, 41847 decide_unroll_stupid, decide_unroll_constant_iterations, 41848 decide_unroll_runtime_iterations, decide_peel_simple, 41849 peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations, 41850 unroll_loop_runtime_iterations): Use new simple loop analysis. 41851 * loop-unswitch.c (compare_and_jump_seq): New. 41852 (may_unswitch_on_p): Renamed to ... 41853 (may_unswitch_on): Use new iv analysis. 41854 (reversed_condition): Export. 41855 (unswitch_single_loop, unswitch_loop): Use new iv analysis. 41856 * predict.c (estimate_probability): Use new simple loop analysis. 41857 * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq, 41858 canon_condition, simplify_using_condition): Declare. 41859 * stor-layout.c (get_mode_bounds): New. 41860 * toplev.c (rest_of_handle_loop2): Some parts of 41861 initialization/finalization moved here from loop-init.c. 41862 418632004-02-17 Kazu Hirata <kazu@cs.umass.edu> 41864 41865 * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame 41866 pointer. 41867 (CALL_USED_REGISTERS): Likewise. 41868 (REG_ALLOC_ORDER): Likewise. 41869 (REG_CLASS) <GENERAL_REGS>: Likewise. 41870 418712004-02-16 Geoffrey Keating <geoffk@apple.com> 41872 41873 * doc/md.texi (Insn Canonicalizations): Document left-chaining 41874 in associative operators. 41875 * rtlanal.c (commutative_operand_precedence): Create some new 41876 variables. Prefer a commutative operand on the left, then 41877 binary expressions, then NEG and NOT. 41878 418792004-02-16 Matthias Klose <doko@debian.org> 41880 41881 * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME 41882 in terms of SHLIB_SOVERSION. 41883 * config/m68k/t-slibgcc-elf-ver: New file. 41884 * config/pa/t-slibgcc-elf-ver: New file. 41885 * config.gcc (m68k-linux, parisc-linux): Use them when not 41886 sjlj exceptions are not configured. 41887 418882004-02-16 Eric Botcazou <ebotcazou@libertysurf.fr> 41889 41890 * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()). 41891 418922004-02-16 Zack Weinberg <zack@codesourcery.com> 41893 41894 * sdbout.c (sdb_debug_hooks): Correct the type_decl entry. 41895 418962004-02-16 Joseph S. Myers <jsm@polyomino.org.uk> 41897 41898 * doc/sourcebuild.texi: Mention backends.html. 41899 419002004-02-16 Kazu Hirata <kazu@cs.umass.edu> 41901 41902 * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c, 41903 line-map.c, line-map.h, var-tracking.c: Fix comment 41904 formatting. 41905 419062004-02-16 Richard Henderson <rth@redhat.com> 41907 41908 * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note. 41909 41910 * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison. 41911 419122004-02-15 Kazu Hirata <kazu@cs.umass.edu> 41913 41914 * config/h8300/h8300.md: Remove unnecessary parallels from 41915 all define_insn and define_split patterns. 41916 419172004-02-15 Kazu Hirata <kazu@cs.umass.edu> 41918 41919 * config/h8300/h8300.md: Remove explicit (set_attr "cc" 41920 "clobber"). 41921 419222004-02-15 Bernardo Innocenti <bernie@develer.com> 41923 41924 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for 41925 '%#'. 41926 419272004-02-15 Kazu Hirata <kazu@cs.umass.edu> 41928 41929 * config/ia64/ia64.c, config/mips/mips.c, 41930 config/mmix/mmix-modes.def: Fix comment typos. 41931 419322004-02-15 Roger Sayle <roger@eyesopen.com> 41933 41934 * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro. 41935 (get_directive_line): Remove unused function prototype. 41936 419372004-02-14 Josef Zlomek <zlomekj@suse.cz> 41938 41939 * tree-inline.c (copy_body_r): Do not replace ret_label. 41940 419412004-02-14 Jan Hubicka <jh@suse.cz> 41942 41943 * i386.c (x86_four_jump_limit): New variable. 41944 (k8_avoid_jump_misspredicts): Rename to ... 41945 (ix86_avoid_jump_misspredicts): .. this one. 41946 (ix86_pad_returns): Break out from ... 41947 (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked 41948 to. 41949 * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro. 41950 419512004-02-14 Josef Zlomek <zlomekj@suse.cz> 41952 41953 * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of 41954 PARALLEL is NULL. 41955 419562004-02-14 Per Bothner <per@bothner.com> 41957 41958 * fix-header.c (line_table): Move local variable in main to global. 41959 * scan.h (line_table): Use it. 41960 * scan-decls.c (scan_decls): Need to call linemap_lookup on token's 41961 line (recently renamed to src_loc) before calling recognized_function. 41962 419632004-02-14 Matt Kraai <kraai@alumni.cmu.edu> 41964 41965 * Makefile.in: Fix comment typos. 41966 419672004-02-14 Olivier Hainque <hainque@act-europe.fr> 41968 41969 * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT 41970 for start_value when it is directly moved into reg, and factorize 41971 the retrieval of GET_MODE (reg). 41972 419732004-02-14 Richard Sandiford <rsandifo@redhat.com> 41974 41975 * config/mips/mips-protos.h (mips_load_got_page): Delete. 41976 (mips_load_got_global): Delete. 41977 (mips_gotoff_page): Declare. 41978 * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant. 41979 (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an 41980 UNSPEC_LOAD_GOT pattern rather than a MEM. 41981 (*load_got[sd]i): New patterns. 41982 * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete. 41983 (mips_load_got_page, mips_load_got_global): Delete. 41984 (mips_gotoff_page): New function. 41985 (override_options): Don't initialize mips_got_alias_set. 41986 419872004-02-14 Richard Sandiford <rsandifo@redhat.com> 41988 41989 * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE) 41990 (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC) 41991 (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS) 41992 (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete. 41993 (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI]. 41994 * config/mips/mips.c: Fix some overly-long lines. 41995 (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete. 41996 (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling. 41997 419982004-02-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 41999 42000 * configure.ac: Search for as, ld below libexec/gcc. 42001 * configure: Regenerate. 42002 420032004-02-14 Ben Elliston <bje@wasabisystems.com> 42004 42005 * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to 42006 __builtin_arm_setwcx (). 42007 * config/arm/arm.c (arm_expand_builtin): Generate operands 42008 correctly and reverse their order in call to gen_iwmmxt_tmcr (). 42009 420102004-02-14 Ben Elliston <bje@wasabisystems.com> 42011 42012 * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh" 42013 and "wmuluh" to "wmulsm" and "wmulum", respectively. 42014 * config/arm/arm.h (enum arm_builtins): Rename enumerators to 42015 ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM. 42016 * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call. 42017 (_mm_mulhi_pu16): Likewise. 42018 420192004-02-13 Zack Weinberg <zack@codesourcery.com> 42020 42021 * xcoffout.c (xcoff_assign_fundamental_type_number): Check 42022 DECL_NAME != 0 before dereferencing. 42023 420242004-02-13 Ulrich Weigand <uweigand@de.ibm.com> 42025 42026 * config/s390/s390-protos.h (s390_output_symbolic_const): Remove. 42027 (s390_output_addr_const_extra): Declare. 42028 (s390_output_pool_entry): Remove FILE * argument. 42029 * config/s390/s390.c (s390_output_symbolic_const): Remove. 42030 (s390_output_addr_const_extra): New function. 42031 (print_operand_address): Call output_addr_const instead of 42032 s390_output_symbolic_const. 42033 (print_operand): Likewise. 42034 (s390_output_pool_entry): Use assemble_integer for symbolic constants. 42035 Remove FILE * argument. 42036 * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define. 42037 * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry 42038 call. 42039 420402004-02-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 42041 42042 * cfgloopanal.c (mark_irreducible_loops): Rewriten. 42043 (struct edge, struct vertex, struct graph): New. 42044 (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge, 42045 free_graph): New functions. 42046 420472004-02-12 Chris Demetriou <cgd@broadcom.com> 42048 42049 * config/mips/mips.md (casesi_internal, casesi_internal_di): 42050 Use ".set macro" to avoid warnings about multi-instruction 42051 macros, since they're intentional. 42052 420532004-02-12 Geoffrey Keating <geoffk@apple.com> 42054 42055 * config/darwin.h: Add include guards. Remove old, now incorrect, 42056 comment about STANDARD_EXEC_PREFIX. 42057 42058 * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and 42059 $(GCOV_INSTALL_NAME) to install manpages. Remove generic rule 42060 for installing .1 manpages. Add rules for installing cpp 42061 and gcov manpages under their installed names. 42062 420632004-02-12 Alexandre Oliva <aoliva@redhat.com> 42064 42065 * configure.ac (gcc_cv_ld): Don't set to LD if target is not 42066 host, but try LD_FOR_TARGET first. 42067 * configure: Rebuilt. 42068 420692004-02-12 Zack Weinberg <zack@codesourcery.com> 42070 42071 * dbxout.c: Move declaration of dbxout_type_decl outside 42072 #ifdef DBX_DEBUGGING_INFO. 42073 * c-parse.in: Don't give the asmdef production a type. 42074 420752004-02-12 Zack Weinberg <zack@codesourcery.com> 42076 42077 * debug.h (struct gcc_debug_hooks): Add type_decl field. 42078 (debug_nothing_tree_int): Prototype. 42079 (dwarf_debug_hooks): Delete, unused. 42080 * debug.c (do_nothing_debug_hooks): Update. 42081 (debug_nothing_tree_int): New function. 42082 * langhooks.h (struct lang_hooks_for_decls): 42083 Remove builtin_type_decls field. 42084 * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete. 42085 (LANG_HOOKS_DECLS): Update. 42086 * toplev.c (rest_of_decl_compilation, rest_of_type_compilation): 42087 Use debug_hooks->type_decl. 42088 * dbxout.c (preinit_symbols): New static. 42089 (dbx_debug_hooks, xcoff_debug_hooks): Update. 42090 (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or 42091 lang_hooks.decls.builtin_type_decls. Do scan preinit_symbols 42092 for symbols to output. 42093 (dbxout_type_decl): New function. 42094 (dbxout_symbol): If called before dbxout_init has run, queue 42095 the symbol for later. Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER 42096 to TYPE_DECLs before emitting them. 42097 * xcoffout.c (assign_type_number): Delete. 42098 (xcoff_type_numbers): New static table. 42099 (xcoff_assign_fundamental_type_number): New function. 42100 * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not 42101 DBX_OUTPUT_STANDARD_TYPES. Remove unnecessary #ifdefs. 42102 * sdbout.c: Include varray.h. 42103 (deferred_global_decls): New static. 42104 (sdb_debug_hooks): Update. 42105 (sdbout_global_decl): If we can't emit something right now, 42106 remember it in deferred_global_decls. 42107 (sdbout_finish): Just scan deferred_global_decls; don't call getdecls. 42108 (sdbout_init): Initialize deferred_global_decls. 42109 * Makefile.in: Update dependencies of sdbout.o. 42110 * dwarf2out.c (dwarf2out_type_decl): New function. 42111 (dwarf2_debug_hooks): Update. 42112 * vmsdbgout.c (vmsdbg_debug_hooks): Update. 42113 * c-decl.c (getdecls): Just return 0. 42114 (check_for_loop_decls): Don't use getdecls. 42115 (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL. 42116 * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls. 42117 421182004-02-12 Ulrich Weigand <uweigand@de.ibm.com> 42119 42120 * config/s390/s390.c (s390_sched_reorder2): Remove. 42121 (TARGET_SCHED_REORDER2): Do not redefine. 42122 421232004-02-12 Zack Weinberg <zack@codesourcery.com> 42124 42125 * c-parse.in (maybe_type_qual): Delete. 42126 (maybe_volatile, simple_asm_expr, asmdef, asm_stmt) 42127 (asm_argument): New grammar rules. 42128 (extdef_1): Use asmdef. 42129 (maybeasm): Move down with other asm rules; use simple_asm_expr. 42130 (xexpr): Move up with other expression rules. 42131 (stmt): Use asm_stmt. 42132 42133 * c-typeck.c (build_asm_expr): New function - body mostly 42134 pulled from build_asm_stmt. 42135 (build_asm_stmt): Just handle tacking on the volatile qualifier. 42136 * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes. 42137 421382004-02-12 Richard Sandiford <rsandifo@redhat.com> 42139 42140 PR bootstrap/13617 42141 * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare. 42142 (mips_declare_object): Make variadic. 42143 * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use 42144 mips_output_aligned_decl_common. 42145 * config/mips/mips.c (mips_output_aligned_decl_common): New function. 42146 (mips_declare_object): Make variadic. 42147 421482004-02-12 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 42149 42150 * function.c (update_epilogue_consts): Teach about binary operations. 42151 42152 * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill 42153 previous MEM_VOLATILE in REF. 42154 * function.c (fixup_var_refs): Save volatile_ok and set to 1. 42155 * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok. 42156 421572004-02-12 Gunther Nikl <gni@gecko.de> 42158 42159 * config.gcc: Restore support for m68k-openbsd. 42160 421612004-02-12 Jan Hubicka <jh@suse.cz> 42162 42163 * tree-optimize.c (tree_rest_of_compilation): Do not release 42164 DECL_ARGUMENTS. 42165 421662004-02-11 Matt Kraai <kraai@alumni.cmu.edu> 42167 42168 * doc/install.texi: Fix the spelling of "explicitly". 42169 421702004-02-11 Eric Christopher <echristo@redhat.com> 42171 42172 * cppcharset.c (_cpp_interpret_string_notranslate): Rename and 42173 duplicate argument structure of cpp_interpret_string. 42174 * cpphash.h: Move prototype... 42175 * cpplib.h: Here. 42176 * cpplib.c: Fix calls to match new function signature. 42177 421782004-02-11 Joseph S. Myers <jsm@polyomino.org.uk> 42179 42180 PR c/456 42181 * cppexp.c (num_binary_op): Don't allow comma operators in #if 42182 constant expressions at all outside C99 mode if pedantic. 42183 421842004-02-11 Uros Bizjak <uros@kss-loka.si> 42185 42186 * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2. 42187 (log10_optab, log2_optab): Define corresponding macros. 42188 * optabs.c (init_optabs): Initialize log10_optab and log2_optab. 42189 * genopinit.c (optabs): Implement log10_optab and log2_optab 42190 using log10?f2 and log2?f2 patterns. 42191 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L} 42192 using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab. 42193 (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L} 42194 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set. 42195 42196 * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2, 42197 log2df2, log2xf2): New patterns to implement log10, log10f, log10l, 42198 log2, log2f and log2l built-ins as inline x87 intrinsics. 42199 422002004-02-11 Richard Henderson <rth@redhat.com> 42201 42202 PR target/1532 42203 * flow.c (insn_dead_p): A clobber of a dead hard register is a 42204 dead insn after reload. 42205 422062004-02-11 Ulrich Weigand <uweigand@de.ibm.com> 42207 42208 * tree.h (frame_base_decl): Add GTY marker. 42209 * var-tracking.c (frame_base_decl): Likewise. 42210 422112004-02-11 Daniel Berlin <dberlin@dberlin.org> 42212 42213 * dwarf2out.c (output_loc_list): Remove no longer necessary, and now 42214 incorrect, hunk. 42215 (add_location_or_const_value_attribute): Use text_section_label, 42216 not TEXT_SECTION_NAME. 42217 422182004-02-11 Per Bothner <per@bothner.com> 42219 42220 Represent column numbers using line-map's source_location. 42221 The "next available source_location" is now managed internally by 42222 line-maps.c rather than by clients. 42223 * line-map.h (struct line_map): New field column_bits. 42224 <from_line>: Rename field to start_location. 42225 (struct line_maps): New fields highest_location and max_column_hint. 42226 (linemap_check_files_exited): New declaration. 42227 (linemap_line_start): New declaration. 42228 (linemap_add): Remove from_line parameter; use highest_location field. 42229 (SOURCE_LINE, LAST_SOURCE_LINE): Modify to use column_bits. 42230 (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION): New macros. 42231 (CURRENT_LINE_MAP): Remove macro. 42232 (linemap_position_for_column): New inline function. 42233 * line-map.c (linemap_init): Clear new fields. 42234 (linemap_check_files_exited): New function, extracted from ... 42235 (linemap_free): Use linemap_check_files_exited. 42236 (linemap_add): Remove from_line parameter. Various updates. 42237 (linemap_line_start): New function. 42238 (linemap_lookeup): Update for new field names. 42239 * cpphash.h (struct cpp_reader) <map>: Field removed. Because 42240 linemap_position_for_column may unpredictably change the current map, 42241 it is cleaner and simpler for us to not cache it in cpp_reader. 42242 (struct cpp_buffer): New sysp field. 42243 Changed warned_cplusplus_comments and from_stage3 to bitfields. 42244 * cppinit.c (cpp_read_min_file): pfile->map no longer exists. 42245 * cpplib.c (do_line, do_linemarker, _cpp_do_file_change): Get 42246 current map using linemap_lookup. 42247 (do_linemarker): Also set buffer's sysp field. 42248 (destringize_and_run): No longer need to decrement current line. 42249 * cppfiles.c (_cpp_stack_file): Set sysp from and in buffer. 42250 (search_path_head, open_file_failed): Use buffer's sysp. 42251 (cpp_make_system_header): Get current map using linemap_lookup. 42252 Also set buffer's sysp flag. 42253 * cppmacro.c (_cpp_builtin_macro_text): Likewise use linemap_lookup. 42254 * cpphash.h (CPP_INCREMENT_LINE): New macro. 42255 (struct cpp_buffer): Moved fields saved_cur, saved_rlimit to ... 42256 (struct cpp_reader): ... and adding saved_line_base field. 42257 * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay): 42258 Update accordingly. Don't adjust line. 42259 (_cpp_scan_out_logical_line): Use CPP_INCREMENT_LINE. 42260 * cpphash.c (CPP_IN_SYSTEM_HEADER): Replaced macro by ... 42261 (cpp_in_system_header): ... new inline function, using buffer's sysp. 42262 * cpperror.c (_cpp_begin_message): Update to use cpp_in_system_header. 42263 * cpplex.c (_cpp_lex_direct): Likewise. 42264 * cppmacro.c (_cpp_builtin_macro_text): Likewise. 42265 * cppmacro.c (_cpp_create_definition): Use buffer's sysp field. 42266 * cpplib.h (struct cpp_token): Rename line field to src_loc. 42267 Remove col field as it is now subsumed by src_loc. 42268 * cpperror.c: Update various field, parameter, and macro names. 42269 (print_location): If col==0, try SOURCE_COLUMN of line. 42270 (cpp_error): Use cur_token's src_loc field, rather than line+col. 42271 * cpplib.c (do_diagnostic): Token's src_loc fields replaces line+col. 42272 * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct, 42273 _cpp_skip_block_comment): Use CPP_INCREMENT_LINE. 42274 (_cpp_temp_token): Replace cpp_token's line+col fields by src_loc. 42275 (_cpp_get_fresh_line): Don't need to adjust line for missing newline. 42276 (_cpp_lex_direct): Use linemap_position_for_column. 42277 * c-ppoutput.c (maybe_print_line, print_line): Don't take map 42278 parameter. Instead get it from the line_table global. Adjust callers. 42279 (print): Remove map field. Replace line field to src_line. 42280 (init_pp_output, account_for_newlines, maybe_print_line): Adjust. 42281 (cb_line_change): Use SOURCE_COLUMN. Minor optimizations. 42282 (pp_file_change): Use MAIN_FILE_P since we cannot checked print.map. 42283 Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include. 42284 * cpptrad.c (copy_comment): Rename variable. 42285 * c-lex.c (map): Remove static variable, for same reason we removed 42286 cpp_reader's map field. 42287 (cb_line_change, cb_def_pragma, cb_define, cb_undef): Hence we need 42288 to call linemap_lookup. 42289 (cb_line_change): Token's line field replaced by src_loc. 42290 (fe_file_change): Use MAINFILE_P and LAST_SOURCE_LINE macros. 42291 Don't save new_map. 42292 42293 * cpphash.h, cpperror.c, cpplib.h: Some renames of fileline to 42294 source_location. 42295 422962004-02-11 Hartmut Penner <hpenner@de.ibm.com> 42297 42298 * config/rs6000/altivec.md (*movv4si_internal): At least one 42299 operand must be register_operand. 42300 (*movv8hi_internal1): Likewise. 42301 (*movv16qi_internal1): Likewise. 42302 (*movv4sf_internal1): Likewise. 42303 423042004-02-10 Aldy Hernandez <aldyh@redhat.com> 42305 42306 * config/rs6000/spe.md ("*movv2si_internal"): Check for register 42307 operand. 42308 (movv4hi_internal): Same. 42309 (movv2sf_internal): Same. 42310 (movv1di_internal): Same. 42311 423122004-02-11 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> 42313 42314 * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and 42315 TARGET_OLDABI consistently. 42316 * config/mips/mips.c (function_arg,mips_setup_incoming_varargs, 42317 mips_va_arg,override_options,compute_frame_size, 42318 mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub 42319 ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI 42320 and TARGET_OLDABI consistently. 42321 * config/mips/mips.md (exception_receiver): Likewise. 42322 * config/mips/linux64.h: Likewise. 42323 423242004-02-11 Hartmut Penner <hpenner@de.ibm.com> 42325 42326 * config/rs6000/rs6000.c (rs6000_override_options) 42327 Set AltiVec ABI and vrsave as default for ppc64 linux. 42328 (init_cumulative_args): Post error, if try to return 42329 value in AltiVec register without enable AltiVec. 42330 (function_arg_advance): Ditto for passing arguments. 42331 423322004-02-11 Richard Sandiford <rsandifo@redhat.com> 42333 42334 * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to 42335 a label before updating its usage count. 42336 423372004-02-10 Matt Kraai <kraai@alumni.cmu.edu> 42338 42339 * doc/install.texi: Remove extra cd. 42340 423412004-02-10 Ziemowit Laski <zlaski@apple.com> 42342 42343 * c-common.c (vector_size_helper): Remove; call 42344 reconstruct_complex_type() instead. 42345 * tree.c (reconstruct_complex_type): New function 42346 (formerly vector_size_helper() in c-common.c). 42347 (make_vector): Make externally visible. 42348 * tree.h (reconstruct_complex_type, make_vector): Add prototypes. 42349 423502004-02-10 Kazu Hirata <kazu@cs.umass.edu> 42351 42352 * config/h8300/h8300-protos.h: Add a prototype for 42353 h8300_regs_ok_for_stm. 42354 * config/h8300/h8300.c (h8300_regs_ok_for_stm): New. 42355 * config/h8300/h8300.md (stm_h8300s_2_advanced, 42356 stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced, 42357 stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced, 42358 stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced, 42359 ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced, 42360 ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced, 42361 ldm_h8300s_4_normal, ldm_h8300s_4): Use 42362 h8300_regs_ok_for_stm(). 42363 423642004-02-10 Danny Smith <dannysmith@users.sourceforge.net> 42365 42366 PR c/14088 42367 * real.c (real_from_string): Look for 'X' as well as 'x' in 42368 hexfloat strings. 42369 423702004-02-10 Kazu Hirata <kazu@cs.umass.edu> 42371 42372 * config/h8300/h8300.md: Remove an incorrect comment about 42373 peephole2. Add comments. 42374 423752004-02-10 Josef Zlomek <zlomekj@suse.cz> 42376 42377 PR/14058 42378 * emit-rtl.c (set_decl_incoming_rtl): New. 42379 * tree.h (set_decl_incoming_rtl): New. 42380 * function.c (assign_parms): Use set_decl_incoming_rtl for setting 42381 DECL_INCOMING_RTL. 42382 * ada/misc.c (adjust_decl_rtl): Likewise. 42383 423842004-02-10 Per Bothner <per@bothner.com> 42385 42386 * c-opts.c (c_common_post_options): Don't emit working directory 42387 in cpp output if -P was specified. 42388 423892004-02-10 Paolo Bonzini <bonzini@gnu.org> 42390 42391 PR c/14092 42392 * fold-const.c (fold) <NEGATE_EXPR>: Convert result of 42393 negate_expr back to the original type. 42394 423952004-02-10 Alan Modra <amodra@bigpond.net.au> 42396 42397 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't 42398 bump retaddr here. 42399 424002004-02-10 Paolo Bonzini <bonzini@gnu.org> 42401 42402 * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param, 42403 gen_lowpart_SUBREG): Move under the file in which they 42404 are actually declared. 42405 424062004-02-10 Arnaud Charlet <charlet@act-europe.fr> 42407 42408 * doc/sourcebuild.texi: Add libada documentation. 42409 42410 * doc/install.texi: Update documentation on Ada build, now 42411 that the GNAT lib and tools are built automatically. 42412 424132004-02-10 Richard Sandiford <rsandifo@redhat.com> 42414 42415 * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI 42416 && TARGET_IRIX. 42417 424182004-02-09 Ziemowit Laski <zlaski@apple.com> 42419 42420 * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS' 42421 boundaries outside build_component_ref() call (a macro in ObjC++). 42422 424232004-02-09 Bob Wilson <bob.wilson@acm.org> 42424 42425 * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update. 42426 (init_cumulative_args): Likewise. 42427 (a7_overlap_mentioned_p): Delete prototype. 42428 * config/xtensa/xtensa.c (struct machine_function): Replace 42429 incoming_a7_copied field with need_a7_copy and vararg_a7 flags. 42430 Add set_frame_ptr_insn field. 42431 (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7. 42432 (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check 42433 if the operand is an argument in a7. If so, copy a7 to a new pseudo 42434 at the function entry and replace the operand with the pseudo. 42435 (init_cumulative_args): Remove unused arguments. Add new "incoming" 42436 argument and record this flag in CUMULATIVE_ARGS. 42437 (function_arg): Remove result_mode and special-case code to handle 42438 arguments in a7. Instead, set need_a7_copy flag when there is an 42439 incoming argument in a7. 42440 (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn 42441 and use the value recorded in cfun->machine->set_frame_ptr_insn. 42442 (xtensa_builtin_saveregs): Check for negative gp_left value. Set 42443 need_a7_copy and vararg_a7 flags. Use move_block_from_reg instead of 42444 special-case code. 42445 (a7_overlap_mentioned_p): Delete. 42446 * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag. 42447 (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless 42448 arguments to init_cumulative_args and pass "incoming" flag instead. 42449 (BLOCK_REG_PADDING): Delete. 42450 * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary 42451 checks for reload_in_progress and reload_completed. Update calls to 42452 xtensa_copy_incoming_a7. 42453 (ashlsi3): Rename existing insn to ashlsi3_internal. Add expander 42454 to call xtensa_copy_incoming_a7. 42455 424562004-02-09 DJ Delorie <dj@redhat.com> 42457 42458 * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No 42459 longer modify standard_exec_prefix, standard_bindir_prefix, or 42460 standard_startfile_prefix. 42461 424622004-02-09 James E Wilson <wilson@specifixinc.com> 42463 42464 PR c++/11295 42465 * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call 42466 to expand_expr_real call, and pass in alt_rtl as last argument. 42467 42468 PR libstdc++/5625 42469 * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New. 42470 * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER. 42471 * builtins.def (BUILT_IN_EXTEND_POINTER): New. 42472 * except.c (expand_builtin_extend_pointer): New. 42473 * except.h (expand_builtin_extend_pointer): Declare. 42474 424752004-02-09 David Edelsohn <edelsohn@gnu.org> 42476 42477 * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow 42478 unaligned loads and stores. 42479 424802004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 42481 42482 * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define. 42483 * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef. 42484 42485 * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ... 42486 * config/mips/iris5.h: ... here. 42487 * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove. 42488 42489 * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ... 42490 * config/mips/iris5.h: ... here. 42491 424922004-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 42493 42494 * configure.ac: Remove default executable files before AC_PROG_CC. 42495 * configure: Regenerate. 42496 424972004-02-09 Kazu Hirata <kazu@cs.umass.edu> 42498 42499 PR target/13721 42500 * config/h8300/h8300.c (byte_reg): Call abort() if asked to 42501 print a operand other than a register. 42502 425032004-02-09 Roger Sayle <roger@eyesopen.com> 42504 42505 * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion 42506 tree code rather than call fold_convert, which doesn't specify a 42507 default floating point to integer conversion. 42508 425092004-02-08 Bernardo Innocenti <bernie@develer.com> 42510 42511 * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove 42512 code to support SGS assembler. Reformat adjacent code where possible. 42513 * config/m68k/m68k.c (switch_table_difference_label_flag): Remove 42514 definition. 42515 * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support 42516 for '%#'. 42517 * config/m68k/linux.h, config/m68k/m68k.c, 42518 * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm 42519 macros and asm_printf() format strings. 42520 * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition. 42521 * config/m68k/linux.h: Update copyright. 42522 * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace. 42523 425242004-02-08 Andreas Schwab <schwab@suse.de> 42525 Bernardo Innocenti <bernie@develer.com> 42526 42527 * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with 42528 REGISTER_PREFIX. 42529 * (M68K_FP_REG_NAME): New macro to specify an alternate name for the 42530 frame pointer register, overridable by OS targets. 42531 * (M68K_REGNAME): Macro to obtain register name for asm output, 42532 eventually replacing %a6 with M68K_FP_REG_NAME. 42533 * config/m68k/coff.h (REGISTER_NAMES): Don't redefine. 42534 * config/m68k/linux.h (REGISTER_NAMES): Likewise. 42535 * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise. 42536 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise. 42537 * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x]. 42538 425392004-02-08 Kazu Hirata <kazu@cs.umass.edu> 42540 42541 * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as 42542 hook_rtx_tree_int_null. 42543 * targhooks.c (default_struct_value_rtx): Remove. 42544 * targhooks.h: Remove the prototype for 42545 default_struct_value_rtx. 42546 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c, 42547 config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c, 42548 config/ip2k/ip2k.c, config/iq2000/iq2000.c, 42549 config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c, 42550 config/mn10300/mn10300.c, config/pdp11/pdp11.c, 42551 config/rs6000/rs6000.c, config/s390/s390.c, 42552 config/stormy16/stormy16.c, config/v850/v850.c, 42553 config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove. 42554 * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default. 42555 425562004-02-08 Joseph S. Myers <jsm@polyomino.org.uk> 42557 42558 * README.Portability: Change "ISO C89" to "ISO C90". 42559 * c-parse.in (primary, initelt): Likewise. 42560 425612004-02-08 Richard Sandiford <rsandifo@redhat.com> 42562 42563 * real.c (encode_ibm_extended): Normalize the input value before 42564 converting it to a double. Handle the case where a normal value 42565 rounds to infinity. 42566 425672004-02-08 Kazu Hirata <kazu@cs.umass.edu> 42568 42569 * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a 42570 warning. 42571 * cse.c (preferrable): Change to preferable. Update all of its 42572 callers. 42573 * genautomata.c (ainsn): Change 42574 first_ainsn_with_given_equialence_num to 42575 first_ainsn_with_given_equivalence_num. Update all of its 42576 references. 42577 425782004-02-08 Jan Hubicka <jh@suse.cz> 42579 42580 * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data. 42581 425822004-02-07 David Edelsohn <edelsohn@gnu.org> 42583 42584 * function.c (assign_parms): Fix formatting. 42585 425862004-02-07 Kazu Hirata <kazu@cs.umass.edu> 42587 42588 * default.h (PROMOTE_PROTOTYPES): Remove. 42589 * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES, 42590 STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS, 42591 EXPAND_BUILTIN_SAVEREGS): Poison. 42592 * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as 42593 hook_bool_tree_false. 42594 (TARGET_PROMOTE_PROTOTYPES): Likewise. 42595 * target.h: Replace SETUP_INCOMING_VARARGS with 42596 targetm.calls.setup_incoming_varargs(). 42597 * targhooks.c (default_promote_function_return): Remove. 42598 (default_promote_prototypes): Likewise. 42599 (default_struct_value_rtx): Always abort(). 42600 (default_expand_builtin_saveregs): Always print an error 42601 message. 42602 (default_setup_incoming_varargs): Do nothing. 42603 (default_pretend_outgoing_varargs_named): Don't depend on 42604 SETUP_INCOMING_VARARGS. 42605 * targhooks.h: Remove the prototype for 42606 default_promote_function_return and 42607 default_promote_prototypes. 42608 426092004-02-07 Kazu Hirata <kazu@cs.umass.edu> 42610 42611 * system.h (SHARED_SECTION_ASM_OP): Poison. 42612 * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP. 42613 * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove. 42614 426152004-02-07 Zack Weinberg <zack@codesourcery.com> 42616 42617 Bug 13856 42618 * c-decl.c (diagnose_mismatched_decls): Only give special 42619 treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE 42620 is also true. 42621 (merge_decls): Don't clear DECL_BUILT_IN_CLASS and 42622 DECL_FUNCTION_CODE when defining a built-in function. 42623 Don't update DECL_ESTIMATED_INSNS. 42624 * dwarf2out.c (dwarf2out_decl): Don't ignore built-in 42625 FUNCTION_DECLs. 42626 * tree.h: Delete DECL_ESTIMATED_INSNS. 42627 * tree-inline.c (struct inline_data): Delete inlined_insns field. 42628 (expand_call_inline, optimize_inline_calls): Don't update 42629 DECL_ESTIMATED_INSNS nor inlined_insns. 42630 * cgraphunit.c (cgraph_analyze_function): Don't update 42631 DECL_ESTIMATED_INSNS. 42632 426332004-02-07 Zack Weinberg <zack@codesourcery.com> 42634 42635 * c-common.c (shadow_warning): Delete. 42636 * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete. 42637 * c-decl.c (warn_if_shadowing): Issue shadow warnings directly. 42638 * c-opts.c (c_common_parse_file): Don't call free_parser_stacks. 42639 * c-parse.in (free_parser_stacks): Delete. 42640 426412004-02-07 Nathanael Nerode <neroden@gcc.gnu.org> 42642 42643 * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver, 42644 config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux: 42645 Use the top level mkinstalldirs, not the one in the gcc subdir. 42646 * mkinstalldirs: Remove (from the gcc subdir). 42647 426482004-02-07 Roger Sayle <roger@eyesopen.com> 42649 42650 PR middle-end/13696 42651 * fold-const.c (fold_convert): New function to provide type 42652 conversion to the middle-end without using convert. 42653 (negate_expr, associate_trees, size_diffop, omit_one_operand, 42654 operand_equal_for_comparison_p, pedantic_omit_one_operand, 42655 invert_truthvalue, optimize_bit_field_compare, range_binop, 42656 decode_field_reference, make_range, build_range_check, unextend, 42657 fold_truthop, extract_muldiv_1, fold_mathfn_compare, 42658 fold_binary_op_with_conditional_arg, fold_inf_compare, 42659 fold_single_bit_test, fold, multiple_of_p): Replace all calls to 42660 convert with calls to fold_convert. 42661 426622004-02-07 Jan Hubicka <jh@suse.cz> 42663 42664 * genrecog.c (find_operand): add extra argument stop. 42665 (validate_pattern): Verify that mach_dup is duplicating operand 42666 defined lexically earlier. 42667 426682004-02-07 Kazu Hirata <kazu@cs.umass.edu> 42669 42670 * config.gcc: Don't mention MAX_LONG_TYPE_SIZE. 42671 * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, 42672 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison. 42673 * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h, 42674 config/ia64/ia64.h, config/ip2k/ip2k.h, 42675 config/iq2000/iq2000.h, config/mips/iris5.h, 42676 config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h, 42677 config/rs6000/aix51.h, config/rs6000/aix52.h, 42678 config/rs6000/darwin.h, config/rs6000/rs6000.h, 42679 config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h, 42680 config/sparc/linux.h, config/sparc/linux64.h, 42681 config/sparc/netbsd-elf.h, config/sparc/sparc.h, 42682 config/xtensa/xtensa.h: Remove the definitions of 42683 MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or 42684 MAX_WCHAR_TYPE_SIZE. 42685 * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, 42686 MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove. 42687 426882004-02-07 Stephane Carrez <stcarrez@nerim.fr> 42689 42690 PR bootstrap/13990 42691 * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to 42692 gen_rtx_NE. 42693 426942004-02-07 Josef Zlomek <zlomekj@suse.cz> 42695 42696 * var-tracking.c (vt_add_function_parameters): Surround checkings by 42697 #ifdef ENABLE_CHECKING and #endif. 42698 426992004-02-07 Roger Sayle <roger@eyesopen.com> 42700 42701 * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into 42702 either (-A)-B or (-B)-A, if A or B is easily negated respectively. 42703 (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both 42704 integer types and floating point with unsafe_math_optimizations. 42705 Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2). 42706 Optimize A - B as A + (-B), if B is easily negated. 42707 427082004-02-07 Kazu Hirata <kazu@cs.umass.edu> 42709 42710 * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c, 42711 config/darwin.c, config/darwin.h, config/ia64/ia64-c.c, 42712 config/m32r/linux.h, config/rs6000/ppc64-fp.c, 42713 config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi: 42714 Update copyright. 42715 427162004-02-07 Kazu Hirata <kazu@cs.umass.edu> 42717 42718 * c-ppoutput.c, var-tracking.c: Fix comment typos. 42719 427202004-02-06 James E Wilson <wilson@specifixinc.com> 42721 42722 * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for 42723 glibc 2.3 or better. 42724 427252004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42726 42727 * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change 42728 to FLOAT_LIB_COMPARE_RETURNS_BOOL. 42729 427302004-02-07 Alan Modra <amodra@bigpond.net.au> 42731 42732 * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c. 42733 (SHLIB_MAPFILES): Add libgcc-ppc64.ver. 42734 (SHLIB_MKMAP_OPTS): Delete. 42735 (TARGET_LIBGCC2_CFLAGS): Add -specs. 42736 (bispecs): Add rule. 42737 * config/rs6000/libgcc-ppc64.ver: New file. 42738 * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions. 42739 (__floatdidf, __floatdisf): Optimize multiply. 42740 (__fixunstfdi): New function. 42741 * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for 42742 real and imag parts larger than one register. 42743 (function_arg): Correct type of reg used when fp arg split partially 42744 to stack. 42745 * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT 42746 and __MACH__ or __powerpc64__. 42747 427482004-02-06 Roger Sayle <roger@eyesopen.com> 42749 Ulrich Weigand <uweigand@de.ibm.com> 42750 42751 * builtins.c (expand_builtin_signbit): Use extract_bit_field instead 42752 of gen_highpart or gen_lowpart when the floating point format is 42753 wider than the result mode. 42754 427552004-02-06 Andrew Pinski <pinskia@physics.uc.edu> 42756 42757 * dwarf2out.c (loclabel_num): Move into #ifdef 42758 DWARF2_DEBUGGING_INFO. 42759 427602004-02-06 Ziemowit Laski <zlaski@apple.com> 42761 42762 * objc/objc-act.c (build_super_template) the 'class' field of 42763 'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS. 42764 (get_super_receiver): Likewise. 42765 427662004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42767 42768 * reload1.c (check_eliminable_occurrences): Optimize the reset 42769 of can_eliminate. 42770 (eliminate_regs_in_insn): Likewise. 42771 427722004-02-06 Daniel Berlin <dberlin@dberlin.org> 42773 Josef Zlomek <zlomekj@suse.cz> 42774 42775 * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function 42776 at the beginning of function, call dwarf2out_var_location for 42777 NOTE_INSN_VAR_LOCATION note. 42778 (struct var_loc_node, struct var_loc_list_def, loclabel_num, 42779 decl_loc_table): New. 42780 (lookup_decl_loc): New function. 42781 (add_var_loc_to_decl): New function. 42782 (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used 42783 only if can_use_fbreg. 42784 (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other 42785 functions. 42786 (loc_descriptor): Likewise. Process VAR_LOCATION. 42787 (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true. 42788 (loc_descriptor_from_tree): Call mem_loc_descriptor with 42789 can_use_fbreg == true. 42790 (add_location_or_const_value_attribute): Added parameter enum 42791 dwarf_attribute attr, generate attribute ATTR. Create the location list. 42792 (add_bound_info): Call loc_descriptor with can_use_fbreg == true. 42793 (gen_formal_parameter_die): Call add_location_or_const_value_attribute 42794 with attr == DW_AT_location. 42795 (gen_subprogram_die): Generate the location list for DW_AT_frame_base 42796 if frame_base_decl is defined and has a location list. 42797 (gen_variable_die): Call add_location_or_const_value_attribute with 42798 attr == DW_AT_location. 42799 (dwarf2out_var_location): New function. 42800 (dwarf2out_begin_function): New function. 42801 (dwarf2out_init): Create decl_loc_table. 42802 428032004-02-06 Ulrich Weigand <uweigand@de.ibm.com> 42804 42805 * loop.c (force_movables): Transitively increase the priorities of 42806 all insns forces by an insn, not just the first one. 42807 428082004-02-06 Josef Zlomek <zlomekj@suse.cz> 42809 Daniel Berlin <dberlin@dberlin.org> 42810 42811 Josef Zlomek <zlomekj@suse.cz> 42812 * Makefile.in (var-tracking.o): New. 42813 * common.opt (fvar-tracking): New. 42814 * flags.h (flag_var_tracking): New. 42815 * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added. 42816 * opts.c (common_handle_option): Add OPT_fvar_tracking. 42817 * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added. 42818 * rtl.c (note_insn_name): Likewise. 42819 * rtl.def (VAR_LOCATION): New. 42820 * rtl.h (NOTE_VAR_LOCATION): New. 42821 (NOTE_VAR_LOCATION_DECL): New. 42822 (NOTE_VAR_LOCATION_LOC): New. 42823 (enum insn_note): NOTE_INSN_VAR_LOCATION was added. 42824 (variable_tracking_main): New exported function. 42825 * timevar.def (TV_VAR_TRACKING): New. 42826 * toplev.c (enum dump_file_index): Added DFI_vartrack. 42827 (dump_file): "vartrack" was added (-dV). 42828 (flag_var_tracking): New. 42829 (f_options): "var-tracking" was added. 42830 (rest_of_handle_variable_tracking): New function. 42831 (rest_of_compilation): Run variable tracking. 42832 (process_options): If user has not specified flag_var_tracking set it 42833 according to optimize, debug_info_level and debug_hooks. 42834 * tree.h (frame_base_decl): New. 42835 * var-tracking.c: New file. 42836 * config/ia64/ia64.c (ia64_flag_var_tracking): New variable. 42837 (ia64_override_options): Set flags to run variable tracking in machine 42838 dependent reorg instead of toplev.c. 42839 (ia64_reorg): Run variable tracking if wanted. 42840 * doc/invoke.texi: Mention variable tracking in -dV, 42841 add and -fvar-tracking. 42842 * doc/passes.texi: Added variable tracking pass. 42843 42844 Daniel Berlin <dberlin@dberlin.org> 42845 * debug.h (struct gcc_debug_hooks): Added var_location debug hook. 42846 * dbxout.c (dbx_debug_hooks): Likewise. 42847 (xcoff_debug): Likewise. 42848 * debug.c (do_nothing_debug_hooks): Likewise. 42849 * dwarf2out.c (dwarf2_debug_hooks): Likewise. 42850 * dwarfout.c (dwarf_debug_hooks): Likewise. 42851 * sdbout.c (sdb_debug_hooks): Likewise. 42852 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 42853 * final.c (final_scan_insn): Call var_location debug hook for each 42854 NOTE_INSN_VAR_LOCATION. 42855 428562004-02-06 Jan Hubicka <jh@suse.cz> 42857 42858 * flow.c (update_life_info): Allocate reg_deaths when called from 42859 scheudler. 42860 (attempt_auto_inc): Update life ranges accordingly. 42861 428622004-02-06 Ulrich Weigand <uweigand@de.ibm.com> 42863 42864 PR debug/11816 42865 * dwarf2out.c (gen_decl_die): Handle anonymous struct members. 42866 428672004-02-06 Ulrich Weigand <uweigand@de.ibm.com> 42868 42869 * cfganal.c (flow_call_edges_add): Never split a libcall block. 42870 428712004-02-06 Daniel Berlin <dberlin@dberlin.org> 42872 42873 * dwarf2out.c (output_loc_list): Don't use deltas if we have 42874 a separate line info table in use. 42875 Use the correct size for terminators. 42876 (output_die): Use offset, not delta. 42877 428782004-02-06 H.J. Lu <hongjiu.lu@intel.com> 42879 42880 * doc/invoke.texi: Remove the pni option from -mfpmath=. 42881 428822004-02-06 Jan Hubicka <jh@suse.cz> 42883 42884 * recog.c (split_all_insns): Do not update reg info. 42885 * regrename.c (regrename_optimize): Likewise. 42886 * toplev.c (rest_of_handle_reorder_blocks): Likewise. 42887 * flow.c (struct propagate_block_info): Add insn_num field. 42888 (reg_deaths): New array. 42889 (life_analysis): Free reg_deaths info. 42890 (allocate_reg_life_data): Allocate reg_deaths array. 42891 (propagate_one_insn): Use new array. 42892 (init_propagate_block): Initialize it. 42893 (free_propagate_block_info): Finish compuation of 42894 REG_LIVE_LENGTH 42895 (attempt_auto_inc): Sanity check that REG_INFO is not 42896 computed at same time. 42897 (mark_used_regs): Update new array. 42898 42899 * reg-stack.c (subst_stack_regs): Unshare clobbers before 42900 substitution. 42901 429022004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42903 42904 * config/s390/s390.md (*extendsiqi2_short_displ): Change to 42905 *extendqisi2_short_displ. 42906 429072004-02-06 Alan Modra <amodra@bigpond.net.au> 42908 42909 * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco. 42910 * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS. 42911 (emit_library_call_value_1): Likewise pass nargs. 42912 * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here. 42913 * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS. 42914 * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args 42915 parameter instead of scanning TYPE_ARGS_TYPES to count args. 42916 * config/rs6000/rs6000-protos.h (init_cumulative_args): Update 42917 prototype. 42918 * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg. 42919 (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000. 42920 (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0. 42921 * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to 42922 INIT_CUMULATIVE_ARGS. 42923 * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update. 42924 * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h, 42925 config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, 42926 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h, 42927 config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h, 42928 config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h, 42929 config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h, 42930 config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h, 42931 config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h, 42932 config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h, 42933 config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, 42934 config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise. 42935 429362004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42937 42938 * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever 42939 possible. 42940 429412004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42942 42943 * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL 42944 note containing (plus (reg) (const_int)), where reg is an 42945 eliminable reg, then perform the register elimination without 42946 depending on eliminate_regs(). 42947 429482004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42949 42950 * config/arc/arc.c (arc_return_in_memory): Check the return 42951 value of int_size_in_bytes against -1. Don't check 42952 TREE_ADDRESSABLE. 42953 * config/avr/avr.c (avr_return_in_memory): Check the return 42954 value of int_size_in_bytes against -1. 42955 * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise. 42956 * config/m68hc11/m68hc11.c (m68hc11_return_in_memory): 42957 Likewise. 42958 * config/mcore/mcore.c (mcore_return_in_memory): Likewise. 42959 * config/stormy16/stormy16.c (xstormy16_return_in_memory): 42960 Likewise. 42961 429622004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42963 42964 * config/frv/frv-protos.h: Remove the prototype for 42965 frv_setup_incoming_varargs. 42966 * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New. 42967 (frv_setup_incoming_varargs): Make it static. 42968 * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove. 42969 429702004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42971 42972 * config/fr30/fr30-protos.h: Remove the prototype for 42973 fr30_setup_incoming_varargs. 42974 Update the prototypes for fr30_num_arg_regs and 42975 fr30_function_arg_partial_nregs. 42976 * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New. 42977 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 42978 (fr30_setup_incoming_varargs): Make it static. 42979 Add argument second_time. Don't do anything when second_time 42980 is nonzero. 42981 (fr30_num_arg_regs): Change the type of the first argument to 42982 enum machine_mode. 42983 (fr30_function_arg_partial_nregs): Change the type of the 42984 second argument to enum machine_mode. 42985 * config/fr30/fr30.h (STRUCT_VALUE): Remove. 42986 (SETUP_INCOMING_VARARGS): Remove. 42987 429882004-02-06 Kazu Hirata <kazu@cs.umass.edu> 42989 42990 * config/arc/arc-protos.h: Remove the prototype for 42991 arc_setup_incoming_varargs. 42992 * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New. 42993 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 42994 (arc_setup_incoming_varargs): Make it static. 42995 (arc_external_libcall): Likewise. 42996 * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove. 42997 Remove the commented-out definition of 42998 ASM_OUTPUT_EXTERNAL_LIBCALL. 42999 430002004-02-05 SUGIOKA Toshinobu <sugioka@itonet.co.jp> 43001 43002 * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR) 43003 to $$(slibdir) in the installation commands. 43004 430052004-02-05 David Edelsohn <edelsohn@gnu.org> 43006 43007 * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs 43008 with inner_regno, not regno. 43009 * rtlanal.c (refers_to_regno_p): Same. 43010 430112004-02-05 Kazu Hirata <kazu@cs.umass.edu> 43012 43013 * config.gcc: Remove i370 support. 43014 430152004-02-05 Kelley Cook <kcook@gcc.gnu.org> 43016 43017 * doc/install.texi: Update automake and autoconf version 43018 requirements. Note where to find gcj automake version. 43019 430202004-02-05 Kelley Cook <kcook@gcc.gnu.org> 43021 43022 * Makefile.in (generate-manpages): Move dependencies to ... 43023 (man): here. 43024 * doc/makefile.texi: Document new targets. 43025 * doc/sourcebuild.texi (Make-lang.in): Document new langhooks. 43026 430272004-02-05 Kelley Cook <kcook@gcc.gnu.org> 43028 43029 PR/13485 43030 Makefile.in (srcextra): Add a level of indirection to ... 43031 (gcc.srcextra): ... here. 43032 (po-generated): Delete. 43033 (po/$(PACKAGE).pot: Use srcextra instead of po-generated. Depend on 43034 options.c. 43035 (start.encap): Remove superfluous lang.srcextra dependency. 43036 objc/Make-lang.in (po-generated): Delete. 43037 430382004-02-05 Kazu Hirata <kazu@cs.umass.edu> 43039 43040 * config/ia64/ia64.c (REG_GP): Remove. 43041 430422004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 43043 43044 * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. 43045 430462004-02-05 Devang Patel <dpatel@apple.com> 43047 43048 * dwarf2out.c (force_type_die): Look up input type itself 43049 instead of root_type() of type. 43050 430512004-02-05 Andreas Krebbel <krebbel1@de.ibm.com> 43052 43053 * config/s390/s390.md ("*tmqidi_ext"): New insn. 43054 ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old 43055 pre-reload splitters are transformed to post-reload 43056 define_insn_and_split patterns. 43057 ("*tmqisi_ext"): Renamed old "*tmqi_ext". 43058 430592004-02-05 Kazu Hirata <kazu@cs.umass.edu> 43060 43061 * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with 43062 TARGET_PROMOTE_PROTOTYPES. 43063 430642004-02-05 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 43065 43066 PR middle-end/13750 43067 Revert: 43068 2004-01-15 Geoffrey Keating <geoffk@apple.com> 43069 PR pch/13361 43070 * c-typeck.c (constructor_asmspec): Delete. 43071 (struct initializer_stack): Delete field 'asmspec'. 43072 (start_init): Delete saving of asmspec. 43073 (finish_init): Don't update constructor_asmspec. 43074 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. 43075 * stmt.c (expand_asm): Duplicate strings from tree. 43076 (expand_asm_operands): Likewise. 43077 * tree.c (tree_size): Update computation of size of STRING_CST. 43078 (make_node): Don't make STRING_CST nodes. 43079 (build_string): Allocate string with tree node. 43080 * tree.def (STRING_CST): Update comment. 43081 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. 43082 (tree_string): Place contents of string in tree node. 43083 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string 43084 from tree. 43085 430862004-02-05 Joseph S. Myers <jsm@polyomino.org.uk> 43087 43088 * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to 43089 msgid. 43090 430912004-02-05 Dorit Naishlos <dorit@il.ibm.com> 43092 43093 * config/rs6000/altivec.md (*movv4si_internal): At least one 43094 operand must be altivec_register_operand. 43095 (*movv8hi_internal1): Likewise. 43096 (*movv16qi_internal1): Likewise. 43097 (*movv4sf_internal1): Likewise. 43098 430992004-02-05 David Edelsohn <edelsohn@gnu.org> 43100 43101 * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr. 43102 * configure: Regenerate. 43103 431042004-02-05 Jonathan Wakely <redi@gcc.gnu.org> 43105 43106 * doc/install.texi: Update description of --gxx-include-dir to 43107 give correct default value. 43108 431092004-02-05 Kazu Hirata <kazu@cs.umass.edu> 43110 43111 * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace 43112 8 with MAC_REG. 43113 431142004-02-05 Kazu Hirata <kazu@cs.umass.edu> 43115 43116 * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with 43117 gen_rtx_PARALLEL. 43118 431192004-02-05 Kazu Hirata <kazu@cs.umass.edu> 43120 43121 * emit-rtl.c: Update the comment about the file. 43122 431232004-02-05 Joseph S. Myers <jsm@polyomino.org.uk> 43124 43125 * sourcebuild.texi (Test Idioms): Update testcase naming 43126 conventions. 43127 431282004-02-04 Per Bothner <per@bothner.com> 43129 43130 Partially revert/redo 2003-10-01 change; fix -fworking-directory. 43131 * c-ppoutput.c (pp_dir_change): New function. 43132 * c-common.h (pp_dir_change): New declaration. 43133 * cpplib.h (struct cpp_options): Remove working_directory field. 43134 * cppinit.c (cpp_find_main_file, cpp_push_main_file): Merge back to 43135 (cpp_read_main_file): as before 10-01. Call _cpp_stack_file. 43136 Don't handle -fworking_directory here, but in c_common_post_options. 43137 (read_original_directory): Don't back up when done. 43138 Don't clear no-longer used working_directory flag. 43139 * cpplib.h: Update declarations to match. 43140 * c-lex.c (cb_dir_change): Move to c-opts.c. 43141 (init_c_lex): Don't set dir_change callback here, since we want 43142 to set it even if flag_preprocess_only. 43143 * c-opts.c (cb_dir_change): Function moved from c-lex.c. 43144 (c_common_post_options): Set dir_change callback. 43145 Call pp_dir_change if approporiate. 43146 (finish_options): Don't call cpp_find_main_file here. Hence remove 43147 unneeded parameter and result. Do LC_RENAME for <built-in>. 43148 (c_common_post_options): Call cpp_read_main_file here instead. 43149 (c_common_init): Update accordingly. 43150 (push_command_line_include): Don't cpp_push_main_file. 43151 Do LC_RENAME rather than LC_LEASE to get back to main file. 43152 Compared to pre-10-01 version, inline cpp_rename_to_main_file. 43153 (c_common_parse_file): Call cpp_read_main_file for subsequent main 43154 files, but call finish_options for all files. 43155 * c-opts.c (sanitize_cpp_opts): Don't set cpp_opts->working_directory. 43156 * fix-header.c (read_scan_file): Call cpp_read_main_file instead of 43157 cpp_find_main_file + cpp_push_main_file. 43158 * c-lex.c (fe_file_change): Don't set main_input_filename here. 43159 * opts.c (handle_options): Only set main_input_filename first time. 43160 431612004-02-05 Ian Lance Taylor <ian@wasabisystems.com> 43162 43163 * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma. 43164 431652004-02-04 Geoffrey Keating <geoffk@apple.com> 43166 43167 * reload.c (find_equiv_reg): When checking for register overlap, 43168 don't index hard_regno_nregs with a pseudo-reg. 43169 431702004-02-04 Ulrich Weigand <uweigand@de.ibm.com> 43171 43172 * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx(). 43173 431742004-02-04 David Edelsohn <edelsohn@gnu.org> 43175 43176 * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno, 43177 against FIRST_PSEUDO_REGISTER. 43178 431792004-02-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 43180 43181 * Makefile.in: Move target, host overrides after per-language 43182 fragments. 43183 43184 * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear. 43185 (GNATLIBCFLAGS): Remove -g. 43186 431872004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43188 43189 * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c, 43190 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, 43191 config/ia64/ia64.c, config/ia64/unwind-ia64.c, 43192 config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c, 43193 config/pdp11/pdp11.c, config/rs6000/rs6000.c, 43194 config/sparc/sparc.c, config/vax/vax.c: Revert the 43195 replacements of "FALLTHRU" with "Fall through" done in the 43196 previous patch. 43197 431982004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43199 43200 * config/darwin.c, config/darwin.h, config/freebsd-spec.h, 43201 config/arm/arm.c, config/arm/arm.md, 43202 config/cris/cris-protos.h, config/fr30/fr30.c, 43203 config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h, 43204 config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c, 43205 config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h, 43206 config/ip2k/ip2k.md, config/ip2k/libgcc.S, 43207 config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h, 43208 config/m68k/m68k.c, config/m68k/netbsd-elf.h, 43209 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md, 43210 config/ns32k/netbsd.h, config/ns32k/ns32k.c, 43211 config/ns32k/ns32k.h, config/pdp11/pdp11.h, 43212 config/rs6000/darwin-ldouble.c, config/s390/s390.h, 43213 config/s390/s390.md, config/sparc/netbsd-elf.h, 43214 config/sparc/openbsd.h, config/sparc/sparc.c, 43215 config/xtensa/lib2funcs.S: Fix comment formatting. 43216 432172004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43218 43219 * config/alpha/alpha.c, config/arc/arc.c, 43220 config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h, 43221 config/arm/arm1026ejs.md, config/arm/arm1136jfs.md, 43222 config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c, 43223 config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md, 43224 config/i386/i386.c, config/i386/i386.h, config/i386/i386.md, 43225 config/ia64/ia64.c, config/ia64/unwind-ia64.c, 43226 config/iq2000/iq2000.c, config/m32r/m32r.c, 43227 config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h, 43228 config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c, 43229 config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c, 43230 config/rs6000/rs6000.h, config/sparc/sparc.c, 43231 config/vax/vax.c: Fix comment typos. Follow spelling 43232 conventions. 43233 432342004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43235 43236 * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h, 43237 caller-save.c, df.h, genconfig.c, global.c, lcm.c, 43238 ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c, 43239 sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md, 43240 config/arm/fpa.md, config/arm/iwmmxt.md, 43241 config/arm/netbsd-elf.h, config/arm/netbsd.h, 43242 config/m68hc11/m68hc11.md, config/mips/iris5.h, 43243 config/mn10300/mn10300.md, config/rs6000/altivec.md, 43244 config/sparc/netbsd-elf.h: Update copyright. 43245 432462004-02-04 Eric Botcazou <ebotcazou@libertysurf.fr> 43247 43248 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 43249 for all modes whose size is greater than 8 bytes if ARCH32. 43250 (sparc_va_arg): Handle all modes whose size is greater than 8 bytes 43251 by reference if ARCH32. 43252 432532004-02-04 Aldy Hernandez <aldyh@redhat.com> 43254 43255 * cgraphunit.c (cgraph_postorder): Fix typo in comment. 43256 432572004-02-04 Ulrich Weigand <uweigand@de.ibm.com> 43258 43259 * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move 43260 to before adddi3 insn patterns. 43261 ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31", 43262 "reload_insi"): Move to before addsi3 insn patterns. 43263 432642004-02-04 Mark Mitchell <mark@codesourcery.com> 43265 43266 * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P 43267 parameter. Use it instead of current_function_is_thunk. 43268 * function.h (struct function): Update documentation for is_thunk. 43269 * tree.h (CALL_FROM_THUNK_P): New macro. 43270 * config/alpha/alpha.c (alpha_sa_mask): Do not check 43271 no_new_pseudos when testing current_function_is_thunk. 43272 * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse. 43273 432742004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43275 43276 * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with 43277 TARGET_SETUP_INCOMING_VARARGS. 43278 432792004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43280 43281 * emit-rtl.c (gen_rtx): Remove. 43282 * genattrtab.c: Don't mention gen_rtx in a comment. 43283 * rtl.h: Remove the prototype for gen_rtx. 43284 * doc/md.texi: Replace gen_rtx with gen_rtx_REG. 43285 432862004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43287 43288 * config/arc/arc.h, config/fr30/fr30.h 43289 (SETUP_INCOMING_VARARGS): Remove the target-independent 43290 comments. 43291 * doc/tm.texi: Don't mention deprecated target macros. 43292 432932004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43294 43295 * config/fr30/fr30.h (FUNCTION_VALUE): Remove the 43296 target-independent comment. 43297 432982004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43299 43300 * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't 43301 mention deprecated target macros. 43302 433032004-02-04 Kazu Hirata <kazu@cs.umass.edu> 43304 43305 * config.gcc: Remove obsolete ports and configurations. 43306 * config/linux-aout.h, config/netware.h, 43307 config/t-linux-gnulibc1, config/d30v/abi, 43308 config/d30v/d30v-protos.h, config/d30v/d30v.c, 43309 config/d30v/d30v.h, config/d30v/d30v.md, 43310 config/d30v/libgcc1.asm, config/d30v/t-d30v, 43311 config/dsp16xx/dsp16xx-modes.def, 43312 config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, 43313 config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md, 43314 config/i370/README, config/i370/i370-c.c, 43315 config/i370/i370-protos.h, config/i370/i370.c, 43316 config/i370/i370.h, config/i370/i370.md, config/i370/linux.h, 43317 config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370, 43318 config/i386/freebsd-aout.h, config/i386/linux-aout.h, 43319 config/i386/moss.h, config/i386/netware.h, 43320 config/i386/svr3.ifile, config/i386/svr3dbx.h, 43321 config/i386/svr3gas.h, config/i386/svr3z.ifile, 43322 config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h, 43323 config/i960/i960-c.c, config/i960/i960-coff.h, 43324 config/i960/i960-modes.def, config/i960/i960-protos.h, 43325 config/i960/i960.c, config/i960/i960.h, config/i960/i960.md, 43326 config/i960/rtems.h, config/i960/t-960bare, 43327 config/m68k/hp310.h, config/m68k/hp320.h, 43328 config/m68k/hp320base.h, config/m68k/m68kv4.h, 43329 config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320: 43330 Remove. 43331 * doc/extend.texi, doc/install.texi, doc/invoke.texi, 43332 doc/md.texi: Remove mentions of obsolete ports. 43333 433342004-02-04 Jan Hubicka <jh@suse.cz> 43335 43336 * alias.c (find_base_term, get_addr): Do not dereference NULL 43337 pointer when all VALUE's locations has been invalidated. 43338 (rtx_equal_for_memref_p): Simplify checking of VALUEs. 43339 433402004-02-03 Wolfgang Bangerth <bangerth@dealii.org> 43341 43342 * doc/invoke.texi (x86 options): Fix spelling/wording. 43343 433442004-02-03 Richard Sandiford <rsandifo@redhat.com> 43345 43346 * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to 43347 put the original string in a comment. 43348 * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument. 43349 * config/mips/mips.c (mips_output_ascii): Likewise. 43350 * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly. 43351 433522004-02-03 Kazu Hirata <kazu@cs.umass.edu> 43353 43354 * system.h (GIV_SORT_CRITERION): Poison. 43355 * config/avr/avr.h (GIV_SORT_CRITERION): Remove. 43356 * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise. 43357 433582004-02-03 Roger Sayle <roger@eyesopen.com> 43359 43360 PR target/9348 43361 * expr.c (expand_expr_real) <MULT_EXPR>: When performing widening 43362 multiplies with a multiplication of the wrong signedness, its the 43363 signedness of the multiplication that we've performed that needs to 43364 be passed to expand_mult_highpart_adjust. Avoid emitting a nop-move 43365 if expand_mult_highpart_adjust places the result in target. 43366 433672004-02-03 Richard Henderson <rth@redhat.com> 43368 43369 * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings. 43370 433712004-02-03 J"orn Rennecke <joern.rennecke@superh.com> 43372 43373 * config.gcc (sh[234]l): Use little endian fragments. 43374 433752004-02-03 Paul Koning <pkoning@equallogic.com> 43376 43377 * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls. 43378 * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add. 43379 * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f, 43380 encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11 43381 floating point format. 43382 (pdp11_f_format, pdp11_d_format): New real_format descriptors for 43383 the above functions. 43384 (output_move_quad): Output float values in correct target format. 43385 (legitimate_const_double_p): New function. 43386 * config/pdp11/pdp11.h: Fix typos. 43387 (FLOAT_WORDS_BIG_ENDIAN): Add definition. 43388 (TARGET_FLOAT_FORMAT): Ditto. 43389 (pdp11_f_format, pdp11_d_format): Add external declarations. 43390 (MAX_REGS_PER_ADDRESS): Corrected. 43391 (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p(). 43392 (PRINT_OPERAND): Output float literals in target format. 43393 433942004-02-03 Mark Mitchell <mark@codesourcery.com> 43395 43396 PR c++/13975 43397 * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and 43398 TI_PRIVATE. 43399 (access_public_node): Redefine. 43400 (access_protected_node): Likewise. 43401 (access_private_node): Likewise. 43402 * tree.c (build_common_tree_nodes): Create access_public_node, 43403 access_protected_node, and access_private_node. 43404 434052004-02-03 Steve Ellcey <sje@cup.hp.com> 43406 43407 * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value. 43408 (MASK_INLINE_INT_DIV_THR): Ditto. 43409 (MASK_INLINE_SQRT_LAT): Ditto. 43410 (MASK_INLINE_SQRT_THR): Ditto. 43411 (MASK_DWARF2_ASM): Ditto. 43412 (MASK_EARLY_STOP_BITS): Ditto. 43413 434142004-02-02 Paul Brook <paul@codesourcery.com> 43415 43416 Merge from csl-arm-branch. 43417 43418 2004-01-30 Paul Brook <paul@codesourcery.com> 43419 43420 * aof.h (REGISTER_NAMES): Add vfp reg names 43421 (ADDITIONAL_REGISTER_NAMES): Ditto. 43422 * aout.h (REGISTER_NAMES): Ditto. 43423 (ADDITIONAL_REGISTER_NAMES): Ditto. 43424 * arm-protos.h: Update/Add Prototypes. 43425 * arm.c (init_fp_table): Rename from init_fpa_table. Update users. 43426 Only allow 0.0 for VFP. 43427 (fp_consts_inited): Rename from fpa_consts_inited. Update users. 43428 (values_fp): Rename from values_fpa. Update Users. 43429 (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa. 43430 Update users. Only check valid constants for this hardware. 43431 (arm_float_rhs_operand): Rename from fpa_rhs_operand. Update Users. 43432 Only allow consts for FPA. 43433 (arm_float_add_operand): Rename from fpa_add_operand. Update users. 43434 Only allow consts for FPA. 43435 (use_return_insn): Check for saved VFP regs. 43436 (arm_legitimate_address_p): Handle VFP DFmode addressing. 43437 (arm_legitimize_address): Ditto. 43438 (arm_general_register_operand): New function. 43439 (vfp_mem_operand): New function. 43440 (vfp_compare_operand): New function. 43441 (vfp_secondary_reload_class): New function. 43442 (arm_float_compare_operand): New function. 43443 (vfp_print_multi): New function. 43444 (vfp_output_fstmx): New function. 43445 (vfp_emit_fstm): New function. 43446 (arm_output_epilogue): Output VPF reg restore code. 43447 (arm_expand_prologue): Output VFP reg save code. 43448 (arm_print_operand): Add 'P'. 43449 (arm_hard_regno_mode_ok): Return modes for VFP regs. 43450 (arm_regno_class): Return classes for VFP regs. 43451 (arm_compute_initial_elimination_offset): Include space for VFP regs. 43452 (arm_get_frame_size): Ditto. 43453 * arm.h (FIXED_REGISTERS): Add VFP regs. 43454 (CALL_USED_REGISTERS): Ditto. 43455 (CONDITIONAL_REGISTER_USAGE): Enable VFP regs. 43456 (FIRST_VFP_REGNUM): Define. 43457 (LAST_VFP_REGNUM): Define. 43458 (IS_VFP_REGNUM): Define. 43459 (FIRST_PSEUDO_REGISTER): Include VFP regs. 43460 (HARD_REGNO_NREGS): Handle VFP regs. 43461 (REG_ALLOC_ORDER): Add VFP regs. 43462 (enum reg_class): Add VFP_REGS. 43463 (REG_CLASS_NAMES): Ditto. 43464 (REG_CLASS_CONTENTS): Ditto. 43465 (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs. 43466 (REG_CLASS_FROM_LETTER): Add 'w'. 43467 (EXTRA_CONSTRAINT_ARM): Add 'U'. 43468 (EXTRA_MEMORY_CONSTRAINT): Define. 43469 (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs. 43470 (SECONDARY_INPUT_RELOAD_CLASS): Ditto. 43471 (REGISTER_MOVE_COST): Ditto. 43472 (PREDICATE_CODES): Add arm_general_register_operand, 43473 arm_float_compare_operand and vfp_compare_operand. 43474 * arm.md (various): Rename as above. 43475 (divsf3): Enable when TARGET_VFP. 43476 (divdf3): Ditto. 43477 (movdfcc): Ditto. 43478 (sqrtsf2): Ditto. 43479 (sqrtdf2): Ditto. 43480 (arm_movdi): Disable when TARGET_VFP. 43481 (arm_movsi_insn): Ditto. 43482 (movsi): Only split with general regs. 43483 (cmpsf): Use arm_float_compare_operand. 43484 (push_fp_multi): Restrict to TARGET_FPA. 43485 (vfp.md): Include. 43486 * vfp.md: New file. 43487 * fpa.md (various): Rename as above. 43488 * doc/md.texi: Document ARM w and U constraints. 43489 43490 2004-01-15 Paul Brook <paul@codesourcery.com> 43491 43492 * config.gcc: Add with_fpu. Allow with-float=softfp. 43493 * config/arm/arm.c (arm_override_options): Rename *-s to *s. 43494 Break out of loop when we find a float-abi. Fix typo. 43495 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu". 43496 Set -mfloat-abi=. 43497 * doc/install.texi: Document --with-fpu. 43498 43499 2003-01-14 Paul Brook <paul@codesourcery.com> 43500 43501 * config.gcc (with_arch): Add armv6. 43502 * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s. 43503 * config/arm/arm.c (arm_overrride_options): Ditto. 43504 43505 2004-01-08 Richard Earnshaw <rearnsha@arm.com> 43506 43507 * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT. 43508 (FL_ARCH6): Renamed from FL_ARCH6J. 43509 (arm_arch3m): Renamed from arm_fast_multiply. 43510 (arm_arch6): Renamed from arm_arch6j. 43511 * arm.h: Update all uses of above. 43512 * arm-cores.def: Likewise. 43513 * arm.md: Likewise. 43514 43515 * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j, 43516 not arm6j. Add entry for arch armv6. 43517 43518 2004-01-07 Richard Earnshaw <rearnsha@arm.com> 43519 43520 * arm.c (arm_emit_extendsi): Delete. 43521 * arm-protos.h (arm_emit_extendsi): Delete. 43522 * arm.md (zero_extendhisi2): Also handle zero-extension of 43523 non-subregs. 43524 (zero_extendqisi2, extendhisi2, extendqisi2): Likewise. 43525 (thumb_zero_extendhisi2): Only match if not v6. 43526 (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2) 43527 (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi) 43528 (thumb_extendqisi2): Likewise. 43529 (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns. 43530 (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns. 43531 (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns. 43532 (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns. 43533 (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete. 43534 (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete. 43535 (arm_zero_extendhisi2addsi): Remove subreg. Add attributes. 43536 (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise. 43537 (arm_extendqisi2addsi): Likewise. 43538 43539 2003-12-31 Mark Mitchell <mark@codesourcery.com> 43540 43541 Revert this change: 43542 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG 43543 + REG addressing modes. 43544 43545 * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG 43546 + REG addressing modes. 43547 43548 2003-12-30 Mark Mitchell <mark@codesourcery.com> 43549 43550 * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept 43551 CONSTANT_P_RTX. 43552 43553 2003-30-12 Paul Brook <paul@codesourcery.com> 43554 43555 * longlong.h: protect arm inlines with !defined (__thumb__) 43556 43557 2003-30-12 Paul Brook <paul@codesourcery.com> 43558 43559 * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__. 43560 43561 2003-12-30 Nathan Sidwell <nathan@codesourcery.com> 43562 43563 * builtins.c (expand_builtin_apply_args_1): Fix typo in previous 43564 change. 43565 43566 2003-12-29 Nathan Sidwell <nathan@codesourcery.com> 43567 43568 * builtins.c (expand_builtin_apply_args_1): Add pretend args size 43569 to the virtual incoming args pointer for downward stacks. 43570 43571 2003-12-29 Paul Brook <paul@codesourcery.com> 43572 43573 * config/arm/arm-cores.def: Add cost function. 43574 * config/arm/arm.c (arm_*_rtx_costs): New functions. 43575 (arm_rtx_costs): Remove 43576 (struct processors): Add rtx_costs field. 43577 (all_cores, all_architectures): Ditto. 43578 (arm_override_options): Set targetm.rtx_costs. 43579 (thumb_rtx_costs): New function. 43580 (arm_rtx_costs_1): Remove cases handled elsewhere. 43581 * config/arm/arm.h (processor_type): Add COSTS parameter. 43582 43583 2003-12-29 Nathan Sidwell <nathan@codesourcery.com> 43584 43585 * config/arm/arm.md (generic_sched): arm926 has its own scheduler. 43586 (arm926ejs.md): Include it. 43587 * config/arm/arm926ejs.md: New pipeline description. 43588 43589 2003-12-24 Paul Brook <paul@codesourcery.com> 43590 43591 * config/arm/arm.c (arm_arch6j): New variable. 43592 (arm_override_options): Set it. 43593 (arm_emit_extendsi): New function. 43594 * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype. 43595 * config/arm/arm.h (arm_arch6j): Declare. 43596 * config/arm/arm.md: Add sign/zero extend insns. 43597 43598 2003-12-23 Paul Brook <paul@codesourcery.com> 43599 43600 * config/arm/arm.c (all_architectures): Add armv6. 43601 * doc/invoke.texi: Document it. 43602 43603 2003-12-19 Paul Brook <paul@codesourcery.com> 43604 43605 * config/arm/arm.md: Add load1 and load_byte "type" attrs. Modify 43606 insn patterns to match. 43607 * config/arm/arm-generic.md: Ditto. 43608 * config/arm/cirrus.md: Ditto. 43609 * config/arm/fpa.md: Ditto. 43610 * config/amm/iwmmxt.md: Ditto. 43611 * config/arm/arm1026ejs.md: Ditto. 43612 * config/arm/arm1135jfs.md: Ditto. Add insn_reservation and bypasses 43613 for 11_loadb. 43614 43615 2003-12-18 Nathan Sidwell <nathan@codesourcery.com> 43616 43617 * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare. 43618 * config/arm/arm.c (arm_adjust_cost): Check shift cost for 43619 TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG. 43620 (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep, 43621 arm_no_early_mul_dep): Correctly deal with conditional execution, 43622 parallels and single shift operations. 43623 (arm_no_early_alu_shift_value_dep): Define. 43624 * arm.md (attr type): Replace 'normal' with 'alu', 43625 'alu_shift' and 'alu_shift_reg'. 43626 (attr core_cycles): Adjust. 43627 (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3, 43628 *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0, 43629 *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp, 43630 *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0, 43631 *arith_shiftsi_compare0_scratch, *sub_shiftsi, 43632 *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch, 43633 *if_shift_move, *if_move_shift, *if_shift_shift): Set type 43634 attribute appropriately. 43635 * config/arm/arm1026ejs.md (alu_op): Adjust. 43636 (alu_shift_op, alu_shift_reg_op): New. 43637 * config/arm/arm1136.md: Add better bypasses for early 43638 registers. Remove load[234] and store[234] bypasses. 43639 (11_alu_op): Adjust. 43640 (11_alu_shift_op, 11_alu_shift_reg_op): New. 43641 43642 2003-12-15 Nathan Sidwell <nathan@codesourcery.com> 43643 43644 * config/arm/arm-protos.h (arm_no_early_store_addr_dep, 43645 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare. 43646 * config/arm/arm.c (arm_no_early_store_addr_dep, 43647 arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define. 43648 * config/arm/arm1026ejs.md: Add load-store bypass. 43649 * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles. 43650 Add bypasses between instructions. 43651 43652 2003-12-10 Paul Brook <paul@codesourcery.com> 43653 43654 * config/arm/arm.c (arm_fpu_model): New variable. 43655 (arm_fload_abi): New variable. 43656 (target_fpe_name): Rename from target_fp_name. 43657 (target_fpu_name): New variable. 43658 (arm_is_cirrus): Remove. 43659 (fpu_desc): New struct. 43660 (all_fpus): Define. 43661 (pf_model_for_fpu): Define. 43662 (all_loat_abis): Define. 43663 (arm_override_options): Set fp arch flags based on -mfpu= 43664 and -float-abi=. 43665 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM. 43666 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM. 43667 (*): Use new TARGET_* flags. 43668 * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove. 43669 (TARGET_HARD_FLOAT): No longer implies TARGET_FPA. 43670 (TARGET_SOFT_FLOAT): Ditto. 43671 (TARGET_SOFT_FLOAT_ABI): New. 43672 (TARGET_MAVERICK): Rename from TARGET_CIRRUS. No longer implies 43673 TARGET_HARD_FLOAT. 43674 (TARGET_VFP): No longer implies TARGET_HARD_FLOAT. 43675 (TARGET_OPTIONS): Add -mfpu=. 43676 (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM. 43677 (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM. 43678 (arm_pf_model): Define. 43679 (arm_float_abi_type): Define. 43680 (fputype): Add FPUTYPE_VFP. Change SOFT_FPA->NONE 43681 * config/arm/arm.md: Use new TARGET_* flags. 43682 * config/arm/cirrus.md: Ditto. 43683 * config/arm/fpa.md: Ditto. 43684 * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=. 43685 * config/arm/semi.h (ASM_SPEC): Ditto. 43686 * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp. 43687 (FPUTYPE_DEFAULT): Set to VFP. 43688 * doc/invoke.texi: Document -mfpu= and -mfloat-abi=. 43689 43690 2003-11-22 Phil Edwards <phil@codesourcery.com> 43691 43692 PR target/12476 43693 * config/arm/arm.c (arm_output_mi_thunk): In Thumb mode, use 43694 'bx' instead of 'b' to avoid branch range restrictions. Output 43695 the thunk immediately before the thunked-to function. 43696 * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME): Do not emit 43697 .thumb_func if a thunk is being generated. Emit .code 16 along 43698 with .thumb_func if a thunk is not being generated. 43699 43700 2003-11-15 Nicolas Pitre <nico@cam.org> 43701 43702 * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3, 43703 arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns. 43704 * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3. 43705 (lshrdi3_iwmmxt): Renamed from lshrdi3. 43706 * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly. 43707 43708 2003-11-12 Steve Woodford <scw@wasabisystems.com> 43709 Ian Lance Taylor <ian@wasabisystems.com> 43710 43711 * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new 43712 code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__). 43713 43714 2003-11-05 Phil Edwards <phil@codesourcery.com> 43715 43716 * config/arm/arm.md (insn): Add new V6 instruction names. 43717 (generic_sched): New attr. 43718 * config/arm/arm-generic.md: Use generic_sched here. 43719 * config/arm/arm1026ejs.md: Do not model fetch/issue/decode 43720 stages of pipeline. Adjust latency counts accordingly. 43721 * config/arm/arm1136jfs.md: New file. 43722 43723 2003-10-28 Mark Mitchell <mark@codesourcery.com> 43724 43725 * config/arm/arm.h (processor_type): New enumeration type. 43726 (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S, 43727 ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores. 43728 (CPP_CPU_ARCH_SPEC): Likewise. 43729 * config/arm/arm.c (arm_tune): New variable. 43730 (all_cores): Use cores.def. 43731 (all_architectures): Add representative processor. 43732 (arm_override_options): Restructure way in which tuning 43733 information is deduced. 43734 * arm.md: Update "insn" and "type" attributes throughout. 43735 (insn): New attribute. 43736 (type): Compute "mult" from "insn" attribute. Add load2, 43737 load3, load4 alternatives. 43738 (arm automaton): Move to arm-generic.md. 43739 * config/arm/arm-cores.def: New file. 43740 * config/arm/arm-generic.md: Likewise. 43741 * config/arm/arm1026ejs.md: Likewise. 43742 437432004-02-03 Eric Botcazou <ebotcazou@libertysurf.fr> 43744 43745 * doc/invoke.texi (SPARC options): Remove -mflat and 43746 all -mxxx (xxx:chip) options. 43747 * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete. 43748 * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise. 43749 * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise. 43750 * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise. 43751 * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes. 43752 * config/sparc/sparc.c: Likewise. 43753 (sparc_output_function_prologue): Remove TARGET_FLAT handling. 43754 (sparc_nonflat_function_prologue): Rename into sparc_function_prologue. 43755 (sparc_output_function_epilogue): Remove TARGET_FLAT handling. 43756 (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue. 43757 (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete. 43758 (sparc_flat_must_save_register_p): Likewise. 43759 (sparc_flat_compute_frame_size): Likewise. 43760 (sparc_flat_save_restore): Likewise. 43761 (sparc_flat_function_prologue): Likewise. 43762 (sparc_flat_function_epilogue): Likewise. 43763 (sparc_flat_epilogue_delay_slots): Likewise. 43764 (sparc_flat_eligible_for_epilogue_delay): Likewise. 43765 (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling. 43766 * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete. 43767 (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options. 43768 (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling. 43769 (CONDITIONAL_REGISTER_USAGE): Likewise. 43770 (FRAME_POINTER_REQUIRED): Likewise. 43771 (INITIAL_ELIMINATION_OFFSET): Likewise. 43772 (BASE_RETURN_VALUE_REG): Likewise. 43773 (BASE_OUTGOING_VALUE_REG): Likewise. 43774 (BASE_PASSING_ARG_REG): Likewise. 43775 (BASE_INCOMING_ARG_REG): Likewise. 43776 (INCOMING_REGNO): Likewise. 43777 (OUTGOING_REGNO): Likewise. 43778 (LOCAL_REGNO): Likewise. 43779 (DELAY_SLOTS_FOR_EPILOGUE): Likewise. 43780 (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise. 43781 (EPILOGUE_USES): Likewise. 43782 * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7". 43783 ("flat" attribute): Delete. 43784 (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute 43785 handling. 43786 (call followed by jump define_peephole's): Delete. 43787 (exception_receiver): Likewise. 43788 (builtin_setjmp_receiver): Likewise. 43789 * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat. 43790 437912004-02-03 Paolo Bonzini <bonzini@gnu.org> 43792 43793 PR c/11658 43794 PR c/13994 43795 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend 43796 on langhooks.h. 43797 * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h. 43798 * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c: 43799 Include langhooks.h. Replace c_common_truthvalue_conversion 43800 with the truthvalue_conversion language hook throughout. 43801 (expr_no_commas): Call default_conversion before save_expr 43802 for the first term of the production 'x ? : y'. 43803 * c-common.c (c_common_truthvalue_conversion): Remove 43804 obsolete block. Invoke recursively the hook instead 43805 of this function. 43806 * c-convert.c (convert): handle ERROR_MARK_NODE. 43807 * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE 43808 returned by the truthvalue_conversion language hook. 43809 * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use 43810 c_objc_common_truthvalue_conversion. 43811 * c-objc-common.c (c_objc_common_truthvalue_conversion): 43812 New function. 43813 * c-tree.h (c_objc_common_truthvalue_conversion): Declare it. 43814 * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use 43815 c_objc_common_truthvalue_conversion. 43816 438172004-02-03 Kazu Hirata <kazu@cs.umass.edu> 43818 43819 * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead 43820 of gen_rtx. 43821 (LIBCALL_VALUE): Likewise. 43822 * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use 43823 gen_rtx_CC0 instead of gen_rtx. 43824 * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use 43825 gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx. 43826 (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of 43827 gen_rtx. 43828 (m68hc11_emit_logical): Likewise. 43829 438302004-02-03 Kazu Hirata <kazu@cs.umass.edu> 43831 43832 * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c, 43833 config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md, 43834 config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md, 43835 config/m32r/m32r.md, config/m68hc11/m68hc11.c, 43836 config/mips/mips.md, config/mmix/mmix.c, 43837 config/mn10300/mn10300.c, config/mn10300/mn10300.md, 43838 config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c, 43839 config/rs6000/altivec.md, config/s390/s390.c, 43840 config/s390/s390.h, config/s390/s390.md, config/sh/sh.c, 43841 config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c: 43842 Use const0_rtx instead of GEN_INT (0). Do the same for other 43843 constants that are readily available. 43844 438452004-02-03 Kazu Hirata <kazu@cs.umass.edu> 43846 43847 * doloop.c, optabs.c, regmove.c, sched-deps.c, 43848 config/i386/i386.c, config/i386/i386.md: Use const0_rtx 43849 instead of GEN_INT (0). Do the same for other constants that 43850 are readily available. 43851 438522004-02-03 Kazu Hirata <kazu@cs.umass.edu> 43853 43854 * combine.c (simplify_set): Use gen_rtx_fmt_e instead of 43855 gen_rtx. 43856 * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0 43857 instead of gen_rtx. 43858 * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of 43859 gen_rtx. 43860 * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and 43861 gen_rtx_ASHIFT instead of gen_rtx. 43862 (udivmodqi4): Likewise. 43863 438642004-02-02 Richard Henderson <rth@redhat.com> 43865 43866 PR target/13789 43867 * expr.c (store_expr): Use force_operand before emit_move_insn. 43868 438692004-02-02 Jeff Law <law@redhat.com> 43870 Roger Sayle <roger@eyesopen.com> 43871 43872 * tree.c (commutative_tree_code, associative_tree_code): New 43873 functions. 43874 (iterative_hash_expr): Use commutative_tree_code. 43875 * tree.h (commutative_tree_code, associative_tree_code): Declare. 43876 * fold-const.c (operand_equal_p): Use commutative_tree_code 43877 rather than inlining the commutativity check. 43878 (fold): Likewise. 43879 438802004-02-02 Kazu Hirata <kazu@cs.umass.edu> 43881 43882 * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison. 43883 * config/frv/frv-protos.h: Remove the prototype for 43884 frv_function_arg_keep_as_reference. 43885 * config/frv/frv.c (frv_function_arg_keep_as_reference): 43886 Remove. 43887 * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise. 43888 * config/stormy16/stormy16.h: Remove the commented-out 43889 definition of FUNCTION_ARG_KEEP_AS_REFERENCE. 43890 438912004-02-03 Alan Modra <amodra@bigpond.net.au> 43892 43893 PR target/13914 43894 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap 43895 for retaddr_column. 43896 438972004-02-02 Kazu Hirata <kazu@cs.umass.edu> 43898 43899 * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of 43900 gen_rtx. 43901 439022004-02-02 Eric Christopher <echristo@redhat.com> 43903 Zack Weinberg <zack@codesourcery.com> 43904 43905 * c-opts.c (c_common_handle_option): Add -finput-charset. 43906 * c.opt: Ditto. 43907 * cppcharset.c (one_iso88591_to_utf8): Remove. 43908 (convert_iso88591_utf8): Ditto. 43909 (conversion_tab): Remove 8859-1 converter. 43910 (_cpp_input_to_utf8): Remove. 43911 (_cpp_init_iconv_buffer): Ditto. 43912 (_cpp_close_iconv_buffer): Ditto. 43913 (_cpp_convert_input): New function. 43914 (_cpp_default_encoding): Ditto. 43915 * cpphash.h: Add/remove prototypes for above. 43916 * cppfiles.c (read_file_guts): Use _cpp_convert_input. 43917 * cppinit.c (cpp_create_reader): Use _cpp_default_encoding 43918 for narrow execution and input character sets. 43919 * cpplib.c (cpp_push_buffer): Delete uses of removed functions. 43920 * doc/cppopts.texi: Document -finput-charset. 43921 439222004-02-02 David Edelsohn <edelsohn@gnu.org> 43923 43924 * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno, 43925 against FIRST_PSEUDO_REGISTER. 43926 439272004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr> 43928 43929 * doc/invoke.texi (SPARC options): Further improve. 43930 439312004-02-02 Kazu Hirata <kazu@cs.umass.edu> 43932 43933 * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md, 43934 config/h8300/h8300.c, config/ip2k/ip2k.md, 43935 config/iq2000/iq2000.c, config/mips/mips.c, 43936 config/rs6000/rs6000.c, config/rs6000/rs6000.md, 43937 config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c, 43938 config/v850/v850.md: Fix indentation. 43939 439402004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr> 43941 43942 * config/sparc/sparc.c (function_arg_slotno): Align TImode 43943 arguments on a 16-byte boundary in the parameter array if ARCH64. 43944 Split handling of TFmode. 43945 439462004-02-02 Paolo Bonzini <bonzini@gnu.org> 43947 43948 * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]: 43949 Don't test CONSTANT_P (x). 43950 (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART, 43951 ZERO_EXTRACT, SIGN_EXTRACT with the switch statement. 43952 Fix misindentation. 43953 439542004-02-02 Eric Botcazou <ebotcazou@libertysurf.fr> 43955 43956 * doc/invoke.texi (SPARC options): Document that -mflat is deprecated. 43957 439582004-02-02 Kazu Hirata <kazu@cs.umass.edu> 43959 43960 * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md, 43961 config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md, 43962 config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md, 43963 config/iq2000/iq2000.c, config/m32r/m32r.c, 43964 config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md, 43965 config/mn10300/mn10300.c, config/rs6000/rs6000.c, 43966 config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md, 43967 config/stormy16/stormy16.c, config/v850/v850.md, 43968 config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*. 43969 439702004-02-01 Kazu Hirata <kazu@cs.umass.edu> 43971 43972 * config/mcore/mcore.c (block_move_sequence): Replace 43973 gen_rtx_CONST_INT with GEN_INT. 43974 439752004-02-02 Jan Hubicka <jh@suse.cz> 43976 43977 * alias.c (record_set): Use hard_regno_nregs. 43978 * bt-load.c (find_btr_reference, note_btr_set): Likewise. 43979 * builtins.c (apply_args_size): Likewise. 43980 * caller-save.c (setup_save_areas, save_call_clobbered_regs, 43981 mark_set_regs, add_stored_regs, mark_referenced_regs, 43982 insert_restore, insert_save, insert_one_insn): Likewise. 43983 * cfgcleanup.c: Include regs.h 43984 (mark_effect, mentions_nonequal_regs): Likewise. 43985 * cfgrtl.c (mark_killed_regs): Likewise 43986 * combine.c (update_table_tick, record_value_for_reg, 43987 record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p, 43988 reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths, 43989 reg_bitfield_target_p, distribute_notes): Likewise. 43990 * cse.c (mention_regs, insert, invalidate, invalidate_for_call, 43991 exp_equiv_p, cse_insn): Likewise. 43992 * cselib.c (cselib_lookup): Likewise. 43993 (cselib_invalidate_regno, cselib_record_set): Likewise. 43994 * df.c (df_ref_record): Likewise. 43995 * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor): 43996 Likewise. 43997 * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg, 43998 count_or_remove_death_notes_bb): Likewise. 43999 * function.c (aggregate_value_p, keep_stack_depressed): Likewise. 44000 * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts, 44001 mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise. 44002 * integrate.c (mark_stores): Likewise. 44003 * jump.c (delete_prior_computation): Likewise. 44004 * lcm.c (reg_dies, reg_becomes_live): Likewise. 44005 * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise. 44006 * loop.c (LOOP_REGNO_NREGS): Likewise. 44007 * postreload.c (reload_combine, reload_combine_note_store, 44008 reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise. 44009 * ra-colorize.c (combine, color_usable_p, get_free_reg, 44010 calculate_dont_begin, calculate_dont_begin, colorize_one_web, 44011 try_recolor_web, insert_coalesced_conflicts, check_colors, 44012 break_precolored_alias): Likewise. 44013 * ra-debug.c: Include regs.h 44014 (ra_print_rtx_object): Likewise. 44015 * ra-rewrite (choose_spill_colors): Likewise. 44016 (spill_same_color_p, update_spill_colors, spill_is_free): Likewise. 44017 * ra.c (init_ra): Likewise. 44018 * recog.c (reg_fits_class_p, peep2_reg_dead_p, 44019 peep2_find_free_register): Likewise. 44020 * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise. 44021 * regclass.c (hard_regno_nregs): New array. 44022 (init_reg_modes_once): Initialize it. 44023 (choose_hard_reg_mode): Use it. 44024 (record_reg_classes): Likewise. 44025 * regmove.c (mark_flags_life_zones): Likewise. 44026 * regrename.c (note_sets, clear_dead_regs, regrename_optimize, 44027 scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno, 44028 copy_value, maybe_mode_change, find_oldest_value_reg, 44029 copyprop_hardreg_forward_1): 44030 * regs.h (hard_regno_nregs): Declare. 44031 * realod.c (reload_inner_reg_of_subreg): Use it. 44032 (push_reload, combine_reloads, find_dummy_reload, 44033 hard_reg_set_here_p, operands_match_p, decompose, find_reloads, 44034 refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p, 44035 reload_adjust_reg_for_mode): Likewise. 44036 * reload1.c (compute_use_by_pseudos, count_pseudo, 44037 count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live, 44038 spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use, 44039 clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p 44040 allocate_reload_reg, choose_reload_regs, emit_reload_insns, 44041 delete_output_reload): Likewise. 44042 * resource.c (update_live_status, mark_referenced_resources, 44043 mark_set_resources, mark_target_live_regs): Likewise. 44044 * rtlanal.c: Include regs.h 44045 (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p, 44046 dead_or_set_regno_p, find_regno_note, find_reg_fusage, 44047 subreg_regno_offset, subreg_offset_representable_p, 44048 hoist_test_store): Likewise. 44049 * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. 44050 * sched-rgn.c (check_live_1, update_live_1): Likewise. 44051 * stmt.c: Include regs.h 44052 (decl_conflicts_with_clobbers_p): Likewise. 44053 * varasm.c (make_decl_rtl): Likewise. 44054 * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy. 44055 440562004-02-01 Kazu Hirata <kazu@cs.umass.edu> 44057 44058 * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md, 44059 config/arm/linux-gas.h, config/arm/netbsd-elf.h, 44060 config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c, 44061 config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h, 44062 config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c, 44063 config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c, 44064 config/iq2000/iq2000.h, config/m32r/m32r.c, 44065 config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, 44066 config/m68hc11/m68hc11.md, config/m68k/m68k.md, 44067 config/mcore/mcore.c, config/mcore/mcore.h, 44068 config/mcore/mcore.md, config/mips/mips.c, 44069 config/ns32k/ns32k.h, config/ns32k/ns32k.md, 44070 config/rs6000/rs6000.c, config/s390/s390.c, 44071 config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c, 44072 config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace 44073 "gen_rtx (FOO, " with "gen_rtx_FOO (". 44074 440752004-02-01 Kazu Hirata <kazu@cs.umass.edu> 44076 44077 * config/h8300/h8300.md (two peephole2's): New. 44078 440792004-02-01 Eric Botcazou <ebotcazou@libertysurf.fr> 44080 44081 * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3. 44082 (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3. 44083 (ASM_CPU_SPEC): Likewise 44084 * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3. 44085 (ASM_CPU_SPEC): Remove -mcpu=v8plus. Handle -mcpu=ultrasparc3. 44086 440872004-02-01 Roger Sayle <roger@eyesopen.com> 44088 44089 * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations 44090 isn't set, don't call expand_builtin_mathfn_2 to use the pow optab. 44091 (expand_builtin): Always call expand_builtin_pow. 44092 440932004-02-01 Roger Sayle <roger@eyesopen.com> 44094 44095 * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF, 44096 BUILT_IN_SIGNBITL): New GCC builtins. 44097 * builtins.c (expand_builtin_signbit): New function to RTL expand 44098 calls to signbit, signbitf and signbitl as inline intrinsics. 44099 (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*. 44100 (fold_builtin_signbit): New function to perform constant folding 44101 of signbit, signbitf and signbitl. 44102 (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*. 44103 44104 * doc/extend.texi: Document new signbit{,f,l} builtins. 44105 441062004-02-01 Richard Sandiford <rsandifo@redhat.com> 44107 44108 * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s. 44109 441102004-02-01 Chris Demetriou <cgd@broadcom.com> 44111 44112 * config/mips/mips.h (PREDICATE_CODES): Remove entries for 44113 "mips_const_double_ok" and "simple_memory_operand", which were 44114 removed from the MIPS port with the mips-3_4-rewrite branch merge. 44115 * config/mips/mips.c (mips16_lay_out_constants): Update comment 44116 for removal of simple_memory_operand. 44117 441182004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44119 44120 * config/c4x/c4x.md: Use GEN_INT instead of 44121 gen_rtx (CONST_INT, ...). 44122 441232004-01-31 Richard Henderson <rth@redhat.com> 44124 44125 * varasm.c (output_constant_pool): Don't zap the pool. 44126 441272004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44128 44129 * genrecog.c (decision_type): Add DT_const_int. 44130 (write_cond) [DT_const_int]: Print a comparison against small 44131 constant. 44132 (write_node): Simplify comparisons against small constants 44133 before printing tests. 44134 441352004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44136 44137 * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT 44138 instead of gen_rtx_CONST_INT. 44139 441402004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44141 44142 * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT 44143 instead of gen_rtx_CONST_INT. 44144 441452004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44146 44147 * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as 44148 hook_bool_CUMULATIVE_ARGS_false. 44149 * targhooks.c (default_strict_argument_naming): Rename to 44150 hook_bool_CUMULATIVE_ARGS_false. 44151 * targhooks.h: Update the prototype for 44152 default_strict_argument_naming. 44153 441542004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44155 44156 * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". 44157 * config/sh/sh.h: Likewise. 44158 * config/sh/sh.md: Likewise. 44159 441602004-01-31 Eric Botcazou <ebotcazou@libertysurf.fr> 44161 44162 * doc/invoke.texi (SPARC options): Restructure and update. 44163 441642004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44165 44166 * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and 44167 STRICT_ARGUMENT_NAMING): Poison. 44168 * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as 44169 hook_bool_tree_false. 44170 * targhooks.c (default_promote_function_args): Remove. 44171 (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING. 44172 Don't check incoming. 44173 (default_strict_argument_naming): Don't use 44174 STRICT_ARGUMENT_NAMING. 44175 * targhooks.h: Remove the prototype for 44176 default_promote_function_args. 44177 441782004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44179 44180 * config/i386/i386-protos.h: Remove the prototype for 44181 ix86_setup_incoming_varargs. 44182 * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New. 44183 (ix86_setup_incoming_varargs): Make it static. 44184 * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove. 44185 441862004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44187 44188 * alloc-pool.c: Fix comment typos. 44189 * builtin-types.def: Likewise. 44190 * builtins.def: Likewise. 44191 * c-pretty-print.c: Likewise. 44192 * df.h: Likewise. 44193 * reload1.c: Likewise. 44194 441952004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44196 44197 * doc/invoke.texi: Follow spelling conventions. 44198 * doc/tm.texi: Likewise. 44199 442002004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44201 44202 * doc/install.texi: Fix typos. 44203 * doc/invoke.texi: Likewise. 44204 442052004-01-31 Ulrich Weigand <uweigand@de.ibm.com> 44206 44207 * config/s390/s390.c (s390_decompose_address): Do not treat virtual 44208 registers as pointers. 44209 * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode. 44210 442112004-01-31 Paolo Bonzini <bonzini@gnu.org> 44212 44213 * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine 44214 and restore it to gen_lowpart_general on exit. 44215 (gen_lowpart_for_combine): Adjust all callers to go through 44216 gen_lowpart. 44217 * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible 44218 and restore it to gen_lowpart_general on exit. 44219 (gen_lowpart_if_possible): Adjust all callers to go through 44220 gen_lowpart. 44221 * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart. 44222 (gen_lowpart): Declare as pointer to function, initialized to 44223 gen_lowpart_general. 44224 * rtl.h (gen_lowpart): Declare as pointer to function. 44225 442262004-01-31 Kazu Hirata <kazu@cs.umass.edu> 44227 44228 * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (". 44229 * calls.c: Likewise. 44230 * emit-rtl.c: Likewise. 44231 * function.c: Likewise. 44232 * reload1.c: Likewise. 44233 * config/i386/cygming.h: Likewise. 44234 * config/i386/i386.c: Likewise. 44235 * config/i386/winnt.c: Likewise. 44236 442372004-01-30 Dara Hazeghi <dhazeghi@yahoo.com> 44238 44239 PR bootstrap/9249 44240 * doc/install.texi: document --enable-__cxa_atexit option. 44241 * configure.ac: Disable __cxa_atexit if not supported. 44242 * configure: Regenerate. 44243 442442004-01-30 Daniel Berlin <dberlin@dberlin.org> 44245 44246 * ggc-zone.c (ggc_free): New function. 44247 442482004-01-30 Kazu Hirata <kazu@cs.umass.edu> 44249 44250 alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c, 44251 cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h, 44252 flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h, 44253 ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def, 44254 tree-optimize.c, vmsdbgout.c, config/fp-bit.c, 44255 config/alpha/alpha.c, config/alpha/alpha.h, 44256 config/alpha/alpha.md, config/alpha/unicosmk.h, 44257 config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c, 44258 config/c4x/c4x-protos.h, config/c4x/c4x.md, 44259 config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c, 44260 config/frv/frvend.c, config/i386/cygming.h, 44261 config/i386/djgpp.h, config/i386/emmintrin.h, 44262 config/i386/gthr-win32.c, config/i386/i386-interix.h, 44263 config/i386/i386-protos.h, config/i386/openbsd.h, 44264 config/i386/winnt.c, config/i386/xm-mingw32.h, 44265 config/i386/xmmintrin.h, config/ia64/ia64.md, 44266 config/iq2000/iq2000.md, config/m32r/m32r.md, 44267 config/m68k/m68k.md, config/mcore/mcore-elf.h, 44268 config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h, 44269 config/mips/iris5gas.h, config/mips/iris6.h, 44270 config/mips/iris6gas.h, config/mips/linux.h, 44271 config/mips/mips.md, config/mips/netbsd.h, 44272 config/mips/openbsd.h, config/mips/windiss.h, 44273 config/pa/fptr.c, config/rs6000/aix.h, 44274 config/rs6000/altivec.h, config/rs6000/darwin.h, 44275 config/rs6000/xcoff.h, config/s390/s390-protos.h, 44276 config/s390/s390.c, config/s390/s390.h, config/s390/s390.md, 44277 config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h, 44278 config/sparc/sol2.h: Update copyright. 44279 442802004-01-30 Kelley Cook <kcook@gcc.gnu.org> 44281 44282 * Makefile.in (abs_docdir, abs_srcdir): Define. 44283 (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir). 44284 442852004-01-30 Kazu Hirata <kazu@cs.umass.edu> 44286 44287 * genconfig.c (main): Have CC0_P check its operand even on a 44288 target without cc0. 44289 442902004-01-30 Kazu Hirata <kazu@cs.umass.edu> 44291 44292 * config/alpha/alpha.c: Remove mentions of deprecates macros 44293 in comments, remove some target-independent comments about target 44294 macros, and/or add minimal function comments for target hook 44295 implementations. 44296 * config/avr/avr.c: Likewise. 44297 * config/ia64/ia64.h: Likewise. 44298 * config/ip2k/ip2k.c: Likewise. 44299 * config/iq2000/iq2000.c: Likewise. 44300 * config/m32r/m32r.h: Likewise. 44301 * config/m68hc11/m68hc11.c: Likewise. 44302 * config/mcore/mcore.c: Likewise. 44303 * config/mmix/mmix.c: Likewise. 44304 * config/mn10300/mn10300.c: Likewise. 44305 * config/pa/pa.c: Likewise. 44306 * config/pdp11/pdp11.c: Likewise. 44307 * config/rs6000/rs6000.h: Likewise. 44308 * config/sh/sh.c: Likewise. 44309 * config/sh/sh.h: Likewise. 44310 * config/sparc/sparc.c: Likewise. 44311 * config/sparc/sparc.h: Likewise. 44312 * config/stormy16/stormy16.c: Likewise. 44313 * config/xtensa/xtensa.c: Likewise. 44314 443152004-01-30 Ulrich Weigand <uweigand@de.ibm.com> 44316 44317 PR optimization/12147 44318 * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with 44319 RELOAD_FOR_OPADDR_ADDR. 44320 (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register 44321 might be reused as RELOAD_FOR_OPADDR_ADDR register. 44322 443232004-01-30 Jan Hubicka <jh@suse.cz> 44324 44325 * reload.c (get_secondary_mem): Fix updating of 44326 secondary_memlocs_elim_used. 44327 443282004-01-30 Richard Henderson <rth@redhat.com> 44329 44330 * varasm.c (struct rtx_const, struct pool_constant): Remove. 44331 (MAX_RTX_HASH_TABLE): Remove. 44332 (const_rtx_hash_table, const_rtx_sym_hash_table): Remove. 44333 (first_pool, last_pool, pool_offset): Remove. 44334 (struct rtx_constant_pool): Split out from ... 44335 (struct varasm_status): ... here. Reference one via pointer. 44336 (struct constant_descriptor_rtx): Merge struct pool_constant. 44337 (SYMHASH): Remove. 44338 (decode_rtx_const): Remove. 44339 (const_hash_rtx, compare_constant_rtx): Remove. 44340 (record_constant_rtx): Remove. 44341 (const_desc_rtx_hash, const_desc_rtx_eq): New. 44342 (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New. 44343 (const_rtx_hash_1, const_rtx_hash): New. 44344 (init_varasm_status): Allocate a rtx_constant_pool, and its hashes. 44345 (simplify_subtraction): Use simplify_rtx. 44346 (force_const_mem): Rewrite to use new data structures. 44347 (find_pool_constant): Likewise. 44348 (get_pool_constant, get_pool_constant_mark, 44349 get_pool_constant_for_function, get_pool_mode, 44350 get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise. 44351 (output_constant_pool_2): Split out from output_constant_pool. 44352 (output_constant_pool_1): Likewise. Use new pool datastructures. 44353 (output_constant_pool): Zap entire pool datastructure. 44354 (mark_constant): Use new pool datastructures. 44355 (mark_constants): Use for_each_rtx. 44356 (mark_constant_pool): Use new pool datastructures. 44357 443582004-01-30 Fariborz Jahanian <fjahanian@apple.com> 44359 44360 * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0. 44361 Copy operands[1] to pseudo for simplify_gen_subreg. 44362 443632004-01-30 Kazu Hirata <kazu@cs.umass.edu> 44364 44365 * gcse.c (bypass_block): Fix a typo in the previous check-in 44366 to the file. 44367 443682004-01-30 Andrew Pinski <pinskia@physics.uc.edu> 44369 44370 * toplev.c: Include alloc-pool.h. 44371 * Makefile.in (toplev.c): Update dependencies. 44372 443732004-01-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 44374 44375 * combine.c (simplify_shift_const, case XOR): Be careful when 44376 commuting XOR with ASHIFTRT. 44377 443782004-01-30 Kazu Hirata <kazu@cs.umass.edu> 44379 Eric Botcazou <ebotcazou@libertysurf.fr> 44380 44381 * config/sparc/sparc-protos.h: Remove the prototype for 44382 sparc_builtin_saveregs. 44383 * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 44384 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 44385 (TARGET_PROMOTE_PROTOTYPES): Likewise. 44386 (TARGET_STRUCT_VALUE_RTX): Likewise. 44387 (TARGET_RETURN_IN_MEMORY): Likewise. 44388 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. 44389 (TARGET_STRICT_ARGUMENT_NAMING): Likewise. 44390 (sparc_builtin_saveregs): Make it static. 44391 (sparc_promote_prototypes): New. 44392 (sparc_struct_value_rtx): Likewise. 44393 (sparc_return_in_memory): Likewise. 44394 * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove. 44395 (PROMOTE_FUNCTION_RETURN): Likewise. 44396 (RETURN_IN_MEMORY): Likewise. 44397 (STRUCT_VALUE): Likewise. 44398 (STRUCT_VALUE_INCOMING): Likewise. 44399 (EXPAND_BUILTIN_SAVEREGS): Likewise. 44400 (STRICT_ARGUMENT_NAMING): Likewise. 44401 (PROMOTE_PROTOTYPES): Likewise. 44402 44403 * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode. 44404 444052004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr> 44406 44407 PR c/12818 44408 * varasm.c (const_hash_1) <STRING_CST>: Use the 44409 address to compute the hash value if flag_writable_strings. 44410 (compare_constant) <STRING_CST>: Compare the addresses 44411 if flag_writable_strings. 44412 (build_constant_desc): Do not copy the expression for a 44413 STRING_CST if flag_writable_strings. 44414 444152004-01-30 Jan Hubicka <jh@suse.cz> 44416 44417 * alloc-pool.c: Include hashtab.h 44418 (alloc_pool_descriptor): New structure 44419 (alloc_pool_hash): New global variable. 44420 (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New. 44421 (create_alloc_pool): Update statistics. 44422 (free_alloc_pool): Likewise. 44423 (pool_alloc): Likewise. 44424 (output_info): New structure 44425 (print_statistics, dump_alloc_pool_statistics): New function. 44426 * alloc-pool.h (alloc_pool_def): Turn name to be constant. 44427 (dump_alloc_pool_statistics): Declare. 44428 * toplev.c (finalize): Dump statistics. 44429 44430 * reload.c (secondary_memlocs_elim_used): New static variable. 44431 (get_secondary_mem): Update it. 44432 (find_reloads): Use it. 44433 444342004-01-30 Steven Bosscher <s.bosscher@student.tudelft.nl> 44435 44436 * toplev.c: Fix broken checkin of 2003-12-30, again. 44437 444382004-01-30 Ulrich Weigand <uweigand@de.ibm.com> 44439 44440 * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for 44441 s390*-*-* targets by specifying a 'nop' insn. 44442 * configure: Regenerate. 44443 444442004-01-30 Eric Botcazou <ebotcazou@libertysurf.fr> 44445 44446 PR target/11475 44447 * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates. 44448 444492004-01-29 Jakub Jelinek <jakub@redhat.com> 44450 44451 * emit-rtl.c (change_address): Use XEXP (memref, 0) instead 44452 of addr when creating MEM copy. 44453 444542004-01-29 Devang Patel <dpatel@apple.com> 44455 44456 * dwarf2out.c (gen_field_die): Do not equate decl number to die. 44457 444582004-01-28 Ian Lance Taylor <ian@wasabisystems.com> 44459 44460 PR inline-asm/6162 44461 * reload.c (find_reloads): Only support one pair of commutative 44462 operands. 44463 444642004-01-29 Roger Sayle <roger@eyesopen.com> 44465 44466 PR java/13824 44467 * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially 44468 as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded 44469 recursion. 44470 444712004-01-29 Kazu Hirata <kazu@cs.umass.edu> 44472 44473 * config/frv/frv.c: Don't mention deprecated macros in 44474 comments. Remove some target-independent comments about 44475 target macros. 44476 * config/frv/frv.h: Likewise. 44477 444782004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 44479 44480 * cfghooks.c (split_block): Set probability and count of the 44481 new edge. 44482 444832004-01-29 Josef Zlomek <zlomekj@suse.cz> 44484 44485 * dwarf2out.c (struct die_struct): Added field decl_id. 44486 (decl_die_table): Changed to hash table. 44487 (decl_die_table_allocated): Deleted. 44488 (decl_die_table_in_use): Deleted. 44489 (DECL_DIE_TABLE_INCREMENT): Deleted. 44490 (decl_die_table_hash): New function. 44491 (decl_die_table_eq): New function. 44492 (lookup_decl_die): Lookup in a hash table. 44493 (equate_decl_number_to_die): Insert into a hash table. 44494 (dwarf2out_init): Init hash table decl_die_table. 44495 444962004-01-29 Jakub Jelinek <jakub@redhat.com> 44497 44498 PR optimization/13424 44499 * expr.c (store_constructor): Revert 2003-12-03 change. 44500 44501 * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as 44502 expected before returning early. Avoid sharing RTL if they 44503 need to be changed. 44504 44505 * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov 44506 handling so that memory attributes are preserved. Don't call 44507 ix86_set_move_mem_attrs. 44508 (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed. 44509 (ix86_expand_clrstr): Rename src argument to 44510 dst. Rework rep_stos and strset handling so that memory attributes 44511 are preserved. 44512 (ix86_expand_strlen): Pass src argument to 44513 ix86_expand_strlensi_unroll_1. Rework strlenqi_1 handling so that 44514 memory attributes are preserved. 44515 (ix86_expand_strlensi_unroll_1): Add src argument. Use 44516 change_address instead of gen_rtx_MEM. 44517 * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New 44518 expanders. 44519 (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64, 44520 strmovqi, strmovqi_rex64): Remove. 44521 (rep_mov*, strmov*): Prefix insn names with *. 44522 (strset, strset_singleop, rep_stos): New expanders. 44523 (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64, 44524 strsetqi, strsetqi_rex64): Remove. 44525 (rep_stos*, strset*): Prefix insn names with *. 44526 (rep_stosqi_rex64): Likewise. Fix mode of dirflag reg from DImode 44527 to SImode. 44528 (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes 44529 are preserved. 44530 (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1): 44531 Prefix insn names with *. 44532 (cmpstrqi_nz_1, cmpstrqi_1): New expanders. 44533 (strlenqi_1, strlenqi_rex_1): Prefix insn names with *. 44534 (strlenqi_1): New expander. 44535 * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype. 44536 445372004-01-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 44538 44539 * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency. 44540 * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb, 44541 verify_flow_info): Declaration removed. 44542 * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c. 44543 (debug_bb, debug_bb_n): Add argument to dump_bb call. 44544 * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge, 44545 try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block 44546 instead of delete_block. 44547 * cfghooks.c: Include timevar.h and toplev.h. 44548 (cfg_hooks): Define here. 44549 (verify_flow_info, dump_bb): Moved from cfg.c. 44550 (redirect_edge_and_branch, redirect_edge_and_branch_force, 44551 split_block, split_block_after_labels, move_block_after, 44552 delete_basic_block, split_edge, create_basic_block, 44553 create_empty_bb, can_merge_blocks_p, merge_blocks, 44554 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): 44555 New functions. 44556 * cfghooks.h (struct cfg_hooks): Added fields name, 44557 make_forwarder_block, tidy_fallthru_edge and 44558 move_block_after. Changed type of verify_flow_info, dump_bb, 44559 split_block fields. Renamed cfgh_split_edge and delete_block 44560 fields. 44561 (redirect_edge_and_branch, redirect_edge_and_branch_force, 44562 split_block, delete_block, split_edge, create_basic_block, 44563 can_merge_blocks_p, merge_blocks): Macros removed. 44564 (cfg_hooks): Do not export. 44565 (verify_flow_info, dump_bb, redirect_edge_and_branch, 44566 redirect_edge_and_branch_force, split_block, split_block_after_labels, 44567 move_block_after, delete_basic_block, split_edge, create_basic_block, 44568 create_empty_bb, can_merge_blocks_p, merge_blocks, 44569 make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges): 44570 Declare. 44571 (cfg_layout_rtl_cfg_hooks): Declare. 44572 * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch): 44573 New functions. 44574 (canonicalize_loop_headers): Use new semantics of make_forwarder_block. 44575 (redirect_edge_with_latch_update): Removed. 44576 (make_forwarder_block): Moved to cfghooks.c, semantics changed. 44577 * cfgloopmanip.c (remove_bbs): Do not update dominators here. 44578 * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb, 44579 rtl_delete_block, rtl_split_block, rtl_merge_blocks, 44580 tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block, 44581 cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to 44582 cfghooks.c. 44583 (rtl_create_basic_block): Coding style fix. 44584 (rtl_tidy_fallthru_edge, rtl_move_block_after, 44585 rtl_make_forwarder_block): New functions. 44586 (update_cfg_after_block_merging): Removed. 44587 (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries. 44588 * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument 44589 to dump_bb. 44590 * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1, 44591 find_if_case_2): Don't update dominators. 44592 * timevar.def (TV_CFG_VERIFY): New. 44593 * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info. 44594 * cfglayout.c (copy_bbs): Don't call add_to_dominance_info. 44595 * cfgloopmanip.c (split_loop_bb): Don't update dominators. 44596 (remove_bbs): Don't call remove_bbs. 44597 (create_preheader): Use make_forwarder_block. 44598 (mfb_keep_just, mfb_update_loops): New static functions. 44599 446002004-01-29 Kazu Hirata <kazu@cs.umass.edu> 44601 44602 * config/avr/avr.h: Remove target-independent comments about 44603 target macros. 44604 446052004-01-28 Daniel Berlin <dberlin@dberlin.org> 44606 44607 * timevar.c (timevar_print): Mention when checking is enabled. 44608 446092004-01-28 Giovanni Bajo <giovannibajo@gcc.gnu.org> 44610 44611 * c-lex.c (c_lex): Rename to... 44612 (c_lex_with_flags): Add new parameter to get CPP flags. 44613 (c_lex): Thunk to c_lex_with_flags while keeping the old interface. 44614 * c-pragma.h (c_lex_with_flags): Declare. 44615 446162004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44617 44618 * config/mcore/mcore.c (mcore_external_libcall): Add a 44619 comment. 44620 (mcore_return_in_memory): Likewise. 44621 446222004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44623 44624 * config/mcore/mcore-protos.h: Remove the prototype for 44625 mcore_setup_incoming_varargs. 44626 * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New. 44627 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. 44628 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 44629 (TARGET_PROMOTE_PROTOTYPES): Likewise. 44630 (TARGET_STRUCT_VALUE_RTX): Likewise. 44631 (TARGET_RETURN_IN_MEMORY): Likewise. 44632 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 44633 (mcore_setup_incoming_varargs): Make it static. Receive the 44634 first argument by reference. Add argument second_time. 44635 (mcore_external_libcall): New. 44636 (mcore_return_in_memory): Likewise. 44637 * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New. 44638 (PROMOTE_FUNCTION_RETURN): Likewise. 44639 (STRUCT_VALUE): Likewise. 44640 (RETURN_IN_MEMORY): Likewise. 44641 (SETUP_INCOMING_VARARGS): Likewise. 44642 (PROMOTE_PROTOTYPES): Likewise. 44643 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. 44644 446452004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44646 44647 * config/m32r/m32r-protos.h: Remove the prototype for 44648 m32r_setup_incoming_varargs. 44649 * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New. 44650 (TARGET_STRUCT_VALUE_RTX): Likewise. 44651 (TARGET_RETURN_IN_MEMORY): Likewise. 44652 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 44653 (m32r_return_in_memory): New. 44654 (m32r_setup_incoming_varargs): Make it static. 44655 * config/m32r/m32r.h: Remove #undef of 44656 ASM_OUTPUT_EXTERNAL_LIBCALL. Remove the commented-out 44657 definitions of PROMOTE_FUNCTION_ARGS and 44658 PROMOTE_FUNCTION_RETURN. 44659 (PROMOTE_PROTOTYPES): Remove. 44660 (RETURN_IN_MEMORY): Likewise. 44661 (STRUCT_VALUE): Likewise. 44662 446632004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44664 44665 * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New. 44666 (TARGET_STRUCT_VALUE_RTX): Likewise. 44667 (m68k_struct_value_rtx): Likewise. 44668 * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to 44669 STRUCT_VALUE_REGNUM. 44670 (PROMOTE_PROTOTYPES): Remove. 44671 * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to 44672 STRUCT_VALUE_REGNUM. 44673 * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise. 44674 * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise. 44675 446762004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44677 44678 * config/stormy16/stormy16.c 44679 (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to 44680 TARGET_BUILD_BUILTIN_VA_LIST. 44681 446822004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44683 44684 * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New. 44685 (TARGET_STRUCT_VALUE_RTX): Likewise. 44686 (TARGET_RETURN_IN_MEMORY): Likewise. 44687 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 44688 (v850_return_in_memory): Likewise. 44689 (v850_setup_incoming_varargs): Likewise. 44690 * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove. 44691 (SETUP_INCOMING_VARARGS): Likewise. 44692 (RETURN_IN_MEMORY): Likewise. 44693 (STRUCT_VALUE): Likewise. 44694 446952004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44696 44697 * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New. 44698 (fr30_setup_incoming_varargs): Don't use 44699 STRICT_ARGUMENT_NAMING. 44700 * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove. 44701 (STRICT_ARGUMENT_NAMING): Likewise. 44702 447032004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44704 44705 * config/frv/frv-protos.h: Remove the prototype for 44706 frv_expand_builtin_saveregs. 44707 * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise. 44708 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. 44709 (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of 44710 STRUCT_VALUE_REGNUM. 44711 (frv_expand_builtin_saveregs): Make it static. 44712 (frv_struct_value_rtx): New. 44713 * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove. 44714 447152004-01-29 Jan Hubicka <jh@suse.cz> 44716 44717 PR c++/12850 44718 * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and 44719 initial pointers. 44720 * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS 44721 for functions that will be only inlined. 44722 (cgraph_mark_function_to_output): Likewise. 44723 (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear; 44724 do not clear function body. 44725 * tree-optimize.c (clear_decl_rtl): Use decl_function_context. 44726 (tree_rest_of_compilation): Reorganize the logic releasing function 44727 body to use callgraph datastructure. 44728 447292004-01-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 44730 44731 * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand 44732 to register_operand. 44733 447342004-01-28 Zack Weinberg <zack@codesourcery.com> 44735 44736 * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di) 44737 (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and 44738 match_operand expressions so that all match_dups appear 44739 lexically after their corresponding match_operands. 44740 447412004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44742 44743 * config/h8300/h8300.c (WORD_REG_USED): Use 44744 HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. 44745 (compute_saved_regs): Likewise. 44746 (h8300_expand_prologue): Likewise. Allocate locals after 44747 saving registers. 44748 (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead 44749 of FRAME_POINTER_REGNUM. Deallocate locals before saving 44750 registers. 44751 (h8300_initial_elimination_offset): Adjust for the new frame 44752 layout, which swaps flips the order of locals and saved 44753 registers. 44754 * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12. 44755 (HARD_FRAME_POINTER_REGNUM): New. 44756 (ELIMINABLE_REGS): Add an elimination rule from 44757 FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM. 44758 (REGISTER_NAMES): Add fp. 44759 * config/h8300/h8300.md (FP_REG): Change to 11. 44760 (HFP_REG): New. 44761 447622004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44763 44764 * genrecog.c (write_node): Remove a useless local variable. 44765 447662004-01-28 Ian Lance Taylor <ian@wasabisystems.com> 44767 44768 * Makefile.in (options.c options.h): Use stamp file s-options to 44769 avoid unnecessary rebuilds. 44770 (options.o): New target listing dependencies. 44771 (gtyp-gen.h): Use stamp file s-gtyp-gen. 44772 (STAGESTUFF): Add s-gtyp-gen. 44773 447742004-01-28 Richard Henderson <rth@redhat.com> 44775 44776 * ggc.h (ggc_free): Declare. 44777 * ggc-common.c (ggc_realloc): Use it. 44778 * ggc-page.c: Remove lots of inline markers. 44779 (globals): Add free_object_list. 44780 (ggc_alloc): Tidy. 44781 (ggc_free, validate_free_objects): New. 44782 (poison_pages): Provide default. 44783 (ggc_collect): Call validate_free_objects; emit markers to 44784 the debug file. 44785 447862004-01-28 Zack Weinberg <zack@codesourcery.com> 44787 Jim Wilson <wilson@specifixinc.com> 44788 44789 * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move): 44790 Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a 44791 scratch pointer. 44792 (ia64_secondary_reload_class): Delete case GR_REGS. 44793 * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal): 44794 Do not allocate a scratch register. 44795 (reload_inti, reload_outti, reload_intf, reload_outtf): Delete. 44796 447972004-01-28 Jan Hubicka <jh@suse.cz> 44798 44799 * gcse.c (bypass_block): Prevent edges to be unified when we are 44800 about to emit compenstation code. 44801 448022004-01-28 Nick Clifton <nickc@redhat.com> 44803 44804 * config/arm/arm.c (arm_expand_builtin): Force second argument of 44805 the setcwx insn into a register. 44806 448072004-01-28 Richard Sandiford <rsandifo@redhat.com> 44808 44809 * config/fp-bit.c (pack_d): When using paired doubles to implement 44810 a long double, round the high part separately. 44811 (unpack_d): Fix the case in which the high part is a power of two 44812 and the low part is a nonzero value of the opposite sign. 44813 448142004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44815 44816 * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New. 44817 (TARGET_STRUCT_VALUE_RTX): Likewise. 44818 (c4x_external_libcall): Likewise. 44819 (c4x_struct_value_rtx): Likewise. 44820 * config/c4x/c4x.h: Remove. 44821 (STRUCT_VALUE_REGNUM): Likewise. 44822 (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. 44823 448242004-01-28 Kazu Hirata <kazu@cs.umass.edu> 44825 44826 * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New. 44827 (TARGET_STRUCT_VALUE_RTX): Likewise. 44828 * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove. 44829 (STRUCT_VALUE): Likewise. 44830 (PROMOTE_PROTOTYPES): Likewise. 44831 448322004-01-27 Roger Sayle <roger@eyesopen.com> 44833 44834 * config/pa/pa.c (emit_move_sequence): Check that operand1 is a 44835 CONST_INT before using INTVAL. 44836 448372004-01-27 Ulrich Weigand <uweigand@de.ibm.com> 44838 44839 * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN. 44840 * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current 44841 frame if !TARGET_BACKCHAIN. 44842 * config/s390/s390.md ("allocate_stack"): Use pattern only if 44843 TARGET_BACKCHAIN. 44844 * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default. 44845 448462004-01-27 Zack Weinberg <zack@codesourcery.com> 44847 44848 * ia64.c (ia64_function_arg): When placing HFAs in integer 44849 registers, do not special case the mode used for complex 44850 types. Do not advance int_regs until the current register 44851 is full. 44852 448532004-01-27 Richard Sandiford <rsandifo@redhat.com> 44854 44855 PR target/7297 44856 * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp(). 44857 448582004-01-27 David Edelsohn <edelsohn@gnu.org> 44859 44860 * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting 44861 slow, unaligned loads and stores while debugging. Fix formatting. 44862 448632004-01-27 David Edelsohn <edelsohn@gnu.org> 44864 44865 * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead 44866 of computing wmode. 44867 (restore_stack_nonlocal): Same. 44868 448692004-01-27 Devang Patel <dpatel@apple.com> 44870 44871 * Makefile.in (dwarf2out.o): Depend on input.h 44872 * dbxout.c (dbx_debug_hooks): Add new empty hook for 44873 imported_module_or_decl. 44874 (xcoff_debug_hooks): Same. 44875 * sdbout.c (sdb_debug_hooks): Same. 44876 * vmsdbgout.c (vmsdbg_debug_hooks): Same. 44877 * debug.c (do_nothing_debug_hooks): Same. 44878 (debug_nothing_tree_tree): New function. 44879 * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl. 44880 * dwarf2out.c: Include input.h. 44881 (dwarf2_debug_hooks): Add new hook for imported_module_or_decl. 44882 (remove_child_TAG): New function. 44883 (dwarf_tag_name): Handle DW_TAG_imported_module. 44884 (gen_subprogram_die): Equate decl number to declaration die. Do not 44885 remove all children dies while reusing declaration die for definition. 44886 Instead, selectively remove only formal parameters. 44887 (gen_variable_die): Equate variable decl to declaration die. 44888 (gen_field_die): Equate field decl to line number. 44889 (force_namespace_die): Replace it with ... 44890 (force_decl_die): ... this. 44891 (force_type_die): New function. 44892 (setup_namespace_context): Replace use of force_namespace_die() with 44893 force_decl_die(). 44894 (gen_namespace_die): Same. 44895 (dwarf2out_imported_module_or_decl): New function. 44896 448972004-01-27 Bob Wilson <bob.wilson@acm.org> 44898 44899 * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG 44900 on CQImode and CHImode incoming arguments in register a7. 44901 (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL. 44902 * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define. 44903 * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or 44904 xtensa_copy_incoming_a7 before reload. 44905 449062004-01-27 J"orn Rennecke <joern.rennecke@superh.com> 44907 44908 * coverage.c (get_coverage_counts): Give a different message 44909 if flag_guess_branch_prob is set. 44910 * predict.c (counts_to_freqs): Return an int. 44911 (estimate_bb_frequencies): If counts_to_freqs returns zero, 44912 calculate estimates. 44913 449142004-01-27 Kazu Hirata <kazu@cs.umass.edu> 44915 44916 * config/iq2000/iq2000-protos.h: Remove the prototype for 44917 iq2000_setup_incoming_varargs. 44918 * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 44919 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 44920 (TARGET_PROMOTE_PROTOTYPES): Likewise. 44921 (TARGET_STRUCT_VALUE_RTX): Likewise. 44922 (TARGET_RETURN_IN_MEMORY): Likewise. 44923 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 44924 (TARGET_STRICT_ARGUMENT_NAMING): Likewise. 44925 (iq2000_return_in_memory): Likewise. 44926 (iq2000_setup_incoming_varargs): Make it static. Receive the 44927 first argument by reference. 44928 * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove. 44929 (PROMOTE_FUNCTION_RETURN): Likewise. 44930 (PROMOTE_PROTOTYPES): Likewise. 44931 (RETURN_IN_MEMORY): Likewise. 44932 (STRUCT_VALUE): Likewise. 44933 (SETUP_INCOMING_VARARGS): Likewise. 44934 (STRICT_ARGUMENT_NAMING): Likewise. 44935 449362004-01-24 James A. Morrison <ja2morri@uwaterloo.ca> 44937 44938 * fixinc/fixinc.c (test_test): Initialize res. 44939 (start_flexer): Initialize pz_cmd_save. 44940 449412004-01-27 Zack Weinberg <zack@codesourcery.com> 44942 44943 * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS, 44944 SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS. 44945 449462004-01-27 Zack Weinberg <zack@codesourcery.com> 44947 44948 PR 7198 44949 * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts) 44950 (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf) 44951 (*nmaddxf4_alts, *nmaddxf4_truncdf_alts): 44952 Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))). 44953 Possibly rename pattern for consistency. 44954 Remove ??? comments suggesting that this be done. 44955 (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts): 44956 New patterns. 44957 (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr) 44958 (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr) 44959 (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr) 44960 (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr): 44961 Update to match. 44962 449632004-01-27 Ian Lance Taylor <ian@wasabisystems.com> 44964 44965 * config/arm/arm.c (output_return_instruction): Only restore IP 44966 into SP if frame_pointer_needed. 44967 449682004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr> 44969 44970 * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1 44971 for SCmode and DCmode if ARCH32. 44972 (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32. 44973 * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode 44974 if ARCH32. 44975 (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode 44976 if ARCH32. 44977 (BASE_OUTGOING_VALUE_REG): Likewise. 44978 449792004-01-27 Eric Botcazou <ebotcazou@libertysurf.fr> 44980 44981 PR target/10904 44982 PR target/13058 44983 * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New. 44984 Forbid mode changes from SImode for lower FP regs if ARCH64. 44985 449862004-01-27 J"orn Rennecke <joern.rennecke@superh.com> 44987 44988 * Makefile.in (bt-load.o): Depend on except.h. 44989 * bt-load.c (except.h): #include. 44990 (compute_defs_uses_and_gen): If insn at end of BB can throw 44991 within this function, consider registers used by it unavailable for 44992 btr migration. 44993 (move_btr_def): If insn at end of BB can throw, insert before rather 44994 than after. 44995 44996 * flags.h (flag_btr_bb_exclusive): Declare. 44997 * toplev.c (flag_btr_bb_exclusive): New variable. 44998 (f_options): Add btr-bb-exclusive. 44999 * bt-load.c (augment_live_range): Restore old behaviour if 45000 flag_btr_bb_exclusive is set. 45001 * common.opt: Add entry for -fbtr-bb-exclusive. 45002 * opts.c (common_handle_options): Same. 45003 * doc/invoke.texi: Document -fbtr-bb-exclusive. 45004 45005 * bt-load.c (btrs_live_at_end): New variable. 45006 (compute_defs_uses_and_gen): Compute its pointed-to array. 45007 (clear_btr_from_live_range, add_btr_to_live_range): Update it. 45008 (augment_live_range): When augmenting with a new dominator, 45009 use only its btrs_live_at_end set, but also add in the full set 45010 of the old dominator. 45011 (btr_def_live_range): Use btrs_live_at_end. 45012 (move_btr_def): Set other_btr_uses_before_def, and move new set 45013 to the end of the basic block, if appropriate. 45014 (migrate_btr_defs): Allocate and free btrs_live_at_end. 45015 45016 * bt-load.c (basic_block_freq): Remove outdated comment. 45017 450182004-01-27 Alan Modra <amodra@bigpond.net.au> 45019 45020 * config/rs6000/rs6000.h: Correct target_flags free bits comment. 45021 (PREDICATE_CODES): Remove duplicate. 45022 * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define. 45023 (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL. 45024 (MASK_PROFILE_KERNEL): Adjust define. 45025 450262004-01-27 Jakub Jelinek <jakub@redhat.com> 45027 45028 * config/i386/i386.c (ix86_constant_alignment): Decrease alignment 45029 of long string literals from 32 bytes to sizeof (void *) when !-Os 45030 and to 1 with -Os. 45031 450322004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45033 45034 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept 45035 constant addresses in the normal mode. 45036 450372004-01-26 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 45038 45039 * system.h (CHAR_BITFIELD): Delete. 45040 (BOOL_BITFIELD): New. 45041 * c-decl.c (c_scope): Use BOOL_BITFIELD. 45042 * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD. 45043 450442004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45045 45046 * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 45047 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 45048 (TARGET_PROMOTE_PROTOTYPES): Likewise. 45049 (TARGET_STRUCT_VALUE_RTX): Likewise. 45050 (TARGET_RETURN_IN_MEMORY): Likewise. 45051 (arc_return_in_memory): Likewise. 45052 * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove. 45053 (PROMOTE_FUNCTION_RETURN): Likewise. 45054 (RETURN_IN_MEMORY): Likewise. 45055 (STRUCT_VALUE): Likewise. 45056 450572004-01-26 Richard Henderson <rth@redhat.com> 45058 45059 * c-parse.in (extension): Use itype. 45060 (SAVE_EXT_FLAGS): Don't allocate a tree. 45061 (RESTORE_EXT_FLAGS): Don't read a tree. 45062 450632004-01-26 Jan Hubicka <jh@suse.cz> 45064 45065 * cselib.c (discard_useless_values): Clear out value pointer pointing 45066 to datastructure to be recycled. 45067 450682004-01-25 Jan Hubicka <jh@suse.cz> 45069 45070 * genextract.c (main): Do not output the memset when not checking. 45071 450722004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45073 45074 * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a 45075 switch statement instead of a chain of if statements. 45076 450772004-01-26 Jeff Law <law@redhat.com> 45078 45079 * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry. Add 45080 acute accents for Petur Runolfsson's entry. 45081 450822004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45083 45084 * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New. 45085 (TARGET_RETURN_IN_MEMORY): Likewise. 45086 * config/pdp11/pdp11.h (STRUCT_VALUE): Remove. 45087 (RETURN_IN_MEMORY): Likewise. 45088 450892004-01-26 Fariborz Jahanian <fjahanian@apple.com> 45090 45091 * config/rs6000/rs6000.c (rs6000_emit_move): split slow 45092 unaligned load/store into smaller loads and stores. 45093 450942004-01-26 Fariborz Jahanian <fjahanian@apple.com> 45095 45096 * function.c (assign_parms): Do not assign 45097 long long argument to memory in prologue if 45098 is it loaded into register. 45099 451002004-01-26 Fariborz Jahanian <fjahanian@apple.com> 45101 45102 PR middle-end/13779 45103 * expr.c (emit_group_load): split constant 45104 correctly into register components of PARALLEL insn. 45105 451062004-01-26 Fariborz Jahanian <fjahanian@apple.com> 45107 45108 * config/rs6000/rs6000.md (save_stack_nonlocal): 45109 Use adjust_address_nv directly with appropriate mode. 45110 (restore_stack_nonlocal): Ditto. 45111 451122004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45113 45114 * config/xtensa/xtensa-protos.h: Remove the prototype for 45115 xtensa_builtin_saveregs. 45116 * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 45117 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 45118 (TARGET_PROMOTE_PROTOTYPES): Likewise. 45119 (TARGET_STRUCT_VALUE_RTX): Likewise. 45120 (TARGET_RETURN_IN_MEMORY): Likewise. 45121 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. 45122 (xtensa_builtin_saveregs): Make it static. 45123 (xtensa_return_in_memory): New. 45124 * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove. 45125 (PROMOTE_FUNCTION_RETURN): Likewise. 45126 (PROMOTE_PROTOTYPES): Likewise. 45127 (STRUCT_VALUE): Likewise. 45128 (RETURN_IN_MEMORY): Likewise. 45129 (EXPAND_BUILTIN_SAVEREGS): Likewise. 45130 451312004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45132 45133 * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New. 45134 (arm_setup_incoming_varargs): Likewise. 45135 * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove. 45136 451372004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45138 45139 * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New. 45140 (cris_setup_incoming_varargs): Likewise. 45141 * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove. 45142 451432004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45144 45145 * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New. 45146 (ns32k_struct_value_rtx): Likewise. 45147 * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to 45148 NS32K_STRUCT_VALUE_REGNUM. 45149 451502004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45151 45152 * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 45153 (TARGET_PROMOTE_PROTOTYPES): Likewise. 45154 (TARGET_STRUCT_VALUE_RTX): Likewise. 45155 (arm_struct_value_rtx): Likewise. 45156 * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove. 45157 (STRUCT_VALUE): Likewise. 45158 (STRUCT_VALUE_REGNUM): Likewise. 45159 (PROMOTE_PROTOTYPES): Likewise. 45160 451612004-01-26 Kazu Hirata <kazu@cs.umass.edu> 45162 45163 * config/ia64/ia64-protos.h: Remove the prototype for 45164 ia64_setup_incoming_varargs and ia64_return_in_memory. 45165 * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New. 45166 (TARGET_RETURN_IN_MEMORY): Likewise. 45167 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 45168 (TARGET_STRICT_ARGUMENT_NAMING): Likewise. 45169 (ia64_setup_incoming_varargs): Adjust the arguments to meet 45170 the requirement of TARGET_SETUP_INCOMING_VARARGS. 45171 (ia64_return_in_memory): Make it static. Change the return 45172 type to bool from int. Add an argument. 45173 (ia64_struct_value_rtx): New. 45174 * config/ia64/ia64.h: Remove commented-out definitions of 45175 PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and 45176 PROMOTE_PROTOTYPES. 45177 (RETURN_IN_MEMORY): Remove. 45178 (STRUCT_VALUE_REGNUM): Likewise. 45179 (STRICT_ARGUMENT_NAMING): Likewise. 45180 451812004-01-26 Eric Botcazou <ebotcazou@libertysurf.fr> 45182 45183 PR target/13666 45184 * config/sparc/sparc.c (function_arg_union_value): New function. 45185 (function_arg): Use it to deal with unions. 45186 (function_value): Likewise. Define 'regbase' only for ARCH64. 45187 Replace a conditional statement by a simpler one. 45188 451892004-01-26 Richard Sandiford <rsandifo@redhat.com> 45190 45191 * config/mips/mips.c (mips16_optimize_gp): Delete. 45192 (mips_reorg): Don't call it. 45193 451942004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45195 45196 * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order. 45197 (floatunsqihf2): Remove operand 6. 45198 (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other 45199 fix patterns. 45200 (ldi_conditional, ldf_conditional): Validate operands. 45201 452022004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45203 45204 * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove. 45205 (HAVE_GAS_HIDDEN): Undefine as interim measure. 45206 452072004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45208 45209 * config/c4x/c4x.c (c4x_legitimate_address_p): Invalidate direct 45210 memory references if TARGET_EXPOSE_LDP nonzero. 45211 452122004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45213 45214 * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts. 45215 452162004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45217 45218 * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject 45219 invalid operand combinations. 45220 452212004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45222 45223 * config/c4x/c4x.c (c4x_check_legit_addr): Rename to 45224 c4x_legitimate_address_p. Fix post_modify check. 45225 45226 * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust. 45227 * config/c4x/c4x.h (c4x_check_legit_addr): Adjust. 45228 452292004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45230 45231 * config/pa/pa-protos.h: Remove the prototype for 45232 hppa_builtin_saveregs. Add a prototype for 45233 pa_return_in_memory. 45234 * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New. 45235 (TARGET_PROMOTE_PROTOTYPES): Likewise. 45236 (TARGET_STRUCT_VALUE_RTX): Likewise. 45237 (TARGET_RETURN_IN_MEMORY): Likewise. 45238 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. 45239 (pa_struct_value_rtx): Likewise. 45240 (pa_return_in_memory): Likewise. 45241 * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to 45242 PA_STRUCT_VALUE_REGNUM. 45243 (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory. 45244 (EXPAND_BUILTIN_SAVEREGS): Remove. 45245 (PROMOTE_PROTOTYPES): Likewise. 45246 (PROMOTE_FUNCTION_RETURN): Likewise. 45247 452482004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45249 45250 * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New. 45251 (TARGET_STRUCT_VALUE_RTX): Likewise. 45252 (vax_struct_value_rtx): Likewise. 45253 * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to 45254 VAX_STRUCT_VALUE_REGNUM. 45255 (PROMOTE_PROTOTYPES): Remove. 45256 452572004-01-26 Michael Hayes <m.hayes@elec.canterbury.ac.nz> 45258 45259 * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS): Handle symref. 45260 452612004-01-25 Chris Demetriou <cgd@broadcom.com> 45262 45263 * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2, 45264 and MIPS64 have HI/LO interlocks. Update comment. 45265 452662004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45267 45268 * config/stormy16/stormy16-protos.h: Remove the prototype for 45269 xstormy16_setup_incoming_varargs. 45270 * config/stormy16/stormy16.c 45271 (xstormy16_setup_incoming_varargs): Remove. 45272 (xstormy16_return_in_memory): New. 45273 (TARGET_PROMOTE_FUNCTION_ARGS): Likewise. 45274 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 45275 (TARGET_PROMOTE_PROTOTYPES): Likewise. 45276 (TARGET_STRUCT_VALUE_RTX): Likewise. 45277 (TARGET_RETURN_IN_MEMORY): Likewise. 45278 * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove. 45279 (PROMOTE_FUNCTION_RETURN): Likewise 45280 (PROMOTE_PROTOTYPES): Likewise 45281 (RETURN_IN_MEMORY): Likewise 45282 (STRUCT_VALUE): Likewise 45283 (SETUP_INCOMING_VARARGS): Likewise 45284 452852004-01-25 Richard Sandiford <rsandifo@redhat.com> 45286 45287 * config/mips/mips.c (mips_offset_within_object_p): New function. 45288 (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and 45289 SYMBOL_CONSTANT_POOL cases. Also use it for SYMBOL_GENERAL if the 45290 ABI has 64-bit pointers and the object file only allows 32-bit symbols. 45291 452922004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45293 45294 * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove. 45295 (PROMOTE_FUNCTION_RETURN): Likewise. 45296 452972004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45298 45299 * config/mn10300/mn10300-protos.h: Remove the prototype for 45300 mn10300_builtin_saveregs. 45301 * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New. 45302 (TARGET_STRUCT_VALUE_RTX): Likewise. 45303 (TARGET_RETURN_IN_MEMORY): Likewise. 45304 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. 45305 (mn10300_return_in_memory): Likewise. 45306 (mn10300_builtin_saveregs): Make it static. 45307 * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove. 45308 (RETURN_IN_MEMORY): Likewise. 45309 (STRUCT_VALUE): Likewise. 45310 (EXPAND_BUILTIN_SAVEREGS): Likewise. 45311 453122004-01-25 Eric Botcazou <ebotcazou@act-europe.fr> 45313 45314 PR bootstrap/13853 45315 * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0. 45316 453172004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45318 45319 * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by 45320 using ccr. 45321 453222004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45323 45324 * config/i860/i860-protos.h: Remove the prototype for 45325 i860_saveregs. 45326 * config/i860/i860.c (i860_saveregs): Make it static. 45327 (i860_struct_value_rtx): New. 45328 (TARGET_STRUCT_VALUE_RTX): Likewise. 45329 (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. 45330 * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to 45331 I860_STRUCT_VALUE_REGNUM. 45332 (EXPAND_BUILTIN_SAVEREGS): Remove. 45333 453342004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45335 45336 * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New. 45337 (TARGET_RETURN_IN_MEMORY): Likewise. 45338 (m68hc11_struct_value_rtx): Likewise. 45339 (m68hc11_return_in_memory): Likewise. 45340 * config/m68hc11/m68hc11.h: Remove a commented-out definition 45341 of PROMOTE_PROTOTYPES. 45342 (RETURN_IN_MEMORY): Remove. 45343 (STRUCT_VALUE_REGNUM): Likewise. 45344 453452004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45346 45347 * config/mmix/mmix-protos.h: Remove the prototype for 45348 mmix_setup_incoming_varargs. 45349 * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 45350 (TARGET_STRUCT_VALUE_RTX): Likewise. 45351 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 45352 (mmix_setup_incoming_varargs): Make it static. 45353 (mmix_struct_value_rtx): New. 45354 * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove. 45355 Remove a commented-out definition of PROMOTE_FUNCTION_RETURN. 45356 (STRUCT_VALUE_REGNUM): Remove. 45357 (SETUP_INCOMING_VARARGS): Likewise. 45358 453592004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45360 45361 * config/mips/mips-protos.h: Remove the prototypes for 45362 mips_setup_incoming_varargs and mips_return_in_memory. 45363 * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 45364 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 45365 (TARGET_PROMOTE_PROTOTYPES): Likewise. 45366 (TARGET_STRUCT_VALUE_RTX): Likewise. 45367 (TARGET_RETURN_IN_MEMORY): Likewise. 45368 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 45369 (TARGET_STRICT_ARGUMENT_NAMING): Likewise. 45370 (mips_setup_incoming_varargs): Match the prototype for 45371 TARGET_SETUP_INCOMING_VARARGS. 45372 (mips_return_in_memory): Make it static. Add argument fntype. 45373 (mips_strict_argument_naming): New. 45374 * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove. 45375 (PROMOTE_FUNCTION_ARGS): Likewise. 45376 (PROMOTE_FUNCTION_RETURN): Likewise. 45377 (STRUCT_VALUE): Likewise. 45378 (RETURN_IN_MEMORY): Likewise. 45379 (SETUP_INCOMING_VARARGS): Likewise. 45380 (STRICT_ARGUMENT_NAMING): Likewise. 45381 453822004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45383 45384 * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New. 45385 (TARGET_RETURN_IN_MEMORY): Likewise. 45386 (TARGET_SETUP_INCOMING_VARARGS): Likewise. 45387 (ip2k_return_in_memory): Likewise. 45388 (ip2k_setup_incoming_varargs): Likewise. 45389 * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove. 45390 (STRUCT_VALUE): Likewise. 45391 (STRUCT_VALUE_INCOMING): Likewise. 45392 (SETUP_INCOMING_VARARGS): Likewise. 45393 453942004-01-25 Kazu Hirata <kazu@cs.umass.edu> 45395 45396 * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New. 45397 (TARGET_RETURN_IN_MEMORY): Likewise. 45398 (TARGET_STRICT_ARGUMENT_NAMING): Likewise. 45399 (avr_return_in_memory): Remove. 45400 * config/avr/avr.h (RETURN_IN_MEMORY): Remove. 45401 (STRUCT_VALUE): Likewise. 45402 (STRUCT_VALUE_INCOMING): Likewise. 45403 (STRICT_ARGUMENT_NAMING): Likewise. 45404 454052004-01-25 Jan Hubicka <jh@suse.cz> 45406 45407 * combine.c (recog_for_combine): Avoid allocating unnecesary RTX. 45408 454092004-01-25 Richard Sandiford <rsandifo@redhat.com> 45410 45411 * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete. 45412 (mips_regno_mode_ok_for_base_p): Declare. 45413 * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77. 45414 (FRAME_POINTER_REGNUM): Renumber to 78. 45415 (FIRST_PSEUDO_REGISTER): Update comment accordingly. 45416 (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete. 45417 (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete. 45418 (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p. 45419 (REG_MODE_OK_FOR_BASE_P): Likewise. 45420 * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change 45421 entry for 77 to "$arg" and entry for 78 to "$frame". 45422 (mips_regno_to_class): Map 77 and 78 to ALL_REGS. 45423 (mips_reg_mode_ok_for_base_p): Remove. 45424 (mips_regno_mode_ok_for_base_p): New function, derived from old 45425 BASE_REG_P macro. Don't enforce the mips16 stack pointer 45426 restrictions unless we're being strict. 45427 (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p. 45428 454292004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45430 45431 * c-common.h: Fix comment typos. 45432 * c-decl.c: Likewise. 45433 * cgraphunit.c: Likewise. 45434 * combine.c: Likewise. 45435 * et-forest.c: Likewise. 45436 * flow.c: Likewise. 45437 * function.c: Likewise. 45438 * ifcvt.c: Likewise. 45439 * integrate.c: Likewise. 45440 * jump.c: Likewise. 45441 * postreload.c: Likewise. 45442 * varray.c: Likewise. 45443 454442004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45445 45446 * doc/frontends.texi: Update copyright. 45447 * doc/gcov.texi: Likewise. 45448 * doc/gty.texi: Likewise. 45449 * doc/sourcebuild.texi: Likewise. 45450 * doc/standards.texi: Likewise. 45451 454522004-01-24 Herman A.J. ten Brugge <hermantenbrugge@home.nl> 45453 45454 PR target/12978 45455 * c4x.md: (movstrqi*) Use match_scratch instead of match_dup. 45456 Remove movstrqi_small because it conflicts with movstrqi_large. 45457 454582004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45459 45460 * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New. 45461 (TARGET_STRUCT_VALUE_RTX): Likewise. 45462 (cris_struct_value_rtx): Likewise. 45463 * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove. 45464 (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of 45465 STRUCT_VALUE_REGNUM. 45466 (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM. 45467 454682004-01-24 Ian Lance Taylor <ian@wasabisystems.com> 45469 45470 PR bootstrap/13848 45471 * cse.c (cse_cc_succs): Change the mode of the source expression 45472 as soon as decide we need a new mode. Don't permit changing modes 45473 if we found a match in a successor block. 45474 (cse_condition_code_reg): Save original mode of source expression 45475 so that we know whether we have to change the mode in other 45476 insns. 45477 454782004-01-24 Jan Hubicka <jh@suse.cz> 45479 45480 * emit-rtl.c (change_address, adjust_address_1, offset_address, 45481 widen_memory_access): Return early when there is nothing to change. 45482 454832004-01-24 Jakub Jelinek <jakub@redhat.com> 45484 45485 * simplify-rtx.c (simplify_relational_operation): Don't 45486 simplify address == constant into address + -constant == 0. 45487 454882004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45489 45490 * gcc.c (process_command): Don't internationalize the 45491 Copyright message. 45492 * mips-tfile.c (main): Likewise. 45493 454942004-01-24 Andreas Tobler <a.tobler@schweiz.ch> 45495 45496 * cse.c: (cse_cc_succs) Fix comparison warning. 45497 454982004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45499 45500 * config/h8300/h8300.md: Remove extraneous USE in expanders. 45501 455022004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45503 45504 * config/h8300/h8300-protos.h: Provide prototypes for 45505 h8300_legitimate_constant_p and h8300_legitimate_address_p. 45506 * config/h8300/h8300.c (h8300_legitimate_constant_p): New. 45507 (h8300_rtx_ok_for_base_p): Likewise. 45508 (h8300_legitimate_address_p): Likewise. 45509 * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use 45510 h8300_legitimate_constant_p. 45511 (RTX_OK_FOR_BASE_P): Remove. 45512 (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p. 45513 455142004-01-24 Kazu Hirata <kazu@cs.umass.edu> 45515 45516 * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New. 45517 (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. 45518 (REG_OK_FOR_INDEX_STRICT_P): Likewise. 45519 (REG_OK_FOR_BASE_STRICT_P): Likewise. 45520 (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P. 45521 (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P. 45522 (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P. 45523 (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P. 45524 455252004-01-24 Jan Hubicka <jh@suse.cz> 45526 45527 * cselib.c (remove_useless_values): Do not access discarded values. 45528 455292004-01-24 Joseph S. Myers <jsm@polyomino.org.uk> 45530 45531 * c-typeck.c (build_conditional_expr): Do not allow non-lvalue 45532 arrays. 45533 455342004-01-23 Kazu Hirata <kazu@cs.umass.edu> 45535 45536 * recog.c: Fix a typo in copyright. 45537 455382004-01-23 Andrew Pinski <apinski@apple.com> 45539 45540 * config/rs6000/rs6000.md (call): Fix misappiled patch. 45541 (call_value): Likewise. 45542 455432004-01-23 Richard Henderson <rth@redhat.com> 45544 45545 PR opt/12941 45546 * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value. 45547 (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0) 45548 if SHIFT_COUNT_TRUNCATED is set. 45549 455502004-01-23 Bob Wilson <bob.wilson@acm.org> 45551 45552 * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as 45553 separate real and imaginary parts. 45554 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define. 45555 455562004-01-23 Hartmut Penner <hpenner@de.ibm.com> 45557 45558 PR target/13674 45559 * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage 45560 loading into GPR. 45561 455622004-01-23 Jan Hubicka <jh@suse.cz> 45563 45564 * emit-rtl.c (change_address_1): Do not re-generate the RTX if nothing 45565 change. 45566 45567 * alloc-pool.c (align_four): Kill. 45568 (create_alloc_pool): Align size to eight. 45569 (free_alloc_pool, free_pool): Invalidate deallocated data. 45570 455712004-01-23 Ian Lance Taylor <ian@wasabisystems.com> 45572 45573 PR gcc/1532 45574 * cse.c (cse_change_cc_mode): New static function. 45575 (cse_change_cc_mode_insns, cse_cc_succs): Likewise. 45576 (cse_condition_code_reg): New function. 45577 * rtl.h (cse_condition_code_reg): Declare. 45578 * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg. 45579 * target.h (struct gcc_target): Add fixed_condition_code_regs and 45580 cc_modes_compatible. 45581 * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define. 45582 (TARGET_CC_MODES_COMPATIBLE): Define. 45583 (TARGET_INITIALIZER): Add new initializers. 45584 * targhooks.c (default_cc_modes_compatible): New function. 45585 * targhooks.c (default_cc_modes_compatible): Declare. 45586 * hooks.c (hook_bool_intp_intp_false): New function. 45587 * hooks.h (hook_bool_intp_intp_false): Declare. 45588 * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define. 45589 (TARGET_CC_MODES_COMPATIBLE): Define. 45590 (ix86_fixed_condition_code_regs): New static function. 45591 (ix86_cc_modes_compatible): Likewise. 45592 * doc/tm.texi (Condition Code): Document new hooks. 45593 455942004-01-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 45595 45596 * fixinc/inclhack.def (bad_lval): Renamed to ... 45597 (alpha_bad_lval): ... this. 45598 Removed file list. 45599 Restrict to alpha*-dec-osf*. 45600 * fixinc/fixincl.x: Regenerate. 45601 * fixinc/tests/base/dirent.h: Remove, moving test ... 45602 * fixinc/tests/base/testing.h: ... here, reflecting new name. 45603 456042004-01-23 Zack Weinberg <zack@codesourcery.com> 45605 45606 PR c/13814 45607 * c-decl.c (diagnose_mismatched_decls): Also discard a 45608 built-in if we encounter an old-style definition with the 45609 same name. 45610 456112004-01-23 Jakub Jelinek <jakub@redhat.com> 45612 45613 * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was 45614 set to default{32,64}. 45615 456162004-01-21 Jakub Jelinek <jakub@redhat.com> 45617 45618 * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR) 45619 [!__powerpc64__]: Corrected to handle kernels with changed ucontext. 45620 456212004-01-23 Eric Botcazou <ebotcazou@act-europe.fr> 45622 Olivier Hainque <hainque@act-europe.fr> 45623 45624 * fold-const.c (fold_binary_op_with_conditional_arg): Only 45625 build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR. 45626 456272004-01-23 Daniel Jacobowitz <drow@mvista.com> 45628 45629 * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode 45630 size for minipool references. 45631 456322004-01-23 Roger Sayle <roger@eyesopen.com> 45633 45634 * real.c (real_floor, real_ceil): Tweak to allow input and output 45635 arguments to overlap. 45636 (real_round): New function to implement round(3m) semantics. 45637 * real.h (real_round): Prototype here. 45638 * builtins.c (fold_builtin_round): New function to constant fold 45639 round, roundf and roundl. 45640 (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}. 45641 456422004-01-23 Alexandre Oliva <aoliva@redhat.com> 45643 45644 PR optimization/13819 45645 * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs 45646 introduced by 2004-01-20's Jan Hubicka's copy_insn change. 45647 (sh_handle_sp_switch_attribute): Remove warning. 45648 456492004-01-23 Jan Hubicka <jh@suse.cz> 45650 45651 * i386.c (ix86_emit_restore_regs_using_mov): Deal with large offsets. 45652 456532004-01-23 J"orn Rennecke <joern.rennecke@superh.com> 45654 45655 * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP 45656 may or may not return non-NIL. 45657 * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code, 45658 check CANNOT_CHANGE_MODE_CLASS 45659 456602004-01-23 Jan Hubicka <jh@suse.cz> 45661 45662 * basic-block.h (PROP_POSTRELOAD): New macro. 45663 (CLEANUP_LOG_LINKS): New. 45664 * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to. 45665 * toplev.c (rest_of_handle_life): Preserve LOG_LINKS trought cleanup_cfg. 45666 45667 * cselib.c (value_pool): New. 45668 (new_cselib_val): Use pool. 45669 (cselib_init): Initialize value_pool 45670 (cselib_finish): Free pool. 45671 456722004-01-23 Eric Botcazou <ebotcazou@libertysurf.fr> 45673 45674 * config/sparc/sparc.c (scan_record_type): New function. 45675 (function_arg_slotno): Use it to determine which kinds of 45676 registers the record can be passed in. 45677 456782004-01-22 James A. Mmorrison <ja2morri@uwaterloo.ca> 45679 45680 * config/pa/fptr.c: Fix old-style definition. 45681 456822004-01-22 Paolo Bonzini <bonzini@gnu.org> 45683 45684 PR optimization/13724 45685 * cse.c (fold_rtx) <SUBREG>: Fold a SUBREG to zero if it 45686 represents the zero bits produced by a ZERO_EXTEND operation. 45687 456882004-01-22 Roger Sayle <roger@eyesopen.com> 45689 45690 PR optimization/13821 45691 * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to 45692 correctly calculate the lowpart offset of the contracted subreg. 45693 456942004-01-22 Ian Lance Taylor <ian@wasabisystems.com> 45695 45696 * doc/invoke.texi (Optimize Options): Note that --param arguments 45697 are subject to change without notice. 45698 456992004-01-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 45700 45701 * config.gcc (mips-sgi-irix6*o32): Removed. 45702 * config/mips/iris6-o32-as.h: Likewise. 45703 * config/mips/iris6-o32-gas.h: Likewise. 45704 * config/mips/iris6-o32.h: Likewise. 45705 457062004-01-22 Jan Hubicka <jh@suse.cz> 45707 45708 * cfgcleanup.c (first_pass): New static variable. 45709 (try_forward_edges): Add work limiting check for threading. 45710 (try_crossjump_bb): Add work limiting check for crossjumping. 45711 (try_optimize_cfg): Maintain first pass variable. 45712 457132004-01-22 Bob Wilson <bob.wilson@acm.org> 45714 45715 * config/xtensa/xtensa.c (function_arg): Generalize logic so that it 45716 handles complex and vector modes. 45717 457182004-01-22 Kazu Hirata <kazu@cs.umass.edu> 45719 45720 * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove. 45721 (REG_OK_FOR_BASE_P_STRICT): Likewise. 45722 (STRICT): Likewise. 45723 457242004-01-22 Daniel Jacobowitz <drow@mvista.com> 45725 45726 * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1) 45727 (genrtl_for_stmt): Remove emit_nop calls. 45728 457292004-01-22 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 45730 45731 PR target/13713 45732 PR target/13324 45733 * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload, 45734 movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload, 45735 clrstrdi_prereload, clrstrdi_postreload): Fix constraints. 45736 457372004-01-22 Daniel Jacobowitz <drow@mvista.com> 45738 45739 * config/arm/arm.c: Include "debug.h". 45740 (thumb_pushpop): Take two new arguments. Add some commentary. 45741 Output frame information when pushing. 45742 (thumb_exit, thumb_unexpanded_epilogue): Update calls to 45743 thumb_pushpop. 45744 (thumb_output_function_prologue): Likewise. Accumulate a CFA 45745 offset, and pass it to thumb_pushpop. Output CFI information. 45746 (thumb_expand_prologue): Add some frame-related markers and notes. 45747 457482004-01-22 Ulrich Weigand <uweigand@de.ibm.com> 45749 45750 * config/s390/s390.c (s390_frame_info): Allow large frame sizes 45751 for TARGET_64BIT. 45752 (s390_arg_frame_offset): Change return type to HOST_WIDE_INT. 45753 * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise. 45754 457552004-01-22 Roger Sayle <roger@eyesopen.com> 45756 Paolo Bonzini <bonzini@gnu.org> 45757 45758 * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb. 45759 (subreg_lsb): Change to call new subreg_lsb_1 helper function. 45760 * rtl.h (subreg_lsb_1): Prototype here. 45761 * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and 45762 sign extensions. 45763 457642004-01-22 Kazu Hirata <kazu@cs.umass.edu> 45765 45766 * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the 45767 macro need not be defined if jump-tables should contain 45768 relative addresses only when -fPIC or -fPIC is in effect. 45769 457702004-01-22 Jan Hubicka <jh@suse.cz> 45771 45772 * alias.c (reg_base_value): Turn into varray. 45773 (reg_base_value_size): Kill. 45774 (old_reg_base_value): New deletable varray. 45775 (alias_invariant_size): New variable. 45776 (REG_BASE_VALUE): Update to use varray. 45777 (find_base_value): Likewise. 45778 (record_set): Likewise. 45779 (record_base_value): Likewise. 45780 (memrefs_conflict_p): Likewise. 45781 (record_set): Likewise 45782 (record_base_value): Likewise. 45783 (memrefs_conflict_p): Use alias_invariant_size. 45784 (init_alias_analysis): Use varray; set alias_invariant_size; 45785 rescale other arrays to be sized by maxreg. 45786 (end_alias_analysis): Save reg_base_value; clear alias_invariant_size. 45787 457882004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr> 45789 45790 * config/sparc/sparc.c (function_arg_slotno): Use 45791 FLOAT_TYPE_P to detect FP fields in structures. 45792 (function_arg_record_value_1): Likewise. 45793 (function_arg_record_value_2): Likewise. 45794 457952004-01-22 Jan Hubicka <jh@suse.cz> 45796 45797 * function.c (allocate_struct_function): Do not initialize expr, emit 45798 and varasm. 45799 (prepare_function_start): Do it here. 45800 * c-parse.in (maybe_type_qual): Do not produce line number notes. 45801 458022004-01-22 Eric Botcazou <ebotcazou@libertysurf.fr> 45803 45804 PR target/13559 45805 * config/sparc/sparc.c (function_arg_record_value_3): Revert 45806 to 'word_mode' once the first slot has been filled. 45807 458082004-01-22 Olivier Hainque <hainque@act-europe.fr> 45809 45810 * config/sparc/sparc.c (function_arg_record_value_1): Fix 45811 computation of the number of integer registers required. 45812 458132004-01-21 Kazu Hirata <kazu@cs.umass.edu> 45814 45815 * config/i386/i386.md: Simplify certain comparisons of 45816 const_int. 45817 458182004-01-21 Andrew Pinski <apinski@apple.com> 45819 45820 PR target/13785 45821 * config/rs6000/rs6000.md (call_value): Force operand 45822 1 not operand 0 into a register. 45823 458242004-01-21 Kazu Hirata <kazu@cs.umass.edu> 45825 45826 * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def, 45827 unwind-dw2-fde.h: Update copyright. 45828 458292004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 45830 45831 * pa-protos.h: Update copyright. 45832 * pa.h: Likewise. 45833 * pa.md: Likewise. 45834 458352004-01-21 Caroline Tice <ctice@apple.com> 45836 45837 PR target/12308 45838 * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber 45839 flags register. 45840 (fix_truncdfdi2): Likewise. 45841 (fix_truncsfdi2): Likewise. 45842 (*fix_truncdi_1): Likewise. 45843 (fix_truncxfsi2): Likewise. 45844 (fix_truncdfsi2): Likewise. 45845 (fix_truncsfsi2): Likewise. 45846 (*fix_truncsi_1): Likewise. 45847 (fix_truncxfhi2): Likewise. 45848 (fix_truncdfhi2): Likewise. 45849 (fix_truncsfhi2): Likewise. 45850 (*fix_trunchi_1): Likewise. 45851 458522004-01-21 Kazu Hirata <kazu@cs.umass.edu> 45853 45854 * alias.c, basic-block.h, c-common.c, c-common.h, 45855 c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c, 45856 calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c, 45857 combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c, 45858 cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h, 45859 defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c, 45860 expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c, 45861 genautomata.c, genconditions.c, genemit.c, genflags.c, 45862 gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c, 45863 ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c, 45864 langhooks-def.h, langhooks.c, langhooks.h, line-map.c, 45865 line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c, 45866 ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c, 45867 rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h, 45868 target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h, 45869 unwind.h, varray.c, varray.h: Update copyright. 45870 458712004-01-21 Kazu Hirata <kazu@cs.umass.edu> 45872 45873 * config/h8300/coff.h: Update copyright. 45874 * config/h8300/elf.h: Likewise. 45875 * config/h8300/h8300-protos.h: Likewise. 45876 * config/h8300/h8300.c: Likewise. 45877 * config/h8300/h8300.h: Likewise. 45878 * config/h8300/h8300.md: Likewise. 45879 458802004-01-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 45881 45882 * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3, 45883 ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time, 45884 ultrix_unistd): New hacks. 45885 * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK, 45886 ULTRIX_CONST2_CHECK): Add checks. 45887 * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise. 45888 * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise. 45889 * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise. 45890 * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise. 45891 * fixinc/tests/base/locale.h: New file. 45892 * fixinc/fixincl.x: Rebuilt. 45893 458942004-01-21 Andreas Jaeger <aj@suse.de> 45895 Michael Matz <matz@suse.de> 45896 45897 * doc/extend.texi (Extended Asm): Clarify memory clobber. 45898 458992004-01-21 Jakub Jelinek <jakub@redhat.com> 45900 45901 * crtstuff.c (frame_dummy, __do_global_ctors_1): Call 45902 _Jv_RegisterClasses through a function pointer. 45903 459042004-01-21 Falk Hueffner <falk@debian.org> 45905 45906 PR target/12898 45907 * config/alpha/alpha.c (alpha_emit_set_const_1): If 45908 no_new_pseudos, use gen_rtx_SET directly for SImode constants 45909 which need multiple instructions to emit. 45910 459112004-01-21 Inaoka Kazuhiro <inaoka.kazuhiro@renesas.com> 45912 45913 * config/m32r/m32r.h (CPP_SPEC): Define. 45914 459152004-01-21 Zack Weinberg <zack@codesourcery.com> 45916 45917 * c-decl.c (merge_decls): Kill different_binding_level and 45918 different_tu arguments; simplify throughout. 45919 (duplicate_decls): Likewise. 45920 (pushdecl, merge_translation_unit_decls): Update calls to 45921 duplicate_decls. 45922 459232004-01-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 45924 45925 * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and 45926 $(SYSTEM_H). 45927 (print-rtl1.o): Depend on $(SYSTEM_H). 45928 459292004-01-20 Kelley Cook <kcook@gcc.gnu.org> 45930 45931 PR bootstrap/12730 45932 * configure.ac: Delete definition and subsitution of docdir. 45933 Add info, man, srcman and srcinfo to target hooks. Create doc/ 45934 directory. 45935 * configure: Regenerate. 45936 * Makefile.in: Don't substitute docdir and delete all references 45937 throughout. 45938 (MAKEINFOFLAGS): Define. 45939 (stmp-docobjdir): Delete. 45940 (INFOFILES, MANFILES): Define. 45941 (info): Call lang.info, srcinfo and lang.srcinfo. 45942 (generated-manpages): Call lang.man, srcman and lang.srcman. 45943 (srcinfo, srcman): New rules to copy back files to source directory. 45944 (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule. 45945 (install-man): Revamp rule. 45946 (clean): Update dvi directory. 45947 (distclean): Delete TAGS from front end directorys. 45948 (maintainer-clean): Delete all document files in source directory. 45949 45950 objc/Make-lang.in (objc.man, objc.info): Dummy entries. 45951 (objc.srcman, objc.srcinfo): Likewise. 45952 459532004-01-20 Bruce Korb <bkorb@gnu.org> 45954 45955 * fixinc/inclhack.def(math_exception): bypass only for glibc. 45956 (matherr_decl): rename & relocate as exception_structure. 45957 This fix must precede the math_exception fix. 45958 459592004-01-20 Roger Sayle <roger@eyesopen.com> 45960 45961 * fold-const.c (fold_convert): Rename to fold_convert_const. 45962 (fold_convert_const): Change arguments to take a tree_code, 45963 a type and the operand/expression to be converted. Return 45964 NULL_TREE if no simplification is possible. Add support for 45965 FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR. 45966 (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR. 45967 Adjust call to fold_convert to match new fold_convert_const. 45968 Avoid modifying the tree passed to fold in-place. 45969 459702004-01-21 Alan Modra <amodra@bigpond.net.au> 45971 45972 * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define. 45973 * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT. 45974 * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document. 45975 459762004-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 45977 45978 * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes. 45979 * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d): 45980 Likewise. Handle frames larger than 0x7fffffff on 64-bit ports. 45981 (emit_move_sequence): Check scratch_reg first in various if statements. 45982 Extend source simplification to handle all 64-bit CONST_INTs. 45983 (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing 45984 frame size. 45985 (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for 45986 frame offset calculations. 45987 * pa.h (NEW_HP_ASSEMBLER): Add comment. 45988 (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT, 45989 LEGITIMATE_64BIT_CONST_INT_P): Define. 45990 (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P. Treat 45991 any CONST_INT as legitimate during and after reload. 45992 (VAL_32_BITS_P, INT_32_BITS): Define. 45993 (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets. 45994 459952004-01-20 Jan Hubicka <jh@suse.cz> 45996 45997 * emit-rtl.c (verify_rtx_sharing, copy_insn_1, 45998 emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers 45999 containing hard regs are shared. 46000 (gen_hard_reg_clobber): New function. 46001 (hard_reg_clobbers): New array. 46002 * genemit.c (gen_exp): Use gen_hard_reg_clobber. 46003 (copy_rtx): Do not copy clobbers containing hard regs. 46004 * rtl.h (gen_hard_reg_clobber): Declare. 46005 460062004-01-20 Jan Hubicka <jh@suse.cz> 46007 46008 * varray.c: Include hashtab.h 46009 (varray_descriptor): New structure. 46010 (hash_descriptor, eq_descriptor, varray_descriptor, 46011 print_statistics): New static functions 46012 (varray_init, varray_grow): Update statistics 46013 (dump_varray_statistics): New function. 46014 * varray.h (dump_varray_statistics): Declare. 46015 * toplev.c (finalize): Call it. 46016 * Makefile.in (varray.o): Add dependency. 46017 460182004-01-20 Jan Hubicka <jh@suse.cz> 46019 46020 * cselib.c: Include alloc-pool.h 46021 (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill. 46022 (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare. 46023 (new_elt_list, new_elt_loc_list, unchain_one_elt_list, 46024 unchain_one_elt_loc_list_pool, unchain_one_value, 46025 new_cselib_val): Simplify using allocpool. 46026 (cselib_init): Initialize allocpools. 46027 (cselib_finish): Finish allocpools. 46028 * Makefile.in (cselib.o): Depend on alloc-pool.h 46029 460302004-01-20 Richard Sandiford <rsandifo@redhat.com> 46031 46032 * config/mips/mips.c (mips_load_call_address): Make the call insn 46033 use $gp if it could be calling a lazy binding stub. 46034 460352004-01-20 Kazu Hirata <kazu@cs.umass.edu> 46036 46037 * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define. 46038 (TARGET_PROMOTE_FUNCTION_RETURN): Likewise. 46039 (TARGET_STRUCT_VALUE_RTX): Likewise. 46040 * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove. 46041 (PROMOTE_FUNCTION_RETURN): Remove. 46042 (STRUCT_VALUE): Remove. 46043 460442004-01-20 Denis Chertykov <denisc@overta.ru> 46045 46046 PR bootstrap/13735 46047 * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X 46048 register as pointer after reload. 46049 460502004-01-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 46051 46052 PR optimization/12440 46053 * loop.c: Include ggc.h. 46054 (loop_optimize): Run garbage collector between optimization of loops. 46055 * Makefile.in (loop.o): Add GGC_H dependency. 46056 460572004-01-20 Hartmut Penner <hpenner@de.ibm.com> 46058 46059 * config/rs6000/rs6000.c (function_arg) Handle 46060 vector register special in function without prototype. 46061 (function_arg_advance): Vector parameters get always 46062 GPRs allocated for the linux64 target. 46063 460642004-01-20 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 46065 46066 * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK 46067 not TARGET_M32RX_MASK. 46068 460692004-01-20 Eric Botcazou <ebotcazou@libertysurf.fr> 46070 46071 PR target/13557 46072 * config/sparc/sparc.c (function_arg): Reorder the cases. 46073 460742004-01-19 Per Bothner <per@bothner.com> 46075 46076 Move cpp_reader's line_maps field to a shared global. 46077 * cpphash.h (cpp_reader): Rename line_maps field to line_table 46078 and change the type to a pointer rather than a struct. 46079 * cppinit.c (cpp_push_main_field): Adjust accordingly. 46080 * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks): 46081 Likewise. 46082 * cppfiles.c (validate_pch): Likewise. 46083 * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text): 46084 Likewise. 46085 * cpperror.c (print_location): Likewise. 46086 * cpplib.h (cpp_create_reader): New line_maps pointer parameter. 46087 * cppinit.c (cpp_create_reader): Handle new parameter. 46088 (cpp_destroy): Don't free line_maps - that's no longer our job. 46089 * input.h (line_table): New variable. 46090 * toplev.c (line_table): Declare variable. 46091 (general_init): Initialize line_table. 46092 * c-opts.c (c_common_init_options): Pass line_table to 46093 cpp_create_reader. 46094 * fix-header.c (read_scan_file): New local variable line_table. 46095 Initialize, and pass it to cpp_create_reader. 46096 * Makefile.in (LIBS, LIBDEPS): Add libcpp.a. 46097 (C_AND_OBJC_OBJS, fix-header): Remove redundant libcpp.a. 46098 460992004-01-19 Per Bothner <per@bothner.com> 46100 46101 Implement a cache for linemap_lookup. 46102 * line-map.h (struct_line_maps): Add cache field. 46103 * line-map.c (linemap_init): Zero cache field. 46104 (linemap_add): Set cache field to offset of newly allocated map. 46105 (linemap_lookup): Use and set cache field. 46106 461072004-01-20 Kaz Kojima <kkojima@gcc.gnu.org> 46108 46109 PR optimization/13567 46110 * cse.c (cse_basic_block): Call cse_insn with a non-null 46111 libcall_insn for the last SET insn of a no-confilict block. 46112 461132004-01-20 Kelley Cook <kcook@gcc.gnu.org> 46114 46115 * Makefile.in (target_noncanonical, program_transform_name): Use 46116 immediate define instead of deferred. 46117 (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME, 46118 PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME, 46119 GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of 46120 deferred backquote. 46121 461222004-01-20 Joseph S. Myers <jsm@polyomino.org.uk> 46123 46124 * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to 46125 true unconditionally. 46126 * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning): 46127 Remove. 46128 (build_unary_op, build_modify_expr): Don't handle extended 46129 lvalues. 46130 (build_component_ref, build_conditional_expr): Call non_lvalue 46131 instead of pedantic_non_lvalue. 46132 (build_c_cast): Don't condition use of non_lvalue on pedantic. 46133 * fold-const.c (fold): Don't check pedantic directly for 46134 COMPOUND_EXPR. Ensure that results for COMPOUND_EXPR are 46135 passed to pedantic_non_lvalue. 46136 * doc/extend.texi: Remove documentation of extended lvalues. 46137 461382004-01-19 Roger Sayle <roger@eyesopen.com> 46139 46140 PR optimization/5263 46141 * simplify-rtx.c (associative_constant_p): Delete. 46142 (simplify_associative_operation): Rewrite to linearize terms, and 46143 attempt to simplify new term against both left and right subterms. 46144 (simplify_binary_operation): Call swap_commutative_operands_p on 46145 op0 and op1, not trueop0 and trueop1. Move the initialization of 46146 trueop0 and trueop1 down to where first needed. 46147 (simplify_relational_operation): Likewise. 46148 * rtlanal.c (commutative_operand_precedence): Also order constant 46149 operands using avoid_constant_pool_reference. 46150 461512004-01-19 Richard Henderson <rth@redhat.com> 46152 46153 * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN, 46154 don't check memory mode. 46155 (unaligned_memory_operand): Likewise. 46156 (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't 46157 abort for op0 not MEM. 46158 46159 * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination 46160 is not a reg, copy to a scratch first. 46161 (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi, 46162 unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le, 46163 unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG. 46164 (reload_inqi, reload_inhi): Fix mode of op0. 46165 (reload_inqi_help, reload_inhi_help, reload_outqi_help, 46166 reload_outhi_help): Likewise. Use define_insn_and_split. 46167 46168 * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN 46169 as well as $29 dead. 46170 461712004-01-19 Eric Botcazou <ebotcazou@libertysurf.fr> 46172 46173 * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New. Emit 46174 "tls_object" for thread-local objects. 46175 * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit 46176 "#tls" for thread-local sections. 46177 * configure.ac (thread-local checks): Specify --fatal-warnings in 46178 every binutils-specific checks. For sparc*-*-*, test whether the 46179 OS is Solaris and the tools are native and act accordingly. 46180 * configure: Rebuild. 46181 461822004-01-19 Jeff Law <law@redhat.com> 46183 46184 * contrib.texi: Update Paolo Carlini's entry. New entries for 46185 Jerry Quinn and Petur Runolfsson. 46186 461872004-01-19 Roger Sayle <roger@eyesopen.com> 46188 46189 * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for 46190 size, don't use the larger zero-extending loads. 46191 461922004-01-19 Richard Henderson <rth@redhat.com> 46193 46194 * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs. 46195 * alpha.md (UNSPEC_NT_LDA): Remove. 46196 (UNSPEC_CVTLQ, cvtlq): New. 46197 (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f. 46198 (extendsidi2_fix): Remove. 46199 (extendsidi2 splitter): Use cvtlq. 46200 (extendsidi2 fp peepholes): Remove. 46201 (cvtql): Use SFmode instead of SImode. 46202 (fix_trunc?fsi): Update to match. 46203 (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New. 46204 (movsi): Rename from movsi_nofix, remove f alternatives. 46205 (movsi_nt_vms): Similarly. 46206 (movsi_fix, movsi_nt_vms_fix): Remove. 46207 (nt_lda): Remove. 46208 * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda. 46209 462102004-01-19 Jan Hubicka <jh@suse.cz> 46211 46212 * cgraph.c (cgraph_remove_node): Fix removal from linked list. 46213 * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed 46214 list. 46215 (cgraph_remove_unreachable_nodes): New function 46216 (cgraph_decide_inlining_of_small_function): Fix pasto. 46217 (cgraph_decide_inlining_incrementally): Fix pasto. 46218 (cgrpah_decide_inlining): Likewise; remove unreachable nodes. 46219 462202004-01-19 Steven Bosscher <stevenb@suse.de> 46221 46222 * gengtype.c (header_file): Make it static. 46223 (write_types_process_field, write_enum_defn): Minor whitespace fixes. 46224 * gengtype.h (header_file): No longer extern. 46225 462262004-01-18 Kazu Hirata <kazu@cs.umass.edu> 46227 46228 * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default. 46229 * expr.c (CASE_VECTOR_PC_RELATIVE): Remove. 46230 * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise. 46231 462322004-01-18 Kazu Hirata <kazu@cs.umass.edu> 46233 46234 * stmt.c (HAVE_casesi): Define it not already defined. 46235 (HAVE_tablejump): Likewise. 46236 (expand_end_case_type): Resort to the binary tree method if 46237 neither casesi or tablejump is available. 46238 462392004-01-18 Daniel Jacobowitz <drow@mvista.com> 46240 46241 * final.c (final_scan_insn): Make non-static again. 46242 * output.h (final_scan_insn): Re-add prototype. 46243 * config/arc/arc.c (arc_output_function_epilogue): Add NULL 46244 to final_scan_insn call. 46245 * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise. 46246 * config/mips/mips.c (mips_output_conditional_branch): Likewise. 46247 * config/pa/pa.c (output_lbranch, output_call): Likewise. 46248 * config/sh/sh.c (print_slot): Likewise. 46249 * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise. 46250 (output_sibcall, sparc_flat_function_epilogue): Likewise. 46251 462522004-01-18 Jan Hubicka <jh@suse.cz> 46253 46254 * basic-block.h (try_redirect_by_replacing_jump): Declare. 46255 * cfgcleanup.c (try_optimize_cfg): Use it. 46256 * cfgrtl.c (try_redirect_by_replacing_jump): Export. 46257 (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch): 46258 Kill hack. 46259 (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump. 46260 46261 Revert: 46262 2004-01-16 Geoffrey Keating <geoffk@apple.com> 46263 46264 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps 46265 even after reload, just don't remove the actual jump tables. 46266 462672004-01-18 Kazu Hirata <kazu@cs.umass.edu> 46268 46269 * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove. 46270 462712004-01-18 Kazu Hirata <kazu@cs.umass.edu> 46272 46273 * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of 46274 the size of a pointer in bytes. 46275 462762004-01-18 Roger Sayle <roger@eyesopen.com> 46277 46278 * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing 46279 live "next" variable, which could lead to an infinite loop. 46280 462812004-01-18 Andrew Pinski <pinskia@physics.uc.edu> 46282 46283 * config/rs6000/altivec.h: Wrap C++ functions in extern "C++" 46284 block. 46285 46286 * config/rs6000/rs6000.c (rs6000_special_round_type_align): 46287 Check for NULL in the chain and remove repeated code. 46288 462892004-01-18 Jan Hubicka <jh@suse.cz> 46290 46291 * coverage.c (checksum_string): Rename to ... 46292 (coverage_checksum_string): ... this one, Use crc32_string; recognize 46293 names containing random number and zero the number out in order to get 46294 match. 46295 462962004-01-18 Richard Sandiford <rsandifo@redhat.com> 46297 46298 * config/mips/mips.c (mips_got_alias_set): Mark for PCH. 46299 463002004-01-18 Joseph S. Myers <jsm@polyomino.org.uk> 46301 46302 * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi, 46303 doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi, 46304 doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi, 46305 doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi, 46306 doc/trouble.texi: Remove trailing whitespace. 46307 463082004-01-18 Richard Sandiford <rsandifo@redhat.com> 46309 46310 PR target/7618 46311 * config/mips/mips.c: Include cfglayout.h. 46312 (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define. 46313 (mips_unspec_offset_high): Add temporary register argument. 46314 (mips_load_call_address): New function, split out from... 46315 (mips_expand_call): ...here. 46316 (mips_output_cplocal): New function. 46317 (mips_output_function_prologue, mips_output_function_epilogue): Use it. 46318 (mips_emit_loadgp): New function, split out from... 46319 (mips_expand_prologue): ...here. 46320 (mips_output_mi_thunk): New function. 46321 463222004-01-17 Bernardo Innocenti <bernie@develer.com> 46323 46324 * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040, 46325 mcpu32): Remove redundant checks for implied target predefines. 46326 463272004-1-17 Andrew Pinski <pinskia@physics.uc.edu> 46328 46329 * config/rs6000/rs6000.c (rs6000_special_round_type_align): 46330 Return type is unsigned int not int. 46331 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): 46332 Likewise. 46333 463342004-01-18 Joseph S. Myers <jsm@polyomino.org.uk> 46335 46336 * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi, 46337 doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use 46338 "GNU/Linux" and "Microsoft Windows" terminology. 46339 463402004-01-18 Joseph S. Myers <jsm@polyomino.org.uk> 46341 46342 * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi, 46343 doc/cppopts.texi, doc/extend.texi, doc/install.texi, 46344 doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi, 46345 doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use 46346 @smallexample instead of @example. 46347 463482004-01-17 Ziemowit Laski <zlaski@apple.com> 46349 46350 * objc/objc-act.c (build_objc_method_call): Use target 46351 hooks instead of macros to determine if ..._stret 46352 dispatchers should be used (NeXT runtime only). 46353 463542004-01-17 Roger Sayle <roger@eyesopen.com> 46355 46356 * builtins.c (expand_builtin_expect_jump): Fix mistake in my 46357 last patch. Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL. 46358 463592004-01-17 Daniel Jacobowitz <drow@mvista.com> 46360 46361 * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc) 46362 (emit_call_insn_before_sameloc, emit_insn_after_sameloc) 46363 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New 46364 macros. 46365 * reload1.c (emit_reload_insns): Use them. 46366 * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc) 46367 (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check 46368 for NULL PATTERN. 46369 463702004-01-17 Daniel Jacobowitz <drow@mvista.com> 46371 46372 * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define. 46373 (final_scan_insn): Update to take an additional SEEN argument. Emit 46374 a line note after the prologue. Make static. 46375 (line_note_exists): Remove. 46376 (final): Don't initialize line_note_exists. Update call to 46377 final_scan_insn. 46378 * output.h (final_scan_insn): Remove prologue. 46379 * function.c (set_insn_locators): Update comment. 46380 (thread_prologue_and_epilogue_insns): Add a comment. 46381 463822004-01-17 Andrew Pinski <pinskia@physics.uc.edu> 46383 46384 PR target/10781 46385 * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align): 46386 Prototype. 46387 * config/rs6000/rs6000.c (rs6000_special_round_type_align): 46388 New function. 46389 * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it. 46390 * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise. 46391 * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise. 46392 463932004-01-17 Jan Hubicka <jh@suse.cz> 46394 46395 * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous 46396 commit. 46397 46398 * toplev.c (HAVE_conditional_execution): Provide default. 46399 (rest_of_handle_reorder_blocks): For conditional_execution target 46400 update liveness once after all transformations 46401 (rest_of_compilation): Do crossjumping before ce3. 46402 464032004-01-17 Geoffrey Keating <geoffk@apple.com> 46404 46405 * alias.c (new_alias_set): Mark last_alias_set for PCH. 46406 (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it 46407 for PCH. 46408 (get_frame_alias_set): Likewise, except rename it to 'frame_set'. 46409 * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH. 46410 (get_TOC_alias_set): Mark 'set' for PCH. 46411 464122004-01-16 Geoffrey Keating <geoffk@apple.com> 46413 46414 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps 46415 even after reload, just don't remove the actual jump tables. 46416 464172004-01-17 J. Brobecker <brobecker@gnat.com> 46418 46419 * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type(). 46420 Remove checks for is_ada() and TREE_UNSIGNED. 46421 (subrange_type_die): Emit a byte_size attribute if the subrange 46422 type size is different from the base type size. 46423 (modified_type_die): Replace call to is_ada_subrange_type() by 46424 call to is_subrange_type(). 46425 464262004-01-16 Andrew Pinski <pinskia@physics.uc.edu> 46427 46428 * config/sh/sh.c: Include ggc.h. 46429 464302004-01-16 Geoffrey Keating <geoffk@apple.com> 46431 46432 * Makefile.in (MD5_H): New. 46433 (fold-const.o): Depend on md5.h. 46434 (dwarf2out.o): Likewise. 46435 (cppfiles.o): Likewise. 46436 * cppfiles.c: Include md5.h. 46437 (should_stack_file): Check against list read from PCH file. 46438 (struct pchf_data): New. 46439 (pchf): New variable. 46440 (struct pchf_adder_info): New. 46441 (pchf_adder): New. 46442 (pchf_save_compare): New. 46443 (_cpp_save_file_entries): New. 46444 (_cpp_read_file_entries): New. 46445 (struct pchf_compare_data): New. 46446 (pchf_compare): New. 46447 (check_file_against_entries): New. 46448 * cpphash.h (_cpp_save_file_entries): Prototype. 46449 (_cpp_read_file_entries): Prototype. 46450 * cpppch.c (cpp_write_pch_state): Write the list of headers. 46451 (cpp_read_state): Read the list of headers. 46452 464532004-01-17 Jan Hubicka <jh@suse.cz> 46454 46455 * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and 46456 builtin_expect specially. 46457 * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100. 46458 (PARAM_LARGE_FUNCTION_INSNS): Set to 3000. 46459 * invoke.texi (max-inline-insns-single): Set to 100. 46460 (large-function-insns): Set to 3000. 46461 464622004-01-16 Eric Christopher <echristo@redhat.com> 46463 Chandrakala Chavva <cchavva@redhat.com> 46464 46465 * cppcharset.c (one_iso88591_to_utf8): New function. 46466 (convert_iso88591_utf8): Ditto. Use. 46467 (conversion_tab): Use. 46468 (_cpp_input_to_utf8): New function. 46469 (_cpp_init_iconv_buffer): Ditto. 46470 (_cpp_close_iconv_buffer): Ditto. 46471 * cpphash.h: Prototype new functions. 46472 (cpp_buffer): Add input_cset_desc. 46473 * cppinit.c: Add input_charset default. 46474 * cpplib.c (cpp_push_buffer): Support init and 46475 close of iconv. 46476 * cpplib.h (cpp_options): Add input_charset. 46477 464782004-01-16 Kazu Hirata <kazu@cs.umass.edu> 46479 46480 * system.h (ASM_OUTPUT_SECTION_NAME): Poison. 46481 * config/alpha/unicosmk.h: Remove a commented-out definition 46482 of ASM_OUTPUT_SECTION_NAME. 46483 * config/stormy16/stormy16.h: Likewise. 46484 464852004-01-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 46486 46487 * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ... 46488 (alpha___extern_prefix_sys_stat): ... this. 46489 Apply to <sys/mount.h>, too. 46490 Tweak to match more variations. 46491 * fixinc/tests/base/sys/stat.h: Adapt for new hackname. 46492 46493 * fixinc/inclhack.def (alpha___extern_prefix, 46494 alpha___extern_prefix_standards): New hacks to obey 46495 __PRAGMA_EXTERN_PREFIX. 46496 * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New 46497 test. 46498 * fixinc/tests/base/standards.h: Likewise. 46499 46500 * fixincl/inclhack.def (alpha_pthread): Tweak to match more 46501 variations. 46502 New testcase. 46503 * fixinc/tests/base/pthread.h: Handle it. 46504 46505 * fixincl/inclhack.def (bad_lval): Sort file list. 46506 Add many missing files up to Tru64 UNIX V5.1B. 46507 * fixinc/tests/base/libgen.h: Renamed to ... 46508 * fixinc/tests/base/dirent.h: ... this to match new file list 46509 order. 46510 46511 * fixinc/fixincl.x: Regenerate. 46512 465132004-01-16 Mark Mitchell <mark@codesourcery.com> 46514 46515 * version.c (version_string): Change to 3.5.0. 46516 * doc/include/gcc-common.texi (version-GCC): Likewise. 46517 465182004-01-16 Jan Hubicka <jh@suse.cz> 46519 46520 * i386.md (load_tp_di): Fix pasto. 46521 46522 PR opt/13608 46523 * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function. 46524 46525 * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator, 46526 pp_c_character_constant, pp_c_floating_constant, 46527 pp_c_additive_expression, pp_c_shift_expression, 46528 pp_c_equality_expression, pp_c_and_expression, 46529 pp_c_exclusive_or_expression, pp_c_inclusive_or_expression, 46530 pp_c_logical_and_expression): Remove inline modifier. 46531 * dwarf2out.c (get_AT): Likewise. 46532 * et-forest.c (et_splay): Likewise. 46533 * ra.h (ra_alloc, ra_calloc): Likewise 46534 465352004-01-16 Kazu Hirata <kazu@cs.umass.edu> 46536 46537 * config/frv/frv-protos.h: Fix comment formatting. 46538 * config/frv/frv.c: Likewise. 46539 * config/frv/frv.h: Likewise. 46540 * config/frv/frv.md: Likewise. 46541 * config/frv/frvbegin.c: Likewise. 46542 * config/frv/frvend.c: Likewise. 46543 465442004-01-16 Kazu Hirata <kazu@cs.umass.edu> 46545 46546 * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison. 46547 * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention 46548 LINKER_DOES_NOT_WORK_WITH_DWARF2. 46549 (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove. 46550 465512004-01-16 J"orn Rennecke <joern.rennecke@superh.com> 46552 46553 PR 11864 46554 * postreload.c (reload_cse_simplify_operands): Don't remove 46555 implicit extension from LOAD_EXTEND_OP. 46556 465572004-01-16 Jan Hubicka <jh@suse.cz> 46558 46559 PR opt/11350 46560 * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal 46561 after reload. 46562 * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks, 46563 rtl_try_redirect_by_replacing_branch): Likewise. 46564 465652004-01-15 Geoffrey Keating <geoffk@apple.com> 46566 46567 PR pch/13689 46568 * alias.c (struct alias_set_entry): Mark for GC. 46569 (alias_sets): Make static, mark for GC. 46570 (record_alias_subset): Use GC to allocate alias structures. 46571 * varray.c (element): Make generic varrays GCed. 46572 46573 PR pch/13361 46574 * c-typeck.c (constructor_asmspec): Delete. 46575 (struct initializer_stack): Delete field 'asmspec'. 46576 (start_init): Delete saving of asmspec. 46577 (finish_init): Don't update constructor_asmspec. 46578 * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree. 46579 * stmt.c (expand_asm): Duplicate strings from tree. 46580 (expand_asm_operands): Likewise. 46581 * tree.c (tree_size): Update computation of size of STRING_CST. 46582 (make_node): Don't make STRING_CST nodes. 46583 (build_string): Allocate string with tree node. 46584 * tree.def (STRING_CST): Update comment. 46585 * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST. 46586 (tree_string): Place contents of string in tree node. 46587 * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string 46588 from tree. 46589 46590 * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case 46591 altivec operands. 46592 465932004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46594 46595 * c-common.h: Fix comment formatting. 46596 * c-cppbuiltin.c: Likewise. 46597 * c-pragma.c: Likewise. 46598 * calls.c: Likewise. 46599 * collect2.c: Likewise. 46600 * cppcharset.c: Likewise. 46601 * cpptrad.c: Likewise. 46602 * dbxout.c: Likewise. 46603 * defaults.h: Likewise. 46604 * dwarf2out.c: Likewise. 46605 * fold-const.c: Likewise. 46606 * genautomata.c: Likewise. 46607 * genconditions.c: Likewise. 46608 * genflags.c: Likewise. 46609 * gengtype.c: Likewise. 46610 * integrate.c: Likewise. 46611 * loop.c: Likewise. 46612 * predict.c: Likewise. 46613 * sdbout.c: Likewise. 46614 466152004-01-15 Zack Weinberg <zack@codesourcery.com> 46616 46617 * config/ia64/ia64.md (*movti_internal): C output template 46618 extracted to ia64.c. 46619 (*movti_internal_reg): Delete. 46620 (reload_inti, reload_outti): Use the correct mode on operand 2 46621 in the first place, don't fix it up in the output template. 46622 (movtf, reload_ointf, reload_outtf): New expanders. 46623 (*movtf_internal): New define_insn_and_split. 46624 * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode; 46625 make static; do not hand TFmode CONST_DOUBLEs to split_double. 46626 (ia64_split_tmode_move): New function, body mostly pulled 46627 from ia64.md:*movti_internal. 46628 (ia64_function_arg_words): New function, extracted common 46629 logic from ia64_function_arg et seq. 46630 (ia64_function_arg_offset): Likewise. Handle correctly the 46631 case of a scalar quantity 16 bytes wide with only 8-byte alignment. 46632 (ia64_function_arg, ia64_function_arg_partial_nregs) 46633 (ia64_function_arg_advance): Use ia64_function_arg_words and 46634 ia64_function_arg_offset. 46635 (ia64_function_value): TCmode does not go in float regs. 46636 (ia64_secondary_reload_class): Also handle TFmode. 46637 * config/ia64/ia64-protos.h: Remove prototype for 46638 ia64_split_timode; add prototype for ia64_split_tmode_move. 46639 466402004-01-15 Kelley Cook <kcook@gcc.gnu.org> 46641 46642 * Makefile.in (MAINT): Make it an immediate assignment. 46643 466442004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46645 46646 * config/m32r/m32r.md: Remove useless calls to gen_lowpart. 46647 466482004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46649 46650 * config/h8300/coff.h: Replace Hitachi with Renesas. 46651 * config/h8300/elf.h: Likewise. 46652 * config/h8300/h8300-protos.h: Likewise. 46653 * config/h8300/h8300.c: Likewise. 46654 * config/h8300/h8300.h: Likewise. 46655 * config/h8300/h8300.md: Likewise. 46656 * config/h8300/lib1funcs.asm: Likewise. 46657 466582004-01-15 Andrew Pinski <apinski@apple.com> 46659 46660 * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF 46661 around it. 46662 466632004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46664 46665 * config/h8300/h8300.c (h8300_return_in_memory): New. 46666 (TARGET_STRUCT_VALUE_RTX): Likewise. 46667 (TARGET_RETURN_IN_MEMORY): Likewise. 46668 * config/h8300/h8300.h (STRUCT_VALUE): Remove. 46669 (RETURN_IN_MEMORY): Likewise. 46670 466712004-01-15 Richard Earnshaw <rearnsha@arm.com> 46672 46673 PR optimization/13375 46674 * gcse.c (handle_avail_expr): Just return if the source is not a 46675 single set. 46676 466772004-01-15 Richard Earnshaw <rearnsha@arm.com> 46678 Daniel Jacobowitz <drow@mvista.com> 46679 46680 * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case. 46681 (EQUIV): Define. 46682 (ARM_FUNC_ALIAS): New macro. 46683 * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it. 46684 * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it. 46685 466862004-01-15 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 46687 46688 PR optimization/12372 46689 * calls.c (expand_call): Add call_fusage data for stack arguments in 46690 constant calls. 46691 466922004-01-15 Alan Modra <amodra@bigpond.net.au> 46693 46694 * config/rs6000/rs6000.c (uses_TOC): Correct comment. Make static. 46695 (rs6000_elf_declare_function_name): Formatting. 46696 * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration. 46697 466982004-01-15 Jan Hubicka <jh@suse.cz> 46699 46700 PR bootstrap/13692 46701 * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in 46702 previous patch. 46703 467042004-01-15 Richard Henderson <rth@redhat.com> 46705 46706 * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after 46707 integer regs of the same call-savedness. 46708 467092004-01-15 Andreas Schwab <schwab@suse.de> 46710 46711 PR bootstrap/13562 46712 * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc 46713 status for NOTB/NOTW/NEGW methods. 46714 467152004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46716 46717 * doc/invoke.texi: Update dump file names. Fix a typo. 46718 467192004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46720 46721 * builtins.c (expand_builtin_va_end): Don't use 46722 EXPAND_BUILTIN_VA_END. 46723 * system.h (EXPAND_BUILTIN_VA_END): Poison. 46724 * config/d30v/d30v.h: Remove a commented-out definition of 46725 EXPAND_BUILTIN_VA_END. 46726 * config/stormy16/stormy16.h: Likewise. 46727 467282004-01-15 Kazu Hirata <kazu@cs.umass.edu> 46729 46730 * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison. 46731 * targhooks.c (default_struct_value_rtx): Don't use 46732 STRUCT_VALUE_INCOMING_REGNUM. 46733 467342004-01-15 Kelley Cook <kcook@gcc.gnu.org> 46735 46736 PR bootstrap/12744 46737 * configure.in: Revamp enable-generated-files-in-srcdir rule to define 46738 GENINSRC and not parsedir. Define srcextra as a langhook. 46739 * configure: Regenerate. 46740 * Makefile.in: Suppress default .l.c rule. Don't substitute 46741 parsedir and delete all references throughout. Conditionally define 46742 rule for srcextra dependent on GENINSRC. 46743 (stmp-docobjdir): Delete. 46744 (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule. 46745 (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c, 46746 and gengtype-yacc.h back to source directory. 46747 (maintainer-clean): Delete all parse files in source directory. 46748 (distclean): Delete generated files. 46749 46750 * objc/Make-lang.in (objc-parse.o): Use implicit build rule. 46751 (objc-parse.c, objc-parse.y): Don't use parsedir. 46752 (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source 46753 directory if requested. 46754 (po-generated): Don't use parsedir. 46755 (objc.maintainer-clean): Delete above files from source directory. 46756 467572004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46758 46759 * doc/tm.texi (FUNCTION_VALUE): Fix a typo. 46760 467612004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46762 46763 * doc/tm.texi: Replace RETURN_IN_MEMORY with 46764 TARGET_RETURN_IN_MEMORY. 46765 467662004-01-15 Jan Hubicka <jh@suse.cz> 46767 46768 * builtins.c (std_expand_builtin_va_arg): Align operand when needed. 46769 * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic 46770 functions accepting SSE arguments 46771 (function_arg): Warn only when asked to warn. 46772 * i386.h (ix86_args): Add warn_sse/warn_mmx fiels. 46773 467742004-01-14 Joseph S. Myers <jsm@polyomino.org.uk> 46775 46776 * c-parse.in (stmts_and_decls): Make label at end of compound 46777 statement a hard error. 46778 467792004-01-14 Jan Hubicka <jh@suse.cz> 46780 46781 * cgraph.c (create_edge): Use local.redefined_extern_inline. 46782 * cgraph.h (cgraph_local_info): Sort fields by size; add 46783 redefined_extern_inline 46784 (cgraph_global_info): Sort fields by size. 46785 (cgraph_node): Likewise. 46786 * cgraphunit.c (cgraph_finalize_function): Se 46787 local.redefined_extern_inline on redefinition. 46788 (cgraph_analyze_function): Use it; fix formating. 46789 467902004-01-14 Jan Hubicka <jh@suse.cz> 46791 46792 PR c++/10776 46793 * sched-deps.c (trye_dependency_cache, anti_dependency_cache, 46794 outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of 46795 bitmaps 46796 (cache_size): New variable 46797 (add_dependence): Update use; canonize early memory locations 46798 (sched_analyze_1): Likewise. 46799 (sched_analyze_2): Likewise. 46800 (init_dependency_caches): Initialize bitmaps. 46801 (free_dependency_caches): Free bitmaps 46802 468032004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46804 46805 * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with 46806 targetm.calls.strict_argument_naming(). 46807 * target.h: Likewise. 46808 468092004-01-14 Richard Henderson <rth@redhat.com> 46810 46811 PR debug/13231 46812 * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue 46813 instructions. 46814 468152004-01-14 Richard Henderson <rth@redhat.com> 46816 46817 PR c++/12491 46818 * except.c (struct eh_region): Add u.fixup.resolved. 46819 (resolve_one_fixup_region): Split out from ... 46820 (resolve_fixup_regions): ... here. 46821 468222004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46823 46824 * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0. 46825 468262004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46827 46828 * config/alpha/alpha.h (STRUCT_VALUE): Remove. 46829 * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef. 46830 (STRUCT_VALUE): Remove. 46831 468322004-01-14 Steven Bosscher <stevenb@suse.de> 46833 46834 * system.h: Poison PROMOTED_MODE 46835 * integrate.c (expand_inline_function): Don't mention the 46836 PROMOTED_MODE. 46837 * loop.c (update_giv_derive): Same. 46838 * tree.h (DECL_RTL): Same. 46839 468402004-01-14 J"orn Rennecke <joern.rennecke@superh.com> 46841 46842 PR target/9365 46843 * sh.c (gen_block_redirect): Add special handling of RETURN. 46844 (gen_far_branch) Don't call gen_stuff_delay_slot if there is no 46845 far branch target (i.e. it's a return). 46846 468472004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46848 46849 * regrename.c (find_oldest_value_reg): Fix a warning. 46850 468512004-01-14 Richard Earnshaw <rearnsha@arm.com> 46852 46853 PR bootstrap/12527 46854 * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file. 46855 Move linux-gas.h and linux-elf.h before aout.h. 46856 * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already. 46857 * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define. 46858 468592004-01-14 Kazu Hirata <kazu@cs.umass.edu> 46860 46861 * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx 46862 (CONST_INT, VOIDmode, ...). 46863 468642004-01-14 Richard Earnshaw <rearnsha@arm.com> 46865 46866 * regrename.c (find_oldest_value_reg): If the replacement uses 46867 multiple hard registers, check that all of them are in CLASS. 46868 468692004-01-14 Jan Hubicka <jh@suse.cz> 46870 46871 * alias.c (get_alias_set): Initialize alias set to 0 when subset is 46872 impossible. 46873 468742004-01-14 Kelley Cook <kcook@gcc.gnu.org> 46875 46876 * Makefile.in: Define MAINT from --enable-maintainer-mode. 46877 468782004-01-14 Hartmut Penner <hpenner@de.ibm.com> 46879 46880 * config/rs6000/rs6000.c (rs6000_stack_info) 46881 Calculate always vrsave_mask if TARGET_ALTIVEC. 46882 (rs6000_emit_prologue): Emit code for vrsave 46883 only if TARGET_ALTIVEC_VRSAVE. 46884 (rs6000_emit_epilogue): Likewise. 46885 468862004-01-14 Eric Botcazou <ebotcazou@libertysurf.fr> 46887 46888 * config/sparc/sparc.md (tie_add32): Fix pasto. 46889 (tie_add64): Likewise. 46890 468912004-01-14 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 46892 46893 * config/i386/i386.md (*addqi_1_slp): Do not access operands[2]. 46894 468952004-01-13 Kazu Hirata <kazu@cs.umass.edu> 46896 46897 * config/iq2000/iq2000-protos.h: Fix comment formatting. 46898 * config/iq2000/iq2000.c: Likewise. 46899 * config/iq2000/iq2000.md: Likewise. 46900 469012004-01-14 J. Brobecker <brobecker@gnat.com> 46902 46903 * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME. 46904 (subrange_type_die): Add handle for nameless subrange types. 46905 469062004-01-13 Kazu Hirata <kazu@cs.umass.edu> 46907 46908 * config/h8300/h8300-protos.h: Replace do_movsi with 46909 h8300_expand_movsi. 46910 * config/h8300/h8300.c (do_movsi): Change to 46911 h8300_expand_movsi. 46912 * config/h8300/h8300.md (movsi): Replace do_movsi with 46913 h8300_expand_movsi. 46914 (movsf): Likewise. 46915 469162004-01-13 Kazu Hirata <kazu@cs.umass.edu> 46917 46918 * config/h8300/h8300.c (dosize): Change to 46919 h8300_emit_stack_adjustment. Update callers. 46920 469212004-01-13 Kazu Hirata <kazu@cs.umass.edu> 46922 46923 * config/h8300/h8300.md (movstrictqi): Add an alternative with 46924 the source being post_inc. Tighten the predicate for the 46925 destination to register_operand. 46926 (movstricthi): Likewise. 46927 469282004-01-13 Kazu Hirata <kazu@cs.umass.edu> 46929 46930 * system.h (SHARED_BSS_SECTION_ASM_OP): Poison. 46931 * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP. 46932 * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove. 46933 469342004-01-14 Jan Hubicka <jh@suse.cz> 46935 46936 Partial fix PR c++/12850 46937 * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when 46938 at zero nest level. 46939 469402004-01-13 Bernardo Innocenti <bernie@develer.com> 46941 46942 * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr" 46943 pseudo-register. 46944 469452004-01-13 Devang Patel <dpatel@apple.com 46946 46947 PR debug/7078 46948 * dbxout.c (dbxout_symbol_name): Emit mangled names for 46949 NAMESPACE_DECL memebers. 46950 469512004-01-13 Andrew Pinski <pinskia@physics.uc.edu> 46952 46953 PR c++/12709 46954 * c-common.c (finish_fname_decls): Use the chain only if the 46955 tree is an expr_stmt. 46956 469572004-01-13 Vladimir Makarov <vmakarov@redhat.com> 46958 46959 * rtl.def: Add comment about new option in automata_option. 46960 46961 * genautomata.c (PROGRESS_OPTION): New macro. 46962 (progress_flag): New global variable. 46963 (gen_automata_option): Process `progress'. 46964 (transform_insn_regexps, check_unit_distributions_to_automata, 46965 make_automaton, NDFA_to_DFA, build_automaton, create_automata, 46966 expand_automata, write_automata): Print about the progress only if 46967 progress_flag. Remove fflush. 46968 (initiate_automaton_gen): Process command line flag `-progress'. 46969 46970 * doc/md.texi: Describe the new option. 46971 469722004-01-13 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz> 46973 46974 * cfg.c (dump_bb): Dump entry edges. 46975 469762004-01-13 Richard Earnshaw <rearnsha@arm.com> 46977 46978 * arm.c (thumb_legitimate_address_p): Only allow constant pool 46979 references from SImode. 46980 * arm.md (thumb_movhi_insn): Don't allow minipool references. 46981 469822004-01-13 Kazu Hirata <kazu@cs.umass.edu> 46983 46984 * system.h (TEXT_SECTION): Poison. 46985 * varasm.c (text_section): Don't use TEXT_SECTION. 46986 * config/sh/sh.c (sh_file_start): Fix a comment typo. 46987 * doc/tm.texi (TEXT_SECTION): Remove. 46988 469892004-01-13 Ben Elliston <bje@wasabisystems.com> 46990 46991 * doc/rtl.texi (Vector Operations): Remove defunct vec_const item. 46992 469932004-01-12 James E Wilson <wilson@specifixinc.com> 46994 46995 * unwind-libunwind.c: Delete. 46996 469972004-01-12 Zack Weinberg <zack@codesourcery.com> 46998 46999 PR 13656 47000 * c-decl.c (diagnose_mismatched_decls): Whenever newtype or 47001 oldtype is set, set *newtypep or *oldtypep too. Do not set 47002 them at the very end. 47003 (validate_proto_after_old_defn): Restructure for comprehensibility; 47004 make error messages clearer. 47005 470062004-01-12 Zack Weinberg <zack@codesourcery.com> 47007 47008 * varray.h (VARRAY_POP): Add checking variant, aborts on underflow. 47009 (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked. 47010 * varray.c: No need to prototype error. 47011 (varray_check_failed): Wrap long string onto two lines. 47012 (varray_underflow): New function. 47013 470142004-01-13 Steven Bosscher <stevenb@suse.de> 47015 47016 PR c++/13376 47017 * function.h (struct function): Kill `name' field. 47018 (current_function_name): Make it an extern function. 47019 * function.c (current_function_name): New function. 47020 * graph.c: Update all uses of current_function_name. 47021 * gcse.c: Likewise. 47022 * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c, 47023 config/mips/mips.c, config/pdp11/pdp11.c: Likewise. 47024 * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P 47025 instead of a strcmp with "main". 47026 470272004-01-13 Jan Hubicka <jh@suse.cz> 47028 47029 * c-decl.c (diagnose_mismatched_decls): Fix warning calls. 47030 47031 * cgraphunit.c (cgraph_optimize_function): Always do 47032 optimize_inline_calls when there is always_inline callee. 47033 (cgraph_decide_inlining): Fix formating. 47034 * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline 47035 functions. 47036 (expand_call_inline): Likewise. 47037 * toplev.h (sorry): Fix prototype. 47038 470392004-01-12 Roger Sayle <roger@eyesopen.com> 47040 47041 * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle 47042 conditional jumps that drop through to unconditional jumps or the 47043 end of the sequence. 47044 470452004-01-13 Jan Hubicka <jh@suse.cz> 47046 47047 * alias.c (new_alias_set): Construct the alias_set varray. 47048 (init_alias_once): Don't do it here. 47049 470502004-01-12 Marc Espie <espie@openbsd.org> 47051 47052 * system.h: handle YYBYACC like YYBISON. 47053 470542004-01-12 Jonathan Merriman <jonm@dualitymedia.com> 47055 47056 PR target/10847 47057 * config.gcc: No longer includes conflicting header sparc/sol2.h when 47058 building on sparc64-*-openbsd*. 47059 470602004-01-12 Andrew Pinski <pinskia@physics.uc.edu> 47061 47062 PR debug/13539 47063 * dbxout.c (dbxout_type): Protected inheritance is not 47064 private but protected. 47065 470662004-01-12 Richard Sandiford <rsandifo@redhat.com> 47067 47068 * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch. 47069 470702004-01-12 Kazu Hirata <kazu@cs.umass.edu> 47071 47072 PR optimization/12508. 47073 * combine.c (try_combine): Remove a dead set in a parallel 47074 even if its destination is a subreg. 47075 47076 Revert: 47077 2003-06-03 Kazu Hirata <kazu@cs.umass.edu> 47078 * combine.c (simplify_set): Don't move a subreg in SET_SRC to 47079 SET_DEST if WORD_REGISTER_OPERATIONS is not defined. 47080 470812004-01-12 Geoffrey Keating <geoffk@apple.com> 47082 47083 * real.c: Update copyright date. 47084 * emit-rtl.c: Likewise. 47085 * rtl.h: Likewise. 47086 * dwarf2out.c: Likewise. 47087 * config/rs6000/darwin-ldouble.c: Likewise. 47088 * config/rs6000/rs6000.md: Likewise. 47089 470902004-01-12 David Edelsohn <edelsohn@gnu.org> 47091 47092 * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX 47093 TFmode to SImode libfuncs. 47094 470952004-01-12 Roger Sayle <roger@eyesopen.com> 47096 47097 PR middle-end/11397 47098 * varasm.c (assemble_alias): Remove weak aliases from weak_decls. 47099 471002004-01-12 Jan Hubicka <jh@suse.cz> 47101 47102 PR opt/12826 47103 * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be 47104 stored. 47105 47106 PR opt/12863 47107 * cfgcleanup.c (label_is_jump_target_p): Move to... 47108 * rtlanal.c (label_is_jump_target_p): ... here. 47109 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Fix redirecting of fallthru 47110 edges unified with branch edges. 47111 471122004-01-12 Richard Earnshaw <rearnsha@arm.com> 47113 47114 * simplify-rtx.c (simplify_immed_subreg): Correctly extract the 47115 high word of an integral CONST_DOUBLE. 47116 471172004-01-12 Paul Brook <paul@codesourcery.com> 47118 47119 * simplify-rtx.c (simplify_plus_minus): Always generate canonical form. 47120 471212004-01-12 J"orn Rennecke <joern.rennecke@superh.com> 47122 47123 PR target/13585 47124 * sh-protos.h (check_use_sfunc_addr): Declare. 47125 * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions. 47126 * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate. 47127 471282004-01-12 Jan Hubicka <jh@suse.cz> 47129 47130 * alias.c: Invlude varray.h 47131 (alias_sets): Turn into varray. 47132 (get_alias_set_entry): Use VARRAY; mark inline. 47133 (mems_in_disjoint_alias_sets_p): Mark inline. 47134 (record_alias_subset): Use varray. 47135 (init_alias_once): Initialize varray. 47136 (new_alias_set): Grow array. 47137 * varray.c: Make VARRAY_GENERIC_PTR non GTYized. 47138 471392004-01-12 Jan Hubicka <jh@suse.cz> 47140 47141 Partial fix for PR opt/10776 II 47142 * cselib.c: Include params.h 47143 (cselib_invalidate_mem): Limit amount of nonconflicting memory 47144 locations. 47145 * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New. 47146 * Makefile.in (cselib.o): Depend on params.h 47147 471482004-01-12 Richard Sandiford <rsandifo@redhat.com> 47149 47150 * combine.c (combine_simplify_rtx): Don't pass VOIDmode to 47151 simplify_unary_operation if the operand has a known mode. 47152 471532004-01-12 Hartmut Penner <hpenner@de.ibm.com> 47154 47155 PR target/13534 47156 * config/rs6000/rs6000.c (word_offset_memref_operand): New 47157 predicate to handle 'ld' conform addresses. 47158 * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y' 47159 contraint. 47160 (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint 47161 are memory contraints. 47162 * config/rs6000/rs6000-protos.h (word_offset_memref_operand): 47163 New prototype. 47164 * config/rs6000/rs6000.md (*movdf_hardfloat64): 47165 Change 'o' to 'Y' constraint. 47166 (*movdf_softfloat64): Ditto. 47167 471682004-01-12 Bernardo Innocenti <bernie@develer.com> 47169 47170 * config/m68k/m68k.md: Switch from the "*..." syntax to the 47171 brace-enclosed syntax in all C output statements. 47172 471732004-01-12 David Edelsohn <edelsohn@gnu.org> 47174 47175 PR target/13401 47176 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): 47177 Objective-C language type value is 14. 47178 471792004-01-12 Markus F.X.J. Oberhumer <markus@oberhumer.com> 47180 47181 PR c/12148 47182 * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of 47183 `int' in a number of places to make sure we always have a SImode 47184 and not a HImode. Add a 'L' suffix to a number of constants. 47185 471862004-01-11 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 47187 47188 * pa.c: Don't include obstack.h. 47189 47190 * pa.md: Correct constraint in pattern for loading PIC label address. 47191 471922004-01-11 Kaz Kojima <kkojima@gcc.gnu.org> 47193 47194 * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine 47195 before defining. 47196 471972004-01-11 Steven Bosscher <stevenb@suse.de> 47198 47199 PR fortran/9972 47200 * toplev.c (rest_of_handle_inline): Also consider functions 47201 for deferral if the language is GNU F77. 47202 472032004-01-11 Zack Weinberg <zack@codesourcery.com> 47204 47205 * c-decl.c (diagnose_arglist_conflict): Add missing space to 47206 diagnostic messages. 47207 472082004-01-11 Jakub Jelinek <jakub@redhat.com> 47209 47210 PR middle-end/13392 47211 * builtins.c (expand_builtin_expect_jump): Handle conditional jumps 47212 to drop through label. Don't fall back to SCC even when conditional 47213 jump has not been found. 47214 472152004-01-11 Jan Hubicka <jh@suse.cz> 47216 47217 * invoke.texi: Fix syntax error in previous patch. 47218 47219 Partial fix for PR opt/10776 47220 * Makefile.in (reload.o): Include param.h 47221 * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter. 47222 * reload.c: Include params.h. 47223 (find_equiv_reg): Work limiting check. 47224 * invoke.texi: Document. 47225 472262004-01-11 Richard Sandiford <rsandifo@redhat.com> 47227 47228 * config/mips/mips.c (mips_symbolic_constant_p): Don't allow 47229 out-of-bounds accesses to string constants. Simplify mips16 47230 case accordingly. 47231 472322004-01-11 Richard Sandiford <rsandifo@redhat.com> 47233 47234 PR optimization/13469 47235 * toplev.c (rest_of_compilation): Call purge_all_dead_edges after 47236 reload_cse_regs (-fnon-call-exceptions only). 47237 472382004-01-11 Kazu Hirata <kazu@cs.umass.edu> 47239 47240 * config/mcore/lib1.asm: Fix comment formatting. 47241 * config/mcore/mcore-elf.h: Likewise. 47242 * config/mcore/mcore.c: Likewise. 47243 * config/mcore/mcore.h: Likewise. 47244 * config/mcore/mcore.md: Likewise. 47245 472462004-01-10 Zack Weinberg <zack@codesourcery.com> 47247 47248 * c-decl.c (duplicate_decls): Break apart into... 47249 (diagnose_arglist_conflict, validate_proto_after_old_defn) 47250 (locate_old_defn, diagnose_mismatched_decls, merge_decls): 47251 ... these new functions. Restructure for comprehensibility. 47252 Remove various archaic special cases. Always report the 47253 location of the previous declaration when a diagnostic is issued. 47254 (redeclaration_error_message): Fold into diagnose_mismatched_decls. 47255 (match_builtin_function_types): Delete unnecessary forward declaration. 47256 472572004-01-10 Zack Weinberg <zack@codesourcery.com> 47258 47259 * genautomata.c (make_automaton, NDFA_to_DFA): 47260 Print progress bars with '.' characters instead of '*'. 47261 (build_automaton): Change notes to match. 47262 472632004-01-10 Kazu Hirata <kazu@cs.umass.edu> 47264 47265 * config/m32r/m32r.md: Use define_constants for unspec and 47266 unspec_volatile. 47267 472682004-01-10 Jan Hubicka <jh@suse.cz> 47269 47270 PR opt/11635 47271 * expr.c (expand_expr_real): More curefully expand union casts. 47272 472732004-01-10 Kazu Hirata <kazu@cs.umass.edu> 47274 47275 * config/m32r/m32r.md (flush_icache): Use 1 for 47276 unspec_volatile. 47277 472782004-01-10 David Edelsohn <edelsohn@gnu.org> 47279 James E Wilson <wilson@specifixinc.com> 47280 47281 PR debug/12860 47282 * dbxout.c (dbxout_symbol): Remove initialization of 47283 current_sym_code, current_sym_value, and current_sym_addr. 47284 (dbxout_symbol_location): Same. 47285 (dbxout_prepare_symbol): Zero current_sym_code, 47286 current_sym_value, and current_sym_addr. 47287 472882004-01-10 Richard Sandiford <rsandifo@redhat.com> 47289 47290 * tree.c (get_unwidened): Reorder conditions so that the null pointer 47291 check is done first. 47292 472932004-01-09 Eric Christopher <echristo@redhat.com> 47294 47295 * toplev.c (rest_of_handle_cfg): Add reg_scan pass 47296 if we're running mark_constant_function. 47297 472982004-01-09 Jeff Bailey <jbailey@nisa.net> 47299 47300 PR target/12561 47301 * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR. 47302 473032004-01-09 Andrew Pinski <pinskia@physics.uc.edu> 47304 47305 PR debug/11231 47306 * dbxout.c (dbxout_type_fields): Return if any item is 47307 error_mark_node or the type is error_mark_node. 47308 473092004-01-09 Geoffrey Keating <geoffk@apple.com> 47310 47311 * config/rs6000/darwin-ldouble.c: Add big comment explaining 47312 exactly what is expected as a 'long double'. 47313 (_xlqadd): When a value to be returned is representable as a 47314 'double', just return it directly, do not construct it using a union. 47315 Also, correct final fixup. 47316 (_xlqmul): Likewise. 47317 (_xlqdiv): Likewise. 47318 * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c. 47319 47320 * config/rs6000/rs6000.md (fix_trunctfdi2): Delete. 47321 473222004-01-09 Richard Henderson <rth@redhat.com> 47323 47324 * recog.c (constrain_operands): Validate mem operands. 47325 473262004-01-09 James E Wilson <wilson@specifixinc.com> 47327 47328 * gcc.c (init_spec): Remove -lunwind from shared case. 47329 * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind. 47330 473312004-01-09 Steve Ellcey <sje@cup.hp.com> 47332 47333 * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*. 47334 * configure: Regenerate 47335 473362004-01-09 Joseph S. Myers <jsm@polyomino.org.uk> 47337 47338 PR c/11234 47339 * c-typeck.c (build_c_cast): If pedantic, warn for conversions 47340 between function and object pointers. 47341 (digest_init): When comparing a pointer to function type to the 47342 target type, only apply TREE_TYPE once to the pointer to function 47343 type. 47344 * except.c (for_each_eh_label_1): Treat data as a pointer to a 47345 function pointer rather than casting it to a function pointer. 47346 (for_each_eh_label): Update caller. 47347 * recog.h (struct insn_data): Use a struct or union for output. 47348 * genoutput.c (output_insn_data): Update. 47349 * final.c (get_insn_template): Update. 47350 473512004-01-09 Mark Mitchell <mark@codesourcery.com> 47352 47353 * expr.h (expand_expr): Make it a macro, not a function. 47354 (expand_expr_real): New function. 47355 * expr.c (store_expr): Adjust logic for deciding whether or not to 47356 copy the value returned by expand_expr. 47357 (expand_expr): Rename to ... 47358 (expand_expr_real): ... this. Add alt_rtl parameter. Adjust 47359 calls to language hooks. 47360 * c-common.h (c_expand_expr): Adjust prototype. 47361 * c-common.c (c_expand_expr): Add alt_rtl parameter. 47362 * langhooks-def.h (lhd_expand_expr): Change prototype. 47363 * langhooks.c (lhd_expand_expr): Add all_rtl parameter. 47364 * langhooks.h (lang_hooks): Change type of expand_expr. 47365 * stmt.c (stmt_status): Add x_last_expr_alt_rtl. 47366 (last_expr_alt_rtl): Likewise. 47367 (expand_expr_stmt_value): Set last_expr_alt_rtl. 47368 (clear_last_expr): Clear it. 47369 (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL. 47370 (expand_end_bindings): Save and restor last_expr_alt_rtl. 47371 * tree.def (RTL_EXPR): Give it an additional operand. 47372 * tree.h (RTL_EXPR_ALT_RTL): New macro. 47373 473742004-01-09 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 47375 47376 * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__. 47377 * config/m32r/m32r.c (call26_operand): Allow in PIC mode. 47378 473792004-01-09 Kazu Hirata <kazu@cs.umass.edu> 47380 47381 PR target/13380. 47382 * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17) 47383 or (ne:SI (reg:CC 17) (const_int 0)). 47384 Be specific about modes wherever possible. 47385 473862004-01-09 Kazu Hirata <kazu@cs.umass.edu> 47387 47388 * config/m32r/m32r.c (m32r_expand_block_move): Call 47389 gen_movestrsi_internal with two more arguments. 47390 (m32r_output_block_move): Adjust operand numbers. 47391 Properly update the source and destination pointers. 47392 * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of 47393 'r+'. Change the set detinations to match_operand. 47394 473952004-01-09 Kazu Hirata <kazu@cs.umass.edu> 47396 47397 * final.c (FIRST_INSN_ADDRESS): Remove. 47398 (shorten_branches): Don't use FIRST_INSN_ADDRESS. 47399 * system.h (FIRST_INSN_ADDRESS): Poison. 47400 * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS. 47401 * config/m32r/m32r-protos.h: Remove the prototype for 47402 m32r_first_insn_address. 47403 * config/m32r/m32r.c (m32r_first_insn_address): Remove. 47404 * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise. 47405 * doc/md.texi (FIRST_INSN_ADDRESS): Likewise. 47406 474072004-01-09 J. Brobecker <brobecker@gnat.com> 47408 47409 * dwarf2out.c (gen_enumeration_type_die): Return the DIE that 47410 we just created. 47411 (is_ada_subrange_type): DIEs for enumeration subtypes should be 47412 emitted as subrange types too. 47413 (subrange_type_die): Add handling of enumeration subtypes. 47414 474152004-01-08 Richard Henderson <rth@redhat.com> 47416 47417 PR opt/12441 47418 Revert: Sat Mar 30 14:08:55 CET 2002 Jan Hubicka <jh@suse.cz> 47419 * i386.c (aligned_operand): Be prepared for SUBREGed registers. 47420 (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG. 47421 (ix86_address_cost): Be prepared for SUBREGed registers. 47422 (legitimate_address_p): Accept SUBREGed registers. 47423 474242004-01-08 Kelley Cook <kcook@gcc.gnu.org> 47425 47426 * Makefile.in: Rename configure.in to configure.ac 47427 * doc/sourcebuild.texi: Likewise. 47428 * configure: Regenerate. 47429 * config.in: Regenerate. 47430 474312004-01-08 Stuart Hastings <stuart@apple.com> 47432 47433 * config/i386/i386.md: Typos in MMX/SSE immediate shifts. 47434 474352004-01-08 Jan Hubicka <jh@suse.cz> 47436 47437 * cgraphunit.c (cgraph_decide_inlining): Fix typo. 47438 474392004-01-08 Geoffrey Keating <geoffk@apple.com> 47440 47441 * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset. 47442 (UNSPEC_FIX_TRUNC_TF): New constant. 47443 (movtf_internal): Make splitter active only when insn is active. 47444 (extenddftf2): Rewrite to properly load zero into low part. 47445 (extenddftf2_internal): New. 47446 (extendsftf2): Rewrite. 47447 (truncdftf2): Correct length. 47448 (floatditf2): Delete. 47449 (fix_trunc_helper): New. 47450 (fix_trunctfdi2): Use fix_trunc_helper. 47451 (fix_trunctfsi2): Likewise.fix_trunc 47452 (fix_trunctfsi2_internal): New. 47453 47454 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum 47455 addresses are legitimate on Darwin even when flag_pic. 47456 (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create 47457 non-offsettable addresses for loads of TFmode constants. 47458 474592004-01-08 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 47460 47461 * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit 47462 variables in the appropriate bss section. 47463 474642004-01-09 Alan Modra <amodra@bigpond.net.au> 47465 47466 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure 47467 target_flags has MASK_POWERPC64 when -m64. 47468 * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64 47469 to 620, 630, power3, power4 and rs64a entries. 47470 * config/rs6000/rs6000.h (MASK_64BIT): Expand comment. 47471 474722004-01-08 Richard Sandiford <rsandifo@redhat.com> 47473 47474 * simplify-rtx.c (simplify_immed_subreg): Fix construction of 47475 floating-point constants. 47476 474772004-01-08 J. Brobecker <brobecker@gnat.com> 47478 47479 * dwarf2out.c (subrange_type_die): Add context_die parameter. 47480 Create the subrange_type DIE using the given context DIE. 47481 (modified_type_die): Update call to subrange_type_die. 47482 474832004-01-08 Zack Weinberg <zack@codesourcery.com> 47484 47485 * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h: 47486 Add multiple-include guard. 47487 474882004-01-08 Hartmut Penner <hpenner@de.ibm.com> 47489 47490 * config/rs6000/rs6000.c (easy_vector_constant): Accept 47491 all vector constant loadable by vsplt*. 47492 (output_vec_const_move): Likewise. 47493 474942004-01-07 Joseph S. Myers <jsm@polyomino.org.uk> 47495 47496 PR c/6024 47497 * c-typeck.c (comptypes): Only treat enumerated types in the same 47498 translation unit as compatible with each other when they are the 47499 same type. 47500 * doc/extend.texi: Update. 47501 475022004-01-07 Joseph S. Myers <jsm@polyomino.org.uk> 47503 47504 PR c/12165 47505 * c-decl.c (grokdeclarator): Take type qualifiers of typedefed 47506 array type from the array element type. 47507 475082004-01-07 Alan Modra <amodra@bigpond.net.au> 47509 47510 * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function. 47511 * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare. 47512 * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define. 47513 (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment. 47514 * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define. 47515 475162004-01-06 Eric Christopher <echristo@redhat.com> 47517 47518 * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default. 47519 (DWARF2_DEBUGGING_INFO): Define. 47520 (PREFERRED_DEBUGGING_TYPE): Set to dwarf2. 47521 * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove. 47522 * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0 47523 for irix as. 47524 (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as. 47525 * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove. 47526 * config/mips/iris5gas.h: Ditto. 47527 (DBX_DEBUGGING_INFO): Remove. 47528 (DWARF2_DEBUGGING_INFO): Ditto. 47529 (MIPS_DEBUGGING_INFO): Ditto. 47530 (PREFERRED_DEBUGGING_TYPE): Ditto. 47531 * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove. 47532 (PREFERRED_DEBUGGING_TYPE): Ditto. 47533 (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto. 47534 * config/mips/elf64.h: Ditto. 47535 475362004-01-06 Jan Hubicka <jh@suse.cz> 47537 47538 * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate. 47539 (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use. 47540 475412004-01-06 Geoffrey Keating <geoffk@apple.com> 47542 47543 * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c. 47544 (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128. 47545 * config/rs6000/darwin-ldouble.c: New. 47546 47547 * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg 47548 for constants. 47549 (constant_subword): Delete. 47550 * rtl.h (constant_subword): Delete prototype. 47551 (immed_double_const): Is not in varasm.c. 47552 * simplify-rtx.c (simplify_immed_subreg): New. 47553 (simplify_subreg): Use simplify_immed_subreg. 47554 47555 * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather 47556 than trying to generate RTL directly. 47557 (fix_trunctfsi2): Use expand_fix rather than trying to generate 47558 RTL directly. 47559 47560 * dwarf2out.c (add_const_value_attribute): Remove incorrect comment. 47561 475622004-01-06 David Edelsohn <edelsohn@gnu.org> 47563 47564 * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each 47565 function into a separate macro. 47566 (read_only_data_section): Add void argument. 47567 (private_data_section): Same. 47568 (read_only_private_data_section): Same. 47569 (toc_section): Same. 47570 475712004-01-06 Jan Hubicka <jh@suse.cz> 47572 47573 * invoke.texi: Remove typo in last change. 47574 47575 PR target/10301 47576 * config.gcc: Accept opteron and athlon-64 as variants 47577 of k8. 47578 * i386.c (override_options): Likewise. 47579 * invoke.texi (i386 -mtune): Expand documentation. 47580 475812004-01-06 Kazu Hirata <kazu@cs.umass.edu> 47582 47583 * alias.c: Fix comment typos. 47584 * builtins.c: Likewise. 47585 * cfg.c: Likewise. 47586 * df.c: Likewise. 47587 * dominance.c: Likewise. 47588 * dwarf2out.c: Likewise. 47589 * emit-rtl.c: Likewise. 47590 * expr.c: Likewise. 47591 * final.c: Likewise. 47592 * fold-const.c: Likewise. 47593 * gcse.c: Likewise. 47594 * genattrtab.c: Likewise. 47595 * genrecog.c: Likewise. 47596 * gensupport.c: Likewise. 47597 * ggc-zone.c: Likewise. 47598 * integrate.c: Likewise. 47599 * local-alloc.c: Likewise. 47600 * loop.c: Likewise. 47601 * recog.c: Likewise. 47602 * regmove.c: Likewise. 47603 * reg-stack.c: Likewise. 47604 * reorg.c: Likewise. 47605 * rtlanal.c: Likewise. 47606 * rtl.h: Likewise. 47607 * sched-ebb.c: Likewise. 47608 * simplify-rtx.c: Likewise. 47609 * toplev.c: Likewise. 47610 * varasm.c: Likewise. 47611 476122004-01-06 Kazu Hirata <kazu@cs.umass.edu> 47613 47614 * doc/install.texi: Fix typos. 47615 * doc/invoke.texi: Likewise. 47616 * doc/md.texi: Likewise. 47617 476182004-01-06 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com> 47619 47620 * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed 47621 476222004-01-06 Jan Hubicka <jh@suse.cz> 47623 47624 * i386.c (init_cumulative_args): Add handling of MMX_REGPARM. 47625 (function_arg_advance): Do not pass aggregates in SSE; deal handling 47626 of MMX_REGPARM. 47627 (function_arg): Add new warnings about ABI changes; fix SSE_REGPARM; 47628 add MMX_REGPARM. 47629 * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields. 47630 (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI. 47631 (MMX_REGPARM_MAX): Similarly for -mmmx. 47632 476332004-01-05 Kazu Hirata <kazu@cs.umass.edu> 47634 47635 * config/sh/linux.h: Fix comment formatting. 47636 * config/sh/netbsd-elf.h: Likewise. 47637 * config/sh/sh.c: Likewise. 47638 * config/sh/sh.h: Likewise. 47639 * config/sh/vxworks.h: Likewise. 47640 476412004-01-05 Kazu Hirata <kazu@cs.umass.edu> 47642 47643 * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison. 47644 * toplev.c (output_file_directive): Don't use 47645 ASM_OUTPUT_MAIN_SOURCE_FILENAME. 47646 476472004-01-05 Steven Bosscher <s.bosscher@student.tudelft.nl> 47648 47649 * toplev.c: Fix broken checkin of 2003-12-30. 47650 476512004-01-05 Daniel Berlin <dberlin@dberlin.org> 47652 47653 * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS 47654 (USING_MMAP): We don't support non-mmap. 47655 (struct alloc_chunk): Steal 1 bit from typecode, use it to mark 47656 large objects. 47657 (struct page_entry): Remove bytes_free. 47658 (struct page_table_chain): Remove. 47659 (struct globals): Remove page_table member. 47660 (loookup_page_table_entry): Function deleted. 47661 (set_page_table_entry): Ditto. 47662 (ggc_allocated_p): No longer need page table lookups. 47663 (ggc_marked_p): Ditto. 47664 (alloc_small_page): Don't care about bytes_free anymore. 47665 (alloc_large_page): Round up size. 47666 (ggc_alloc_zone_1): Mark large objects as such, and calculate 47667 their size the new way. 47668 Remove page table lookups and setting. 47669 (ggc_get_size): Calculate large object size the new way. 47670 (sweep_pages): Redo to account for fact that we no longer have 47671 bytes_free. 47672 (ggc_collect): No longer need to reincrement bytes_free. 47673 (ggc_pch_alloc_object): Handle new large objects properly. 47674 (ggc_pch_read): Put PCH stuff into it's own uncollected zone. 47675 476762004-01-05 Kazu Hirata <kazu@cs.umass.edu> 47677 47678 * doc/invoke.texi: Remove a page break. 47679 476802004-01-05 Kazu Hirata <kazu@cs.umass.edu> 47681 47682 * config/avr/avr.c (avr_output_function_prologue): Remove an 47683 extra pair of curly braces. 47684 476852004-01-05 Kazu Hirata <kazu@cs.umass.edu> 47686 47687 * config/mn10300/mn10300.c: Fix comment formatting. 47688 * config/mn10300/mn10300.h: Likewise. 47689 476902004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 47691 47692 * tree.h: Update documentation on nothrow_flag. 47693 * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for 47694 types. 47695 476962004-01-05 Kazu Hirata <kazu@cs.umass.edu> 47697 47698 * doc/invoke.texi: Remove traces of dead ports. 47699 477002004-01-05 Richard Sandiford <rsandifo@redhat.com> 47701 47702 * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs 47703 option. 47704 477052004-01-05 Richard Sandiford <rsandifo@redhat.com> 47706 47707 PR target/12945 47708 * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for 47709 counter labels. 47710 * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete. 47711 (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating 47712 string constants if TARGET_MIPS16. Use SYMBOL_REF_DECL to check 47713 the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P. 47714 (mips_symbol_insns): Don't trust the local/global classification. 47715 (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol. 47716 (override_options): Make -mabicalls -fno-unit-at-a-time imply 47717 -mno-explicit-relocs. 47718 (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish 47719 between local and global symbols. 47720 477212004-01-05 Richard Sandiford <rsandifo@redhat.com> 47722 47723 * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare. 47724 (mips_preferred_reload_class): Declare. 47725 * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function. 47726 (EXTRA_CONSTRAINT): Update accordingly. 47727 (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class. 47728 * config/mips/mips.c (mips_dangerous_for_la25_p): New function. 47729 (mips_preferred_reload_class): New function. Prefer LEA_REGS if 47730 mips_dangerous_for_la25_p. 47731 (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS 47732 if mips_dangerous_for_la25_p. 47733 477342004-01-05 Bernardo Innocenti <bernie@develer.com> 47735 47736 * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison 47737 warning. 47738 477392004-01-04 Nathanael Nerode <neroden@gcc.gnu.org> 47740 47741 * configure.ac: Use AC_PROG_CPP_WERROR. 47742 * configure: Regenerate. 47743 477442004-01-04 Zack Weinberg <zack@codesourcery.com> 47745 47746 * .cvsignore: Add autom4te.cache. 47747 477482004-01-04 Richard Sandiford <rsandifo@redhat.com> 47749 47750 * doc/invoke.texi: Revamp documentation of MIPS options. Remove 47751 -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile, 47752 -m4650, -mfix7000 and -(m)no-crt0. Put endianness options first, 47753 then architecture options, then ABI options. General rewording. 47754 477552004-01-04 Joseph S. Myers <jsm@polyomino.org.uk> 47756 47757 PR c/3414 47758 * doc/extend.texi: Clarify definition of malloc attribute. 47759 477602004-01-04 Jan Hubicka <jh@suse.cz> 47761 47762 * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency. 47763 * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed 47764 * cgraph.h (cgraph_edge): Replace inline_call by inline_failed 47765 (cgraph_inline_p): Add extra argument reason. 47766 * cgraphunit.c: Minor formating fixes. 47767 cgraph_first_inlined_callee): New functions. 47768 (record_call_1): Record builtins too. 47769 (cgraph_analyze_function): Update inline_failed messages. 47770 (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into, 47771 cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed. 47772 (cgraph_check_inline_limits): Likewise; Add argument reason. 47773 (cgraph_set_inline_failed): New static function. 47774 (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set 47775 reasons. 47776 (cgraph_inline_p): Add new argument reason. 47777 * tree-inline.c (expand_call_inline): Update warning. 47778 477792004-01-03 Nathanael Nerode <neroden@gcc.gnu.org> 47780 47781 * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM 47782 with modern equivalents. 47783 * configure: Regenerate. 47784 47785 * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE. 47786 * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove. 47787 * configure: Regenerate. 47788 47789 * doc/install.texi: Note that 'gcc' is now a 2.57 directory. 47790 47791 * configure.in: Rename to configure.ac. 47792 * configure.ac: Renamed from configure.in; make minimum necessary 47793 changes for autoconf 2.5x. 47794 * aclocal.m4: Make minimum necessary changes for autoconf 2.5x. 47795 * configure: Regenerate with autoconf 2.57. 47796 477972004-01-03 Kazu Hirata <kazu@cs.umass.edu> 47798 47799 * config/mips/linux.h: Fix comment formatting. 47800 * config/mips/mips.c: Likewise. 47801 * config/mips/mips.h: Likewise. 47802 * config/mips/mips.md: Likewise. 47803 * config/mips/netbsd.h: Likewise. 47804 * config/mips/windiss.h: Likewise. 47805 478062004-01-02 Richard Henderson <rth@redhat.com> 47807 47808 * config/i386/i386.md (fp constant pool splitter): Reorg suppression 47809 for sse and 387; add suppression for mmx. 47810 478112004-01-02 Andrew Pinski <pinskia@physics.uc.edu> 47812 47813 * loop.c (loop_optimize): Free all loops_info's mems. 47814 47815 * c-typeck.c (finish_init): Free spelling_base before 47816 setting it again. 47817 47818 * cfgloop.c (flow_loops_find): Always free the sbitmap 47819 headers. 47820 47821 * predict.c (estimate_probability): Free bbs after being 47822 done with it. 47823 478242004-01-02 Kazu Hirata <kazu@cs.umass.edu> 47825 47826 * config/mn10300/mn10300.h (PREDICATE_CODES): Add 47827 const_8bit_operand and call_address_operand. 47828 478292004-01-02 Jan Hubicka <jh@suse.cz> 47830 47831 * cgraphunit.c (cgraph_optimize_function): Call optimize_inline_calls 47832 when there is nothing to inline but warnings are requested. 47833 (cgraph_decide_inlining): Fix memory leak. 47834 478352004-01-02 Jan Hubicka <jh@suse.cz> 47836 47837 * expr.c (store_constructor): Fix pasto in previous patch. 47838 478392004-01-02 Kazu Hirata <kazu@cs.umass.edu> 47840 47841 * config/i386/cygming.h: Fix comment formatting. 47842 * config/i386/djgpp.h: Likewise. 47843 * config/i386/gthr-win32.c: Likewise. 47844 * config/i386/i386-interix.h: Likewise. 47845 * config/i386/i386.c: Likewise. 47846 * config/i386/i386.h: Likewise. 47847 * config/i386/openbsd.h: Likewise. 47848 * config/i386/winnt.c: Likewise. 47849 * config/i386/xm-mingw32.h: Likewise. 47850 478512004-01-02 Joseph S. Myers <jsm@polyomino.org.uk> 47852 47853 * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update 47854 copyright and last modification dates. 47855 478562004-01-02 Andreas Jaeger <aj@suse.de>, Gerald Pfeifer <gp@suse.de> 47857 47858 * doc/install.texi (Specific): Mention x86_64. 47859 478602004-01-01 Hans-Peter Nilsson <hp@bitrange.com> 47861 47862 * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]: 47863 Call force_operand on plus_constant result. 47864 478652004-01-01 Jan Hubicka <jh@suse.cz> 47866 47867 * expmed.c (store_bit_field, extract_bit_field): Use new named patterns 47868 * expr.c (store_constructor): Use vec_init pattern. 47869 * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init. 47870 * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init 47871 (vec_set_optab, vec_extract_optab, vec_init_optab): New. 47872 * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf): 47873 New patterns. 47874 (sse2_unpc?pd): Fix pattern. 47875 (sse2_movlpd): Kill. 47876 (sse2_movsd): Deal with movlpd too. 47877 * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd. 47878 (ix86_expand_vector_init): New. 47879 * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions. 47880 * md.texi (vec_set, vec_extract): Document 47881