OSDN Git Service

* emit-rtl.c (add_insn_before): Fix comment typo.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-01-01  Steven Bosscher  <stevenb@suse.de>
2
3         PR middle-end/17544
4         * c-decl.c (finish_function): If compiling C99, annotate the
5         compiler generated return with the current file name and line 0.
6         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
7         the source line is greater than 0.
8         (remove_bb): Likewise.
9
10 2004-12-31  Richard Henderson  <rth@redhat.com>
11
12         PR tree-opt/19042
13         * tree-sra.c (decide_block_copy): Force use_block_copy false
14         for complex values.
15
16 2004-12-31  Richard Henderson  <rth@redhat.com>
17
18         PR middle-end/17799
19         * function.c (use_register_for_decl): Check DECL_IGNORED_P instead
20         of DECL_ARTIFICIAL.
21         (assign_parms_augmented_arg_list): Set DECL_IGNORED_P.
22         * c-decl.c (build_compound_literal): Likewise.
23         * dwarf2asm.c (dw2_force_const_mem): Likewise.
24         * gimplify.c (create_artificial_label): Likewise.
25         * tree-inline.c (expand_call_inline): Likewise.
26         * var-tracking.c (vt_initialize): Likewise.
27         * tree-outof-ssa.c (create_temp): Copy DECL_IGNORED_P.
28
29 2004-12-31  Andrew Pinski  <pinskia@physics.uc.edu>
30
31         PR target/19211
32         * config/darwin.c (machopic_legitimize_pic_address): If the orig
33         is subregister return orig.
34
35 2004-12-31  Zdenek Dvorak  <dvorakz@suse.cz>
36
37         * tree-scalar-evolution.c (instantiate_parameters_1): Copy the
38         expression only if needed.
39
40 2004-12-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
41
42         * pa-hpux.h (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Define.
43
44 2004-12-31  Hans-Peter Nilsson  <hp@bitrange.com>
45
46         PR target/18701
47         * combine.c (combine_simplify_rtx): Do not allow paradoxical
48         subregs of MEM.
49
50         PR target/18701
51         * combine.c (gen_lowpart_for_combine): When stripping SUBREG of
52         MEM, adjust imode and isize.
53
54 2004-12-30  Richard Henderson  <rth@redhat.com>
55
56         * config/ia64/ia64.c (hfa_element_mode): Return false for 
57         zero-sized top-level aggregates.
58
59 2004-12-30  Jan Hubicka  <jh@suse.cz>
60
61         PR target/18019
62         * i386.md (movqi_1): Fix -Os instruction choice.
63
64 2004-12-30  Steven Bosscher  <stevenb@suse.de>
65
66         * global.c (regclass_intersect): Remove.
67         (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead.
68
69 2004-12-30  Richard Henderson  <rth@redhat.com>
70
71         * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for 
72         aggregates with XF/XCmode.
73
74 2004-12-29  Richard Henderson  <rth@redhat.com>
75
76         * target.h (targetm.calls.arg_partial_bytes): New.
77         * target-def.h (TARGET_ARG_PARTIAL_BYTES): New.
78         * calls.c (store_unaligned_arguments_into_pseudos): Update for
79         partial in bytes.
80         (load_register_parameters): Likewise.
81         (store_one_arg): Likewise.
82         (initialize_argument_information): Use targetm.calls.arg_partial_bytes.
83         (emit_library_call_value_1): Likewise.
84         * expr.c (block_move_libcall_safe_for_call_parm): Likewise.
85         (emit_push_insn): Update for partial in bytes.
86         * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
87         * function.c (assign_parm_find_entry_rtl): Use
88         targetm.calls.arg_partial_bytes.  Update for result in bytes.
89         (locate_and_pad_parm): Update for partial in bytes.
90         * system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison.
91         * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New.
92         * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare.
93         * doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from
94         FUNCTION_ARG_PARTIAL_NREGS.
95
96         * config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h,
97         config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h,
98         config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h, 
99         config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
100
101         * config/alpha/alpha.c (alpha_arg_partial_bytes): New.
102         (TARGET_ARG_PARTIAL_BYTES): New.
103         * config/alpha/alpha.h, config/alpha/unicosmk.h,
104         config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
105
106         * config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
107         * config/arm/arm.c (arm_arg_partial_bytes): ... here.
108         (TARGET_ARG_PARTIAL_BYTES): New.
109
110         * config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
111         * config/cris/cris.c (cris_arg_partial_bytes): ... here.
112         (TARGET_ARG_PARTIAL_BYTES): New.
113
114         * config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
115         * config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from
116         fr30_function_arg_partial_nregs.  Adjust to return bytes.
117         (TARGET_ARG_PARTIAL_BYTES): New.
118         * config/fr30/fr30-protos.h: Update.
119
120         * config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
121         * config/frv/frv.c (frv_arg_partial_bytes): Rename from 
122         frv_function_arg_partial_nregs.  Adjust to return bytes.
123         (TARGET_ARG_PARTIAL_BYTES): New.
124         * config/frv/frv-protos.h: Update.
125
126         * config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
127         * config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from
128         ia64_function_arg_partial_nregs.  Adjust to return bytes.
129         (TARGET_ARG_PARTIAL_BYTES): New.
130         * config/ia64/ia64-protos.h: Update.
131
132         * config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
133         * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from
134         function_arg_partial_nregs.  Adjust to return bytes.
135         (TARGET_ARG_PARTIAL_BYTES): New.
136         * config/iq2000/iq2000-protos.h: Update.
137
138         * config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
139         * config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from
140         function_arg_partial_nregs.  Adjust to return bytes.
141         (TARGET_ARG_PARTIAL_BYTES): New.
142         * config/m32r/m32r-protos.h: Update.
143
144         * config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
145         * config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from
146         mcore_function_arg_partial_nregs.  Adjust to return bytes.
147         (TARGET_ARG_PARTIAL_BYTES): New.
148         * config/mcore/mcore-protos.h: Update.
149
150         * config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
151         * config/mips/mips.c (mips_arg_partial_bytes): Rename from
152         function_arg_partial_nregs.  Adjust to return bytes.
153         (TARGET_ARG_PARTIAL_BYTES): New.
154         * config/mips/mips-protos.h: Update.
155
156         * config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
157         * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from     
158         function_arg_partial_nregs.  Adjust to return bytes.
159         (TARGET_ARG_PARTIAL_BYTES): New.
160         * config/mn10300/mn10300-protos.h: Update.
161
162         * config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
163         * config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here.
164         (TARGET_ARG_PARTIAL_BYTES): New.
165
166         * config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
167         * config/pa/pa.c (pa_arg_partial_bytes): Rename from 
168         function_arg_partial_nregs.  Handle 32-bit.  Adjust to return bytes.
169         (TARGET_ARG_PARTIAL_BYTES): New.
170         * config/pa/pa-protos.h: Update.
171
172         * config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
173         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from 
174         function_arg_partial_nregs.  Adjust to return bytes.
175         (TARGET_ARG_PARTIAL_BYTES): New.
176         * config/rs6000/rs6000-protos.h: Update.
177
178         * config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ...
179         * config/sh/sh.c (sh_arg_partial_bytes): ... here.
180         (TARGET_ARG_PARTIAL_BYTES): New.
181
182         * config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
183         * config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from
184         function_arg_partial_nregs.  Adjust to return bytes.
185         (TARGET_ARG_PARTIAL_BYTES): New.
186         * config/sparc/sparc-protos.h: Update.
187
188         * config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove.
189         * config/v850/v850.c (v850_arg_partial_bytes): Rename from
190         function_arg_partial_nregs.  Adjust to return bytes.
191         (TARGET_ARG_PARTIAL_BYTES): New.
192         * config/v850/v850-protos.h: Update.
193
194 2004-12-30  Hans-Peter Nilsson  <hp@bitrange.com>
195
196         * config/mmix/mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Define.
197         * config/mmix/mmix.c (mmix_asm_output_internal_label): New
198         function.
199         * config/mmix/mmix-protos.h (mmix_asm_output_internal_label):
200         Prototype.
201
202 2003-12-29  Richard Henderson  <rth@redhat.com>
203
204         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True.
205
206 2004-12-29  Jeff Law  <law@redhat.com>
207
208         * tree-outof-ssa.c (insert_backedge_copies): New function.
209         (rewrite_out_of_ssa): Use it.
210
211 2004-12-29  Ira Rosen  <irar@il.ibm.com>
212
213         PR tree-optimization/18179
214         * tree-vectorizer.c (vect_get_base_and_offset): Call get_inner_reference
215         and vect_analyze_offset_expr.
216         (vect_create_addr_base_for_vector_ref): Build address_base by combining 
217         base and initial_offset fields of vect_stmt_info.
218         (vect_update_inits_of_dr): Update offset of data-ref instead of its
219         access-fn. Remove argument.
220         (vect_update_inits_of_drs): Call vect_update_inits_of_dr with new
221         arguments.
222         (vect_compute_data_ref_alignment): Check misalignment info in 
223         vect_stmt_info. Remove argument.
224         (vect_compute_data_refs_alignment): Call vect_compute_data_ref_alignment
225         with correct argument.
226         (vect_analyze_data_ref_access): Check access info in vect_stmt_info.
227         (vect_analyze_pointer_ref_access): Update step and initial_offset fields
228         of vect_stmt_info.
229         (vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the 
230         fields of stmt_vec_info.
231         (vect_analyze_data_refs): Find vectype and pass it to 
232         vect_get_memtag_and_dr.
233         (vect_get_first_index): Remove.
234         (vect_compute_array_base_alignment): Remove.
235         (vect_compute_array_ref_alignment): Remove
236         (vect_create_data_ref_ptr): Use TYPE_SIZE_UNIT instead GET_MODE_SIZE.
237         (vect_gen_niters_for_prolog_loop): Use TREE_CONSTANT instead 
238         host_integerp.
239         (vectorizable_load): Use size arithmetics.
240
241 2004-12-29  Ira Rosen  <irar@il.ibm.com>
242
243         PR tree-optimization/18179
244         * tree-vectorizer.c (vect_get_base_and_offset): Rename (previous name
245         vect_get_base_and_bit_offset).
246         (vect_get_memtag_and_dr): Rename (previous name vect_get_symbl_and_dr).
247
248 2004-12-29  Ira Rosen  <irar@il.ibm.com>
249
250         PR tree-optimization/18179
251         * tree-vectorizer.h (struct _stmt_vec_info): Add new fields:
252         initial_offset, step, misalignment and base_aligned_p and macros
253         to access them.
254         * tree-vectorizer.c (vect_analyze_offset_expr): New function.
255         (new_stmt_vec_info): Initialize the new fields of stmt_vec_info.
256
257         (vect_create_data_ref_ptr): Fix printings.
258
259 2004-12-29  Ira Rosen  <irar@il.ibm.com>
260
261         PR tree-optimization/18179
262         * tree-vectorizer.c (vect_get_symbl_and_dr): Reorganize. Add memtag 
263         retrieval.
264         (vect_analyze_data_refs): Remove memtag retrieval.
265
266 2004-12-28  Richard Henderson  <rth@redhat.com>
267
268         PR inline-asm/15740
269         * gimplify.c (gimplify_asm_expr): Move resolve asm names ...
270         * c-typeck.c (build_asm_expr): ... here.  Validate input
271         constraints.  Mark memory inputs addressable.
272
273 2004-12-28  Hans-Peter Nilsson  <hp@bitrange.com>
274
275         PR target/18321
276         * config/mmix/mmix.c (mmix_expand_epilogue): Change type of
277         variable offset to HOST_WIDE_INT.  Remove obsolete comment.  Fix
278         spacing.
279
280 2004-12-28  Andrew Pinski  <pinskia@physics.uc.edu>
281
282         * fold-const.c (fold_build_cleanup_point_expr): For a RETURN_EXPR,
283         we only need a cleanup point expression when the expression on the
284         left hand side of the MODIFIY_EXPR inside the return has side
285         effects.
286
287 2004-12-28  Dorit Naishlos  <dorit@il.ibm.com>
288
289         * tree-vectorizer.c (vect_mark_relevant) First argument changed from
290         varray_type to varray_type*.
291         (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist
292         when calling vect_mark_relevant.
293
294 2004-12-28  Alan Modra  <amodra@bigpond.net.au>
295
296         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
297         generate non-offsettable DImode lo_sum addresses.
298
299 2004-12-28  Zdenek Dvorak  <dvorakz@suse.cz>
300
301         PR rtl-optimization/19103
302         * loop-iv.c (iv_number_of_iterations): Fix typo.
303
304 2004-12-28  Andreas Jaeger  <aj@suse.de>
305
306         * genrecog.c (compute_predicate_codes): Avoid warning.
307
308 2004-12-27 John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
309
310         * vax.c (vax_address_cost, vax_rtx_cost): Correct casts.
311         (vax_rtx_cost): Handle small offsets for both PLUS and MINUS.
312
313 2004-12-27  Jeff Law  <law@redhat.com>
314
315         * tree-ssa-dom.c (thread_across_edge): Remove broken code to
316         avoid threading into a loop.
317
318 2004-12-27  Richard Henderson  <rth@redhat.com>
319
320         PR target/17406
321         * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR
322         note for allocate_stack_worker insn.
323
324 2004-12-27  Jason Merrill  <jason@redhat.com>
325
326         * doc/tm.texi (TARGET_RELAXED_ORDERING): Document.
327         * target.h (struct gcc_target): Add relaxed_ordering field.
328         * target-def.h (TARGET_RELAXED_ORDERING): Define default.
329         (TARGET_INITIALIZER): Add it.
330         * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define.
331         * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define.
332         * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define.
333         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define.
334
335 2004-12-27  Roger Sayle  <roger@eyesopen.com>
336
337         PR driver/16118
338         * doc/invoke.texi: Document the interaction between -save-temps
339         and -x.
340
341 2004-12-27  David Edelsohn  <edelsohn@gnu.org>
342
343         * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs):
344         Do not break apart constant pool addresses.
345         (rs6000_emit_move): Only force source into REG if target is MEM.
346
347 2004-12-27  Mark Mitchell  <mark@codesourcery.com>
348
349         PR c++/19148
350         * gimplify.c (gimplify_cond_expr): Add post_p parameter.
351         (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr.
352         (gimplify_expr): Likewise.
353
354 2004-12-27  Richard Henderson  <rth@redhat.com>
355
356         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW.
357
358 2004-12-26  Richard Henderson  <rth@redhat.com>
359
360         * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result
361         of type_natural_mode to examine_argument.
362
363         * config/i386/i386.md (mov<MMXMODEI>_internal_rex64): New.
364         (movv2sf_internal_rex64): New.
365         (mov<MMXMODEI>_internal): Use no register preferences at all.
366         (movv2sf_internal): Likewise.
367
368 2004-12-26  Richard Henderson  <rth@redhat.com>
369
370         * simplify-rtx.c (simplify_relational_operation_1): Don't simplify
371         plus/minus across EQ for floating-point.
372
373 2004-12-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
374
375         PR target/17643
376         * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when
377         generating code for the portable runtime.
378
379 2004-12-25  Richard Henderson  <rth@redhat.com>
380
381         * expr.c (clear_storage): Validate CONST0_RTX extant.  Special case
382         complex modes.
383
384 2004-12-25  Zdenek Dvorak  <dvorakz@suse.cz>
385
386         PR rtl-optimization/19078
387         * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic,
388         determine_use_iv_cost_outer): Fix computing of cost for the original
389         bivs.
390         (dump_use): Handle case related_cands == NULL.
391
392 2004-12-25  Marek Michalkiewicz  <marekm@amelek.gda.pl>
393
394         PR target/19059
395         * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4
396         to avr2.
397         * config/avr/avr.h (LINK_SPEC): Ditto.
398         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
399
400 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
401
402         PR target/19137
403         * config/rs6000/rs6000.md (movti_power, movti_string): Relax
404         operand[1] predicate to input_operand, and add r<-n alternative.
405         Move TImode const_double_operand splitter to where it belongs.
406
407 2004-12-25  Alan Modra  <amodra@bigpond.net.au>
408
409         PR target/19147
410         * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete.
411
412 2004-12-24  Uros Bizjak  <uros@kss-loka.si>
413
414         * config/i386/i386.md (*fix_trunc{d,s,h}i_1):
415         Rename to *fix_trunc{d,s,h}i_i387.
416         (fix_trunc{d,s}fdi2): Reorder tests.
417
418 2004-12-24  Daniel Berlin  <dberlin@dberlin.org>
419
420         Fix PR debug/14638
421
422         * tree.h (DECL_DEBUG_ALIAS_OF): New macro.
423         * var-tracking.c (track_expr_p): Don't disqualify tracking of variables
424         that are aliases of variables we want to track, unless the
425         original variable is also ignored for debugging purposes.
426         (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic.
427         * tree-outof-ssa.c (create_temp): Note who we are a debug alias of.
428         * dwarf2out.c (dwarf2out_var_location): Add us to the location of
429         the decl we are an alias of.
430
431 2004-12-24  Alan Modra  <amodra@bigpond.net.au>
432
433         PR target/19142
434         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow
435         DFmode for 32-bit again.
436
437 2004-12-23  Roger Sayle  <roger@eyesopen.com>
438
439         * reload.c (regno_clobbered_p): Add a gcc_assert that regno
440         refers to a hard register.
441
442 2004-12-23  Mark Mitchell  <mark@codesourcery.com>
443
444         * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p.
445
446 2004-12-23  DJ Delorie  <dj@redhat.com>
447
448         * genrecog.c (did_you_mean_codes): New.
449         (compute_predicate_codes): Fail unmatched codes.
450
451 2004-12-23  Eric Christopher  <echristo@redhat.com>
452
453         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add
454         assert for machine=mips for !TARGET_IRIX.
455         * config/mips/linux.h: Remove machine=mips assert.
456         * config/mips/netbsd.h: Ditto.
457         * config/mips/openbsd.h: Ditto.
458
459 2004-12-23  Dale Johannesen  <dalej@apple.com>
460
461         * tree.c (iterative_hash_expr):  Canonicalize builtins.
462
463 2004-12-23  Alexandre Oliva  <aoliva@redhat.com>
464
465         PR target/16819
466         * calls.c (load_register_parameters): Don't call use_regs when
467         nregs is zero.
468
469 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
470
471         PR middle-end/17746
472         * expr.c (get_inner_reference): Add 'keep_aligning' parameter.
473         Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT
474         platforms only if keep_aligning is true.
475         (expand_assignment): Adjust call to get_inner_reference.
476         (expand_expr_addr_expr_1): Likewise.
477         (expand_expr_real_1): Likewise.
478         * dojump.c (do_jump): Likewise.
479         * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
480         * fold-const.c (optimize_bit_field_compare): Likewise.
481         (decode_field_reference): Likewise.
482         (split_address_to_core_and_offset): Likewise.
483         * tree-ssa-loop-ivopts.c (split_address_cost): Likewise.
484         * tree.h (get_inner_reference): Adjust prototype.
485
486 2004-12-23  Richard Henderson  <rth@redhat.com>
487
488         * config/i386/i386.c (override_options): Revert last change
489         wrt fancy 387 math.
490
491 2004-12-23  Richard Henderson  <rth@redhat.com>
492
493         * config/alpha/alpha.md (one_cmpl<mode>2, and<mode>3, andnot<mode>3,
494         ior<mode>3, iornot<mode>3, xor<mode>3, xornot<mode>3): New macroized
495         vector operate patterns.
496
497 2004-12-23  Richard Henderson  <rth@redhat.com>
498
499         * config/i386/i386.c (ix86_expand_vector_move): Tidy.
500         (ix86_expand_vector_move_misalign): New.
501         (ix86_misaligned_mem_ok): Remove.
502         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
503         * config/i386/i386-protos.h: Update.
504         * config/i386/i386.md (SSEMODEI): Rename from SSEINT16.
505         (MMXMODEI): Rename from MMXINT8.
506         (SSEMODE, MMXMODE, movmisalign<mode>): New.
507
508 2004-12-23  Mark Mitchell  <mark@codesourcery.com>
509
510         PR c++/16405
511         * gimplify.c (gimplify_modify_expr_rhs): Handle
512         INDIRECT_REF/ADDR_EXPR combinations.
513
514 2004-12-22  Richard Henderson  <rth@redhat.com>
515
516         * config/alpha/alpha.c (alpha_expand_mov): Split out ...
517         (alpha_expand_movmisalign): ... misaligned vector support.
518         (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
519         * config/alpha/alpha-protos.h: Update.
520         * config/alpha/alpha.md (VEC): New macro.
521         (movv8qi, movv4hi, movv2si): Compress with VEC.
522         (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise.
523         (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise.
524         (movmisalign<mode>): New.
525
526 2004-12-22  Richard Henderson  <rth@redhat.com>
527
528         * optabs.h (OTI_movmisalign, movmisalign_optab): New.
529         * optabs.c (init_optabs): Create it.
530         * genopinit.c (optabs): Initialize it.
531         * expr.c (expand_expr_real_1) <MISALIGNED_INDIRECT_REF>: Use it.
532         * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise.
533         * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
534         * target.h (vectorize.misaligned_mem_ok): Remove.
535         * targhooks.c (default_vect_misaligned_mem_ok): Remove.
536         * doc/md.texi (movmisalign): New.
537         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove.
538
539 2004-12-22  Richard Henderson  <rth@redhat.com>
540
541         * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg
542         to __v2si.
543         (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise.
544         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or
545         const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd,
546         __builtin_ia32_storehpd, __builtin_ia32_storelpd.
547         (ix86_expand_builtin): Update to match.
548         (ix86_expand_vector_init): Use sse2_loadlpd.
549         * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd.
550         (vec_extractv2df): Use sse2_storelpd, sse2_storehpd.
551         (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New.
552         (sse2_movhpd): Remove.
553
554 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
555
556         PR target/18751
557         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
558         false for anything larger than 32 bits in 32-bit code.
559
560 2004-12-22  Richard Henderson  <rth@redhat.com>
561
562         * config/i386/i386.md (btsq, btrq, btcq): Fix modes.
563         (bt peepholes): Likewise.
564
565         * varasm.c (force_const_mem): Call set_mem_align.
566
567 2004-12-22  Richard Henderson  <rth@redhat.com>
568
569         * config/i386/predicates.md (sse_comparison_operator): Fix
570         typo in ieee test.
571         (arith_or_logical_operator): Downcase codes.
572
573 2004-12-23  Kaz Kojima  <kkojima@gcc.gnu.org>
574
575         PR target/18511
576         * reload1.c (emit_output_reload_insns): Check if OLD is a hard
577         register before calling regno_clobbered_p.
578         * reload.c: Update comment for regno_clobbered_p.
579
580 2004-12-22  Richard Henderson  <rth@redhat.com>
581
582         * config/i386/i386.c (override_options): Respect user disable of
583         fancy 387 math, sse, mmx.
584         (construct_container): Generate error if we need an sse regster
585         and sse has been disabled.
586         * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables
587         later sse generations.  Disabling mmx also disables 3dnow.
588
589 2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
590
591         * tree-inline.c (struct inline_data): Remove inlined_fns.
592         (expand_call_inline): Remove dead code setting
593         inlined_fns.
594         (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS.
595         * tree.h (struct tree_decl): Remove inlined_fns.
596
597 2004-12-22  Roger Sayle  <roger@eyesopen.com>
598
599         * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code.
600
601 2004-12-23  Alan Modra  <amodra@bigpond.net.au>
602
603         PR target/18896
604         * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P
605         for real and imaginary parts if the parm is addressable.
606         (assign_parms_unsplit_complex): If parm addressable, save real
607         and imaginary parts to a stack temp.  Pass assign_parm_data_all.
608         (assign_parms): Adjust assign_parms_unsplit_complex call.
609
610 2004-12-22  Daniel Berlin  <dberlin@dberlin.org>
611
612         * tree.h (DECL_PTA_ALIASVAR): Dead.
613         (struct tree_decl): Remove alias_var field.
614
615 2004-12-22  Nathan Sidwell  <nathan@codesourcery.com>
616
617         * system.h (IN_RANGE): Restore HOST_WIDE_INT cast.
618         * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE.
619
620 2004-12-22  Richard Henderson  <rth@redhat.com>
621             Uros Bizjak  <uros@kss-loka.si>
622
623         * config/i386/i386.md (truncdfsf2): Don't create stack temp when
624         using sse math only.  Use truncdfsf2_with_temp.
625         (truncdfsf2_with_temp): New.
626         (truncdfsf_fast_i387): Rename from truncdfsf2_noop.  Add memory
627         output alternative.
628         (truncdfsf_mixed): Rename from truncdfsf2_1_sse.  Compress duplicate
629         alternatives.
630         (truncdfsf_fast_sse): Rename from truncdfsf2_2.  Remove f alternative.
631         (truncdfsf2_3, truncdfsf2_sse_only): Remove.
632         (truncdfsf_i387): Rename from truncdfsf2_1.  Compress duplicates.
633         (truncdfsf_fast_mixed): New.
634         (truncdfsf splitters): Remove all except the 387 load/store split.
635         (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with
636         respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and
637         TARGET_MIX_SSE_I387.
638         (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed.
639         (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop.
640         (*truncxf{s,d}f2_i387): New patterns.
641         (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1.
642         (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2,
643         rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2,
644         nearbyint{s,d}f2): Use renamed patterns.
645
646 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
647
648         * tree.h (TYPE_SIZES_GIMPLIFIED): New.
649         * function.c (gimplify_parm_type): Don't gimplify type if already done.
650         * gimplify.c (gimplify_decl_expr): Likewise.
651         (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED.  Examine nested
652         array types.
653
654 2004-12-22  Richard Henderson  <rth@redhat.com>
655
656         * gimplify.c (eval_save_expr): Remove.
657         (gimplify_one_sizepos): Unshare expr before gimplifying.
658         * stor-layout.c (variable_size): Revert 2004-12-19 change.
659         (layout_decl): Revert 2004-12-18 change.
660         (layout_type): Revert 2004-12-21 change.
661
662 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
663
664         * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types.
665
666 2004-12-22  Mark Mitchell  <mark@codesourcery.com>
667
668         * Makefile.in (install-common): Remove special-case code for when
669         SPECS is defined.
670
671 2004-12-22  Jan Beulich  <jbeulich@novell.com>
672
673         * config.gcc: Add dbxelf.h to NetWare's tm_file.
674         * config/i386/netware-crt0.c: Prototype __init_environment and
675         __deinit_environment prior to their definition.
676         (__init_environment): Correct invokation of constructor function.
677         * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use
678         builtin_define_std rather than builtin_define on IAPX386.
679         * config/i386/nwld.h: Disable stabs debugging info with the linker
680         this file supports.
681         * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for
682         the output. Add -posix to the options as that is the more compatible
683         mode.
684         * gthr-nks.h: Formatting.
685         (__gthread_mutex_init_function): Kill the dubious use of
686         NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes
687         were not meant to be recursive.
688         (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION,
689         __gthread_recursive_mutex_init_function,
690         __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock,
691         __gthread_recursive_mutex_unlock): New.
692
693 2004-12-22  Alexandre Oliva  <aoliva@redhat.com>
694
695         * config/mips/t-linux64: Remove code that messed with $(SPECS).
696         (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move
697         n32 to the front.
698         (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S):
699         Removed.
700         * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle
701         -mabi-fake-default.
702         (SUBTARGET_TARGET_SWITCHES): Likewise.
703
704 2004-12-21  Andrew Pinski  <pinskia@physics.uc.edu>
705
706         PR c++/18984
707         * pointer-set.c (pointer_set_contains): Add back.
708         * pointer-set.h (pointer_set_contains): Add back.
709
710 2004-12-21  Richard Henderson  <rth@redhat.com>
711
712         * gimplify.c (eval_save_expr): New.
713         (gimplify_one_sizepos): Use it.
714         * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE.
715
716 2004-12-21  Nathan Sidwell  <nathan@codesourcery.com>
717
718         * system.c (IN_RANGE): Use plain unsigned, not unsigned
719         HOST_WIDE_INT.
720         * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE,
721         VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE,
722         POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE,
723         FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE,
724         QUAL_UNION_TYPE): Reorder for better code efficiency.
725         (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise.
726         (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise.
727         * tree.h (INDIRECT_REF_P): Reorder checks for better optimization.
728         (IS_EXPR_CODE_CLASS): Use IN_RANGE.
729         (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better
730         optimization.
731
732 2004-12-21  David O'Brien  <obrien@FreeBSD.org>
733
734         * config/freebsd-spec.h:  Use KSE pthread lib for -pthread.
735
736 2004-12-21  James A. Morrison  <phython@gcc.gnu.org>
737
738         PR c/18963
739         * c-decl.c (pushdecl): Remove block trying to merge static function
740         declarations at block scope to file scope declarations.
741
742 2004-12-21  James A. Morrison  <phython@gcc.gnu.org>
743
744         PR c/18596
745         * c-parse.in (initdcl): Don't process a declaration if start_decl fails.
746         (notype_initdcl):  Don't process a declaration if start_decl fails.
747         * c-decl.c (start_decl): Fail if grokdeclarator fails.
748         (grokdeclarator): Fail if a function definition has an invalid storage
749         class.
750         * c-typeck.c (start_init): Treat error_mark_node the same as 0.
751
752 2004-12-21  Richard Henderson  <rth@redhat.com>
753
754         * config/i386/i386.c (x86_sse_split_regs): Rename from
755         x86_sse_partial_regs.
756         * config/i386/i386.h (x86_sse_split_regs): Likewise.
757         (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS.
758         * config/i386/i386.md (*): Update to match.  Remove two
759         floatsisf splitters that use it.
760
761         * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove.
762
763         * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove.
764         * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove.
765         * config/i386/i386.md (truncdfsf2_1_sse): Don't test it.
766         (truncdfsf2_2, truncdfsf2_sse_only): Likewise.
767         (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove.
768         (truncdfsf2_sse_only_nooverlap): Remove.
769
770         * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove.
771
772 2004-12-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
773
774         * expr.c (emit_group_load_1): Return the source if the move
775         is a regular move between complex values.
776
777 2004-12-20  Roger Sayle  <roger@eyesopen.com>
778
779         PR middle-end/18683
780         * config/rs6000/rs6000.c (current_file_function_operand): Only check
781         current_function_decl's DECL_RTL if it has already been set.
782
783 2004-12-20  Roger Sayle  <roger@eyesopen.com>
784
785         PR middle-end/18683
786         * function.c (pop_function_context_from): Don't reset reg_renumber.
787
788 2004-12-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
789
790         PR middle-end/18776
791         * expr.c (write_complex_part): Use a subreg if the original object
792         is a hard reg that spans an even number of regs or a MEM.
793         (read_complex_part): Likewise.
794
795 2004-12-20  Mark Mitchell  <mark@codesourcery.com>
796
797         * Makefile.in (install-common): Do not install the specs file
798         unless SPECS is defined.
799
800 2004-12-20  Zdenek Dvorak  <dvorakz@suse.cz>
801
802         PR rtl-optimization/18942
803         * simplify-rtx.c (simplify_relational_operation_1): Simplify
804         x + cst1 == cst2 to x == cst2 - cst1.  Made static.
805
806 2004-12-20  Matt Austern  <austern@apple.com>
807
808         PR c++/19044
809         * c-common.c (set_builtin_user_assembler_name): New.
810         * c-common.h (set_builtin_user_assembler_name): Declare.
811         * c-decl.c (finish_decl): Use set_builtin_user_assembler_name
812
813 2004-12-20  Diego Novillo  <dnovillo@redhat.com>
814
815         PR tree-optimization/19080
816
817         Merge from tree-cleanup-branch
818
819         * tree-flow-inline.h (clear_call_clobbered): New function.
820         * tree-ssa-alias.c (init_alias_info): Call it.
821
822 2004-12-20  Richard Henderson  <rth@redhat.com>
823
824         * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok
825         check.
826
827 2004-12-20  Steven Bosscher  <stevenb@suse.de>
828             Andrew Pinski  <pinskia@physics.uc.edu>
829
830         PR middle-end/18191
831         PR middle-end/18965
832         PR middle-end/18999
833         * expr.c (categorize_ctor_elements_1): Count the total number
834         of elements in the constructor.
835         (categorize_ctor_elements): Return it in a new argument.
836         * tree.h (categorize_ctor_elements): Adjust prototype.
837         * gimplify.c (gimplify_init_ctor_eval_range): New.
838         (gimplify_init_ctor_eval): Gimplify RANGE_EXPR.
839         (gimplify_init_constructor): Block clear the object if the
840         constructor has fewer elements than the object type.  Only try
841         to add assignments to individual elements when we have to.
842
843 2004-12-20  Richard Henderson  <rth@redhat.com>
844
845         * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use
846         long_long_integer_type_node in building V2DI_type_node.
847
848         * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size.
849         * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise.
850
851 2004-12-20  Ben Elliston  <bje@au.ibm.com>
852
853         * doc/md.texi (Expander Definitions): Use @emph instead of @strong
854         around Note: text to workaround a limitation of the Info format.
855         * doc/cpp.texi (Invocation): Likewise.
856         * doc/cppopts.texi: Likewise.
857
858 2004-12-19  Dale Johannesen  <dalej@apple.com>
859
860         * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p):  Don't
861         reference operand 1 of ADDR_EXPRs.
862
863 2004-12-19  Mark Mitchell  <mark@codesourcery.com>
864
865         * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro.
866         * output.h (assemble_name_raw): Declare it.
867         * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it.
868         * varasm.c (assemble_name_raw): New function.
869         (assemble_name): Use it.
870         (default_internal_label): Likewise.
871         * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise.
872         * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document.
873
874 2004-12-19  Richard Henderson  <rth@redhat.com>
875
876         PR 18067
877         * stor-layout.c (variable_size): Force creation of a SAVE_EXPR.
878
879 2003-12-19  Steven Bosscher  <stevenb@suse.de>
880
881         * config/i386/i386.c (ix86_split_to_parts): Use an array with
882         four elements for decoding a CONST_DOUBLE on 64 bits targets.
883
884 2004-12-19  Bernardo Innocenti  <bernie@develer.com>
885
886         * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant
887         definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS.
888
889 2004-12-18  Daniel Berlin  <dberlin@dberlin.org>
890
891         * lambda-code.c (can_convert_to_perfect_nest): Make checking
892         match up with what perfect_nestify can actually handle.
893         (perfect_nestify): Don't return false in the phi node loop.
894
895 2004-12-18  Richard Henderson  <rth@redhat.com>
896
897         * config/i386/i386.md (SSEINT16): New.
898         (movv16qi, movv8hi, movv4si, movv2di): Compress via macros.
899         (movv16qi_internal, movv8hi_internal, movv4si_internal,
900         movv2di_internal): Compress via macros.  Add SSE zero alternative.
901         Fix pure SSE alternatives to use 'x' instead of 'Y'.
902         (MMXINT8): New.
903         (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal,
904         movv2si_internal): Compress via macros.
905         (SSEPUSH, MMXPUSH): New.
906         (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df,
907         pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros.
908
909 2004-12-18  Richard Henderson  <rth@redhat.com>
910
911         PR middle-end/16417
912         * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion
913         comment.
914         * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes
915         checks.
916         * c-tree.h (struct lang_decl): Remove pending_sizes.
917         * function.c: Include tree-gimple.h
918         (assign_parm_setup_reg): Remove callee-copies code.
919         (gimplify_parm_type, gimplify_parameters): New functions.
920         (expand_pending_sizes): Remove.
921         (expand_function_start): Don't call it.
922         * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL.
923         (gimplify_body): Add do_parms argument.  Use gimplify_parameters.
924         (gimplify_function_tree): Setup cfun.  Update gimplify_body call.
925         * tree-gimple.h (gimplify_body): Update decl.
926         * tree-inline.c (initialize_inlined_parameters): Update gimplify_body
927         call.
928         * tree.h (gimplify_parameters): Declare.
929         * Makefile.in (function.o): Depend on TREE_GIMPLE_H.
930
931 2004-12-18  Richard Henderson  <rth@redhat.com>
932
933         * c-decl.c (finish_struct): Add DECL_EXPR for variable sized
934         structures seen inside functions.
935
936 2004-12-18  Richard Henderson  <rth@redhat.com>
937
938         * c-decl.c (grokdeclarator): Save variable array size before
939         subtracting 1, rather than after.
940
941 2004-12-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
942
943         PR middle-end/15486
944         * varasm.c (asm_emit_uninitialised): Return early if
945         a custom section is requested.
946         (assemble_variable): Revert 2002-03-15 patch.
947
948 2004-12-18  Richard Henderson  <rth@redhat.com>
949
950         * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr.
951
952 2004-12-18  Zdenek Dvorak  <dvorakz@suse.cz>
953
954         PR tree-optimization/18800
955         * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter.
956         * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field.
957         (ALWAYS_PRUNE_CAND_SET_BOUND): New macro.
958         (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field.
959         (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune):
960         New functions.
961         (iv_ca_extend): Return number of candidates in the set.
962         (try_add_cand_for): Add argument to iv_ca_extend calls.
963         (try_improve_iv_set): Use iv_ca_prune.
964         * doc/invoke.texi (iv-always-prune-cand-set-bound): Document.
965
966 2004-12-18  Zdenek Dvorak  <dvorakz@suse.cz>
967
968         PR rtl-optimization/19001
969         * loop-iv.c (iv_number_of_iterations): Record assumptions for loops
970         with power of two step to 'infinite' field.
971
972 2004-12-18  Roger Sayle  <roger@eyesopen.com>
973
974         * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h.
975         (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h.
976         (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h.
977         (tree-mudflap.o): Depend upon gt-tree-mudflap.h.
978         (expr.o): Depend upon gt-expr.h.
979         (regclass.o): Depend upon gt-regclass.h.
980         (bitmap.o): Depend upon gt-bitmap.h.
981         (lists.o): Depend upon gt-lists.h.
982
983         (cfgexpand.o): Don't depend upon gt-tree-cfg.h.
984
985         (GTFILES): Remove fold-const.c.
986         (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h):
987         Remove rules.
988
989 2004-12-18  Richard Henderson  <rth@redhat.com>
990
991         * stor-layout.c (layout_decl): Unshare size expressions copied
992         from the type.
993
994         * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when
995         BOTTOM is a power of two.
996
997 2004-12-18  Richard Henderson  <rth@redhat.com>
998
999         * tree-nested.c (save_tmp_var): New.
1000         (struct walk_stmt_info): Add is_lhs.
1001         (walk_stmts) <MODIFY_EXPR>: Be more accurate with setting of
1002         val_only; set is_lhs.
1003         (convert_nonlocal_reference): Use save_tmp_var when is_lhs;
1004         clear is_lhs when appropriate.
1005         (convert_local_reference): Likewise.
1006
1007 2004-12-18  Richard Earnshaw  <rearnsha@arm.com>
1008
1009         * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA
1010         compatibility code.
1011
1012 2004-12-18  Roger Sayle  <roger@eyesopen.com>
1013
1014         * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p.
1015         Take a max_cost argument to avoid scanning large blocks, by returning
1016         a Boolean instead of a total.  Include the cost of a "fstp %st(0)"
1017         instruction required to pop dead values off of a register stack.
1018
1019 2004-12-18  Roger Sayle  <roger@eyesopen.com>
1020
1021         PR middle-end/18548
1022         * expr.c (expand_expr_real_1) <MAX_EXPR>: Ensure that target, op0
1023         and op1 are all registers (or constants) before expanding the RTL
1024         comparison sequence [to avoid reg_overlap_mentioned (target, op1)].
1025
1026 2004-12-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
1027
1028         PR rtl-optimization/16968
1029         * loop.c (scan_loop): Stop scanning the loop for movable
1030         insns as soon as an optimization barrier is encountered.
1031
1032 2004-12-17  Zack Weinberg  <zack@codesourcery.com>
1033
1034         PR 18897
1035         * toplev.c (compile_file): Call process_pending_assemble_externals
1036         just before targetm.asm_out.file_end.
1037
1038 2004-12-17  Diego Novillo  <dnovillo@redhat.com>
1039
1040         tree-optimization/18501
1041         * tree-optimize.c (init_tree_optimization_passes): Run
1042         pass_late_warn_uninitialized before the last DCE run.
1043
1044 2004-12-17  Richard Henderson  <rth@redhat.com>
1045
1046         * config/i386/i386.c (x86_64_reg_class_name): Re-indent.
1047         (classify_argument, examine_argument, construct_container,
1048         merge_classes): Remove prototypes.
1049         (type_natural_mode): Split out from ...
1050         (function_arg): ... here.
1051         (gen_reg_or_parallel): Remove alt_mode argument.  Update callers.
1052         Use orig_mode unless it's BLKmode.
1053         (construct_container): Add orig_mode argument.  Update callers.
1054         Use gen_reg_or_parallel for SSE registers.
1055         (ix86_function_value): Use type_natural_mode.
1056         (ix86_gimplify_va_arg): Likewise.
1057         (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in
1058         SSE registers; always accept all MMX, 3DNOW modes in MMX registers.
1059         * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include
1060         VALID_MMX_REG_MODE.
1061         * config/i386/i386.md (attribute mode): Add V1DF.
1062         (movsi_1): Use 'x' instead of 'Y' constraints.
1063         (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise.
1064         (movdi_1_rex64_nointerunit): Likewise.
1065         (movdf_nointeger, movdf_integer): Likewise.  Handle SSE1.
1066         (movsf_1, movsf_1_nointerunit): Line up constraint alternatives.
1067         (swapsf): Use fp_register_operand, don't disable for TARGET_SSE.
1068         (swapdf): Likewise.
1069         (swapxf): Enable only for TARGET_80387.
1070         (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX.
1071         (movtf): Remove double-check for TARGET_64BIT.
1072         (movv2df_internal): Enable for SSE1.
1073         (movv8hi_internal, movv16qi_internal): Likewise.
1074         (movv2df, movv8hi, movv16qi): Likewise.
1075         (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise.
1076         (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal,
1077         movv8qi_internal, movv4hi_internal, movv2sf_internal,
1078         movv2df_internal, movv8hi_internal, movv16qi_internal,
1079         movti_internal): Add leading '*' to name.
1080
1081 2004-12-17  Dale Johannesen  <dalej@apple.com>
1082
1083         * c-decl.c (diagnose_mismatched_decls):  Accept mismatched
1084         function types: void with previous implicit int.
1085
1086 2004-12-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1087
1088         * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to
1089         s390_sr_alias_set.
1090
1091 2004-12-17  Jan Beulich  <jbeulich@novell.com>
1092
1093         PR target/17603
1094         * config/i386/i386.c (enum x86_64_reg_class): Define
1095         X86_64_COMPLEX_X87_CLASS.
1096         (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS.
1097         (merge_classes): Handle X86_64_COMPLEX_X87_CLASS.
1098         (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS.
1099         (examine_argument): X86_64_COMPLEX_X87_CLASS requires two
1100         registers when dealing with a return value.
1101         (construct_container): Handle X86_64_COMPLEX_X87_CLASS.
1102         Eliminate impossible case of two X87/X87UP pairs (this now is
1103         being expressed by a single COMPLEX_X87).
1104         (x86_libcall_value): XCmode gets returned in st0/st1.
1105
1106 2004-12-17  Steven Bosscher  <stevenb@suse.de>
1107
1108         * tree.c (type_contains_placeholder_1): Always return false
1109         for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder.
1110
1111 2004-12-17  Uros Bizjak  <uros@kss-loka.si>
1112
1113         * config/i386/i386.md (extendsfdf2, *extendsfdf2_1,
1114         *extendsfdf2_1_sse_only): Unify enable constraint with
1115         respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH
1116         and TARGET_MIX_SSE_I387.
1117         (*extendsfdf2_i387): New insn pattern.
1118         (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix
1119         register constraint for operand 0.
1120         (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse.
1121         (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387.
1122
1123 2004-12-16  Andrew Pinski  <pinskia@physics.uc.edu>
1124
1125         PR target/19041
1126         * config/darwin.c (machopic_symbol_defined_p): Return false
1127         if the binds local and is a common symbol.
1128
1129 2004-12-16  Richard Henderson  <rth@redhat.com>
1130
1131         * config/i386/i386.md (extv, extzv, insv): Revalidate the
1132         operand with ext_register_operand.
1133
1134 2004-12-16  Kazu Hirata  <kazu@cs.umass.edu>
1135
1136         * global.c: Fix a comment typo.
1137
1138 2004-12-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1139             Roger Sayle  <roger@eyesopen.com>
1140
1141         PR tree-optimization/18707
1142         * cfgloopmanip.c (create_preheader): Move the preheader
1143         only if the latch was falling through to the header.
1144
1145 2004-12-16  Danny Smith  <dannysmith@users.sourceforge.net>
1146
1147         PR target/18997
1148         * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0.
1149
1150 2004-12-16  Richard Henderson  <rth@redhat.com>
1151             Aldy Hernandez  <aldyh@redhat.com>
1152
1153         * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace
1154         hard registers.
1155
1156 2004-12-16  H.J. Lu  <hongjiu.lu@intel.com>
1157
1158         PR other/18508
1159         * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix
1160         to back up the existing shared library.
1161         * config/arm/t-netbsd (SHLIB_LINK): Likewise.
1162         * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise.
1163         * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise.
1164         * config/sh/t-linux (SHLIB_LINK): Likewise.
1165         * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise.
1166         * config/t-slibgcc-darwin (SHLIB_LINK): Likewise.
1167         * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise.
1168         * config/t-slibgcc-sld (SHLIB_LINK): Likewise.
1169
1170         * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary
1171         file.
1172
1173 2004-12-16  Richard Henderson  <rth@redhat.com>
1174
1175         * Makefile.in (MD_DEPS, s-mddeps): New.
1176         (s-config, s-conditions, s-flags, s-codes, s-constants, s-emit,
1177         s-recog, s-opinit, s-extract, s-peep, s-attr, s-attrtab, s-output,
1178         s-preds): Depend on MD_DEPS instead of md_file.
1179         (genobjnames): Add genmddeps.o
1180         (build/genmddeps, build/genmddeps.o): New.
1181         (mostlyclean): Remove mddeps.mk.
1182         * genmddeps.c: New file.
1183         * gensupport.c (include_callback): New.
1184         (process_include): Call it.
1185         * gensupport.h (include_callback): Declare.
1186
1187 2004-12-16  Nathan Sidwell  <nathan@codesourcery.com>
1188
1189         * local-alloc.c (block_alloc): Replace IN_RANGE with simple
1190         comparison.
1191
1192         * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
1193
1194 2004-12-16  Mark Dettinger  <dettinge@de.ibm.com>
1195
1196         * config/s390/s390.c (struct processor_costs): Two new fields:
1197         madbr, maebr.
1198         (s390_rtx_costs): Added handling of multipy and add in SFmode.
1199         More precise values for cost of multiply and add.
1200
1201 2004-12-15  Richard Henderson  <rth@redhat.com>
1202
1203         PR target/19028
1204         * config/i386/i386.md (sse compare splitter): Test for SF and DFmode
1205         explicitly instead of using VALID_SSE_REG_MODE.
1206
1207 2004-12-15  Richard Henderson  <rth@redhat.com>
1208
1209         PR target/19005
1210         * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with
1211         optimize_size.
1212         (swapqi_1): Rename from swapqi.  Enable only for no partial reg
1213         stall and optimize_size.
1214         (swapqi_2): New.
1215         (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode.
1216         (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override.
1217
1218 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
1219
1220         * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387):
1221         Also enable for TARGET_MIX_SSE_I387.
1222
1223 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
1224
1225         * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only,
1226         sqrt{s,d}f2_i387): Unify enable constraint with respect to
1227         TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387,
1228         TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1229         (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed.
1230         (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse.
1231         (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387.
1232         (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387.
1233         (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387.
1234
1235 2004-12-16  Uros Bizjak  <uros@kss-loka.si>
1236
1237         * config/i386/i386.md (*fop_?f_comm_{,sse,nosse},
1238         *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable
1239         constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2,
1240         TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1241         (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed.
1242         (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387.
1243         (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387.
1244
1245 2004-12-15  H.J. Lu  <hongjiu.lu@intel.com>
1246
1247         PR target/18153
1248         * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports
1249         -Bstatic/-Bdynamic option.
1250         * config.in: Regenerated.
1251         * configure: Likewise.
1252
1253         * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static
1254         -lunwind if possible.
1255
1256 2004-12-15  Daniel Berlin  <dberlin@dberlin.org>
1257
1258         * cfgloop.c (flow_loops_dump): Don't print out levels.
1259         (flow_loops_find): Don't set loop->levels.
1260         (flow_loops_level_compute): Make void.
1261         * cfgloop.h (struct loops): Remove levels member.
1262         Add comment about loops in parray possibly being NULL.
1263
1264 2004-12-15  Alexandre Oliva  <aoliva@redhat.com>
1265
1266         * reload.c (SMALL_REGISTER_CLASS_P): New.
1267         (push_secondary_reload, find_reusable_reload, find_reloads): Use
1268         it instead of testing only the class size.
1269
1270 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1271
1272         PR c++/17972
1273         * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS
1274         on the STMT_EXPR wrapping up the inlined body.
1275
1276 2004-12-15  Vladimir Makarov  <vmakarov@redhat.com>
1277             Steven Bosscher  <stevenb@suse.de>
1278         PR middle end/17340
1279
1280         * global.c: Update comments in a few places.
1281         (check_earlyclobber): Return true if there are early clobber
1282         classes.
1283         (calculate_local_reg_bb_info): Do not try to mark earlyclobber
1284         regs if there are none.
1285         (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav,
1286         make_accurate_live_analysis): Rename pavin, pavout to live_pavin,
1287         live_pavout.
1288         (modify_bb_reg_pav): Remove.
1289         (calculate_reg_pav): Use code from modify_bb_reg_pav.
1290         (temp_bitmap): New variable.
1291         (calculate_reg_pav): Allocate/deallocate temp_bitmap.
1292
1293 2004-12-15  Richard Henderson  <rth@redhat.com>
1294
1295         PR target/19010
1296         * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true
1297         for TImode vectors.
1298         (gen_reg_or_parallel): New.
1299         (function_arg): Use it.
1300         (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately,
1301         MMX and 3DNOW separately.
1302         (ix86_rtx_costs): Simplify FLOAT_EXTEND case.
1303         (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately.
1304         * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ...
1305         (VALID_SSE_REG_MODE): ... here.
1306
1307 2004-12-15  David Edelsohn  <edelsohn@gnu.org>
1308
1309         * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy.
1310
1311 2004-12-15  Ian Lance Taylor  <ian@wasabisystems.com>
1312
1313         * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of
1314         COMPARE of MULT.
1315         * config/arm/arm.md (mulsi3_compare0): Don't check
1316         arm_arch_xscale.
1317         (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise.
1318         (mulsi3addsi_compare0_scratch): Likewise.
1319
1320 2004-12-15  Eric Botcazou  <ebotcazou@libertysurf.fr>
1321
1322         PR other/18665
1323         * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2.
1324         Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3.
1325         * libgcc2.c (__addvsi3): Rename to __addvSI3.
1326         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1327         (__addvdi3): Rename to __addvDI3.
1328         (__subvsi3): Rename to __subvSI3.  Use word type for the result.
1329         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1330         (__subvdi3): Rename to __subvDI3.
1331         (_mulvsi3): Rename to _mulvSI3.
1332         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1333         (_mulvdi3): Rename to _mulvDI3.
1334         (__negvsi2): Rename to __negvSI2.
1335         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1336         (__negvdi2): Rename to __negvDI2.
1337         (__absvsi2): Rename to __absvSI2.
1338         New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1339         (__absvdi2): Rename to __absvDI2.
1340         * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1341         (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2,
1342         __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate
1343         symbol and declare.
1344         (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if
1345         COMPAT_SIMODE_TRAPPING_ARITHMETIC.
1346
1347 2004-12-15  Kazuhiro Inaoka <inaoka.kazuhiro@reneasas.com>
1348
1349         * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE):
1350         Use DWARF2_DEBUG.
1351
1352         * config/m32r.c (m32r_legitimize_pic_address): Changed
1353         to support GOTOFF relocation.
1354         * config/m32r.md (UNSPEC_GOTOFF): New.
1355         (gotoff_load_addr): New.
1356
1357 2004-12-15  Richard Sandiford  <rsandifo@redhat.com>
1358
1359         * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to
1360         decide whether an argument is double-word aligned.
1361
1362 2004-12-15  Richard Henderson  <rth@redhat.com>
1363
1364         * config/i386/i386.md: Fix missing modes on cmove splitters.
1365
1366 2004-12-15 Jan Beulich  <jbeulich@novell.com>
1367
1368         * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h.
1369
1370 2004-12-15  Uros Bizjak  <uros@kss-loka.si>
1371
1372         * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2,
1373         *floatsisf2_i387, *floatsisf2_sse, floatdisf2,
1374         *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse,
1375         floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse,
1376         floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387,
1377         *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2):
1378         Unify enable constraint with respect to TARGET_80387, TARGET_SSE,
1379         TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387.
1380         (*float?i?f_i387): Rename to *float?i?f2_mixed.
1381         (*float?i?f2_1): Rename to *float?i?f2_i387.
1382         (*float?i?f2_i387_only): Rename to *float?i?f2_i387.
1383         (float?ixf2): Penalize integer register operand.
1384
1385 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1386
1387         PR c++/17242
1388         * configure.ac: Add GAS check for HP-UX .nsubspa comdat.
1389         * configure, config.in: Rebuilt.
1390         * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete
1391         defines.
1392         * config/pa/pa.c (pa_select_section): Allow uninitialized variables in
1393         one-only (comdat) subspaces.
1394         * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define.
1395         (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are
1396         true.
1397         (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common.
1398
1399 2004-12-14  Ian Lance Taylor  <ian@wasabisystems.com>
1400
1401         * combine.c (combine_validate_cost): Consider cost of
1402         undobuf.other_insn rather than always allowing the recombination
1403         if it is set.
1404
1405 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1406
1407         * pa-host.c (MAP_FAILED): Define if not defined.
1408         (pa_gt_pch_use_address): Handle short reads.
1409
1410 2004-12-14  Richard Henderson  <rth@redhat.com>
1411
1412         PR target/17990
1413         * config/i386/i386.c (x86_use_bt): New.
1414         (ix86_expand_unary_operator): Use MEM_P.
1415         (ix86_expand_fp_absneg_operator): New.
1416         * config/i386/i386.h (x86_use_bt): Declare.
1417         (TARGET_USE_BT): New.
1418         * config/i386/i386-protos.h: Update.
1419         * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator.
1420         (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise.
1421         (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs,
1422         negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if,
1423         abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs,
1424         absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove.
1425         (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed,
1426         absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New.  Merge all
1427         neg and abs splitters.  Handle DFmode in general regs in 64-bit mode.
1428         (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math.
1429         (btsq, btrq, btcq): New.  Add peepholes as well.
1430         (movv4sf_internal splitter): Postpone til after reload.
1431         (movv2di_internal splitter): Likewise.
1432         * config/i386/predicates.md (const_0_to_63_operand): New.
1433         (absneg_operator): New.
1434
1435 2004-12-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1436
1437         * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P):
1438         Check register number and that reg_renumber is nonzero before using it.
1439
1440 2004-12-14  Steve Ellcey  <sje@cup.hp.com>
1441
1442         * doc/invoke.texi (IA-64 options): Add existing options that
1443         weren't already listed.
1444
1445 2004-12-14  Jeff Law  <law@redhat.com>
1446
1447         * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target
1448         partition to conflict_graph_merge_regs.
1449
1450 2004-12-14  Uttam Pawar  <uttamp@us.ibm.com>
1451             Janis Johnson  <janis187@us.ibm.com>
1452
1453         * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors
1454         for vector types with invalid component types.
1455
1456 2004-12-14  Jakub Jelinek  <jakub@redhat.com>
1457
1458         PR middle-end/18951
1459         * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2,
1460         expand_builtin_mathfn_3): Avoid using arguments passed to
1461         save_expr after that call.
1462
1463         * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend
1464         LOAD_EXTEND_OP is not defined.
1465         (fold): Likewise.  If flag_syntax_only, don't depend on BITS_PER_WORD.
1466
1467 2004-12-14  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1468
1469         * tree.def, doc/c-tree.texi: Correctly document restrictions on the
1470         shift width.
1471
1472 2004-12-14  Kazu Hirata  <kazu@cs.umass.edu>
1473
1474         * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1.
1475
1476 2004-12-14  Richard Earnshaw  <rearnsha@arm.com>
1477
1478         PR target/18973
1479         arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs)
1480         (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling
1481         property to flags.
1482
1483 2004-12-14  Diego Novillo  <dnovillo@redhat.com>
1484
1485         * tree-gimple.c (get_base_address): Update documentation.
1486
1487 2004-12-13  Richard Henderson  <rth@redhat.com>
1488
1489         PR middle-end/17930
1490         * passes.c (rest_of_clean_state): Fix computation of
1491         preferred_incoming_stack_boundary.
1492
1493 2004-12-13  Wolfgang Bangerth <bangerth@dealii.org>
1494
1495         * reload.h: Remove struct needs and its only use.
1496
1497 2004-12-13  Roger Sayle  <roger@eyesopen.com>
1498
1499         PR rtl-optimization/18928
1500         * simplify_rtx.c (plus_minus_operand_p): New function to encode
1501         the test for suitable operands for calls to simplify_plus_minus.
1502         Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P.
1503         (simplify_binary_operation): Use plus_minus_operand_p.
1504
1505 2004-12-13  Alexandre Oliva  <aoliva@redhat.com>
1506
1507         PR tree-opt/16951
1508         * tree-inline.c (setup_one_parameter): Don't directly map a
1509         parameter to the address of another variable of the same
1510         function.
1511
1512 2004-13-12  Steven Bosscher  <stevenb@suse.de>
1513
1514         * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we
1515         can never create autoinc insns after reload.
1516
1517 2004-12-13  Jeff Law  <law@redhat.com>
1518             Kazu Hirata  <kazu@cs.umass.edu>
1519
1520         PR tree-optimization/18694
1521         * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a
1522         PHI argument is set from a PHI_RESULT in the same block and the
1523         PHI argument is not the same as the PHI result.
1524
1525 2004-12-13  David Edelsohn  <edelsohn@gnu.org>
1526
1527         * xcoffout.c (xcoffout_declare_function): Always strip storage
1528         class encoding.
1529
1530 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
1531
1532         PR target/18964
1533         * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic
1534         problem, adding a space at the end of the string before concatenation.
1535
1536 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
1537
1538         * c-common.c (fname_as_string): Free namep if we are returning
1539         cstr.text.
1540
1541         * tree-ssa-dom.c (record_edge_info): Fix memory leak.
1542
1543 2004-12-13  Andrew Pinski  <pinskia@physics.uc.edu>
1544
1545         * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND.
1546
1547 2004-12-13  Kazu Hirata  <kazu@cs.umass.edu>
1548
1549         * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by
1550         doing a pointer comparison.
1551
1552         * tree-ssa-dom.c (record_equivalences_from_phis): Add a
1553         comment.
1554
1555         * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment
1556         typos.
1557
1558 2004-12-13  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
1559
1560         * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to
1561         the list rather than replacing the existing value.
1562
1563 2004-12-13  Richard Henderson  <rth@redhat.com>
1564
1565         * cfg.c (dump_flow_info): Don't dump pseudo info after reload.
1566
1567 2004-12-13  Richard Henderson  <rth@redhat.com>
1568
1569         * Makefile.in (insn-preds.o): Depend on REGS_H.
1570         * genpreds.c (write_insn_preds_c): Include regs.h.
1571         * config/i386/predicates.md (index_register_operand): Use
1572         REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P.
1573
1574         * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'.
1575         * config/i386/i386.md (lea_general_1, lea_general_1_zext,
1576         lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext,
1577         adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea,
1578         ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea,
1579         ashlqi3_1_lea): Use 'l' for index register operand.
1580         (ashldi3_1_rex64 splitter): Use index_register_operand.
1581         (ashlsi3_1 splitter): Be more careful with modes.
1582
1583 2004-12-13  Danny Smith  <dannysmith@users.sourceforge.net>
1584
1585         PR target/18459
1586         * defaults.h (TARGET_USE_JCR_SECTION): New macro.
1587         * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it.
1588         * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override
1589         default.
1590
1591 2004-12-13 Uros Bizjak <uros@kss-loka.si>
1592
1593         PR target/14941
1594         PR target/18503
1595         * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd):
1596         Fix wrong vec_merge selector bitmask.
1597
1598 2004-12-12  Richard Henderson  <rth@redhat.com>
1599
1600         PR rtl-opt/17186
1601         * reg-stack.c (move_nan_for_stack_reg): New.
1602         (subst_stack_regs_pat): Use it.
1603         (move_for_stack_reg): Handle source register not live with a nan.
1604
1605 2004-12-12  Richard Henderson  <rth@redhat.com>
1606
1607         * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch
1608         errors across operations.
1609
1610 2004-12-12  Di-an Jan  <dianj@freeshell.org>
1611
1612         * doc/passes.texi (Pass Manager): Correct list of source files.
1613
1614 2004-12-12  Richard Henderson  <rth@redhat.com>
1615
1616         * expr.c (emit_move_change_mode): New.
1617         (emit_move_via_alt_mode): Use it.
1618
1619 2004-12-12  Nathanael Nerode  <neroden@gcc.gnu.org>
1620             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1621
1622         PR middle-end/17564
1623         * dojump.c (do_compare_and_jump): Only canonicalize function pointers
1624         in a comparison if both sides are function pointers.
1625
1626 2004-12-12  Richard Henderson  <rth@redhat.com>
1627
1628         PR target/18932
1629         * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand
1630         and compare_operator to propagate the input CC mode to the output.
1631         * config/i386/predicates.md (compare_operator): New.
1632
1633 2004-12-12  Andrew Pinski  <pinskia@physics.uc.edu>
1634
1635         PR tree-opt/18040
1636         * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR,
1637         CONVERT_EXPR cases.
1638         (handled_component_p): Likewise.
1639
1640 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1641
1642         * reg-stack.c (convert_regs_2): Free stack.
1643
1644         * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix
1645         comment typos.
1646
1647 2004-12-12  Daniel Berlin  <dberlin@dberlin.org>
1648
1649         * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null.
1650         * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real
1651         inner loop.
1652
1653 2004-12-12  Diego Novillo  <dnovillo@redhat.com>
1654
1655         * tree-gimple.c (get_base_address): Update documentation.
1656
1657 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1658
1659         * lcm.c (optimize_mode_switching): Free ptr even when mode_set
1660         is NULL_RTX.
1661
1662 2004-12-12  Roger Sayle  <roger@eyesopen.com>
1663
1664         * reg-stack.c (change_stack): Avoid placing the new top-of-stack in
1665         its correct location during popping if we need to permute the stack
1666         afterwards.  Attempt to preserve the original stack ordering.
1667
1668 2004-12-12  Kazu Hirata  <kazu@cs.umass.edu>
1669
1670         * lcm.c (optimize_mode_switching): Free insert and delete in
1671         the "for" loop.
1672
1673 2004-12-11  David Edelsohn  <edelsohn@gnu.org>
1674             Ulrich Weigand  <uweigand@de.ibm.com>
1675
1676         PR target/18641
1677         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all
1678         constants into all register classes intersecting with FLOAT_REGS
1679         via memory.
1680         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same.
1681         * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when
1682         choosing register preferences.
1683         (movdi_internal64): Same.
1684
1685 2004-12-11  Kazu Hirata  <kazu@cs.umass.edu>
1686
1687         * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX
1688         before we release an SSA_NAME.
1689
1690 2004-12-11  Roger Sayle  <roger@eyesopen.com>
1691
1692         PR middle-end/18921
1693         * fold-const.c (fold_unwidened_comparison): Use omit_one_operand
1694         instead of constant_boolean_node as arg0 may have side-effects.
1695
1696 2004-12-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1697
1698         * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH
1699         file to anonymous private map.
1700
1701 2004-12-10  Roger Sayle  <roger@eyesopen.com>
1702
1703         PR target/18002
1704         PR middle-end/18424
1705         * dojump.c (do_jump): When attempting to reverse the effects of
1706         fold_single_bit_test, we need to STRIP_NOPS and narrowing type
1707         conversions, and handle BIT_XOR_EXPR that's used to invert the
1708         sense of the single bit test.
1709
1710 2004-12-10  Devang Patel  <dpatel@apple.com>
1711
1712         PR 18732
1713         * gcc.c (main): Do not break out of loop when error is reported while
1714         processing one source file.
1715
1716 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
1717
1718         * tree-into-ssa.c (REWRITE_THIS_STMT): Define.
1719         (mark_def_sites): Clear REWRITE_THIS_STMT for statements that
1720         don't need any operands rewritten.
1721         (rewrite_stmt): Ignore statements that don't need to be
1722         rewritten.
1723         (rewrite_operand): Validate that an existing SSA_NAME is
1724         identical to the current reaching definition of the operand.
1725
1726 2004-12-10  Diego Novillo  <dnovillo@redhat.com>
1727
1728         * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function.
1729         * tree-vectorizer.c (vectorizable_load): Call it.
1730         * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare.
1731         * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming.
1732
1733 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1734
1735         * regmove.c (combine_stack_adjustments_for_block): Free
1736         memlist if it hasn't been freed.
1737
1738 2004-12-10  Ziemowit Laski  <zlaski@apple.com>
1739
1740         * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC
1741         pointer field is set before dereferencing it.
1742
1743 2004-12-10  Andrew Pinski  <pinskia@physics.uc.edu>
1744
1745         PR middle-end/18903
1746         * tree-cfg.c (remove_bb): Put the moved label at the beginning
1747         of the basic block.
1748
1749 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1750
1751         * tree-data-ref.c (free_data_refs): Free each data_reference
1752         object.
1753
1754         * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a
1755         call to is_gimple_min_invariant if we know the result.
1756
1757 2004-12-10  Jeff Law  <law@redhat.com>
1758
1759         * tree-ssa-alias.c (setup_pointers_and_addressables): Remove
1760         redundant test of v_ann->mem_tag_kind.
1761
1762         * tree-ssa-operands.c (get_indirect_ref_operands): Remove
1763         redundant conditional clearing opf_kill_def.
1764
1765 2004-12-10  Richard Sandiford  <rsandifo@redhat.com>
1766
1767         * config/frv/frv-modes.def: Fix comment typos.
1768         (CC_NZ): Define new mode.
1769         * config/frv/frv-protos.h (frv_select_cc_mode): Declare.
1770         (condexec_intop_cmp_operator): Delete.
1771         * config/frv/frv.c (comparison_string): New function.
1772         (frv_print_operand): Use it to handle 'c' and 'C'.
1773         (relational_operator): Redefine in terms of integer_relational_operator
1774         and float_relational_operator.
1775         (signed_relational_operator, unsigned_relational_operator): Delete.
1776         (integer_relational_operator): New predicate, combining the above.
1777         Check the mode of the first operand but leave frv.md to check the rest.
1778         (float_relational_operator): Just check the mode of the first operand
1779         and leave frv.md to check the rest.
1780         (intop_compare_operator): Assume the result is compared with zero
1781         in mode CC_NZmode.  Allow PLUS and MINUS.  Leave frv.md to check
1782         the operand predicates.
1783         (condexec_intop_cmp_operator): Delete.
1784         (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests)
1785         (frv_hard_regno_mode_ok): Handle CC_NZmode.
1786         (frv_select_cc_mode): New function.
1787         * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode.
1788         (REVERSIBLE_CC_MODE): Include CC_NZmode.
1789         (PREDICATE_CODES): Replace entries for signed_relational_operand and
1790         unsigned_relational_operator with one for integer_relational_operator.
1791         Delete entry for condexec_intop_cmp_operator.
1792         * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz)
1793         (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns.
1794         (*combo_intop_compare2, *combo_intop_compare4): Delete.
1795         (*combo_intop_compare1): Change mode to CC_NZ.
1796         (*combo_intop_compare2): Likewise.  Renamed from *combo_intop_compare3.
1797         (branch_{un,}signed_true, branch_{un,}signed_false)
1798         (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed)
1799         (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed)
1800         (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed)
1801         (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed)
1802         (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed)
1803         (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these
1804         pattern pairs.  Use integer_relational_operator.  Remove mode from
1805         icc_operand.
1806
1807 2004-12-10  Mark Dettinger  <dettinge@de.ibm.com>
1808
1809         * config/s390/s390.c (struct processor_costs): New fields ml,
1810         sqdbr, sqebr.
1811         (s390_rtx_costs): Added the missing handling of multiply & add,
1812         square root, and umulsidi.
1813
1814 2004-12-10  Kazu Hirata  <kazu@cs.umass.edu>
1815
1816         * expmed.c (synth_mult): Initialize new_limit.latency before
1817         making a recursive call.
1818
1819 2004-12-10  Nick Clifton  <nickc@redhat.com>
1820
1821         * config/mn10300/mn10300.c (legitimate_address_p): Reject address
1822         whose index is itself the sum of two other parts.
1823
1824 2004-12-10  Alan Modra  <amodra@bigpond.net.au>
1825
1826         * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink.
1827
1828 2004-12-10  Uros Bizjak  <uros@kss-loka.si>
1829
1830         * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi".
1831
1832 2004-12-09  Richard Henderson  <rth@redhat.com>
1833
1834         PR c/18282
1835         * attribs.c (decl_attributes): Use relayout_decl.
1836         * c-common.c (handle_mode_attribute): Copy all relevant type
1837         parameters from the new underlying integral type.
1838
1839 2004-12-09  Richard Henderson  <rth@redhat.com>
1840
1841         * c-common.c (shorten_compare): Don't special-case min/maxval
1842         for C enumerations.
1843
1844 2004-12-09  Richard Sandiford  <rsandifo@redhat.com>
1845
1846         * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether
1847         the request subreg is entirely contained in the requested component.
1848         (simplify_gen_subreg): Return null for CONCATs that are rejected
1849         by simplify_subreg.
1850         * expmed.c (store_bit_field): Create a temporary when changing the
1851         value to an integer mode.
1852
1853 2004-12-09  David Edelsohn  <edelsohn@gnu.org>
1854
1855         * real.c (ibm_extended): Correct comment.
1856
1857 2004-12-09  Stan Shebs  <shebs@apple.com>
1858
1859         * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros
1860         formerly in darwin-tramp.asm.
1861         * config/rs6000/darwin-tramp.asm: Include darwin-asm.h.
1862         * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros.
1863         * config/rs6000/t-darwin: Add dependencies.
1864
1865 2004-12-09  Richard Henderson  <rth@redhat.com>
1866
1867         PR target/17025
1868         * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New.
1869         (test_qi_1, andqi_2): Do not promote to simode.
1870
1871 2004-12-09  Andrew Pinski  <pinskia@physics.uc.edu>
1872
1873         PR tree-opt/18904
1874         * tree-chrec.c (chrec_convert): Use fold_convert
1875         instead of convert.
1876
1877 2004-12-09  Matt Rice  <ratmice@yahoo.com>
1878
1879         PR preprocessor/18102
1880         * c-incpath.c (remove_duplicates): Check for construct
1881         equality.
1882
1883 2004-12-09  Dorit Naishlos  <dorit@il.ibm.com>
1884
1885         * genopinit.c (vec_realign_store_optab): Initialization removed.
1886         * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed.
1887         * optabs.h (optab_index): OTI_vec_realign_store Removed.
1888         (vec_realign_store_optab): Removed.
1889         * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed.
1890         * target.h (builtin_mask_for_store): Removed.
1891         * tree.def (REALIGN_STORE_EXPR): Removed.
1892         * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed.
1893         (altivec_builtin_mask_for_store): Removed.
1894         (altivec_init_builtins): Removed initialization of
1895         altivec_builtin_mask_for_store.
1896
1897         * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New.
1898         (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New.
1899
1900 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
1901
1902         * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs.
1903
1904         * tree.def (SET_TYPE): Remove.
1905         (CONSTRUCTOR): Update description.
1906         * builtins.c (type_to_class) Remove SET_TYPE case.
1907         * dbxout.c (dbxout_type): Likewise.
1908         * dwarf2out.c (is_base_type): Likewise.
1909         (gen_set_type_die): Remove.
1910         (gen_type_die): Remove SET_TYPE case.
1911         * expr.c (count_type_elements): Likewise.
1912         (mostly_zeroes_p): Likewise.
1913         (store_constructor): Likewise.
1914         * print_tree.c (print_node): Likewise.
1915         * stor-layout.c (layout_type): Likewise.
1916         * tree-browser.c (browse_tree): Likewise.
1917         * tree-inline.c (remap_type): Likewise.
1918         * tree-pretty-print.c (dump_generic_node): Likewise.
1919         * tree.c (type_contains_plaeholder_1, type_hash_eq,
1920         variably_modified_type_p, initializer_zerop): Likewise.
1921         * tree.h (SET_OR_ARRAY_CHECK): Remove.
1922         (AGGREGATE_TYPE_P): Remove SET_TYPE check.
1923         (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK.
1924         * typeclass.h (enum type_class): Remove set_type_class.
1925         * varasm.c (const_hash_1): Remove SET_TYPE case.
1926         (compare_constant, copy_constant, output_constant): Likewise.
1927         * config/i386/i386.c (classify_argument): Likewise.
1928         * config/ia64/ia64.c (hfa_element_mode): Likewise.
1929         * config/sparc/sparc.c (sparc_type_code): Likewise.
1930
1931         PR c++/16681
1932         * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case.
1933
1934 2004-12-08  Richard Henderson  <rth@redhat.com>
1935
1936         * config/i386/i386.md: Use FLAGS_REG everywhere.
1937
1938 2004-12-08  Eric Christopher  <echristo@redhat.com>
1939
1940         * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite
1941         to avoid call to default function.
1942
1943 2004-12-08  Zack Weinberg  <zack@codesourcery.com>
1944
1945         PR 17982
1946         * varasm.c (pending_assemble_externals): New static.
1947         (assemble_external_real): Meat of assemble_external split out
1948         to this new function.
1949         (process_pending_assemble_externals): New function.
1950         (assemble_external): Use gcc_assert.  If flag_unit_at_a_time
1951         is true and the basic test passes, merely cons the decl onto
1952         the pending list to be handled later.
1953         * tree.h: Declare process_pending_assemble_externals.
1954         * cgraphunit.c (cgraph_optimize): Call it.
1955
1956         * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL.
1957
1958 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
1959
1960         * cfgloopmanip.c (create_preheader): Speed up by "unrolling"
1961         and simplifying FOR_EACH_EDGE.
1962
1963 2004-12-08  Richard Sandiford  <rsandifo@redhat.com>
1964
1965         * config/frv/frv.c (frv_sort_insn_group): Always initialize
1966         packet_group->nop.
1967
1968 2004-12-08  Nathan Sidwell  <nathan@codesourcery.com>
1969
1970         PR c++/18672
1971         * gimplify.c (canonicalize_addr_expr): Cope with array of
1972         incomplete type.
1973         (gimplify_conversion): Remove redundant checks.
1974
1975         * doc/trouble.texi (Non-bugs): Clarify empty loop removal.
1976
1977 2004-12-08  Uros Bizjak  <uros@kss-loka.si>
1978
1979         * config/i386/i386.c (output_387_binary_op,
1980         ix86_prepare_fp_compare_args): Fix is_sse condition.
1981
1982 2004-12-07  Uros Bizjak  <uros@kss-loka.si>
1983
1984         * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx
1985         argument.
1986
1987         * config/i386/i386.c (output_fp_compare): Fix is_sse condition.
1988         Use EFLAGS_P only when fcomi insn should be used. Fix handling
1989         of eflags_p variable. Change alt table accordingly. For non-fcomi
1990         compare insn always use trailing fnstsw insn. Fix intmode
1991         calculation for ficom insn.
1992         (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call
1993         ix86_free_from_memory when "pushed" is specified.
1994         (ix86_expand_branch): Change call to ix86_split_fp_branch.
1995
1996         * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf):
1997         Change eflags_p parameter in call to output_fp_compare.
1998         (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove.
1999         (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to
2000         *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf.  Change eflags_p
2001         parameter in call to output_fp_compare.
2002         (*cmpfp_2_u): Remove.
2003         (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter
2004         in call to output_fp_compare.
2005         (*ficom_1): Remove insn definition and corresponding define_split.
2006         (*cmpfp_si): New insn definition.
2007         (*fp_jcc_8): New insn definition. Add new splitters for
2008         "memory_operand" and "register_operand".
2009         (define_split): Add new parameter in call to ix86_split_fp_branch.
2010
2011         config/i386/predicates.md (float_operator): New predicate.
2012
2013 2004-12-08  Kazu Hirata  <kazu@cs.umass.edu>
2014
2015         * c-common.c (verify_tree): Don't check code length if we know
2016         we are handling tcc_unary.
2017         * print_tree.c (print_node): Remove code to handle RTL
2018         appearing as a part of a tree node.
2019         * tree-gimple.c (recalculate_side_effects): Rename fro as len.
2020         * tree.c (build1_stat): Don't check TREE_CODE_LENGTH.
2021         (PROCESS_ARG): Don't refer to fro.
2022         (build2_stat, build3_stat, build4_stat): Don't compute fro.
2023
2024 2004-12-07  Roger Sayle  <roger@eyesopen.com>
2025
2026         PR middle-end/18293
2027         * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier.
2028         (expand_mult): Special case powers of two to avoid synth_mult.
2029         * loop.c (product_cheap_p): Handle case where expand_mult does
2030         require/generate any instructions (i.e. multiplication by zero).
2031
2032 2004-12-07  Richard Henderson  <rth@redhat.com>
2033
2034         * tree-pretty-print.c (dump_array_domain): Split out from
2035         dump_generic_node; fix off-by-one error on zero-based array bounds.
2036         (dump_generic_node): Use it.
2037         (print_declaration): Likewise.
2038
2039 2004-12-08  Richard Guenther <richard.guenther@uni-tuebingen.de>
2040
2041         * doc/invoke.texi: Adjust default values for
2042         large-function-growth and inline-unit-growth to match
2043         params.def.  Clarify used algorithm.
2044
2045 2004-12-07  David Mosberger  <davidm@hpl.hp.com>
2046
2047         PR target/18443
2048         * config/ia64/ia64.c (ia64_assemble_integer): Add support for
2049         emitting unaligned pointer-sized integers.
2050
2051 2004-12-07  Steven Bosscher  <stevenb@suse.de>
2052
2053         PR c/18867
2054         * c-typeck.c (c_start_case): Set orig_type to error_mark_node
2055         when the type of the controlling expression is not a valid type.
2056
2057 2004-12-07  Steven Bosscher  <stevenb@suse.de>
2058
2059         PR tree-optimization/17340
2060         * tree-ssa-pre.c (compute_antic): Fix comment.
2061         (compute_avail): Do not recurse, instead do a DFS using a stack
2062         and a loop.
2063         (execute_pre): Adjust.
2064
2065 2004-12-07  Ziemowit Laski  <zlaski@apple.com>
2066
2067         * c-tree.h (struct lang_type): Rename 'objc_protocols' field
2068         to 'objc_info'.
2069
2070 2004-12-07  Eric Christopher  <echristo@redhat.com>
2071
2072         PR target/16317
2073         * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define.
2074
2075 2004-12-07  Eric Christopher  <echristo@redhat.com>
2076
2077         * config/mips/mips-protos.h (mips_valid_pointer_mode): Move
2078         prototype...
2079         * config/mips/mips.c: ... here. Make static.
2080
2081 2004-12-07  Eric Christopher  <echristo@redhat.com>
2082
2083         PR target/18442
2084         * config/mips/mips.c (mips_vector_mode_supported_p): New function.
2085         (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above.
2086
2087 2004-12-07  Kazu Hirata  <kazu@cs.umass.edu>
2088
2089         * c-common.c, expr.c, fold-const.c, print-tree.c,
2090         tree-gimple.c, tree-inline.c, tree-pretty-print.c,
2091         tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of
2092         first_rtl_op with TREE_CODE_LENGTH.
2093         * tree.c (first_rtl_op): Remove.
2094         Replace uses of first_rtl_op with TREE_CODE_LENGTH.
2095         * tree.h: Remove the prototype for first_rtl_op.
2096
2097 2004-12-07  David Edelsohn  <edelsohn@gnu.org>
2098
2099         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
2100         Revert 2004-12-01 change.
2101
2102 2004-12-06  Ziemowit Laski  <zlaski@apple.com>
2103
2104         * c-tree.h (struct lang_type): Add 'objc_protocols' field.
2105
2106 2004-12-06  DJ Delorie  <dj@redhat.com>
2107
2108         * reload.c (find_valid_class): Fix logic to test inner mode as well.
2109         (push_reload): Pass inner mode.
2110
2111 2004-12-06  Eric Christopher  <echristo@redhat.com>
2112
2113         * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document.
2114
2115 2004-12-06  Aldy Hernandez  <aldyh@redhat.com>
2116
2117         * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1.
2118
2119 2004-12-06  Zdenek Dvorak  <dvorakz@suse.cz>
2120             Kazu Hirata  <kazu@cs.umass.edu>
2121
2122         PR tree-optimization/18601
2123         * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed.
2124         (tree_forwarder_block_p): Do not consider blocks that are its own
2125         successors forwarders.
2126         (cleanup_forwarder_blocks, remove_forwarder_block): New functions.
2127         (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of
2128         thread_jumps.
2129         * tree-flow.h (bb_ann_d): Remove forwardable.
2130
2131 2004-12-06  Kazu Hirata  <kazu@cs.umass.edu>
2132
2133         * expr.c (expand_expr_real_1): Remove an "if" whose condition
2134         is always false.
2135
2136 2004-12-06  Roger Sayle  <roger@eyesopen.com>
2137
2138         * c-gimplify.c (gimplify_c_loop): Improve initial implementations
2139         for loops whose conditions are known at compile-time.
2140         * gimplify.c (append_to_statement_list_1): Remove side_effects
2141         parameter, this function should never be called if its false.
2142         (append_to_statement_list): Only call append_to_statement_list_1
2143         if t is non-NULL tree with side-effects.
2144         (append_to_statement_list_force):  Likewise, if t is not NULL.
2145
2146 2004-12-06  J"orn Rennecke <joern.rennecke@st.com>
2147
2148         * bt-load.c (btr_def_s): New member own_end;
2149         (add_btr_to_live_range): Add second parameter.  Changed caller.
2150         (clear_btr_from_live_range): Clear btrs_live_at_end bit
2151         for the register its definition basic block if own_end is set.
2152         (augment_live_range): Also take btrs_live_at_end into account.
2153         (combine_btr_defs): Don't bother with
2154         other_def->other_btr_uses_after_use if it pertains to a different
2155         register.
2156         (move_btr_def): Set def->other_btr_uses_before_def after
2157         calling combine_btr_defs."
2158
2159         * bt-load.c (augment_live_range): New argument full_range.
2160         Changed all callers.
2161
2162         * bt-load.c (move_tr_def): Set other_tr_uses_before_def
2163         taking new btr assignment into account.
2164
2165 2004-12-05  Daniel Berlin <dberlin@dberlin.org>
2166
2167         * tree-ssa-alias.c (create_global_var): Use void_type_node,
2168         not size_type_node.
2169
2170 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
2171
2172         * expr.c (expand_expr_real_1): Abort on COND_EXPR of
2173         VOID_TYPE.
2174
2175 2004-12-05  Richard Henderson  <rth@redhat.com>
2176
2177         PR target/18841
2178         * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New.
2179         (builtin_setjmp_receiver_er_sl_1): Use it.
2180         (builtin_setjmp_receiver_er_1): Likewise.
2181         (builtin_setjmp_receiver_er, exception_receiver_er): Remove.
2182         (builtin_setjmp_receiver): Don't split for explicit relocs until
2183         after reload.
2184         (exception_receiver): Likewise.
2185
2186 2004-12-05  Andrew Pinski  <pinskia@physics.uc.edu>
2187
2188         * mklibgcc.in (vis_hide): Add the prototype for the test.
2189
2190 2004-12-05  Roger Sayle  <roger@eyesopen.com>
2191
2192         * c-typeck.c (c_finish_loop): Improve initial implementations
2193         for loops whose conditions are known at compile-time.
2194
2195 2004-12-05  Kazu Hirata  <kazu@cs.umass.edu>
2196
2197         * builtins.c: Fix comment typos.
2198
2199 2004-12-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2200
2201         PR middle-end/18730
2202         * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When
2203         the first/last insn is a sequence, return the first/last insn of the
2204         sequence.
2205
2206         PR bootstrap/18804
2207         * mklibgcc.in (vis_hide): Use implementation instead of declaration
2208         for test function.
2209
2210 2004-12-04  Richard Henderson  <rth@redhat.com>
2211
2212         * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to
2213         use ofs in BWX two byte special case.
2214         (alpha_expand_unaligned_store): Likewise.
2215
2216 2004-12-04  Kazu Hirata  <kazu@cs.umass.edu>
2217
2218         * gcse.c (gcse_main): Add a comment.
2219
2220 2004-12-04  Andrew  Pinski  <pinskia@physics.uc.edu>
2221
2222         PR middle-end/17909
2223         * builtins.c (fold_builtin_next_arg): Export and return true
2224         when there is a warning or an error.
2225         (expand_builtin_va_start): When fold_builtin_next_arg returns true,
2226         return const0_rtx.
2227         (expand_builtin): Likewise.
2228         * gimplify.c (gimplify_call_expr): Error out if there is not
2229         enough arguments to va_start. Call fold_builtin_next_arg also
2230         on the second argument.
2231         * tree.h (fold_builtin_next_arg): Prototype.
2232
2233 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
2234
2235         * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/.
2236         Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK,
2237         SHLIB_INSTALL, and SHLIBUNWIND_INSTALL.
2238         * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of
2239         shlib_dir and shlib_so_name.
2240         * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise.
2241         * config/t-libunwind-elf (SHLIB_NAME): Likewise.
2242         * config/t-slibgcc-darwin (SHLIB_NAME): Likewise.
2243         * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise.
2244         * config/t-slibgcc-sld (SHLIB_NAME): Likewise.
2245         (SHLIB_LINK): Don't use shlib_dir when creating symlink.
2246
2247 2004-12-03  Roger Sayle  <roger@eyesopen.com>
2248
2249         * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook.
2250
2251 2004-12-03  Richard Henderson  <rth@redhat.com>
2252
2253         * alias.c (component_uses_parent_alias_set): Rename from
2254         can_address_p.  Return bool.  Reverse the sense of the result.
2255         Reinstate the check for alias set zero.
2256         (get_alias_set): Update to match.
2257         * alias.h (component_uses_parent_alias_set): Likewise.
2258         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
2259         * expr.c (expand_assignment): Likewise.
2260         * expr.h: Remove commented out prototypes that were moved to alias.h.
2261
2262 2004-12-03  Richard Henderson  <rth@redhat.com>
2263
2264         * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New.
2265         (TARGET_CANNOT_FORCE_CONST_MEM): New.
2266
2267 2004-12-04  Alan Modra  <amodra@bigpond.net.au>
2268
2269         PR middle end/18718
2270         * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are
2271         in pairs.
2272         * sched-ebb.c (schedule_ebb): Likewise.
2273
2274 2004-12-03  Andreas Schwab  <schwab@suse.de>
2275
2276         * Makefile.in (HOSTHOOKS_DEF_H): Define.
2277         (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H).
2278         (host-default.o): Likewise.
2279
2280 2004-12-03  Eric Christopher  <echristo@redhat.com>
2281
2282         * config/stormy16/stormy16.md (pushqi, popqi, pushhi,
2283         pophi): Add number of arguments to name so that the
2284         pattern is recognized as a named pattern.
2285
2286 2004-12-03  Janis Johnson  <janis187@us.ibm.com>
2287
2288         * doc/extend.texi (AltiVec Builtins): Fix info about signedness.
2289
2290 2004-12-03  Andreas Tobler  <a.tobler@schweiz.ch>
2291
2292         * config/rs6000/rs6000.c (rs6000_override_options): Protect
2293         darwin_one_byte_bool with #if.
2294
2295 2004-12-03  Paolo Bonzini  <bonzini@gnu.org>
2296
2297         * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN.
2298
2299 2004-12-03  H.J. Lu  <hongjiu.lu@intel.com>
2300
2301         * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART.
2302
2303 2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
2304
2305         * configure.ac: Move TL_AC_GCC_VERSION into initialization section.
2306         Set libstdcxx_incdir directly.
2307         * configure: Regenerate.
2308
2309 2004-12-03  Kazu Hirata  <kazu@cs.umass.edu>
2310
2311         * tree-ssa-dom.c (record_equivalences_from_phis): Remove an
2312         "if" whose condition is always true.
2313
2314         * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of
2315         INSN_P.
2316
2317 2004-12-02  Stan Shebs  <shebs@apple.com>
2318
2319         * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit
2320         Darwin default to one-byte bools.
2321
2322 2004-12-02  Richard Henderson  <rth@redhat.com>
2323
2324         PR 18774
2325         * simplify-rtx.c (simplify_immed_subreg): Fail complex modes.
2326
2327 2004-12-03  Ben Elliston  <bje@au.ibm.com>
2328
2329         * doc/cfg.texi (Edges): Update. Document the edge_iterator data
2330         type and its methods.
2331
2332 2004-12-02  Richard Henderson  <rth@redhat.com>
2333
2334         * expr.c (write_complex_part): Use simplify_gen_subreg when the
2335         submode is at least as large as a word.
2336         (read_complex_part): Likewise.
2337
2338 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2339
2340         PR bootstrap/18532
2341         * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for
2342         multilib at a time. Don't build the default set. Don't add
2343         EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove
2344         filter for shared libunwind and libgcc.
2345
2346 2004-12-02  Roger Sayle  <roger@eyesopen.com>
2347
2348         PR target/18759
2349         * config/i386/i386.c (override_options): If -fomit-frame-pointer has
2350         already been specified, ignore the -momit-leaf-frame-pointer option.
2351
2352 2004-12-02  H.J. Lu  <hongjiu.lu@intel.com>
2353
2354         * varasm.c (make_decl_rtl): Add the missing `;'.
2355
2356 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
2357
2358         * tree.c (is_attribute_p): Split out to ..
2359         (is_attribute_with_length_p): Here.  Use IDENTIFIER_LENGTH instead
2360         of strlen and compare the string lengths before calling strcmp.
2361         (lookup_attribute): Call is_attribute_with_length_p instead of
2362         is_attribute_p.
2363
2364 2004-12-02  Devang Patel  <dpatel@apple.com>
2365
2366         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused.
2367         * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused.
2368         * config/i386/darwin.h (CC1_SPEC): Same.
2369
2370 2004-12-02  Richard Henderson  <rth@redhat.com>
2371
2372         * optabs.c (lowpart_subreg_maybe_copy): New.
2373         (expand_unop, expand_abs_nojump): Use it.
2374
2375 2004-12-02  J"orn Rennecke <joern.rennecke@st.com>
2376
2377         * sh.md (extv, extzv): Add pattern predicate.
2378
2379 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
2380
2381         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2382         is not null.
2383
2384         * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF
2385         is not null.
2386
2387         * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST.
2388
2389 2004-12-02  Jeff Law  <law@redhat.com>
2390
2391         * tree-eh.c: Revert yesterday's change.
2392
2393 2004-12-02  Andrew Pinski  <pinskia@physics.uc.edu>
2394
2395         * varasm.c (decode_reg_name): Revert change to check for zero
2396         length strings.
2397         (make_decl_rtl): Make sure that we call decode_reg_name only
2398         when needed.
2399
2400 2004-12-02  Dorit Naishlos  <dorit@il.ibm.com>
2401
2402         PR tree-opt/18716
2403         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set
2404         then and else labels.
2405
2406 2004-12-02  Andreas Schwab  <schwab@suse.de>
2407
2408         * Makefile.in (WERROR_FLAGS): Renamed from WERROR.
2409         (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR).
2410         (STAGE2_FLAGS_TO_PASS): Likewise.
2411
2412         * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR.
2413
2414 2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
2415
2416         * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version.  Remove
2417         now-redundant AC_SUBSTs.
2418         * aclocal.m4: Include ../config/gcc-version.m4.
2419         * configure: Regenerate.
2420
2421 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
2422
2423         * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the
2424         #ifdef RELOCATABLE_NEEDS_FIXUP.
2425
2426 2004-12-01  Roger Sayle  <roger@eyesopen.com>
2427
2428         PR target/9908
2429         * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct
2430         Intel assembler syntax by using %A1 instead of %*%1.
2431
2432 2004-12-01  Richard Henderson  <rth@redhat.com>
2433
2434         * expr.c (expand_assignment): Handle CONCAT both as a final
2435         destination and as a middle point.
2436
2437 2004-12-01  Jeff Law  <law@redhat.com>
2438
2439         * tree-eh.c (save_eptr, save_filt): Now file scoped statics.
2440         (honor_protect_cleanup_actions): Only create save_eptr and
2441         save_filt if they do not already exist.
2442         (lower_eh_constructs): Wipe all knowledge of save_eptr and
2443         save_filt before returning.
2444
2445 2004-12-02  Kazu Hirata  <kazu@cs.umass.edu>
2446
2447         * tree-phinodes.c (remove_phi_arg_num): Fix a comment.
2448
2449 2004-12-02  Alan Modra  <amodra@bigpond.net.au>
2450
2451         PR target/16952
2452         * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace
2453         #ifdef RELOCATABLE_NEEDS_FIXUP with if.
2454         * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms
2455         of target_flags_explicit.
2456         * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch
2457         case.  Define as 0 for non-biarch.
2458
2459 2004-12-01  Zack Weinberg  <zack@codesourcery.com>
2460
2461         * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK):
2462         Change temporary file tag from a prefix to an infix.
2463
2464 2004-12-02  Andreas Schwab  <schwab@suse.de>
2465
2466         * gcc.c (struct option_map): Add entry for "--pass-exit-codes".
2467
2468 2004-12-01  Andrew Pinski  <pinskia@physics.uc.edu>
2469
2470         PR tree-opt/18763
2471         PR tree-opt/18746
2472         * tree-ssa-alias.c (init_alias_info): Get statement operands for all
2473         the statements if aliases_computed_p is true.
2474
2475 2004-12-01  Mark Mitchell  <mark@codesourcery.com>
2476
2477         * Makefile.in (WERROR): New variable.
2478         (STRICT2_WARN): Use it.
2479         (STAGE2_FLAGS_TO_PASS): Likewise.
2480         * config/i386/x-mingw32 (WERROR): Add -Wno-format.
2481
2482 2004-12-01  Richard Henderson  <rth@redhat.com>
2483
2484         * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR
2485         offsetting.
2486
2487 2004-12-01  Diego Novillo  <dnovillo@redhat.com>
2488
2489         PR tree-optimization/18291
2490         * tree-ssa-copy.c (merge_alias_info): Fix merging of
2491         flow-sensitive alias information.  If the new pointer has no
2492         name tag, copy it from the original pointer.  Otherwise, make
2493         sure that the pointed-to sets have a common intersection.
2494
2495 2004-12-01  Richard Henderson  <rth@redhat.com>
2496
2497         PR rtl-opt/15289
2498         * emit-rtl.c (gen_complex_constant_part): Remove.
2499         (gen_realpart, gen_imagpart): Remove.
2500         * rtl.h (gen_realpart, gen_imagpart): Remove.
2501         * expmed.c (extract_bit_field): Remove CONCAT hack catering to
2502         gen_realpart/gen_imagpart.
2503         * expr.c (write_complex_part, read_complex_part): New.
2504         (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push,
2505         emit_move_complex_push, emit_move_complex, emit_move_ccmode,
2506         emit_move_multi_word): Split out from ...
2507         (emit_move_insn_1): ... here.
2508         (expand_expr_real_1) <COMPLEX_EXPR>: Use write_complex_part.
2509         <REALPART_EXPR, IMAGPART_EXPR>: Use read_complex_part.
2510         * function.c (assign_parm_setup_reg): Hard-code transformations
2511         instead of using gen_realpart/gen_imagpart.
2512
2513         * expr.c (optimize_bitfield_assignment_op): Split out from ...
2514         (expand_assignment): ... here.  Use handled_component_p to gate
2515         get_inner_reference code.  Simplify MEM handling.  Special case
2516         CONCAT destinations.
2517
2518         * expmed.c (store_bit_field): Use simplify_gen_subreg instead
2519         of gen_rtx_SUBREG directly.
2520
2521 2004-12-01  David Edelsohn  <edelsohn@gnu.org>
2522             Nathan Sidwell  <nathan@codesourcery.com>
2523
2524         PR target/17107
2525         * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER.
2526         (sgt): Same.
2527         (sle): Same.
2528         (slt): Same.
2529
2530 2004-12-01  Nathan Sidwell  <nathan@codesourcery.com>
2531
2532         PR middle-end/18667
2533         * params.c (set_param_value): Add range check.
2534         * params.def: Add min and max values. Reformat long strings.
2535         * params.h (struct param_info): Add min and max fields.
2536         (enum compiler_param): Adjust DEFPARAM.
2537         * toplev.c (lang_independent_params): Likewise.
2538
2539 2004-12-01  Alan Modra  <amodra@bigpond.net.au>
2540
2541         PR target/12817
2542         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave.
2543
2544 2004-12-01  Joseph S. Myers  <joseph@codesourcery.com>
2545
2546         * doc/standards.texi: Update for C99 TC2.
2547
2548 2004-11-30  Jeff Law  <law@redhat.com>
2549
2550         * sbitmap.c (sbitmap_any_common_bits): New function.
2551         * sbitmap.h (sbitmap_any_common_bits): Prototype.
2552         * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits
2553         No longer allocate/free "psp", "pss" sbitmaps.
2554         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for
2555         the "res" sbitmap.
2556         (group_aliases): Similarly.
2557
2558 2004-11-30  Nathan Sidwell  <nathan@codesourcery.com>
2559
2560         * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid
2561         uninitialized variable.
2562
2563 2004-11-30  Eric Christopher  <echristo@redhat.com>
2564
2565         * fold-const.c (fold_widened_comparison): Make sure that we're
2566         passing an INTEGER_TYPE to int_fits_type_p.
2567         (fold): Clean up comment.
2568
2569 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
2570
2571         * mklibgcc.in: Correct calculation of libgcc_s_soname and
2572         libunwind_soname.  Use $out, not $outS, in commands for
2573         no-shared-library case.  Move EXTRA_MULTILIB_PARTS rules above
2574         library build rules, make $libunwind_so and $libgcc_s_so
2575         depend on them in the normal fashion, and filter those objects
2576         out of @shlib_objs@.
2577
2578 2004-11-30  Janis Johnson  <janis187@us.ibm.com>
2579
2580         * config/rs6000/altivec.h (vec_step_help): Support const vector types.
2581
2582 2004-11-30  Andrew Pinski  <pinskia@physics.uc.edu>
2583
2584         PR tree-opt/18298
2585         * tree-optimize.c (init_tree_optimization_passes): Add a may_alias
2586         pass right after fold builtins.
2587
2588 2004-11-30  Andreas Krebbel  <krebbel1@de.ibm.com>
2589
2590         * config/s390/s390-modes.def: Added cc modes documentation.
2591         * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode,
2592         s390_expand_addcc): Added cc mode comments.
2593         * config/s390/s390.md: Removed old cc mode documentation.
2594
2595 2004-11-30  Mark Dettinger  <dettinge@de.ibm.com>
2596
2597         * config/s390/s390.c (struct processor_costs): New data type.
2598         (s390_cost, z900_cost, z990_cost): New global variables.
2599         (override_options): Initialize s390_cost.
2600         (s390_rtx_costs): Reimplement.
2601
2602 2004-11-29  Daniel Berlin  <dberlin@dberlin.org>
2603
2604         Fix PR tree-optimization/18673
2605
2606         * tree-ssa-pre.c: Remove splay-tree.h include.
2607         (bitmap_value_replace_in_set): Fix to add if it does not exist.
2608         (find_or_generate_expression): Remove now-wrong condition.
2609         (create_expression_by_pieces): Fix condition and comment reason
2610         for it.
2611         (insert_aux): Fix condition and comment reasons for it.
2612         Factor insertion code from here.
2613         (insert_into_preds_of_block): To here.  Fix conditions in factored
2614         function and comment reasons for them.
2615
2616 2004-11-30  Ira Rosen  <irar@il.ibm.com>
2617
2618         PR tree-opt/18607
2619         * tree-vectorizer.c (vect_analyze_data_refs): Use temporary
2620         variable for data_reference when looking for memtag.
2621
2622 2004-11-30  Jakub Jelinek  <jakub@redhat.com>
2623
2624         * c-opts.c (check_deps_environment_vars): If spec != NULL, set
2625         deps_seen.
2626
2627 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
2628
2629         * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use
2630         tree_low_cst instead of TREE_INT_CST_LOW.
2631
2632 2004-11-30  Dorit Naishlos  <dorit@il.ibm.com>
2633
2634         PR target/18173
2635         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
2636         decls that are assembled before vectorization takes place.
2637         (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
2638
2639 2004-11-30  Ulrich Weigand  <uweigand@de.ibm.com>
2640
2641         * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks
2642         if local_alloc modified jumps.
2643
2644 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
2645
2646         * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL
2647         on TLS symbols.
2648         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS
2649         check.
2650
2651 2004-11-30  Zack Weinberg  <zack@codesourcery.com>
2652
2653         * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
2654         * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
2655
2656         * mklibgcc.in: Drastic restructure for comprehensibility.
2657         Remove the old hidden-directive hack.
2658         Eliminate support for .txt files in LIB2ADD etc (never used).
2659         Eliminate support for assembly source files in LIB2ADDEH* and
2660         LIBUNWIND (also never used).
2661         Build up dependency lists for libraries incrementally.
2662         If we have SHLIB_LINK, compile each file twice, once for the
2663         static and once for the shared library; also probe for
2664         -fvisibility=hidden in the generated libgcc.mk.  If found,
2665         pass that and -DHIDE_EXPORTS to the compilation of every C
2666         source file going into the static library.  If found, generate
2667         hidden-directive lists for every assembly source file going
2668         into the static library, but incorporate them with -include
2669         instead of ld -r.
2670         Write comments into generated libgcc.mk to facilitate debugging.
2671         * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
2672         * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
2673
2674         * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
2675         -Zdynamiclib case.
2676
2677 2004-11-29  Richard Henderson  <rth@redhat.com>
2678
2679         * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR.
2680         (handled_component_p): Likewise.
2681         * alias.c (can_address_p): Reformat and simplify.  Handle
2682         REAL/IMAGPART_EXPR.  Do not disable addressability based on
2683         alias set zero.
2684         * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate
2685         check for REAL/IMAGPART_EXPR.
2686         * gimplify.c (gimplify_compound_lval): Likewise.
2687         * tree-cfg.c (verify_expr): Likewise.
2688         * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise.
2689         * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise.
2690         (convert_local_reference): Likewise.
2691         * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise.
2692
2693 2004-11-30  Alan Modra  <amodra@bigpond.net.au>
2694
2695         * expr.c (emit_group_load_1): Don't die on const_int orig_src.
2696
2697 2004-11-29  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2698
2699         PR pch/14940
2700         * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files.
2701         * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj
2702         and host_xmake_file using new host configuration files.
2703
2704 2004-11-29  Roger Sayle  <roger@eyesopen.com>
2705
2706         * reg-stack.c (change_stack): Improve algorithm used to pop regs
2707         off the stack to maximize ffreep usage and reduce fxch count.
2708
2709 2004-11-30  James A. Morrison  <phython@gcc.gnu.org>
2710
2711         PR middle-end/18596
2712         * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node
2713         on errors.
2714
2715 2004-11-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2716
2717         * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle
2718         REDUCE_BIT_FIELD by applying it to result, not input, of conversion.
2719
2720 2004-11-30  Ben Elliston  <bje@au.ibm.com>
2721
2722         * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H).
2723
2724 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2725
2726         PR c/18479
2727         * c-common.c (handle_visibility_attribute): When the type decl
2728         is really a identifier node, warn about being ignored and return.
2729
2730 2004-11-29  Richard Henderson  <rth@redhat.com>
2731
2732         * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node.
2733
2734 2004-11-29  Steven Bosscher  <stevenb@suse.de>
2735
2736         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge):
2737         Remove CASE_DROPS_THROUGH checks, it is never defined.
2738         * cfglyout.c (fixup_reorder_chain): Likewise.
2739         * cfgrtl.c (rtl_verify_flow_info): Likewise.
2740         * stmt.c (expand_case): Likewise.
2741         * cfgbuild.c (make_edges): Likewise.  Also remove force_fallthru,
2742         it is now always 0.
2743         * system.h (CASE_DROPS_THROUGH): Poison.
2744         * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2745         * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH.
2746
2747         * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH.
2748
2749 2004-11-29  Andrew Pinski  <pinskia@physics.uc.edu>
2750
2751         PR middle-end/18725
2752         * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be
2753         shared always.
2754
2755 2004-11-29  Diego Novillo  <dnovillo@redhat.com>
2756
2757         PR tree-optimization/18712
2758         * tree-into-ssa.c (insert_phi_nodes_for): Pass argument
2759         WORK_STACK by reference.
2760         Call VEC_safe_push instead of VEC_quick_push.
2761         Update all users.
2762
2763 2004-11-29  Daniel Jacobowitz  <dan@codesourcery.com>
2764
2765         PR c/7544
2766         * Makefile.in (c-lang.o): Update dependencies.
2767         * c-lang.c: Include "c-pragma.h".
2768         (finish_file): Call maybe_apply_pending_pragma_weaks.
2769         * c-pragma.c (maybe_apply_pending_pragma_weaks): New function.
2770         * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype.
2771
2772 2004-11-29  Richard Henderson  <rth@redhat.com>
2773
2774         PR target/17224
2775         * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets
2776         outside the referenced object.
2777
2778 2004-11-29  Kazu Hirata  <kazu@cs.umass.edu>
2779
2780         * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use
2781         EDGE_PRED instead of PHI_ARG_EDGE.
2782         * tree-ssa-live.c: Likewise.
2783         * tree-ssa-loop-manip.c: Likewise.
2784         * tree-ssa.c: Likewise.
2785
2786         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by
2787         simplifying edge manipulation.
2788
2789         * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using
2790         EDGE_COUNT.
2791
2792         * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge
2793         only when needed.
2794
2795         * cfg.c (flow_obstack): Remove.
2796         (flow_firstobj): Likewise.
2797         (init_flow): Remove all uses of flow_obstack.
2798
2799 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
2800
2801         * varasm.c (default_elf_select_section_1): Only pass DECL_P decl
2802         to named_section.
2803
2804 2004-11-29  Nathan Sidwell  <nathan@codesourcery.com>
2805
2806         * opts.c (decode_options): Do not set max-inline-insns-rtl.
2807         (common_handle_option): Likewise.
2808         * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove.
2809         * params.h (MAX_INLINE_INSNS_RTL): Remove.
2810         * doc/invoke.texi (max-inline-insns-rtl): Remove.
2811
2812 2004-11-29  Alan Modra  <amodra@bigpond.net.au>
2813
2814         PR target/9571
2815         * varasm.c (default_elf_select_section_1): Pass decl to named_section.
2816
2817 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
2818
2819         PR middle-end/18164
2820         * gimplify.c (gimplify_asm_expr): If the length of an output operand
2821         is zero, do not process it, just let it go through.
2822
2823 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2824             Diego Novillo  <dnovillo@redhat.com>
2825
2826         PR/18662, also backported from tree-cleanup-branch.
2827         * tree-ssa-ccp.c (substitute_and_fold): If replaced anything,
2828         always call maybe_clean_eh_stmt and modify_stmt.
2829
2830 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2831
2832         PR/18664
2833         * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
2834         Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
2835         * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
2836         add an inverse VIEW_CONVERT_EXPR to const_val.
2837
2838         PR/18657
2839         * tree-nested.c (check_for_nested_with_variably_modified): New.
2840         (create_nesting_tree): Call it.
2841
2842         * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
2843         special code for assigning to non-pointer.
2844         (is_escape_site): If RHS is a conversion between pointer and integer
2845         types,  this is an escape site.
2846
2847         * gcse.c (insert_store): Error if try to insert store on abnormal edge.
2848         (store_motion): Don't move store if any edge we'd want to move it
2849         to is abnormal.
2850
2851         * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with
2852         non-zero lower bound.
2853
2854         * expr.c (categorize_ctor_elements_1, case STRING_CST): New case.
2855
2856 2004-11-28  Matt Kraai  <kraai@alumni.cmu.edu>
2857
2858         PR diagnostic/17594
2859         * opts.c (find_opt): Require that the input match a switch exactly
2860         or that the switch take a joined option to be interpreted as a
2861         match for another language.
2862
2863 2004-11-28  Andrew Pinski  <pinskia@physics.uc.edu>
2864
2865         * timevar.def (TV_TREE_REDPHI): New timevar.
2866         * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id.
2867
2868 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2869
2870         PR preprocessor/17651
2871         * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply
2872         flag_no_line_commands.
2873         * c-ppoutput.c (pp_file_change): Remove now-redundant check of
2874         flag_no_output.
2875
2876 2004-11-28  Theodore A. Roth  <troth@openavr.org>
2877
2878         * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
2879         warning if the function name does not begin with "__vector" and the
2880         function has either the 'signal' or 'interrupt' attribute.
2881
2882 2004-11-28  Theodore A. Roth  <troth@openavr.org>
2883
2884         * config/avr/avr.c (avr_mcu_types): Add entries for atmega48,
2885         atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165,
2886         atmega325, atmega3250, atmega645 and atmega6450.
2887         * config/avr/avr.h (LINK_SPEC): Ditto.
2888         (LIB_SPEC): Ditto.
2889         (LIBGCC_SPEC): Ditto.
2890         (CRT_BINUTILS_SPECS): Ditto.
2891         * config/avr/t-avr (MULTILIB_MATCHES): Ditto.
2892
2893 2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2894
2895         PR preprocessor/17610
2896         * testsuite/gcc.dg/cpp/empty-include.c: New testcase.
2897
2898 2004-11-28  Jeff Law  <law@redhat.com>
2899
2900         * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New.
2901         (pass_maybe_create_global_var): New.
2902         * tree-pass.h (pass_maybe_create_global_var): Declare.
2903         * tree-optimize.c (init_tree_optimization_passes): Link in
2904         pass_maybe_create_global_var.
2905
2906 2004-11-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2907
2908         * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment.
2909
2910 2004-11-28  Ulrich Weigand  <uweigand@de.ibm.com>
2911
2912         PR rtl-optimization/18420
2913         * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change.
2914
2915 2004-11-28  Steven Bosscher  <stevenb@suse.de>
2916             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2917
2918         * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
2919         * config/vax/vax.md (casesi): Emit a test-and-branch to make sure
2920         that the case is in range, to make sure the casesi insn is always
2921         in range and never falls through.
2922         (casesi1): Add comment to explain why casesi never falls through.
2923         Remove the unnamed special case casesi pattern.
2924
2925 2004-11-28  Hans-Peter Nilsson  <hp@bitrange.com>
2926
2927         PR target/18331
2928         * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
2929         "*movdicc_real".  Only match reversible comparisons.
2930         ("*movdicc_real_nonreversible"): New pattern, split from
2931         "*movdicc_real".  Match only nonreversible comparisons.  Exclude
2932         reversed alternatives.
2933         ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
2934         Similar.
2935
2936 2004-11-27  Richard Henderson  <rth@redhat.com>
2937
2938         * config/ia64/ia64.md: Move all define_predicate's ...
2939         * config/ia64/predicates.md: ... here.  New file.
2940
2941 2004-11-27  Per Bothner  <per@bothner.com>
2942
2943         PR bootstrap/18142
2944         Re-applied following, with two modifications: add a URL for the
2945         fixed cctools; only exit if $build = $target.
2946
2947         2004-10-18  Kelley Cook  <kcook@gcc.gnu.org>
2948         * configure.ac (powerpc-*-darwin*): Require assembler to support
2949         .machine directive.
2950         * configure: Regenerate.
2951
2952 2004-11-28  David Edelsohn  <edelsohn@gnu.org>
2953
2954         PR target/16800
2955         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of
2956         EQ, GTU, and LTU costs.  Add costs for GT, LT, and UNORDERED.
2957         Distinguish between SImode and DImode CONST_INT.
2958
2959 2004-11-28  Andreas Fischer <a_fisch@gmx.de>
2960             Alan Modra  <amodra@bigpond.net.au>
2961
2962         PR target/16343
2963         * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow
2964         functions, strings and thread-local vars.
2965
2966 2004-11-28  Alan Modra  <amodra@bigpond.net.au>
2967
2968         * config/rs6000/rs6000.h (WORLD_SAVE_P): Define.
2969         * config/rs6000/darwin.h (WORLD_SAVE_P): Define.
2970         * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P
2971         to allow non-darwin ABIs to optimize away code.
2972         (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise.
2973
2974 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
2975
2976         * tree.c (operand_equal_for_phi_arg_p): New.
2977         * tree.h: Add a prototype for operand_equal_for_phi_arg_p.
2978         * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c:
2979         Replace operand_equal_p with operand_for_phi_arg_p
2980         appropriately.
2981
2982         * bb-reorder.c (find_traces_1_round): Speed up by using
2983         EDGE_COUNT instead of FOR_EACH_EDGE.
2984
2985         * fold-const.c, config/i386/linux64.h: Fix comment typos.
2986
2987 2004-11-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2988
2989         PR pch/14940
2990         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change.
2991
2992 2004-11-27  Kazu Hirata  <kazu@cs.umass.edu>
2993
2994         * config/i386/linux.h: Fix a comment typo.
2995         * doc/extend.texi: Fix a typo.
2996
2997 2004-11-27  Jeff Law  <law@redhat.com>
2998
2999         * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks
3000         are merged.
3001
3002 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
3003
3004         * config/i386/linux64.h (REG_NAME): Define.
3005
3006 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
3007
3008         * fold-const.c (extract_muldiv_1) <case ABS_EXPR>: If ctype is
3009         unsigned and type signed, build ABS_EXPR with signed_type (ctype)
3010         and only afterwards convert to ctype.
3011
3012 2004-11-27  Richard Sandiford  <rsandifo@redhat.com>
3013
3014         * config/mips/mips-protos.h (function_arg_boundary): Declare.
3015         * config/mips/mips.h (PARM_BOUNDARY): Simplify definition.
3016         (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise.
3017         (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function.
3018         * config/mips/mips.c (function_arg_boundary): New function.
3019         Impose a maximum alignment of STACK_BOUNDARY.
3020
3021 2004-11-27  Jakub Jelinek  <jakub@redhat.com>
3022
3023         PR rtl-optimization/17825
3024         * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new)
3025         or not.
3026
3027 2004-11-27  Alan Modra  <amodra@bigpond.net.au>
3028
3029         PR target/12769
3030         * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie
3031         from rs6000_default_long_calls for libcalls.
3032
3033 2004-11-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3034
3035         * expmed.c (extract_bit_field): When extracting from non-integer mode,
3036         force a SUBREG into a register because we may be taking a further
3037         SUBREG of it.
3038
3039 2004-11-27  Di-an Jan  <dianj@freeshell.org>
3040
3041         * doc/contrib.texi (Tim Josling): Remove nesting quotation marks.
3042
3043 2004-11-26  Robert Millan  <robertmh@gnu.org>
3044
3045         Changes for k*bsd-gnu support.
3046         * config/i386/linux.h: Define REG_NAME to allow overriding of
3047         register names in sc structure.
3048         * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead
3049         of sc->reg.
3050         * config.gcc: Detect x86_64-k*bsd-gnu systems.
3051
3052 2004-11-26  Jeff Law  <law@redhat.com>
3053
3054         * tree-ssa.c (verify_flow_sensitive_alias_info): Don't
3055         retrieve annotations or pointer info before it's necessary.
3056         Reorder tests for early continue of the loop.  Manually CSE
3057         SSA_NAME_VAR.
3058
3059 2004-11-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
3060
3061         * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'.
3062         * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0.
3063         (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC.
3064         * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move
3065         to a fixed reg if the source is the Return Address register.
3066         Implement new Rule 15.
3067         * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC.
3068         * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to
3069         sparc_dwarf_handle_frame_unspec.
3070         (gen_save_register_window): New function.
3071         (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc.
3072         (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec.
3073         (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement.
3074         Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns.
3075         (sparc_asm_function_prologue): Do not emit call frame debugging info.
3076         (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement.
3077         (sparc_expand_epilogue): Likewise.
3078         (sparc_dwarf_handle_frame_unspec): New function.
3079         * config/sparc/sparc.md (save_register_window): Remove.
3080         (save_register_windowdi): Rewrite modelled on the callframe debug info.
3081         (save_register_windowsi): Likewise.
3082
3083 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
3084
3085         * config/frv/frv-protos.h: Guard ifcvt functions declarations with
3086         BB_HEAD, not BLOCK_HEAD.
3087
3088 2004-11-26  Alexandre Oliva  <aoliva@redhat.com>
3089
3090         * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone
3091         scratch insns that set a register live at the join point.
3092
3093 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
3094
3095         * cse.c, tree-ssa-operands.c: Fix comment typos.
3096
3097         * tree-cfg.c (tree_split_edge): Speed up by using find_edge.
3098
3099 2004-11-26  James A. Morrison  <phython@gcc.gnu.org>
3100
3101         PR target/18510
3102         * doc/extend.texi (SPARC VIS Built-in Functions): New section.
3103
3104 2004-11-26  Kazu Hirata  <kazu@cs.umass.edu>
3105
3106         * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the
3107         check that tests if all edges go to the same destination.
3108
3109         * bitmap.c (bitmap_find_bit): Speed up by traversing from
3110         head->first if that seems profitable.
3111
3112 2004-11-25  Jeff Law  <law@redhat.com>
3113
3114         * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars.
3115         * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT.
3116         (pass_loop_done): Use TV_TREE_LOOP_FINI.
3117
3118 2004-11-26  Alan Modra  <amodra@bigpond.net.au>
3119
3120         PR rtl-optimization/16356
3121         * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with
3122         separate output register and one less jump.  Enable for powerpc64.
3123         (floatdisf2): Adjust for above.
3124
3125 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
3126
3127         * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0.
3128         (GCC_DRIVER_HOST_INITIALIZATION): Define.
3129
3130 2004-11-25  Andrew Pinski  <pinskia@physics.uc.edu>
3131
3132         PR middle-end/17957
3133         * tree-complex.c (vector_inner_type): New variable moved from
3134         build_word_mode_vector_type.
3135         (vector_last_type): Likewise.
3136         (vector_last_nunits): Likewise.
3137         (build_word_mode_vector_type): Use the new variables.
3138         * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H).
3139         (GTFILES): Add tree-complex.c.
3140         (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules.
3141
3142 2004-11-25  Bob Wilson  <bob.wilson@acm.org>
3143
3144         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define
3145         __XTENSA_WINDOWED_ABI__.
3146
3147 2004-11-25  Richard Henderson  <rth@redhat.com>
3148
3149         * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument.  Save
3150         args_size adjustments for calls even with cfa as stack pointer.
3151         Search calls for stack adjustments after the insn is issued.
3152         (dwarf2out_frame_debug): Add after_p argument; pass it on.
3153         * dwarf2out.h (dwarf2out_frame_debug): Update to match.
3154         * final.c (final_start_function, final_scan_insn): Likewise.
3155
3156 2004-11-25  Richard Henderson  <rth@redhat.com>
3157
3158         PR c++/6764
3159         * reload1.c (set_initial_eh_label_offset): New.
3160         (set_initial_label_offsets): Use it.
3161
3162 2004-11-25  Kaz Kojima  <kkojima@gcc.gnu.org>
3163
3164         * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks
3165         before calling life_analysis and release them after.
3166
3167 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
3168
3169         * tree-ssa-forwprop.c (substitute_single_use_vars): Remove
3170         duplicate code.
3171
3172 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
3173
3174         * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not
3175         BITMAP_OBSTACK_ALLOC.
3176         (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE.
3177
3178 2004-11-25  Andrew Pinski <pinskia@physics.uc.edu>
3179
3180         parts of PR rtl-opt/18463, rtl-opt/17647
3181         * cse.c (canon_for_address): New function.
3182         (find_best_addr): Call canon_for_address before getting the
3183         address's cost when checking if we should take that address.
3184
3185 2004-11-25  Kazu Hirata  <kazu@cs.umass.edu>
3186
3187         * tree-phinodes.c (add_phi_arg): Take "tree" instead of
3188         "tree *" as the first argument.
3189         * tree-flow.h: Update the prototype of add_phi_arg.
3190         * lambda-code.c, tree-cfg.c, tree-into-ssa.c,
3191         tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c,
3192         tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c,
3193         tree-vectorizer.c: Update all call sites of add_phi_arg.
3194
3195 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
3196
3197         * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
3198         * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove.
3199         (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC.
3200         (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE.
3201
3202 2004-11-25  Andrew MacLeod  <amacleod@redhat.com>
3203
3204         PR tree-optimization/18587
3205         * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag
3206         call clobbered caches as invalid.
3207         * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New.  Flag
3208         indicating whether the call clobbered operand cache is valid.
3209         (ssa_ro_call_cache_valid): New.  Flag indicating whether the
3210         pure/const call operand cache is valid.
3211         (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New.  Cached
3212         list of operands for cached call virtual operands.
3213         (clobbered_aliased_loads, clobbered_aliased_stores,
3214         ro_call_aliased_load): New.  flags caching whether alias bits are
3215         to be set in call stmt's.
3216         (fini_ssa_operands): Remove call operand caches if present.
3217         (get_expr_operands, get_asm_expr_operands,
3218         get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand.
3219         (get_call_expr_operands): Add call clobbered variables first.
3220         (add_stmt_operand): Take stmt annotation rather than stmt as a param.
3221         (add_call_clobber_ops, add_call_read_ops): Use the call operand cache
3222         if it is valid, otherise fill the cache.
3223         * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern.
3224         * tree-flow.h (struct var_ann_d): Add in_vuse_list and
3225         in_v_may_def_list bits.
3226         * tree-ssa-operands.c (cleanup_v_may_defs): New.  Clear the
3227         in_list bits for the v_may_def elements and empty the operand
3228         build array
3229         (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant
3230         VUSES by checking the in_v_may_def_list bit.
3231         (append_v_may_def, append_vuse): Use the in_list bit rather than
3232         scanning the array for duplicates.
3233
3234 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
3235
3236         * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF
3237         displacements are not short.
3238
3239 2004-11-25  Ulrich Weigand  <uweigand@de.ibm.com>
3240
3241         * config/s390/s390.c (legitimize_pic_address): Use s390_load_address
3242         to load addresses.
3243
3244 2004-11-25  Mark Mitchell  <mark@codesourcery.com>
3245
3246         PR c++/18001
3247         * c-common.h (lvalue_use): Move here from c-ctypeck.c.
3248         (lvalue_or_else): Declare.
3249         * c-common.c (lvalue_or_else): Move here from c-typeck.c.
3250         * c-typeck.c (lvalue_use): Remove.
3251         (lvalue_or_else): Remove.
3252
3253         PR c++/18556
3254         * toplev.c (check_global_declarations): Set DECL_IGNORED_P on
3255         unemitted variables with static storage duration.
3256
3257 2004-11-25  Gerald Pfeifer  <gerald@pfeifer.com>
3258
3259         * tree-cfg.c (tree_verify_flow_info): Do not terminate error()
3260         message with \n.
3261
3262 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
3263
3264         * config/rs6000/altivec.md (VIshort): New mode macro.
3265         (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace
3266         with ...
3267         (altivec_vaddu<VI_char>s): ... this.
3268         (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace
3269         with ...
3270         (altivec_vadds<VI_char>s): ... this.
3271         (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace
3272         with ...
3273         (altivec_vsubu<VI_char>s): ... this.
3274         (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace
3275         with ...
3276         (altivec_vsubs<VI_char>s): ... this.
3277         (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace
3278         with ...
3279         (altivec_vavgu<VI_char>): ... this.
3280         (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace
3281         with ...
3282         (altivec_vavgs<VI_char>): ... this.
3283         (altivec_vmsumubm, altivec_vmsumuhm): Replace with ...
3284         (altivec_vmsumu<VI_char>m): ... this.
3285         (altivec_vmsummbm, altivec_vmsummhm): Replace
3286         with ...
3287         (altivec_vmsumm<VI_char>m): ... this.
3288         (altivec_vandc): Remove.
3289         (*andc<mode>3): Renamed to ...
3290         (andc<mode>3): ... here. Swap operand 1 and 2 numbering.
3291         (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace
3292         with ...
3293         (altivec_vrl<VI_char>): ... this.
3294         (altivec_vslb, altivec_vslh, altivec_vslw): Replace
3295         with ...
3296         (altivec_vsl<VI_char>): ... this.
3297         (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace
3298         with ...
3299         (altivec_vsr<VI_char>): ... this.
3300         (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace
3301         with ...
3302         (altivec_vsra<VI_char>): ... this.
3303         (altivec_vsum4sbs, altivec_vsum4shs): Replace with ...
3304         (altivec_vsum4s<VI_char>s): ... this.
3305         (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace
3306         with ...
3307         (altivec_vperm_<mode>): ... this.
3308         (altivec_vsel_4sf): Rename to ...
3309         (altivec_vsel_v4sf): ... here.
3310         (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace
3311         with ...
3312         (altivec_vsel_<mode>): ... this.
3313         (altivec_vsldoi_4si, altivec_vsldoi_8hi,
3314         altivec_vsldoi_16qi): Rename to ...
3315         (altivec_vsldoi_v4si, altivec_vsldoi_v8hi,
3316         altivec_vsldoi_v16qi): ... here.
3317         (altivec_vsldoi_4sf): Rename to ...
3318         (altivec_vsldoi_v4sf): ... here.
3319         (altivec_predicate_v4si, altivec_predicate_v8hi,
3320         altivec_predicate_v16qi): Replace with ...
3321         (altivec_predicate_<mode>): ... this.
3322         (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace
3323         with ...
3324         (altivec_lve<VI_char>x): ... this.
3325         (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace
3326         with ...
3327         (altivec_stve<VI_char>x): ... this.
3328         (absv16qi2, absv8hi2, absv4si2): Replace
3329         with ...
3330         (abs<mode>2): ... this.
3331         (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace
3332         with ...
3333         (altivec_abss_<mode>): ... this.
3334         (vec_realign_load_v16qi, vec_realign_load_v8hi,
3335         vec_realign_load_v4si): Replace with ...
3336         (vec_realign_load_<mode>): ... this.
3337         * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked
3338         insn names.
3339         (rs6000_expand_ternop_builtin): Likewise.
3340
3341 2004-11-25  Andrew Haley  <aph@redhat.com>
3342
3343         * gcc.c (process_command): Don't supply -v to linker.
3344
3345 2004-11-25  Joseph S. Myers  <joseph@codesourcery.com>
3346
3347         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs
3348         instead of `%s' in diagnostic.
3349
3350 2004-11-25  Nathan Sidwell  <nathan@codesourcery.com>
3351
3352         * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust.
3353         (FREE_REG_SET): Adjust.
3354         * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap.
3355         * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ...
3356         (BITMAP_ALLOC): ... here.
3357         (BITMAP_OBSTACK_FREE): Rename to ...
3358         (BITMAP_FREE): Don't check for NULL bitmap here.
3359         * tree-ssa-pre.c (value_insert_into_set_bitmap,
3360         bitmap_set_new): Use new names.
3361
3362         * bt-load.c (migrate_btr_defs): Remove unneeded NULL check.
3363         * df.c (df_free): Likewise.
3364         * ra-build.c (ra_build_free, ra_build_free_all): Likewise.
3365         * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise.
3366
3367         * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ...
3368         (ALLOC_REG_SET): ... here.
3369         (FREE_REG_SET): Adjust.
3370         (XMALLOC_REG_SET, XFREE_REG_SET): Remove.
3371         * bb-reorder.c (fix_crossing_conditional_branches): Adjust.
3372         * cfglayout.c (cfg_layout_duplicate_bb): Adjust.
3373         * cfgrtl.c (rtl_split_block, rtl_split_edge,
3374         safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust.
3375         * flow.c (update_life_info, calculate_global_regs_live,
3376         allocate_bb_life_data, init_propagate_block_info): Adjust.
3377         * global.c (build_insn_chain): Adjust.
3378         * ifcvt.c (dead_or_predicable): Adjust.
3379         * loop-iv.c (simplify_using_initial_values): Adjust.
3380         * recog.c (peephole2_optimize): Adjust.
3381         * sched-deps.c (init_deps_global): Adjust.
3382
3383 2004-11-25  Ralf Corsepius <ralf.corsepius@rtems.org>
3384
3385         * config.gcc (avr-*-rtems*): Fix typo.
3386
3387 2004-11-25  J"orn Rennecke <joern.rennecke@st.com>
3388
3389         * sh.c (sh_output_mi_thunk): Do not call regset_release_memory.
3390
3391 2004-11-24  Jeff Law  <law@redhat.com>
3392
3393         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce
3394         the number of queries to random elements in the ai->written_vars
3395         bitmap.
3396
3397 2004-11-24  Roger Sayle  <roger@eyesopen.com>
3398
3399         * config/i386/i386.c (override_options): Disable x87 fancy math
3400         intrinsics if -mfpmath= doesn't include 387 (default on x86_64).
3401
3402 2004-11-24  Roger Sayle  <roger@eyesopen.com>
3403
3404         * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a
3405         system header conflict on AIX 5.2.
3406         * configure: Regenerate.
3407
3408 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3409
3410         * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx
3411         instead of calling phi_arg_from_edge.
3412
3413         * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge
3414         with e->dest_idx.
3415
3416 2004-11-24  Ben Elliston  <bje@au.ibm.com>
3417
3418         * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove.
3419         * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise.
3420         * config/i386/i386-protos.h (i386_dwarf_output_addr_const):
3421         Likewise.
3422
3423 2004-11-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3424
3425         * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS.
3426
3427         * tree-inline.c (copy_body_r): Explicitly copy a constant if the
3428         type will be remapped.
3429
3430 2004-11-24  Steven Bosscher  <stevenb@suse.de>
3431
3432         * c-opts.c (c_common_post_options): Don't clear
3433         flag_inline_functions.
3434         * dojump.c (clear_pending_stack_adjust): Remove check on
3435         flag_inline_functions, it's always true.
3436         * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter
3437         that can never trigger.
3438         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at
3439         flag_inline_trees, now that flag_inline_functions is never
3440         cleared.
3441         * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set
3442         flag_inline_functions at optimization levels greater than
3443         or equal to 3.  This is already done by default.
3444
3445 2004-11-24  Kazu Hirata  <kazu@cs.umass.edu>
3446
3447         * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx
3448         instead to find the PHI argument.  Do not take I as an
3449         argument.
3450         (eliminate_phi): Adjust the call to eliminate_build.  Do not
3451         take I as an argument.
3452         (rewrite_trees): Adjust the call to eliminate_phi.
3453
3454 2004-11-24  Richard Sandiford  <rsandifo@redhat.com>
3455
3456         * optabs.h (force_expand_binop): Declare.
3457         * optabs.c (force_expand_binop): Export.
3458         * stmt.c (shift_return_value): Delete.
3459         (expand_return): Don't call it.
3460         * expr.h (shift_return_value): Declare.
3461         * calls.c (shift_returned_value): Delete in favor of...
3462         (shift_return_value): ...this new function.  Leave the caller to check
3463         for non-BLKmode values passed in the msb of a register.  Take said mode
3464         and a shift direction as argument.  Operate on the hard function value,
3465         not a pseudo.
3466         (expand_call): Adjust accordingly.
3467         * function.c (expand_function_start): If a non-BLKmode return value
3468         is padded at the last significant end of the return register, use the
3469         return value's natural mode for the DECL_RESULT, not the mode of the
3470         padded register.
3471         (expand_function_end): Shift the same sort of return values left by
3472         the appropriate amount.
3473
3474 2004-11-24  Matt Austern  <austern@apple.com>
3475
3476         * recog.c (recog_memoized_1): Remove.
3477         * recog.h (recog_memoized_1): Remove declaration.
3478         (recog_memoized): Change from macro to inline function.
3479
3480 2004-11-24  Devang Patel  <dpatel@apple.com>
3481
3482         PR/18555
3483         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot.
3484         * config/darwin-c.c (darwin_register_frameworks): Use sysroot.
3485
3486 2004-11-24  Devang Patel  <dpatel@apple.com>
3487
3488         * gcc.c (process_command): Supply -v to linker.
3489
3490 2004-11-24  David Edelsohn  <edelsohn@gnu.org>
3491             Paolo Bonzini  <bonzini@gnu.org>
3492
3493         * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec
3494         vector modes without ALTIVEC_ABI.  Use GCC vector instead of
3495         synthetic vector.
3496         (rs6000_pass_by_reference): Split conditional into pieces.  Use
3497         GCC vector instead of synthetic vector.
3498
3499 2004-11-24  Aldy Hernandez  <aldyh@redhat.com>
3500
3501         * tree.c (recompute_tree_invarant_for_addr_expr): The address of a
3502