1 2004-12-30 Steven Bosscher <stevenb@suse.de>
3 * global.c (regclass_intersect): Remove.
4 (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead.
6 2004-12-30 Richard Henderson <rth@redhat.com>
8 * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for
9 aggregates with XF/XCmode.
11 2004-12-29 Richard Henderson <rth@redhat.com>
13 * target.h (targetm.calls.arg_partial_bytes): New.
14 * target-def.h (TARGET_ARG_PARTIAL_BYTES): New.
15 * calls.c (store_unaligned_arguments_into_pseudos): Update for
17 (load_register_parameters): Likewise.
18 (store_one_arg): Likewise.
19 (initialize_argument_information): Use targetm.calls.arg_partial_bytes.
20 (emit_library_call_value_1): Likewise.
21 * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
22 (emit_push_insn): Update for partial in bytes.
23 * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
24 * function.c (assign_parm_find_entry_rtl): Use
25 targetm.calls.arg_partial_bytes. Update for result in bytes.
26 (locate_and_pad_parm): Update for partial in bytes.
27 * system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison.
28 * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New.
29 * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare.
30 * doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from
31 FUNCTION_ARG_PARTIAL_NREGS.
33 * config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h,
34 config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h,
35 config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h,
36 config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
38 * config/alpha/alpha.c (alpha_arg_partial_bytes): New.
39 (TARGET_ARG_PARTIAL_BYTES): New.
40 * config/alpha/alpha.h, config/alpha/unicosmk.h,
41 config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
43 * config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
44 * config/arm/arm.c (arm_arg_partial_bytes): ... here.
45 (TARGET_ARG_PARTIAL_BYTES): New.
47 * config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
48 * config/cris/cris.c (cris_arg_partial_bytes): ... here.
49 (TARGET_ARG_PARTIAL_BYTES): New.
51 * config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
52 * config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from
53 fr30_function_arg_partial_nregs. Adjust to return bytes.
54 (TARGET_ARG_PARTIAL_BYTES): New.
55 * config/fr30/fr30-protos.h: Update.
57 * config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
58 * config/frv/frv.c (frv_arg_partial_bytes): Rename from
59 frv_function_arg_partial_nregs. Adjust to return bytes.
60 (TARGET_ARG_PARTIAL_BYTES): New.
61 * config/frv/frv-protos.h: Update.
63 * config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
64 * config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from
65 ia64_function_arg_partial_nregs. Adjust to return bytes.
66 (TARGET_ARG_PARTIAL_BYTES): New.
67 * config/ia64/ia64-protos.h: Update.
69 * config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
70 * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from
71 function_arg_partial_nregs. Adjust to return bytes.
72 (TARGET_ARG_PARTIAL_BYTES): New.
73 * config/iq2000/iq2000-protos.h: Update.
75 * config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
76 * config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from
77 function_arg_partial_nregs. Adjust to return bytes.
78 (TARGET_ARG_PARTIAL_BYTES): New.
79 * config/m32r/m32r-protos.h: Update.
81 * config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
82 * config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from
83 mcore_function_arg_partial_nregs. Adjust to return bytes.
84 (TARGET_ARG_PARTIAL_BYTES): New.
85 * config/mcore/mcore-protos.h: Update.
87 * config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
88 * config/mips/mips.c (mips_arg_partial_bytes): Rename from
89 function_arg_partial_nregs. Adjust to return bytes.
90 (TARGET_ARG_PARTIAL_BYTES): New.
91 * config/mips/mips-protos.h: Update.
93 * config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
94 * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from
95 function_arg_partial_nregs. Adjust to return bytes.
96 (TARGET_ARG_PARTIAL_BYTES): New.
97 * config/mn10300/mn10300-protos.h: Update.
99 * config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
100 * config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here.
101 (TARGET_ARG_PARTIAL_BYTES): New.
103 * config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
104 * config/pa/pa.c (pa_arg_partial_bytes): Rename from
105 function_arg_partial_nregs. Handle 32-bit. Adjust to return bytes.
106 (TARGET_ARG_PARTIAL_BYTES): New.
107 * config/pa/pa-protos.h: Update.
109 * config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
110 * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from
111 function_arg_partial_nregs. Adjust to return bytes.
112 (TARGET_ARG_PARTIAL_BYTES): New.
113 * config/rs6000/rs6000-protos.h: Update.
115 * config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
116 * config/sh/sh.c (sh_arg_partial_bytes): ... here.
117 (TARGET_ARG_PARTIAL_BYTES): New.
119 * config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
120 * config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from
121 function_arg_partial_nregs. Adjust to return bytes.
122 (TARGET_ARG_PARTIAL_BYTES): New.
123 * config/sparc/sparc-protos.h: Update.
125 * config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
126 * config/v850/v850.c (v850_arg_partial_bytes): Rename from
127 function_arg_partial_nregs. Adjust to return bytes.
128 (TARGET_ARG_PARTIAL_BYTES): New.
129 * config/v850/v850-protos.h: Update.
131 2004-12-30 Hans-Peter Nilsson <hp@bitrange.com>
133 * config/mmix/mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Define.
134 * config/mmix/mmix.c (mmix_asm_output_internal_label): New
136 * config/mmix/mmix-protos.h (mmix_asm_output_internal_label):
139 2003-12-29 Richard Henderson <rth@redhat.com>
141 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
143 2004-12-29 Jeff Law <law@redhat.com>
145 * tree-outof-ssa.c (insert_backedge_copies): New function.
146 (rewrite_out_of_ssa): Use it.
148 2004-12-29 Ira Rosen <irar@il.ibm.com>
150 PR tree-optimization/18179
151 * tree-vectorizer.c (vect_get_base_and_offset): Call get_inner_reference
152 and vect_analyze_offset_expr.
153 (vect_create_addr_base_for_vector_ref): Build address_base by combining
154 base and initial_offset fields of vect_stmt_info.
155 (vect_update_inits_of_dr): Update offset of data-ref instead of its
156 access-fn. Remove argument.
157 (vect_update_inits_of_drs): Call vect_update_inits_of_dr with new
159 (vect_compute_data_ref_alignment): Check misalignment info in
160 vect_stmt_info. Remove argument.
161 (vect_compute_data_refs_alignment): Call vect_compute_data_ref_alignment
162 with correct argument.
163 (vect_analyze_data_ref_access): Check access info in vect_stmt_info.
164 (vect_analyze_pointer_ref_access): Update step and initial_offset fields
166 (vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the
167 fields of stmt_vec_info.
168 (vect_analyze_data_refs): Find vectype and pass it to
169 vect_get_memtag_and_dr.
170 (vect_get_first_index): Remove.
171 (vect_compute_array_base_alignment): Remove.
172 (vect_compute_array_ref_alignment): Remove
173 (vect_create_data_ref_ptr): Use TYPE_SIZE_UNIT instead GET_MODE_SIZE.
174 (vect_gen_niters_for_prolog_loop): Use TREE_CONSTANT instead
176 (vectorizable_load): Use size arithmetics.
178 2004-12-29 Ira Rosen <irar@il.ibm.com>
180 PR tree-optimization/18179
181 * tree-vectorizer.c (vect_get_base_and_offset): Rename (previous name
182 vect_get_base_and_bit_offset).
183 (vect_get_memtag_and_dr): Rename (previous name vect_get_symbl_and_dr).
185 2004-12-29 Ira Rosen <irar@il.ibm.com>
187 PR tree-optimization/18179
188 * tree-vectorizer.h (struct _stmt_vec_info): Add new fields:
189 initial_offset, step, misalignment and base_aligned_p and macros
191 * tree-vectorizer.c (vect_analyze_offset_expr): New function.
192 (new_stmt_vec_info): Initialize the new fields of stmt_vec_info.
194 (vect_create_data_ref_ptr): Fix printings.
196 2004-12-29 Ira Rosen <irar@il.ibm.com>
198 PR tree-optimization/18179
199 * tree-vectorizer.c (vect_get_symbl_and_dr): Reorganize. Add memtag
201 (vect_analyze_data_refs): Remove memtag retrieval.
203 2004-12-28 Richard Henderson <rth@redhat.com>
206 * gimplify.c (gimplify_asm_expr): Move resolve asm names ...
207 * c-typeck.c (build_asm_expr): ... here. Validate input
208 constraints. Mark memory inputs addressable.
210 2004-12-28 Hans-Peter Nilsson <hp@bitrange.com>
213 * config/mmix/mmix.c (mmix_expand_epilogue): Change type of
214 variable offset to HOST_WIDE_INT. Remove obsolete comment. Fix
217 2004-12-28 Andrew Pinski <pinskia@physics.uc.edu>
219 * fold-const.c (fold_build_cleanup_point_expr): For a RETURN_EXPR,
220 we only need a cleanup point expression when the expression on the
221 left hand side of the MODIFIY_EXPR inside the return has side
224 2004-12-28 Dorit Naishlos <dorit@il.ibm.com>
226 * tree-vectorizer.c (vect_mark_relevant) First argument changed from
227 varray_type to varray_type*.
228 (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist
229 when calling vect_mark_relevant.
231 2004-12-28 Alan Modra <amodra@bigpond.net.au>
233 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
234 generate non-offsettable DImode lo_sum addresses.
236 2004-12-28 Zdenek Dvorak <dvorakz@suse.cz>
238 PR rtl-optimization/19103
239 * loop-iv.c (iv_number_of_iterations): Fix typo.
241 2004-12-28 Andreas Jaeger <aj@suse.de>
243 * genrecog.c (compute_predicate_codes): Avoid warning.
245 2004-12-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
247 * vax.c (vax_address_cost, vax_rtx_cost): Correct casts.
248 (vax_rtx_cost): Handle small offsets for both PLUS and MINUS.
250 2004-12-27 Jeff Law <law@redhat.com>
252 * tree-ssa-dom.c (thread_across_edge): Remove broken code to
253 avoid threading into a loop.
255 2004-12-27 Richard Henderson <rth@redhat.com>
258 * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR
259 note for allocate_stack_worker insn.
261 2004-12-27 Jason Merrill <jason@redhat.com>
263 * doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
264 * target.h (struct gcc_target): Add relaxed_ordering field.
265 * target-def.h (TARGET_RELAXED_ORDERING): Define default.
266 (TARGET_INITIALIZER): Add it.
267 * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
268 * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
269 * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
270 * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
272 2004-12-27 Roger Sayle <roger@eyesopen.com>
275 * doc/invoke.texi: Document the interaction between -save-temps
278 2004-12-27 David Edelsohn <edelsohn@gnu.org>
280 * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs):
281 Do not break apart constant pool addresses.
282 (rs6000_emit_move): Only force source into REG if target is MEM.
284 2004-12-27 Mark Mitchell <mark@codesourcery.com>
287 * gimplify.c (gimplify_cond_expr): Add post_p parameter.
288 (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr.
289 (gimplify_expr): Likewise.
291 2004-12-27 Richard Henderson <rth@redhat.com>
293 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
295 2004-12-26 Richard Henderson <rth@redhat.com>
297 * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
298 of type_natural_mode to examine_argument.
300 * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
301 (movv2sf_internal_rex64): New.
302 (mov<MMXMODEI>_internal): Use no register preferences at all.
303 (movv2sf_internal): Likewise.
305 2004-12-26 Richard Henderson <rth@redhat.com>
307 * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
308 plus/minus across EQ for floating-point.
310 2004-12-26 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
313 * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
314 generating code for the portable runtime.
316 2004-12-25 Richard Henderson <rth@redhat.com>
318 * expr.c (clear_storage): Validate CONST0_RTX extant. Special case
321 2004-12-25 Zdenek Dvorak <dvorakz@suse.cz>
323 PR rtl-optimization/19078
324 * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic,
325 determine_use_iv_cost_outer): Fix computing of cost for the original
327 (dump_use): Handle case related_cands == NULL.
329 2004-12-25 Marek Michalkiewicz <marekm@amelek.gda.pl>
332 * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
334 * config/avr/avr.h (LINK_SPEC): Ditto.
335 * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
337 2004-12-25 Alan Modra <amodra@bigpond.net.au>
340 * config/rs6000/rs6000.md (movti_power, movti_string): Relax
341 operand[1] predicate to input_operand, and add r<-n alternative.
342 Move TImode const_double_operand splitter to where it belongs.
344 2004-12-25 Alan Modra <amodra@bigpond.net.au>
347 * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
349 2004-12-24 Uros Bizjak <uros@kss-loka.si>
351 * config/i386/i386.md (*fix_trunc{d,s,h}i_1):
352 Rename to *fix_trunc{d,s,h}i_i387.
353 (fix_trunc{d,s}fdi2): Reorder tests.
355 2004-12-24 Daniel Berlin <dberlin@dberlin.org>
359 * tree.h (DECL_DEBUG_ALIAS_OF): New macro.
360 * var-tracking.c (track_expr_p): Don't disqualify tracking of variables
361 that are aliases of variables we want to track, unless the
362 original variable is also ignored for debugging purposes.
363 (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
364 * tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
365 * dwarf2out.c (dwarf2out_var_location): Add us to the location of
366 the decl we are an alias of.
368 2004-12-24 Alan Modra <amodra@bigpond.net.au>
371 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow
372 DFmode for 32-bit again.
374 2004-12-23 Roger Sayle <roger@eyesopen.com>
376 * reload.c (regno_clobbered_p): Add a gcc_assert that regno
377 refers to a hard register.
379 2004-12-23 Mark Mitchell <mark@codesourcery.com>
381 * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
383 2004-12-23 DJ Delorie <dj@redhat.com>
385 * genrecog.c (did_you_mean_codes): New.
386 (compute_predicate_codes): Fail unmatched codes.
388 2004-12-23 Eric Christopher <echristo@redhat.com>
390 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
391 assert for machine=mips for !TARGET_IRIX.
392 * config/mips/linux.h: Remove machine=mips assert.
393 * config/mips/netbsd.h: Ditto.
394 * config/mips/openbsd.h: Ditto.
396 2004-12-23 Dale Johannesen <dalej@apple.com>
398 * tree.c (iterative_hash_expr): Canonicalize builtins.
400 2004-12-23 Alexandre Oliva <aoliva@redhat.com>
403 * calls.c (load_register_parameters): Don't call use_regs when
406 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
409 * expr.c (get_inner_reference): Add 'keep_aligning' parameter.
410 Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
411 platforms only if keep_aligning is true.
412 (expand_assignment): Adjust call to get_inner_reference.
413 (expand_expr_addr_expr_1): Likewise.
414 (expand_expr_real_1): Likewise.
415 * dojump.c (do_jump): Likewise.
416 * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
417 * fold-const.c (optimize_bit_field_compare): Likewise.
418 (decode_field_reference): Likewise.
419 (split_address_to_core_and_offset): Likewise.
420 * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
421 * tree.h (get_inner_reference): Adjust prototype.
423 2004-12-23 Richard Henderson <rth@redhat.com>
425 * config/i386/i386.c (override_options): Revert last change
428 2004-12-23 Richard Henderson <rth@redhat.com>
430 * config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
431 ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
432 vector operate patterns.
434 2004-12-23 Richard Henderson <rth@redhat.com>
436 * config/i386/i386.c (ix86_expand_vector_move): Tidy.
437 (ix86_expand_vector_move_misalign): New.
438 (ix86_misaligned_mem_ok): Remove.
439 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
440 * config/i386/i386-protos.h: Update.
441 * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
442 (MMXMODEI): Rename from MMXINT8.
443 (SSEMODE, MMXMODE, movmisalign<mode>): New.
445 2004-12-23 Mark Mitchell <mark@codesourcery.com>
448 * gimplify.c (gimplify_modify_expr_rhs): Handle
449 INDIRECT_REF/ADDR_EXPR combinations.
451 2004-12-22 Richard Henderson <rth@redhat.com>
453 * config/alpha/alpha.c (alpha_expand_mov): Split out ...
454 (alpha_expand_movmisalign): ... misaligned vector support.
455 (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
456 * config/alpha/alpha-protos.h: Update.
457 * config/alpha/alpha.md (VEC): New macro.
458 (movv8qi, movv4hi, movv2si): Compress with VEC.
459 (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
460 (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
461 (movmisalign<mode>): New.
463 2004-12-22 Richard Henderson <rth@redhat.com>
465 * optabs.h (OTI_movmisalign, movmisalign_optab): New.
466 * optabs.c (init_optabs): Create it.
467 * genopinit.c (optabs): Initialize it.
468 * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
469 * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
470 * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
471 * target.h (vectorize.misaligned_mem_ok): Remove.
472 * targhooks.c (default_vect_misaligned_mem_ok): Remove.
473 * doc/md.texi (movmisalign): New.
474 * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
476 2004-12-22 Richard Henderson <rth@redhat.com>
478 * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
480 (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
481 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
482 const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
483 __builtin_ia32_storehpd, __builtin_ia32_storelpd.
484 (ix86_expand_builtin): Update to match.
485 (ix86_expand_vector_init): Use sse2_loadlpd.
486 * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
487 (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
488 (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
489 (sse2_movhpd): Remove.
491 2004-12-23 Alan Modra <amodra@bigpond.net.au>
494 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
495 false for anything larger than 32 bits in 32-bit code.
497 2004-12-22 Richard Henderson <rth@redhat.com>
499 * config/i386/i386.md (btsq, btrq, btcq): Fix modes.
500 (bt peepholes): Likewise.
502 * varasm.c (force_const_mem): Call set_mem_align.
504 2004-12-22 Richard Henderson <rth@redhat.com>
506 * config/i386/predicates.md (sse_comparison_operator): Fix
508 (arith_or_logical_operator): Downcase codes.
510 2004-12-23 Kaz Kojima <kkojima@gcc.gnu.org>
513 * reload1.c (emit_output_reload_insns): Check if OLD is a hard
514 register before calling regno_clobbered_p.
515 * reload.c: Update comment for regno_clobbered_p.
517 2004-12-22 Richard Henderson <rth@redhat.com>
519 * config/i386/i386.c (override_options): Respect user disable of
520 fancy 387 math, sse, mmx.
521 (construct_container): Generate error if we need an sse regster
522 and sse has been disabled.
523 * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
524 later sse generations. Disabling mmx also disables 3dnow.
526 2004-12-22 Daniel Berlin <dberlin@dberlin.org>
528 * tree-inline.c (struct inline_data): Remove inlined_fns.
529 (expand_call_inline): Remove dead code setting
531 (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS.
532 * tree.h (struct tree_decl): Remove inlined_fns.
534 2004-12-22 Roger Sayle <roger@eyesopen.com>
536 * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code.
538 2004-12-23 Alan Modra <amodra@bigpond.net.au>
541 * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P
542 for real and imaginary parts if the parm is addressable.
543 (assign_parms_unsplit_complex): If parm addressable, save real
544 and imaginary parts to a stack temp. Pass assign_parm_data_all.
545 (assign_parms): Adjust assign_parms_unsplit_complex call.
547 2004-12-22 Daniel Berlin <dberlin@dberlin.org>
549 * tree.h (DECL_PTA_ALIASVAR): Dead.
550 (struct tree_decl): Remove alias_var field.
552 2004-12-22 Nathan Sidwell <nathan@codesourcery.com>
554 * system.h (IN_RANGE): Restore HOST_WIDE_INT cast.
555 * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE.
557 2004-12-22 Richard Henderson <rth@redhat.com>
558 Uros Bizjak <uros@kss-loka.si>
560 * config/i386/i386.md (truncdfsf2): Don't create stack temp when
561 using sse math only. Use truncdfsf2_with_temp.
562 (truncdfsf2_with_temp): New.
563 (truncdfsf_fast_i387): Rename from truncdfsf2_noop. Add memory
565 (truncdfsf_mixed): Rename from truncdfsf2_1_sse. Compress duplicate
567 (truncdfsf_fast_sse): Rename from truncdfsf2_2. Remove f alternative.
568 (truncdfsf2_3, truncdfsf2_sse_only): Remove.
569 (truncdfsf_i387): Rename from truncdfsf2_1. Compress duplicates.
570 (truncdfsf_fast_mixed): New.
571 (truncdfsf splitters): Remove all except the 387 load/store split.
572 (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with
573 respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and
575 (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed.
576 (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop.
577 (*truncxf{s,d}f2_i387): New patterns.
578 (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1.
579 (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2,
580 rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2,
581 nearbyint{s,d}f2): Use renamed patterns.
583 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
585 * tree.h (TYPE_SIZES_GIMPLIFIED): New.
586 * function.c (gimplify_parm_type): Don't gimplify type if already done.
587 * gimplify.c (gimplify_decl_expr): Likewise.
588 (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED. Examine nested
591 2004-12-22 Richard Henderson <rth@redhat.com>
593 * gimplify.c (eval_save_expr): Remove.
594 (gimplify_one_sizepos): Unshare expr before gimplifying.
595 * stor-layout.c (variable_size): Revert 2004-12-19 change.
596 (layout_decl): Revert 2004-12-18 change.
597 (layout_type): Revert 2004-12-21 change.
599 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
601 * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types.
603 2004-12-22 Mark Mitchell <mark@codesourcery.com>
605 * Makefile.in (install-common): Remove special-case code for when
608 2004-12-22 Jan Beulich <jbeulich@novell.com>
610 * config.gcc: Add dbxelf.h to NetWare's tm_file.
611 * config/i386/netware-crt0.c: Prototype __init_environment and
612 __deinit_environment prior to their definition.
613 (__init_environment): Correct invokation of constructor function.
614 * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
615 builtin_define_std rather than builtin_define on IAPX386.
616 * config/i386/nwld.h: Disable stabs debugging info with the linker
618 * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
619 the output. Add -posix to the options as that is the more compatible
621 * gthr-nks.h: Formatting.
622 (__gthread_mutex_init_function): Kill the dubious use of
623 NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
624 were not meant to be recursive.
625 (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
626 __gthread_recursive_mutex_init_function,
627 __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
628 __gthread_recursive_mutex_unlock): New.
630 2004-12-22 Alexandre Oliva <aoliva@redhat.com>
632 * config/mips/t-linux64: Remove code that messed with $(SPECS).
633 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move
635 (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
637 * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle
639 (SUBTARGET_TARGET_SWITCHES): Likewise.
641 2004-12-21 Andrew Pinski <pinskia@physics.uc.edu>
644 * pointer-set.c (pointer_set_contains): Add back.
645 * pointer-set.h (pointer_set_contains): Add back.
647 2004-12-21 Richard Henderson <rth@redhat.com>
649 * gimplify.c (eval_save_expr): New.
650 (gimplify_one_sizepos): Use it.
651 * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE.
653 2004-12-21 Nathan Sidwell <nathan@codesourcery.com>
655 * system.c (IN_RANGE): Use plain unsigned, not unsigned
657 * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE,
658 VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE,
659 POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE,
660 FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE,
661 QUAL_UNION_TYPE): Reorder for better code efficiency.
662 (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise.
663 (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise.
664 * tree.h (INDIRECT_REF_P): Reorder checks for better optimization.
665 (IS_EXPR_CODE_CLASS): Use IN_RANGE.
666 (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better
669 2004-12-21 David O'Brien <obrien@FreeBSD.org>
671 * config/freebsd-spec.h: Use KSE pthread lib for -pthread.
673 2004-12-21 James A. Morrison <phython@gcc.gnu.org>
676 * c-decl.c (pushdecl): Remove block trying to merge static function
677 declarations at block scope to file scope declarations.
679 2004-12-21 James A. Morrison <phython@gcc.gnu.org>
682 * c-parse.in (initdcl): Don't process a declaration if start_decl fails.
683 (notype_initdcl): Don't process a declaration if start_decl fails.
684 * c-decl.c (start_decl): Fail if grokdeclarator fails.
685 (grokdeclarator): Fail if a function definition has an invalid storage
687 * c-typeck.c (start_init): Treat error_mark_node the same as 0.
689 2004-12-21 Richard Henderson <rth@redhat.com>
691 * config/i386/i386.c (x86_sse_split_regs): Rename from
692 x86_sse_partial_regs.
693 * config/i386/i386.h (x86_sse_split_regs): Likewise.
694 (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS.
695 * config/i386/i386.md (*): Update to match. Remove two
696 floatsisf splitters that use it.
698 * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove.
700 * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove.
701 * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove.
702 * config/i386/i386.md (truncdfsf2_1_sse): Don't test it.
703 (truncdfsf2_2, truncdfsf2_sse_only): Likewise.
704 (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove.
705 (truncdfsf2_sse_only_nooverlap): Remove.
707 * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove.
709 2004-12-21 Eric Botcazou <ebotcazou@libertysurf.fr>
711 * expr.c (emit_group_load_1): Return the source if the move
712 is a regular move between complex values.
714 2004-12-20 Roger Sayle <roger@eyesopen.com>
717 * config/rs6000/rs6000.c (current_file_function_operand): Only check
718 current_function_decl's DECL_RTL if it has already been set.
720 2004-12-20 Roger Sayle <roger@eyesopen.com>
723 * function.c (pop_function_context_from): Don't reset reg_renumber.
725 2004-12-20 Eric Botcazou <ebotcazou@libertysurf.fr>
728 * expr.c (write_complex_part): Use a subreg if the original object
729 is a hard reg that spans an even number of regs or a MEM.
730 (read_complex_part): Likewise.
732 2004-12-20 Mark Mitchell <mark@codesourcery.com>
734 * Makefile.in (install-common): Do not install the specs file
735 unless SPECS is defined.
737 2004-12-20 Zdenek Dvorak <dvorakz@suse.cz>
739 PR rtl-optimization/18942
740 * simplify-rtx.c (simplify_relational_operation_1): Simplify
741 x + cst1 == cst2 to x == cst2 - cst1. Made static.
743 2004-12-20 Matt Austern <austern@apple.com>
746 * c-common.c (set_builtin_user_assembler_name): New.
747 * c-common.h (set_builtin_user_assembler_name): Declare.
748 * c-decl.c (finish_decl): Use set_builtin_user_assembler_name
750 2004-12-20 Diego Novillo <dnovillo@redhat.com>
752 PR tree-optimization/19080
754 Merge from tree-cleanup-branch
756 * tree-flow-inline.h (clear_call_clobbered): New function.
757 * tree-ssa-alias.c (init_alias_info): Call it.
759 2004-12-20 Richard Henderson <rth@redhat.com>
761 * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok
764 2004-12-20 Steven Bosscher <stevenb@suse.de>
765 Andrew Pinski <pinskia@physics.uc.edu>
770 * expr.c (categorize_ctor_elements_1): Count the total number
771 of elements in the constructor.
772 (categorize_ctor_elements): Return it in a new argument.
773 * tree.h (categorize_ctor_elements): Adjust prototype.
774 * gimplify.c (gimplify_init_ctor_eval_range): New.
775 (gimplify_init_ctor_eval): Gimplify RANGE_EXPR.
776 (gimplify_init_constructor): Block clear the object if the
777 constructor has fewer elements than the object type. Only try
778 to add assignments to individual elements when we have to.
780 2004-12-20 Richard Henderson <rth@redhat.com>
782 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
783 long_long_integer_type_node in building V2DI_type_node.
785 * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size.
786 * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise.
788 2004-12-20 Ben Elliston <bje@au.ibm.com>
790 * doc/md.texi (Expander Definitions): Use @emph instead of @strong
791 around Note: text to workaround a limitation of the Info format.
792 * doc/cpp.texi (Invocation): Likewise.
793 * doc/cppopts.texi: Likewise.
795 2004-12-19 Dale Johannesen <dalej@apple.com>
797 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Don't
798 reference operand 1 of ADDR_EXPRs.
800 2004-12-19 Mark Mitchell <mark@codesourcery.com>
802 * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro.
803 * output.h (assemble_name_raw): Declare it.
804 * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it.
805 * varasm.c (assemble_name_raw): New function.
806 (assemble_name): Use it.
807 (default_internal_label): Likewise.
808 * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise.
809 * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document.
811 2004-12-19 Richard Henderson <rth@redhat.com>
814 * stor-layout.c (variable_size): Force creation of a SAVE_EXPR.
816 2003-12-19 Steven Bosscher <stevenb@suse.de>
818 * config/i386/i386.c (ix86_split_to_parts): Use an array with
819 four elements for decoding a CONST_DOUBLE on 64 bits targets.
821 2004-12-19 Bernardo Innocenti <bernie@develer.com>
823 * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant
824 definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS.
826 2004-12-18 Daniel Berlin <dberlin@dberlin.org>
828 * lambda-code.c (can_convert_to_perfect_nest): Make checking
829 match up with what perfect_nestify can actually handle.
830 (perfect_nestify): Don't return false in the phi node loop.
832 2004-12-18 Richard Henderson <rth@redhat.com>
834 * config/i386/i386.md (SSEINT16): New.
835 (movv16qi, movv8hi, movv4si, movv2di): Compress via macros.
836 (movv16qi_internal, movv8hi_internal, movv4si_internal,
837 movv2di_internal): Compress via macros. Add SSE zero alternative.
838 Fix pure SSE alternatives to use 'x' instead of 'Y'.
840 (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal,
841 movv2si_internal): Compress via macros.
842 (SSEPUSH, MMXPUSH): New.
843 (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df,
844 pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros.
846 2004-12-18 Richard Henderson <rth@redhat.com>
849 * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion
851 * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes
853 * c-tree.h (struct lang_decl): Remove pending_sizes.
854 * function.c: Include tree-gimple.h
855 (assign_parm_setup_reg): Remove callee-copies code.
856 (gimplify_parm_type, gimplify_parameters): New functions.
857 (expand_pending_sizes): Remove.
858 (expand_function_start): Don't call it.
859 * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL.
860 (gimplify_body): Add do_parms argument. Use gimplify_parameters.
861 (gimplify_function_tree): Setup cfun. Update gimplify_body call.
862 * tree-gimple.h (gimplify_body): Update decl.
863 * tree-inline.c (initialize_inlined_parameters): Update gimplify_body
865 * tree.h (gimplify_parameters): Declare.
866 * Makefile.in (function.o): Depend on TREE_GIMPLE_H.
868 2004-12-18 Richard Henderson <rth@redhat.com>
870 * c-decl.c (finish_struct): Add DECL_EXPR for variable sized
871 structures seen inside functions.
873 2004-12-18 Richard Henderson <rth@redhat.com>
875 * c-decl.c (grokdeclarator): Save variable array size before
876 subtracting 1, rather than after.
878 2004-12-18 Eric Botcazou <ebotcazou@libertysurf.fr>
881 * varasm.c (asm_emit_uninitialised): Return early if
882 a custom section is requested.
883 (assemble_variable): Revert 2002-03-15 patch.
885 2004-12-18 Richard Henderson <rth@redhat.com>
887 * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr.
889 2004-12-18 Zdenek Dvorak <dvorakz@suse.cz>
891 PR tree-optimization/18800
892 * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter.
893 * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field.
894 (ALWAYS_PRUNE_CAND_SET_BOUND): New macro.
895 (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field.
896 (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune):
898 (iv_ca_extend): Return number of candidates in the set.
899 (try_add_cand_for): Add argument to iv_ca_extend calls.
900 (try_improve_iv_set): Use iv_ca_prune.
901 * doc/invoke.texi (iv-always-prune-cand-set-bound): Document.
903 2004-12-18 Zdenek Dvorak <dvorakz@suse.cz>
905 PR rtl-optimization/19001
906 * loop-iv.c (iv_number_of_iterations): Record assumptions for loops
907 with power of two step to 'infinite' field.
909 2004-12-18 Roger Sayle <roger@eyesopen.com>
911 * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h.
912 (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h.
913 (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h.
914 (tree-mudflap.o): Depend upon gt-tree-mudflap.h.
915 (expr.o): Depend upon gt-expr.h.
916 (regclass.o): Depend upon gt-regclass.h.
917 (bitmap.o): Depend upon gt-bitmap.h.
918 (lists.o): Depend upon gt-lists.h.
920 (cfgexpand.o): Don't depend upon gt-tree-cfg.h.
922 (GTFILES): Remove fold-const.c.
923 (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h):
926 2004-12-18 Richard Henderson <rth@redhat.com>
928 * stor-layout.c (layout_decl): Unshare size expressions copied
931 * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when
932 BOTTOM is a power of two.
934 2004-12-18 Richard Henderson <rth@redhat.com>
936 * tree-nested.c (save_tmp_var): New.
937 (struct walk_stmt_info): Add is_lhs.
938 (walk_stmts) <MODIFY_EXPR>: Be more accurate with setting of
939 val_only; set is_lhs.
940 (convert_nonlocal_reference): Use save_tmp_var when is_lhs;
941 clear is_lhs when appropriate.
942 (convert_local_reference): Likewise.
944 2004-12-18 Richard Earnshaw <rearnsha@arm.com>
946 * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA
949 2004-12-18 Roger Sayle <roger@eyesopen.com>
951 * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p.
952 Take a max_cost argument to avoid scanning large blocks, by returning
953 a Boolean instead of a total. Include the cost of a "fstp %st(0)"
954 instruction required to pop dead values off of a register stack.
956 2004-12-18 Roger Sayle <roger@eyesopen.com>
959 * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0
960 and op1 are all registers (or constants) before expanding the RTL
961 comparison sequence [to avoid reg_overlap_mentioned (target, op1)].
963 2004-12-18 Eric Botcazou <ebotcazou@libertysurf.fr>
965 PR rtl-optimization/16968
966 * loop.c (scan_loop): Stop scanning the loop for movable
967 insns as soon as an optimization barrier is encountered.
969 2004-12-17 Zack Weinberg <zack@codesourcery.com>
972 * toplev.c (compile_file): Call process_pending_assemble_externals
973 just before targetm.asm_out.file_end.
975 2004-12-17 Diego Novillo <dnovillo@redhat.com>
977 tree-optimization/18501
978 * tree-optimize.c (init_tree_optimization_passes): Run
979 pass_late_warn_uninitialized before the last DCE run.
981 2004-12-17 Richard Henderson <rth@redhat.com>
983 * config/i386/i386.c (x86_64_reg_class_name): Re-indent.
984 (classify_argument, examine_argument, construct_container,
985 merge_classes): Remove prototypes.
986 (type_natural_mode): Split out from ...
987 (function_arg): ... here.
988 (gen_reg_or_parallel): Remove alt_mode argument. Update callers.
989 Use orig_mode unless it's BLKmode.
990 (construct_container): Add orig_mode argument. Update callers.
991 Use gen_reg_or_parallel for SSE registers.
992 (ix86_function_value): Use type_natural_mode.
993 (ix86_gimplify_va_arg): Likewise.
994 (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in
995 SSE registers; always accept all MMX, 3DNOW modes in MMX registers.
996 * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include
998 * config/i386/i386.md (attribute mode): Add V1DF.
999 (movsi_1): Use 'x' instead of 'Y' constraints.
1000 (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise.
1001 (movdi_1_rex64_nointerunit): Likewise.
1002 (movdf_nointeger, movdf_integer): Likewise. Handle SSE1.
1003 (movsf_1, movsf_1_nointerunit): Line up constraint alternatives.
1004 (swapsf): Use fp_register_operand, don't disable for TARGET_SSE.
1006 (swapxf): Enable only for TARGET_80387.
1007 (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX.
1008 (movtf): Remove double-check for TARGET_64BIT.
1009 (movv2df_internal): Enable for SSE1.
1010 (movv8hi_internal, movv16qi_internal): Likewise.
1011 (movv2df, movv8hi, movv16qi): Likewise.
1012 (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise.
1013 (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal,
1014 movv8qi_internal, movv4hi_internal, movv2sf_internal,
1015 movv2df_internal, movv8hi_internal, movv16qi_internal,
1016 movti_internal): Add leading '*' to name.
1018 2004-12-17 Dale Johannesen <dalej@apple.com>
1020 * c-decl.c (diagnose_mismatched_decls): Accept mismatched
1021 function types: void with previous implicit int.
1023 2004-12-17 Andreas Krebbel <krebbel1@de.ibm.com>
1025 * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to
1028 2004-12-17 Jan Beulich <jbeulich@novell.com>
1031 * config/i386/i386.c (enum x86_64_reg_class): Define
1032 X86_64_COMPLEX_X87_CLASS.
1033 (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS.
1034 (merge_classes): Handle X86_64_COMPLEX_X87_CLASS.
1035 (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS.
1036 (examine_argument): X86_64_COMPLEX_X87_CLASS requires two
1037 registers when dealing with a return value.
1038 (construct_container): Handle X86_64_COMPLEX_X87_CLASS.
1039 Eliminate impossible case of two X87/X87UP pairs (this now is
1040 being expressed by a single COMPLEX_X87).
1041 (x86_libcall_value): XCmode gets returned in st0/st1.
1043 2004-12-17 Steven Bosscher <stevenb@suse.de>
1045 * tree.c (type_contains_placeholder_1): Always return false
1046 for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder.
1048 2004-12-17 Uros Bizjak <uros@kss-loka.si>
1050 * config/i386/i386.md (extendsfdf2, *extendsfdf2_1,
1051 *extendsfdf2_1_sse_only): Unify enable constraint with
1052 respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH
1053 and TARGET_MIX_SSE_I387.
1054 (*extendsfdf2_i387): New insn pattern.
1055 (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix
1056 register constraint for operand 0.
1057 (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse.
1058 (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387.
1060 2004-12-16 Andrew Pinski <pinskia@physics.uc.edu>
1063 * config/darwin.c (machopic_symbol_defined_p): Return false
1064 if the binds local and is a common symbol.
1066 2004-12-16 Richard Henderson <rth@redhat.com>
1068 * config/i386/i386.md (extv, extzv, insv): Revalidate the
1069 operand with ext_register_operand.
1071 2004-12-16 Kazu Hirata <kazu@cs.umass.edu>
1073 * global.c: Fix a comment typo.
1075 2004-12-16 Eric Botcazou <ebotcazou@libertysurf.fr>
1076 Roger Sayle <roger@eyesopen.com>
1078 PR tree-optimization/18707
1079 * cfgloopmanip.c (create_preheader): Move the preheader
1080 only if the latch was falling through to the header.
1082 2004-12-16 Danny Smith <dannysmith@users.sourceforge.net>
1085 * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0.
1087 2004-12-16 Richard Henderson <rth@redhat.com>
1088 Aldy Hernandez <aldyh@redhat.com>
1090 * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace
1093 2004-12-16 H.J. Lu <hongjiu.lu@intel.com>
1096 * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
1097 to back up the existing shared library.
1098 * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1099 * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1100 * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1101 * config/sh/t-linux (SHLIB_LINK): Likewise.
1102 * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1103 * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1104 * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1105 * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1107 * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary
1110 2004-12-16 Richard Henderson <rth@redhat.com>
1112 * Makefile.in (MD_DEPS, s-mddeps): New.
1113 (s-config, s-conditions, s-flags, s-codes, s-constants, s-emit,
1114 s-recog, s-opinit, s-extract, s-peep, s-attr, s-attrtab, s-output,
1115 s-preds): Depend on MD_DEPS instead of md_file.
1116 (genobjnames): Add genmddeps.o
1117 (build/genmddeps, build/genmddeps.o): New.
1118 (mostlyclean): Remove mddeps.mk.
1119 * genmddeps.c: New file.
1120 * gensupport.c (include_callback): New.
1121 (process_include): Call it.
1122 * gensupport.h (include_callback): Declare.
1124 2004-12-16 Nathan Sidwell <nathan@codesourcery.com>
1126 * local-alloc.c (block_alloc): Replace IN_RANGE with simple
1129 * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
1131 2004-12-16 Mark Dettinger <dettinge@de.ibm.com>
1133 * config/s390/s390.c (struct processor_costs): Two new fields:
1135 (s390_rtx_costs): Added handling of multipy and add in SFmode.
1136 More precise values for cost of multiply and add.
1138 2004-12-15 Richard Henderson <rth@redhat.com>
1141 * config/i386/i386.md (sse compare splitter): Test for SF and DFmode
1142 explicitly instead of using VALID_SSE_REG_MODE.
1144 2004-12-15 Richard Henderson <rth@redhat.com>
1147 * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with
1149 (swapqi_1): Rename from swapqi. Enable only for no partial reg
1150 stall and optimize_size.
1152 (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode.
1153 (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override.
1155 2004-12-16 Uros Bizjak <uros@kss-loka.si>
1157 * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387):
1158 Also enable for TARGET_MIX_SSE_I387.
1160 2004-12-16 Uros Bizjak <uros@kss-loka.si>
1162 * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only,
1163 sqrt{s,d}f2_i387): Unify enable constraint with respect to
1164 TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387,
1165 TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1166 (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed.
1167 (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse.
1168 (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387.
1169 (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387.
1170 (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387.
1172 2004-12-16 Uros Bizjak <uros@kss-loka.si>
1174 * config/i386/i386.md (*fop_?f_comm_{,sse,nosse},
1175 *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable
1176 constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2,
1177 TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1178 (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed.
1179 (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387.
1180 (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387.
1182 2004-12-15 H.J. Lu <hongjiu.lu@intel.com>
1185 * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports
1186 -Bstatic/-Bdynamic option.
1187 * config.in: Regenerated.
1188 * configure: Likewise.
1190 * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static
1191 -lunwind if possible.
1193 2004-12-15 Daniel Berlin <dberlin@dberlin.org>
1195 * cfgloop.c (flow_loops_dump): Don't print out levels.
1196 (flow_loops_find): Don't set loop->levels.
1197 (flow_loops_level_compute): Make void.
1198 * cfgloop.h (struct loops): Remove levels member.
1199 Add comment about loops in parray possibly being NULL.
1201 2004-12-15 Alexandre Oliva <aoliva@redhat.com>
1203 * reload.c (SMALL_REGISTER_CLASS_P): New.
1204 (push_secondary_reload, find_reusable_reload, find_reloads): Use
1205 it instead of testing only the class size.
1207 2004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1210 * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS
1211 on the STMT_EXPR wrapping up the inlined body.
1213 2004-12-15 Vladimir Makarov <vmakarov@redhat.com>
1214 Steven Bosscher <stevenb@suse.de>
1217 * global.c: Update comments in a few places.
1218 (check_earlyclobber): Return true if there are early clobber
1220 (calculate_local_reg_bb_info): Do not try to mark earlyclobber
1221 regs if there are none.
1222 (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav,
1223 make_accurate_live_analysis): Rename pavin, pavout to live_pavin,
1225 (modify_bb_reg_pav): Remove.
1226 (calculate_reg_pav): Use code from modify_bb_reg_pav.
1227 (temp_bitmap): New variable.
1228 (calculate_reg_pav): Allocate/deallocate temp_bitmap.
1230 2004-12-15 Richard Henderson <rth@redhat.com>
1233 * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true
1235 (gen_reg_or_parallel): New.
1236 (function_arg): Use it.
1237 (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately,
1238 MMX and 3DNOW separately.
1239 (ix86_rtx_costs): Simplify FLOAT_EXTEND case.
1240 (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately.
1241 * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ...
1242 (VALID_SSE_REG_MODE): ... here.
1244 2004-12-15 David Edelsohn <edelsohn@gnu.org>
1246 * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy.
1248 2004-12-15 Ian Lance Taylor <ian@wasabisystems.com>
1250 * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of
1252 * config/arm/arm.md (mulsi3_compare0): Don't check
1254 (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise.
1255 (mulsi3addsi_compare0_scratch): Likewise.
1257 2004-12-15 Eric Botcazou <ebotcazou@libertysurf.fr>
1260 * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2.
1261 Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
1262 * libgcc2.c (__addvsi3): Rename to __addvSI3.
1263 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1264 (__addvdi3): Rename to __addvDI3.
1265 (__subvsi3): Rename to __subvSI3. Use word type for the result.
1266 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1267 (__subvdi3): Rename to __subvDI3.
1268 (_mulvsi3): Rename to _mulvSI3.
1269 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1270 (_mulvdi3): Rename to _mulvDI3.
1271 (__negvsi2): Rename to __negvSI2.
1272 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1273 (__negvdi2): Rename to __negvDI2.
1274 (__absvsi2): Rename to __absvSI2.
1275 New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1276 (__absvdi2): Rename to __absvDI2.
1277 * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1278 (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2,
1279 __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate
1281 (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if
1282 COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1284 2004-12-15 Kazuhiro Inaoka <inaoka.kazuhiro@reneasas.com>
1286 * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE):
1289 * config/m32r.c (m32r_legitimize_pic_address): Changed
1290 to support GOTOFF relocation.
1291 * config/m32r.md (UNSPEC_GOTOFF): New.
1292 (gotoff_load_addr): New.
1294 2004-12-15 Richard Sandiford <rsandifo@redhat.com>
1296 * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to
1297 decide whether an argument is double-word aligned.
1299 2004-12-15 Richard Henderson <rth@redhat.com>
1301 * config/i386/i386.md: Fix missing modes on cmove splitters.
1303 2004-12-15 Jan Beulich <jbeulich@novell.com>
1305 * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h.
1307 2004-12-15 Uros Bizjak <uros@kss-loka.si>
1309 * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2,
1310 *floatsisf2_i387, *floatsisf2_sse, floatdisf2,
1311 *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse,
1312 floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse,
1313 floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387,
1314 *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2):
1315 Unify enable constraint with respect to TARGET_80387, TARGET_SSE,
1316 TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1317 (*float?i?f_i387): Rename to *float?i?f2_mixed.
1318 (*float?i?f2_1): Rename to *float?i?f2_i387.
1319 (*float?i?f2_i387_only): Rename to *float?i?f2_i387.
1320 (float?ixf2): Penalize integer register operand.
1322 2004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1325 * configure.ac: Add GAS check for HP-UX .nsubspa comdat.
1326 * configure, config.in: Rebuilt.
1327 * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete
1329 * config/pa/pa.c (pa_select_section): Allow uninitialized variables in
1330 one-only (comdat) subspaces.
1331 * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define.
1332 (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are
1334 (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common.
1336 2004-12-14 Ian Lance Taylor <ian@wasabisystems.com>
1338 * combine.c (combine_validate_cost): Consider cost of
1339 undobuf.other_insn rather than always allowing the recombination
1342 2004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1344 * pa-host.c (MAP_FAILED): Define if not defined.
1345 (pa_gt_pch_use_address): Handle short reads.
1347 2004-12-14 Richard Henderson <rth@redhat.com>
1350 * config/i386/i386.c (x86_use_bt): New.
1351 (ix86_expand_unary_operator): Use MEM_P.
1352 (ix86_expand_fp_absneg_operator): New.
1353 * config/i386/i386.h (x86_use_bt): Declare.
1354 (TARGET_USE_BT): New.
1355 * config/i386/i386-protos.h: Update.
1356 * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator.
1357 (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise.
1358 (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs,
1359 negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if,
1360 abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs,
1361 absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove.
1362 (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed,
1363 absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New. Merge all
1364 neg and abs splitters. Handle DFmode in general regs in 64-bit mode.
1365 (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math.
1366 (btsq, btrq, btcq): New. Add peepholes as well.
1367 (movv4sf_internal splitter): Postpone til after reload.
1368 (movv2di_internal splitter): Likewise.
1369 * config/i386/predicates.md (const_0_to_63_operand): New.
1370 (absneg_operator): New.
1372 2004-12-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1374 * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P):
1375 Check register number and that reg_renumber is nonzero before using it.
1377 2004-12-14 Steve Ellcey <sje@cup.hp.com>
1379 * doc/invoke.texi (IA-64 options): Add existing options that
1380 weren't already listed.
1382 2004-12-14 Jeff Law <law@redhat.com>
1384 * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target
1385 partition to conflict_graph_merge_regs.
1387 2004-12-14 Uttam Pawar <uttamp@us.ibm.com>
1388 Janis Johnson <janis187@us.ibm.com>
1390 * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors
1391 for vector types with invalid component types.
1393 2004-12-14 Jakub Jelinek <jakub@redhat.com>
1396 * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2,
1397 expand_builtin_mathfn_3): Avoid using arguments passed to
1398 save_expr after that call.
1400 * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
1401 LOAD_EXTEND_OP is not defined.
1402 (fold): Likewise. If flag_syntax_only, don't depend on BITS_PER_WORD.
1404 2004-12-14 Tobias Schlueter <tobias.schlueter@physik.uni-muenchen.de>
1406 * tree.def, doc/c-tree.texi: Correctly document restrictions on the
1409 2004-12-14 Kazu Hirata <kazu@cs.umass.edu>
1411 * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1.
1413 2004-12-14 Richard Earnshaw <rearnsha@arm.com>
1416 arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs)
1417 (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling
1420 2004-12-14 Diego Novillo <dnovillo@redhat.com>
1422 * tree-gimple.c (get_base_address): Update documentation.
1424 2004-12-13 Richard Henderson <rth@redhat.com>
1427 * passes.c (rest_of_clean_state): Fix computation of
1428 preferred_incoming_stack_boundary.
1430 2004-12-13 Wolfgang Bangerth <bangerth@dealii.org>
1432 * reload.h: Remove struct needs and its only use.
1434 2004-12-13 Roger Sayle <roger@eyesopen.com>
1436 PR rtl-optimization/18928
1437 * simplify_rtx.c (plus_minus_operand_p): New function to encode
1438 the test for suitable operands for calls to simplify_plus_minus.
1439 Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P.
1440 (simplify_binary_operation): Use plus_minus_operand_p.
1442 2004-12-13 Alexandre Oliva <aoliva@redhat.com>
1445 * tree-inline.c (setup_one_parameter): Don't directly map a
1446 parameter to the address of another variable of the same
1449 2004-13-12 Steven Bosscher <stevenb@suse.de>
1451 * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we
1452 can never create autoinc insns after reload.
1454 2004-12-13 Jeff Law <law@redhat.com>
1455 Kazu Hirata <kazu@cs.umass.edu>
1457 PR tree-optimization/18694
1458 * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a
1459 PHI argument is set from a PHI_RESULT in the same block and the
1460 PHI argument is not the same as the PHI result.
1462 2004-12-13 David Edelsohn <edelsohn@gnu.org>
1464 * xcoffout.c (xcoffout_declare_function): Always strip storage
1467 2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
1470 * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic
1471 problem, adding a space at the end of the string before concatenation.
1473 2004-12-13 Kazu Hirata <kazu@cs.umass.edu>
1475 * c-common.c (fname_as_string): Free namep if we are returning
1478 * tree-ssa-dom.c (record_edge_info): Fix memory leak.
1480 2004-12-13 Andrew Pinski <pinskia@physics.uc.edu>
1482 * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.
1484 2004-12-13 Kazu Hirata <kazu@cs.umass.edu>
1486 * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by
1487 doing a pointer comparison.
1489 * tree-ssa-dom.c (record_equivalences_from_phis): Add a
1492 * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
1495 2004-12-13 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1497 * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to
1498 the list rather than replacing the existing value.
1500 2004-12-13 Richard Henderson <rth@redhat.com>
1502 * cfg.c (dump_flow_info): Don't dump pseudo info after reload.
1504 2004-12-13 Richard Henderson <rth@redhat.com>
1506 * Makefile.in (insn-preds.o): Depend on REGS_H.
1507 * genpreds.c (write_insn_preds_c): Include regs.h.
1508 * config/i386/predicates.md (index_register_operand): Use
1509 REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P.
1511 * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'.
1512 * config/i386/i386.md (lea_general_1, lea_general_1_zext,
1513 lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext,
1514 adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea,
1515 ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea,
1516 ashlqi3_1_lea): Use 'l' for index register operand.
1517 (ashldi3_1_rex64 splitter): Use index_register_operand.
1518 (ashlsi3_1 splitter): Be more careful with modes.
1520 2004-12-13 Danny Smith <dannysmith@users.sourceforge.net>
1523 * defaults.h (TARGET_USE_JCR_SECTION): New macro.
1524 * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
1525 * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
1528 2004-12-13 Uros Bizjak <uros@kss-loka.si>
1532 * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
1533 Fix wrong vec_merge selector bitmask.
1535 2004-12-12 Richard Henderson <rth@redhat.com>
1538 * reg-stack.c (move_nan_for_stack_reg): New.
1539 (subst_stack_regs_pat): Use it.
1540 (move_for_stack_reg): Handle source register not live with a nan.
1542 2004-12-12 Richard Henderson <rth@redhat.com>
1544 * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
1545 errors across operations.
1547 2004-12-12 Di-an Jan <dianj@freeshell.org>
1549 * doc/passes.texi (Pass Manager): Correct list of source files.
1551 2004-12-12 Richard Henderson <rth@redhat.com>
1553 * expr.c (emit_move_change_mode): New.
1554 (emit_move_via_alt_mode): Use it.
1556 2004-12-12 Nathanael Nerode <neroden@gcc.gnu.org>
1557 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1560 * dojump.c (do_compare_and_jump): Only canonicalize function pointers
1561 in a comparison if both sides are function pointers.
1563 2004-12-12 Richard Henderson <rth@redhat.com>
1566 * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
1567 and compare_operator to propagate the input CC mode to the output.
1568 * config/i386/predicates.md (compare_operator): New.
1570 2004-12-12 Andrew Pinski <pinskia@physics.uc.edu>
1573 * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
1575 (handled_component_p): Likewise.
1577 2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
1579 * reg-stack.c (convert_regs_2): Free stack.
1581 * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
1584 2004-12-12 Daniel Berlin <dberlin@dberlin.org>
1586 * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
1587 * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
1590 2004-12-12 Diego Novillo <dnovillo@redhat.com>
1592 * tree-gimple.c (get_base_address): Update documentation.
1594 2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
1596 * lcm.c (optimize_mode_switching): Free ptr even when mode_set
1599 2004-12-12 Roger Sayle <roger@eyesopen.com>
1601 * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
1602 its correct location during popping if we need to permute the stack
1603 afterwards. Attempt to preserve the original stack ordering.
1605 2004-12-12 Kazu Hirata <kazu@cs.umass.edu>
1607 * lcm.c (optimize_mode_switching): Free insert and delete in
1610 2004-12-11 David Edelsohn <edelsohn@gnu.org>
1611 Ulrich Weigand <uweigand@de.ibm.com>
1614 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
1615 constants into all register classes intersecting with FLOAT_REGS
1617 * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
1618 * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
1619 choosing register preferences.
1620 (movdi_internal64): Same.
1622 2004-12-11 Kazu Hirata <kazu@cs.umass.edu>
1624 * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
1625 before we release an SSA_NAME.
1627 2004-12-11 Roger Sayle <roger@eyesopen.com>
1630 * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
1631 instead of constant_boolean_node as arg0 may have side-effects.
1633 2004-12-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1635 * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
1636 file to anonymous private map.
1638 2004-12-10 Roger Sayle <roger@eyesopen.com>
1642 * dojump.c (do_jump): When attempting to reverse the effects of
1643 fold_single_bit_test, we need to STRIP_NOPS and narrowing type
1644 conversions, and handle BIT_XOR_EXPR that's used to invert the
1645 sense of the single bit test.
1647 2004-12-10 Devang Patel <dpatel@apple.com>
1650 * gcc.c (main): Do not break out of loop when error is reported while
1651 processing one source file.
1653 2004-12-10 Diego Novillo <dnovillo@redhat.com>
1655 * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
1656 (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
1657 don't need any operands rewritten.
1658 (rewrite_stmt): Ignore statements that don't need to be
1660 (rewrite_operand): Validate that an existing SSA_NAME is
1661 identical to the current reaching definition of the operand.
1663 2004-12-10 Diego Novillo <dnovillo@redhat.com>
1665 * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
1666 * tree-vectorizer.c (vectorizable_load): Call it.
1667 * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
1668 * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
1670 2004-12-10 Kazu Hirata <kazu@cs.umass.edu>
1672 * regmove.c (combine_stack_adjustments_for_block): Free
1673 memlist if it hasn't been freed.
1675 2004-12-10 Ziemowit Laski <zlaski@apple.com>
1677 * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
1678 pointer field is set before dereferencing it.
1680 2004-12-10 Andrew Pinski <pinskia@physics.uc.edu>
1683 * tree-cfg.c (remove_bb): Put the moved label at the beginning
1686 2004-12-10 Kazu Hirata <kazu@cs.umass.edu>
1688 * tree-data-ref.c (free_data_refs): Free each data_reference
1691 * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
1692 call to is_gimple_min_invariant if we know the result.
1694 2004-12-10 Jeff Law <law@redhat.com>
1696 * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
1697 redundant test of v_ann->mem_tag_kind.
1699 * tree-ssa-operands.c (get_indirect_ref_operands): Remove
1700 redundant conditional clearing opf_kill_def.
1702 2004-12-10 Richard Sandiford <rsandifo@redhat.com>
1704 * config/frv/frv-modes.def: Fix comment typos.
1705 (CC_NZ): Define new mode.
1706 * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
1707 (condexec_intop_cmp_operator): Delete.
1708 * config/frv/frv.c (comparison_string): New function.
1709 (frv_print_operand): Use it to handle 'c' and 'C'.
1710 (relational_operator): Redefine in terms of integer_relational_operator
1711 and float_relational_operator.
1712 (signed_relational_operator, unsigned_relational_operator): Delete.
1713 (integer_relational_operator): New predicate, combining the above.
1714 Check the mode of the first operand but leave frv.md to check the rest.
1715 (float_relational_operator): Just check the mode of the first operand
1716 and leave frv.md to check the rest.
1717 (intop_compare_operator): Assume the result is compared with zero
1718 in mode CC_NZmode. Allow PLUS and MINUS. Leave frv.md to check
1719 the operand predicates.
1720 (condexec_intop_cmp_operator): Delete.
1721 (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
1722 (frv_hard_regno_mode_ok): Handle CC_NZmode.
1723 (frv_select_cc_mode): New function.
1724 * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
1725 (REVERSIBLE_CC_MODE): Include CC_NZmode.
1726 (PREDICATE_CODES): Replace entries for signed_relational_operand and
1727 unsigned_relational_operator with one for integer_relational_operator.
1728 Delete entry for condexec_intop_cmp_operator.
1729 * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
1730 (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
1731 (*combo_intop_compare2, *combo_intop_compare4): Delete.
1732 (*combo_intop_compare1): Change mode to CC_NZ.
1733 (*combo_intop_compare2): Likewise. Renamed from *combo_intop_compare3.
1734 (branch_{un,}signed_true, branch_{un,}signed_false)
1735 (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
1736 (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
1737 (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
1738 (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
1739 (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
1740 (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
1741 pattern pairs. Use integer_relational_operator. Remove mode from
1744 2004-12-10 Mark Dettinger <dettinge@de.ibm.com>
1746 * config/s390/s390.c (struct processor_costs): New fields ml,
1748 (s390_rtx_costs): Added the missing handling of multiply & add,
1749 square root, and umulsidi.
1751 2004-12-10 Kazu Hirata <kazu@cs.umass.edu>
1753 * expmed.c (synth_mult): Initialize new_limit.latency before
1754 making a recursive call.
1756 2004-12-10 Nick Clifton <nickc@redhat.com>
1758 * config/mn10300/mn10300.c (legitimate_address_p): Reject address
1759 whose index is itself the sum of two other parts.
1761 2004-12-10 Alan Modra <amodra@bigpond.net.au>
1763 * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
1765 2004-12-10 Uros Bizjak <uros@kss-loka.si>
1767 * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
1769 2004-12-09 Richard Henderson <rth@redhat.com>
1772 * attribs.c (decl_attributes): Use relayout_decl.
1773 * c-common.c (handle_mode_attribute): Copy all relevant type
1774 parameters from the new underlying integral type.
1776 2004-12-09 Richard Henderson <rth@redhat.com>
1778 * c-common.c (shorten_compare): Don't special-case min/maxval
1781 2004-12-09 Richard Sandiford <rsandifo@redhat.com>
1783 * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
1784 the request subreg is entirely contained in the requested component.
1785 (simplify_gen_subreg): Return null for CONCATs that are rejected
1787 * expmed.c (store_bit_field): Create a temporary when changing the
1788 value to an integer mode.
1790 2004-12-09 David Edelsohn <edelsohn@gnu.org>
1792 * real.c (ibm_extended): Correct comment.
1794 2004-12-09 Stan Shebs <shebs@apple.com>
1796 * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
1797 formerly in darwin-tramp.asm.
1798 * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
1799 * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
1800 * config/rs6000/t-darwin: Add dependencies.
1802 2004-12-09 Richard Henderson <rth@redhat.com>
1805 * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
1806 (test_qi_1, andqi_2): Do not promote to simode.
1808 2004-12-09 Andrew Pinski <pinskia@physics.uc.edu>
1811 * tree-chrec.c (chrec_convert): Use fold_convert
1814 2004-12-09 Matt Rice <ratmice@yahoo.com>
1816 PR preprocessor/18102
1817 * c-incpath.c (remove_duplicates): Check for construct
1820 2004-12-09 Dorit Naishlos <dorit@il.ibm.com>
1822 * genopinit.c (vec_realign_store_optab): Initialization removed.
1823 * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
1824 * optabs.h (optab_index): OTI_vec_realign_store Removed.
1825 (vec_realign_store_optab): Removed.
1826 * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
1827 * target.h (builtin_mask_for_store): Removed.
1828 * tree.def (REALIGN_STORE_EXPR): Removed.
1829 * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
1830 (altivec_builtin_mask_for_store): Removed.
1831 (altivec_init_builtins): Removed initialization of
1832 altivec_builtin_mask_for_store.
1834 * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
1835 (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
1837 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
1839 * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
1841 * tree.def (SET_TYPE): Remove.
1842 (CONSTRUCTOR): Update description.
1843 * builtins.c (type_to_class) Remove SET_TYPE case.
1844 * dbxout.c (dbxout_type): Likewise.
1845 * dwarf2out.c (is_base_type): Likewise.
1846 (gen_set_type_die): Remove.
1847 (gen_type_die): Remove SET_TYPE case.
1848 * expr.c (count_type_elements): Likewise.
1849 (mostly_zeroes_p): Likewise.
1850 (store_constructor): Likewise.
1851 * print_tree.c (print_node): Likewise.
1852 * stor-layout.c (layout_type): Likewise.
1853 * tree-browser.c (browse_tree): Likewise.
1854 * tree-inline.c (remap_type): Likewise.
1855 * tree-pretty-print.c (dump_generic_node): Likewise.
1856 * tree.c (type_contains_plaeholder_1, type_hash_eq,
1857 variably_modified_type_p, initializer_zerop): Likewise.
1858 * tree.h (SET_OR_ARRAY_CHECK): Remove.
1859 (AGGREGATE_TYPE_P): Remove SET_TYPE check.
1860 (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
1861 * typeclass.h (enum type_class): Remove set_type_class.
1862 * varasm.c (const_hash_1): Remove SET_TYPE case.
1863 (compare_constant, copy_constant, output_constant): Likewise.
1864 * config/i386/i386.c (classify_argument): Likewise.
1865 * config/ia64/ia64.c (hfa_element_mode): Likewise.
1866 * config/sparc/sparc.c (sparc_type_code): Likewise.
1869 * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
1871 2004-12-08 Richard Henderson <rth@redhat.com>
1873 * config/i386/i386.md: Use FLAGS_REG everywhere.
1875 2004-12-08 Eric Christopher <echristo@redhat.com>
1877 * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
1878 to avoid call to default function.
1880 2004-12-08 Zack Weinberg <zack@codesourcery.com>
1883 * varasm.c (pending_assemble_externals): New static.
1884 (assemble_external_real): Meat of assemble_external split out
1885 to this new function.
1886 (process_pending_assemble_externals): New function.
1887 (assemble_external): Use gcc_assert. If flag_unit_at_a_time
1888 is true and the basic test passes, merely cons the decl onto
1889 the pending list to be handled later.
1890 * tree.h: Declare process_pending_assemble_externals.
1891 * cgraphunit.c (cgraph_optimize): Call it.
1893 * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
1895 2004-12-08 Kazu Hirata <kazu@cs.umass.edu>
1897 * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
1898 and simplifying FOR_EACH_EDGE.
1900 2004-12-08 Richard Sandiford <rsandifo@redhat.com>
1902 * config/frv/frv.c (frv_sort_insn_group): Always initialize
1905 2004-12-08 Nathan Sidwell <nathan@codesourcery.com>
1908 * gimplify.c (canonicalize_addr_expr): Cope with array of
1910 (gimplify_conversion): Remove redundant checks.
1912 * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
1914 2004-12-08 Uros Bizjak <uros@kss-loka.si>
1916 * config/i386/i386.c (output_387_binary_op,
1917 ix86_prepare_fp_compare_args): Fix is_sse condition.
1919 2004-12-07 Uros Bizjak <uros@kss-loka.si>
1921 * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
1924 * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
1925 Use EFLAGS_P only when fcomi insn should be used. Fix handling
1926 of eflags_p variable. Change alt table accordingly. For non-fcomi
1927 compare insn always use trailing fnstsw insn. Fix intmode
1928 calculation for ficom insn.
1929 (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
1930 ix86_free_from_memory when "pushed" is specified.
1931 (ix86_expand_branch): Change call to ix86_split_fp_branch.
1933 * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
1934 Change eflags_p parameter in call to output_fp_compare.
1935 (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
1936 (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
1937 *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p
1938 parameter in call to output_fp_compare.
1939 (*cmpfp_2_u): Remove.
1940 (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
1941 in call to output_fp_compare.
1942 (*ficom_1): Remove insn definition and corresponding define_split.
1943 (*cmpfp_si): New insn definition.
1944 (*fp_jcc_8): New insn definition. Add new splitters for
1945 "memory_operand" and "register_operand".
1946 (define_split): Add new parameter in call to ix86_split_fp_branch.
1948 config/i386/predicates.md (float_operator): New predicate.
1950 2004-12-08 Kazu Hirata <kazu@cs.umass.edu>
1952 * c-common.c (verify_tree): Don't check code length if we know
1953 we are handling tcc_unary.
1954 * print_tree.c (print_node): Remove code to handle RTL
1955 appearing as a part of a tree node.
1956 * tree-gimple.c (recalculate_side_effects): Rename fro as len.
1957 * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
1958 (PROCESS_ARG): Don't refer to fro.
1959 (build2_stat, build3_stat, build4_stat): Don't compute fro.
1961 2004-12-07 Roger Sayle <roger@eyesopen.com>
1964 * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
1965 (expand_mult): Special case powers of two to avoid synth_mult.
1966 * loop.c (product_cheap_p): Handle case where expand_mult does
1967 require/generate any instructions (i.e. multiplication by zero).
1969 2004-12-07 Richard Henderson <rth@redhat.com>
1971 * tree-pretty-print.c (dump_array_domain): Split out from
1972 dump_generic_node; fix off-by-one error on zero-based array bounds.
1973 (dump_generic_node): Use it.
1974 (print_declaration): Likewise.
1976 2004-12-08 Richard Guenther <richard.guenther@uni-tuebingen.de>
1978 * doc/invoke.texi: Adjust default values for
1979 large-function-growth and inline-unit-growth to match
1980 params.def. Clarify used algorithm.
1982 2004-12-07 David Mosberger <davidm@hpl.hp.com>
1985 * config/ia64/ia64.c (ia64_assemble_integer): Add support for
1986 emitting unaligned pointer-sized integers.
1988 2004-12-07 Steven Bosscher <stevenb@suse.de>
1991 * c-typeck.c (c_start_case): Set orig_type to error_mark_node
1992 when the type of the controlling expression is not a valid type.
1994 2004-12-07 Steven Bosscher <stevenb@suse.de>
1996 PR tree-optimization/17340
1997 * tree-ssa-pre.c (compute_antic): Fix comment.
1998 (compute_avail): Do not recurse, instead do a DFS using a stack
2000 (execute_pre): Adjust.
2002 2004-12-07 Ziemowit Laski <zlaski@apple.com>
2004 * c-tree.h (struct lang_type): Rename 'objc_protocols' field
2007 2004-12-07 Eric Christopher <echristo@redhat.com>
2010 * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
2012 2004-12-07 Eric Christopher <echristo@redhat.com>
2014 * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
2016 * config/mips/mips.c: ... here. Make static.
2018 2004-12-07 Eric Christopher <echristo@redhat.com>
2021 * config/mips/mips.c (mips_vector_mode_supported_p): New function.
2022 (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
2024 2004-12-07 Kazu Hirata <kazu@cs.umass.edu>
2026 * c-common.c, expr.c, fold-const.c, print-tree.c,
2027 tree-gimple.c, tree-inline.c, tree-pretty-print.c,
2028 tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
2029 first_rtl_op with TREE_CODE_LENGTH.
2030 * tree.c (first_rtl_op): Remove.
2031 Replace uses of first_rtl_op with TREE_CODE_LENGTH.
2032 * tree.h: Remove the prototype for first_rtl_op.
2034 2004-12-07 David Edelsohn <edelsohn@gnu.org>
2036 * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
2037 Revert 2004-12-01 change.
2039 2004-12-06 Ziemowit Laski <zlaski@apple.com>
2041 * c-tree.h (struct lang_type): Add 'objc_protocols' field.
2043 2004-12-06 DJ Delorie <dj@redhat.com>
2045 * reload.c (find_valid_class): Fix logic to test inner mode as well.
2046 (push_reload): Pass inner mode.
2048 2004-12-06 Eric Christopher <echristo@redhat.com>
2050 * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
2052 2004-12-06 Aldy Hernandez <aldyh@redhat.com>
2054 * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
2056 2004-12-06 Zdenek Dvorak <dvorakz@suse.cz>
2057 Kazu Hirata <kazu@cs.umass.edu>
2059 PR tree-optimization/18601
2060 * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
2061 (tree_forwarder_block_p): Do not consider blocks that are its own
2062 successors forwarders.
2063 (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
2064 (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
2066 * tree-flow.h (bb_ann_d): Remove forwardable.
2068 2004-12-06 Kazu Hirata <kazu@cs.umass.edu>
2070 * expr.c (expand_expr_real_1): Remove an "if" whose condition
2073 2004-12-06 Roger Sayle <roger@eyesopen.com>
2075 * c-gimplify.c (gimplify_c_loop): Improve initial implementations
2076 for loops whose conditions are known at compile-time.
2077 * gimplify.c (append_to_statement_list_1): Remove side_effects
2078 parameter, this function should never be called if its false.
2079 (append_to_statement_list): Only call append_to_statement_list_1
2080 if t is non-NULL tree with side-effects.
2081 (append_to_statement_list_force): Likewise, if t is not NULL.
2083 2004-12-06 J"orn Rennecke <joern.rennecke@st.com>
2085 * bt-load.c (btr_def_s): New member own_end;
2086 (add_btr_to_live_range): Add second parameter. Changed caller.
2087 (clear_btr_from_live_range): Clear btrs_live_at_end bit
2088 for the register its definition basic block if own_end is set.
2089 (augment_live_range): Also take btrs_live_at_end into account.
2090 (combine_btr_defs): Don't bother with
2091 other_def->other_btr_uses_after_use if it pertains to a different
2093 (move_btr_def): Set def->other_btr_uses_before_def after
2094 calling combine_btr_defs."
2096 * bt-load.c (augment_live_range): New argument full_range.
2097 Changed all callers.
2099 * bt-load.c (move_tr_def): Set other_tr_uses_before_def
2100 taking new btr assignment into account.
2102 2004-12-05 Daniel Berlin <dberlin@dberlin.org>
2104 * tree-ssa-alias.c (create_global_var): Use void_type_node,
2107 2004-12-05 Kazu Hirata <kazu@cs.umass.edu>
2109 * expr.c (expand_expr_real_1): Abort on COND_EXPR of
2112 2004-12-05 Richard Henderson <rth@redhat.com>
2115 * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
2116 (builtin_setjmp_receiver_er_sl_1): Use it.
2117 (builtin_setjmp_receiver_er_1): Likewise.
2118 (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
2119 (builtin_setjmp_receiver): Don't split for explicit relocs until
2121 (exception_receiver): Likewise.
2123 2004-12-05 Andrew Pinski <pinskia@physics.uc.edu>
2125 * mklibgcc.in (vis_hide): Add the prototype for the test.
2127 2004-12-05 Roger Sayle <roger@eyesopen.com>
2129 * c-typeck.c (c_finish_loop): Improve initial implementations
2130 for loops whose conditions are known at compile-time.
2132 2004-12-05 Kazu Hirata <kazu@cs.umass.edu>
2134 * builtins.c: Fix comment typos.
2136 2004-12-04 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2139 * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
2140 the first/last insn is a sequence, return the first/last insn of the
2144 * mklibgcc.in (vis_hide): Use implementation instead of declaration
2147 2004-12-04 Richard Henderson <rth@redhat.com>
2149 * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
2150 use ofs in BWX two byte special case.
2151 (alpha_expand_unaligned_store): Likewise.
2153 2004-12-04 Kazu Hirata <kazu@cs.umass.edu>
2155 * gcse.c (gcse_main): Add a comment.
2157 2004-12-04 Andrew Pinski <pinskia@physics.uc.edu>
2160 * builtins.c (fold_builtin_next_arg): Export and return true
2161 when there is a warning or an error.
2162 (expand_builtin_va_start): When fold_builtin_next_arg returns true,
2164 (expand_builtin): Likewise.
2165 * gimplify.c (gimplify_call_expr): Error out if there is not
2166 enough arguments to va_start. Call fold_builtin_next_arg also
2167 on the second argument.
2168 * tree.h (fold_builtin_next_arg): Prototype.
2170 2004-12-04 Alan Modra <amodra@bigpond.net.au>
2172 * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
2173 Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
2174 SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
2175 * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
2176 shlib_dir and shlib_so_name.
2177 * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
2178 * config/t-libunwind-elf (SHLIB_NAME): Likewise.
2179 * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
2180 * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
2181 * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
2182 (SHLIB_LINK): Don't use shlib_dir when creating symlink.
2184 2004-12-03 Roger Sayle <roger@eyesopen.com>
2186 * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
2188 2004-12-03 Richard Henderson <rth@redhat.com>
2190 * alias.c (component_uses_parent_alias_set): Rename from
2191 can_address_p. Return bool. Reverse the sense of the result.
2192 Reinstate the check for alias set zero.
2193 (get_alias_set): Update to match.
2194 * alias.h (component_uses_parent_alias_set): Likewise.
2195 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2196 * expr.c (expand_assignment): Likewise.
2197 * expr.h: Remove commented out prototypes that were moved to alias.h.
2199 2004-12-03 Richard Henderson <rth@redhat.com>
2201 * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
2202 (TARGET_CANNOT_FORCE_CONST_MEM): New.
2204 2004-12-04 Alan Modra <amodra@bigpond.net.au>
2207 * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
2209 * sched-ebb.c (schedule_ebb): Likewise.
2211 2004-12-03 Andreas Schwab <schwab@suse.de>
2213 * Makefile.in (HOSTHOOKS_DEF_H): Define.
2214 (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
2215 (host-default.o): Likewise.
2217 2004-12-03 Eric Christopher <echristo@redhat.com>
2219 * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
2220 pophi): Add number of arguments to name so that the
2221 pattern is recognized as a named pattern.
2223 2004-12-03 Janis Johnson <janis187@us.ibm.com>
2225 * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
2227 2004-12-03 Andreas Tobler <a.tobler@schweiz.ch>
2229 * config/rs6000/rs6000.c (rs6000_override_options): Protect
2230 darwin_one_byte_bool with #if.
2232 2004-12-03 Paolo Bonzini <bonzini@gnu.org>
2234 * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
2236 2004-12-03 H.J. Lu <hongjiu.lu@intel.com>
2238 * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
2240 2004-12-03 Richard Sandiford <rsandifo@redhat.com>
2242 * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
2243 Set libstdcxx_incdir directly.
2244 * configure: Regenerate.
2246 2004-12-03 Kazu Hirata <kazu@cs.umass.edu>
2248 * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
2249 "if" whose condition is always true.
2251 * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
2254 2004-12-02 Stan Shebs <shebs@apple.com>
2256 * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
2257 Darwin default to one-byte bools.
2259 2004-12-02 Richard Henderson <rth@redhat.com>
2262 * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
2264 2004-12-03 Ben Elliston <bje@au.ibm.com>
2266 * doc/cfg.texi (Edges): Update. Document the edge_iterator data
2267 type and its methods.
2269 2004-12-02 Richard Henderson <rth@redhat.com>
2271 * expr.c (write_complex_part): Use simplify_gen_subreg when the
2272 submode is at least as large as a word.
2273 (read_complex_part): Likewise.
2275 2004-12-02 H.J. Lu <hongjiu.lu@intel.com>
2278 * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
2279 multilib at a time. Don't build the default set. Don't add
2280 EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
2281 filter for shared libunwind and libgcc.
2283 2004-12-02 Roger Sayle <roger@eyesopen.com>
2286 * config/i386/i386.c (override_options): If -fomit-frame-pointer has
2287 already been specified, ignore the -momit-leaf-frame-pointer option.
2289 2004-12-02 H.J. Lu <hongjiu.lu@intel.com>
2291 * varasm.c (make_decl_rtl): Add the missing `;'.
2293 2004-12-02 Andrew Pinski <pinskia@physics.uc.edu>
2295 * tree.c (is_attribute_p): Split out to ..
2296 (is_attribute_with_length_p): Here. Use IDENTIFIER_LENGTH instead
2297 of strlen and compare the string lengths before calling strcmp.
2298 (lookup_attribute): Call is_attribute_with_length_p instead of
2301 2004-12-02 Devang Patel <dpatel@apple.com>
2303 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
2304 * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
2305 * config/i386/darwin.h (CC1_SPEC): Same.
2307 2004-12-02 Richard Henderson <rth@redhat.com>
2309 * optabs.c (lowpart_subreg_maybe_copy): New.
2310 (expand_unop, expand_abs_nojump): Use it.
2312 2004-12-02 J"orn Rennecke <joern.rennecke@st.com>
2314 * sh.md (extv, extzv): Add pattern predicate.
2316 2004-12-02 Kazu Hirata <kazu@cs.umass.edu>
2318 * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2321 * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2324 * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
2326 2004-12-02 Jeff Law <law@redhat.com>
2328 * tree-eh.c: Revert yesterday's change.
2330 2004-12-02 Andrew Pinski <pinskia@physics.uc.edu>
2332 * varasm.c (decode_reg_name): Revert change to check for zero
2334 (make_decl_rtl): Make sure that we call decode_reg_name only
2337 2004-12-02 Dorit Naishlos <dorit@il.ibm.com>
2340 * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
2341 then and else labels.
2343 2004-12-02 Andreas Schwab <schwab@suse.de>
2345 * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
2346 (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
2347 (STAGE2_FLAGS_TO_PASS): Likewise.
2349 * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
2351 2004-12-02 Richard Sandiford <rsandifo@redhat.com>
2353 * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version. Remove
2354 now-redundant AC_SUBSTs.
2355 * aclocal.m4: Include ../config/gcc-version.m4.
2356 * configure: Regenerate.
2358 2004-12-02 Alan Modra <amodra@bigpond.net.au>
2360 * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
2361 #ifdef RELOCATABLE_NEEDS_FIXUP.
2363 2004-12-01 Roger Sayle <roger@eyesopen.com>
2366 * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
2367 Intel assembler syntax by using %A1 instead of %*%1.
2369 2004-12-01 Richard Henderson <rth@redhat.com>
2371 * expr.c (expand_assignment): Handle CONCAT both as a final
2372 destination and as a middle point.
2374 2004-12-01 Jeff Law <law@redhat.com>
2376 * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
2377 (honor_protect_cleanup_actions): Only create save_eptr and
2378 save_filt if they do not already exist.
2379 (lower_eh_constructs): Wipe all knowledge of save_eptr and
2380 save_filt before returning.
2382 2004-12-02 Kazu Hirata <kazu@cs.umass.edu>
2384 * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
2386 2004-12-02 Alan Modra <amodra@bigpond.net.au>
2389 * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
2390 #ifdef RELOCATABLE_NEEDS_FIXUP with if.
2391 * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
2392 of target_flags_explicit.
2393 * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
2394 case. Define as 0 for non-biarch.
2396 2004-12-01 Zack Weinberg <zack@codesourcery.com>
2398 * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
2399 Change temporary file tag from a prefix to an infix.
2401 2004-12-02 Andreas Schwab <schwab@suse.de>
2403 * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
2405 2004-12-01 Andrew Pinski <pinskia@physics.uc.edu>
2409 * tree-ssa-alias.c (init_alias_info): Get statement operands for all
2410 the statements if aliases_computed_p is true.
2412 2004-12-01 Mark Mitchell <mark@codesourcery.com>
2414 * Makefile.in (WERROR): New variable.
2415 (STRICT2_WARN): Use it.
2416 (STAGE2_FLAGS_TO_PASS): Likewise.
2417 * config/i386/x-mingw32 (WERROR): Add -Wno-format.
2419 2004-12-01 Richard Henderson <rth@redhat.com>
2421 * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
2424 2004-12-01 Diego Novillo <dnovillo@redhat.com>
2426 PR tree-optimization/18291
2427 * tree-ssa-copy.c (merge_alias_info): Fix merging of
2428 flow-sensitive alias information. If the new pointer has no
2429 name tag, copy it from the original pointer. Otherwise, make
2430 sure that the pointed-to sets have a common intersection.
2432 2004-12-01 Richard Henderson <rth@redhat.com>
2435 * emit-rtl.c (gen_complex_constant_part): Remove.
2436 (gen_realpart, gen_imagpart): Remove.
2437 * rtl.h (gen_realpart, gen_imagpart): Remove.
2438 * expmed.c (extract_bit_field): Remove CONCAT hack catering to
2439 gen_realpart/gen_imagpart.
2440 * expr.c (write_complex_part, read_complex_part): New.
2441 (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
2442 emit_move_complex_push, emit_move_complex, emit_move_ccmode,
2443 emit_move_multi_word): Split out from ...
2444 (emit_move_insn_1): ... here.
2445 (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
2446 <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
2447 * function.c (assign_parm_setup_reg): Hard-code transformations
2448 instead of using gen_realpart/gen_imagpart.
2450 * expr.c (optimize_bitfield_assignment_op): Split out from ...
2451 (expand_assignment): ... here. Use handled_component_p to gate
2452 get_inner_reference code. Simplify MEM handling. Special case
2453 CONCAT destinations.
2455 * expmed.c (store_bit_field): Use simplify_gen_subreg instead
2456 of gen_rtx_SUBREG directly.
2458 2004-12-01 David Edelsohn <edelsohn@gnu.org>
2459 Nathan Sidwell <nathan@codesourcery.com>
2462 * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
2467 2004-12-01 Nathan Sidwell <nathan@codesourcery.com>
2470 * params.c (set_param_value): Add range check.
2471 * params.def: Add min and max values. Reformat long strings.
2472 * params.h (struct param_info): Add min and max fields.
2473 (enum compiler_param): Adjust DEFPARAM.
2474 * toplev.c (lang_independent_params): Likewise.
2476 2004-12-01 Alan Modra <amodra@bigpond.net.au>
2479 * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
2481 2004-12-01 Joseph S. Myers <joseph@codesourcery.com>
2483 * doc/standards.texi: Update for C99 TC2.
2485 2004-11-30 Jeff Law <law@redhat.com>
2487 * sbitmap.c (sbitmap_any_common_bits): New function.
2488 * sbitmap.h (sbitmap_any_common_bits): Prototype.
2489 * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
2490 No longer allocate/free "psp", "pss" sbitmaps.
2491 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
2493 (group_aliases): Similarly.
2495 2004-11-30 Nathan Sidwell <nathan@codesourcery.com>
2497 * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
2498 uninitialized variable.
2500 2004-11-30 Eric Christopher <echristo@redhat.com>
2502 * fold-const.c (fold_widened_comparison): Make sure that we're
2503 passing an INTEGER_TYPE to int_fits_type_p.
2504 (fold): Clean up comment.
2506 2004-11-30 Zack Weinberg <zack@codesourcery.com>
2508 * mklibgcc.in: Correct calculation of libgcc_s_soname and
2509 libunwind_soname. Use $out, not $outS, in commands for
2510 no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above
2511 library build rules, make $libunwind_so and $libgcc_s_so
2512 depend on them in the normal fashion, and filter those objects
2513 out of @shlib_objs@.
2515 2004-11-30 Janis Johnson <janis187@us.ibm.com>
2517 * config/rs6000/altivec.h (vec_step_help): Support const vector types.
2519 2004-11-30 Andrew Pinski <pinskia@physics.uc.edu>
2522 * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
2523 pass right after fold builtins.
2525 2004-11-30 Andreas Krebbel <krebbel1@de.ibm.com>
2527 * config/s390/s390-modes.def: Added cc modes documentation.
2528 * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
2529 s390_expand_addcc): Added cc mode comments.
2530 * config/s390/s390.md: Removed old cc mode documentation.
2532 2004-11-30 Mark Dettinger <dettinge@de.ibm.com>
2534 * config/s390/s390.c (struct processor_costs): New data type.
2535 (s390_cost, z900_cost, z990_cost): New global variables.
2536 (override_options): Initialize s390_cost.
2537 (s390_rtx_costs): Reimplement.
2539 2004-11-29 Daniel Berlin <dberlin@dberlin.org>
2541 Fix PR tree-optimization/18673
2543 * tree-ssa-pre.c: Remove splay-tree.h include.
2544 (bitmap_value_replace_in_set): Fix to add if it does not exist.
2545 (find_or_generate_expression): Remove now-wrong condition.
2546 (create_expression_by_pieces): Fix condition and comment reason
2548 (insert_aux): Fix condition and comment reasons for it.
2549 Factor insertion code from here.
2550 (insert_into_preds_of_block): To here. Fix conditions in factored
2551 function and comment reasons for them.
2553 2004-11-30 Ira Rosen <irar@il.ibm.com>
2556 * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
2557 variable for data_reference when looking for memtag.
2559 2004-11-30 Jakub Jelinek <jakub@redhat.com>
2561 * c-opts.c (check_deps_environment_vars): If spec != NULL, set
2564 2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
2566 * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
2567 tree_low_cst instead of TREE_INT_CST_LOW.
2569 2004-11-30 Dorit Naishlos <dorit@il.ibm.com>
2572 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
2573 decls that are assembled before vectorization takes place.
2574 (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
2576 2004-11-30 Ulrich Weigand <uweigand@de.ibm.com>
2578 * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
2579 if local_alloc modified jumps.
2581 2004-11-30 Alan Modra <amodra@bigpond.net.au>
2583 * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
2585 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
2588 2004-11-30 Zack Weinberg <zack@codesourcery.com>
2590 * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
2591 * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
2593 * mklibgcc.in: Drastic restructure for comprehensibility.
2594 Remove the old hidden-directive hack.
2595 Eliminate support for .txt files in LIB2ADD etc (never used).
2596 Eliminate support for assembly source files in LIB2ADDEH* and
2597 LIBUNWIND (also never used).
2598 Build up dependency lists for libraries incrementally.
2599 If we have SHLIB_LINK, compile each file twice, once for the
2600 static and once for the shared library; also probe for
2601 -fvisibility=hidden in the generated libgcc.mk. If found,
2602 pass that and -DHIDE_EXPORTS to the compilation of every C
2603 source file going into the static library. If found, generate
2604 hidden-directive lists for every assembly source file going
2605 into the static library, but incorporate them with -include
2607 Write comments into generated libgcc.mk to facilitate debugging.
2608 * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
2609 * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
2611 * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
2614 2004-11-29 Richard Henderson <rth@redhat.com>
2616 * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
2617 (handled_component_p): Likewise.
2618 * alias.c (can_address_p): Reformat and simplify. Handle
2619 REAL/IMAGPART_EXPR. Do not disable addressability based on
2621 * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
2622 check for REAL/IMAGPART_EXPR.
2623 * gimplify.c (gimplify_compound_lval): Likewise.
2624 * tree-cfg.c (verify_expr): Likewise.
2625 * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2626 * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
2627 (convert_local_reference): Likewise.
2628 * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
2630 2004-11-30 Alan Modra <amodra@bigpond.net.au>
2632 * expr.c (emit_group_load_1): Don't die on const_int orig_src.
2634 2004-11-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2637 * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
2638 * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
2639 and host_xmake_file using new host configuration files.
2641 2004-11-29 Roger Sayle <roger@eyesopen.com>
2643 * reg-stack.c (change_stack): Improve algorithm used to pop regs
2644 off the stack to maximize ffreep usage and reduce fxch count.
2646 2004-11-30 James A. Morrison <phython@gcc.gnu.org>
2649 * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
2652 2004-11-30 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2654 * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
2655 REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
2657 2004-11-30 Ben Elliston <bje@au.ibm.com>
2659 * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
2661 2004-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2664 * c-common.c (handle_visibility_attribute): When the type decl
2665 is really a identifier node, warn about being ignored and return.
2667 2004-11-29 Richard Henderson <rth@redhat.com>
2669 * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
2671 2004-11-29 Steven Bosscher <stevenb@suse.de>
2673 * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
2674 Remove CASE_DROPS_THROUGH checks, it is never defined.
2675 * cfglyout.c (fixup_reorder_chain): Likewise.
2676 * cfgrtl.c (rtl_verify_flow_info): Likewise.
2677 * stmt.c (expand_case): Likewise.
2678 * cfgbuild.c (make_edges): Likewise. Also remove force_fallthru,
2680 * system.h (CASE_DROPS_THROUGH): Poison.
2681 * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2682 * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2684 * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
2686 2004-11-29 Andrew Pinski <pinskia@physics.uc.edu>
2689 * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
2692 2004-11-29 Diego Novillo <dnovillo@redhat.com>
2694 PR tree-optimization/18712
2695 * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
2696 WORK_STACK by reference.
2697 Call VEC_safe_push instead of VEC_quick_push.
2700 2004-11-29 Daniel Jacobowitz <dan@codesourcery.com>
2703 * Makefile.in (c-lang.o): Update dependencies.
2704 * c-lang.c: Include "c-pragma.h".
2705 (finish_file): Call maybe_apply_pending_pragma_weaks.
2706 * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
2707 * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
2709 2004-11-29 Richard Henderson <rth@redhat.com>
2712 * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
2713 outside the referenced object.
2715 2004-11-29 Kazu Hirata <kazu@cs.umass.edu>
2717 * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
2718 EDGE_PRED instead of PHI_ARG_EDGE.
2719 * tree-ssa-live.c: Likewise.
2720 * tree-ssa-loop-manip.c: Likewise.
2721 * tree-ssa.c: Likewise.
2723 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
2724 simplifying edge manipulation.
2726 * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
2729 * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
2732 * cfg.c (flow_obstack): Remove.
2733 (flow_firstobj): Likewise.
2734 (init_flow): Remove all uses of flow_obstack.
2736 2004-11-29 Alan Modra <amodra@bigpond.net.au>
2738 * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
2741 2004-11-29 Nathan Sidwell <nathan@codesourcery.com>
2743 * opts.c (decode_options): Do not set max-inline-insns-rtl.
2744 (common_handle_option): Likewise.
2745 * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
2746 * params.h (MAX_INLINE_INSNS_RTL): Remove.
2747 * doc/invoke.texi (max-inline-insns-rtl): Remove.
2749 2004-11-29 Alan Modra <amodra@bigpond.net.au>
2752 * varasm.c (default_elf_select_section_1): Pass decl to named_section.
2754 2004-11-28 Andrew Pinski <pinskia@physics.uc.edu>
2757 * gimplify.c (gimplify_asm_expr): If the length of an output operand
2758 is zero, do not process it, just let it go through.
2760 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2761 Diego Novillo <dnovillo@redhat.com>
2763 PR/18662, also backported from tree-cleanup-branch.
2764 * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
2765 always call maybe_clean_eh_stmt and modify_stmt.
2767 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2770 * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
2771 Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
2772 * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
2773 add an inverse VIEW_CONVERT_EXPR to const_val.
2776 * tree-nested.c (check_for_nested_with_variably_modified): New.
2777 (create_nesting_tree): Call it.
2779 * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
2780 special code for assigning to non-pointer.
2781 (is_escape_site): If RHS is a conversion between pointer and integer
2782 types, this is an escape site.
2784 * gcse.c (insert_store): Error if try to insert store on abnormal edge.
2785 (store_motion): Don't move store if any edge we'd want to move it
2788 * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
2789 non-zero lower bound.
2791 * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
2793 2004-11-28 Matt Kraai <kraai@alumni.cmu.edu>
2796 * opts.c (find_opt): Require that the input match a switch exactly
2797 or that the switch take a joined option to be interpreted as a
2798 match for another language.
2800 2004-11-28 Andrew Pinski <pinskia@physics.uc.edu>
2802 * timevar.def (TV_TREE_REDPHI): New timevar.
2803 * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
2805 2004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
2807 PR preprocessor/17651
2808 * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
2809 flag_no_line_commands.
2810 * c-ppoutput.c (pp_file_change): Remove now-redundant check of
2813 2004-11-28 Theodore A. Roth <troth@openavr.org>
2815 * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
2816 warning if the function name does not begin with "__vector" and the
2817 function has either the 'signal' or 'interrupt' attribute.
2819 2004-11-28 Theodore A. Roth <troth@openavr.org>
2821 * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
2822 atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
2823 atmega325, atmega3250, atmega645 and atmega6450.
2824 * config/avr/avr.h (LINK_SPEC): Ditto.
2826 (LIBGCC_SPEC): Ditto.
2827 (CRT_BINUTILS_SPECS): Ditto.
2828 * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
2830 2004-11-28 Nathanael Nerode <neroden@gcc.gnu.org>
2832 PR preprocessor/17610
2833 * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
2835 2004-11-28 Jeff Law <law@redhat.com>
2837 * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
2838 (pass_maybe_create_global_var): New.
2839 * tree-pass.h (pass_maybe_create_global_var): Declare.
2840 * tree-optimize.c (init_tree_optimization_passes): Link in
2841 pass_maybe_create_global_var.
2843 2004-11-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2845 * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
2847 2004-11-28 Ulrich Weigand <uweigand@de.ibm.com>
2849 PR rtl-optimization/18420
2850 * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
2852 2004-11-28 Steven Bosscher <stevenb@suse.de>
2853 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2855 * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
2856 * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
2857 that the case is in range, to make sure the casesi insn is always
2858 in range and never falls through.
2859 (casesi1): Add comment to explain why casesi never falls through.
2860 Remove the unnamed special case casesi pattern.
2862 2004-11-28 Hans-Peter Nilsson <hp@bitrange.com>
2865 * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
2866 "*movdicc_real". Only match reversible comparisons.
2867 ("*movdicc_real_nonreversible"): New pattern, split from
2868 "*movdicc_real". Match only nonreversible comparisons. Exclude
2869 reversed alternatives.
2870 ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
2873 2004-11-27 Richard Henderson <rth@redhat.com>
2875 * config/ia64/ia64.md: Move all define_predicate's ...
2876 * config/ia64/predicates.md: ... here. New file.
2878 2004-11-27 Per Bothner <per@bothner.com>
2881 Re-applied following, with two modifications: add a URL for the
2882 fixed cctools; only exit if $build = $target.
2884 2004-10-18 Kelley Cook <kcook@gcc.gnu.org>
2885 * configure.ac (powerpc-*-darwin*): Require assembler to support
2887 * configure: Regenerate.
2889 2004-11-28 David Edelsohn <edelsohn@gnu.org>
2892 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
2893 EQ, GTU, and LTU costs. Add costs for GT, LT, and UNORDERED.
2894 Distinguish between SImode and DImode CONST_INT.
2896 2004-11-28 Andreas Fischer <a_fisch@gmx.de>
2897 Alan Modra <amodra@bigpond.net.au>
2900 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
2901 functions, strings and thread-local vars.
2903 2004-11-28 Alan Modra <amodra@bigpond.net.au>
2905 * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
2906 * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
2907 * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
2908 to allow non-darwin ABIs to optimize away code.
2909 (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
2911 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
2913 * tree.c (operand_equal_for_phi_arg_p): New.
2914 * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
2915 * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
2916 Replace operand_equal_p with operand_for_phi_arg_p
2919 * bb-reorder.c (find_traces_1_round): Speed up by using
2920 EDGE_COUNT instead of FOR_EACH_EDGE.
2922 * fold-const.c, config/i386/linux64.h: Fix comment typos.
2924 2004-11-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2927 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
2929 2004-11-27 Kazu Hirata <kazu@cs.umass.edu>
2931 * config/i386/linux.h: Fix a comment typo.
2932 * doc/extend.texi: Fix a typo.
2934 2004-11-27 Jeff Law <law@redhat.com>
2936 * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
2939 2004-11-27 Jakub Jelinek <jakub@redhat.com>
2941 * config/i386/linux64.h (REG_NAME): Define.
2943 2004-11-27 Jakub Jelinek <jakub@redhat.com>
2945 * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
2946 unsigned and type signed, build ABS_EXPR with signed_type (ctype)
2947 and only afterwards convert to ctype.
2949 2004-11-27 Richard Sandiford <rsandifo@redhat.com>
2951 * config/mips/mips-protos.h (function_arg_boundary): Declare.
2952 * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
2953 (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
2954 (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
2955 * config/mips/mips.c (function_arg_boundary): New function.
2956 Impose a maximum alignment of STACK_BOUNDARY.
2958 2004-11-27 Jakub Jelinek <jakub@redhat.com>
2960 PR rtl-optimization/17825
2961 * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
2964 2004-11-27 Alan Modra <amodra@bigpond.net.au>
2967 * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
2968 from rs6000_default_long_calls for libcalls.
2970 2004-11-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2972 * expmed.c (extract_bit_field): When extracting from non-integer mode,
2973 force a SUBREG into a register because we may be taking a further
2976 2004-11-27 Di-an Jan <dianj@freeshell.org>
2978 * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
2980 2004-11-26 Robert Millan <robertmh@gnu.org>
2982 Changes for k*bsd-gnu support.
2983 * config/i386/linux.h: Define REG_NAME to allow overriding of
2984 register names in sc structure.
2985 * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
2987 * config.gcc: Detect x86_64-k*bsd-gnu systems.
2989 2004-11-26 Jeff Law <law@redhat.com>
2991 * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
2992 retrieve annotations or pointer info before it's necessary.
2993 Reorder tests for early continue of the loop. Manually CSE
2996 2004-11-26 Eric Botcazou <ebotcazou@libertysurf.fr>
2998 * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
2999 * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
3000 (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
3001 * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
3002 to a fixed reg if the source is the Return Address register.
3003 Implement new Rule 15.
3004 * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
3005 * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
3006 sparc_dwarf_handle_frame_unspec.
3007 (gen_save_register_window): New function.
3008 (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
3009 (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
3010 (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
3011 Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
3012 (sparc_asm_function_prologue): Do not emit call frame debugging info.
3013 (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
3014 (sparc_expand_epilogue): Likewise.
3015 (sparc_dwarf_handle_frame_unspec): New function.
3016 * config/sparc/sparc.md (save_register_window): Remove.
3017 (save_register_windowdi): Rewrite modelled on the callframe debug info.
3018 (save_register_windowsi): Likewise.
3020 2004-11-26 Alexandre Oliva <aoliva@redhat.com>
3022 * config/frv/frv-protos.h: Guard ifcvt functions declarations with
3023 BB_HEAD, not BLOCK_HEAD.
3025 2004-11-26 Alexandre Oliva <aoliva@redhat.com>
3027 * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
3028 scratch insns that set a register live at the join point.
3030 2004-11-26 Kazu Hirata <kazu@cs.umass.edu>
3032 * cse.c, tree-ssa-operands.c: Fix comment typos.
3034 * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
3036 2004-11-26 James A. Morrison <phython@gcc.gnu.org>
3039 * doc/extend.texi (SPARC VIS Built-in Functions): New section.
3041 2004-11-26 Kazu Hirata <kazu@cs.umass.edu>
3043 * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
3044 check that tests if all edges go to the same destination.
3046 * bitmap.c (bitmap_find_bit): Speed up by traversing from
3047 head->first if that seems profitable.
3049 2004-11-25 Jeff Law <law@redhat.com>
3051 * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
3052 * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
3053 (pass_loop_done): Use TV_TREE_LOOP_FINI.
3055 2004-11-26 Alan Modra <amodra@bigpond.net.au>
3057 PR rtl-optimization/16356
3058 * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
3059 separate output register and one less jump. Enable for powerpc64.
3060 (floatdisf2): Adjust for above.
3062 2004-11-25 Bob Wilson <bob.wilson@acm.org>
3064 * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
3065 (GCC_DRIVER_HOST_INITIALIZATION): Define.
3067 2004-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3070 * tree-complex.c (vector_inner_type): New variable moved from
3071 build_word_mode_vector_type.
3072 (vector_last_type): Likewise.
3073 (vector_last_nunits): Likewise.
3074 (build_word_mode_vector_type): Use the new variables.
3075 * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
3076 (GTFILES): Add tree-complex.c.
3077 (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
3079 2004-11-25 Bob Wilson <bob.wilson@acm.org>
3081 * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
3082 __XTENSA_WINDOWED_ABI__.
3084 2004-11-25 Richard Henderson <rth@redhat.com>
3086 * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument. Save
3087 args_size adjustments for calls even with cfa as stack pointer.
3088 Search calls for stack adjustments after the insn is issued.
3089 (dwarf2out_frame_debug): Add after_p argument; pass it on.
3090 * dwarf2out.h (dwarf2out_frame_debug): Update to match.
3091 * final.c (final_start_function, final_scan_insn): Likewise.
3093 2004-11-25 Richard Henderson <rth@redhat.com>
3096 * reload1.c (set_initial_eh_label_offset): New.
3097 (set_initial_label_offsets): Use it.
3099 2004-11-25 Kaz Kojima <kkojima@gcc.gnu.org>
3101 * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
3102 before calling life_analysis and release them after.
3104 2004-11-25 Kazu Hirata <kazu@cs.umass.edu>
3106 * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
3109 2004-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3111 * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
3112 BITMAP_OBSTACK_ALLOC.
3113 (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
3115 2004-11-25 Andrew Pinski <pinskia@physics.uc.edu>
3117 parts of PR rtl-opt/18463, rtl-opt/17647
3118 * cse.c (canon_for_address): New function.
3119 (find_best_addr): Call canon_for_address before getting the
3120 address's cost when checking if we should take that address.
3122 2004-11-25 Kazu Hirata <kazu@cs.umass.edu>
3124 * tree-phinodes.c (add_phi_arg): Take "tree" instead of
3125 "tree *" as the first argument.
3126 * tree-flow.h: Update the prototype of add_phi_arg.
3127 * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
3128 tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
3129 tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
3130 tree-vectorizer.c: Update all call sites of add_phi_arg.
3132 2004-11-25 Nathan Sidwell <nathan@codesourcery.com>
3134 * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
3135 * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
3136 (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
3137 (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
3139 2004-11-25 Andrew MacLeod <amacleod@redhat.com>
3141 PR tree-optimization/18587
3142 * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
3143 call clobbered caches as invalid.
3144 * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New. Flag
3145 indicating whether the call clobbered operand cache is valid.
3146 (ssa_ro_call_cache_valid): New. Flag indicating whether the
3147 pure/const call operand cache is valid.
3148 (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New. Cached
3149 list of operands for cached call virtual operands.
3150 (clobbered_aliased_loads, clobbered_aliased_stores,
3151 ro_call_aliased_load): New. flags caching whether alias bits are
3152 to be set in call stmt's.
3153 (fini_ssa_operands): Remove call operand caches if present.
3154 (get_expr_operands, get_asm_expr_operands,
3155 get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
3156 (get_call_expr_operands): Add call clobbered variables first.
3157 (add_stmt_operand): Take stmt annotation rather than stmt as a param.
3158 (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
3159 if it is valid, otherise fill the cache.
3160 * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
3161 * tree-flow.h (struct var_ann_d): Add in_vuse_list and
3162 in_v_may_def_list bits.
3163 * tree-ssa-operands.c (cleanup_v_may_defs): New. Clear the
3164 in_list bits for the v_may_def elements and empty the operand
3166 (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
3167 VUSES by checking the in_v_may_def_list bit.
3168 (append_v_may_def, append_vuse): Use the in_list bit rather than
3169 scanning the array for duplicates.
3171 2004-11-25 Ulrich Weigand <uweigand@de.ibm.com>
3173 * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
3174 displacements are not short.
3176 2004-11-25 Ulrich Weigand <uweigand@de.ibm.com>
3178 * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
3181 2004-11-25 Mark Mitchell <mark@codesourcery.com>
3184 * c-common.h (lvalue_use): Move here from c-ctypeck.c.
3185 (lvalue_or_else): Declare.
3186 * c-common.c (lvalue_or_else): Move here from c-typeck.c.
3187 * c-typeck.c (lvalue_use): Remove.
3188 (lvalue_or_else): Remove.
3191 * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
3192 unemitted variables with static storage duration.
3194 2004-11-25 Gerald Pfeifer <gerald@pfeifer.com>
3196 * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
3199 2004-11-25 Nathan Sidwell <nathan@codesourcery.com>
3201 * config/rs6000/altivec.md (VIshort): New mode macro.
3202 (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
3204 (altivec_vaddu<VI_char>s): ... this.
3205 (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
3207 (altivec_vadds<VI_char>s): ... this.
3208 (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
3210 (altivec_vsubu<VI_char>s): ... this.
3211 (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
3213 (altivec_vsubs<VI_char>s): ... this.
3214 (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
3216 (altivec_vavgu<VI_char>): ... this.
3217 (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
3219 (altivec_vavgs<VI_char>): ... this.
3220 (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
3221 (altivec_vmsumu<VI_char>m): ... this.
3222 (altivec_vmsummbm, altivec_vmsummhm): Replace
3224 (altivec_vmsumm<VI_char>m): ... this.
3225 (altivec_vandc): Remove.
3226 (*andc<mode>3): Renamed to ...
3227 (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
3228 (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
3230 (altivec_vrl<VI_char>): ... this.
3231 (altivec_vslb, altivec_vslh, altivec_vslw): Replace
3233 (altivec_vsl<VI_char>): ... this.
3234 (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
3236 (altivec_vsr<VI_char>): ... this.
3237 (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
3239 (altivec_vsra<VI_char>): ... this.
3240 (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
3241 (altivec_vsum4s<VI_char>s): ... this.
3242 (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
3244 (altivec_vperm_<mode>): ... this.
3245 (altivec_vsel_4sf): Rename to ...
3246 (altivec_vsel_v4sf): ... here.
3247 (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
3249 (altivec_vsel_<mode>): ... this.
3250 (altivec_vsldoi_4si, altivec_vsldoi_8hi,
3251 altivec_vsldoi_16qi): Rename to ...
3252 (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
3253 altivec_vsldoi_v16qi): ... here.
3254 (altivec_vsldoi_4sf): Rename to ...
3255 (altivec_vsldoi_v4sf): ... here.
3256 (altivec_predicate_v4si, altivec_predicate_v8hi,
3257 altivec_predicate_v16qi): Replace with ...
3258 (altivec_predicate_<mode>): ... this.
3259 (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
3261 (altivec_lve<VI_char>x): ... this.
3262 (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
3264 (altivec_stve<VI_char>x): ... this.
3265 (absv16qi2, absv8hi2, absv4si2): Replace
3267 (abs<mode>2): ... this.
3268 (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
3270 (altivec_abss_<mode>): ... this.
3271 (vec_realign_load_v16qi, vec_realign_load_v8hi,
3272 vec_realign_load_v4si): Replace with ...
3273 (vec_realign_load_<mode>): ... this.
3274 * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
3276 (rs6000_expand_ternop_builtin): Likewise.
3278 2004-11-25 Andrew Haley <aph@redhat.com>
3280 * gcc.c (process_command): Don't supply -v to linker.
3282 2004-11-25 Joseph S. Myers <joseph@codesourcery.com>
3284 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
3285 instead of `%s' in diagnostic.
3287 2004-11-25 Nathan Sidwell <nathan@codesourcery.com>
3289 * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
3290 (FREE_REG_SET): Adjust.
3291 * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
3292 * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
3293 (BITMAP_ALLOC): ... here.
3294 (BITMAP_OBSTACK_FREE): Rename to ...
3295 (BITMAP_FREE): Don't check for NULL bitmap here.
3296 * tree-ssa-pre.c (value_insert_into_set_bitmap,
3297 bitmap_set_new): Use new names.
3299 * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
3300 * df.c (df_free): Likewise.
3301 * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
3302 * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
3304 * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
3305 (ALLOC_REG_SET): ... here.
3306 (FREE_REG_SET): Adjust.
3307 (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
3308 * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
3309 * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
3310 * cfgrtl.c (rtl_split_block, rtl_split_edge,
3311 safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
3312 * flow.c (update_life_info, calculate_global_regs_live,
3313 allocate_bb_life_data, init_propagate_block_info): Adjust.
3314 * global.c (build_insn_chain): Adjust.
3315 * ifcvt.c (dead_or_predicable): Adjust.
3316 * loop-iv.c (simplify_using_initial_values): Adjust.
3317 * recog.c (peephole2_optimize): Adjust.
3318 * sched-deps.c (init_deps_global): Adjust.
3320 2004-11-25 Ralf Corsepius <ralf.corsepius@rtems.org>
3322 * config.gcc (avr-*-rtems*): Fix typo.
3324 2004-11-25 J"orn Rennecke <joern.rennecke@st.com>
3326 * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
3328 2004-11-24 Jeff Law <law@redhat.com>
3330 * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
3331 the number of queries to random elements in the ai->written_vars
3334 2004-11-24 Roger Sayle <roger@eyesopen.com>
3336 * config/i386/i386.c (override_options): Disable x87 fancy math
3337 intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
3339 2004-11-24 Roger Sayle <roger@eyesopen.com>
3341 * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
3342 system header conflict on AIX 5.2.
3343 * configure: Regenerate.
3345 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
3347 * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
3348 instead of calling phi_arg_from_edge.
3350 * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
3353 2004-11-24 Ben Elliston <bje@au.ibm.com>
3355 * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
3356 * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
3357 * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
3360 2004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3362 * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
3364 * tree-inline.c (copy_body_r): Explicitly copy a constant if the
3365 type will be remapped.
3367 2004-11-24 Steven Bosscher <stevenb@suse.de>
3369 * c-opts.c (c_common_post_options): Don't clear
3370 flag_inline_functions.
3371 * dojump.c (clear_pending_stack_adjust): Remove check on
3372 flag_inline_functions, it's always true.
3373 * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
3374 that can never trigger.
3375 * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
3376 flag_inline_trees, now that flag_inline_functions is never
3378 * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
3379 flag_inline_functions at optimization levels greater than
3380 or equal to 3. This is already done by default.
3382 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
3384 * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
3385 instead to find the PHI argument. Do not take I as an
3387 (eliminate_phi): Adjust the call to eliminate_build. Do not
3388 take I as an argument.
3389 (rewrite_trees): Adjust the call to eliminate_phi.
3391 2004-11-24 Richard Sandiford <rsandifo@redhat.com>
3393 * optabs.h (force_expand_binop): Declare.
3394 * optabs.c (force_expand_binop): Export.
3395 * stmt.c (shift_return_value): Delete.
3396 (expand_return): Don't call it.
3397 * expr.h (shift_return_value): Declare.
3398 * calls.c (shift_returned_value): Delete in favor of...
3399 (shift_return_value): ...this new function. Leave the caller to check
3400 for non-BLKmode values passed in the msb of a register. Take said mode
3401 and a shift direction as argument. Operate on the hard function value,
3403 (expand_call): Adjust accordingly.
3404 * function.c (expand_function_start): If a non-BLKmode return value
3405 is padded at the last significant end of the return register, use the
3406 return value's natural mode for the DECL_RESULT, not the mode of the
3408 (expand_function_end): Shift the same sort of return values left by
3409 the appropriate amount.
3411 2004-11-24 Matt Austern <austern@apple.com>
3413 * recog.c (recog_memoized_1): Remove.
3414 * recog.h (recog_memoized_1): Remove declaration.
3415 (recog_memoized): Change from macro to inline function.
3417 2004-11-24 Devang Patel <dpatel@apple.com>
3420 * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
3421 * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
3423 2004-11-24 Devang Patel <dpatel@apple.com>
3425 * gcc.c (process_command): Supply -v to linker.
3427 2004-11-24 David Edelsohn <edelsohn@gnu.org>
3428 Paolo Bonzini <bonzini@gnu.org>
3430 * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
3431 vector modes without ALTIVEC_ABI. Use GCC vector instead of
3433 (rs6000_pass_by_reference): Split conditional into pieces. Use
3434 GCC vector instead of synthetic vector.
3436 2004-11-24 Aldy Hernandez <aldyh@redhat.com>
3438 * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
3439 thread-local variable is invariant.
3441 2004-11-24 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3443 * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE):
3444 Handle TYPE_REF_CAN_ALIAS_ALL.
3445 (print_declaration): Print array dimensions like dump_generic_node.
3447 * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and
3448 ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them.
3450 2004-11-24 Nathan Sidwell <nathan@codesourcery.com>
3452 * bitmap.c (INLINE): Do not define.
3453 (bitmap_elem_to_freelist, bitmap_element_free,
3454 bitmap_element_allocate, bitmap_clear, bitmap_element_zerop,
3455 bitmap_element_link, bitmap_find_bit): Use inline keyword/macro.
3457 2004-11-24 Kazu Hirata <kazu@cs.umass.edu>
3459 * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to
3460 find the index of a PHI argument. Use e->dest_idx instead.
3461 Replace hint with index.
3463 * tree-ssa-dom.c (cprop_into_successor_phis): Replace index
3466 2004-11-24 Diego Novillo <dnovillo@redhat.com>
3468 * tree-ssa-alias.c (merge_pointed_to_info): Fix comment
3469 regarding PT_MALLOC.
3471 2004-11-24 Joseph Myers <joseph@codesourcery.com>
3473 * config/i386/i386.c (optimization_options): Use
3474 SUBTARGET_OPTIMIZATION_OPTIONS.
3475 * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define.
3476 (TARGET_SUBTARGET_DEFAULT): Don't include
3477 MASK_OMIT_LEAF_FRAME_POINTER.
3479 2004-11-24 Mark Mitchell <mark@codesourcery.com>
3481 * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE):
3484 2004-11-24 Joseph Myers <joseph@codesourcery.com>
3486 * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES):
3487 Use amd64 instead of 64.
3489 2004-11-24 Mark Mitchell <mark@codesourcery.com>
3490 Joseph Myers <joseph@codesourcery.com>
3492 * crtstuff.c (IN_LIBGCC2): Define it.
3493 (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY
3494 instead of HAVE_LD_RO_RW_SECTION_MIXING.
3495 * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro.
3496 * dwarf2out.c (named_section_eh_frame_section): Check
3497 EH_TABLES_CAN_BE_READ_ONLY.
3498 * except.c (default_exception_section): Likewise.
3499 * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define.
3500 * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document.