OSDN Git Service

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