OSDN Git Service

2004-06-03 Chris Demetriou <cgd@broadcom.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
2
3         * config/mips/mips.c (struct irix_section_align_entry): Fix
4         GTY marker.
5
6 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
7
8         * toplev.c (check_global_declarations): Don't ask for
9         DECL_ASSEMBLER_NAME unless the function really is declared
10         static and not defined.
11
12 2004-06-03  Matt Austern  <austern@apple.com>
13
14         PR c++/15428
15         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
16         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
17         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
18         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
19         documentation to reflect the new macro name and to clarify its 
20         meaning.
21         
22 2004-06-04  Steven Bosscher  <stevenb@suse.de>
23
24         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
25
26 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
27
28         * config/darwin.c (machopic_indirect_data_reference): Copy
29         the SYMBOL_REF_DECL from the original RTX for the new
30         non-lazy pointer RTX.
31
32 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
33
34         * tree.h: Remove include of version.h
35         * c-cppbuiltin.c: Include version.h
36         * diagnostic.c: Include version.h
37         * dwarf2out.c: Include version.h
38         * toplev.c: Include version.h
39         * vmsdbgout.c: Include version.h
40         * Makefile.in: Remove dependency on version.h from TREE_H, and
41         add dependencies to required .o targets
42
43 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
44
45         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
46         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
47         (TARGET_H): Add insn-modes.h.
48         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
49         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
50         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
51         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
52         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
53         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
54         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
55         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
56         CFGLAYOUT_H.
57         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
58         Replace ra.h with RA_H.
59         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
60         insn-recog.o): Replace resource.h with RESOURCE_H.
61         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
62         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
63         with SCHED_INT_H.
64         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
65         ra-rewrite.o): Replace df.h with DF_H.
66         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
67         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
68         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
69         (insn-conditions.o): Remove unused reload.h.
70         * cfglayout.h: Add include guard.  Include basic-block.h.
71         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
72         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
73         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
74         basic-block.h.
75         * genconditions.c:  Remove reload.h.
76         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
77         hard-reg-set.h, insn-modes.h.
78         * resource.h: Add include guard.  Include hard-reg-set.h.
79         * sched-int.h:  Add include guard.  Include insn-attr.h,
80         basic-block.h, rtl.h.
81         * target.h: Add include guard.  Include insn-modes.h.
82         * tree-ssa-live.h: Include partition.h.
83
84 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
85                 Kenneth Zadeck <zadeck@naturalbridge.com>
86
87         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
88         (add_var_to_ssa_edges_worklist): Add value argument.
89         Update callers.
90         Use new worklist.
91         (process_ssa_edge_worklist): New function.
92         (tree_ssa_ccp): Move worklist processing core to 
93         process_ssa_edge_worklist, and just call that for the two worklists.
94
95 2004-06-03  Steven Bosscher  <stevenb@suse.de>
96
97         * basic-block.c (tail_recursion_label_list): Don't declare.
98         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
99         accordingly.
100         * cfgbuild.c (find_label_refs): Remove.
101         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
102         * cfgcleanup.c (tail_recursion_label_p): Remove.
103         (merge_blocks_move): Do not check for tail recursion.
104         (try_optimize_cfg): Likewise.
105         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
106         * cfgrtl.c (tail_recursion_label_list): Remove.
107         * except.c (remove_unreachable_regions): Don't handle
108         CALL_PLACEHOLDER insns.
109         (convert_from_eh_region_ranges_1, can_throw_internal,
110         can_throw_external): Likewise.
111         * function.c (free_after_compilation): Don't clear
112         x_tail_recursion_label.
113         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
114         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
115         (reorder_blocks_1): Likewise.
116         * function.h (struct function): Remove x_tail_recursion_label
117         member.  Don't define tail_recursion_label.
118         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
119         * print-rtl.c (print_rtx): Likewise.
120         * rtl.def (CALL_PLACEHOLDER): Remove.
121         * rtl.h (sibcall_use_t): Remove enum.
122         (optimize_sibling_and_tail_recursive_calls,
123         replace_call_placeholder): Remove function prototypes.
124         * stmt.c (tail_recursion_args): Remove.
125         (optimize_tail_recursion): Remove.
126         (expand_return): Don't check for possible tail recursion.
127         * tree.h (optimize_tail_recursion): Remove prototype.
128
129 2004-06-02  Jan Hubicka  <jh@suse.cz>
130
131         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
132         return_stmt.
133
134 2004-06-02  Jason Merrill  <jason@redhat.com>
135
136         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
137         Do include c-parse.in.
138
139 2004-06-02  Eric Christopher  <echristo@redhat.com>
140
141         * c-typeck.c (common_type): Don't lose type qualifiers
142         when creating new variants.
143
144 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
145
146         PR tree-optimization/14042
147         PR tree-optimization/14729
148         PR tree-optimization/14736
149         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
150         Check the type which the pointer points to
151         instead of the pointer types.
152
153 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
154
155         PR tree-optimization/15738.
156         * builtins.c (fold_builtin_strchr): Transform
157         strrchr (s, '\0') to strchr (s, '\0').
158
159 2004-06-02  Steven Bosscher  <stevenb@suse.de>
160
161         * i386.c (ix86_adjust_cost): Don't increase the cost for
162         load+operation for PROCESSOR_PENTIUMPRO, it is already
163         modelled in the DFA description
164
165 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
166
167         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
168         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
169         (ALIAS_H, EMIT_RTL_H): New.
170         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
171         (cfgcleanup.o): Add EMIT_RTL_H.
172         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
173         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
174         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
175         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
176         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
177         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
178         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
179         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
180         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
181         set_mem_size): Move to emit-rtl.h.
182         * emit-rtl.h: New.
183         * alias.h: New.
184
185 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
186
187         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
188         Call fixup_memory_subreg only if the MEM is equal to 'var'.
189         Adjust recursive calls to self.
190         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
191
192 2004-06-01  Richard Henderson  <rth@redhat.com>
193             Andrew Pinski  <pinskia@physics.uc.edu>
194
195         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
196         (primary): Handle offsetof.  Add error productions for faux functions.
197         Move component_ref objc checking to build_component_ref.
198         (reswords): Add offsetof.
199         (rid_to_yy): Add offsetof.
200         * c-tree.h (build_offsetof): Declare.
201         * c-common.h (objc_is_public): Declare.
202         * c-typeck.c (build_component_ref): Check objc_is_public.
203         (build_offsetof): New.
204         * stub-objc.c (objc_is_public): New.
205         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
206         from is_public.
207         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
208         * doc/extend.texi (Offsetof): Move from C++ section to C section
209         and rewrite for __builtin_offsetof.
210
211 2004-06-01  Peter Barada  <peter@the-baradas.com>
212             Peter Jakubek  <peter@laseranimation.com>
213
214         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
215         a scratch to perform an add to memory.
216
217 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
218
219         PR target/14018
220         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
221         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
222         m68k_align_funcs): Remove.
223         (override_options): Remove code to handle -malign-* options.
224         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
225         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
226         (m68k_align_loops_string, m68k_align_jumps_string,
227         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
228         m68k_align_funcs): Remove definitions.
229
230 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
231
232         PR target/15626
233         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
234         by the Sun linker in conjunction with the Sun assembler.
235         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
236
237 2004-06-01  Jeff Law  <law@redhat.com>
238
239         * stmt.c (expand_decl): Be more selective about calling
240         mark_reg_pointer.
241
242 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
243
244         PR objc/7993
245         * objc-act.c (is_private): Do not emit the 'instance variable %s
246         is declared private' error.
247         (is_public): Emit the error after calling is_private.
248         (lookup_objc_ivar): If the instance variable is private, return 0
249         - the instance variable is invisible here.
250
251 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
252
253         * doc/invoke.texi (-static-libgcc): Explicitly mention
254         non-GNU linkers.
255
256 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
257
258         PR target/12968
259         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
260
261 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
262
263         PR c/15749
264         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
265         misuses of structures with flexible array members if
266         in_system_header.
267
268 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
269
270         PR target/15693
271         * config/sparc/sparc.c (compare_operand): New predicate.
272         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
273         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
274         operand is a ZERO_EXTRACT and the second operand is not zero,
275         force the former to a register.
276         (cmpdi expander): Likewise.
277
278 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
279
280         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
281         looks at.
282         * alias.c (alias_invariant_size): Make alias_invariant_size
283         static, fix GTY marker.
284
285 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
286
287         PR tree-optimization/15743.
288         * builtins.c (fold_builtin_1): Fold index() and rindex().
289
290 2004-05-31  Roger Sayle  <roger@eyesopen.com>
291
292         PR middle-end/15069
293         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
294         into "X < 0" (where C is the signbit) if X's type is a full mode.
295
296 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
297
298         * pa.md: Disable the peephole2 patterns that generate indexed
299         floating-point stores when indexing is disabled.
300
301 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
302
303         * c-pretty-print.c (pp_c_left_bracket): Make a function.
304         (pp_c_right_bracket): Likewise.
305         (pp_c_star): Likewise.
306         (pp_c_ampersand): Define.
307         * c-pretty-print.h (pp_c_left_bracket): Declare.
308         (pp_c_right_bracket): Likewise.
309         (pp_c_star): Likewise.
310         (pp_c_ampersand): Likewise.
311
312 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
313
314         * config/sol2.h (__enable_execute_stack): ANSIfy function
315         definition.
316
317 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
318
319         * c-incpath.c (add_path): Canonicalize paths to use '/' if
320         HAVE_DOS_BASED_FILESYSTEM.
321
322 2004-05-31  Steven Bosscher  <stevenb@suse.de>
323
324         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
325         Only look at case labels if the immediate dominator is also
326         the only predecessor.  Don't look for more case labels if the
327         first seen is a case range.
328
329 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
330
331         * builtins.c: Add a prototype for fold_builtin_strchr().
332
333 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
334
335         Revert this patch:
336         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
337
338         * combine.c (gen_binary): Remove.
339         (known_cond, simplify_shift_const
340         find_split_point, combine_simplify_rtx,
341         simplify_if_then_else, simplify_set,
342         simplify_logical, expand_field_assignment,
343         extract_left_shift, force_to_mode,
344         if_then_else_cond, apply_distributive_law,
345         simplify_and_const_int, simplify_shift_const,
346         gen_lowpart_for_combine, simplify_comparison,
347         reversed_comparison): Replace with
348         simplify_gen_binary, simplify_gen_relational or
349         distribute_and_simplify_rtx.
350         (distribute_and_simplify_rtx): New function.
351
352 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
353
354         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
355         when generating PIC code.
356
357 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
358
359         * c-decl.c (c_expand_body_1): Remove and fold back into ...
360         (c_expand_body): here.
361         (c_expand_decl): Move to ...
362         * c-common.c (c_expand_decl): Here and remove check for nested
363         functions.
364         * c-common.h (c_expand_decl): Add prototype.
365         * c-tree.h (c_expand_decl): Remove.
366
367 2004-05-30  Roger Sayle  <roger@eyesopen.com>
368
369         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
370         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
371         fold_mathfn_compare, fold_inf_compare, fold,
372         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
373         Use constant_boolean_node where appropriate.  Don't bother using
374         fold_convert on the second argument to omit_one_operand.
375
376 2004-05-30  Roger Sayle  <roger@eyesopen.com>
377
378         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
379         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
380         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
381         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
382         Add missing (but documented) tree nodes to the index.
383
384 2004-05-30  Steven Bosscher  <stevenb@suse.de>
385
386         PR tree-optimization/14819
387         * builtins.c (fold_builtin_strchr): New.
388         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
389         with fold_builtin_strchr().
390
391 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
392
393         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
394         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
395         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
396         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
397         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
398         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
399         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
400         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
401         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
402         formatting.
403
404 2004-05-30  Steven Bosscher  <stevenb@suse.de>
405
406         * gimplify.c (sort_case_labels): New.  Split out from...
407         (gimplify_switch_expr): ...here.  Use it.
408         * tree-eh.c (lower_try_finally_switch): Sort the labels of
409         the SWITCH_EXPR created here before leaving the function.
410         * tree.c (sort_case_labels): Add prototype.
411
412 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
413
414         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
415         of BOOLEAN_TYPE.
416
417 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
418
419         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
420         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
421         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
422         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
423         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
424         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
425         comment typos.  Follow spelling conventions.
426
427 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
428
429         * gengtype-yacc.y: Add NESTED_PTR token.
430         (option): Record `nested_ptr' option.
431         * gengtype-lex.l: Handle `nested_ptr' keyword.
432         * gengtype.c (walk_type): Process `nested_ptr' option.
433         * gengtype.h (struct nested_ptr_data): New.
434         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
435         * stringpool.c (struct string_pool_data): Make 'entries' point to
436         ht_identifier instead of tree.
437         (gt_pch_save_stringpool): Don't adjust pointers.
438         (gt_pch_restore_stringpool): Call ht_load.
439
440 2004-05-29  Jason Merrill  <jason@redhat.com>
441
442         * gimplify.c (gimplify_expr): Don't build a statement list
443         if no gimplification was necessary.
444
445 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
446
447         * pretty-print.c (pp_base_format_text): Support %< instead of %`
448         and %> as well as %'.
449         * c-format.c: Use %< and %>.
450         (gcc_diag_char_table, gcc_cdiag_char_table,
451         gcc_cxxdiag_char_table): Update.
452
453 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
454
455         * c-typeck.c (common_type): Correct comment.
456
457 2004-05-29  Peter Barada  <peter@the-baradas.com>
458
459         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
460         * config/m68k/m68k.c (const_method): Likewise.
461         * config/m68k/m68k.c (const_int_cost): Likewise.
462         * config/m68k/m68k.c (const_int_cost): Likewise.
463         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
464
465 2004-05-29  Peter Barada  <peter@the-baradas.com>
466
467         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
468         addressing.
469         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
470         movsi,movhi,movqi insn patterns.
471
472 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
473
474         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
475
476         PR target/15720
477         * config/darwin.c (machopic_indirect_call_target): Copy
478         the SYMBOL_REF_DECL from the original RTX for the new
479         stub RTX.
480
481 2004-05-28  DJ Delorie  <dj@redhat.com>
482
483         * stor-layout.c (place_field): Revert erroneous commit.
484
485 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
486
487         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
488         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
489         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
490         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
491         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
492         vec_ste): Remove type checks for integral parameters and literals
493         from '..._args_eq' macros.
494
495 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
496
497         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
498
499 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
500
501         * testsuite/g++.dg/charset/function.cc: New.
502
503         * testsuite/gcc.dg/charset/function.c: New.
504
505         * c-decl.c (c_make_fname_decl): Free return value from
506         fname_as_string.
507
508         * cp/decl.c (cp_make_fname_decl): Free return value from
509         fname_as_string.
510
511         * c-common.c (fname_as_string): Translate if necessary.
512
513 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
514
515         * stringpool.c: Add comments to PCH saving/restoring routines.
516
517 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
518
519         * c-common.c (c_estimate_num_insns_1): Kill.
520         (c_estimate_num_insns): Kill.
521         * c-common.h (c_estimate_num_insns): Kill.
522
523         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
524         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
525         Remove comment about not checking for
526         _POSIX_PRIORITY_SCHEDULING.
527         * gthr-posix.c: Likewise.
528
529 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
530             Roger Sayle  <roger@eyesopen.com>
531
532         PR rtl-optimization/15649
533         Add LTGT_EXPR and improve pretty-printing of unordered
534         comparisons.
535         * c-common.c (c_common_truthvalue_conversion):
536         Handle LTGT_EXPR.
537         * c-typeck.c (build_binary_op): Likewise.
538         * dojump.c (do_jump): Likewise.
539         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
540         * predict.c (tree_predict_by_opcode): Likewise.
541         * real.c (real_compare): Likewise.
542         * tree-cfg.c (verify_expr): Likewise.
543         * tree-inline.c (estimate_num_insns_1): Likewise.
544         * tree-pretty-print.c (dump_generic_node): Likewise.
545         Handle ORDERED_EXPR, UNORDERED_EXPR.
546         (op_symbol): Print unordered comparisons differently
547         than ordered ones.
548         * tree.def (LTGT_EXPR): New '<' tree code.
549         * doc/c-tree.texi (Expressions): Document floating-point
550         comparison nodes.
551
552         Fold comparisons between floating point values.
553         * fold-const.c (enum comparison_code): New, from
554         #define'd constants.  Define compcodes for unordered
555         comparisons and for invalid transformations.
556         (invert_tree_comparison): Add "honor_nans" parameter.
557         (fold_truthop): Revamp to work on floating-point types too.
558         (comparison_to_compcode): Support unordered comparisons.
559         Use new enum comparison_code.
560         (compcode_to_comparison): Likewise.
561         (combine_compcodes): New function.
562         (invert_truthvalue): Let invert_tree_comparison decide
563         whether it is valid to fold the comparison.  Fold ORDERED
564         and UNORDERED even if flag_unsafe_math_optimizations is off,
565         and the remaining even if flag_unsafe_math_optimizations
566         is off but we are under -fno-trapping-math.
567         (fold_relational_const): Integer modes do not honor NaNs.
568
569 2004-05-28  Paul Brook  <paul@codesourcery.com>
570
571         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
572
573 2004-05-28  Paul Brook  <paul@codesourcery.com>
574
575         * config/arm/arm.c (thumb_force_lr_save): New function.
576         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
577         thumb_output_function_prologue): Use it.
578         (thumb_expand_prologue): Set lr_save_eliminated.
579
580 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
581
582         * config/mips/mips.md (extendsidi2): Tie the source and destination
583         of the register alternative.  Split it into nothing.
584
585 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
586
587         * rtl.h (skip_consecutive_labels): Declare.
588         * emit-rtl.c (skip_consecutive_labels): New function.
589         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
590         * jump.c (follow_jumps): Say what null return values mean.
591
592 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
593
594         PR target/13250
595         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
596
597 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
598
599         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
600         libgcc-std.ver.
601         * config/sh/libgcc-std.ver: New file.
602
603 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
604
605         * except.c: Revert change of 2004-05-26.
606         * config/i386/i386.md: Revert change of 2004-05-27.
607
608 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
609
610         * configure.ac: Remove --enable-tree-browser option.
611         Define TREEBROWSER when ac_tree_checking is defined.
612         * configure: Rebuilt.
613
614 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
615
616         * expr.c (store_constructor): Restore sanity check on
617         the size of the type before clearing.
618
619 2004-05-27  Jan Hubicka  <jh@suse.cz>
620
621         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
622
623 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
624
625         * combine.c (gen_binary): Remove.
626         (known_cond, simplify_shift_const
627         find_split_point, combine_simplify_rtx,
628         simplify_if_then_else, simplify_set,
629         simplify_logical, expand_field_assignment,
630         extract_left_shift, force_to_mode,
631         if_then_else_cond, apply_distributive_law,
632         simplify_and_const_int, simplify_shift_const,
633         gen_lowpart_for_combine, simplify_comparison,
634         reversed_comparison): Replace with
635         simplify_gen_binary, simplify_gen_relational or
636         distribute_and_simplify_rtx.
637         (distribute_and_simplify_rtx): New function.
638         * simplify-rtx.c (simplify_binary_operation):
639         Use nonzero_bits to simplify ANDs where we are
640         turning off bits already known to be off in OP0.
641
642 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
643
644         PR target/14478
645         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
646
647 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
648
649         PR middle-end/14084
650         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
651         to size of decl.
652
653 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
654
655         PR/14924
656         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
657
658 2004-05-26  Roger Sayle  <roger@eyesopen.com>
659
660         * tree.h: Fix comment typo.
661
662 2004-05-27  Steven Bosscher  <stevenb@suse.de>
663
664         * gimplify.c (compare_case_labels): New function.
665         (gimplify_switch_expr): Sort case labels, and make sure the
666         last label in the label vector is the default case.
667         * tree-cfg.c (group_case_labels): New function.
668         (build_tree_cfg): Cleanup redundant labels and group case labels
669         before creating edges.
670         (cleanup_dead_labels): Handle GOTO_EXPRs.
671         (find_case_label_for_value): Use a binary search to find the
672         case label for the given value.
673         * tree-gimple.c: Mention that labels are sorted, and that the
674         last label must be the default.
675
676 2004-05-27  Jan Hubicka  <jh@suse.cz>
677
678         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
679
680 2004-05-27  Jan Hubicka  <jh@suse.cz>
681
682         * i386.md (UNSPECV_EH_RETURN): Kill.
683         (eh_return): Use jump_insn.
684         (eh_return_si, eh_return_di): Change pattern to jump instruction.
685
686 2004-05-26  Jan Hubicka  <jh@suse.cz>
687
688         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
689         not loop optimizing.
690
691 2004-05-26  Jan Hubicka  <jh@suse.cz>
692
693         * except.c (can_throw_internal):  Notice RESX instructions.
694
695 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
696
697         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
698         of the two sizes to assemble_integer.
699
700 2004-05-25  Paul Brook  <paul@codesourcery.com>
701
702         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
703         pointless #ifdef.
704
705 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
706
707         * Makefile.in (top_builddir): Define to .
708
709 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
710
711         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
712         top-level detects, except when in-tree ld is being cross-built.
713         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
714         then AS only if target is host.
715         * configure: Rebuilt.
716
717 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
718
719         * global.c (global_alloc): Call make_accurate_live_analysis.
720         (record_one_conflict): Remove dead code.
721         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
722         (bb_info): New structure.
723         (BB_INFO, BB_INFO_BY_INDEX): New macros.
724         (allocate_bb_info, free_bb_info, mark_reg_change,
725         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
726         modify_bb_reg_pav, calculate_reg_pav,
727         make_accurate_live_analysis): New functions.
728
729 2004-05-25  Devang Patel  <dpatel@apple.com>
730
731         * alias.c (init_alias_analysis): Use ggc_calloc instead of
732         xrealloc.
733         (end_alias_analysis): Use ggc_free instead fo free.
734
735 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
736
737         PR target/15546
738         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
739         as needed to be outputted.
740
741 2004-05-25  Jan Hubicka  <jh@suse.cz>
742
743         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
744
745 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
746         Mostafa Hagog  <mustafa@il.ibm.com>
747
748         * Makefile.in (modulo-sched.o, ddg.o): New.
749         * ddg.h, ddg.c, modulo-sched.c: New files.
750         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
751         internals to "dupicate_insn".
752         (duplicate_insn): New function.
753         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
754         declarations.
755         * common.opt (fmodulo-sched): New flag.
756         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
757         Remove static and forward declaration.
758         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
759         functions.
760         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
761         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
762         declarations.
763         * flags.h (flag_modulo_sched): New flag.
764         * opts.c (common_handle_option): Handle modulo-sched flag.
765         * params.def (max-sms-loop-number, sms-max-ii-factor,
766         sms-dfa-history, sms-loop-average-count-threshold): New
767         parameters.
768         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
769         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
770         parameters.
771         * passes.c ("sms", "sms-vcg"): New dumps.
772         (rest_of_handle_sched): Call sms_schedule.
773         * rtl.h (sms_schedule): New declaration.
774         * timevar.def (TV_SMS): New.
775         * toplev.c (flag_modulo_sched): Initialize.
776         (f_options): Handle -fmodulo-sched option.
777         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
778         * docs/passes.texi: Document new SMS pass.
779
780 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
781
782         * Makefile.in (OBJS): Add rtlhooks.o.
783         (rtlanal.o): Depend on function.h.
784         (cse.o): Depend on rtlhooks-def.h.
785         (combine.o): Depend on rtlhooks-def.h.
786         (rtlhooks.o): New rule.
787         * combine.c: Include rtlhooks-def.h.
788         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
789         num_sign_bit_copies, cached_num_sign_bit_copies,
790         num_sign_bit_copies1): Move most of the code to rtlanal.c.
791         (reg_nonzero_bits_for_combine,
792         reg_num_sign_bit_copies_for_combine): New functions holding
793         the remnants of the above.
794         (combine_rtl_hooks): New.
795         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
796         * cse.c: Include rtlhooks-def.h.
797         (cse_rtl_hooks): New.
798         (cse_main): Set rtl_hooks instead of gen_lowpart.
799         * emit-rtl.c (gen_lowpart): Remove.
800         (gen_lowpart_general): Move to rtlhooks.c.
801         * rtl.h (nonzero_bits, num_sign_bit_copies,
802         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
803         (gen_lowpart_general): Remove.
804         (gen_lowpart): Temporarily redefine as a macro.
805         * rtlanal.c: Include function.h.
806         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
807         num_sign_bit_copies, cached_num_sign_bit_copies,
808         num_sign_bit_copies1): New, from combine.c.
809         * rtlhooks.c: New file.
810
811 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
812
813         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
814         to support 32-bit -mint8 mode.
815
816         * doc/invoke.texi (-mint8): Added documentation for the -mint8
817         option in the AVR architecture.
818
819 2004-05-24  Mike Stump  <mrs@apple.com>
820
821         * doc/install.texi: Document that dejagnu 1.4.4 is required.
822
823 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
824
825         * intl.h (open_quote, close_quote): New.
826         * intl.c (open_quote, close_quote): New.
827         (gcc_init_libintl): Set them.
828         * pretty-print.c: Include "intl.h".
829         (pp_base_format_text): Support 'q' format flag and %` and %'
830         formats.  Use ' instead of ` in comments.
831         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
832         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
833         foramt_types_orig): Describe these new formats.
834         (decode_format_attr, check_function_format,
835         check_format_info_main): Use these new formats.
836         (status_warning): Use ATTRIBUTE_GCC_DIAG.
837         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
838         check these formats to 3.5.
839
840 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
841
842         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
843         (BACKEND): Reflect this.
844         (LIBDEPS): Move CPPLIB before LIBIBERTY.
845         (LIBS): Likewise.
846
847 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
848
849         PR tree-optimization/14197
850         * builtins.c: Include "tree-gimple.h"
851         (readonly_data_expr): Use get_base_address.  Make sure to call
852         decl_readonly_section only on trees it can handle.
853         * tree-gimple.c (get_base_address): Accept STRING_CST and
854         CONSTRUCTOR expressions.
855         * Makefile.in: Update dependencies.
856
857 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
858
859         Move libcpp to the toplevel.
860         * Makefile.in: Remove references to libcpp files,
861         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
862         and change hashtable.h to that.
863         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
864         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
865         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
866         * configure: Regenerate.
867         * config.in: Regenerate.
868         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
869         * cppcharset.c: Removed.
870         * cpperror.c: Removed.
871         * cppexp.c: Removed.
872         * cppfiles.c: Removed.
873         * cpphash.c: Removed.
874         * cpphash.h: Removed.
875         * cppinit.c: Removed.
876         * cpplex.c: Removed.
877         * cpplib.c: Removed.
878         * cpplib.h: Removed.
879         * cppmacro.c: Removed.
880         * cpppch.c: Removed.
881         * cpptrad.c: Removed.
882         * cppucnid.h: Removed.
883         * cppucnid.pl: Removed.
884         * cppucnid.tab: Removed.
885         * hashtable.c: Removed.
886         * hashtable.h: Removed.
887         * line-map.c: Removed.
888         * line-map.h: Removed.
889         * mkdeps.c: Removed.
890         * mkdeps.h: Removed.
891         * stringpool.h: Include symtab.h instead of hashtable.h.
892         * tree.h: Include symtab.h instead of hashtable.h.
893         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
894
895 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
896
897         * gcc.c (struct prefix_list): Add forward declaration.
898         (do_spec_path): New function, extracted from...
899         (do_spec_1) <'D'>: ... here.  Drop support for
900         SPACE_AFTER_L_OPTION.
901         (do_spec_1) <'I'>: Use do_spec_path.
902         (process_command): Do not store the 'include' suffix
903         in include_prefixes.
904         * system.h: Poison SPACE_AFTER_L_OPTION.
905
906 2002-05-23  Roger Sayle  <roger@eyesopen.com>
907
908         * fold-const.c (non_lvalue): Explicitly list the tree codes that
909         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
910
911 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
912
913         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
914         Update based on printed manual.  Enable setting of offsets for
915         FSFPRINT and move it to gcc-common.texi.
916         * doc/gcc.texi: Update FSF printing details.
917         * doc/gccint.texi: Remove FSF printing details.
918
919 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
920
921         * config/rs6000/t-rs6000: Remove the disabling -Werror.
922
923 2004-05-22  Roger Sayle  <roger@eyesopen.com>
924
925         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
926         expand_builtin_strrchr, expand_builtin_strpbrk,
927         expand_builtin_mempcpy, expand_builtin_memcmp,
928         expand_builtin_strcmp, expand_builtin_strncmp,
929         expand_builtin_strcat, std_expand_builtin_va_start,
930         std_expand_builtin_va_arg, expand_builtin_va_copy,
931         expand_builtin_signbit, fold_builtin_cabs,
932         fold_builtin_logarithm, fold_builtin_mempcpy,
933         fold_builtin_signbit, fold_builtin_isascii,
934         fold_builtin_toascii, fold_builtin_isdigit,
935         fold_builtin_1, build_function_call_expr,
936         simplify_builtin_strchr, simplify_builtin_strrchr,
937         simplify_builtin_strpbrk, simplify_builtin_strncpy,
938         simplify_builtin_memcmp, simplify_builtin_strcmp,
939         simplify_builtin_strncmp, simplify_builtin_strncat,
940         simplify_builtin_strspn, simplify_builtin_strcspn,
941         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
942         to build with calls to build2, build3 or omit_one_operand.
943
944 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
945
946         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
947         section when generating EABI code.
948
949 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
950
951         PR 15546
952         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
953         Call mark_decl_referenced on the SYMBOL_REF_DECL.
954
955 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
956
957         * c-common.c (c_common_truthvalue_conversion): Handle
958         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
959         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
960         i.e. set the type to truthvalue_type_node and return.
961
962 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
963
964        * tree.h (struct tree_decl): Add possibly_inlined bit.
965         (DECL_POSSIBLY_INLINED): New accessor macro.
966         * cgraph.h: Remove declaration of cgraph_inline_hash.
967         * cgraph.c: Remove definition of cgraph_inline_hash.
968         (hash_node): Revert to hashing DECL_UID.
969         (eq_node): Take two pointers to cgraph_node structures.
970         Compare DECL_UIDs.
971         (cgraph_remove_node): Pass the node directly to htab_find_slot.
972         (cgraph_varpool_hash_node): Rename hash_varpool_node;
973         hash on DECL_UID.
974         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
975         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
976         (cgraph_node): Allocate a temporary node on the stack, fill in
977         its DECL field, and pass that to htab_find_slot.
978         (cgraph_varpool_node): Likewise.
979         (cgraph_function_possibly_inlined_p): If global info is ready,
980         return the DECL_POSSIBLY_INLINED bit.
981         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
982         instead of mucking with cgraph_inline_hash.
983
984 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
985
986         * doc/contrib.texi: Add g77 contributors.
987
988 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
989
990         * calls.c (initialize_argument_information): Forbid sibcalls if a
991         callee-copied argument is stored in the current function's frame.
992
993 2004-05-22  Eric Christopher  <echristo@redhat.com>
994
995         * fix-header.c (read_scan_file): Update for add_path change.
996
997 2004-05-22  Ben Elliston  <bje@au.ibm.com>
998
999         * c.opt (Wmissing-include-dirs): New.
1000         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
1001         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
1002         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
1003         * c-incpath.h (add_path): Add fourth (bool) argument.
1004         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
1005         (add_standard_paths): Likewise.
1006         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
1007         is used and the directory was user-supplied via -I.
1008         (add_path): Set p->user_supplied_p.  Remove duplicated code by
1009         using add_cpp_dir_path ().
1010         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
1011         (struct cpp_dir): Add user_supplied_p.
1012         * doc/invoke.texi (Warning Options): Document new option.
1013
1014 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
1015
1016         * fold-const.c (fold_read_from_constant_string): Convert result to
1017         requested type.
1018
1019 2004-05-21  Richard Henderson  <rth@redhat.com>
1020
1021         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
1022         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
1023         Don't mark VA_ARG_EXPRs volatile here.
1024         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
1025
1026 2004-05-21  Richard Henderson  <rth@redhat.com>
1027
1028         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
1029         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
1030
1031 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1032
1033         * fold-const.c (fold, fold_relational_hi_lo,
1034         nondestructive_fold_binary_to_constant,
1035         fold_read_from_constant_string): Use fold_convert instead of convert.
1036         * builtins.c (simplify_builtin, simplify_builtin_strstr,
1037         simplify_builtin_strchr, simplify_builtin_strrchr,
1038         simplify_builtin_strpbrk): Use fold_convert instead of convert.
1039
1040 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
1041
1042         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
1043         is NULL.
1044
1045 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1046
1047         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
1048         override sparc.h definition.
1049
1050 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1051
1052         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
1053         get_unwidened, get_narrower): Replace build with build2.
1054         * fold-const.c (negate_expr, associate_trees, size_binop,
1055         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
1056         pedantic_omit_one_operand, distribute_bit_expr,
1057         make_bit_field_ref, optimize_bit_field_compare,
1058         decode_field_reference, range_binop, make_range,
1059         build_range_check, fold_range_test, fold_truthop,
1060         optimize_minmax_comparison, extract_muldiv_1,
1061         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
1062         fold_inf_compare, fold_single_bit_test, fold,
1063         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1064         Likewise replace build with either build2 or build3.
1065
1066 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
1067
1068         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
1069         * calls.c (prepare_call_address): Don't test
1070         NO_RECURSIVE_FUNCTION_CSE.
1071         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
1072         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1073         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1074         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1075         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1076         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1077         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1078         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1079         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1080         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1081         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1082         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
1083         Likewise.
1084         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1085         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
1086         * doc/tm.texi (Costs): Remove documentation for
1087         NO_RECURSIVE_FUNCTION_CSE.
1088
1089 2004-05-20  Paul Brook  <paul@codesourcery.com>
1090
1091         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
1092         * unwind-dw2.c (extract_cie_info): Ditto.
1093         (_Unwind_FrameState): Change retaddr_column to word type.
1094
1095 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1096
1097         PR middle-end/3074
1098         * fold-const.c (strip_compound_expr): Delete function.
1099         (count_cond): Delete function.
1100         (fold_binary_op_with_conditional_arg): Only perform transformations
1101         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
1102         when a is constant.  This greatly simplifies this routine.
1103
1104         * tree.c (saved_expr_p): Delete function.
1105         * tree.h (saved_expr_p): Delete function prototype.
1106
1107 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1108
1109         * common.opt (ftree-loop-optimize): Remove.
1110
1111 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
1112
1113         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
1114         (NM_FOR_TARGET): Use := and $(shell).
1115         (mainversion): Remove unused variable.
1116
1117 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1118
1119         * reorg.c (delete_from_delay_slot): If we have a barrier after the
1120         sequence containing the insn to be deleted, always reemit it.
1121
1122 2004-05-20  Richard Henderson  <rth@redhat.com>
1123
1124         PR 15454
1125         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
1126         * function.c (expand_function_start): Expand static_chain_decl by hand.
1127         * gimplify.c (create_tmp_var_name): Export.
1128         * tree-gimple.h (create_tmp_var_name): Declare.
1129
1130 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1131
1132         * rs6000.c (print_operand) <case 'z'>: Call
1133         mark_decl_referenced before assemble_name.
1134
1135 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
1136
1137         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1138         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1139         (cgraph_varpool_node): Hash on the pointer to the decl, not
1140         the DECL_UID.  Fixes 64-bit bootstrap failure.
1141
1142 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
1143
1144         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
1145         we don't earlyclobber operands used in the second insn.
1146
1147 2004-05-20  Steven Bosscher  <stevenb@suse.de>
1148
1149         * tree-mudflap.c: Formatting fixes.
1150
1151 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1152
1153         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
1154         * gengtype.c (open_base_files): Include reload.h in ifiles.
1155         * reload.h (reg_equiv_memory_loc_varray): Declare.
1156         * reload1.c (reg_equiv_memory_loc_varray): New variable.
1157         (init_reload): Initialize it.
1158         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
1159         reg_equiv_memory_loc_varray to size 0.
1160         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
1161         growing reg_equiv_memory_loc_varray to the desired size.
1162         * passes.c (rest_of_handle_old_regalloc): Likewise.
1163         * reload.c: Amend comment on calling init_reload.
1164
1165 2004-05-20  Nick Clifton  <nickc@redhat.com>
1166
1167         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
1168         with 'TRAMP' in the body of the macro definition.
1169
1170 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1171
1172         PR target/15383
1173         * config/ia64/ia64.c (ia64_expand_compare): Don't check
1174         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
1175         cmptf_libfunc isn't set.
1176         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
1177         conventions.
1178         (ia64_sysv4_init_libfuncs): New.
1179
1180         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
1181         ia64_sysv4_init_libfuncs.
1182
1183 2004-05-20  Falk Hueffner  <falk@debian.org>
1184
1185         PR other/15526
1186         * libgcc2.c (__mulvsi3): Fix overflow test.
1187
1188 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
1189
1190         PR c/14171
1191         * reg-stack.c (nan): Rename to ...
1192         (not_a_num): Here.
1193         (reg_to_stack): Rename nan to not_a_num.
1194         (subst_stack_regs_pat): Likewise.
1195         (convert_regs_entry): Likewise.
1196         (convert_regs_1): Likewise.
1197
1198         * tree-cfg.c (find_case_label_for_value): Replace call to
1199         simple_cst_equal with tree_int_cst_equal.
1200
1201 2004-05-19  Jeff Law <law@redhat.com>
1202
1203         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
1204         If the operand is for a use, then strip away the SSA_NAME, do not
1205         strip away the SSA_NAME for a set.  Never call release_ssa_name.
1206         (mark_def_sites): Appropriately pass additional argument to
1207         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
1208         then set the VDEF_RESULT to the VDEF_OP.
1209         (set_def_block): Strip away any SSA_NAME to get to the real
1210         underlying variable.
1211
1212         * tree-ssa-phiopt.c (value_replacement): Handle the case where
1213         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
1214         BB directly.
1215
1216 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1217
1218         PR c++/15463
1219         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
1220         result of inverse.
1221
1222         PR rtl-optimization/15274
1223         * loop-iv.c (determine_max_iter, shorten_into_mode,
1224         iv_number_of_iterations): Handle constants correctly.
1225         * rtl.h (get_mode_bounds): Declaration changed.
1226         * stor-layout.c (get_mode_bounds): Return a constant suitable for
1227         the target mode.
1228
1229         PR rtl-optimization/14692
1230         * loop-unswitch.c (may_unswitch_on): Try folding the result.
1231         (unswitch_single_loop): Work correctly when may_unswitch_on
1232         returns a folded constant.
1233
1234         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
1235         * simplify-rtx.c (simplify_const_relational_operation): Optimize
1236         comparisons with mode bounds.
1237
1238         * function.c (struct temp_slot): Add new field prev.
1239         (free_after_compilation, init_temp_slots): Free new fields.
1240         (cut_slot_from_list, insert_slot_to_list,
1241         temp_slots_at_level, max_slot_level, move_slot_to_level,
1242         make_slot_available): New functions.
1243         (assign_stack_temp_for_type, combine_temp_slots,
1244         find_temp_slot_from_address, preserve_temp_slots,
1245         preserve_rtl_expr_result, free_temp_slots,
1246         free_temps_for_rtl_expr, pop_temp_slots): Work with
1247         the new structure of lists.
1248         (mark_all_temps_used): Removed.
1249         * function.h (struct function): Field x_temp_slots
1250         replaced by x_used_temp_slots and x_avail_temp_slots.
1251         (temp_slots): Replaced by ...
1252         (used_temp_slots, avail_temp_slots): New.
1253         * tree.h (mark_all_temps_used): Declaration removed.
1254
1255         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
1256         simplify_using_assignment): Take the expression out of
1257         the expr_list wrapper.
1258
1259         * loop-iv.c (iv_number_of_iterations): Improve clasification of
1260         infinite loops.
1261
1262 2004-05-19  Roger Sayle  <roger@eyesopen.com>
1263
1264         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
1265         costs should be based on code size when optimizing for size.
1266
1267 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
1268
1269         * fold-const.c: Remove non-printable character 160.
1270
1271 2004-05-19  Nick Clifton  <nickc@redhat.com>
1272
1273         * doc/invoke.texi (ARM Options): Fix typo.
1274         Remove descrption of -mshort-load-bytes and
1275         -mno-short-load-bytes.
1276
1277         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
1278         missing parenthesis.
1279         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
1280         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
1281
1282 2004-05-19  Steven Bosscher  <stevenb@suse.de>
1283
1284         * expr.c (store_constructor): Build loop start and end by hand
1285         instead of via loop functions from stmt.c.
1286         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
1287         Remove the code to expand them.
1288
1289         * stmt.c (loop_stack): Remove this and everything related.
1290         (struct nesting, enum nesting_desc): Update.
1291         (expand_fixup): Likewise.
1292         (expand_loop_start, expand_start_loop_continue_elsewhere,
1293         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
1294         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
1295         expand_exit_loop_if_false, expand_exit_loop_top_cond,
1296         expand_exit_something): Remove.
1297         * tree.h: Remove prototypes.
1298
1299 2004-05-18  Mike Stump  <mrs@apple.com>
1300             Devang Patel  <dpatel@apple.com>
1301
1302         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
1303         if this label is for eh.
1304         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
1305         * config/darwin.c (darwin_emit_unwind_label): Likewise.
1306         * dwarf2out.c (output_call_frame_info): Likewise.
1307         * output.h (default_emit_unwind_label): Likewise.
1308         * target.h (unwind_label): Likewise.
1309         * varasm.c (default_emit_unwind_label): Likewise.
1310
1311         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1312         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
1313         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
1314         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
1315         DEBUG_RANGES_SECTION): Define.
1316
1317 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
1318
1319         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1320         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1321         (cgraph_varpool_node):
1322         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
1323         (cgraph_function_possibly_inlined_p): Use the decl itself for
1324         the key, not DECL_ASSEMBLER_NAME.
1325         (change_decl_assembler_name): No need to muck with the hash tables.
1326         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
1327         Delete.
1328         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
1329         for the key, not DECL_ASSEMBLER_NAME.
1330         * cgraph.h: Remove prototypes of deleted functions.
1331         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1332         (mark_decl_referenced): New function.
1333         * tree.h: Prototype mark_decl_referenced.
1334         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1335         mark_decl_referenced before assemble_name.
1336         * c-decl.c (finish_decl): Use mark_decl_referenced.
1337
1338 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1339             Jeff Law <law@redhat.com>
1340
1341         * tree-ssa-phiopt.c (abs_replacement): New function.
1342         (empty_block_p): New function extracted from...
1343         (candidate_bb_for_phi_optimization): Break out empty block test.
1344         (conditional_replacement): Use empty_block_p.
1345         (value_replacement): Similarly.
1346
1347         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1348         * tree-ssa-phiopt.c: Include flags.h.
1349         (conditional_replacement): Remove argument names from prototype.
1350         Minor formatting and comment fixes.
1351         (tree_ssa_phiopt): If conditional_replacement returns false, then
1352         call value_replacement.
1353         (value_replacement): New function.
1354
1355 2004-05-18  Jeff Law  <law@redhat.com>
1356
1357         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1358         from conditional_replacement.
1359         (candidate_bb_for_phi_optimization): Similarly.
1360         (conditional_replacement): Use replace_phi_with_stmt and
1361         candidate_bb_for_phi_optimization.
1362
1363         * tree-ssa-phiopt.c: Fix various formatting issues.
1364
1365 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1366
1367         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1368         s390_expand_cmpmem): Do not use expand_start_loop and
1369         expand_end_loop, instead build the loop manually.
1370
1371 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1372
1373         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1374         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1375
1376 2004-05-17  Jeff Law  <law@redhat.com>
1377
1378         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1379         * flags.h (flag_delete_null_pointer_checks): Here.
1380         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1381         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1382         (add_phi_arg, remove_phi_arg_num): Similarly.
1383         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1384         property into PHI nodes.
1385         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1386         (record_equivalences_from_phis): If all PHI arguments are known to be
1387         nonzero, then the result must be nonzero as well.
1388         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1389         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1390         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1391         as appropriate.
1392         * tree.h (PHI_ARG_NONZERO): Define.
1393         (phi_arg_d): Add nonzero flag.
1394
1395 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1396
1397         * f: Entire directory removed
1398
1399         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1400         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1401         (g77_integer_type_node, g77_uinteger_type_node)
1402         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1403         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1404         the above set of variables.
1405
1406         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1407         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1408         to g77 manual.
1409
1410 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1411
1412         PR tree-optimization/15438
1413         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1414         attributed functions as pure or const.
1415
1416 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1417
1418         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1419         from source code with errors.
1420
1421 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1422
1423         Enable tree browser for all front ends.
1424         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1425         (BACKEND): ...to here.
1426
1427 2004-05-17  Jan Hubicka  <jh@suse.cz>
1428
1429         * i386.c (construct_container): Do not produce BLKmode registers.
1430         (classify_argument): Properly compute alignment of complex types.
1431
1432 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1433
1434         PR target/15084
1435         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1436         and renamed to movdi_insv_1_rex64.
1437         (insv): Support SImode for 32bit and DImode for 64bit.
1438
1439 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1440
1441         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1442         (TARGET_SWITCHES): Remove debugg.
1443         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1444         TARGET_64BIT.
1445         (subdi3): Replace the define_expand with a define_insn, the latter
1446         renamed from subdi3_internal_3.
1447         (negdi2): Likewise negdi2_internal_2.
1448         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1449         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1450         and associated define_splits.
1451         (adddi3_internal): Renamed from adddi3_internal_3.
1452         (ashldi3_internal): Likewise ashldi3_internal4.
1453         (ashrdi3_internal): Likewise ashrdi3_internal4.
1454         (lshrdi3_internal): Likewise lshrdi3_internal4.
1455
1456 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1457
1458         * optabs.c (expand_unop): Try implementing negation using subtraction
1459         from zero.
1460
1461 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1462
1463         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1464         SAR register.
1465
1466 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1467
1468         PR target/10982
1469         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1470         (ne_zeroextractsi_shifted): New pattern.
1471         (ite_ne_zeroextractsi): New pattern.
1472         (ite_ne_zeroextractsi_shifted): New pattern.
1473
1474 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1475
1476         * c-gimplify.c (c_genericize):
1477         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1478         * c-parse.in <expr_no_commas>: Likewise.
1479         <if_prefix>: Likewise.
1480         <select_or_iter_stmt>: Likewise.
1481         * expr.c (expand_var, expand_expr_real_1): Likewise.
1482         * expr.h (expand_expr): Make it a static inline function.
1483         Move prototype for expand_expr_real up before this.
1484         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1485         Likewise.
1486         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1487         gimplify_asm_expr, gimplify_expr): Likewise.
1488         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1489         dump_function_to_file): Likewise.
1490         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1491         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1492         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1493         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1494         Likewise.
1495         * tree-optimize.c (execute_one_pass): Likewise.
1496         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1497         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1498
1499         * objc/objc-act.c (objc_build_try_enter_fragment,
1500         objc_build_try_epilogue, objc_build_catch_stmt,
1501         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1502         with lang_hooks.foo ().
1503
1504 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1505
1506         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1507         that simplify_builtin doesn't destructively modify its argument.
1508
1509 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1510
1511         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1512         implementations for ARM and Thumb.
1513         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1514
1515 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1516
1517         * prefix.c (update_path): Replace PREFIX with KEY only
1518         when it matches a full directory name in PATH.
1519
1520 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1521
1522         * arm.h (TARGET_APCS_32): Delete.
1523         (TARGET_MMU_TRAPS): Delete.
1524         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1525         define __APCS_26__.
1526         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1527         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1528         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1529         (prog_mode_type): Delete.
1530         (PROMOTE_MODE): Always promote unsigned for HImode.
1531         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1532         (MASK_RETURN_ADDR): Simplify.
1533         * arm.c (arm_prgmode): Delete.
1534         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1535         (print_multi_reg, output_return_instruction): Simplify.
1536         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1537         (arm_return_addr): Simplify.
1538         * arm.md (prog_mode): Delete.
1539         (conds): Simplify.
1540         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1541         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1542         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1543         (loadhi_shiftpredec): Delete.
1544         (peephole for post-increment on HImode load): Delete.
1545         * arm/crtn.asm: (FUNC_END): Simplify.
1546         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1547         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1548         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1549         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1550         MULTILIB_DEFAULTS as required.
1551         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1552         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1553         variables as required.
1554         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1555
1556 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1557
1558         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1559         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1560         count to 8 to handle n_reg > 2.
1561
1562 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1563
1564         * doc/extend.texi: Update WG14 URL.
1565
1566 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1567
1568         * basic-block.h (life_analysis, delete_noop_moves):
1569         Update prototypes.
1570         * bt-load.c (branch_target_load_optimize): Don't take the
1571         insns stream as an argument.  Update the life_analysis calls.
1572         * combine.c (combine_instructions): Update delete_noop_moves
1573         calls.
1574         * flow.c (notice_stack_pointer_modification): Don't take the
1575         insns stream as an argument.  Work on the flow graph.
1576         (life_analysis): Likewise.
1577         (delete_noop_moves): Likewise.
1578         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1579         (rest_of_handle_life): Update life_analysis call.
1580         (rest_of_compilation): Likewise, and also update
1581         branch_target_load_optimize call.
1582         * ra.c (reg_alloc): Update life_analysis call.
1583         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1584         the insns stream as an argument.
1585         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1586         call.
1587         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1588         prototypes.
1589         * value-profile.c (branch_prob): Update life_analysis call.
1590         * web.c (web_main): Work on the CFG, not on the insns stream.
1591
1592         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1593         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1594         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1595
1596 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1597
1598         PR c/15444
1599         * c-format.c (avoid_dollar_number): New function.
1600         (check_format_info_main): Call avoid_dollar_number when operand
1601         numbers might occur but has_operand_number == 0.
1602
1603 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1604
1605         * arm.md (all peephole2 patterns): Use predicates that validate
1606         register classes as appropriate.
1607
1608 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1609
1610         PR opt/14472
1611         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1612         ignore type conversions that do not inhibit tail calling.
1613         (find_tail_calls): Likewise.
1614
1615 2004-05-14  Jeff Law  <law@redhat.com>
1616
1617         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1618         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1619         bypassed virtuals into vars_to_rename just before into-ssa pass.
1620
1621         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1622         so that it picks up more opportunities to eliminate ABS expressions
1623         or turn them into negations.
1624
1625 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1626
1627         * passes.c (rest_of_handle_null_pointer): Remove.
1628         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1629         (rest_of_compilation): Likewise.
1630         * rtl.h (delete_null_pointer_checks): Remove prototype.
1631         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1632         Remove declarations.
1633         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1634         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1635         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1636         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1637         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1638         one_classic_gcse_pass, invalidate_nonnull_info,
1639         delete_null_pointer_checks_1, delete_null_pointer_checks,
1640         expr_reached_here_p_work): Remove.
1641         (gcse_main): Do not perform classic GCSE when optimizing for size.
1642         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1643         are never used.
1644
1645 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1646
1647         PR optimization/14466
1648         * tree-complex.c (make_temp): Remove.
1649         (gimplify_val): Replace make_temp with make_rename_temp
1650         and add NULL as the second argument.
1651         (expand_complex_div_wide): Likewise.
1652         * tree-dfa.c (make_rename_temp): New function.
1653         * tree-flow.h (make_rename_temp): Declare.
1654         * tree-sra.c (make_temp): Remove.
1655         (lookup_scalar): Replace make_temp with make_rename_temp.
1656         (create_scalar_copies): Likewise.
1657         * tree-ssa-phiopt.c (conditional_replacement): When we
1658         get non gimple create a temporary variable to hold the
1659         casted expression.
1660
1661 2004-05-14  Paul Brook  <paul@codesourcery.com>
1662
1663         * stor-layout.c (update_alignment_for_field): Use
1664         targetm.align_anon_bitfield.
1665         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1666         (TARGET_INITIALIZER): Use it.
1667         * target.h (struct gcc_target): Add align_anon_bitfield.
1668         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1669         (TARGET_ALIGN_ANON_BITFIELD): Define.
1670         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1671
1672 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1673
1674         * tree.def (documentation): Remove mention of class 'b'.
1675         (BLOCK): Now in class 'x'.
1676         * c-common.c (verify_tree): Remove case 'b'.
1677         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1678         * calls.c (calls_function_1): Control cannot get past the switch
1679         when exp is a BLOCK.
1680         * print-tree.c (print_node): Move code for class 'b' to the class
1681         'c'/'x' switch, as case BLOCK.
1682         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1683         (unsafe_for_reeval, substitute_placeholder_in_expr)
1684         (stabilize_reference_1): Remove case 'b'.
1685         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1686         of something being 'b' to tests for TREE_CODE of something being
1687         BLOCK.
1688         * tree-ssa-operands.c (get_expr_operands): Likewise.
1689
1690 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1691
1692         * tree-gimple.c: Rename from tree-simple.c.
1693         * tree-gimple.h: Rename from tree-simple.h.
1694         * c-gimplify.c: Rename from c-simplify.c
1695         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1696         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1697         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1698         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1699         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1700         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1701         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1702         Update.
1703
1704 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1705
1706         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1707
1708 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1709
1710         * tree-ssa.c (delete_tree_ssa): XFREE
1711         bitmaps allocated with BITMAP_XMALLOC.
1712
1713         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1714         idfs_cache at the end of the function.
1715
1716         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1717         at the end of the function.
1718
1719         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1720         el at the end of the function.
1721
1722         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1723         bitmaps allocated with BITMAP_XMALLOC.
1724
1725         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1726         the end.
1727
1728         * final.c (shorten_branches): Free uid_shuid before
1729         reallocating it.
1730
1731         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1732
1733 2004-05-13  Jeff Law  <law@redhat.com>
1734
1735         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1736         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1737         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1738
1739         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1740         rather than iterating through the blocks testing each bit in
1741         livein to initialize the worklist.
1742         (mark_def_sites): Remove useless checks of KILLS for virtual
1743         operands.
1744
1745         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1746         new parameters for the statement and variable worklist as well
1747         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1748         worklist recording interesting variables in the variable worklist
1749         and bitmap.  Handle casts between integral and boolean types.
1750         (substitute_single_use_vars): Accept new parameters for the statement
1751         and variable worklist.  When a substitution is made add a new
1752         entry to the statement worklist.  Handle casts between integral
1753         and boolean types.
1754         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1755         worklists to children.  Iterate until the statement worklist
1756         is empty.
1757
1758 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1759
1760         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1761         the end of the block.
1762
1763         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1764         with BITMAP_XMALLOC.
1765
1766         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1767         with BITMAP_XMALLOC.
1768
1769         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1770         Free nonzero_vars at the end of the function.
1771
1772         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1773         need to generate code instead of a NOP_EXPR.
1774
1775 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1776
1777         * gcc.c (default_compilers): Fill out initializers for new Fortran
1778         entries.
1779
1780 2004-05-13  Paul Brook  <paul@codesourcery.com>
1781
1782         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1783
1784 2004-05-13  Paul Brook  <paul@codesourcery.com>
1785
1786         * config/arm/arm.c (arm_default_short_enums): New function.
1787         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1788
1789 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1790
1791         Merge from tree-ssa-20020619-branch.
1792
1793         * Makefile.in (reload1.o-warn): Add.
1794         (tree-alias-ander.o-warn): Add.
1795         (GMPLIBS): Define.
1796         (GMPINC): Define.
1797         (BANSHEELIB): Define.
1798         (BANSHEEINC): Define.
1799         (TREE_DUMP_H): Define.
1800         (TREE_SIMPLE_H): Define.
1801         (TREE_FLOW_H): Define.
1802         (LIBDEPS): Add BANSHEELIB.
1803         (INCLUDES): Add BANSHEEINC and GMPINC.
1804         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1805         c-mudflap.o and c-pretty-print.o.
1806         (C_OBJS): Remove c-pretty-print.o.
1807         (OBJS-common): Remove sibcall.o.
1808         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1809         tree-ssa.o, tree-optimize.o, tree-simple.o,
1810         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1811         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1812         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1813         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1814         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1815         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1816         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1817         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1818         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1819         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1820         tree-profile.o.
1821         (OBJC-archive): Add tree-nomudflap.o.
1822         (cc1): Add dependency on @TREEBROWSER@.
1823         (c-decl.o): Add dependency on TREE_DUMP_H.
1824         (c-dump.o): Likewise.
1825         (c-common.o): Add dependency on tree-iterator.h
1826         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1827         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1828         (tree.o): Add dependency on tree-iterator.h,
1829         BASIC_BLOCK_H and TREE_FLOW_H.
1830         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1831         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1832         (tree-alias-type.o, tree-alias-ander.o,
1833         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1834         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1835         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1836         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1837         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1838         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1839         tree-nested.o, tree-iterator.o, tree-dfa.o,
1840         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1841         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1842         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1843         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1844         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1845         tree-sra.o, tree-complex.o, tree-profile.o,
1846         rtl-profile.o): New rules.
1847         (function.o): Add dependency on basic-block.h
1848         (expr.o): Add dependency on tree-iterator.h.
1849         (sibcall.o): Remove.
1850         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1851         (cfg.o): Add dependency on TIMEVAR_H.
1852         (cfghooks.o): Add dependency on TREE_FLOW_H.
1853         (reg-stack.o): Add dependency on basic-block.h.
1854         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1855         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1856         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1857         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1858         tree-alias-type.h, tree-alias-common.h,
1859         tree-alias-type.c, tree-alias-common.c,
1860         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1861         rtl-profile.c and tree-nested.c.
1862         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1863         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1864         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1865         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1866         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1867         * basic-block.h: Include predict.h
1868         (struct edge_def): Add GTY marker.
1869         Change field 'insns' to be a union of tree and rtx.
1870         (EDGE_TRUE_VALUE): Define.
1871         (EDGE_FALSE_VALUE): Define.
1872         (EDGE_EXECUTABLE): Define.
1873         (struct bb_ann_d): Forward declare.
1874         (struct basic_block_def): Add GTY marker.
1875         Remove fields head_tree and end_tree.
1876         Add fields stmt_list, rbi and tree_annotations.
1877         (struct reorder_block_def): Define.
1878         (basic_block_info): Add GTY marker.
1879         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1880         variables instead of macros.
1881         (flow_call_edges_add): Remove declaration.
1882         (make_eh_edge): Remove declaration.
1883         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1884         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1885         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1886         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1887         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1888         (try_redirect_by_replacing_jump): Modfiy return type to
1889         edge instead of bool.
1890         * bb-reorder.c (copy_bb): Call duplicate_block
1891         instead of cfg_layout_duplicate_bb.
1892         (copy_bb_p): Call can_duplicate_block_p instead of
1893         cfg_layout_can_duplicate_bb_p.
1894         * bitmap.c (bitmap_first_set_bit): Abort if word
1895         wasn't found.
1896         (bitmap_last_set_bit): Likewise.
1897         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1898         (DEF_FUNCTION_TYPE_3): Add.
1899         * builtins.c (c_strlen): Make extern.
1900         (builtin_save_expr): New.
1901         (expand_builtin_nonlocal_goto): New.
1902         (expand_builtin_constant_p): Remove.
1903         (expand_builtin_mathfn): Call builtin_save_expr instead
1904         of save_expr.
1905         (expand_builtin_mathfn_2): Likewise.
1906         (expand_builtin_strcmp): Likewise.
1907         (expand_builtin_strncmp): Likewise.
1908         (expand_builtin_strcat): Likewise.
1909         (fold_builtin_cabs): Likewise.
1910         (expand_builtin_alloca): Don't trigger if -fmudflap is
1911         given.
1912         (build_string_literal): Set TREE_INVARIANT on new node.
1913         (expand_builtin_profile_fun): New.
1914         (round_trampoline_addr): New.
1915         (expand_builtin_init_trampoline): New.
1916         (expand_builtin_adjust_trampoline): New.
1917         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1918         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1919         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1920         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1921         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1922         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1923         Handle.
1924         (fold_builtin_expect): New.
1925         (fold_builtin_isascii): Don't return non-constant results
1926         in GIMPLE form.
1927         (fold_builtin_isdigit): Likewise.
1928         (fold_builtin_1): New.
1929         (fold_builtin): Call it.
1930         (build_function_call_expr): Update call to build a new
1931         CALL_EXPR.
1932         (purge_builtin_constant_p): Remove.
1933         (simplify_builtin, simplify_builtin_memcmp,
1934         simplify_builtin_strcmp, simplify_builtin_strncmp,
1935         simplify_builtin_strpbrk, simplify_builtin_strstr,
1936         simplify_builtin_strchr, simplify_builtin_strrchr,
1937         simplify_builtin_strcat, simplify_builtin_strncat,
1938         simplify_builtin_strspn, simplify_builtin_strcspn,
1939         simplify_builtin_next_arg, simplify_builtin_va_start,
1940         simplify_builtin_sprintf): New.
1941         * builtins.def (BUILT_IN_STACK_ALLOC,
1942         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1943         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1944         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1945         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1946         * c-common.c: Include tree-iterator.h and hashtab.h.
1947         (lang_statement_code_p): Declare.
1948         (lang_gimplify_stmt): Declare.
1949         (fix_string_type): Set TREE_INVARIANT for value.
1950         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1951         (c_type_hash): New.
1952         (c_common_get_alias_set): Handle multiple type nodes
1953         referring to "the same" type, currently for C90 only.
1954         (c_add_case_label): Use create_artificial_label.
1955         (finish_label_address_expr): Don't set TREE_CONSTANT on
1956         result.
1957         (c_expand_expr): Don't handle STMT_EXPR.
1958         (handle_alias_attribute): Marke aliased variables to be
1959         TREE_STATIC.
1960         (handle_nonnull_attribute): Initialize arg_num.
1961         (check_function_nonnull): Likewise.
1962         (c_walk_subtrees): New.
1963         (c_estimate_num_insns_1): Don't handle
1964         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
1965         (c_decl_uninit_1): Remove.
1966         (c_decl_uninit): Remove.
1967         (c_warn_unused_result): New.
1968         * c-common.def (ASM_STMT): Change number of operands
1969         to 4.
1970         (FILE_STMT): Remove.
1971         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
1972         Remove.
1973         (lang_gimplify_stmt): Add.
1974         (expand_stmt): Remove.
1975         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
1976         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
1977         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
1978         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
1979         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
1980         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
1981         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
1982         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
1983         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
1984         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
1985         genrtl_compound_stmt, genrtl_asm_stmt,
1986         genrtl_cleanup_stmt, c_decl_uninit): Remove.
1987         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
1988         c_tree_chain_matters_p, c_warn_unused_result,
1989         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
1990         Declare.
1991         * c-convert.c (convert): Make convert work when
1992         converting to compatible types across translation unit.
1993         * c-decl.c: Include langhooks.h, tree-mudflap.h,
1994         tree-simple.h, diagnostic.h and tree-dump.h
1995         (merge_decls): Initialize oldtype to NULL.
1996         (finish_decl): Use DECL_HARD_REGISTER instead of
1997         DECL_C_HARD_REGISTER.
1998         (check_bitfield_type_and_width): Check for null
1999         lang_type_specific when check the precision of an enum.
2000         (grokdeclarator): Immediately layout an ARRAY_TYPE used
2001         in a pointer-to-array declarator.
2002         (finish_struct): Clear allocated struct lang_type.
2003         (finish_enum): Set enum_min and enum_max.  Set
2004         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
2005         not to the enumerators.
2006         (set_decl_nonlocal): New.
2007         (store_parm_decls): Use it via walk_tree.
2008         (c_finalize): New.
2009         (finish_function): When !targetm.have_ctors_dtors,
2010         record static constructors and destructors here...
2011         (c_expand_body_1): ... not here.
2012         (c_expand_decl): Rename from c_expand_decl_stmt.
2013         Handle all C-specific expansion semantics.
2014         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
2015         STMT_LINENO.
2016         * c-format.c (handle_format_arg_attribute): Initialize
2017         format_num.
2018         * c-lang.c: Include tree-inline.h
2019         (LANG_HOOKS_EXPAND_DECL,
2020         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2021         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
2022         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
2023         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2024         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
2025         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
2026         (c_types_compatible_p): New.
2027         * c-mudflap.c: New file.
2028         * c-objc-common.c: Include tree-mudflap.h
2029         (start_cdtor, finish_cdtor): Collapse
2030         together into
2031         (build_cdtor): ...here.  Update to construct a complete tree
2032         for the function.  No need to call push_scope, pop_scope, or
2033         clear_last_expr, or set current_function_cannot_inline.
2034         (c_missing_noreturn_ok_p): Change prototype to return
2035         bool.
2036         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
2037         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
2038         opts.c.
2039         (c_common_post_options): Don't ever use rtl inlining.
2040         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
2041         * c-pragma.c (handle_pragma_redefine_extname): Define
2042         always.
2043         (init_pragma): Activate #pragma redefine_extname for mudflap.
2044         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
2045         (pp_c_initializer): Accept any type CONSTRUCTOR.
2046         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
2047         COMPLEX_TYPE.
2048         (decl_name_str): New local function.
2049         (pp_c_direct_declarator): Call it.
2050         (pp_c_primary_expression): Call it.
2051         (pp_c_id_expression): Call it.
2052         (pp_c_statement): Call it.
2053         (print_c_tree): Create new pp object.
2054         * c-pretty-print.h (pp_c_tree_decl_identifier,
2055         print_c_tree): Declare.
2056         * c-semantics.c: Include langhooks.h
2057         (lang_expand_stmt, lang_expand_decl_stmt,
2058         find_reachable_label_1, find_reachable_label,
2059         expand_unreachable_if_stmt, expand_unreachable_stmt,
2060         genrtl_do_stmt_1): Remove.
2061         (begin_stmt_tree): Don't check for changed filename.
2062         Call annotate_with_locus.
2063         (finish_stmt_tree): Don't set line for end of function.
2064         (build_stmt): Don't check type nodes for
2065         side effects.
2066         (build_stmt): Set TREE_SIDE_EFFECTS.
2067         Set EXPR_LOCUS instead of STMT_LINENO.
2068         (lang_expand_stmt, lang_expand_decl_stmt,
2069         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2070         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2071         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
2072         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
2073         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
2074         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
2075         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
2076         find_reachable_label_1, expand_unreachable_if_stmt,
2077         expand_unreachable_stmt): Remove.
2078         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
2079         * c-simplify.c: New file.
2080         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
2081         (struct lang_type): Add fields enum_min and enum_max.
2082         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
2083         (c_expand_decl, c_missing_noreturn_ok_p,
2084         c_types_compatible_p): Declare.
2085         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
2086         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
2087         (default_function_array_conversion): Rely on build to
2088         set TREE_CONSTANT.
2089         (parser_build_binary_op, pointer_diff): Likewise.
2090         (build_unary_op, build_binary_op): Likewise.
2091         (build_array_ref):
2092         (build_external_ref): Set TREE_INVARIANT.
2093         (build_c_cast, pop_init_level): Likewise.
2094         (process_init_element): Use ASM_VOLATILE_P.
2095         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
2096         (c_finish_case): Call c_do_switch_warnings.
2097         * c.opt (fdump-): Remove.
2098         * calls.c (try_to_integrate): Remove.
2099         (prepare_call_address): Replace fndecl arg with a
2100         precomputed static chain value.
2101         (emit_call_1): New argument for full call expr.
2102         (flags_from_decl_or_type): Call special_function_p.
2103         (initialize_argument_information): Add argument
2104         may_tailcall.
2105         (purge_reg_equiv_notes): New.
2106         (expand_call): Do not try to expand calls inline.
2107         (fixup_tail_calls): New.
2108         * cfg.c: Include timevar.h and ggc.h.
2109         (bb_pool, edge_pool): Remove.
2110         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
2111         (entry_exit_blocks): Remove.
2112         (rbi_pool): Declare.
2113         (init_flow): Do not create pools.
2114         Allocate entry/exit block.
2115         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
2116         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
2117         (unlink_block): Clear b->prev_bb and b->next_bb.
2118         (compact_blocks): Clear all slots of BASIC_BLOCK array.
2119         (dump_flow_info): Work on trees too.
2120         (dump_cfg_bb_info): New.
2121         (brief_dump_cfg): New.
2122         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
2123         (find_edge): New.
2124         * cfgbuild.c (rtl_make_eh_edge): Rename from
2125         make_eh_edge.  Update all users.
2126         (find_basic_blocks): Don't call VARRAY_FREE on
2127         basic_block_info.
2128         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
2129         and newpos2.
2130         (delete_unreachable_blocks): Return changed status.
2131         (merge_seq_blocks): New.
2132         * cfghooks.c: Include tree-flow.h
2133         (tree_register_cfg_hooks, ir_type): New.
2134         (redirect_edge_and_branch): Change return type to edge.
2135         (predict_edge, predicted_by_p, can_duplicate_block_p,
2136         duplicate_block, block_ends_with_call_p,
2137         block_ends_with_condjump_p, flow_call_edges_add): New.
2138         * cfghooks.h (redirect_edge_and_branch): Change return
2139         type to edge.
2140         (predict_edge, predicted_by_p, can_duplicate_block_p,
2141         duplicate_block, block_ends_with_call_p,
2142         block_ends_with_condjump_p, flow_call_edges_add): Declare.
2143         (redirect_edge_and_branch): Change return type to edge.
2144         (struct cfg_hooks): Add fields block_ends_with_call_p,
2145         block_ends_with_condjump_p, flow_call_edges_add,
2146         predict_edge, predicted_by_p, can_duplicate_block_p and
2147         duplicate_block.
2148         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
2149         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
2150         (fixup_reorder_chain): Use initialize_bb_rbi.
2151         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
2152         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
2153         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
2154         (insn_locators_initialize): Use new info about blocks.
2155         * cfglayout.h (typedef struct reorder_block_def): Moved to
2156         basic_block.h.
2157         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
2158         removed.
2159         * cfgloop.c: Include tree.h and tree-flow.h.
2160         * cfgloop.h (create_loop_notes): Declare.
2161         * cfgloopmanip.c (create_loop_notes): New.
2162         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
2163         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
2164         and duplicate_block fields.
2165         (create_basic_block_structure): Don't look at
2166         RTX_INTEGRATED_P.
2167         (rtl_block_ends_with_call_p): New.
2168         (rtl_block_ends_with_condjump_p): New.
2169         (need_fake_edge_p): Moved from cfganal.c.
2170         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
2171         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
2172         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
2173         (cfg_layout_rtl_cfg_hooks): Ditto.
2174         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
2175         functions to be reachable.
2176         * cgraphunit.c (decide_is_function_needed):
2177         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
2178         inline functions don't need to be output.
2179         (cgraph_assemble_pending_functions): Don't do anything
2180         special for nested functions.
2181         (cgraph_mark_functions_to_output): Likewise.
2182         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
2183         (cgraph_analyze_function): Use estimate_num_insns.
2184         (cgraph_mark_functions_to_output): Likewise.
2185         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
2186         (cgraph_expand_function): Allow functions to not be
2187         emitted.
2188         (cgraph_remove_unreachable_nodes):
2189         (cgraph_recursive_inlining_p): Simplify.
2190         (lookup_recursive_calls,
2191         cgraph_decide_recursive_inlining): New.
2192         (cgraph_decide_inlining_*): Update calls of
2193         cgraph_mark_inline.
2194         * combine.c (get_pos_from_mask): Always set *plen.
2195         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
2196         ftree-based-profiling, ftree-ccp, ftree-ch,
2197         ftree-combine-temps, ftree-copyrename, ftree-dce,
2198         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
2199         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
2200         ftree-lrs): Add.
2201         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
2202         Undefine.
2203         * configure.ac: Add --enable-tree-browser option.
2204         Add --with-libbanshee option.
2205         Add GMPLIBS and GMPINC.
2206         * configure: Regenerate.
2207         * coverage.c (tree_ctr_tables): New.
2208         (coverage_counter_alloc): Use it.
2209         (build_ctr_info_value): Ditto.
2210         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
2211         (tree_coverage_counter_ref): New.
2212         * coverage.h (coverage_counter_ref): Remove declaration.
2213         (rtl_coverage_counter_ref): Declare.
2214         (tree_coverage_counter_ref): Declare.
2215         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
2216         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
2217         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
2218         (struct cse_basic_block_data): Rename enum values to not
2219         conflict with profile.h; update all uses.
2220         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
2221         in comments.
2222         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
2223         * diagnostic.h (debug_output_buffer, dump_generic_node,
2224         print_generic_stmt, print_generic_stmt_indented,
2225         print_generic_expr, print_generic_decl,
2226         debug_generic_expr, debug_generic_stmt, debug_c_tree):
2227         Declare.
2228         * dominance.c: Cache immediate dominators.
2229         * domwalk.c: New file.
2230         * domwalk.h: New file.
2231         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
2232         (gen_subprogram_die): Generate a DIE for a named
2233         return value.
2234         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
2235         (add_location_or_const_value_attribute): Likewise.
2236         (add_bound_info): Likewise.
2237         (gen_decl_die): Likewise.
2238         * emit-rtl.c (maybe_set_first_label_num): New.
2239         (copy_most_rtx): Don't copy the integrated flag.
2240         Copy the new return_val flag.
2241         * et-forest.c (MAX_NODES): Define.
2242         (record_path_before_1): Abort if len is greater than
2243         MAX_NODES.
2244         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
2245         gen_eh_region_catch, gen_eh_region_allowed,
2246         gen_eh_region_must_not_throw, get_eh_region_number,
2247         get_eh_region_may_contain_throw, get_eh_region_tree_label,
2248         set_eh_region_tree_label, expand_resx_expr): New.
2249         (expand_eh_region_start, expand_start_catch): Use them.
2250         (expand_end_catch): Tidy.
2251         (note_eh_region_may_contain_throw): Take region argument.
2252         (note_current_region_may_contain_throw): New.
2253         (get_exception_filter): Export.
2254         (collect_eh_region_array): Export.
2255         (remove_unreachable_regions): Check ERT_TRY based on reachability
2256         of catches, not reachability of continue_label.  Never remove
2257         ERT_MUST_NOT_THROW regions.
2258         (collect_rtl_labels_from_trees): New.
2259         (convert_from_eh_region_ranges): Use it.
2260         (connect_post_landing_pads): Handle dying cleanups.
2261         (struct reachable_info): Add callback data.
2262         (add_reachable_handler): Invoke the callback.
2263         (foreach_reachable_handler): New.
2264         (reachable_handlers): Use it.
2265         (arh_to_landing_pad, arh_to_label): New.
2266         (can_throw_internal_1): Split out from can_throw_internal.
2267         (can_throw_external_1): Similarly.
2268         * except.h: Update.
2269         * explow.c (emit_stack_save): Remove savearea mode check.
2270         (update_nonlocal_goto_save_area): New.
2271         (allocate_dynamic_stack_space): Use it.
2272         (probe_stack_range): Never emit loop notes.
2273         * expmed.c (extract_fixed_bit_field): Always propagate the
2274         target for the shift if it is a REG.
2275         * expr.c: Include tree-iterator.h
2276         (is_zeros_p): Remove.
2277         (categorize_ctor_elements_1, categorize_ctor_elements): New.
2278         (count_type_elements): New.
2279         (mostly_zeros_p): Use them.
2280         (expr_wfl_stack): Remove.
2281         (convert_move): Do nothing if to and from are the same.
2282         (emit_block_move_via_loop): Don't emit LOOP notes.
2283         (emit_move_insn): Don't handle CONSTANT_P_RTX.
2284         (emit_move_insn_1): Don't generate inline warnings.
2285         (expand_vars, expand_var): Split from ...
2286         (expand_expr_1): ... here.
2287         (expand_expr_real, expand_expr_real_1):  Use new macros
2288         EXPR_LOCATION and EXPR_HAS_LOCATION.
2289         * expr.h (simplify_builtin_fputs,
2290         simplify_builtin_strcpy, simplify_builtin_strncpy,
2291         expand_var, fixup_tail_calls,
2292         update_nonlocal_goto_save_area): Declare.
2293         (lookup_static_chain, expand_inline_function,
2294         mark_seen_cases): Remove.
2295         (prepare_call_address): Change type of 2nd argument to
2296         rtx.
2297         * final.c (profile_function): Update static chain test.
2298         (final): Don't look at RTX_INTEGRATED_P.
2299         * flags.h (flag_mudflap, flag_mudflap_threads,
2300         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
2301         flag_tree_dce, flag_tree_combine_temps,
2302         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
2303         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
2304         flag_tree_points_to): Declare.
2305         (enum pta_type): Declare.
2306         * flow.c (lang_missing_noreturn_ok_p): Remove.
2307         (check_function_return_warnings): Remove.
2308         (update_life_info): Update comments.
2309         (free_basic_block_vars): Don't call VARRAY_FREE for
2310         basic_block_info.
2311         (regno_uninitialized): Remove.
2312         * fold-const.c (int_const_binop): Make extern.
2313         (non_lvalue): Rely on build to set TREE_CONSTANT.
2314         (operand_equal_p): Replace only_const argument with
2315         flags.  Allow pure functions if OEP_PURE_SAME.
2316         (fold): Use OEP_ONLY_CONST.
2317         (invert_truthvalue) <NOP_EXPR> Break if argument is of
2318         boolean type.
2319         (fold_relational_hi_lo,
2320         nondestructive_fold_binary_to_constant,
2321         nondestructive_fold_unary_to_constant,
2322         fold_read_from_constant_string): New.
2323         * function.c (struct function): Remove calls_constant_p.
2324         (current_function_calls_constant_p): Remove.
2325         (inline_function_decl): Remove.
2326         (put_var_into_stack): Don't use it.
2327         (fix_lexical_addr): Likewise.
2328         (inline_function_decl): Remove extern declaration.
2329         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
2330         (trampolines_created): Move to varasm.c.
2331         (free_after_compilation): Update for removed fields.
2332         (allocate_struct_function): Likewise.
2333         (delete_handlers, lookup_static_chain): Remove.
2334         (fix_lexical_addr): Don't consider non-local variable refs.
2335         (trampoline_address): Remove.
2336         (round_trampoline_addr): Move to builtins.c.
2337         (adjust_trampoline_addr): Remove.
2338         (expand_function_start): Update for changes to static chain
2339         and nonlocal goto handling.
2340         (initial_trampoline): Move to varasm.c.
2341         (expand_function_end): Don't build trampolines or kill
2342         unreferenced nonlocal goto labels.
2343         (free_after_compilation): Don't set it.
2344         (expand_function_end): Likewise.
2345         (setjmp_vars_warning): Rename from
2346         uninitialized_vars_warning, remove uninitialized vars warning.
2347         (uninitialized_vars_warning): Remove old comment
2348         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2349         and do not call the langhook.
2350         (expand_function_start, expand_function_end): Don't do
2351         function instrumentation here.
2352         (clear_block_marks): Rename from reorder_blocks_0, export.
2353         (blocks_nreverse): Export.
2354         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2355         of rtl.
2356         (reset_block_changes, record_block_change, finalize_block_changes,
2357         check_block_change, free_block_changes): New functions.
2358         (assign_parms): Setting of current_function_stdarg
2359         moved ...
2360         (allocate_struct_function): ... here.
2361         * function.h (struct function): Remove x_nonlocal_labels,
2362         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2363         x_context_display, x_trampoline_list, needs_context.
2364         Add static_chain_decl, nonlocal_goto_save_area.
2365         (struct function): Remove x_clobber_return_insn.
2366         Add tail_call_emit field, last_label_uid,
2367         unexpanded_var_list, dont_emit_block_notes,
2368         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2369         (clear_block_marks): Declare.
2370         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2371         (mfwrap_spec, mflib_spec): Declare.
2372         (cpp_unique_options, cc1_options): Ditto.
2373         (default_compilers): Add .F and .f90.
2374         (static_specs): Add mfwrap and mflib.
2375         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2376         CONSTANT_RTX_P.
2377         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2378         Update to match insns field in struct edge_def.
2379         * gdbinit.in (pgs, pge): Define.
2380         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2381         instead of the integrated flag.
2382         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2383         * gengtype-yacc.y (bitfieldlen): Add empty action.
2384         (struct_fields): Accept unnamed bitfields.
2385         (bitfieldlen): Split from ...
2386         (bitfieldopt): ... here.
2387         * gengtype.c (ifiles): Add tree-alias-type.h and
2388         tree-flow.h.
2389         * genrecog.c (validate_pattern): Do not handle
2390         CONSTANT_P_RTX.
2391         * gimple-low.c: New file.
2392         * gimplify.c: New file.
2393         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2394         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2395         * ifcvt.c (dead_or_predicable): Initialize local variable
2396         'earliest'.
2397         * input.h (expr_wfl_stack): Remove.
2398         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2399         (setup_initial_hard_reg_value_integration): Likewise.
2400         (initialize_for_inline): Likewise.
2401         (note_modified_parmregs): Likewise.
2402         (integrate_parm_decls): Likewise.
2403         (process_reg_param): Likewise.
2404         (save_parm_insns): Likewise.
2405         (copy_insn_list): Likewise.
2406         (copy_insn_notes): Likewise.
2407         (compare_blocks): Likewise.
2408         (find_block): Likewise.
2409         (inlining): Likewise.
2410         (function_cannot_inline_p): Likewise.
2411         (parmdecl_map): Likewise.
2412         (in_nonparam_insns): Likewise.
2413         (save_for_inline): Likewise.
2414         (FIXED_BASE_PLUS): Likewise.
2415         (expand_inline_function): Likewise.
2416         (copy_rtx_and_substitute): Don't look at map->integrating,
2417         map->inline_target, and inlining, since we are never copying
2418         for integrating.
2419         Don't abort on RTX_INTEGRATED_P.
2420         (old_fun): Remove.
2421         (output_inline_function): Remove.
2422         * integrate.h (struct inline_map): Remove fields integrating,
2423         block_map, leaf_reg_map, inline_target, and local_return_label.
2424         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2425         copy_loop_headers, never_reached_warning): Removed.
2426         (any_uncondjump_p): Reject nonlocal goto.
2427         * langhooks-def.h (lhd_types_compatible_p,
2428         lhd_expand_decl, lhd_gimplify_expr): Declare.
2429         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2430         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2431         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2432         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2433         LANG_HOOKS_GIMPLIFY_EXPR,
2434         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2435         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2436         LANG_HOOKS_GIMPLIFY_EXPR,
2437         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2438         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2439         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2440         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2441         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2442         LANG_HOOKS_DECL_UNINIT,
2443         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2444         * langhooks.c: Include tree-simple.h.
2445         (lhd_expand_decl): New.
2446         (lhd_types_compatible_p): New.
2447         (lhd_decl_uninit): Remove.
2448         (lhd_gimplify_expr): New.
2449         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2450         Remove.
2451         (struct lang_hooks_for_functions): Add field
2452         missing_noreturn_ok_p.
2453         (struct lang_hooks): Add field expand_decl,
2454         types_compatible_p, gimplify_expr and
2455         gimple_before_inlining.
2456         Remove fields decl_uninit and rtl_expand
2457         * opts.c (decode_options): Set flag_tree_ccp,
2458         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2459         flag_tree_pre, flag_tree_ter,
2460         flag_tree_live_range_split, flag_tree_sra,
2461         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2462         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2463         OPT_fmudflapth, OPT_fmudflapir,
2464         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2465         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2466         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2467         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2468         OPT_ftree_points_to_ and OPT_ftree_pre.
2469         * output.h (regno_uninitialized, find_basic_blocks,
2470         cleanup_cfg, delete_unreachable_blocks,
2471         check_function_return_warnings): Remove.
2472         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2473         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2474         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2475         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2476         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2477         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2478         Define.
2479         * passes.c (rest_of_decl_compilation):
2480         (rest_of_handle_sibling_calls): Remove.
2481         (rest_of_handle_inlining): Remove.
2482         (rest_of_handle_gcse): Do not run
2483         purge_builtin_constant_p.
2484         (rest_of_compilation): Update.
2485         Do not call copy_loop_headers.
2486         Do rtl-based profiling only when
2487         !flag_tree_based_profiling.  Register rtl-based profiling
2488         hooks.
2489         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2490         (predicted_by_p): Rename to ...
2491         (rtl_predicted_by_p): .. this one; make global
2492         (tree_predicted_by_p): New.
2493         (dump_prediction): Add FILE argument.
2494         (predict_edge): Rename to ...
2495         (rtl_predict_edge): .. this one.
2496         (tree_predict_edge): New.
2497         (combine_predictions_for_insn): Update calls of predict_edge.
2498         (predict_loops): Break out from ...
2499         (estimate_probability): ... here; update comments; move updating
2500         of unknown probabilities from ...
2501         (estimate_bb_frequencies): ... here.
2502         (combine_predictions_for_bb): New.
2503         (tree_predict_by_opcode): New.
2504         (tree_estimate_probability): New.
2505         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2506         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2507         * predict.h: Add include guard.
2508         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2509         * pretty-print.c (pp_write_text_to_stream): Make extern.
2510         * pretty-print.h (pp_write_text_to_stream): Declare.
2511         * print-rtl.c (print_rtx): Don't print the integrated flag.
2512         Print the return_val flag.
2513         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2514         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2515         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2516         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2517         * profile.c: Include cfghooks.h, tree-flow.h.
2518         (profile_hooks): New.
2519         (profile_dump_file): New.
2520         (instrument_edges): Use hooks instead of RTL-specific code.
2521         (instrument_values): Ditto.
2522         (get_exec_counts): Ditto.
2523         (compute_branch_probabilities): Ditto.
2524         (compute_value_histograms): Ditto.
2525         (branch_prob): Ditto.
2526         (find_spanning_tree): Ditto.
2527         (end_branch_prob): Ditto.
2528         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2529         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2530         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2531         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2532         (tree_register_profile_hooks): New.
2533         (rtl_register_profile_hooks): New.
2534         * ra-rewrite.c (rewrite_program): Clear variable info.
2535         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2536         * regs.h: Add include guards.
2537         * reload.c (decompose): Clear val using memset.
2538         * rtl.def (CONSTANT_P_RTX): Remove.
2539         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2540         (copy_loop_headers): Remove.
2541         (struct rtx_def): Replace the integrated flag with the
2542         return_val flag.
2543         (maybe_set_first_label_num): Declare.
2544         (init_branch_prob): Move declaration to value-prof.h.
2545         (end_branch_prob): Ditto.
2546         (branch_prob): Ditto.
2547         (never_reached_warning): Don't declare it.
2548         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2549         (hoist_insn_to_edge): Update to match field insns in
2550         struct edge_def.
2551         * sbitmap.c (sbitmap_realloc): New.
2552         * sbitmap.h (sbitmap_realloc): Declare.
2553         * sibcall.c: Remove file.
2554         * simplify-rtx.c (simplify_rtx): Do not handle
2555         CONSTANT_P_RTX.
2556         * stmt.c (parse_output_constraint): Don't warn for read-write
2557         memory operand.
2558         (tail_recursion_args): Use types_compatible_p langhook.
2559         (force_label_rtx): Don't look at inline_function_decl.
2560         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2561         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2562         (declare_nonlocal_label): Remove.
2563         (expand_goto): Don't handle nonlocal gotos.
2564         (expand_nl_handler_label): Remove.
2565         (expand_nl_goto_receivers): Remove.
2566         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2567         update_nonlocal_goto_save_area.
2568         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2569         (warn_if_unused_value): Likewise.
2570         (expand_start_loop, expand_loop_continue_here,
2571         expand_end_loop): Don't create loop notes.
2572         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2573         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2574         (expand_end_case_type): Don't do warn_switch handling.
2575         (pushcase, pushcase_range) Update add_case_node calls.
2576         (add_case_node): Add dont_expand_label argument.
2577         (same_case_target_p): Don't search rtl.
2578         (expand_start_bindings_and_block, expand_end_bindings):
2579         Don't emit block notes when dont_emit_block_notes.
2580         (using_eh_for_cleanups_p): Export.
2581         (expand_return): Allow any typed rhs.
2582         (expand_stack_alloc): New.
2583         (expand_stack_save, expand_stack_restore): New.
2584         (containing_blocks_have_cleanups_or_stack_level): New
2585         function.
2586         (asm_op_is_mem_input): New fn.
2587         (expand_asm_expr): New fn.
2588         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2589         nodes.
2590         * stor-layout.c (layout_type): Just return if type is
2591         error_mark_node.
2592         (update_alignment_for_field): Export.
2593         (variable_size): We don't care about global_bindings_p if
2594         the frontend doesn't want a list of the expressions.
2595         * system.h: Poison INTEGRATE_THRESHOLD.
2596         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2597         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2598         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2599         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2600         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2601         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2602         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2603         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2604         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2605         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2606         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2607         TV_CONTROL_DEPENDENCES): Define.
2608         * toplev.c: Include tree-alias-common.h
2609         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2610         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2611         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2612         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2613         flag_tree_combine_temps, flag_tree_ter,
2614         flag_tree_live_range_split, flag_tree_dom,
2615         flag_tree_copyrename, flag_tree_dse): Declare.
2616         (f_options): Add tree-based-profiling, tree-gvn,
2617         tree-pre, tree-ccp, tree-dce,
2618         tree-dominator-opts, tree-copyrename, tree-dse,
2619         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2620         (wrapup_global_declarations): Don't output nested inlined functions.
2621         (general_init): Call init_tree_optimization_passes.
2622         (process_options): Sorry for -ftree-based-profiling plus
2623         -ftest-coverage or -fprofile-values.
2624         * toplev.h (init_tree_optimization_passes,
2625         flag_tree_based_profiling): Declare.
2626         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2627         * tree-alias-ander.c: New file.
2628         * tree-alias-ander.h: New file.
2629         * tree-alias-common.c: New file.
2630         * tree-alias-common.h: New file.
2631         * tree-alias-type.c: New file.
2632         * tree-alias-type.h: New file.
2633         * tree-browser.c: New file.
2634         * tree-browser.def: New file.
2635         * tree-cfg.c: New file.
2636         * tree-complex.c: New file.
2637         * tree-dfa.c: New file.
2638         * tree-dump.c (dump_enable_all): New.
2639         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2640         (dump_node): Remove const from field suffix and swtch.
2641         (dump_files): Add null entry, .generic, .nested, .vcg,
2642         .xml and a match-all entry.
2643         (extra_dump_files, extra_dump_files_in_use,
2644         extra_dump_files_alloced): Declare
2645         (dump_option_value_info): Add raw, details, stats,
2646         blocks, vops, lineno, uid and all.
2647         (dump_register): New.
2648         (get_dump_file_info): New.
2649         (dump_begin): Call it.
2650         Do nothing for TDI_none.
2651         (dump_begin): Include phase number in dump filename.
2652         (dump_enable_all): New.
2653         (dump_switch_p_1): Split out from dump_switch_p.
2654         (dump_switch_p): Handle extra_dump_files.
2655         Start our scan at TDI_none + 1.
2656         If -fdump-tree-all was given, call dump_enable_all.
2657         * tree-dump.h: Include splay-tree.h.
2658         (dump_function, dump_function_to_file, dump_register):
2659         Declare.
2660         * tree-eh.c: New file.
2661         * tree-flow-inline.h: New file.
2662         * tree-flow.h: New file.
2663         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2664         * tree-inline.h (walk_tree,
2665         walk_tree_without_duplicates): Move to tree.h.
2666         (estimate_num_insns): Declare.
2667         * tree-into-ssa.c: New file.
2668         * tree-iterator.c: New file.
2669         * tree-iterator.h: New file.
2670         * tree-mudflap.c: New file.
2671         * tree-mudflap.h: New file.
2672         * tree-nested.c: New file.
2673         * tree-nomudflap.c: New file.
2674         * tree-nrv.c: New file.
2675         * tree-optimize.c (dump_flags, vars_to_rename,
2676         in_gimple_form, all_passes, pass_gimple,
2677         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2678         (execute_gimple, execute_rebuild_bind,
2679         gate_all_optimizations, execute_del_cfg,
2680         register_one_dump_file, register_dump_files, dup_pass_1,
2681         init_tree_optimization_passes, execute_todo,
2682         execute_one_pass, execute_pass_list): New.
2683         (clear_decl_rtl): Remove.
2684         (tree_rest_of_compilation): Update to use tree
2685         optimizers.
2686         * tree-outof-ssa.c: New file.
2687         * tree-pass.h: New file.
2688         * tree-phinodes.c: New file.
2689         * tree-pretty-print.c: New file.
2690         * tree-profile.c: New file.
2691         * tree-simple.c: New file.
2692         * tree-simple.h: New file.
2693         * tree-sra.c: New file.
2694         * tree-ssa-alias.c: New file.
2695         * tree-ssa-ccp.c: New file.
2696         * tree-ssa-copy.c: New file.
2697         * tree-ssa-copyrename.c: New file.
2698         * tree-ssa-dce.c: New file.
2699         * tree-ssa-dom.c: New file.
2700         * tree-ssa-dse.c: New file.
2701         * tree-ssa-forwprop.c: New file.
2702         * tree-ssa-live.c: New file.
2703         * tree-ssa-live.h: New file.
2704         * tree-ssa-loop.c: New file.
2705         * tree-ssa-operands.c: New file.
2706         * tree-ssa-operands.h: New file.
2707         * tree-ssa-phiopt.c: New file.
2708         * tree-ssa-pre.c: New file.
2709         * tree-ssa.c: New file.
2710         * tree-ssanames.c: New file.
2711         * tree-tailcall.c: New file.
2712         * tree.c: Include tree-iterator.h, basic-block.h and
2713         tree-flow.h.
2714         (tree_node_kind): Add phi_nodes and ssa names.
2715         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2716         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2717         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2718         <'c'> Set TREE_INVARIANT.
2719         (copy_node_stat): Abort if trying to copy a
2720         STATEMENT_LIST.
2721         Clear TREE_VISITED.
2722         Clear annotation field.
2723         (build_constructor): Copy TREE_INVARIANT from vals.
2724         Don't clear TREE_CONSTANT.
2725         (expr_first, expr_last, expr_length): Remove.
2726         (staticp): Pass unknown component references to the language.
2727         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2728         (skip_simple_arithmetic): Likewise.
2729         (stabilize_reference_1): Likewise.
2730         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2731         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2732         STATEMENT_LIST.
2733         (lhd_unsave_expr_now): Remove.
2734         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2735         (recompute_tree_invarant_for_addr_expr): New.
2736         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2737         Call recompute_tree_invarant_for_addr_expr.
2738         Set TREE_INVARIANT accordingly.
2739         (build2_stat): Don't handle CALL_EXPR.
2740         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2741         (build_expr_wfl): Remove.
2742         (annotate_with_file_line, annotate_with_locus): New.
2743         (simple_cst_equal): Call simple_cst_list_equal to compare
2744         CONSTRUCTOR_ELTS pointers.
2745         (iterative_hash_expr): Don't hash types associated
2746         with conversions.  Instead hash on the signedness of the
2747         toplevel object and the operand of the conversion.
2748         (dump_tree_statistics): Call ssanames_print_statistics
2749         and phinodes_print_statistics.
2750         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2751         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2752         needs_to_live_in_memory): New.
2753         (initializer_zerop): Handle VECTOR_CST.  Don't check
2754         AGGREGATE_TYPE_P for CONSTRUCTOR.
2755         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2756         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2757         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2758         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2759         (CALL_EXPR): Add another operand.
2760         (EXPR_WITH_FILE_LOCATION): Remove.
2761         (SWITCH_EXPR): Add another operand.
2762         * tree.h: Update various comments.
2763         (union tree_ann_d): Forward declare.
2764         (struct tree_common): Add fields nowarning_flag,
2765         invariant_flag and visited.
2766         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2767         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2768         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2769         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2770         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2771         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2772         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2773         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2774         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2775         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2776         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2777         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2778         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2779         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2780         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2781         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2782         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2783         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2784         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2785         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2786         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2787         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2788         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2789         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2790         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2791         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2792         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2793         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2794         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2795         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2796         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2797         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2798         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2799         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2800         TDF_UID,): Define.
2801         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2802         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2803         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2804         EXPR_WFL_SET_LINECOL): Remove.
2805         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2806         make_phi_node, init_phinodes, fini_phinodes,
2807         release_phi_node, phinodes_print_statistics,
2808         init_ssanames, fini_ssanames, make_ssa_name,
2809         release_ssa_name, ssanames_print_statistics,
2810         annotate_with_file_line, build_empty_stmt,
2811         annotate_with_locus, expr_only, categorize_ctor_elements,
2812         count_type_elements, add_var_to_bind_expr, is_essa_node,
2813         expand_stack_alloc, expand_stack_save,
2814         expand_stack_restore, add_case_node, operand_equal_p,
2815         nondestructive_fold_unary_to_constant,
2816         nondestructive_fold_binary_to_constant,
2817         fold_read_from_constant_string, int_const_binop,
2818         strip_float_extensions, simplify_builtin, c_strlen,
2819         recompute_tree_invarant_for_addr_expr,
2820         needs_to_live_in_memory, make_vector,
2821         setjmp_vars_warning, update_alignment_for_field,
2822         expand_asm_expr, asm_op_is_mem_input,
2823         containing_blocks_have_cleanups_or_stack_level,
2824         create_artificial_label, gimplify_function_tree,
2825         get_name, unshare_expr, walk_tree,
2826         walk_tree_without_duplicates, in_gimple_form): Declare.
2827         (struct tree_exp): Add fields locus and block.
2828         (struct tree_ssa_name, struct edge_def, struct
2829         tree_phi_node, struct tree_eref_common, struct
2830         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2831         union alias_var_def, struct tree_statement_list_node,
2832         struct tree_statement_list, enum operand_equal_flag): Declare.
2833         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2834         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2835         TS_STATEMENT_LIST.
2836         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2837         euse and stmt_list.
2838         (function_cannot_inline_p, uninitialized_vars_warning,
2839         save_for_inline, output_inline_function, all_cases_count,
2840         check_for_full_enumeration_handling,
2841         declare_nonlocal_label): Remove.
2842         (enum tree_dump_index): Add TDI_none, TDI_tu,
2843         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2844         * unroll.c (unroll_loop): Don't clear map->inline_target.
2845         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2846         function.
2847         * value-prof.c (value_prof_hooks): New.
2848         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2849         Move rtl-specific bits in from branch_prob.
2850         (value_profile_transformations): Rename to
2851         rtl_value_profile_transformations.
2852         (struct value_prof_hooks): New.
2853         (rtl_value_prof_hooks): New.
2854         (rtl_register_value_prof_hooks): New.
2855         (tree_find_values_to_profile): New stub.
2856         (tree_value_profile_transformations): New stub.
2857         (tree_value_prof_hooks): New stub.
2858         (tree_register_value_prof_hooks): New stub.
2859         (find_values_to_profile): New.
2860         (value_profile_transformations): New.
2861         * value-prof.h: Add multiple inclusion guard.
2862         (struct histogram_value): Change rtx fields to void *.
2863         (rtl_register_value_prof_hooks): New declaration.
2864         (tree_register_value_prof_hooks): New declaration.
2865         (find_values_to_profile): New declaration.
2866         (free_profiled_values): New declaration.
2867         (value_profile_transformations): New declaration.
2868         (struct profile_hooks): New declaration.
2869         (init_branch_prob): Declaration moved from rtl.h.
2870         (branch_prob): Declaration moved from rtl.h.
2871         (end_branch_prob): Declaration mooved from rtl.h.
2872         (tree_register_profile_hooks): New declaration.
2873         (rtl_register_profile_hooks): New declaration.
2874         (tree_profile_hooks): New declaration.
2875         (rtl_profile_hooks): New declaration.
2876         * varasm.c: Include tree-mudflap.h.
2877         (TRAMPOLINE_ALIGNMENT): Remove.
2878         (make_decl_rtl): Call mudflap_enqueue_decl.
2879         (assemble_static_space):
2880         (assemble_trampoline_template): Set and return
2881         TRAMPOLINE_ALIGNMENT.
2882         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2883         Add entry for 'tree *'.
2884         Add entry for struct edge_def *.
2885         (varray_copy): New.
2886         * varray.h (enum varray_data_enum): Add
2887         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2888         VARRAY_DATA_TREE_PTR.
2889         (union varray_data_tag): Corresponding changes.
2890         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2891         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2892         VARRAY_EDGE, VARRAY_TREE_PTR,
2893         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2894         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2895         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2896
2897         * config/*/*: Various updates for changed macros, tree
2898         codes, etc.  Check ChangeLog.tree-ssa.
2899
2900         * doc/cfg.texi: New file.
2901         * doc/tree-ssa.texi: New file.
2902         * doc/c-tree.texi: Document new codes.
2903         * doc/gccint.texi: Include new files.
2904         * doc/install.texi: Document new features.
2905         * doc/invoke.texi: Document new switches.
2906         * doc/passes.texi: Document new passes.
2907         * doc/rtl.texi: Update changed RTL codes.
2908         * doc/sourcebuild.texi: Update build instructions.
2909         * doc/standards.texi: Document Fortran changes.
2910         * doc/tm.texi: Update.
2911
2912 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2913
2914         Replace several arrays with a struct of arrays.
2915         * combine.c (struct reg_stat): New.
2916         (init_reg_last_arrays): Renamed to...
2917         (init_reg_last): ...this.  Callers adjusted.
2918         (reg_stat): New.
2919         (combine_instructions): Allocate it and use it.
2920         (reg_last_death, reg_last_set, reg_last_set_value,
2921         reg_last_set_label, reg_last_set_table_tick,
2922         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2923         reg_last_set_mode, reg_last_set_nonzero_bits,
2924         reg_last_set_sign_bit_copies): Replace throughout
2925         with items of reg_stat.
2926
2927 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2928
2929         PR optimization/15100
2930         * combine.c (distribute_notes): Don't create a dangling
2931         REG_LIBCALL/REG_RETVAL note.
2932
2933 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2934
2935         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2936
2937         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2938         negv2si2.
2939
2940 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2941
2942         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2943
2944 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2945
2946         * doc/gty.texi (GTY Options): Clarify example.
2947
2948 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2949
2950         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2951         Add const qualifier to altivec vector type if one is needed.
2952
2953 2004-05-11  Paul Brook  <paul@codesourcery.com>
2954
2955         * flags.h (flag_short_enums): Update comment.
2956         * opts.c (decode_options): Set flag_short_enums to 2.
2957         * toplev.c (flag_short_enums): Update comment.
2958         (process_options): Call default_short_enums target hook.
2959
2960 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2961
2962         PR target/14063
2963         * config/rs6000/altivec.md (altivec_dssall):
2964         Change to unspec_volatile.
2965         (altivec_dss): Likewise.
2966
2967 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
2968
2969         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
2970         vnor.
2971         ("one_cmplv8hi2"): Same.
2972         ("one_cmplv4si2"): Same.
2973
2974 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2975
2976         PR target/15130
2977         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
2978         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
2979         into account.  Compute the correct number of general registers
2980         for the return value.  Generate a special push/pop sequence when
2981         failing to get a temporary register for non SHmedia epilogue.
2982         (sh_expand_epilogue): Add an argument to show whether it's for
2983         sibcall or not.  Set the 3rd argument of output_stack_adjust to
2984         -1 if needed.
2985         (sh_need_epilogue): Call sh_expand_epilogue with 0.
2986         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
2987         with 1.
2988         (epilogue): Call sh_expand_epilogue with 0.
2989
2990 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
2991
2992         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
2993         goto a cleanup label.  After the cleanup, free the allocated memory.
2994
2995 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
2996
2997         * config/rs6000/altivec.h (vec_sld): Add overloads for
2998         argument/return types of 'vector bool int', 'vector bool short'
2999         and 'vector bool char'.
3000
3001 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
3002
3003         * c-decl.c (store_parm_decls_newstyle): Correct test for a
3004         nested function.
3005
3006 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
3007
3008         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
3009         treating missing ones as "".
3010         * config/mips/mips.md: Remove constraints from match_operands and
3011         match_scratches if they appear in define_expands (except reload*),
3012         define_peephole2s, define_splits or attribute specifications.
3013         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
3014         constraint strings.
3015
3016 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3017
3018         * config/rs6000/rs6000.c (function_arg_boundary): Always align
3019         AltiVec vectors.
3020         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
3021         vectors by refererence.  Align the same for TARGET_64BIT to a 16
3022         byte boundary.  Remove useless code.  Add function comment.
3023         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
3024         call to where it belongs.
3025         (function_arg_partial_nregs): Return true for all TARGET_32BIT
3026         -mabi=no-altivec AltiVec vectors.  Fix debug output.
3027         (rs6000_va_arg): Adjust for AltiVec change.
3028
3029 2004-05-10  Paul Brook  <paul@codesourcery.com>
3030
3031         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3032         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3033         (TARGET_DOUBLEWORD_ALIGN): Use it.
3034         (WCHAR_TYPE): Define.
3035         (WCHAR_SIZE_TYPE): Define.
3036         (SIZE_TYPE): Define.
3037
3038 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3039
3040         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
3041         when size is 8 bytes.
3042         (function_arg_advance): Account for stack space used by AltiVec
3043         args when -mabi=altivec.  Simplify alignment calculations.  For
3044         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
3045         (function_arg): Similarly.
3046         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
3047         not AltiVec ABI.
3048         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
3049         Correct alignment, and align before testing reg count.  Remove
3050         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
3051         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
3052         TARGET_FPRS here..
3053         (rs6000_function_value): .. not here before call.
3054
3055 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3056
3057         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
3058
3059 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
3060
3061         PR 15007
3062         * c-decl.c (current_file_decl): Rename to all_translation_units,
3063         adjust comment.
3064         (pop_scope): If popping file_scope, construct a
3065         TRANSLATION_UNIT_DECL and make it the context of all the
3066         symbols in the scope.
3067         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
3068         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
3069         anything to current_file_decl.
3070         (pushdecl_top_level): Likewise.
3071         (store_parm_decls_newstyle): Adjust check for nested function.
3072         (c_write_global_declarations): Update for renamed variable.
3073
3074 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3075
3076         * config/rs6000/rs6000-protos.h
3077         (rs6000_conditional_register_usage): Protoize.
3078
3079         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
3080
3081         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
3082         function.
3083
3084 2004-05-08  Roger Sayle  <roger@eyesopen.com>
3085
3086         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
3087         where op is a comparison operator and C1 and C2 are integer constants
3088         into a range check.
3089         (fold): Call fold_div_compare.
3090
3091 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3092
3093         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
3094         problems with earlier versions of the GNU compiler.
3095
3096 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
3097
3098         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
3099         Declare.
3100
3101         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
3102         (rs6000_hard_regno_mode_ok): New.
3103         (rs6000_init_hard_regno_mode_ok): New.
3104         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
3105
3106         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
3107         result.
3108
3109 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
3110
3111         * config/rs6000/altivec.h (vector, pixel, bool): Do not
3112         define as macros #ifdef __APPLE_ALTIVEC__.
3113
3114 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
3115
3116         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
3117         Generate appropriate parallels for vector arguments
3118         passed to vararg functions. (function_arg): make the call
3119         to rs6000_mixed_function_arg for vector args as needed.
3120
3121 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3122
3123         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
3124         EABI_FLOAT_VARARGS_P.
3125
3126 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3127
3128         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
3129         * config/mips/mips.c (override_options): Disable branch likely
3130         instructions if TUNE_MIPS5500.
3131
3132 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3133
3134         * config/mips/mips.c (override_options): Allow the hi and lo registers
3135         to store any integral mode, not just MODE_INTs.
3136
3137 2004-05-07  Paul Brook  <paul@codesourcery.com>
3138
3139         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3140         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3141         (TARGET_DOUBLEWORD_ALIGN): Use it.
3142         (WCHAR_TYPE): Define.
3143         (WCHAR_SIZE_TYPE): Define.
3144         (SIZE_TYPE): Define.
3145
3146 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3147
3148         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
3149         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
3150
3151 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
3152
3153         * loop-doloop.c (doloop_valid_p): Make sure that body
3154         gets freed.
3155
3156 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
3157
3158         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
3159         declaration.
3160         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
3161         (sparc_skip_caller_unimp): New global variable.
3162         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
3163         Use it instead of SKIP_CALLERS_UNIMP_P.
3164         * config/sparc/sparc.md (call expander): Add sanity check.
3165         (call_address_struct_value_sp32): Re-sync with expander.
3166         (call_symbolic_struct_value_sp32): Likewise.
3167         (return peepholes): Use 'sparc_skip_caller_unimp' instead
3168         of custom predicate.
3169
3170 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3171
3172         PR c++/14962
3173         * c-pragma.c (handle_pragma_redefine_extname): Only change
3174         the assembler name of FUNCTION_DECLs and VAR_DECLs.
3175
3176 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3177
3178         * optabs.h (enum optab_index): Add new OTI_log1p.
3179         (log1p_optab): Define corresponding macro.
3180         * optabs.c (init_optabs): Initialize log1p_optab.
3181         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
3182         patterns.
3183         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
3184         using log1p_optab.
3185         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
3186         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3187
3188         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
3189
3190         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
3191         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
3192         Prototype here.
3193         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
3194         x87's fyl2xp1 instruction.
3195         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
3196         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
3197         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
3198         log1p  and log1pl built-ins as inline x87 intrinsics.
3199
3200 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
3201
3202         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
3203         * config/arm/freebsd.h: Likewise.
3204         * config/ia64/freebsd.h: Likewise.
3205         * config/sparc/freebsd.h: Likewise.
3206
3207 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
3208
3209         PR optimization/15296
3210         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
3211         getting last consecutive label at a branch.
3212         (relax_delay_slots): Similar, near top of loop.
3213
3214 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3215
3216         PR target/15202
3217         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
3218         register to general register.
3219
3220 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
3221
3222         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
3223         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
3224         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
3225         (STACK_BOUNDARY): Delete.
3226
3227 2004-05-06  Stuart Hastings  <stuart@apple.com>
3228
3229         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
3230         mistakenly clobbered by 1.423.
3231
3232 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3233
3234         * doc/invoke.texi: Document -mvr4130-align.
3235         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
3236         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
3237         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
3238         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
3239         * config/mips/mips.md: Include sched-int.h.
3240         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
3241         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
3242         (override_options): Enable -mvr4130-align at -O3 and above.
3243         (mips_sim_insn): New variable.
3244         (mips_sim): New structure.
3245         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
3246         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
3247         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
3248         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
3249         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
3250         (mips_reorg): Call vr4130_align_insns.
3251         (vr4130_last_insn): New variable.
3252         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
3253         (vr4130_swap_insns_p, vr4130_reorder): New functions.
3254         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
3255         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
3256         (mips_use_dfa_pipeline_interface): Return true for the same.
3257         * config/mips/4130.md: New file.
3258         * config/mips/mips.md: Include it.  Add a peephole2 to convert
3259         "mult;mflo" into "mtlo;macc".
3260         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
3261         target of maccs.
3262         (*msac_using_macc): New pattern.
3263
3264 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3265
3266         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
3267         (ir_vr55_hilo): Split into...
3268         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
3269         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
3270         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
3271         Add various multiplication bypasses.
3272         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
3273         multiplication.
3274
3275 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
3276
3277         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
3278         attribute to "XF".
3279
3280 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
3281
3282         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
3283         (fmod_optab, drem_optab): Define corresponding macros.
3284         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
3285         * genopinit.c (optabs): Implement fmod_optab and drem_optab
3286         using fmod?f3 and drem?f3 patterns.
3287         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
3288         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
3289         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
3290         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
3291         flag_unsafe_math_optimizations is set.
3292
3293         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
3294         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
3295
3296         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
3297         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
3298         Prototype here.
3299         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
3300         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
3301         fprem and fprem1 instructions.
3302         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
3303         Rename insn definition to x86_fnstsw_1.
3304         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
3305         x87 instructions.
3306         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
3307         and fmodl built-ins as inline x87 intrinsics.
3308         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
3309         and dreml built-ins as inline x87 intrinsics.
3310
3311 2004-05-05  Roger Sayle  <roger@eyesopen.com>
3312
3313         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
3314
3315 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
3316
3317         PR driver/9822
3318         * doc/invoke.texi (Spec Files): Remove documentation of %c.
3319
3320 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
3321
3322         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
3323         representation.
3324
3325 2004-05-06  Paul Brook  <paul@codesourcery.com>
3326
3327         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
3328         (arm_coproc_mem_operand): ... To this.
3329         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
3330         (arm_legitimate_index_p): Ditto.
3331         (vfp_mem_operand): Rename ...
3332         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3333         (vfp_secondary_reload_class): Use it.
3334         (output_move_double): Use doubleword load/store instructions.
3335         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3336         * config/arm/arm.h (TARGET_LDRD): Define.
3337         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3338         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3339         New splitter for invalid doubleword loads.
3340         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3341         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3342         * doc/md.texi: Document Uy constraint.
3343
3344 2004-05-05  Jan Hubicka  <jh@suse.cz>
3345
3346         PR opt/14980
3347         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3348         inline clones.
3349
3350 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3351
3352         PR target/15290
3353         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3354         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3355
3356 2004-05-05  Mike Stump  <mrs@apple.com>
3357
3358         * config/darwin-c.c (add_framework): Copy the directory name as it
3359         can be freed later.  Also, ensure we always allocate enough room
3360         for the cached framework information.
3361         (find_subframework_header): Keep track of the directory where the
3362         subframework header was found.
3363         (framework_construct_pathname): Speed up by not trying to re-add a
3364         framework.
3365         * cppfiles.c (search_path_exhausted): Arrange for the missing
3366         header callback to be able to set the directory where the header
3367         was found.
3368         (cpp_get_dir): Add.
3369         * cpplib.h (missing_header_cb): Add a parameter.
3370         (cpp_get_dir): Add.
3371
3372 2004-05-03  Mike Stump  <mrs@apple.com>
3373
3374         * doc/invoke.texi (Directory Options): Document -iquote.
3375         * doc/cpp.texi: Likewise.
3376         * doc/cppopts.texi: Likewise.
3377         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3378         (c_common_handle_option): Likewise.
3379         * c.opt (iquote): Add.
3380         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3381         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3382
3383         * c-opts.c (case OPT_I): Deprecate -I- support.
3384         * doc/invoke.texi: Likewise.
3385         * doc/cpp.texi: Likewise.
3386         * doc/cppopts.texi: Likewise.
3387
3388 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3389
3390         * basic-block.h (free_basic_block_vars): Update prototype.
3391         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3392         argument.
3393         (life_analysis): Update call.
3394         * ifcvt.c (if_convert): Likewise.
3395         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3396         * passes.c (rest_of_handle_final): Likewise.
3397         (rest_of_compilation): Likewise.
3398         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3399
3400         * emit-rtl.c (next_real_insn): Use INSN_P.
3401         (prev_real_insn): Likewise.
3402
3403 2004-05-05  Eric Christopher  <echristo@redhat.com>
3404
3405         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3406         representation.
3407
3408 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3409
3410         * config/rs6000/rs6000.c (build_opaque_vector_type):
3411         New function.
3412         (rs6000_init_builtins): Use it.
3413
3414 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3415
3416         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3417         (func_table): Change type from char ** to vms_func_ref.
3418         (write_rtnbeg):  Update to reflect func_table change.  Use
3419         fde->funcdef_number instead of rtnnum in output.
3420         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3421
3422 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3423             Richard Henderson  <rth@redhat.com>
3424
3425         PR target/14899
3426
3427         * c-common.c (vector_types_convertible_p): New function.
3428         * c-typeck.c (comptypes): Recurse on vector types.
3429         (convert_for_assignment): Use vector_types_convertible_p.
3430         (digest_init): Use vector_types_convertible_p to check
3431         validness of constant vector initializers; otherwise treat
3432         them as scalars.
3433         * tree.c (make_or_reuse_type): New.
3434         (build_common_tree_nodes): Use it.
3435         * cp/call.c (standard_conversion): Likewise.
3436         * cp/typeck.c (comptypes): Recurse on vector types.
3437         (convert_for_assignment): Use vector_types_convertible_p.
3438
3439 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3440
3441         * config/mips/mips.c (override_options): Default to no
3442         generation of branch-likely operations when tuning for
3443         CPUs where they tend to have a negative performance impact
3444         (e.g., SB-1).
3445
3446 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3447
3448         * expr.c (store_constructor_field): Don't call store_constructor
3449         if bitsize is not a multiple of a byte.
3450
3451 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3452
3453         * reload1.c (inherit_piecemeal_p): New function.
3454         (emit_reload_insns): When reloading a group of hard registers, use
3455         inherit_piecemeal_p to decide whether the values of individual hard
3456         registers can be inherited.
3457
3458 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3459
3460         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3461         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3462         * config/t-linux (LIB2ADDEHDEP): Likewise.
3463
3464 2004-05-04  Paul Brook  <paul@codesourcery.com>
3465
3466         * config/arm/crti.asm: Push an even number of registers.
3467         * config/arm/crtn.asm: And restore them.  Load via sp.
3468
3469 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3470
3471         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3472         Collect overhead information.
3473         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3474         parameter and pass it through.
3475         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3476         MEM_STAT_DECL parameter and pass it through.
3477         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3478         MEM_STAT_DECL parameter and pass it through.
3479
3480 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3481
3482         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3483
3484         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3485
3486         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3487         rs6000_hard_regno_nregs.
3488
3489 2004-05-03  Eric Christopher  <echristo@redhat.com>
3490
3491         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3492         prologue insn instead of setting up call.
3493         (s390_emit_epilogue): Ditto.
3494         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3495         (define_constants): Add numbers for above patterns.
3496
3497 2004-05-03  Eric Christopher  <echristo@redhat.com>
3498
3499         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3500         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3501         * config/s390/s390-protos.h: Prototype.
3502
3503 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3504
3505         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3506         assignment.
3507
3508 2004-05-03  Eric Christopher  <echristo@redhat.com>
3509
3510         * config/mips/mips.md: Fix branch length attribute definition.
3511
3512 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3513
3514         * config.gcc: Remove --enable-altivec support.
3515
3516         * config/rs6000/altivec-defs.h: Remove.
3517
3518 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3519
3520         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3521         * fixinc/fixincl.x: Regenerate.
3522
3523 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3524
3525         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3526         definition.
3527         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3528         float_truncate insn.
3529         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3530         (logb?f2): Reimplement expanders with float_truncate insn.
3531
3532 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3533
3534         PR 14718
3535         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3536         force_type_die for CONST_DECL.
3537
3538 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3539             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3540
3541         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3542         tm-dwarf2.h to tm_file.
3543         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3544         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3545         (ASM_DEBUG_SPEC): Delete.
3546
3547 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3548
3549         * optabs.h (enum optab_index): Add new OTI_expm1.
3550         (expm1_optab): Define corresponding macro.
3551         * optabs.c (init_optabs): Initialize expm1_optab.
3552         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3553         patterns.
3554         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3555         using expm1_optab.
3556         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3557         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3558
3559         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3560         to implement expm1, expm1f and expm1l built-ins as inline x87
3561         intrinsics.
3562
3563 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3564
3565         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3566         * config/frv/frv.md (*return_true, *return_false): New patterns.
3567
3568 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3569
3570         * rtl.h (PHI_NODE_P): Remove.
3571
3572 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3573
3574         PR middle-end/14988
3575         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3576         when passed -2 as 'align'.
3577         (put_var_into_stack): Use 'bool' as the type for the three local
3578         predicates.  Adjust calls to put_reg_into_stack.
3579         When passed a CONCAT, instruct put_reg_into_stack to use
3580         a consecutive stack slot for the second part.
3581         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3582         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3583         parameters.  Retrieve the register mode from 'reg'.
3584         When consecutive_p is true, instruct assign_stack_local_1 to use
3585         BITS_PER_UNIT alignment.
3586         (put_addressof_into_stack): Use 'bool' as the type for the two
3587         local predicates. Adjust call to put_reg_into_stack.
3588
3589 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3590
3591         * fold-const.c (fold_convert_const, fold): Add missing
3592         FIX_ROUND_EXPR case.
3593
3594 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3595
3596         * configure.ac (FLEX, BISON): Only use tools from the build tree
3597         if build equals host.
3598         * configure: Rebuilt.
3599
3600         * config/frv/frv-protos.h (frv_expand_epilogue,
3601         frv_expand_fdpic_call): Add bool argument.
3602         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3603         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3604         (frv_expand_epilogue): Use new argument to decide whether to emit
3605         return instruction or copy the return address to LR.
3606         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3607         sibcalls.
3608         (sibcall_operand): New.
3609         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3610         PLUS nor LABEL_REF.  Add sibcall_operand.
3611         * config/frv/frv.md (call, call_value): Pass false to
3612         frv_expand_fdpic_call.
3613         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3614         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3615         sibcall_value_internal, sibcall_value_fdpicdi): New.
3616         (return_unsigned_true, return_unsigned_false): New.
3617         (epilogue): Adjust call to frv_expand_epilogue.
3618         (sibcall_epilogue): New.
3619
3620         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3621         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3622         before redefining them.
3623
3624 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3625
3626         * builtins.c (fold_fixed_mathfn): New function.
3627         (fold_builtin_lround, fold_builtin): Use it.
3628
3629 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3630
3631         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3632         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3633
3634 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3635
3636         * config/cris/cris.h: Revert my "fix comment typos" patch.
3637
3638 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3639
3640         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3641
3642 2004-05-01  Falk Hueffner  <falk@debian.org>
3643
3644         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3645         builtin_insll): Disallow 0 as first input operand.
3646
3647 2004-05-01  Falk Hueffner  <falk@debian.org>
3648
3649         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3650
3651 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3652
3653         PR middle-end/15054
3654         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3655         on a TARGET_EXPR temp.
3656         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3657         TARGET_EXPR temp slots.
3658
3659 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3660
3661         * simplify-rtx.c (simplify_ternary_operation): When
3662         converting an IF_THEN_ELSE to a relational op, return
3663         correct mode.
3664
3665 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3666
3667         * builtins.c (fold_builtin_round): Fix comment typo.
3668         (fold_builtin_lround): New function.
3669         (fold_builtin): Use it.
3670
3671 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3672
3673         PR target/11608
3674         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3675         more like the one in config/dbxelf.h.
3676
3677 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3678
3679         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3680         and adjust definition accordingly.
3681         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3682         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3683         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3684         VECTOR_TYPE.
3685
3686 2004-04-30  Jason Merrill  <jason@redhat.com>
3687
3688         PR c++/14587
3689         * config/i386/winnt.c (associated_type): Look for attributes on
3690         the TYPE_MAIN_VARIANT of *this.
3691         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3692         apply the attributes to the variants.
3693
3694 2004-04-30  Paul Brook  <paul@codesourcery.com>
3695
3696         * config.gcc: Simplify arm --with-{cpu,tune} test.
3697         * config/arm/arm-cores.def: Document whitespace restrictions.
3698
3699 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3700
3701         PR other/1963
3702         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3703
3704 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3705             DJ Delorie  <dj@redhat.com>
3706
3707         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3708         (DWARF2_DEBUGGING_INFO): Define to enable.
3709         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3710         DWARF2.
3711         * configure.ac (Target-specific assembler checks)
3712         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3713         relocs.
3714         * configure: Regenerate.
3715         * config.in: Likewise.
3716
3717         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3718         (ASM_OUPUT_DWARF_OFFSET): Define.
3719
3720 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3721
3722         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3723         (s390_emit_call): New function prototype added.
3724         (s390_tls_get_offset): Function removed.
3725         * config/s390/s390.c (s390_function_ok_for_sibcall,
3726         s390_call_saved_register_used_p): New functions.
3727         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3728         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3729         (s390_emit_tls_call_insn): New function.
3730         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3731         emit_call_insn.
3732         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3733         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3734         added.
3735         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3736         register number used to hold the target address for sibcalls.
3737         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3738         New expanders.
3739         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3740         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3741         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3742         Expanders removed.
3743         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3744         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3745         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3746         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3747         new parameter.
3748
3749 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3750
3751         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3752         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3753         reg-stack.c, varasm.c, config/alpha/ev4.md,
3754         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3755         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3756         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3757         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3758         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3759         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3760         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3761         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3762         comment typos.
3763
3764 2004-04-30  Paul Brook  <paul@codesourcery.com>
3765
3766         * config.gcc: Default ep9312 to hard-float.
3767         * config/arm/arm-cores.def: Add ARCH field.
3768         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3769         (arm_arch_cirrus): New variable.
3770         (all_cores): Set and use arch.
3771         (all_architectures): Ditto.
3772         (arm_arch_name): New variable.
3773         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3774         Set and use arm_arch_cirrus.
3775         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3776         (enum processor_type): Update ARM_CORE define.
3777         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3778         (CPP_SPEC): Remove %(cpp_cpu_arch).
3779         (CPP_ARCH_DEFAULT_SPEC): Remove.
3780         (CPP_CPU_ARCH_SPEC): Remove.
3781         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3782         (FPUTYPE_DEFAULT): Don't define here.
3783
3784 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3785
3786         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3787         updates too.
3788
3789 2004-04-30  Paul Brook  <paul@codesourcery.com>
3790
3791         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3792
3793 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3794
3795         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3796         vec_sububs.
3797         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3798         duplicates.
3799
3800 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3801
3802         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3803         atan2?f3 expanders.
3804
3805 2004-04-29  Nick Clifton  <nickc@redhat.com>
3806
3807         Bug 14093
3808         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3809         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3810         Delete static from definition.
3811         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3812
3813 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3814
3815         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3816         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3817         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3818         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3819
3820 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3821
3822         * commom.opt (Wfatal-errors): Add it.
3823         * diagnostic.c (flag_fatal_errors): Define it.
3824         (diagnostic_action_after_output): Check for flag_fatal_errors.
3825         * flags.h (flag_fatal_errors): Declare it.
3826         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3827         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3828
3829 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3830
3831         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3832         blocks which have kill flag set.
3833
3834 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3835
3836         * configure.ac (--with-as): Abort if user-supplied assembler
3837         cannot be executed.
3838         (--with-ld): Likewise for the linker.
3839         * configure: Regenerate.
3840
3841 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3842
3843         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3844         isn't NULL before using it.
3845
3846 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3847
3848         PR target/15189
3849         * config/mips/mips.md (load_df_low): Use default length.
3850         (load_df_high, store_df_high): Likewise.
3851
3852 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3853
3854         * config/mips/mips.md, config/mips/sb1.md,
3855         config/rs6000/rs6000.c: Fix comment typos.
3856
3857 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3858
3859         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3860         Fix comment typos.
3861
3862 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3863
3864         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3865         (delete_if_ordinary): Use above macro.
3866         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3867         Update copyright.
3868         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3869
3870 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3871
3872         * c-decl.c (get_parm_info): Use the correct tag keywords when
3873         warning about type declarations in prototypes.
3874
3875 2004-04-29  Paul Brook  <paul@codesourcery.com>
3876
3877         * config.gcc: Pull list of cores from arm-cores.def.
3878
3879 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3880
3881         * combine.c (combine_simplify_rtx): Adjust call to use
3882         simplify_relational_operation.  Do not use SELECT_CC_MODE
3883         when a comparison already has a MODE_CC mode.
3884
3885 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3886
3887         (simplify_set): simplify_relational_operation may now
3888         return another relational expression.
3889         * cse.c (fold_rtx): simplify_relational_operation now
3890         takes of computing the comparison mode.
3891         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3892         remove dead code.
3893         (do_compare_rtx_and_jump): Likewise.
3894         * integrate.c (subst_constants): simplify_relational_operation
3895         may now return another relational expression.
3896         * simplify-rtx.c (simplify_gen_relational): Move most code to
3897         the new simplify_relational_operation and
3898         simplify_relational_operation_1 functions.
3899         (simplify_relational_operation): Rewritten.
3900         (simplify_relational_operation_1): New function.
3901         (simplify_ternary_operation): simplify_relational_operation
3902         may now return another relational expression.
3903         (simplify_rtx): Remove unnecessary temp variable.
3904
3905 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3906
3907         * reg-stack.c (swap_to_top): New function.
3908         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3909         swap_to_top().
3910         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3911         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3912         UNSPEC_FSCALE_EXP.
3913
3914         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3915         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3916         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3917         x87's fscale insn.
3918         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3919         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3920         patterns.
3921
3922 2004-04-28  Serge Belyshev  <1319@bot.ru>
3923
3924         PR 14944
3925         * coverage.c (read_counts_file): Fix usage of warning () call.
3926         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3927
3928 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3929
3930         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3931         options with "-" in the option index.
3932         (SPARC Options): Likewise.
3933         (M32R/D Options): Likewise.
3934
3935 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3936
3937         * convert.c (convert_to_integer): Convert (long)round -> lround,
3938         etc.
3939
3940 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3941
3942         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3943         Return false if we do not have fp register.
3944         (addrs_ok_for_quad_peep): Rename to ...
3945         (mems_ok_for_quad_peep): this.
3946         Add check for volatile memory.
3947         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3948         Rename to ...
3949         (mems_ok_for_quad_peep): this.
3950         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3951         to peephole2's.
3952         (lfq_power2): New instruction.
3953         (stfq_power2): Likewise.
3954
3955 2004-04-28  Jan Hubicka  <jh@suse.cz>
3956
3957         PR c/15004
3958         * function.c (do_warn_unused_parameter): Break out form ...
3959         (expand_function_end): ... here; warn only when not using cgraphunit.
3960         * function.h (do_warn_unused_parameter): Declare.
3961         * cgraphunit.c: Include function.h.
3962         (cgraph_finalize_function): Do unused parameter warning.
3963         * Makefile.in (cgraphunit.o): Depend on function.h
3964
3965 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
3966
3967         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
3968         calling install-info on $(DESTDIR)$(infodir)/dir already being
3969         present.
3970
3971 2004-04-28  Paul Brook  <paul@codesourcery.com>
3972
3973         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
3974
3975 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
3976
3977         * gcse.c (find_moveable_store): Do not accept store insns with
3978         REG_EH_REGION note.
3979
3980 2004-04-28  Paul Brook  <paul@codesourcery.com>
3981
3982         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
3983         * function.c (assign_temp): Ditto.
3984         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
3985
3986 2004-04-28  Paul Brook  <paul@codesourcery.com>
3987
3988         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
3989
3990 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
3991
3992         * var-tracking.c (variable_different_p): Add a parameter
3993         compare_current_location, compare current location of variable parts
3994         if it is true.
3995         (dataflow_set_different_1): Pass compare_current_location == false.
3996         (dataflow_set_different_2): Pass compare_current_location == false.
3997         (emit_notes_for_differences_1): Pass compare_current_location == true.
3998
3999 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4000
4001         * config/s390/s390.md ("casesi"): Mark jump table access as
4002         non-trapping and unchanging.
4003
4004 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4005
4006         PR debug/14829
4007         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
4008         callers.
4009         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
4010         number for indexing hard_regno_nregs array.
4011
4012 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
4013
4014         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
4015         * config/darwin-crt2.c: Only have contents on __ppc__.
4016
4017 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
4018
4019         * config/xtensa/xtensa.c (call_insn_operand): Check
4020         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
4021         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
4022         * config/xtensa/xtensa.md (call, call_value): Likewise.
4023
4024 2004-04-27  Wu Yongwei  <adah@sh163.net>
4025
4026         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
4027         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
4028         (__gthread_mutex_init_function): Replace CreateMutex with
4029         initialization of custom mutex using CreateSemaphore.
4030         (__gthread_mutex_lock): Use InterlockedIncrement.
4031         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
4032         (__gthread_mutex_unlock): Use InterlockedDecrement and
4033         ReleaseSemaphore to unlock
4034         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
4035         __gthread_mutex_lock, __gthread_mutex_trylock,
4036         __gthread_mutex_unlock): Adjust to match inline versions in
4037         gthr-win32.h.
4038
4039 2004-04-27  Paul Brook  <paul@codesourcery.com>
4040
4041         * config/arm/arm.c (arm_promote_prototypes): New function.
4042         (TARGET_PROMOTE_PROTOTYPES): Use it.
4043
4044 2004-04-27  Paul Brook  <paul@codesourcery.com>
4045
4046         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
4047
4048 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
4049
4050         * config/alpha.c (alpha_end_function): For OpenVMS gas,
4051         correctly output .pdesc directive before .end.
4052
4053 2004-04-26  James E Wilson  <wilson@specifixinc.com>
4054
4055         Bug 14927
4056         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
4057         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
4058
4059 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
4060
4061         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
4062         * config/pa/pa-hpux10.h: Likewise.
4063         * config/pa/pa-hpux11.h: Likewise.
4064
4065 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
4066
4067         * doc/invoke.texi (Overall Options): Document default for -o
4068         for PCH files.
4069
4070 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4071
4072         * builtins.c (expand_builtin_update_setjmp_buf): New function.
4073         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
4074         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
4075
4076 2004-04-26  Paul Brook  <paul@codesourcery.com>
4077
4078         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
4079
4080 2004-04-26  Paul Brook  <paul@codesourcery.com>
4081
4082         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
4083
4084 2004-04-25  Roger Sayle  <roger@eyesopen.com>
4085
4086         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
4087         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
4088         X % -1 as 0.
4089
4090 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
4091
4092         PR bootstrap/15141
4093         * except.c (connect_post_landing_pads): Delete insns after the
4094         barrier when generating a unwind_resume_libfunc call.
4095
4096 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4097
4098         PR/c++ 15119
4099         * tree.c (substitute_placeholder_in_expr, case 4): New case,
4100         for TARGET_EXPR.
4101
4102 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4103
4104         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4105         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
4106         inhibit_libc is defined.
4107
4108 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
4109
4110         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
4111         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
4112         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
4113         (TARGET_SCHED_VARIABLE_ISSUE): Define.
4114         (mips_adjust_cost): Move later in file, next to other sched hooks.
4115         (mips_macc_chains_last_hilo): New variable.
4116         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
4117         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
4118         * config/mips/mips.md (may_clobber_hilo): New attribute.
4119
4120 2004-04-24  Roger Sayle  <roger@eyesopen.com>
4121             Bruce Korb  <bkorb@gnu.org>
4122
4123         * fixinc/inclhack.def (aix_syswait_2): New fix.
4124         * fixinc/fixincl.x: Regenerate.
4125         * fixinc/tests/base/sys/wait.h: Update for new test.
4126
4127 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
4128
4129         PR target/14960
4130         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
4131         to non_fixed_size, and leave out fixed_size from the sum.
4132         (generate_set_vrsave): Correct clobbers.
4133         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
4134         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
4135         (rs6000_libcall_value): Likewise.
4136         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
4137         (FUNCTION_ARG_REGNO_P): Likewise.
4138
4139 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4140
4141         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
4142         is a CONST_INT.
4143         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
4144         with NARROW_OP1 instead of OP1.
4145
4146 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4147
4148         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
4149         and __s390x__ hosts.
4150
4151 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4152
4153         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
4154         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
4155         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
4156         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
4157         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
4158         * builtins.c (expand_builtin_fork_or_exec): New.
4159         (expand_builtin): Call it.
4160         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
4161         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
4162         * c-common.c (PID_TYPE): New macro.
4163         (c_common_nodes_and_builtins): Initialize pid_type_node.
4164         * calls.c (special_function_p): Do not handle fork and exec.
4165         (expand_call): Do not handle ECF_FORK_OR_EXEC.
4166         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4167         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
4168         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4169         __gcov_execv, __gcov_execvp, __gcov_execve): New.
4170         * tree.h (enum tree_index): Add TI_PID_TYPE.
4171         (pid_type_node): New macro.
4172         (ECF_FORK_OR_EXEC): Removed.
4173
4174 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4175
4176         PR optimization/13985
4177         * cfgloopmanip.c (fix_loop_placements): New prototype.
4178         Call fix_bb_placements on the preheader of loops that have
4179         been reparented.
4180         (remove_path): Adjust call to fix_loop_placements.
4181
4182 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
4183
4184         * config/darwin7.h: New file.
4185         * config.gcc (*-*-darwin*): Add darwin7.h if the
4186         version is greater than 6.
4187         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
4188         (MATH_LIBRARY): Wrap in ifdefs.
4189
4190 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
4191
4192         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
4193         loading iWMMXt registers with a frame pointer.  Use post-increment
4194         without a frame pointer.
4195         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
4196
4197 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
4198
4199         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
4200         mode" rather than "-funit-at-a-time" since -O2 enables it
4201         without requiring -f* options.  Refer to -fprofile-generate and
4202         -fprofile-use correctly.  Move -funit-at-a-time among options
4203         enabled by -O.  Add information about unit-at-a-time caveats.
4204
4205 2004-04-22  Per Bothner  <per@bothner.com>
4206
4207         * line-map.h (struct line_maps):  New field highest_line.
4208         (linemap_position_for_column):  Make non-inline function.
4209         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
4210         * line-map.c (linemap_init):  Clear highest_line field.
4211         (linemap_add):  Set highest_line field.
4212         (linemap_line_start):  Minor optimization - use highest_line field.
4213         Reduce maximum column hint to 10000.  Update highest_line field.
4214         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
4215         * cpphash.h (struct cpp_reader):  Remove line field - instead use
4216         line_table->highest_line.
4217         (saved_line):  Remove unused field.
4218         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
4219         Use  line_table's highest_line field instead of cpp_reader's line.
4220         * cpplib.c (start_directive):  Likewise use highest_line field.
4221         (do_line, do_linemarker):  Likewise just use newest map.
4222         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
4223         * cpperror.c (cpp_error):  Likewise use highest_line field.
4224         * cppfiles.c (open_file_failed:  Likewise.
4225         (cpp_make_system_header):  Likewise use newest map and highest_line.
4226         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
4227         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
4228         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
4229         _cpp_lex_direct):  Likewise use highest_line.
4230         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
4231         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
4232         and use newest map.
4233         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
4234         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
4235         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
4236
4237 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
4238
4239         PR bootstrap/14992
4240         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
4241         * config/linux.h (USE_LD_AS_NEEDED): Define.
4242         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
4243         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
4244         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
4245         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
4246         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
4247         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
4248         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
4249
4250 2004-04-22  Per Bothner  <per@bothner.com>
4251
4252         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
4253         Fixes PR preprocessor/15067.
4254
4255 2004-04-23  Andreas Schwab  <schwab@suse.de>
4256
4257         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
4258         avoid aliasing warning.
4259
4260 2004-04-22  Jan Hubicka  <jh@suse.cz>
4261             Mostafa Hagog <mustafa@il.ibm.com>
4262
4263       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
4264       * cfgloopanal.c (expected_loop_iterations): Change the return value
4265
4266 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
4267
4268         * cselib.h (struct elt_loc_list): Remove canon_loc field.
4269         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
4270         (cselib_invalidate_mem): Remove all canon_loc and canon_x
4271         traces.
4272
4273 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
4274
4275         Revert
4276         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4277
4278                 * var-tracking.c (variable_part_different_p): Variable parts
4279                 differ when the most recent locations differ.
4280
4281 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
4282
4283         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
4284         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
4285         (embedded_pic_offset): Delete.
4286         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
4287         MASK_* constants.
4288         (TARGET_EMBEDDED_PIC): Delete.
4289         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
4290         (ASM_SPEC): Remove -membedded-pic.
4291         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
4292         (ASM_OUTPUT_CASE_LABEL): Likewise.
4293         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
4294         * config/mips/windiss.h (ASM_SPEC): Likewise.
4295         * config/mips/mips.c (struct machine_function): Remove
4296         embedded_pic_fnaddr_rtx.
4297         (TARGET_ENCODE_SECTION_INFO): Remove override.
4298         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
4299         (override_options): Remove -membedded-pic handling.
4300         (print_operand): Remove handling of '%S'.
4301         (mips_select_section: Remove -membedded-pic handling.
4302         (mips_encode_section_info): Delete.
4303         (mips_output_conditional_branch): Remove mention of -membedded-pic.
4304         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
4305         -membedded-pic handling.
4306         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
4307
4308 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
4309
4310         * var-tracking.c (frame_base_decl): Remove useless GTY.
4311
4312 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
4313
4314         * config/rs6000/rs6000.c (rs6000_override_options): Error when
4315         user wants altivec and e500 instructions.
4316
4317 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4318
4319         PR target/14813
4320         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
4321         in .init_array section to ...
4322         * config/ia64/crtbegin.asm: Here.
4323
4324         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
4325         and hidden if HAVE_INITFINI_ARRAY is defined.
4326
4327 2004-04-21  James E Wilson  <wilson@specifixinc.com>
4328
4329         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
4330         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
4331         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4332         (fp_register_operand, lo_operand): New.
4333         (mips_rtx_costs): Add TUNE_SB1 support.
4334         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4335         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4336         (mips_multipass_dfa_lookahead): New.
4337         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4338         TUNE_SB1): New.
4339         (TARGET_SWITCHES): Add -mfp-exceptions support.
4340         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4341         (BRANCH_COST): Fix whitespace.
4342         * config/mips/mips.md: Include sb1.md.
4343         * config/mips/sb1.md: New file.
4344         * doc/invoke.texi: Document -mfp-exceptions.
4345
4346         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4347         comment.
4348         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4349         (fixincl.o-warn): Delete.
4350
4351 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4352
4353         * config/rs6000/rs6000 (print_operand) ['z']:
4354         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4355
4356 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4357
4358         * config.gcc: Support --with-arch=iwmmxt for ARM.
4359
4360 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4361
4362         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4363         in two more places; remove unneeded force_reg
4364
4365 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4366
4367         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4368         for TARGET_MACHO.
4369         (print_operand): For TARGET_MACHO check to see if we need a stub
4370         and output one if we need it.
4371
4372         PR debug/15033
4373         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4374         rtl.
4375
4376 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4377
4378         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4379         (vall_value_gp): Likewise.
4380
4381 2004-04-20  DJ Delorie  <dj@redhat.com>
4382
4383         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4384         variables stored in word registers, then in memory.
4385
4386 2004-04-20  Eric Christopher  <echristo@redhat.com>
4387
4388         * cp/parser.c (cp_parser_declaration): Move translate
4389         up before tokens are lexed.
4390
4391 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4392
4393         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4394         (asin_optab, acos_optab): Define corresponding macros.
4395         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4396         * genopinit.c (optabs): Implement asin_optab and acos_optab
4397         using asin?f2 and acos?f2 patterns.
4398         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4399         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4400         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4401         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4402
4403         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4404         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4405         acos, acosf and acosl built-ins as inline x87 intrinsics.
4406
4407 2004-04-20  Paul Brook  <paul@codesourcery.com>
4408
4409         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4410
4411 2004-04-20  Paul Brook  <paul@codesourcery.com>
4412
4413         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4414
4415 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4416
4417         Revert part of 2004-04-17 change that moved -frename-registers
4418         to -O1.  -frename-registers is buggy.
4419
4420         * toplev.c (flag_rename_registers): Initialize to 0.
4421         * doc/invoke.texi (Optimize options): Move -frename-registers
4422         to "Not triggered by any -O level" section.  Adjust commentary
4423         accordingly.
4424
4425 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4426
4427         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4428
4429 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4430
4431         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4432         for mflo and mfhi instructions.
4433         (mips_output_move): Remove mflo and mfhi handling.
4434         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4435         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4436         Likewise various define_peephole2s.
4437         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4438         alternatives.
4439         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4440         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4441         (mfhilo_di, mfhilo_si): New patterns.
4442
4443 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4444
4445         * function.c (assign_parms): Force
4446         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4447
4448 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4449
4450         * var-tracking.c (variable_part_different_p): Variable parts differ
4451         when the most recent locations differ.
4452
4453 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4454
4455         * rtl.h (reg_set_last): Delete declaration.
4456         * rtlanal.c (reg_set_last): Delete.
4457
4458 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4459
4460         * fold-const.c (fold_convert): Make function extern/public.
4461         * tree.h (fold_convert): Prototype here.
4462         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4463         expand_builtin_strrchr, expand_builtin_strpbrk,
4464         expand_builtin_mempcpy, expand_builtin_bcopy,
4465         expand_builtin_bzero, expand_builtin_memcmp,
4466         expand_builtin_strcmp, expand_builtin_strncmp,
4467         stabilize_va_list, expand_builtin_sprintf,
4468         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4469         fold_builtin_exponent, fold_builtin_mempcpy,
4470         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4471         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4472         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4473
4474 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4475
4476         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4477         (move_from_CR_gt_bit): New.
4478         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4479         E500.
4480         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4481         E500.
4482
4483         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4484         (tstsfeq_gpr): Same.
4485         (cmpsfgt_gpr): Same.
4486         (tstsfgt_gpr): Same.
4487         (cmpsflt_gpr): Same.
4488         (tstsflt_gpr): Same.
4489         (e500_cceq_ior_compare): New.
4490         (e500_flip_gt_bit): New.
4491
4492         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4493         (print_operand): Add 'c' and 'D'.
4494         (rs6000_generate_compare): Rewrite to generate correct rtl.
4495         (rs6000_emit_sCOND): Handle E500.
4496         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4497         (output_e500_flip_gt_bit): New.
4498
4499         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4500         Protoize.
4501
4502 2004-04-19  Eric Christopher  <echristo@redhat.com>
4503
4504         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4505
4506 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4507
4508         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4509         fix information.
4510
4511 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4512
4513         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4514         download URL.
4515
4516 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4517
4518         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4519         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4520
4521 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4522
4523         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4524         (fold_builtin): Update caller to match.
4525
4526         PR bootstrap/15009
4527         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4528
4529         PR bootstrap/14999
4530         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4531
4532 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4533
4534         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4535
4536         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4537         (expand_mult_highpart_optab): Likewise.
4538         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4539
4540 2004-04-19  Paul Brook  <paul@codesourcery.com>
4541
4542         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4543         floatunssisf2, floatunssidf2): New patterns.
4544
4545 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4546
4547         PR other/14918
4548         * doc/invoke.texi (-fprofile-generate): Document requirement to
4549         use -fprofile-generate when linking.
4550
4551         * doc/extend.texi (Strong Using): Warn users against using this
4552         feature.
4553
4554 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4555
4556         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4557         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4558         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4559         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4560         constant.  Propogate change throughout file.
4561         (struct machine_function): Remove insns_len.
4562         (mips_string_length, mips16_strings, string_constants): Delete.
4563         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4564         when generating mips16 code.  Remove special mips16 treatment of
4565         string constants.
4566         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4567         to have the form LABEL+CONSTANT.
4568         (mips_symbolic_address_p): Fix comment.
4569         (m16_usym8_4, m16_usym5_4): Delete.
4570         (mips_output_function_epilogue): Remove mips16 string handling.
4571         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4572         (mips_select_section, mips_encode_section_info): Remove mips16
4573         string handling.
4574         (struct mips16_constant_pool): New.
4575         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4576         sorted into order of ascending mode size.  Keep track of the highest
4577         possible start address, taking padding and the masking of the base PC
4578         value into account.
4579         (dump_constants_1): New function, split out from dump_constants.
4580         Handle vector constants.  Use gen_consttable_{int,float} rather than
4581         separate functions for each mode.
4582         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4583         rather than separate functions for each alignment.
4584         (mips_find_symbol): Delete.
4585         (mips16_insn_length): New function, split out from
4586         mips16_lay_out_constants.
4587         (mips16_rewrite_pool_refs): New function.
4588         (mips16_lay_out_constants): Rework. Remove string handling.
4589         Always create an inline constant pool.
4590         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4591         (UNSPEC_ALIGN): New constants.
4592         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4593         (UNSPEC_ALIGN_[248]): Delete.
4594         (consttable_int, consttable_float, align): New patterns.
4595         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4596
4597 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4598
4599         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4600         __unn_args_eq.
4601
4602 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4603
4604         PR target/14715
4605         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4606         with STARTING_FRAME_OFFSET.
4607
4608 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4609
4610         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4611         * config/mips/mips.c (macc_msac_operand): New function.
4612         * config/mips/mips.md (*msac): Move after *macc.
4613         (*msac2): New.  Generalize macc-related peepholes so that they apply
4614         to msac too.
4615
4616 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4617
4618         * opts.c (decode_options): Do not enable flag_rename_registers
4619         and flag_web at -O3.
4620         * toplev.c (flag_rename_registers): Initialize
4621         flag_rename_registers and flag_web to
4622         AUTODETECT_FLAG_VAR_TRACKING.
4623         (default_debug_hooks): New global.
4624         (process_options): Initialize default_debug_hooks.  Warn if
4625         -fvar-tracking specified but not supported by the current
4626         debug format.  Do not run var tracking at -O0 or if not
4627         supported by the current debug format, even if
4628         -fvar-tracking was given.  If -fno-rename-registers
4629         is not specified, always run register renaming if var
4630         tracking is supported by the default debugging information
4631         format for the target, and we are at -O1 or higher; similarly
4632         for -fweb, but only at -O2 or higher.
4633         * doc/invoke.texi (Optimize Options): Document this.
4634
4635 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4636
4637         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4638         * configure: Regenerate.
4639
4640 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4641
4642         * gcc.c (used_arg): Check whether an option has been removed.
4643
4644 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4645
4646         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4647         debugging on Solaris 7 and up.
4648
4649 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4650
4651         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4652         IRIX 5 port.
4653         Remove -save-temps workaround, handled automatically.
4654         Require GNU binutils 2.15 for debugging.
4655         Remove SGI make warnings since GNU make is now required.
4656         (Specific, mips-sgi-irix6): Some markup fixes.
4657         Describe MIPSpro C problems and workarounds.
4658         Mention working O32 ABI support.
4659         Recommend GNU as 2.15 for O32 with debugging.
4660         Remove description of fixed structure pass/return bug.
4661
4662 2004-04-16  DJ Delorie  <dj@redhat.com>
4663
4664         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4665         TYPE_FIELDS.
4666         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4667
4668 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4669
4670         * pa.md: Remove unnecessary declarations for asm_out_file.
4671
4672         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4673         SAR register.  Fix comment.
4674         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4675         (%cr11).
4676
4677         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4678
4679 2004-04-16  Nick Clifton  <nickc@redhat.com>
4680
4681         * config/arm/arm.c (arm_override_options): Revert previous patch.
4682         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4683         be safely built.
4684
4685 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4686
4687         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4688         bug.
4689         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4690         TARGET_DEFAULT): Changed. Ditto.
4691         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4692         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4693         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4694         (TARGET_ENDIAN_DEFAULT): Added.
4695
4696 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4697
4698         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4699         ATTR_CONST_NOTHROW_LIST.
4700
4701 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4702
4703         PR/middle-end 14915
4704         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4705         BITS_BIG_ENDIAN.
4706
4707 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4708
4709         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4710
4711 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4712
4713         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4714
4715 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4716
4717         * libada-mk.in: New file.
4718         * configure.ac: Create libada-mk from libada-mk.in.
4719         * configure: Regenerate.
4720
4721 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4722
4723         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4724         (logb_optab, ilogb_optab): Define corresponding macros.
4725         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4726         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4727         using logb?f2 and ilogb?i2 patterns.
4728         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4729         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4730         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4731         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4732
4733         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4734         and UNSPEC_XTRACT_EXP.
4735
4736         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4737         patterns to implement fxtract x87 instruction.
4738         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4739         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4740         intrinsics.
4741         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4742         x87's fxtract insn.
4743
4744 2004-04-14  Eric Christopher  <echristo@redhat.com>
4745
4746         * config/mips/t-elf: Enable multilibs by default.
4747
4748 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4749
4750         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4751         previous fix to check HAVE_return at runtime too.
4752
4753 2004-04-14  Nick Clifton  <nickc@redhat.com>
4754
4755         * config/arm/arm.c (arm_override_options): If the user has not
4756         specified an ABI, then default to AAPCS for the iWMMXt processor.
4757         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4758         * config/arm/t-xscale-coff: Likewise.
4759
4760 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4761
4762         * builtins.c (fold_builtin_isdigit): New.
4763         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4764         * defaults.h: Add TARGET_DIGIT0 and sort.
4765         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4766
4767 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4768
4769         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4770         `mathfn_built_in' to determine the new builtin.
4771         * fold-const.c (fold): Likewise.
4772
4773 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4774
4775         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4776         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4777         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4778         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4779         (ASM_SPEC): Update accordingly.
4780         * config/mips/mips.c: Update after above renaming.
4781         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4782         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4783
4784 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4785
4786         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4787         increment errorcount and return false instead of true.
4788
4789 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4790
4791         * optabs.c (expand_twoval_unop): Reorder function arguments.
4792         * builtins.c (expand_builtin_mathfn_3): Update calls to
4793         expand_twoval_unop.
4794
4795         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4796         and UNSPEC_TAN_TAN. Add missing comment.
4797
4798         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4799         patterns to implement fptan x87 instruction.
4800         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4801         and tanl built-ins as inline x87 intrinsics. Define corresponding
4802         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4803         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4804         x87's fptan insn.
4805
4806 2004-03-13  Richard Henderson  <rth@redhat.com>
4807
4808         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4809         for LABEL_REFs.
4810
4811         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4812         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4813         * doc/invoke.texi: Update to match.
4814
4815         * varasm.c (unlikely_text_section): Use assemble_align instead of
4816         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4817         correct alignment argument.
4818
4819 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4820
4821         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4822         after setting reg_last_reload_reg for optional output reloads.
4823
4824 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4825
4826         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4827         Definition of these two macros are corrected by adding
4828         matchine right paren.
4829
4830 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4831
4832         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4833
4834 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4835
4836         * config/i386/i386.c (output_387_reg_move): New function.
4837         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4838         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4839         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4840         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4841         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4842
4843 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4844
4845         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4846         TYPE_DECL.
4847         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4848         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4849         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4850         Use skip_simple_arithmetic to find SAVE_EXPR.
4851         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4852         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4853         Properly chain multiple pointers.
4854         (copy_tree_r): Copy a TYPE_DECL.
4855         * tree.c (variably_modified_type_p): Add some missing tests and
4856         make some other minor changes.
4857         * tree.h (force_type_save_exprs): New declaration.
4858
4859 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4860
4861         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4862         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4863         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4864         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4865         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4866         x%-1 into 0 (or x&0 if x has side-effects).
4867
4868 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4869
4870         * config/rs6000/rs6000.md: Document why a pattern is not
4871         available.
4872
4873         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4874         of floats on the E500.
4875         (branch_positive_comparison_operator): Do not allow NE even on the
4876         E500.
4877
4878 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4879
4880         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4881         in_text_unlikely_section to in_unlikely_text_section.
4882
4883 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4884
4885         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4886         calling convention to allow a NULL_TREE to be returned.  Factor
4887         sanity checks from callers, return NULL_TREE when appropriate.
4888         (fold): Handle COMPOUND_EXPR operands of binary expressions
4889         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4890         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4891         calls to fold_binary_op_with_conditional_arg.
4892
4893 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4894
4895         * config/mips/iris5.h (current_section_flags):  Add
4896         in_unlikely_executed_text and default case.
4897
4898 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4899
4900         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4901         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4902         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4903         HAVE_return and place it around the place where it is needed.
4904
4905 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4906
4907         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4908         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4909         and NORMAL_TEXT_SECTION_NAME.
4910         (unlikely_text_section): Check targetm.have_named_sections
4911         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4912         instead of SECTION_FORMAT_STRING.
4913         * config/mips/iris5.h (current_section_name): Add
4914         in_unlikely_executed_text case and move the abort into the switch.
4915         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4916         (NORMAL_TEXT_SECTION_NAME): Remove.
4917         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4918         (SECTION_FORMAT_STRING): Remove.
4919         * defaults.h (SECTION_FORMAT_STRING): Remove.
4920         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4921         (SECTION_FORMAT_STRING): Remove.
4922
4923 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4924
4925         * c-typeck.c (common_type): Prefer long long to long when same
4926         precision.
4927
4928 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4929
4930         PR 14887
4931         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4932         mode argument.
4933         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4934         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4935
4936 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4937
4938         * simplify-rtx.c (mode_signbit_p): New function to check whether
4939         an RTX is an immediate constant that represents the most significant
4940         bit of a given machine mode.
4941         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4942         C is the sign bit.
4943         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4944         when C2 is the sign bit.
4945         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4946         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4947         sign bit.
4948
4949 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4950
4951         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4952         TYPE_MODE.
4953
4954 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4955
4956         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4957         of TREE_READONLY for types.
4958
4959 2004-04-09  Caroline Tice  <ctice@apple.com>
4960
4961         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4962         (struct basic_block_def):  Add new field, partition.
4963         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
4964         definitions.
4965         (partition_hot_cold_basic_blocks): Add extern function
4966         declaration.
4967         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
4968         include statements.
4969         (N_ROUNDS): Increase the maximum number of rounds by 1.
4970         (branch_threshold): Add array value for new round.
4971         (exec_threshold): Add array value for new round.
4972         (push_to_next_round_p): New function.
4973         (add_unlikely_executed_notes): New function.
4974         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
4975         (mark_bb_for_unlikely_executed_section): New function.
4976         (add_labels_and_missing_jumps): New function.
4977         (add_reg_crossing_jump_notes): New function.
4978         (fix_up_fall_thru_edges): New function.
4979         (find_jump_block): New function.
4980         (fix_crossing_conditional_branches): New function.
4981         (fix_crossing_unconditional_branches): New function.
4982         (fix_edges_for_rarely_executed_code): New function.
4983         (partition_hot_cold_basic_blocks): New function.
4984         (find_traces):  Add an extra round for partitioning hot/cold
4985         basic blocks.
4986         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
4987         and only cold blocks, into the last (extra) round of collecting traces.
4988         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
4989         over crossing edges.
4990         (bb_to_key):  Add code to correctly identify cold blocks when
4991         doing partitioning.
4992         (connect_traces): Modify to connect all the non-cold traces first, then
4993         go back and connect up all the cold traces.
4994         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
4995         * cfg.c (entry_exit_blocks): Add initialization for partition field in
4996         entry and exit blocks.
4997         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
4998         if we are doing hot/cold partitioning.
4999         * cfgcleanup.c (cfglayout.h): Add new include statement.
5000         (try_simplify_condjump): Modify to not attempt on blocks with jumps
5001         that cross section boundaries.
5002         (try_forward_edges): Likewise.
5003         (merge_blocks_move_predecessor_nojumps): Likewise.
5004         (merge_blocks_move_successor_nojumps): Likewise.
5005         (merge_blocks_move): Likewise.
5006         (try_crossjump_to_edge): Modify to not attempt after we have done
5007         the block partitioning.
5008         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
5009         cross section boundaries.
5010         (try_optimize_cfg): Likewise.
5011         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
5012         jumps that cross section boundaries.
5013         * cfglayout.c (flags.h): Add new include statement.
5014         (update_unlikely_executed_notes):  New function.
5015         (fixup_reorder_chain):  Add code so when a new jumping basic block is
5016         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
5017         updated appropriately.
5018         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
5019         introduced by this optimization.
5020         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
5021         extern function declaration.
5022         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
5023         list of notes that can be deleted.
5024         (create_basic_block_structure):  Add initialization for partition field.
5025         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
5026         section boundaries.
5027         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
5028         cross section boundaries.
5029         (commit_one_edge_insertion): Add code so newly created basic block
5030         ends up in correct (hot or cold) section.  Modify to disallow
5031         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5032         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
5033         crosses section boundaries.
5034         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
5035         cross section boundaries.
5036         (force_nonfallthru_and_redirect): Modify to make sure new basic block
5037         ends up in correct section, with correct notes attached.
5038         * common.opt (freorder-blocks-and-partition):  Add new flag for this
5039         optimization.
5040         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
5041         the end of functions are written into the correct (hot or cold)
5042         section.
5043         (dbx_source_file): Add code so writing debug file information
5044         doesn't incorrectly change sections.
5045         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
5046         in partitioning hot/cold basic blocks into separate sections.
5047         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
5048         section partitioning.
5049         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
5050         conditional branches can span all of memory.
5051         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
5052         unconditional branches can span all of memory.
5053         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
5054         (final_scan_insn):  Add code to check for NOTE instruction indicating
5055         whether basic block belongs in hot or cold section, and to make sure
5056         the current basic block is being written to the appropriate section.
5057         Also added code to ensure that jump table basic blocks end up in the
5058         correct section.
5059         * flags.h (flag_reorder_blocks_and_partition):  New flag.
5060         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
5061         one of the branches has a jump that crosses between sections.
5062         (find_if_case_2): Likewise.
5063         (ifcvt): Modify to not attempt to mark loop exit edges after
5064         hot/cold partitioning has occurred.
5065         * opts.c (decode_options): Code to handle new flag,
5066         flag_reorder_blocks_and_partition; also to turn it off if
5067         flag_exceptions is on.
5068         (common_handle_option): Code to handle new flag,
5069         flag_reorder_blocks_and_partition.
5070         * output.h (unlikely_text_section): New extern function declaration.
5071         (in_unlikely_text_section): New extern function declaration.
5072         * passes.c (rest_of_handle_stack_regs):  Add
5073         flag_reorder_blocks_and_partition as an 'or' condition for calling
5074         reorder_basic_blocks.
5075         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
5076         as an 'or' condition for calling reorder_basic_blocks.
5077         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
5078         * print-rtl.c (print_rtx): Add code for handling new note,
5079         NOTE_INSN_UNLIKELY_EXECUTED_CODE
5080         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
5081         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
5082         cross between section boundaries.
5083         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
5084         indicating the basic block containing it belongs in the cold section.
5085         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
5086         between hot and cold sections.
5087         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
5088         initialize this flag, and to tie it to the command-line option
5089         freorder-blocks-and-partition.
5090         * varasm.c (cfglayout.h):  Add new include statement.
5091         (unlikely_section_label_printed):  New global variable, used for
5092         determining when to output section name labels for cold sections.
5093         (in_section):  Add in_unlikely_executed_text to enum data structure.
5094         (text_section):  Modify code to use SECTION_FORMAT_STRING and
5095         NORMAL_TEXT_SECTION_NAME macros.
5096         (unlikely_text_section):  New function.
5097         (in_unlikely_text_section):  New function.
5098         (function_section):  Add code to make sure beginning of function is
5099         written into correct section (hot or cold).
5100         (assemble_start_function):  Add code to make sure stuff is written to
5101         the correct section.
5102         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
5103         to an if statement that was checking 'in_text_section'.
5104         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
5105         condition to an if statement that was checking 'in_text_section'.
5106         (default_section_type_flags_1):  Add check: if in cold section
5107         flags = SECTION_CODE.
5108         * config/darwin.c (darwin_asm_named_section):  Modify to use
5109         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
5110         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
5111         specifically for the i386.
5112         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
5113         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
5114         text string to something more informative.
5115         (NORMAL_TEXT_SECTION_NAME): Add new definition.
5116         (SECTION_FORMAT_STRING):  Add new definition.
5117         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
5118         '!in_unlikely_text_section' as an 'and' condition to an if statement
5119         that was already checking '!in_text_section'.
5120         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
5121         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
5122         sure these are properly defined for linux on ppc.
5123         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
5124         for this new flag.
5125         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
5126         reg_note.
5127         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
5128         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
5129         these new macros.
5130
5131 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5132
5133         * function.c (gen_mem_addressof): When changing the RTX from a REG
5134         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
5135
5136 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5137
5138         PR target/14888
5139         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
5140         truncxfdf2_noop): Provide dummy "fmov" implementations.
5141
5142 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
5143
5144         * gcc.c (default_compilers): Add missing initializers.
5145
5146         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5147         Return 1 if file was successfully mapped.
5148
5149 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
5150
5151         PR pch/13419
5152         PR pch/14137
5153         Radar #: 3315288
5154         * doc/invoke.texi (Precompiled Headers): Suggest -o
5155         to put an output file in a particular place.  Be more detailed
5156         about which options affect PCH validity and which options
5157         might not work.
5158         * c-pch.c (pch_matching): New.
5159         (MATCH_SIZE): New.
5160         (struct c_pch_validity): New field 'match'.
5161         (pch_init): Handle pch_matching.
5162         (c_common_valid_pch): Check pch_matching.
5163
5164         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
5165
5166 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
5167
5168         * doc/invoke.texi (Precompiled Headers): Warn about known
5169         problems.
5170
5171 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5172
5173         PR c++/14808
5174         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
5175         to 1 if ASM_OUTPUT_DEF is defined.
5176         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
5177         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
5178         Set to non-zero iff not a one_only decl.
5179
5180 2004-04-08  Paul Brook  <paul@codesourcery.com>
5181
5182         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
5183
5184 2004-04-08  Paul Brook  <paul@codesourcery.com>
5185
5186         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
5187         PROMOTE_FOR_CALL_ONLY.
5188         * config/arm/arm-protos.h (arm_function_value): Declare.
5189         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
5190         (TARGET_PROMOTE_PROTOTYPES): Return false.
5191         (arm_function_value): New function.
5192         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
5193         (FUNCTION_VALUE): Call arm_function_value.
5194         * config/cris/cris.h (PROMOTE_MODE): Rename ...
5195         (PROMOTE_FUNCTION_MODE): ... to this.
5196         (PROMOTE_FOR_CALL_ONLY): Remove.
5197         * config/mmix/mmix.h: Likewise.
5198         * config/s390/s390.h: Likewise.
5199         * config/sparc/sparc.h: Likewise.
5200         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
5201         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
5202         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
5203         (PROMOTE_FOR_CALL_ONLY): Remove.
5204
5205 2004-04-08  Joel Sherrill <joel@oarcorp.com>
5206
5207         PR ada/14538
5208         * ada/5rosinte.adb: Remove fake mprotect() body.
5209         * ada/5rosinte.ads: Add SA_SIGINFO.
5210         * ada/5rtpopsp.adb: Rewrite to use new interface.
5211         * ada/init.c: Reorder so the simple single OS conditional __rtems__
5212         is tested before more complex ones which mix UNIX and embedded
5213         systems in the conditional.
5214
5215 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
5216
5217         PR ada/14665
5218         * ada/osint.adb (Find_Program_Name): Rework to properly handle
5219         filenames which end in .exe or have versioning suffixes like VMS.
5220
5221 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
5222
5223         PR target/10129
5224         * config/darwin.c (darwin_encode_section_info): When the decl has
5225         a DECL_INITIAL, it is only defined also when it is not a common.
5226
5227 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5228
5229         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
5230         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
5231
5232 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5233
5234         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
5235         global register variables.
5236
5237 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
5238
5239         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
5240         rpc_xdr_lvalue_cast_b): New fixes.
5241         * fixinc/fixincl.x: Regenerate.
5242         * fixinc/tests/base/rpc/xdr.h: Add new tests.
5243
5244 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
5245
5246         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
5247         to power4 and power5 entries.
5248
5249 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
5250
5251         * c-common.h (pending_lang_change): Mark for PCH.
5252
5253 2004-04-07  Caroline Tice  <ctice@apple.com>
5254
5255         * gcc.c (main): Move 'break' in main loops (on an error)
5256         to wait until error processing has occurred.
5257
5258 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
5259
5260         * config.gcc: Stop changing enable_threads midstream.
5261         Replace uses of enable_threads_flag with enable_threads.
5262         * configure.ac: Replace uses of enable_threads_flag with
5263         enable_threads.  Improve autoconf quotation in one place.
5264         * configure: Regenerate.
5265
5266 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
5267
5268         * builtins.c: Implement support for sincos function.
5269         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
5270         BUILT_IN_COS{,F,L}.
5271         (expand_builtin_mathfn_3): New function.
5272         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
5273         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
5274         flag_unsafe_math_optimization is set.
5275
5276         * optabs.h (enum optab_index): Add new OTI_sincos.
5277         (sincos_optab): Define corresponding macro.
5278
5279         * optabs.c (init_optabs): Initialize sincos_optab.
5280         (expand_twoval_unop): New function.
5281
5282         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
5283         patterns.
5284
5285         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
5286         and UNSPEC_SINCOS_SIN.
5287
5288         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
5289         sincosxf3): New patterns to implement sincos, sincosf and sincosl
5290         built-ins as inline x87 intrinsics. Define splits for
5291         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
5292         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
5293         sincos patterns.
5294         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
5295         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
5296
5297         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
5298         x87's fsincos insn.
5299
5300 2004-04-06  Devang Patel  <dpatel@apple.com>
5301
5302         PR 14467
5303         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
5304
5305 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5306
5307         * doc/install.texi: Update HP-UX 11 installation procedure.
5308
5309 2004-04-06  Paul Brook  <paul@codesourcery.com>
5310
5311         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
5312
5313 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5314
5315         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
5316         when the TLS address is generated by a function call.
5317         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
5318         (tls_local_dynamic): Likewise.
5319
5320 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
5321
5322         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
5323         and TYPE_VOLATILE.
5324
5325 2004-04-05  Caroline Tice  <ctice@apple.com>
5326
5327         * gcc.c (combine_flag): New global variable, for new driver option.
5328         (struct compiler): Add two new fields, to be used when
5329         combining multiple input files in a single pass (IMA).
5330         (default_compilers):  Add values for the new fields to all
5331         compiler entries. Modify the "@c" compiler entry for doing IMA
5332         properly with "-save-temps" and the "combine" flag.
5333         (option_map):  Add new driver option, "--combine", to tell driver
5334         to pass multiple input files to compiler at one time.
5335         (have_o_argbuf_index): New global variable.
5336         (store_arg): Modify to assign value to have_o_argbuf_index.
5337         (struct infile):  Add three new fields, to help with IMA.
5338         (display_help): Add help for new "combine" option.
5339         (process_command): Remove local variable have_o; add code to check
5340         for new "combine" option; remove assignment to combine_inputs.
5341         (do_spec_1):  Modify to deal with IMA better.
5342         (main): Make variable 'lang_n_infiles' local to entire function
5343         rather than to a single block.  Use flag combine_flag to
5344         determine whether to do IMA or not; Modify loop initializing
5345         infiles to deal properly with linker files.
5346         Add code for doing preprocessing in presence of
5347         IMA with "-save-temps" flag.  Modify "main" loop to handle
5348         multiple input files, in multiple languages, with or without
5349         preprocessing,  gracefully.
5350         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5351         re-set it to same directory it's previously been set to (avoid
5352         irritating, meaningless warning messages when doing IMA with
5353         save-temps).
5354         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5355         remove documentation about IMA that is no longer accurate; Add
5356         documentation explaining what "-combine" does.
5357         * ada/lang-specs.h: Add initialization values for new fields in
5358         "struct compiler".
5359         * cp/lang-specs.h: Likewise.
5360         * f/lang-specs.h: Likewise.
5361         * java/lang-specs.h: Likewise.
5362         * objc/lang-specs.h: Likewise.
5363         * treelang/lang-specs.h: Likewise.
5364
5365 2004-04-05  David Edelsohn
5366
5367         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5368         symbol handling.
5369
5370 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5371             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5372
5373         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5374         * pa.md: Use replace_equiv_address to retain the attributes of the
5375         memory operands used in the split and peephole2 patterns for optimizing
5376         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5377
5378 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5379
5380         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5381         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5382         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5383         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5384         PARM_DECL.
5385         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5386         for a type.
5387         * print-tree.c (print_node): Properly handle side-effects, readonly,
5388         and constant flags.
5389         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5390         and TREE_CONSTANT if not a type.
5391         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5392         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5393         (NON_TYPE_CHECK): New macro.
5394         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5395
5396 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5397
5398         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5399         to DWARF2_DEBUG unconditionally.
5400         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5401
5402 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5403             Nathanael Nerode  <neroden@gcc.gnu.org>
5404
5405         PR target/14548
5406         * config.host: Set the shell variable host_can_use_collect2.
5407         Set it to yes by default, and to no for alpha*-dec-*vms*,
5408         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5409         * configure.ac: Set and substitute the shell variable collect2.
5410         Give an error if use_collect2 is yes and host_can_use_collect2 is
5411         no.
5412         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5413         uses.  Initialize to @collect2@.
5414         (STAGESTUFF): Remove $(USE_COLLECT2).
5415         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5416         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5417         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5418         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5419         * configure: Regenerate.
5420
5421 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5422
5423         * simplify-rtx.c (simplify_binary_operation): Constant fold
5424         DIV, MOD, UDIV and UMOD using div_and_round_double.
5425
5426 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5427
5428         PR c++/14804
5429         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5430         RECORD_TYPEs.
5431
5432 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5433
5434         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5435         documentation.
5436
5437 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5438
5439         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5440         updating the REG_EQUAL note on an insn's libcall_insn.
5441
5442 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5443
5444         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5445
5446 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5447
5448         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5449         with reorder_operands_p.
5450
5451 2004-04-03  Jan Hubicka  <jh@suse.cz>
5452
5453         * md.texi (vec_set, vec_extract, vec_init): Document.
5454
5455 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5456
5457        * opts.c (decode_options): Do function inlining with very small
5458        max-inline-insns-* parameters when optimizing for size.
5459
5460 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5461
5462         * config/i386/i386.h (TARGET_NOCONA): New macro.
5463         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5464         (processor_type): Add PROCESSOR_NOCONA.
5465
5466         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5467
5468         * config/i386/i386.c (nocona_cost): New variable.
5469         (m_NOCONA): New macro.
5470         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5471         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5472         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5473         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5474         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5475         x86_decompose_lea, x86_arch_always_fancy_math_387,
5476         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5477         x86_ext_80387_constants, x86_four_jump_limit):
5478         (override_options): Add nocona_cost to processor_target_table.
5479         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5480         (incdec_operand): Prevent inc/dec generation for Nocona too.
5481         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5482
5483 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5484
5485         * rtlanal.c (find_reg_note): Manually
5486         unswitch the loop.
5487
5488 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5489
5490         * genemit.c (gen_split): Change prototype of generated code.
5491         * genrecog.c (write_action): Adjust prototype for and calls to
5492         gen_split_*.
5493         * gensupport.c (struct queue_elem): Add split field.
5494         (queue_pattern): Return a value.  Clear the split field.
5495         (process_rtx): Maintain an association between an insn and the
5496         split generated from it for a define_insn_and_split.
5497         (process_one_cond_exec): Generate a new split for a
5498         define_insn_and_split.
5499         * config/arm/arm-protos.h (arm_split_constant): Add insn
5500         parameter.
5501         (emit_constant_insn): New function.
5502         (arm_gen_constant): Use it.
5503         * config/arm/arm.md: Adjust calls to arm_split_constant.
5504
5505 2004-04-02  Jan Hubicka  <jh@suse.cz>
5506
5507         * cgraph.c: Add overall comment.
5508         (cgraph_inline_hash): New global variable.
5509         (cgraph_create_node): Break out from ...
5510         (cgraph_node): ... here.
5511         (cgraph_edge): New function.
5512         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5513         (cgraph_remove_edge): Accept edge, intead of source and destination.
5514         (cgraph_redirect_edge_callee): New.
5515         (cgraph_remove_node): Update all new datastructures.
5516         (cgraph_record_call, cgraph_remove_call): Kill.
5517         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5518         (dump_cgraph): ... here.
5519         (cgraph_function_possibly_inlined_p): Use new hashtable.
5520         (cgraph_clone_edge, cgraph_clone_node): New.
5521         * cgraph.h: Include hashtab.h
5522         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5523         fields, add inlined_to pointer.
5524         (cgraph_node): Add pointer to next_clone.
5525         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5526         (cgraph_remove_call, cgraph_record_call): Kill.
5527         (cgraph_inline_hash): Declare.
5528         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5529         cgraph_redirect_edge_callee): Declare.
5530         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5531         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5532         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5533         * cgraphunit.c: Add overall comment.
5534         (cgraph_optimize_function): Kill.
5535         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5536         (cgraph_finalize_function): Update call of cgraph_remove_node
5537         (record_call_1): Record call sites.
5538         (cgraph_create_edges): Accept node instead of decl argument.
5539         (error_found): New static variable.
5540         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5541         (cgraph_analyze_function): Update for new datastructures.
5542         (cgraph_finalize_compilation_unit): Plug memory leak.
5543         (cgraph_optimize_function): Kill.
5544         (cgraph_expand_function): Do not use cgraph_optimize_function.
5545         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5546         cgraph_inlined_callees): Kill.
5547         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5548         clones.
5549         (estimate_growth): Simplify.
5550         (cgraph_clone_inlined_nodes): New function.
5551         (cgraph_mark_inline_edge): Re-implement.
5552         (cgraph_mark_inline): Likewise.
5553         (cgraph_check_inline_limits): Simplify.
5554         (cgraph_recursive_inlining_p): New.
5555         (update_callee_keys): Break out from ...
5556         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5557         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5558         Likewise.
5559         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5560         list.
5561         (cgraph_preserve_function_body_p): New predicate.
5562         (cgraph_optimize): Verify cgraph.
5563         * function.h (struct function): Add fields saved_tree/saved_args.
5564         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5565         * toplev.c (rest_of_compilation): Do not free cfun.
5566         * tree-inline.c: Include function.h
5567         (struct inline_data): Add saving_p field; replace decl/current_decl by
5568         node/current_node.
5569         (insert_decl_map): New function.
5570         (copy_body_r): Handle saving; update cgraph datastructure.
5571         (copy_body): Handle recursive inlining.
5572         (initialize_inlined_parameters): Likewise.
5573         (expand_call_inline): Propagate node attributes; update cgraph.
5574         (optimize_inline_calls): Verify that datastructure still match.
5575         (save_body): New function.
5576         * tree-inline.h (save_body): New.
5577         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5578         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5579         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5580
5581 2004-04-01  Serge Belyshev  <1319@bot.ru>
5582
5583         PR target/14702
5584         * config/i386/i386.md: fix source operand constraints in
5585         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5586
5587 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5588
5589         * fold-const.c (folda): Preserve types of comparisons.
5590
5591 2004-04-01  Richard Henderson  <rth@redhat.com>
5592
5593         * toplev.c (backend_init): Move init_optimization_passes call ...
5594         (lang_dependent_init): ... here.
5595
5596 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5597             Jakub Jelinek  <jakub@redhat.com>
5598
5599         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5600         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5601         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5602         * configure: Rebuilt.
5603         * config.in: Rebuilt.
5604         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5605         (stage2-start, stage3-start, stage4-start): Likewise.
5606         (stageprofile-start, stagefeedback-start): Likewise.
5607
5608 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5609
5610         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5611         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5612         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5613         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5614         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5615         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5616         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5617         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5618         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5619         * config/sparc/t-linux: Removed.
5620
5621 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5622
5623         PR c++/14755
5624         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5625         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5626
5627 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5628
5629         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5630         * stor-layout.c (layout_decl): Likewise.
5631         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5632         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5633         * print-tree.c (print_node): Handle various used of unsigned_flag.
5634         * tree.def (BIT_FIELD_REF): Update comment.
5635         * tree.h (TREE_UNSIGNED): Deleted.
5636         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5637
5638 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5639
5640         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5641         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5642         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5643         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5644         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5645         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5646         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5647         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5648         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5649         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5650         REAL_TYPE, not INTEGER_TYPE.
5651         (layout_type, case VECTOR_TYPE): Simplify code.
5652         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5653         * tree.h: Update comments.
5654         (STRIP_NOPS): Use TYPE_UNSIGNED.
5655         (TYPE_UNSIGNED): New macro.
5656         (TYPE_TRAP_SIGNED): Remove now redundant check.
5657         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5658
5659 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5660
5661         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5662
5663 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5664
5665         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5666         Add darwin-fpsave.asm, darwin-vecsave.asm,
5667         and darwin-world.asm.
5668         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5669         as the asm files contain altivec instructions.
5670         * config/rs6000/darwin-fpsave.asm: New file.
5671         * config/rs6000/darwin-vecsave.asm: New file.
5672         * config/rs6000/darwin-world.asm: New file.
5673
5674 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5675
5676         * gengtype-yacc.y (option, stringseq): Add missing
5677         terminating semicolon.
5678
5679 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5680
5681         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5682         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5683         tls_dtprel_ha_32, tls_dtprel_ha_64,
5684         tls_dtprel_lo_32, tls_dtprel_lo_64,
5685         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5686         tls_tprel_ha_32, tls_tprel_ha_64,
5687         tls_tprel_lo_32, tls_tprel_lo_64,
5688         tls_got_tprel_32, tls_got_tprel_64,
5689         tls_tls_32, tls_tls_64): Replace register_operand with
5690         gpc_reg_operand.
5691
5692 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5693
5694         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5695         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5696         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5697         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5698         *ctrdi_internal6): Replace register_operand with
5699         nonimmediate_operand.
5700
5701 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5702
5703         * fold-const.c (fold): Reassociate multiply expression
5704         with an adjacent non-multiply expression to use
5705         architecture's multiply-add instruction.
5706
5707 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5708
5709         * gengtype.c (create_option): New function.
5710         * gengtype.h: Prototype it.
5711         * gengtype-yacc.y (stringseq): New rule.
5712         (option): Use create_option.  Add new bare ID production.  Use
5713         stringseq, not STRING directly.
5714
5715         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5716         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5717         * varray.h, config/alpha/alpha.c:
5718         Use new shorter form of GTY markers.
5719
5720         * doc/gty.texi: Rewrite.
5721
5722 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5723
5724         * config/darwin.c (machopic_function_base_name):
5725         Remove current_name and getting the name of the
5726         current function.
5727
5728 2004-03-30  Nick Clifton  <nickc@redhat.com>
5729
5730         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5731         range, and increase the forward branch range, to allow for
5732         the fact that the PC will be off by 4.
5733
5734 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5735
5736         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5737
5738 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5739
5740         * config/rs6000/rs6000.c (output_vec_const_move):
5741         Find all cases of EASY_VECTOR_15_ADD_SELF.
5742         (easy_vector_constant_add_self): Accept
5743         all vector constant loadable by vsplt* and vadd*.
5744         (easy_vector_same): Use easy_vector_splat_const.
5745         (easy_vector_const): Use easy_vector_splat_const.
5746         (easy_vector_splat_const): New function.
5747         (gen_easy_vector_constant_add_self): New function.
5748
5749         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5750         New prototype.
5751
5752         * config/rs6000/altivec.md (movv4si splitter): Change to
5753         emit move insn with halfed vector constant.
5754         (*movv8hi splitter): Likewise.
5755         (*movv16qi splitter): Likewise.
5756
5757 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5758
5759         PR 11591
5760         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5761         Allow any offset to argument pointer in no-strict case.
5762
5763 2004-03-30  Jan Hubicka  <jh@suse.cz>
5764
5765         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5766         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5767         dump file in non-unit-at-a-time mode.
5768
5769 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5770
5771         * config/cris/cris.h: Correct #ifdef to test for
5772         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5773         HAVE_AS_MUL_BUG_ABORT_OPTION.
5774
5775 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5776
5777         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5778         the address inside the old RTL.
5779
5780 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5781
5782         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5783         (struct c_binding, struct c_scope): Add chain_next
5784         attributes to GTY markers.
5785         (struct lang_identifier, struct lang_tree_node): Define
5786         here...
5787         * c-tree.h: ... not here.  No longer need to declare struct
5788         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5789         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5790         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5791
5792         PR 14734, 11944
5793         * c-decl.c (get_parm_info): If error_mark_node is encountered
5794         in the bindings chain, unbind and discard it; don't abort.
5795
5796 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5797             Dorit Naishlos <dorit@il.ibm.com>
5798
5799         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5800         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5801
5802 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5803
5804         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5805
5806         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5807         (m68hc11_attribute_table): New attribute "page0" to mark a global
5808         variable as being allocated from within page0 section.
5809         (m68hc11_encode_label): New function.
5810         (m68hc11_strip_name_encoding): New function.
5811         (m68hc11_page0_symbol_p): New function.
5812         (m68hc11_indirect_p): Accept global variables marked in page0.
5813         (m68hc11_encode_section_info): Lookup "page0" attribute.
5814
5815         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5816         represents access to page0 variables.
5817
5818         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5819         ("*logicalsi3_silshl16_zext"): Likewise.
5820         ("*ashldi3_const32"): Likewise.
5821         (peephole2 ashift): Likewise.
5822
5823 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5824
5825         * c-tree.h (C_DECL_REGISTER): New.
5826         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5827         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5828         (build_array_ref, c_mark_addressable): Set and use it.
5829         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5830         Allow structures with volatile fields to be declared register.
5831         Don't check TREE_ADDRESSABLE before warning about taking address
5832         of register.
5833         * c-decl.c (finish_decl): Don't allow structures with volatile
5834         fields to be placed in named register.
5835         * doc/trouble.texi: Remove reference to structures with volatile
5836         fields in registers.
5837
5838 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5839
5840         * function.c (thread_prologue_and_epilogue): Move
5841         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5842         before the epilogue.
5843
5844 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5845
5846         * expr.c (store_constructor): Use gen_int_mode to correctly
5847         sign-extend CONST_INT value.
5848
5849 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5850
5851         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5852         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5853         * doc/extend.texi: Likewise.
5854
5855 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5856
5857         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5858           with TYPE_ORIG_SIZE_TYPE.
5859
5860 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5861
5862         PR 14219
5863         * c-typeck.c (build_binary_op): Do not allow comparisons of
5864         vectors.
5865
5866 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5867
5868         * config.gcc: Remove sparc-tti-*.
5869         * config/sparc/pbd.h: Delete.
5870
5871         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5872         * config/sparc/aout.h: Likewise.
5873
5874         * config/sparc/sparc.h: Remove if 0'd code.
5875         * config/sparc/sparc.md (call): Remove if 0'd code.
5876         (call_value): Likewise.
5877         (nonlocal_goto): Likewise.
5878         (unimp_insn): Delete.
5879
5880 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5881
5882         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5883         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5884
5885 2004-03-25  Richard Henderson  <rth@redhat.com>
5886
5887         PR 11527
5888         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5889         rather than later.
5890
5891 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5892
5893         * builtins.c (fold_builtin): Fix error in last change.
5894
5895 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5896
5897         * config/mips/mips.h: Formatting fix.
5898
5899 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5900
5901         * builtins.def: Add ctype builtins.
5902         * doc/extend.texi: Likewise.
5903
5904 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5905
5906         * builtins.c (fold_builtin): Add new builtin optimizations for
5907         sqrt and/or cbrt.
5908         * fold-const.c (fold): Likewise.
5909
5910 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5911
5912         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5913         (rs6000_sched_groups): New variable.
5914         (processor_target_table): Add power5.
5915         (rs6000_override_options): Set rs6000_sched_insert_nops,
5916         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5917         from rs6000_sched_groups.
5918         (output_cbranch): Use rs6000_always_hint.
5919         (rs6000_variable_issue): Use rs6000_sched_groups.
5920         (rs6000_adjust_cost): Add CPU_POWER5.
5921         (is_microcoded_insn): Use rs6000_sched_groups.
5922         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5923         Return 2 for POWER5 cracked instructions.
5924         (is_cracked_insn): Use rs6000_sched_groups.
5925         (is_branch_slot_insn): Use rs6000_sched_groups.
5926         (rs6000_issue_rate): Add CPU_POWER5.
5927         (rs6000_sched_finish): Use rs6000_sched_groups.
5928         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5929         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5930         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5931         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5932         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5933         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5934         * config/rs6000/power5.md: New file.
5935         * doc/invoke.texi: Add power5 option.
5936
5937 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5938
5939         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5940         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5941         * doc/invoke.texi: Fix a typo.
5942
5943 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5944
5945         PR optimization/9707.
5946         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5947         of recursing if both children are single-valued cases with no
5948         children.
5949
5950 2004-03-25  Paul Brook  <paul@codesourcery.com>
5951
5952         * config/arm/arm.c (vfp_print_multi): Remove.
5953         (arm_output_fldmx): New function.
5954         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5955         (arm_expand_prologue): Update to match.
5956         (arm_get_vfp_saved_size): New Function.
5957         (arm_get_frame_offsets): Use it.
5958         (arm_output_epilogue): Use new functions.
5959
5960 2004-03-24  Richard Henderson  <rth@redhat.com>
5961
5962         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5963         (reg_known_value, reg_known_value_size): Likewise; make static.
5964         (reg_known_equiv_p): Make static.
5965         (clear_reg_alias_info): Update for new indexing.
5966         (get_reg_known_value, set_reg_known_value): New.
5967         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
5968         (canon_rtx): Use them.
5969         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
5970         Don't play queer offsetting games with reg_known_value and
5971         reg_known_equiv_p.
5972         (end_alias_analysis): Free reg_known_value with gc.
5973         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
5974         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
5975         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
5976         functions instead.
5977
5978 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
5979
5980         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
5981         config/i386/mmintrin.h: Update copyright.
5982
5983 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
5984
5985         * configure.ac: Add --enable-werror-always (for top level bootstrap
5986         support).
5987         * configure: Regenerate.
5988
5989 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
5990
5991         * objc/objc-act.c (objc_comptypes): Treat comparisons
5992         between 'Class' and '<class> *' as explicitly invalid.
5993
5994 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
5995
5996         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
5997         (-fprofile-values): Add enabled with profile-{generate,use}.
5998         (-fvpt): Same.
5999         (-ftracer): Add enabled with profile-use.
6000         (-funit-at-a-time): Add enabled at -O2,-O3.
6001         (-funroll-loops): Add enabled with profile-use.
6002         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
6003         (max-gcse-passes): Mention default.
6004         (max-cse-path-length): Mention default.
6005
6006 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6007
6008         * Makefile.in (STRICT2_WARN): Reorder.
6009         * configure.ac: Check for -Wold-style-definition, and use it
6010         in strict1_warn if it's available.
6011         * configure: Regnerate.
6012
6013 2004-03-24  Paul Brook  <paul@nowt.org>
6014
6015         * config.gcc <arm>: Add --with-abi=
6016         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
6017         thumb_far_jump_used): Remove prototypes.
6018         (arm_needs_doubleword_align): Add prototype.
6019         (thumb_compute_initial_elimination_offset): Ditto.
6020         * config/arm/arm.c (arm_get_frame_offsets): New function.
6021         (use_return_insn, output_return_instruction, arm_output_epilogue,
6022         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
6023         arm_expand_prologue, thumb_expand_epilogue): Use it.
6024         (arm_abi, target_abi_name, all_arm_abis): New variables.
6025         (arm_override_options): Set them.  Set structure padding for AAPCS.
6026         (arm_return_in_memory): Update ABI check.
6027         (arm_init_cumulative_args): Initialize can_split.
6028         (arm_needs_doubleword_align): New function.
6029         (arm_function_arg): Don't split args after pushing to stack. Handle
6030         doubleword/even reg alignment.
6031         (arm_va_arg): Handle all doubleword aligned args.
6032         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
6033         on ABI, not CPU.
6034         (arm_compute_save_reg0_reg12_mask): Fix comment.
6035         (thumb_get_frame_size, thumb_get_frame_size): Remove.
6036         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
6037         value for alignment.
6038         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
6039         to match.
6040         (thumb_compute_initial_elimination_offset): New function.
6041         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
6042         unneccessary rounding.
6043         * config/arm/arm.h (target_abi_name): Declare.
6044         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
6045         arm_abi_type, ARM_DEFAULT_ABI): Define.
6046         (ARM_FLAG_ATPCS): Remove.
6047         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
6048         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
6049         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
6050         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
6051         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
6052         Contitionalize on ABI, not CPU.
6053         (struct arm_stack_offsets): Define.
6054         (struct machine_function): Add stack_offsets.  Remove frame_size.
6055         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
6056         pushed.
6057         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
6058         doubleword alignment.
6059         (THUMB_INITIAL_ELIMINATION_OFFSET,
6060         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
6061         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
6062         * config/arm/arm.md (align_8): Enable for all targets.
6063         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
6064         (ARM_DEFAULT_ABI): Define.
6065         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
6066         -mstructure-size-boundary.
6067
6068 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6069
6070         * configure.ac: Check for -Wno-variadic-macros; don't use
6071         -pedantic (in stage 1 or a simple 'make all') unless it's available,
6072         and if it's available, use it.  Also, clean up check for
6073         -Wno-long-long.
6074         * configure: Regenerate.
6075
6076 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6077
6078         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
6079         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
6080         (MULTILIB_DEFAULTS): Use it.
6081         (MIPS_CPU_STRING_DEFAULT): Remove.
6082         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
6083         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
6084         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
6085         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
6086         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
6087         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
6088         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
6089         accordingly.
6090
6091 2004-03-24  DJ Delorie  <dj@redhat.com>
6092             Richard Sandiford  <rsandifo@redhat.com>
6093
6094         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
6095         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
6096         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
6097         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
6098         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
6099         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
6100         if TARGET_FIX_VR4122.
6101         * config/mips/mips.md (define_attr length): Account for nops inserted
6102         after macc and dmult when using -mfix-vr4122-bugs.
6103         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
6104         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
6105         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
6106         * config/mips/vr4122-div.S: New file.
6107         * doc/invoke.texi: Document -mfix-vr4122-bugs.
6108
6109 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6110
6111         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
6112         (TARGET_MIPS4130): New macro.
6113         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
6114         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
6115         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
6116         with PROCESSOR_R4130.
6117         * config/mips/mips.md (define_attr cpu): Add r4130.
6118         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
6119
6120 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6121             Richard Sandiford  <rsandifo@redhat.com>
6122
6123         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
6124
6125 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
6126
6127         PR preprocessor/14438
6128         * cpplib.c (do_pragma): Remove line_change call after pragma
6129         handler.
6130
6131 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
6132
6133         * doc/extend.texi (ARM Built-in Functions): Replace with correct
6134         declarations.
6135
6136 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6137
6138         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
6139         if flag_unsafe_math_optimizations.
6140         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
6141         and TARGET_80387 expand using truncdfsf2_noop pattern.
6142         (truncxfsf2): Likewise using truncxfsf2_noop.
6143         (truncxfdf2): Likewise using truncxfdf2_noop.
6144         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
6145
6146 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
6147
6148         * hooks.c (hook_constcharptr_tree_null): New hook.
6149         * hooks.h (hook_constcharptr_tree_null): New prototype.
6150         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
6151         * target.h (mangle_fundamental_type): New target hook.
6152         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
6153         target hook at rs6000_mangle_fundamental_type.
6154         (rs6000_mangle_fundamental_type): New function.
6155         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
6156
6157 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
6158
6159         PR 12267, 12391, 12560, 13129, 14114, 14133
6160         * c-tree.h: Forward declare struct c_binding.  Declare
6161         c_override_bindings_to_false.  Update prototypes.
6162         (struct lang_identifier): Update comments.  Change fields to be
6163         struct c_binding *.
6164         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
6165         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
6166         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
6167         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
6168         * c-common.h: Update prototypes.
6169         * c-decl.c (struct c_scope): Update commentary.  Remove names,
6170         names_last, parms, parms_last, tags, and shadowed fields.  Add
6171         bindings and depth fields.
6172         (scope_freelist): Move to more appropriate location.
6173         (c_print_identifier): Update for changes to struct lang_identifier.
6174         (objc_mark_locals_volatile): Update for new bindings structures.
6175         (global_bindings_p): Honor c_override_global_bindings_to_false.
6176         (pushlevel): Rename to push_scope; take no arguments; use the
6177         scope_freelist; initialize scope->depth and check for overflow.
6178         (poplevel): Rename to pop_scope; totally rewritten for new bindings
6179         structures.
6180         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
6181         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
6182         Improve some commentary.  Adjust handling of forward parm decls.
6183         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
6184         Preserve C_DECL_IN_EXTERNAL_SCOPE.
6185         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
6186         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
6187         decls.  Rewrite for new bindings structures.  Improve commentary.
6188         Eliminate the copy_node call.
6189         (implicit_decl_warning): Use the "diag" idiom (as seen in
6190         locate_old_decl) to reduce code duplication; call locate_old_decl
6191         if appropriate.  Relocate to remove need for forward declaration.
6192         (implicitly_declare): Adjust for new bindings structures.  Kludge
6193         around Objective-C not-really-builtin functions.
6194         (undeclared_variable): Improve diagnostics.  If current_function_decl
6195         is nonnull but current_function_scope is null, use current_scope.
6196         Use bind.
6197         (lookup_tag): Adjust for new bindings structures.  Kludge around
6198         Objective-C's tag declarations that wind up in the external scope.
6199         (lookup_name): Adjust for new bindings structures.  Kludge around
6200         c-common.c's pseudo-typedefs that wind up in the external scope.
6201         (lookup_name_current_level): Rename lookup_name_in_scope; take a
6202         second argument indicating the scope to examine; rewrite for
6203         new bindings structures.
6204         (c_init_decl_processing): Adjust for renamed functions.  Do not
6205         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
6206         First scope pushed is the external scope, not the global scope.
6207         (builtin_function): Use bind, not pushdecl.  Adjust other bits
6208         for new data structures.  Keep track of builtins that should be
6209         made visible automatically.
6210         (start_decl): Adjust diagnostics.  Remove unnecessary call to
6211         expand_decl.
6212         (grokparms): Return 0 if arg_types is error_mark_node.
6213         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
6214         reversed sense.  Rewrite for new bindings structures.  Do not
6215         leave any decls in the scope, to prevent pop_scope from doing
6216         contradictory things with them.
6217         (finish_struct, finish_enum): Remove redundant diagnostics.
6218         (build_enumerator): Don't cascade diagnostics for error_mark_node.
6219         Mark location where -pedantic changes the meaning of the program.
6220         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
6221         parameter decls into the function's scope structure using bind.
6222         Warn here about function definitions in the wrong style.
6223         Adjust diagnostics.
6224         (store_parm_decls): Correct the determination of whether a
6225         function was defined with a prototype.
6226         (c_write_global_declarations): Operate on all file decls and on
6227         the external scope.  Split body of the loop to...
6228         (c_write_global_declarations_1): ... this new function, to avoid
6229         code duplication.
6230         (truly_local_externals, first_builtin_decl, last_builtin_decl)
6231         (make_scope, pop_scope, in_parm_level_p, set_block)
6232         (any_external_decl, record_external_decl, bind_label, getdecls)
6233         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
6234         (c_reset_state): Delete.
6235         (visible_builtins, c_override_global_bindings_to_false)
6236         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
6237         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
6238         (external_scope, binding_freelist, bind, free_binding_and_advance)
6239         (push_file_scope, pop_file_scope): New.
6240         (pushtag, pushdecl_top_level, lookup_label, declare_label)
6241         (define_label, c_make_fname_decl, finish_decl)
6242         (mark_forward_parm_decls, build_compound_literal)
6243         (grokdeclarator, start_function, check_for_loop_decls)
6244         (identifier_global_value, record_builtin_type): Minor adjustments
6245         for new bindings structures.  Improve diagnostics and commentary.
6246         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
6247         pushlevel/poplevel respectively.
6248         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
6249         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
6250         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
6251         correct loop over multiple translation units; call fatal_error if
6252         requested to compile more than one file at once.  (This disables
6253         IMA temporarily - an up-front error being preferable to a crash.)
6254         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
6255         (all actions): Adjust calls to pushlevel/poplevel.
6256         (parsing_iso_function_signature): Delete.
6257         (extdef_1): Fold into extdef.
6258         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
6259         warn here about function definitions in the wrong style.
6260         (after_tyle_declarator, parm_declarator_starttypename)
6261         (parm_declarator_nostarttypename, notype_declarator): Remove
6262         commented-out productions.
6263         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
6264         an empty TREE_LIST node.  Adjust calls to get_parm_info.
6265         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
6266         to suppress -Wold-style-definition after this error.
6267         (c_parse_file): Don't clear the binding stack or call
6268         finish_fname_decls here.  Correct comment.
6269         * c-typeck.c (same_translation_unit_p): Export.
6270         (common_type): Use c_override_global_bindings_to_false, not
6271         pushlevel/poplevel/declare_parm_level.
6272         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
6273         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
6274         and LANG_HOOKS_GETDECLS with do-nothing stubs.
6275         * objc/objc-lang.c: Likewise.
6276         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
6277         get_parm_info.
6278         (OBJC_VOID_AT_END): Delete; replace all uses
6279         with void_list_node.
6280         (generate_forward_declaration_to_string_table): Delete.
6281         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
6282
6283         * coverage.c (create_coverage): Don't pushdecl anything.
6284         * langhooks.c (lhd_clear_binding_stack): Call
6285         lang_hooks.decls.poplevel, not poplevel.
6286         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
6287         circular list rather than going into an infinite loop.
6288
6289 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
6290
6291         * optabs.c (expand_binop): When synthesizing double word rotates
6292         from single word shifts, use a new register target if the provided
6293         target is not a REG already.
6294
6295 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6296
6297         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
6298         * c-common.c (handle_mode_attribute): Add extra arg to
6299         build_pointer_type_for_mode and build_reference_type_for_mode.
6300         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
6301         for INTEGER_CST.
6302         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
6303         Chain pointers via TYPE_NEXT_PTR_TO.
6304         (build_reference_type_for_mode): Similarly.
6305         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
6306         and build_reference_type_for_mode.
6307         (tree_check4_failed): New function.
6308         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
6309         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
6310         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
6311         Add check.
6312
6313 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6314
6315         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
6316         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
6317         when both A and B are nonnegative.
6318         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
6319         nonzero.
6320
6321 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6322
6323         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
6324         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
6325
6326 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6327
6328         PR optimization/14669
6329         * fold-const.c (fold): Only unwiden integer comparisons for equality
6330         and inequality operators, or when the signedness doesn't change.
6331
6332 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6333
6334         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6335         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6336         * config/sparc/t-linux: New file.
6337
6338 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6339
6340         * gcse.c (can_assign_to_reg_p): New function, split out from...
6341         (want_to_gcse_p): ...here.
6342         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6343         the rhs of a store.
6344
6345 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6346
6347         * c-typeck.c (same_translation_unit_p): Fix pasto.
6348
6349 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6350
6351         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6352         (PARAM_MAX_SCHED_REGION_INSNS): New.
6353         * sched-rgn.c: Include params.h
6354         (MAX_RGN_BLOCKS): Delete.
6355         (MAX_RGN_INSNS): Delete.
6356         (too_large): Return bool.  Convert to PARAM_VALUE.
6357         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6358         * doc/invoke.texi (param): Document max-sched-region-blocks and
6359         max-sched-region-insns.
6360
6361 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6362
6363         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6364         for base types.
6365
6366 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6367
6368         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6369         change.
6370
6371 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6372
6373         PR c/14069
6374         * c-decl.c (finish_struct): Change type of incorrect flexible array
6375         field into error_mark_node.
6376
6377 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6378
6379         PR target/14580
6380         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6381         who are not local for Darwin PIC.
6382
6383 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6384
6385         * regrename.c (regrename_optimize): Set regs_ever_live for all
6386         registers introduced as replacement.
6387
6388 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6389
6390         PR middle-end/14470
6391         * expr.c (mark_queue): New function.
6392         (emit_insns_enqueued_after_mark): New function replacing
6393         emit_queue.  Clear the body of emitted queued insns.
6394         (emit_queue): Call emit_insns_enqueued_after_mark.
6395         (store_expr): Mark the increment queue on entry.  Emit
6396         only the incrementations queued when expanding the source.
6397
6398 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6399
6400         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6401         of top level bootstrap, and consistency).  Reindent.
6402         * configure: Regenerate.
6403
6404 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6405
6406         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6407         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6408         unnecessary casts.
6409
6410 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6411
6412         PR target/14291
6413         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6414         __MINGW32__.
6415
6416 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6417
6418         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6419         to nonimmediate_operand.
6420         ("*doloop_di"): Likewise.
6421
6422 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6423
6424         * real.h (struct real_value): Use the same type for all
6425         bitfields.  Rename exp to uexp.
6426         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6427         Adjust all uses of exp...
6428         * builtins.c: ... here, ...
6429         * emit-rtl.c: ... here, and ...
6430         * real.c: ... and here.
6431
6432 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6433
6434         * pretty-print.c (pp_base_maybe_space): New function.
6435         * pretty-print.h (pp_base_maybe_space): Declare.
6436         (pp_maybe_space): New macro.
6437
6438 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6439
6440         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6441
6442 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6443
6444         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6445         of using register multiplication cost.
6446         (expand_mult): Adapt choose_mult_variant call.
6447         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6448         of MODE; pass appropriate cost bound.  Adjust result when
6449         performing signed multiplication by a negative constant.
6450         Don't use intermediate modes larger than word_mode.
6451
6452 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6453
6454         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6455         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6456         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6457         * explow.c (expr_size): Likewise.
6458         * expr.h (placeholder_list, find_placeholder): Deleted.
6459         * expr.c (store_constructor): Likewise.
6460         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6461         (placeholder_list, find_placeholder): Deleted.
6462         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6463         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6464         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6465         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6466         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6467         Likewise.
6468         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6469         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6470         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6471         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6472         Clean up by using first_rtl_op.
6473         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6474         (substitute_placeholder_in_expr): New function.
6475         * tree.def (WITH_RECORD_EXPR): Deleted.
6476         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6477         (substitute_placeholder_in_expr): New.
6478
6479 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6480
6481         * dojump.c (prefer_and_bit_test): Fix which part of
6482         the and_test is replaced.
6483
6484 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6485
6486         * frontends.texi: Add missing line.
6487
6488 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6489             Chris Devers  <cdevers@pobox.com>
6490             Joseph S. Myers  <jsm@polyomino.org.uk>
6491
6492         * doc/frontends.texi: Rewrite.
6493         * doc/gcc.texi: Update last modification date.
6494
6495 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6496
6497         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6498         message before redirecting the edge.
6499
6500 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6501
6502         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6503         flag.
6504         * explow.c (force_not_mem): Set REG_POINTER flag according to
6505         MEM_POINTER one.
6506         * rtl.h (MEM_POINTER): New macro.
6507         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6508         for MEM_POINTER.
6509
6510 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6511
6512         PR target/13889
6513         * cse.c (fold_rtx): Avoid substituting constants into unary
6514         conversion operations.
6515
6516 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6517
6518         * fold-const.c (fold): Replace "expr" with "t".
6519
6520 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6521
6522         PR c/12373
6523         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6524         DECL_ORIGINAL_TYPE if there isn't one.
6525
6526 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6527
6528         * fold-const.c (fold): Replace "final_type" with "type".
6529         Remove variable "final_type".
6530
6531 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6532
6533         * fold-const.c (fold): Constify "type".
6534         Replace "TREE_TYPE (t)" with "type".
6535
6536 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6537
6538         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6539         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6540         via (*targetm.foo) () with targetm.foo ().
6541
6542 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6543
6544         PR other/14630
6545         * doc/install.texi: Add info directory category and entry.
6546
6547 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6548
6549         * fold-const.c (fold): Replace "t" with "tem" where it is used
6550         as a temporary variable.  Remove "orig_t" and all of its uses.
6551
6552 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6553
6554         * fold-const.c (fold): Remove variable "invert".
6555         Move the handling of relational expressions that can be folded
6556         to a constant ...
6557         (fold_relational_const): ... here.
6558         (tree_expr_nonzero_p): New.
6559
6560 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6561
6562         PR c/14635
6563         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6564         DEF_GCC_BUILTIN.
6565
6566 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6567
6568         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6569         (GTFILES): Add $(srcdir)/dojump.h.
6570         (gt-dojump.h): New dependency.
6571         * dojump.c (and_reg, and_test, shift_test): New static variables.
6572         (prefer_and_bit_test): New function.
6573         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6574
6575 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6576
6577         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6578         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6579         reorg.c, tree.h: Fix comment typos.
6580
6581 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6582
6583         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6584         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6585         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6586         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6587         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6588         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6589         targetm.foo ().
6590
6591 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6592
6593         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6594         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6595         always_inline attribute.
6596         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6597         Treat expansion as completed even if literal argument is
6598         invalid (so that other expansions are not tried in vain).
6599
6600 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6601
6602         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6603         const0_rtx.
6604
6605 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6606
6607         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6608         ...
6609         (fold_abs_const): ... here.
6610
6611 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6612
6613         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6614
6615 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6616
6617         PR target/11520
6618         * config/avr/avr.md ("call_insn"): Handle explicit integer
6619         specially.
6620         (call_value_insn): Likewise.
6621
6622 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6623
6624         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6625
6626 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6627
6628         * fold-const.c (negate_expr): Move the handling of constants
6629         ...
6630         (fold_negate_const): ... here.
6631
6632 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6633
6634         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6635         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6636         * tree.c (debug_no_type_hash): Deleted.
6637         (type_hash_canon): Abort if passed a variant.
6638         Check lang_hooks.types.hash_types.
6639         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6640         (build_array_type): Remove unnecessary allocation of pointer type.
6641         (build_complex_type): Properly qualify resulting type.
6642
6643 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6644
6645         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6646
6647 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6648
6649         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6650         (expand_mult): ...here.
6651         (extract_high_half): New, split out from expand_mult_highpart.
6652         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6653         (expand_highpart): Evaluate the cost of a shift/add sequence,
6654         then see if any of the specialized optabs are cheaper.
6655
6656 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6657
6658         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6659
6660 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6661
6662         * convert.c (convert_to_real): Add more math builtins.
6663
6664 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6665
6666         * convert.c (convert_to_real): Reformat using switch stmt.
6667
6668 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6669
6670         * c-common.c (pointer_int_sum): Do not complain about using
6671         pointers to pointers-to-members.
6672
6673 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6674
6675         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6676         have moved to the target hooks structure".
6677
6678 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6679
6680         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6681         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6682         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6683         Likewise.
6684         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6685         Likewise.
6686         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6687         rm7_fp_quick): Likewise.
6688         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6689         rm9k_fquick): Likewise.
6690         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6691         Likewise.
6692         (ir_sr70_icmp): Delete.
6693
6694 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6695
6696         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6697         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6698         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6699         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6700         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6701         Protect with proper check.
6702         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6703         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6704         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6705         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6706         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6707         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6708         not TYPE_FIELDS.
6709         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6710
6711 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6712
6713         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6714         dest is set between beginning and current insn.
6715
6716 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6717
6718         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6719         visible "static" identifiers "extern" in a local scope.
6720         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6721         post-increments/decrements.
6722
6723 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6724
6725         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6726         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6727         (xtensa_va_start): Remove assignment to current_function_arg_words.
6728
6729 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6730
6731         * alias.c (record_set): Detect the case where a register is assigned
6732         a new value that has the same base term as the old one.
6733
6734 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6735
6736         * doloop.c: Removed.
6737         * loop-doloop.c: New file.
6738         * Makefile.in (doloop.o): Remove.
6739         (loop-doloop.o): New.
6740         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6741         * cfgloopanal.c (get_loop_level): New function.
6742         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6743         is leaved immediatelly.
6744         * loop.c (strength_reduce): Do not call doloop optimization.
6745         * loop.h (LOOP_BCT): Removed.
6746         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6747         (rest_of_handle_loop2): Call doloop_optimize_loops.
6748         (rest_of_compilation): Test for optimizations moved to
6749         rest_of_handle_loop2.
6750
6751 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6752
6753         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6754         for mixed mode.
6755         (rs6000_emit_prologue): Ditto.
6756         (rs6000_emit_epilogue): Ditto.
6757         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6758         macro for mixed mode.
6759
6760 2004-03-18  Jan Hubicka  <jh@suse.cz>
6761
6762         * predict.c (propagate_freq): Compute correctly frequency of
6763         EXIT_BLOCK.
6764
6765 2004-03-17  Eric Christopher  <echristo@redhat.com>
6766
6767         * builtins.c (apply_args_size): Use reg_raw_mode.
6768         (apply_result_size): Ditto.
6769
6770 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6771
6772         PR target/14620
6773         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6774
6775 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6776
6777         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6778         32-bit builds when defaulting to 32-bit.
6779
6780 2004-03-17  Jan Hubicka  <jh@suse.cz>
6781
6782         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6783         array.
6784
6785 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6786
6787         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6788         (hazard_nop): Change type to nop.
6789         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6790         Fix all uses.  Change arith to multi if more than one insn emitted.
6791         * config/mips/5400.md (ir_vr54_arith): Likewise.
6792         * config/mips/5500.md (ir_vr55_arith): Likewise.
6793         * config/mips/7000.md (rm7_int_other): Likewise.
6794         * config/mips/9000.md (rm9k_int): Likewise.
6795         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6796
6797 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6798
6799         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6800         to hold the subtype tree instead of recomputing it several times.
6801
6802 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6803
6804         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6805         CC_INVERT.
6806         * config/mn10300/mn10300.md (cc): Remove "invert".
6807
6808 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6809
6810         * builtins.c (integer_valued_real_p): Add builtin rint.
6811         (fold_builtin): Likewise.
6812         * convert.c (convert_to_real): Likewise.
6813
6814         * convert.c (convert_to_real): Fix typos in `long double'
6815         builtins.
6816
6817 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6818
6819         PR c++/14481
6820         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6821         generated COMPOUND_EXPRs.
6822
6823 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6824
6825         * config/h8300/t-rtems (h8300-*-rtems*): New.
6826
6827 2004-03-16  Eric Christopher  <echristo@redhat.com>
6828
6829         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6830
6831 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6832
6833         * config/i386/i386-protos.h: Add a prototype for
6834         ix86_reverse_condition.
6835         * config/i386/i386.c (ix86_reverse_condition): New.
6836         * config/i386/i386.h (REVERSE_CONDITION): Use
6837         ix86_reverse_condition.
6838         * config/i386/i386.md: Use ix86_reverse_condition instead of
6839         REVERSE_CONDITION.
6840
6841 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6842
6843         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6844
6845 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6846
6847         PR bootstrap/12974
6848         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6849
6850 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6851
6852         * c-common.c (c_common_type_for_mode): Build vector types on
6853         demand.
6854         (handle_mode_attribute): Deprecate using the mode attribute
6855         to create vector types.  Fix indentation.
6856         (vector_type_node_list): Remove.
6857         (handle_vector_size_attribute): Create vector types on demand.
6858         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6859         * c-typeck.c (comptypes): Make vector types compatible if they
6860         have the same underlying mode.
6861         (convert_for_assignment): Use comptypes to convert between
6862         vector types.
6863         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6864         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6865         vector types.
6866         * tree.h: Remove vector types.
6867         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6868         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6869         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6870         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6871         * doc/extend.texi (Vector Types): Document how to use the
6872         vector_size attribute to create vectors, rather than mode.
6873
6874         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6875         * config/i386/emmintrin.h: Likewise.
6876         * config/i386/mmintrin.h: Likewise.
6877         * config/i386/xmmintrin.h: Likewise.
6878         * config/sh/ushmedia.h: Likewise.
6879
6880 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6881
6882         * config/freebsd-spec.h, config/arc/arc-protos.h,
6883         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6884         config/arm/linux-gas.h, config/arm/semi.h,
6885         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6886         config/ia64/freebsd.h, config/mips/7000.md,
6887         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6888         config/sparc/pbd.h: Update copyright.
6889
6890 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6891
6892         PR target/14577
6893         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6894
6895 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6896
6897         * combine.c (combine_simplify_rtx): Remove the "last"
6898         parameter and its documentation.  Adjust recursive calls.
6899         (simplify_logical): Always perform the only simplification
6900         controlled by "last", if the simplified expression is
6901         actually different.
6902         (try_combine): Do not pass the "last" parameter to
6903         combine_simplify_rtx.
6904
6905 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6906
6907         PR target/14599
6908         * config/mips/mips.md (UNSPEC_GP): New constant.
6909         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6910         an UNSPEC instead of (reg $gp).
6911         (mips16_gp_pseudo_reg): Change accordingly.
6912         (print_operand): Print $gp directly when handling CONST_GP_P.
6913
6914 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6915
6916         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6917         * longlong.h: Make code 68060 clean when compiling for m68060.
6918
6919 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6920
6921         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6922         * doc/md.texi: Clarify description of "i" constraint.
6923
6924 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6925
6926         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6927         Split store into store, fpstore, fpidxstore.  Fix all uses.
6928         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6929         Likewise.
6930         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6931         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6932         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6933         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6934         ir_sr70_fstore): Likewise.
6935
6936 2004-03-15  Richard Henderson  <rth@redhat.com>
6937
6938         PR middle-end/14535
6939         * except.c (collect_one_action_chain): Record action for cleanup
6940         outer of exception spec.
6941
6942 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6943
6944         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6945         Fix the check for abort and only do the mmap if we can.
6946
6947 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6948
6949         * config/sparc/sparc.h: Rework comments about the code model
6950         in 64-bit environment and the mode 'Pmode'.
6951         * doc/invoke.texi (SPARC options): Rework description of the
6952         different code models supported in 64-bit environment.
6953
6954 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6955
6956         * defaults.h (REVERSIBLE_CC_MODE): Define.
6957         * jump.c (reversed_comparison_code_parts): Don't check if
6958         REVERSIBLE_CC_MODE is defined.
6959
6960 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6961
6962         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6963         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
6964         hosthooks.h, params.h, ra-colorize.c, web.c,
6965         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
6966         config/avr/avr-protos.h, config/avr/avr.md,
6967         config/fr30/fr30-protos.h, config/fr30/fr30.md,
6968         config/h8300/fixunssfsi.c, config/i386/darwin.h,
6969         config/i386/freebsd.h, config/i386/freebsd64.h,
6970         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
6971         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
6972         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
6973         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
6974         config/pa/pa64-regs.h, config/rs6000/aix41.h,
6975         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
6976         config/sparc/aout.h, config/sparc/freebsd.h,
6977         config/sparc/litecoff.h, config/vax/vax-protos.h,
6978         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
6979         copyright.
6980
6981 2004-03-15  Paul Brook  <paul@codesourcery.com>
6982
6983         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
6984
6985 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6986
6987         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
6988         (pp_c_cv_qualifier): Document.
6989         (pp_c_space_for_pointer_operator): Likewise.
6990         (pp_c_integer_constant): Likewise.
6991         (pp_c_identifier): Likewise.
6992         (pp_c_init_declarator): Don't print function body.
6993
6994 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
6995
6996         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
6997         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
6998         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
6999         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
7000         wording and grammar.
7001
7002 2004-03-14  Roger Sayle  <roger@eyesopen.com>
7003
7004         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
7005         with lang_hooks.foo ().
7006         * builtins.c (expand_builtin_va_arg): Likewise.
7007         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
7008         c_common_type_for_mode, c_common_nodes_and_builtins,
7009         handle_mode_attribute, handle_vector_size_attribute): Likewise.
7010         * c-convert.c (convert): Likewise.
7011         * c-format.c (check_format_types): Likewise.
7012         * c-objc-common.c (c_tree_printer): Likewise.
7013         * c-typeck.c (build_unary_op, build_conditional_expr,
7014         build_binary_op): Likewise.
7015         * calls.c (try_to_integrate, expand_call,
7016         emit_library_call_value_1): Likewise.
7017         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
7018         Likewise.
7019         * cgraphunit.c (record_call_1, cgraph_analyze_function,
7020         cgraph_expand_function): Likewise.
7021         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
7022         * coverage.c (build_fn_info_type, build_ctr_info_type,
7023         build_gcov_info, create_coverage): Likewise.
7024         * dbxout.c (dbxout_init): Likewise.
7025         * diagnostic.c (diagnostic_report_current_function): Likewise.
7026         * dojump.c (do_jump): Likewise.
7027         * dwarf2out.c (dwarf2_name): Likewise.
7028         * except.c (init_eh): Likewise.
7029         * explow.c (expr_size, int_expr_size): Likewise.
7030         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
7031         Likewise.
7032         * expr.c (store_expr, store_constructor, safe_from_p,
7033         expand_expr_real, do_store_flag, try_casesi): Likewise.
7034         * function.c (push_function_context_to, pop_function_context_from,
7035         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
7036         put_var_into_stack, allocate_struct_function, current_function_name):
7037         Likewise.
7038         * integrate.c (copy_decl_for_inlining, expand_inline_function):
7039         Likewise.
7040         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
7041         lhd_print_error_function): Likewise.
7042         * opts.c (handle_option, decode_options): Likewise.
7043         * passes.c (open_dump_file): Likewise.
7044         * print-tree.c (print_node): Likewise.
7045         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
7046         expand_decl_cleanup, emit_case_nodes): Likewise.
7047         * stor-layout.c (variable_size): Likewise.
7048         * toplev.c (announce_function, wrapup_global_declarations,
7049         check_global_declarations, compile_file, default_tree_printer,
7050         process_options, lang_dependent_init, finalize): Likewise.
7051         * tree-dump.c (dequeue_and_dump): Likewise.
7052         * tree-inline.c (remap_decl, remap_block, copy_body_r,
7053         initialize_inlined_parameters, declare_return_variable,
7054         inlinable_function_p, expand_call_inline, optimize_inline_calls,
7055         walk_tree, copy_tree_r): Likewise.
7056         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7057         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
7058         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
7059         variably_modified_type_p, dump_tree_statistics): Likewise.
7060         * varasm.c (assemble_variable, compare_constant, copy_constant,
7061         force_const_mem, compute_reloc_for_constant, output_constant,
7062         output_addressed_constants, initializer_constant_valid_p): Likewise.
7063
7064 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
7065
7066         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
7067
7068 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
7069
7070         * doc/install.texi: Reflect autoconf and automake version for
7071         libffi. Update autoconf version to 2.59.
7072
7073 2004-03-13  Roger Sayle  <roger@eyesopen.com>
7074
7075         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
7076         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
7077         make_range, build_range_check, fold_range_test, unextend,
7078         constant_boolean_node, fold_binary_op_with_conditional_arg,
7079         fold_truthop, fold_mathfn_compare, fold_inf_compare,
7080         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
7081         with lang_hooks.foo ().
7082
7083 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
7084
7085         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
7086
7087 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
7088
7089         * doc/install.texi: Note status of -fnew-ra.
7090
7091 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7092
7093         PR middle-end/14470
7094         * expr.c (store_expr): Call emit_queue before generating the move
7095         from the temporary to the original target.  Protect the temporary
7096         from emit_queue.
7097
7098 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
7099
7100         PR target/14533
7101         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
7102         other than UNSPEC_GOTOFF.
7103
7104 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
7105
7106         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
7107         to arm_legitimate_index_p.  Update all callers with SET as default
7108         value.
7109         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
7110         range if OUTER is a sign-extend operation on QImode.  Correctly
7111         reject shift operations on sign-extended QImode addresses.
7112         (bad_signed_byte_operand): Delete.
7113         (arm_extendqisi_mem_op): New function.
7114         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
7115         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
7116         constraints.
7117         (CONSTRAINT_LEN): New.
7118         (EXTRA_CONSTRAINT): Delete.  Replace with...
7119         (EXTRA_CONSTRAINT_STR): ... this.
7120         (PREDICATE_CODES): Remove bad_signed_byte_operand.
7121         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
7122         is now always default.
7123         (define_splits for bad sign-extend loads): Delete.
7124         (arm_extendqisi, arm_extendqisi_v5): Likewise.
7125         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
7126         Rework 'U' constraint to 'Uv'.
7127         * arm-protos.h: Remove bad_signed_byte_operand.  Add
7128         arm_extendqisi_mem_op.
7129         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
7130         Add Uq constraint.
7131
7132 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
7133
7134         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
7135         with targetm version.
7136
7137         PR target/14567
7138         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
7139         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
7140         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
7141         Update all users of RS6000_ARG_SIZE.
7142         (function_arg_advance): Count fregno using mode size.
7143         (function_arg): Handle long double split over regs and memory.
7144         (function_arg_partial_nregs): Likewise.
7145         (rs6000_va_arg): Repackage complex args.
7146
7147 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
7148
7149         PR target/14047
7150         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
7151         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
7152         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
7153
7154 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
7155
7156         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
7157         prototype.
7158         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
7159         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7160
7161 2003-03-12  Andrew Pinski  <apinski@apple.com>
7162
7163         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7164         Use ret instead of result. Use addr instead of base.
7165
7166 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
7167
7168         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
7169         fixes required by libstdc++ and update installation instructions
7170         for libstdc++.a.
7171
7172 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
7173
7174         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
7175         leading '@' on fastcall symbols before stripping suffix.
7176
7177 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7178
7179         * combine.c (unmentioned_reg_p): New function to check whether an
7180         expression is a "specialization" of another, i.e. that there are
7181         no registers or memory references mentioned in the first that don't
7182         appear in the second.
7183         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
7184         (combine_instructions): Also try combining instructions using the
7185         REG_EQUAL note from a preceding log-linked instruction.
7186
7187 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7188
7189         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
7190
7191 2004-03-12  Matt Austern  <austern@apple.com>
7192
7193         * target.h (struct gcc_target): New target hook, unwind_label.
7194         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
7195         * output.h (default_emit_unwind_label): New function.
7196         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
7197         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
7198         (TARGET_SUPPORTS_HIDDEN): New target macro.
7199         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
7200         that corresponds to this FDE.
7201         (FRAME_BEGIN_LABEL): Allow target to override default label.
7202         (output_call_frame_info): If FDEs are linknonce, then use extra
7203         indirection for FDE encoding, output a label for each FDE, and
7204         output an empty label for each function without an FDE.
7205         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
7206         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
7207         decls with DECL_ONE_ONLY set, if that macro is defined.
7208         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
7209         for a SUPPORTS_ONE_ONLY target.
7210         * config/darwin-protos.h (darwin_unique_section): Declare.
7211         (darwin_asm_named_section): Likewise.
7212         (darwin_section_type_flags): Likewise.
7213         (darwin_non_lazy_pcrel): Likewise.
7214         (darwin_emit_unwind_label): Likewise.
7215         (darwin_make_decl_one_only): Likewise.
7216         * config/darwin.c (machopic_finish): Get rid of tweak that
7217         eliminate stubs for symbols that are defined.
7218         (darwin_encode_section_info): Don't treat weak functions as defined.
7219         (darwin_make_decl_one_only): Define.
7220         (darwin_asm_named_section): Likewise.
7221         (darwin_section_type_flags): Likewise.
7222         (darwin_unique_section): Likewise.
7223         (darwin_emit_unwind_label): Likewise.
7224         (darwin_non_lazy_pcrel): Likewise.
7225         (darwin_asm_output_dwarf_delta): Difference between two labels is
7226         local only if both labels are local.
7227         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
7228         (ASM_MAKE_LABEL_LINKONCE): Likewise.
7229         (TARGET_SUPPORTS_HIDDEN): Likewise.
7230         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
7231         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
7232         (FRAME_BEGIN_LABEL): Likewise.
7233         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
7234         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7235         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
7236         (TARGET_ASM_UNIQUE_SECTION): Define.
7237         (EH_FRAME_SECTION_NAME): Define.
7238         (EH_FRAME_SECTION_ATTR): Likewise.
7239         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
7240         (TARGET_ASM_NAMED_SECTION): Likewise.
7241         (TARGET_SECTION_TYPE_FLAGS): Likewise.
7242         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
7243         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
7244         TARGET_ASM_EMIT_UNWIND_LABEL.
7245
7246 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7247
7248         * builtins.c (expand_builtin_mathfn): Add pow10* to the
7249         existing exp10* case.
7250         (expand_builtin): Likewise.
7251
7252 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
7253
7254         * doc/tm.texi (registers) <Values in Registers>: Add
7255         entry for REGMODE_NATURAL_SIZE.
7256
7257 2004-03-12  Richard Henderson  <rth@redhat.com>
7258
7259         PR target/14547
7260         * target.h (struct gcc_target): Move calls substructure before
7261         booleans.  Add split_complex_arg.
7262         * function.c (assign_parms, split_complex_args): Use it.
7263         * calls.c (expand_call): Likewise.
7264         (split_complex_values): Likewise.  Check for splittable types
7265         before allocating memory.
7266         (split_complex_types): Likewise.
7267         * system.h (SPLIT_COMPLEX_ARGS): Poison.
7268         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
7269         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
7270         * config/alpha/alpha.c (alpha_split_complex_arg): New.
7271         (TARGET_SPLIT_COMPLEX_ARG): New.
7272         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
7273         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
7274         (rs6000_override_options): Zap it for non-AIX.
7275         (rs6000_function_value): Use targetm.calls.split_complex_arg.
7276         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
7277         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
7278         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
7279         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
7280         SPLIT_COMPLEX_ARGS entry.
7281
7282 2004-03-11  Richard Henderson  <rth@redhat.com>
7283
7284         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
7285         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
7286         (alpha_emit_xfloating_arith): Update to match.
7287         (alpha_emit_xfloating_compare): Likewise.
7288         (alpha_emit_xfloating_cvt): Likewise.
7289         (alpha_emit_xfloating_libcall): Take already built symbol,
7290         mark call const.
7291         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
7292         op1 in a register.
7293
7294 2004-03-11  Richard Henderson  <rth@redhat.com>
7295
7296         PR target/14539
7297         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
7298
7299         * simplify-rtx.c (simplify_relational_operation): Fix typo.
7300
7301 2004-03-11  Richard Henderson  <rth@redhat.com>
7302
7303         PR middle-end/14477
7304         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
7305
7306 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7307
7308         PR target/14262
7309         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
7310         defined, pass small BLKmode values in registers in the low-order part.
7311
7312 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7313
7314         * combine.c (if_then_else_cond): Check for NULL return value of
7315         simplify_gen_subreg.
7316
7317 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7318
7319         PR target/14496
7320         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
7321         TARGET_SINGLE_FLOAT.
7322
7323 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
7324
7325         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
7326         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
7327         * config/ia64/ia64.c (ia64_init_libfuncs): New.
7328         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
7329
7330 2004-03-11  Roger Sayle  <roger@eyesopen.com>
7331
7332         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7333         -((int)X>>C) where C is an integer constant one bit less than the
7334         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7335         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7336
7337         * simplify-rtx.c (simplify_unary_operation): Also implement the
7338         above transformations at the RTL level.
7339
7340 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7341
7342         * real.c (encode_ibm_extended): Do round low word.
7343
7344 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7345
7346         * config/arm/arm.md (is_xscale): Comment this attribute and move
7347         it a bit further up in the file, closer to related attributes.
7348
7349 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7350
7351         * config/host-solaris.c (sol_gt_pch_use_address): Add
7352         missing terminating marker to comment.
7353
7354 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7355
7356         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7357         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7358         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7359         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7360         move_operand as source predicate in all cases.
7361         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7362         Test reg_or_0_operand.  Use move_operand as source predicate.
7363         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7364         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7365         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7366         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7367         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7368         Use move_operand as source predicate.  Remove 'K' constraint.
7369         (*movqi_internal): Likewise movqi_internal.
7370         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7371         reg_or_0_operand.  Use move_operand as source predicate.
7372         (*movsf_softfloat): Likewise movsf_internal2.
7373         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7374         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7375         (*movdf_softfloat): Likewise movdf_internal2.
7376         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7377         for DImode if !TARGET_64BIT.
7378         (mips_legitimize_move): Simplify accordingly.
7379
7380 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7381
7382         PR/14362
7383         * var-tracking.c (struct variable_def): Added field refcount.
7384         (variable_htab_free): Decrease the refcount and delete variable
7385         only if there are no more references.
7386         (unshare_variable): New function.
7387         (vars_copy_1): Increase refcount instead of copying the variable.
7388         (variable_union): Share the variables where possible, unshare
7389         the variables if needed.
7390         (variable_different_p): Return false if var1 and var2 are
7391         the same structure.
7392         (variable_was_changed): Init the refcount of new variable.
7393         (set_frame_base_location): Unshare variable if needed.
7394         (set_variable_part): Init the refcount of new variable.
7395         Unshare the variables if needed.
7396         (delete_variable_part): Unshare the variables if needed.
7397         (emit_notes_for_differences_1): Init the refcount of new variable.
7398         (vt_add_function_parameters): Do not add function parameters to
7399         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7400         (vt_initialize): Do not add frame_base_decl to IN set of
7401         ENTRY_BLOCK_PTR because it is unused anyway.
7402
7403 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7404
7405         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7406         (vars_copy): Likewise.
7407         (variable_union): Likewise.
7408         (set_variable_part): Likewise.
7409         (delete_variable_part): Likewise.
7410
7411 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7412
7413         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7414         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7415         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7416         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7417         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7418         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7419         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7420         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7421         config/stormy16/stormy16.c: Fix comment typos and formatting.
7422
7423 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7424
7425         * configure: Regenerate, since I forgot to while committing Paolo's
7426         changes.
7427
7428 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7429
7430         PR ada/14131
7431         Move language detection to the top level.
7432         * configure.ac: Remove code to detect languages,
7433         it now lives exclusively in the top level.
7434         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7435         top level, renamed to ACX_PROG_GNAT.
7436
7437 2004-03-10  Richard Henderson  <rth@redhat.com>
7438
7439         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7440         extra arguments.
7441         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7442         and host_xmake_file fragments.
7443         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7444         (gt_pch_restore): Similarly for gt_pch_use_address.
7445         (default_gt_pch_get_address): New.
7446         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7447         (default_gt_pch_use_address): Split out of gt_pch_restore.
7448         (mmap_gt_pch_use_address): Likewise.
7449         * hooks.c (hook_voidp_size_t_null): Remove.
7450         (hook_bool_voidp_size_t_false): Remove.
7451         * hooks.h: Likewise.
7452         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7453         default_ or mmap_ definitions.
7454         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7455         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7456         and gt_pch_use_address.
7457         * config/host-linux.c, config/host-solaris.c: New files.
7458         * config/x-linux, config/x-solaris: New files.
7459         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7460         Update for changed definition.
7461         (darwin_rs6000_gt_pch_use_address): Likewise.
7462         * doc/hostconfig.texi: Update docs.
7463
7464 2004-03-10  Richard Henderson  <rth@redhat.com>
7465
7466         PR c/14517
7467         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7468         except for pedantic c90 mode.
7469
7470 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7471
7472         * configure.ac: Bump AC_PREREQ to 2.59.
7473         * configure: Regenerate.
7474
7475 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7476
7477         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7478         (exp10_optab, exp2_optab): Define corresponding macros.
7479         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7480         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7481         using exp10?f2 and exp2?f2 patterns.
7482         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7483         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7484         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7485         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7486
7487         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7488         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7489         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7490
7491 2004-03-10  Anthony Green  <green@redhat.com>
7492
7493         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7494
7495 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7496
7497         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7498         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7499         __LONGDOUBLE128.
7500         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7501         TARGET_OS_AIX_CPP_BUILTINS.
7502         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7503         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7504         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7505         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7506         previous change.
7507
7508 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7509
7510         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7511
7512 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7513
7514         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7515         __LONGDOUBLE128 on AIX.
7516
7517 2004-03-10  Andrew Haley  <aph@redhat.com>
7518
7519         PR optimization/14381
7520         * function.c (expand_function_end): Emit a blockage insn before
7521         the epilogue when -fnon-call-exceptions is used.
7522
7523         * except.c (expand_start_all_catch): Make comment more accurate.
7524
7525 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7526
7527         PR target/14480
7528         * config/rs6000/t-rtems: Add missing file on branch.
7529
7530 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7531
7532         * dbxout.c (dbxout_symbol_location): Do not output references
7533         to optimized-out constant pool symbols.
7534
7535 2004-03-10  Andreas Schwab  <schwab@suse.de>
7536
7537         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7538         twon34_r.
7539
7540 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7541
7542         * alias.c (alias_sets_might_conflict_p): New.
7543         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7544         * common.opt (Wstrict-aliasing=): New.
7545         * flags.h (warn_strict_aliasing): Change type to int.
7546         * opts.c (warn_strict_aliasing): Change type to int.
7547         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7548         * tree.h (alias_sets_might_conflict_p): Declare it.
7549         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7550
7551 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7552
7553         PR bootstrap/12371
7554         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7555         (CALL_USED_REGISTERS): Likewise.
7556         (REG_CLASS_CONTENTS): Likewise.
7557         (REG_ALLOC_ORDER): New.
7558         (REGNO_REG_CLASS): Use regno_reg_class.
7559         * config/m68k/m68k.c: Add regno_reg_class array.
7560
7561 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7562
7563         * config/ia64/ia64.md (divsi3): Fix algorithm.
7564           (udivsi3): Ditto.
7565           (setf_exp_xf): Remove '*' from name.
7566         * testsuite/gcc.dg/20040309-1.c: New test.
7567
7568 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7569
7570         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7571         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7572         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7573         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7574         (sparc_aout_select_rtx_section): Don't check
7575         SUNOS4_SHARED_LIBRARIES.
7576         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7577
7578 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7579
7580         PR other/14474
7581         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7582         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7583         INTERNALS".
7584
7585 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7586
7587         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7588         (LIBGCC_SPEC): Update to match.
7589
7590 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7591
7592         * c-decl.c (last_function_parms, last_function_parm_tags)
7593         (last_function_parm_others, current_function_parms)
7594         (current_function_parm_tags, current_function_parm_others):
7595         Delete.
7596         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7597         New macros.
7598         (grokdeclarator): For function definitions, save the arg-info
7599         block from the declarator in DECL_ARGUMENTS.
7600         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7601         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7602         contains only PARM_DECLs.  Improve diagnostics.
7603         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7604         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7605         (store_parm_decls_newstyle): Take the function to operate on,
7606         and an arg-info block, as arguments; don't get anything from
7607         current_function_* globals.
7608         (store_parm_decls_oldstyle): Likewise.
7609         (store_parm_decls): Pass fndecl and its arg-info block down to
7610         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7611         argument lists through store_parm_decls_newstyle to reduce
7612         overhead.
7613         (pushdecl): Comment on the problems with the call to copy_node.
7614         Clear DECL_ARGUMENTS of the old node after copying it, if it
7615         is an arg-info block instead of a chain of decls.
7616         (start_function): Do not manipulate current_function_parm* or
7617         last_function_parm*.
7618
7619 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7620             Andrew Pinski  <pinskia@physics.uc.edu>
7621
7622         * ifcvt.c (noce_try_sign_mask): New function to transform
7623         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7624         (noce_process_if_block): Call noce_try_sign_mask.
7625
7626 2004-03-09  Andrew Pinski  <apinski@apple.com>
7627
7628         * c-typeck.c (tagged_types_tu_compatible_p):
7629         Fix typo.
7630
7631 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7632
7633         * simplify-rtx.c (simplify_const_relational_operation): New function
7634         renamed from simplify_relational_operation.
7635         (simplify_relational_operation): Change prototype to accept an
7636         additional mode argument.  Call simplify_const_relational_operation.
7637         (simplify_gen_relational): Update simplify_relational_operation call.
7638         (simplify_ternary_operation): Update simplify_relational_operation
7639         subroutine call to use simplify_const_relational_operation instead.
7640
7641         * rtl.h (simplify_const_relational_operation): Prototype here.
7642         (simplify_relational_operation): Add addtional mode argument.
7643
7644         * combine.c (combine_simplify_rtx): Update calls to
7645         simplify_relational_operation.
7646         (simplify_set): Likewise.
7647         (gen_binary): Likewise.
7648         * cse.c (fold_rtx): Likewise.
7649         * dojump.c (compare_from_rtx): Likewise.
7650         (do_compare_rtx_and_jump): Likewise.
7651         * integrate.c (subst_constants): Likewise.
7652         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7653
7654 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7655
7656         * config/m32r/m32r.md: Remove all define_peephole's.
7657
7658 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7659
7660         * config/rs6000/rs6000.md: Remove trailing whitespace.
7661
7662 2004-03-08  Eric Christopher  <echristo@redhat.com>
7663
7664         * Makefile.in (site.exp): Add libiconv variable definition.
7665
7666 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7667
7668         * configure: Regenerate for config/accross.m4 correction.
7669
7670 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7671
7672         PR target/14480
7673         * config/rs6000/t-rtems: Add missing file on branch.
7674
7675 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7676
7677         PR middle-end/14289
7678         * c-typeck.c (c_mark_addressable): A register variable should
7679         be considered global if its not automatic, i.e. TREE_PUBLIC,
7680         TREE_STATIC or DECL_EXTERNAL.
7681         * function.c (put_var_into_stack): Call abort when placing a
7682         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7683
7684 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7685
7686         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7687         ("*extendqisi2_short_displ"): Likewise.
7688
7689 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7690
7691         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7692         (comp_operator): Likewise.
7693         * config/pdp11/pdp11-protos.h: Remove corresponding
7694         prototypes.
7695
7696 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7697
7698         * expr.c (highest_pow2_factor_for_type): Rename into
7699         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7700         TYPE_ALIGN when the target is a COMPONENT_REF.
7701         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7702
7703 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7704
7705         * config/rs6000/rs6000.c: Formatting fix.
7706         (legitimate_offset_address_p): Correct offset range check.
7707
7708         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7709         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7710         and MASK_STRING.
7711
7712 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7713
7714         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7715         for little endian.
7716         ("ashrdi3_no_power"): Disable for little endian.
7717         (ashrdi3): Same.
7718
7719 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7720
7721         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7722         builtins.
7723
7724 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7725
7726         PR target/14471
7727         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7728         case, checking for -no-mul-bug-abort option.
7729         * configure, config.in: Regenerate.
7730         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7731         and -mno-mul-bug-workaround.
7732         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7733         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7734         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7735         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7736         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7737         sure mulu.d is not last on cache-line.
7738         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7739         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7740         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7741         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7742         -mno-mul-bug-workaround.
7743         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7744         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7745         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7746         relation to MULT in head comment.
7747         (cris_op_str): Abort for MULT.
7748         (cris_print_operand) <case '!'>: New case.
7749
7750 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7751
7752         PR debug/11983
7753         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7754         dw_val_class_vec.  Replace use throughout file.
7755         (dw_float_const): Delete.
7756         (dw_vec_const): New.
7757         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7758         throughout file.
7759         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7760         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7761         (size_of_die): Adjust dw_val_class_vec sizing.
7762         (output_die): Output dw_val_class_vec.
7763         (insert_int, extract_int, insert_float): New functions.
7764         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7765         Handle CONST_VECTOR.
7766         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7767
7768 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7769
7770         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7771         AltiVec abi cannot co-exist.
7772
7773         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7774
7775 2004-03-07  Jan Hubicka  <jh@suse.cz>
7776
7777         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7778
7779 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7780
7781         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7782         ("*lshrsi3"): Also accept an immediate for 68HC12.
7783         ("*ashrsi3_const"): Likewise.
7784         ("*ashrsi3"): Likewise.
7785         ("*ashlsi3_const"): Likewise.
7786         ("*ashlsi3"): Likewise.
7787         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7788         comparing with a pop; don't use a split for that.
7789         ("cmphi split"): Disable compare split for 68HC12.
7790
7791         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7792         the status operands if they have side effects.
7793
7794 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7795
7796         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7797         definition.
7798         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7799         config/h8300/h8300.h, config/ia64/ia64.h,
7800         config/mcore/mcore.h, config/mmix/mmix.h,
7801         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7802         config/stormy16/stormy16.h, config/v850/v850.h,
7803         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7804         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7805         definition.
7806
7807 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7808
7809         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7810         <XOR_EXPR>: Fold x ^ x as zero.
7811         <AND_EXPR>: Fold x & x as x.
7812
7813 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7814
7815         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7816         "foo++ == const" into "++foo == const+incr".
7817
7818 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7819
7820         * config/mips/mips.c (mips_in_small_data_p): Return false if
7821         TARGET_ABICALLS.
7822
7823 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7824
7825         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7826         the stack register.
7827         (expand_prologue): Don't make an interrupt or a trap handler a far
7828         symbol.
7829         (m68hc11_initial_elimination_offset): Likewise.
7830
7831 2004-03-06  Richard Henderson  <rth@redhat.com>
7832
7833         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7834
7835 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7836
7837         * config/ns32k/ns32k-protos.h: Add a prototype for
7838         ns32k_notice_update_cc.
7839         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7840         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7841         ns32k_notice_update_cc.
7842
7843 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7844
7845         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7846         "*load_multiple_si"): Allow only if reload_completed.
7847         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7848         Likewise.
7849
7850 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7851
7852         * config/vax/vax-protos.h: Add a prototype for
7853         vax_notice_update_cc.
7854         * config/vax/vax.c (vax_notice_update_cc): New.
7855         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7856         vax_notice_update_cc.
7857
7858 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7859
7860         * collect2.c (main): Only export initfunc and finifunc if
7861         LD_INIT_SWITCH not defined.
7862         (scan_prog_file): Only export constructors and destructors if
7863         LD_INIT_SWITCH not defined.  Only export symbols not found in
7864         shared objects.
7865
7866 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7867
7868         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7869         last.
7870         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7871         from calls to gen_icacheflush.
7872
7873 2004-03-06  Richard Henderson  <rth@redhat.com>
7874
7875         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7876         (TARGET_LONG_DOUBLE_128): New.
7877         (TARGET_SWITCHES): Add long-double-{128,64}.
7878         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7879         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7880         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7881         (WIDEST_HARDWARE_FP_SIZE): New.
7882         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7883         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7884         if TARGET_VAX_FLOAT.
7885         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7886         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7887
7888 2004-03-06  Richard Henderson  <rth@redhat.com>
7889
7890         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7891         botched rtx class conversion.
7892
7893 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7894
7895         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7896         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7897
7898         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7899         macros.
7900         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7901
7902 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7903
7904         PR target/14343
7905         * config/i386/i386.md (movv2di_internal): Conditionalize on
7906         TARGET_SSE, not TARGET_SSE2.
7907
7908 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7909
7910         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7911         duplicated line.
7912
7913 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7914
7915         * builtins.c: Consistently use logN not log* in comments.
7916
7917 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7918
7919         * rtl.h (mem_expr_equal_p): Function prototype added.
7920         * cfgcleanup.c (merge_memattrs): New function.
7921         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7922         * emit-rtl.c (mem_expr_equal_p): New function.
7923
7924 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7925
7926         * objc/objc-act.c (synth_module_prologue): Const-qualify
7927         objc_selector type if using the GNU runtime; fix generated
7928         signatures for objc_msg_lookup and objc_msg_lookup_super
7929         to match what GNU ObjC headers provide; reformat and clean up.
7930         (synth_self_and_ucmd_args): Use previously constructed (and
7931         hence possibly const-qualified) objc_selector type.
7932
7933 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7934
7935         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7936
7937 2004-03-05  Jason Merrill  <jason@redhat.com>
7938
7939         * tree.h (TYPE_HASH): Use TYPE_UID.
7940         (TREE_HASH): New macro with old definition of TYPE_HASH.
7941         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7942         (build_array_type, build_function_type): Likewise.
7943         (build_method_type_directly): Likewise.
7944         (build_offset_type, build_complex_type): Likewise.
7945         (type_hash_list, attribute_hash_list): Likewise. Now static.
7946         * except.c: s/TYPE_HASH/TREE_HASH/.
7947
7948 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7949
7950         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7951         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7952         __va_ndx by 2 words when referencing an argument on the stack.
7953         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7954         words when an arg on the stack is first seen.
7955
7956 2004-03-05  Paul Brook  <paul@codesourcery.com>
7957
7958         * arm.h (ARM_FLAG_VFP): Remove.
7959         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7960         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7961
7962 2004-03-05  Paul Brook  <paul@codesourcery.com>
7963
7964         * function.c (assign_parms): Include pretend alignment offset.
7965
7966 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7967
7968         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
7969         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
7970
7971 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
7972
7973         * configure.ac: When passing --enable-languages to subdir
7974         configure when host != build, make sure we don't pass an empty
7975         value.
7976         * configure: Regenerate.
7977
7978 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
7979
7980         PR 13577
7981         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
7982         options.
7983
7984 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7985
7986         * simplify-rtx.c (simplify_relational_operation): If
7987         flag_wrapv is set, do not move terms between the two
7988         side of a relational operator.
7989
7990 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
7991
7992         * rtlanal.c: Include target.h and output.h
7993         (rtx_cost, address_cost, default_address_cost): Move from...
7994         * cse.c (rtx_cost, address_cost, default_address_cost):
7995         ... this file.
7996         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
7997         * Makefile.in: Adjust dependencies.
7998
7999 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
8000
8001         * cse.c (cse_end_of_basic_block): Make static.
8002         * local-alloc.c (function_invariant_p): Move to
8003         reload1.c.
8004         * loop.c (libcall_other_reg, record_excess_regs):
8005         Make static.
8006         * reload1.c (function_invariant_p): Moved here
8007         from local-alloc.c, made static.
8008         * rtl.h (cse_end_of_basic_block, function_invariant_p,
8009         libcall_other_reg, record_excess_regs): Remove
8010         declarations.
8011
8012 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8013
8014         * config/m32r/m32r.c (signed_comparison_operator): Add a
8015         missing parenthesis.
8016
8017 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
8018
8019         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
8020         going to call mmap again.  Read the file into the right place.
8021         Give a fatal error if we have to relocate.
8022
8023 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
8024
8025         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
8026         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
8027
8028 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
8029
8030         PR other/14354
8031         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
8032         round the same.  When rounding, clear bits that would cause a
8033         second rounding in pack_d.
8034         (_fpmul_parts): Ditto.  Remove #if 0:d code.
8035
8036 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
8037
8038         PR c++/14425, c++/14426
8039         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
8040         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
8041         Change C++ definitions to accept a 'const int' argument;
8042         the prototypes already do.
8043         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
8044         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
8045         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
8046         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
8047         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
8048         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
8049         end in ..._int; change them to accept an int instead of a char
8050         as the last parameter.
8051
8052 2004-03-04  Phil Edwards  <phil@codesourcery.com>
8053
8054         * genmultilib:  Change '=' to '-' when translating option names
8055         to directory names.
8056
8057 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8058
8059         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
8060         stack slot for temp used for result of BLKmode but in integral mode.
8061
8062 2004-03-04  Jan Hubicka  <jh@suse.cz>
8063
8064         * reload.c (find_reloads): Reorganize if seqeunce to switch.
8065
8066         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
8067         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
8068
8069 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
8070
8071         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
8072         * testsuite/gcc.dg/20040303-1.c: New test.
8073
8074 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8075
8076         * ppro.md: Rewrite as a DFA pipeline description.
8077         * i386.md: Remove all uses of the ppro_uops attribute.
8078         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
8079         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
8080         ix86_sched_reorder, ix86_variable_issue,
8081         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
8082         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
8083         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
8084         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
8085         * athlon.md (athlon_ssecmp_load): Fix comment
8086
8087 2004-03-04  Stuart Hastings  <stuart@apple.com>
8088
8089         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
8090
8091 2004-03-04  Stuart Hastings  <stuart@apple.com>
8092
8093         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
8094         686, tell Darwin assembler to allow prefetch insns, non-empty def
8095         of SUBTARGET_OPTION_TRANSLATE_TABLE.
8096
8097 2004-03-04  DJ Delorie  <dj@redhat.com>
8098
8099         PR optimization/14282
8100         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
8101         between a call and the assignment of its return value.
8102
8103 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8104
8105         * config/h8300/h8300.c: Put a comment for every function.
8106
8107 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8108
8109         * config/h8300/h8300.md: Add comments about peephole2's.
8110
8111 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8112
8113         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
8114
8115 2004-03-04  Jan Hubicka  <jh@suse.cz>
8116
8117         * cfgcleanup.c (thread_jump): Update call of cselib_init.
8118         * cselib.c (cselib_record_memory): New static variable.
8119         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
8120         Give up on memories when asked for.
8121         (cselib_init): Accept new argument.
8122         * cselib.h (cselib_init): Update prototype.
8123         * gcse.c (local_cprop_pass): Update call of cselib_init.
8124         * loop.c (load_mems): Update call of cselib_init.
8125         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
8126         * sched-deps.c (sched_analyze): Update call of cselib_init.
8127
8128 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8129             GP <gp@qnx.com>
8130
8131         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
8132         when compiling PIC.
8133
8134 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
8135
8136         PR/14362
8137         * var-tracking.c (track_expr_p): Do not track variables which
8138         should be ignored for debugging purposes.
8139
8140 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8141
8142         * real.c (encode_ibm_extended): Don't bother rounding low double.
8143         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
8144         when fmt->pnan < fmt->p.
8145
8146 2004-03-04  Eric Christopher  <echristo@redhat.com>
8147
8148         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
8149         only range of valid arg registers and fixed_regs.
8150
8151 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8152
8153         PR target/14406
8154         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
8155         (abstf2, abstf2_internal): New define_expand.
8156
8157 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8158
8159         PR optimization/14235
8160         * expr.c (convert_move): Copy the source to a new pseudo
8161         when converting from a sub-word source to a larger-than-word
8162         register which conflicts with the source.
8163
8164 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
8165
8166         PR 13728
8167         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
8168         parameters with the same name, unless one is a forward decl.
8169         Do not issue a redundant-redeclaration warning for forward
8170         decls of parameters.
8171
8172 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8173
8174         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
8175         configuration.
8176
8177 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
8178
8179         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
8180
8181 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8182
8183         * target-def.h (TARGET_OPTF): Delete.
8184         * c-opts.c (TARGET_OPTF): Define.
8185
8186 2004-03-04  Jan Hubicka  <jh@suse.cz>
8187
8188         * cselib.c (cselib_finish): Fix another miss-application of my previous
8189         patch.
8190
8191 2004-03-03  Mike Stump  <mrs@apple.com>
8192
8193         Add framework support for darwin.
8194
8195         * c-incpath.c: Include target.h and machmode.h.
8196         (add_path): Use a consistent style for cpp_dir.  Initialize
8197         p->construct to 0.
8198         (add_cpp_dir_path): New.
8199         (register_include_chains): Add use of extra_includes callback.
8200         (hook_void_int): Add.
8201         (target_c_incpath): Add.
8202         * c-incpath.h (add_cpp_dir_path): New.
8203         (target_c_incpath_s): Add.
8204         (target_c_incpath): Add.
8205         (C_INCPATH_INIT): Add.
8206         * c-opts.c (c_common_missing_argument,
8207         c_common_handle_option): Add -F argument processing.
8208         * c.opt: Add -F argument processing.
8209         * gcc.c (trad_capable_cpp): Add -F argument processing.
8210         * cppfiles.c (find_file_in_dir): Update to use construct
8211         callback.
8212         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
8213         cpp_get_prev): New.
8214         (_cpp_find_file): Use search_path_exhausted.
8215         (make_cpp_dir): Initialize construct to 0.
8216         * cpplib.h (missing_header_cb
8217         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
8218         (cpp_callbacks): Add missing_header
8219         (cpp_dir): Add construct.
8220         * target-def.h: (TARGET_OPTF): New.
8221         * hooks.c (hook_void_int, hook_void_charptr): Add.
8222         * hooks.h (hook_void_int, hook_void_charptr): Add.
8223         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
8224         $(MACHMODE_H) dependencies.
8225         * doc/invoke.texi (Darwin Options): Document -F.
8226         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
8227         (TARGET_OPTF): Add.
8228         * fix-header.c (target_c_incpath): Add.
8229
8230         * config/darwin-c.c: Add c-incpath.h include.
8231         (using_frameworks, find_subframework_file,
8232         find_subframework_header, add_system_framework_path,
8233         frameworks_in_use, num_frameworks, max_frameworks,
8234         add_framework, find_framework, struct framework_header,
8235         framework_header_dirs, framework_construct_pathname,
8236         find_subframework_file, add_system_framework_path,
8237         add_framework_path, framework_defaults,
8238         darwin_register_frameworks, find_subframework_header): Add.
8239         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
8240         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
8241         (CPP_SPEC): Add __APPLE_CC__ support.
8242         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
8243
8244 2004-03-04  Jan Hubicka  <jh@suse.cz>
8245
8246         * cselib.c (cselib_finish): Fix miss-application of my previous
8247         patch.
8248
8249 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8250
8251         * hooks.c (hook_tree_tree_identity): New.
8252         * hooks.h: Add a prototype for hook_tree_tree_identity.
8253         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
8254         instead of MD_ASM_CLOBBERS.
8255         * system.h (MD_ASM_CLOBBERS): Poison.
8256         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
8257         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
8258         * target.h (gcc_target): Add md_asm_clobbers.
8259         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
8260         (ix86_md_asm_clobbers): New.
8261         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
8262         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
8263         TARGET_MD_ASM_CLOBBERS.
8264
8265 2004-03-03  Stuart Hastings  <stuart@apple.com>
8266
8267         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
8268
8269 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8270
8271         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
8272
8273         * config/sparc/sparc.h (ASM_FLOAT): Delete.
8274         (ASM_DOUBLE): Likewise.
8275         (ASM_LONGDOUBLE): Likewise.
8276         * config/sparc/pbd.h (ASM_INT_OP): Delete.
8277
8278 2003-03-03  Richard Henderson  <rth@redhat.com>
8279
8280         PR opt/13862
8281         * cselib.c (cselib_record_sets): Don't record multiple sets in
8282         asm insns.
8283
8284 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
8285
8286         * common.opt: Add description of the new -fgcse-after-reload flag.
8287
8288         * flags.h (flag_gcse_after_reload): Declaration of global variable.
8289
8290         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
8291         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
8292         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
8293         get_bb_avail_insn, hash_scan_set_after_reload,
8294         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
8295         gcse_after_reload, get_bb_avail_insn): New functions to implement
8296         gcse-after-reload.
8297         (gcse_after_reload_main): New function, the main entry point to
8298         gcse-after-reload.
8299
8300         * rtl.h (gcse_after_reload_main): Declaration of the new function.
8301
8302         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
8303
8304         * toplev.c (flag_gcse_after_reload): Initialization.
8305
8306         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
8307
8308         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8309         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
8310         the gcse after reload optimization.
8311
8312         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8313         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
8314         parameters.
8315
8316         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
8317
8318 2004-03-03  Nicolas Pitre <nico@cam.org>
8319
8320         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
8321         small negative values.
8322
8323 2004-03-03  Jan Hubicka  <jh@suse.cz>
8324
8325         * cselib.c (hash_table):  Remove GTY marker.
8326         (reg_values): Turn into array.
8327         (used_regs): Likewise.
8328         (n_used_regs): New static variable.
8329         (reg_values_old): Kill.
8330         (clear_table): Update uses of arrays.
8331         (cselib_lookup): Likewise.
8332         (cselib_record_set): Likewise.
8333         (cselib_init): Likewise.
8334         (cselib_finish): Likewise.
8335         (cselib_udpate_varray_sizes): Kill.
8336         * cselib.h (cselib_update_varray_sizes): Kill.
8337
8338 2004-03-03  Paul Brook  <paul@codesourcery.com>
8339
8340         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8341
8342 2004-03-03  Jan Hubicka  <jh@suse.cz>
8343
8344         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8345         Rename from ...; make statistics transparent.
8346         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8347         (loc_descriptor): New structure.
8348         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8349         add_statistics):
8350         New static function.
8351         (ggc_record_overhead, dump_statistics): New global function.
8352         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8353         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8354         from ...; accept locations
8355         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8356         ggc_realloc, ggc_alloc_typed):  ... this one.
8357         from ...; accept locations
8358         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8359         ggc_alloc_stat): Rename from ... ; pass locations
8360         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8361         ... this one.
8362         (ggc_alloc_stat): Record overehead.
8363         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8364         ggc_realloc, ggc_alloc_typed):  Turn to macros
8365         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8366         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8367         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8368         * langhooks.h (lhd_make_node): Declare.
8369         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8370         * langhooks.c (lhd_make_node): New.
8371         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8372         locations.
8373         (rtx_alloc, swallow_copy_rtx): ... this one.
8374         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8375         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8376         * toplpev.c (finalize): Dump stats.
8377         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8378         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8379         Rename from ... ; pass locators.
8380         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8381         build?,  build_decl): Declare.
8382         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8383         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8384         Declare.
8385         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8386         build?,  build_decl): New macros.
8387         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8388         * statistics.h: New file.
8389
8390 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8391             Richard Sandiford  <rsandifo@redhat.com>
8392
8393         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8394         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8395         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8396         * config/mips/mips.c (mips_output_division): Fill the branch delay
8397         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8398         TARGET_FIX_R4400.
8399         (mips_output_division): Adjust accordingly.
8400         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8401         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8402
8403 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8404
8405         * alias.c (rtx_equal_for_memref_p): Use predicates
8406         to test rtx classes and new rtx class codes, possibly
8407         splitting conditionals that tested against '<' and 'o'.
8408         * caller-save.c (save_call_clobbered_regs): Likewise.
8409         * combine.c (contains_muldiv, find_split_point, subst,
8410         combine_simplify_rtx, simplify_if_then_else,
8411         simplify_set, simplify_logical, expand_compound_operation,
8412         make_compound_operation, if_then_else_cond, known_cond,
8413         apply_distributive_law, cached_nonzero_bits,
8414         cached_num_sign_bit_copies, simplify_shift_const,
8415         gen_binary, simplify_comparison, update_table_tick,
8416         record_value_for_reg, get_lsat_value_validate): Likewise.
8417         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8418         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8419         Likewise.
8420         * emit-rtl.c (copy_insn_1): Likewise.
8421         * expr.c (force_operand): Likewise.
8422         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8423         * flow.c (notice_stack_pointer_modification_1,
8424         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8425         and_reg_cond, elim_reg_cond): Likewise.
8426         * function.c (update_epilogue_consts): Likewise.
8427         * genattrtab.c (attr_rtx_1): Likewise.
8428         * genopinit.c (gen_insn): Likewise.
8429         * integrate.c (subst_constants): Likewise.
8430         * jump.c (reversed_comparison_code_parts,
8431         reversed_comparison_code, delete_related_insns,
8432         rtx_renumbered_equal_p): Likewise.
8433         * local-alloc.c (block_alloc): Likewise.
8434         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8435         canonicalize_condition): Likewise.
8436         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8437         Likewise.
8438         * optabs.c (add_equal_node, expand_binop): Likewise.
8439         * predict.c (estimate_probability): Likewise.
8440         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8441         * recog.c (validate_replace_rtx_1, comparison_operator,
8442         offsettable_address_p, constrain_operands): Likewise.
8443         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8444         Likewise.
8445         * regclass.c (scan_one_insn): Likewise.
8446         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8447         * regrename.c (kill_autoinc_value): Likewise.
8448         * reload.c (find_reusable_reload, find_reloads,
8449         reg_overlap_mentioned_for_reload_p): Likewise.
8450         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8451         * rtl.c (copy_rtx): Likewise.
8452         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8453         * rtlanal.c (commutative_operand_precedence): Likewise.
8454         * sched-deps.c (conditions_mutex_p): Likewise.
8455         * sched-rgn.c (is_cfg_nonregular): Likewise.
8456         * simplify-rtx.c (simplify_gen_binary,
8457         simplify_gen_relational, simplify_replace_rtx,
8458         simplify_unary_operation, simplify_binary_operation,
8459         simplify_ternary_operation, simplify_rtx): Likewise.
8460         * unroll.c (reg_dead_after_loop): Likewise.
8461         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8462         print_operand): Likewise.
8463         * config/arc/arc.c (proper_comparison_operator): Likewise.
8464         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8465         Likewise.
8466         * config/avr/avr.c (_reg_unused_after): Likewise.
8467         * config/frv/frv.c (frv_ifcvt_modify_tests,
8468         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8469         * config/i386/i386.c (ix86_comparison_operator,
8470         ix86_carry_flag_operator, fcmov_comparison_operator,
8471         arith_or_logical_operator, print_operand,
8472         ix86_expand_binary_operator, ix86_binary_operator_ok):
8473         Likewise.
8474         * config/i386/i386.md: Likewise.
8475         * config/ia64/ia64.c (not_postinc_memory_operand,
8476         ia64_print_operand, update_set_flags, errata_emit_nops):
8477         Likewise.
8478         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8479         CONSTRAINT_OK_FOR_S): Likewise.
8480         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8481         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8482         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8483         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8484         Likewise.
8485         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8486         eqne_comparison_operator, signed_comparison_operator):
8487         Likewise.
8488         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8489         Likewise.
8490         * config/mmix/mmix (mmix_foldable_comparison_operator,
8491         mmix_comparison_operator): Likewise.
8492         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8493         * config/rs6000/rs6000.c (stmw_operation,
8494         branch_comparison_operator, trap_comparison_operator,
8495         ccr_bit): Likewise.
8496         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8497         * config/s390/s390.c (s390_alc_comparison,
8498         s390_slb_comparison):L Likewise.
8499         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8500         Likewise.
8501         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8502         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8503         emit_hard_tfmode_operation, reg_unused_after)
8504         * doc/md.texi, doc/rtl.texi: Likewise.
8505
8506         * ra-debug.c: Add 2004 to list of copyright years.
8507         * unroll.c: Likewise.
8508
8509         * combine.c (simplify_logical): Remove dummy test,
8510         (apply_distributive_law): Fix typo in comment.
8511         GET_CODE (x) == AND so x is a commutative binary op.
8512         * jump.c (delete_related_insns): simplify loop
8513         condition, move testing of RTX codes inside the loop.
8514         (rtx_renumbered_equal_p): do not use RTX_CODE.
8515         * rtl.c (rtx_class): Declare as enum rtx_class.
8516         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8517         Move to RTX_COMM_COMPARE class.
8518         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8519         Move to RTX_CONST_OBJ class.
8520         * rtl.h (enum rtx_class): New declaration,
8521         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8522         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8523         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8524         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8525         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8526         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8527         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8528         OBJECT_P): New macros.
8529         * config/sparc/sparc.c (noov_compare_op): Remove register
8530         from parameter.
8531
8532 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8533
8534         * target.h: Remove texi jargons in comments.
8535
8536 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8537
8538         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8539         threshold to 0x4f.
8540
8541         Revert:
8542         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8543         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8544         as well.
8545         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8546         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8547
8548 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8549
8550         * doc/md.texi (cbranchmode4): New.
8551
8552 2004-03-02  Eric Christopher  <echristo@redhat.com>
8553
8554         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8555         fix_trunc.
8556         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8557         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8558         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8559         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8560
8561 2004-03-02  Richard Henderson  <rth@redhat.com>
8562
8563         PR middle-end/11767
8564         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8565         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8566         before the compare, if flag_non_call_exceptions.
8567
8568 2004-03-02  Richard Henderson  <rth@redhat.com>
8569
8570         PR middle-end/14327
8571         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8572         emitting the label, not after.
8573
8574 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8575
8576         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8577         (m68hc11_mov_addr_mode): Likewise.
8578         (m68hc11_override_options): Initialize them based on target.
8579         (register_indirect_p): Allow a MEM for indirect addressing modes and
8580         use flags to control what is allowed.
8581         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8582         supported addressing modes.
8583         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8584         (go_if_legitimate_address_internal): Likewise.
8585         (m68hc11_indirect_p): Likewise and check the mode.
8586         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8587
8588 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8589
8590         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8591         (expand_builtin_setjmp_setup): Use
8592         targetm.builtin_setjmp_frame_value instead of
8593         BUILTIN_SETJMP_FRAME_VALUE.
8594         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8595         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8596         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8597         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8598         * targhooks.c (default_builtin_setjmp_frame_value): New.
8599         * targhooks.h: Add a prototype for
8600         default_builtin_setjmp_frame_value.
8601         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8602         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8603
8604 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8605
8606         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8607         sequences of moves.
8608         (add peepholes): New peepholes to optimize sequences adding small
8609         constants.
8610         (bset peepholes): New peepholes to transform an OR in a bset form
8611         (bclr peepholes): Likewise for bclr form.
8612         (cmp peepholes): New peepholes to avoid register copies when comparing.
8613
8614 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8615
8616         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8617         to separate push from moves.
8618         ("*pushdf_internal"): Likewise.
8619         ("*pushsf_internal"): Likewise.
8620         ("*pushsi_internal"): Likewise.
8621         ("movdi_internal"): Use define_insn_and_split; non push operand.
8622         ("movdf_internal"): Likewise.
8623         ("movsf_internal"): Likewise.
8624         ("movsi_internal"): Likewise.
8625         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8626         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8627         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8628
8629 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8630
8631         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8632         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8633         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8634         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8635         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8636         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8637         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8638         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8639         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8640         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8641         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8642
8643 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8644
8645         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8646         (SOFT_XY_REGNUM): Define.
8647         (cmp split): Use the above instead of hard coded numbers.
8648         (8-bit op split): No need to check the mode; allow Q_REG.
8649         (ashift split): Adjust the first operand if it uses the SP and we
8650         are pushing the shifted value.
8651         (plus shift split): Fix when a source is in register D+X.
8652         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8653
8654 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8655
8656         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8657         comparing with Z register.
8658
8659 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8660
8661         * cfgloop.h (struct loop_desc): Removed.
8662         (struct loop): Fields simple, desc and has_desc removed.
8663         (simple_loop_p, count_loop_iterations): Declaration removed.
8664         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8665         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8666         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8667         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8668         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8669         simple_condition_p, simple_increment, count_strange_loop_iterations,
8670         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8671         Removed.
8672         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8673
8674 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8675
8676         * genattrtab.c: Don't handle MATCH_INSN.
8677         * genrecog.c: Likewise.
8678         * gensupport.c: Likewise.
8679         * rtl.def (match_insn): Remove.
8680         * doc/md.texi (match_insn, match_insn2): Remove.
8681
8682 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8683
8684         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8685         macro results in memory allocation.
8686
8687 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8688
8689         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8690         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8691         %(fbsd_dynamic_linker),
8692         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8693         config/i386/freebsd.h
8694         * config/arm/freebsd.h: Ditto.
8695         * config/i386/freebsd.h: Ditto.
8696         * config/i386/freebsd64.h: Ditto.
8697         * config/ia64/freebsd.h: Ditto.
8698         * config/rs6000/sysv4.h: Ditto.
8699         * config/sparc/freebsd.h: Ditto.
8700
8701 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8702
8703         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8704
8705 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8706
8707         * rtl.def (define_combine): Remove.
8708
8709 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8710
8711         * config/h8300/h8300.md: Tweak formatting.
8712
8713 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8714
8715         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8716         *cmphi_h8300_znvc.
8717         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8718
8719 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8720
8721         PR bootstrap/14356
8722         * gcc.c (process_command): Remove const-qualification from argv.
8723         (main): Likewise.
8724
8725 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8726
8727         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8728         pushqi1_h8300hs_advanced.  Adjust its caller.
8729         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8730         Adjust its caller.
8731
8732 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8733
8734         * Makefile.in (install-libgcc, install-multilib): Pass
8735         mkinstalldirs var to libgcc.mk.
8736
8737 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8738
8739         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8740         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8741
8742 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8743
8744         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8745         * config/h8300/h8300.md: Split several peephole2's, each into
8746         two.
8747
8748 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8749
8750         * dominance.c (recount_dominator): Handle postdominators.
8751
8752 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8753
8754         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8755         (NUM_SYMBOL_TYPES): Likewise.
8756         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8757         (mips_unspec_address): Declare.
8758         (mips_gotoff_page, mips_gotoff_global): Delete.
8759         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8760         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8761         (mips_symbolic_constant_p, mips_symbolic_address_p)
8762         (mips_symbol_insns): Handle new symbol types.
8763         (general_symbolic_operand): New predicate.
8764         (mips_unspec_address): Make extern.
8765         (mips_gotoff_page, mips_gotoff_global): Delete.
8766         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8767         Handle new symbol types.
8768         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8769         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8770         mips_unspec_address directly.
8771         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8772         the documentation of -mexplicit-relocs.
8773
8774 2004-03-01  Jeff Law  <law@redhat.com>
8775
8776         * fold-const.c (fold): An equality comparison of a non-weak object
8777         against zero has a known result.  Similarly an equality comparison
8778         of the address of two non-weak, unaliased symbols has a known result.
8779
8780         * ggc-page.c (struct page_entry): New field PREV.
8781         (ggc_alloc): Update PREV field appropriately.
8782         (sweep_pages): Likewise.
8783         (ggc_free): Likewise.  Use PREV field rather than loop to
8784         improve ggc_free performance.
8785
8786 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8787
8788         * config/mips/mips.c (mips_output_division): Use the division
8789         instruction to fill the delay slot of a zero check.
8790         (mips_idiv_insns): Adjust accordingly.
8791
8792 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8793
8794         * config.gcc: Create a default tmake_file for linux, and use
8795         it in all but two linux clauses.  Comment those two.
8796
8797 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8798
8799         * combine.c (try_combine):  Do not refer to is_replaced.
8800         (gen_lowpart_for_combine):  Perverse subregs now have a
8801         more politically correct name.
8802         * cse.c (cse_insn): Likewise.
8803         * jump.c: Fix bogus reference to delete_insn.
8804
8805 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8806
8807         PR debug/14328
8808         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8809         constants as signed values.
8810
8811         PR middle-end/13448
8812         * c-tree.h (readonly_warning): Rename to ...
8813         (readonly_error): ... this.
8814         * c-typeck.c (build_unary_op): Adjust accordingly.
8815         (readonly_warning): Rename to ...
8816         (readonly_error): ... this and issue errors, not warnings.
8817         (build_modify_expr): Call readonly_error, not readonly_warning.
8818         (c_expand_asm_operands): Likewise.
8819         * tree-inline.c (optimize_inline_calls): Do not inline functions
8820         after errors have occurred.
8821
8822 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8823
8824         * configure.ac: Rearrange some threading code for clarity;
8825         add section comment.
8826         * configure: Regenerate.
8827
8828 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8829
8830         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8831         typos.
8832         * doc/cppopts.texi: Fix a typo.
8833
8834 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8835
8836         * config/i386/i386.md: Fix formatting.
8837
8838 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8839
8840         * configure.ac: Add some comments delineating sections of code.
8841
8842         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8843
8844         * doc/install.texi: Fix idiot typo in previous commit.
8845
8846         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8847
8848 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8849
8850         * config/h8300/h8300.md: Add comments about peephole2's.
8851
8852 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8853
8854         * config/h8300/h8300.md: Tweak operand numbers of some
8855         peephole2's.
8856
8857 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8858
8859         * config/h8300/h8300.md: Tweak comments about peephole2's.
8860
8861 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8862
8863         PR middle-end/14203
8864         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8865         instead of testing whether DECL_RTL is not NULL.
8866
8867 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8868
8869         * config/sh/sh.c: Fix formatting.
8870
8871 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8872
8873         * config/sh/sh.c: Convert to ISO-C.
8874
8875 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8876
8877         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8878         my previous patch.
8879
8880         * config/darwin.h (machopic_finish): Output stub even if the
8881         symbol is already defined.
8882
8883 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8884
8885         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8886
8887 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8888
8889         * genattr.c (main): Don't define
8890         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8891         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8892         (DFA_PIPELINE_INTERFACE): Likewise.
8893         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8894         (DFA_PIPELINE_INTERFACE): Likewise.
8895
8896 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8897
8898         * config/mips/mips.md (tstsi, tstdi): Delete.
8899
8900 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8901
8902         * config/mips/mips.c (override_options): Remove an obsolete
8903         duplicate definition of the "e" constraint.
8904         * config/mips/mips.h: Update a comment accordingly.
8905
8906 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8907
8908         * config/mips/mips.md: Complete the unfinished R4000
8909         multiply/shift errata workaround.  Improve documentation.
8910         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8911         has a hilo hazard.
8912         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8913         (muldi3, muldi3_internal): Likewise.
8914         (muldi3_internal2): Remove, replacing with...
8915         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8916         (mulsidi3): Take the errata into account.
8917         (mulsidi3_32bit): Remove, replacing with...
8918         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8919         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8920         (umulsidi3): Take the errata into account.
8921         (umulsidi3_32bit): Remove, replacing with..
8922         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8923         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8924         TARGET_FIX_R4000.
8925         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8926         (smuldi3_highpart, umuldi3_highpart): Likewise.
8927         * doc/invoke.texi: Document the errata workaround.
8928
8929 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8930
8931         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8932         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8933         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8934         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8935         * config/mips/mips.c (mips_idiv_insns): New function.
8936         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8937         (mips_output_division): Add a workaround for the R4000 divide/shift
8938         errata.
8939         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8940         the length of an "idiv" instruction.
8941         * doc/invoke.texi: Document the new switches.
8942
8943 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8944
8945         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8946         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8947
8948 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8949
8950         PR optimization/14229
8951         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8952
8953 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8954
8955         * fold-const.c (fold): Strip NOPs that change the signedness
8956         for RSHIFT too.  Expand comment.
8957
8958 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8959
8960         PR optimization/7871
8961         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8962         from or to call insns.
8963
8964 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8965
8966         PR optimization/7871
8967         * flow.c (propagate_one_insn): Interpret calls as setting global
8968         registers, not merely clobbering them.
8969
8970 2004-02-27  Dale Johannesen  <dalej@apple.com>
8971
8972         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
8973         config/darwin-protos.h:  Ditto.
8974         config/darwin.h:  Remove call to it.
8975         * combine.c (distribute_notes): Do not place a REG_DEAD note
8976         when value is both set and used.
8977
8978 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8979
8980         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8981         as well.
8982         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8983         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8984
8985 2004-02-27  Andrew Pinski  <apinski@apple.com>
8986
8987         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
8988         Speedup common case of the type values being in the same order.
8989
8990 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
8991
8992         * config/ia64/ia64.h (no-inline-float-divide): New option.
8993         * config/ia64/ia64.h (no-inline-int-divide): New option.
8994         * config/ia64/ia64.h (no-inline-sqrt): New option.
8995         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
8996         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
8997         * config/ia64/ia64.c (ia64_override_options): Modify error
8998         checking for inlined division/sqrt.
8999
9000 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9001
9002         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
9003         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
9004         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
9005         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
9006         copyright.
9007
9008 2004-02-27  Paul Brook  <paul@codesourcery.com>
9009
9010         * function.c (assign_parms): Don't count pretend args for alignment.
9011
9012 2004-02-27  Richard Henderson  <rth@redhat.com>
9013
9014         * passes.c: New file.
9015         * Makefile.in (OBJS-common): Add it.
9016         * diagnostic.c (rtl_dump_and_exit): Move decl ...
9017         * flags.h (rtl_dump_and_exit): ... here.
9018         * output.h (size_directive_output, last_assemble_variable_decl):
9019         Move from toplev.c.
9020         * rtl.h (reg_alloc): Move from toplev.c.
9021         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
9022         struct dump_file_info, enum dump_file_index, dump_file_tbl,
9023         open_dump_file, close_dump_file, rest_of_decl_compilation,
9024         rest_of_type_compilation, rest_of_handle_final,
9025         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
9026         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
9027         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
9028         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
9029         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
9030         rest_of_handle_tracer, rest_of_handle_if_conversion,
9031         rest_of_handle_if_after_combine, rest_of_handle_web,
9032         rest_of_handle_branch_prob,
9033         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
9034         rest_of_handle_addressof, rest_of_handle_sibling_calls,
9035         rest_of_handle_jump_bypass, rest_of_handle_inlining,
9036         rest_of_handle_null_pointer, rest_of_handle_combine,
9037         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9038         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9039         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
9040         (decode_d_option): Use enable_rtl_dump_file.
9041         (compile_file, finalize, do_compile): Move profile+combine+graph
9042         cleanup to finish_optimization_passes.
9043         * toplev.h (init_optimization_passes, finish_optimization_passes,
9044         enable_rtl_dump_file): Declare.
9045
9046 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
9047             Roger Sayle  <roger@eyesopen.com>
9048
9049         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
9050         operands to build a tree with swapped operands.
9051         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
9052         'unsignedp' predicate to specify the signedness.
9053
9054 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9055
9056         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
9057         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
9058         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
9059         comment typos and formatting.  Follow spelling conventions.
9060
9061 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
9062
9063         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
9064         fix_truncsfsi2.
9065
9066         * config/rs6000/spe.md: Delete spe_efsctuiz.
9067         Add spe_fixuns_truncsfsi2.
9068         Add spe_fix_truncsfsi2.
9069
9070 2004-02-26  Eric Christopher  <echristo@redhat.com>
9071
9072         * c-lex.c (c_lex_string_translate): New variable.
9073         (lex_string): Use to determine string translation.
9074         * c-pragma.h: Prototype.
9075         * c-parse.in (start_string_translation): New. Set above.
9076         (stop_string_translation): Ditto.
9077         (attribute, attribute_list, asm_def, asm_stmt,
9078         asm_operand): Use above functions.
9079         * cp/parser.c (cp_parser_declaration): Translate strings
9080         unless token is RID_EXTERN. Set c_lex_string_translate
9081         for recursive use.
9082         (cp_parser_asm_definition): Only translate argument strings
9083         to asms.
9084         (cp_parser_asm_operand_list): Ditto.
9085         (cp_parser_attribute_list): Do not translate attribute strings.
9086
9087 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9088
9089         * stmt.c (expand_start_case_dummy): Remove.
9090         * tree.h: Remove the corresponding prototype.
9091
9092 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9093
9094         * builtins.c (apply_args_register_offset): Remove.
9095         * tree.h: Remove the corresponding prototype.
9096
9097 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9098
9099         * stor-layout.c (is_pending_size): Remove.
9100         * tree.h: Remove the corresponding prototype.
9101
9102 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9103
9104         * recog.c (validate_replace_src): Remove.
9105         * recog.h: Remove the corresponding prototype.
9106
9107 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9108
9109         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
9110         MAYBE_REG_PARM_STACK_SPACE.
9111         * function.c: Likewise.
9112         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
9113         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9114         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
9115         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9116
9117 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9118
9119         * c-decl.c (c_expand_deferred_function): Remove.
9120         * c-tree.h: Remove the corresponding prototype.
9121
9122 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9123
9124         * postreload.c (reload_cse_move2add): Generate just a PLUS
9125         instead of an entire SET.
9126
9127 2004-02-26  Jan Hubicka  <jh@suse.cz>
9128
9129         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
9130         /pentium4m.
9131         * i386.c (override_options): Add support for new CPUs.
9132         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
9133         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
9134         constants.
9135         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
9136
9137 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
9138
9139         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
9140
9141 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
9142
9143         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
9144         (sparc_emit_fixunsdi): New prototype.
9145         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
9146         (sparc_emit_fixunsdi): New function.
9147         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
9148         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
9149         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
9150         to sparc_emit_floatunsdi.
9151         (fixuns_truncsfdi2): New expander.
9152         (fixuns_truncdfdi2): Likewise.
9153
9154 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
9155
9156         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
9157         unless HAVE_cc0.
9158
9159 2004-02-25  Richard Henderson  <rth@redhat.com>
9160
9161         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
9162         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
9163         use (op0-op1) == 0 if op0 is a pointer.
9164         * config/alpha/alpha.md (cmpdi): Use some_operand.
9165         (three comparison combine splits): Remove.
9166
9167 2004-02-25  Richard Henderson  <rth@redhat.com>
9168
9169         PR c/12794
9170         * c-common.c (handle_alias_attribute): Reject the attribute if
9171         current_function_decl is set.
9172
9173 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9174
9175         * config.gcc: Add comment describing extra_gcc_objs.
9176         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
9177         * configure.ac (extra_gcc_objs): New substitution variable.
9178         (host_extra_gcc_objs): Don't substitute.
9179         * configure: Regenerate.
9180         * Makefile.in: Use extra_gcc_objs.
9181
9182 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9183
9184         * doc/contrib.texi: Add an entry for myself.
9185
9186 2004-02-25  Jan Hubicka  <jh@suse.cz>
9187
9188         * basic-block.h (make_eh_edge, break_superblocks): Declare.
9189         * cfgbuild.c (make_eh_edge):  Make global.
9190         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
9191         * except.c (build_post_landing_pads, connect_post_landing_pads,
9192         dw2_build_landing_pads, sjlj_emit_function_enter,
9193         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9194         sjlj_build_landing_pads): Update CFG.
9195         (emit_to_new_bb_before): New function.
9196         (finish_eh_generation): Do not rebuild the CFG.
9197
9198 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9199
9200         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
9201         target_cpu_default defines.
9202         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
9203         * pa.h (TARGET_DEFAULT): Likewise.
9204
9205 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9206
9207         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
9208         comparisons with regard to signedness.
9209
9210 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9211
9212         * arm.c (thumb_legitimize_address): New function.
9213         * arm-protos.h: Prototype it.
9214         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
9215         (LEGITIMIZE_ADDRESS): Use it.
9216
9217 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
9218
9219         * reload1.c (reload): Only spill eliminable register with multiple
9220         adjacent elimination alternatives if all alternatives fail.
9221
9222 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9223
9224         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
9225         is -4095...+4095 inclusive.
9226
9227 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
9228
9229         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
9230         the bootstrap failure with Sun CC 5.4 and 5.5.
9231
9232 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9233
9234         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
9235         which modifies NEWREG.
9236         (cse_condition_code_reg): Update the mode of CC_REG in
9237         CC_SRC_INSN on our own.
9238
9239 2004-02-24  Michael Matz  <matz@suse.de>
9240
9241         * config/i386/i386.c (ix86_comp_type_attributes): Check for
9242         regparm attributes.
9243
9244 2004-02-24  Richard Henderson  <rth@redhat.com>
9245
9246         * toplev.c (dump_file_tbl): Rename from dump_file.
9247         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
9248         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
9249         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
9250         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
9251         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
9252         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
9253         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
9254         s/rtl_dump_file/dump_file/g.
9255
9256 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
9257
9258         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
9259         (spe_fixuns_truncsfsi2): Delete.
9260
9261         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
9262         (fixuns_truncsfsi2): Delete.
9263
9264 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
9265
9266         PR/14240
9267         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
9268
9269 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
9270
9271         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
9272
9273 2004-02-24  Jason Merrill  <jason@redhat.com>
9274
9275         * tree.c (check_qualified_type): New fn.
9276         (get_qualified_type): Use it.  If type already has the desired
9277         quals, just return it.
9278         * tree.h: Declare it.
9279
9280 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
9281
9282         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
9283         TARGET_SCHED_FINISH_GLOBAL): New macros.
9284
9285         * target.h (md_init_global, md_finish_global): Function
9286         declarations corresponding to new target macros.
9287
9288         * haifa-sched.c (sched_init, sched_finish): Allow target to
9289         call the new schedular hooks.
9290
9291         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
9292         call to update_life_info.
9293
9294         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
9295         flag_schedule_insns for SH4.
9296
9297         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
9298         find_set_regmode_weight, find_insn_regmode_weight,
9299         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
9300         sh_variable_issue, high_pressure, ready_reorder,
9301         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
9302         functions used to throttle the insn movement in first
9303         scheduling pass for SH.
9304
9305         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
9306         TARGET_SCHED_FINISH_GLOBAL.
9307
9308 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
9309
9310         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
9311         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
9312         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
9313         symbols in sections named by the user.
9314         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
9315         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
9316         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
9317         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
9318         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
9319         the above.
9320         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
9321         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
9322         one more pseudo to further improve code generation.
9323         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
9324         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
9325         inside UNSPEC.
9326         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
9327         * config/frv/frv.c (frv_legitimate_address_p): Added
9328         allow_double_reg_p argument.  Adjust all callers.  Use it to
9329         decide whether to enable double-register indirect addressing.
9330         (frv_funcdesc_alias_set): Remove.
9331         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9332         register.  Emit movdi_ldd.
9333         (ldd_address_operand): New.
9334         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9335         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9336         (PREDICATE_CODES): Add ldd_address_operand.
9337         * config/frv/frv.md (movdi_ldd): New.
9338         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9339         intermediate computations if possible.
9340         (symGOTOFF2reg_i): Fix harmless typo.
9341         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9342         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9343         relocated p_vaddr to vaddr type.
9344         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9345         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9346         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9347         MEM, or use a funcdesc alias set.  Use regular move instead of
9348         ldd.
9349         (dbl_memory_one_insn_operand): Recognize function descriptors by
9350         type or by alias set, and don't split them.
9351         * config/frv/frv.md (call, call_value): Never use call_internal
9352         for fdpic.
9353         (call_internal, call_value_internal): Never match for FDPIC.
9354         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9355         call_value_fdpicsi): Require FDPIC.
9356         (ldd): Removed.
9357         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9358         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9359         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9360         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9361         FDPIC.  Compute data base address.
9362         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9363         before the other self-specs are processed.
9364         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9365         Build with -fPIC.
9366         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9367         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9368         inhibit_libc is defined.
9369         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9370         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9371         __FRV_FDPIC__.
9372         (__RELOC_POINTER): Define.
9373         (_Unwind_IteratePhdrCallback): Use it.
9374         * config/frv/frv.h (Twrite): Define.
9375         (TRANSFER_FROM_TRAMPOLINE): Use it.
9376         * config/frv/linux.h (INVOKE__main): Undefine.
9377         (Twrite): Override.
9378         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9379         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9380         (-mlibrary-pic): Emphasize that this option generates EABI code.
9381         (-mcpu): Add fr550.
9382         (-mpack): Remove.
9383         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9384         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9385         and CONSTs in FDPIC mode.
9386         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9387         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9388         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9389         constants.
9390         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9391         rather than 'i' constraint for the 2-instruction alternative.
9392         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9393         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9394         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9395         EXTRA_CONSTRAINT_FOR_Y.
9396         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9397         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9398         (addsi3): Change 'Y' constraint to 'Q'.
9399         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9400         * reload.c (CONST_POOL_OK_P): New macro.
9401         (find_reloads): Use it to decide whether a constant can be forced
9402         into memory.
9403         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9404         constant satisfies got12_operand.
9405         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9406         (frv_legitimate_address_p): Check for valid unspec offsets using
9407         got12_operand rather than frv_legitimate_fdpic_operand_p.
9408         (frv_legitimate_fdpic_operand_p): Delete.
9409         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9410         or after reload.
9411         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9412         TARGET_FDPIC.
9413         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9414         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9415         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9416         (frv_fdpic_fptr_operand): Don't declare here.
9417         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9418         rather than fdpic_got12_operand.
9419         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9420         got12_operand and const_unspec_operand.
9421         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9422         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9423         (symbolic_operand): Remove.
9424         (const_unspec_operand): New predicate.
9425         * config/frv/frv.md (*movsi_got): Use got12_operand.
9426         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9427         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9428         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9429         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9430         * config/frv/frv.c (frv_unspec): New structure.
9431         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9432         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9433         validate CONST indices.  Use frv_output_const_unspec to print them.
9434         (frv_print_operand): Update call to unspec_got_name.  Use
9435         frv_output_const_unspec to print constant unspecs.
9436         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9437         Reject UNSPECs otherwise.
9438         (unspec_got_name): Take the relocation number as argument, not an
9439         rtx containing it.
9440         (frv_output_addr_const_extra): Remove, replacing with...
9441         (frv_output_const_unspec): ...this new function.
9442         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9443         (gpr_or_int12_operand): Use fdpic_got12_operand.
9444         (dbl_memory_one_insn_operand): Likewise.
9445         (fdpic_got12_operand): Use frv_const_unspec_p.
9446         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9447         are already legitimate.  Use frv_small_data_reloc_p when deciding
9448         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9449         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9450         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9451         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9452         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9453         label, for real this time.
9454         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9455         representation of visibility.
9456         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9457         such.
9458         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9459         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9460         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9461         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9462         it was explicitly disabled.
9463         (frv_stack_info): There is no need to save the link register in every
9464         frame unless TARGET_LINKED_FP is true.
9465         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9466         frame pointer if the stack pointer might change value.
9467         (frv_return_addr_rtx): Check and process "count" argument.
9468         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9469         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9470         (frv_find_base_term): Declare.
9471         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9472         (FIND_BASE_TERM): Define.
9473         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9474         small_data_register_operand, small_data_symbolic_operand.  Add
9475         symbolic_operand.
9476         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9477         (frv_print_operand_memory_reference, output_move_single): Remove
9478         special handling for unlegitimized sdata addresses.
9479         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9480         and symbolic addresses.
9481         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9482         (frv_find_base_term): New function.
9483         (int_2word_operand): Check specifically for symbolic address constants.
9484         (pic_register_operand, pic_symbolic_operand): Delete.
9485         (small_data_register_operand, small_data_symbolic_operand): Delete.
9486         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9487         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9488         (move_source_operand): Only accept CONSTs if they're a two-insn
9489         symbolic constant.
9490         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9491         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9492         using gen_symGOTOFF2reg*.
9493         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9494         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9495         themselves a cost of 3 insns.
9496         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9497         Change predicate to symbolic_operand.
9498         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9499         (*movsi_lda_sdata): Delete.
9500         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9501         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9502         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9503         frv-*-*linux*.
9504         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9505         label.
9506         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9507         -multilib-library-pic.
9508         (LINK_SPEC): Add -z text for -mfdpic.
9509         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9510         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9511         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9512         Override.
9513         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9514         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9515         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9516         crtstuff-generated files.
9517         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9518         * config.gcc: Add frv-*-*linux*.
9519         * config/frv/linux.h, config/frv/t-linux: New.
9520         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9521         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9522         when -mfdpic even if a linker script is explicitly listed.
9523         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9524         * config/frv/frv.c (frv_override_options): Clear asm_out
9525         unaligned_op for SImode on FDPIC.
9526         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9527         argument passed to decl_readonly_section.
9528         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9529         whole block run with FDPIC even with -fno-PIC.
9530         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9531         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9532         symbol or label plus offset to memory.
9533         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9534         GOTOFF and GPREL for LABEL_REF.
9535         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9536         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9537         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9538         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9539         * doc/invoke.texi: Document them.
9540         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9541         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9542         (frv_splittable_got_operand): Removed.
9543         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9544         LO_SUM.  Add comments.
9545         (frv_override_options): Moved enabling of FDPIC to
9546         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9547         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9548         (frv_legitimize_fdpic_address): Don't duplicate logic in
9549         frv_emit_movsi.
9550         (frv_gen_GPsym2reg): New.
9551         (unspec_got_name): Added gprel.
9552         (frv_expand_fdpic_call): Add support for inlining PLTs.
9553         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9554         (gpr_or_int12_operand): Added GPREL12.
9555         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9556         (small_data_symbolic_operand): Fail if FDPIC.
9557         (fdpic_splittable_got_operand): Removed.
9558         (fdpic_got12_operand): Added GPREL12.
9559         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9560         when appropriate.  Fix sdata GOTOFF.
9561         (frv_legitimate_constant_p): Require legitimate PIC operand for
9562         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9563         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9564         flag_pic case.
9565         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9566         frv_assemble_integer fails.
9567         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9568         (SUBTARGET_DRIVER_SELF_SPECS): New.
9569         (ASM_SPEC): Don't pass -mno-fdpic.
9570         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9571         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9572         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9573         -multilib-library-pic.
9574         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9575         condexec_si_media_operator, condexec_sf_add_operator and
9576         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9577         and condexec_sf_unary_operator.
9578         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9579         New.
9580         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9581         movsi_internal.  Give them internal names.  movsi_got has type
9582         int.
9583         (fdpic got splitters): Remove.
9584         (symGPREL2reg, symGPREL2reg_hilo): New.
9585         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9586         to -mlibrary-pic.  Map -multilib-library-pic to it.
9587         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9588         Document.
9589         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9590         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9591         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9592         (frv_cannot_force_const_mem): New function.
9593         (const_small_data_p, plus_small_data_p): Update comments on sdata
9594         on FDPIC.
9595         (frv_override_options): Set flag_pie for FDPIC too.
9596         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9597         call-saved registers on FDPIC.
9598         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9599         don't force LR to be preserved.
9600         (frv_expand_prologue): Likewise.
9601         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9602         (frv_frame_pointer_required): Don't force it just because the
9603         FDPIC register is used.
9604         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9605         operand only if !condexec_p.
9606         (frv_legitimize_address): Return the FDPIC-legitimized address.
9607         Don't match small data here on FDPIC.
9608         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9609         symbols.  Use TRUE/FALSE instead of 1/0.
9610         (frv_local_funcdesc_p): New.
9611         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9612         immediates when possible.
9613         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9614         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9615         an UNSPEC_GOT.
9616         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9617         12-bit immediates when possible.
9618         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9619         are not legitimate pic operands.
9620         (frv_in_small_data_p): Re-enable for FDPIC.
9621         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9622         (FRV_GLOBAL_P): Removed.
9623         * config/frv/frv.md: Add modes to CONSTs.
9624         (movsi_got): New.
9625         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9626         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9627         (fdpic splittable operations): Match on flag_pic != 1.
9628         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9629         * config/frv/frv.c (frv_asm_out_constructor,
9630         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9631         bytes, not bits.
9632         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9633         * config/frv/frv.c (frv_assemble_integer): Reject complex
9634         expressions referencing function SYMBOL_REFs.
9635         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9636         (move_source_operand): Reject CONSTs that reference function
9637         SYMBOL_REFs on FDPIC.
9638         (frv_emit_movsi): If we get such a CONST, break it up.
9639         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9640         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9641         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9642         MEM.
9643         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9644         (frv_trampoline_size): Increase for FDPIC.
9645         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9646         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9647         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9648         Disable use of GOTOFF for now.
9649         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9650         Disable use of small data in FDPIC for now.
9651         (frv_asm_output_mi_thunk): Implement for FDPIC.
9652         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9653         * config/frv/frv.c (frv_asm_out_constructor): Use
9654         frv_assemble_integer for FDPIC pointers.
9655         (frv_asm_out_destructor): Likewise.
9656         * config/frv/frv.md (ldd): Fix order of operands.  Use
9657         address_operand for input.
9658         2003-09-18  DJ Delorie  <dj@redhat.com>
9659         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9660         (unspec_got_name): Correct typo.
9661         (frv_emit_movsi): Pre-expand splittable GOTs.
9662         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9663         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9664         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9665         * config/frv/t-frv: Add -mfdpic multilibs.
9666         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9667         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9668         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9669         flag_pic, default to 32-bit pics, require DWORD ops.
9670         (frv_override_options): Add W and Z constraints.
9671         (frv_expand_prologue): No pic prologue for -mfdpic.
9672         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9673         (frv_print_operand_memory_reference): Handle GOT constants.
9674         (frv_legitimate_address_p): Allow GOT constants.
9675         (frv_legitimize_address): Handle GOT addresses too.
9676         (frv_legitimate_fdpic_operand_p): New.
9677         (frv_legitimize_fdpic_address): New.
9678         (unspec_got_name): New.
9679         (frv_output_addr_const_extra): New.
9680         (frv_expand_fdpic_call): New.
9681         (frv_fdpic_fptr_operand): New.
9682         (gpr_or_int12_operand): Handle GOT operands.
9683         (int_2word_operand): Handle GOT operands.
9684         (fdpic_operand): New.
9685         (fdpic_splittable_got_operand): New.
9686         (fdpic_got12_operand): New.
9687         (frv_emit_movsi): Handle GOT operands.
9688         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9689         (frv_print_operand): Support 'g' code for GOT operands.
9690         * config/frv/frv-protos.h: Add prototypes as needed.
9691         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9692         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9693         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9694         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9695         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9696         R_FRV_GOTOFFLO): New.
9697         (movsi_high_got, movsi_lo_sum_got): New.
9698         (*movsi_pic): Don't use this splitter for -mfdpic.
9699         (addsi3): Allow GOT references also.
9700         (call, call_value): Handle -mfdpic separately.
9701         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9702         call_value_fdpicsi): New.
9703         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9704         symGOTOFF2reg_i): New.
9705         * config/frv/frv.h (MASK_FDPIC): New.
9706         (TARGET_FDPIC): New.
9707         (TARGET_SWITCHES): Add -mfdpic.
9708         (FDPIC_FPTR_REGNO): New.
9709         (FDPIC_REGNO): New.
9710         (OUR_FDPIC_REG): New.
9711         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9712         FDPIC_CALL_REGS.
9713         (REG_CLASS_NAMES): Likewise.
9714         (REG_CLASS_CONTENTS): Likewise.
9715         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9716         (EXTRA_CONSTRAINT): Add it here.
9717         (FRV_GLOBAL_P): New.
9718         (OUTPUT_ADDR_CONST_EXTRA): New.
9719
9720 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9721
9722         * config/sparc/sparc.h: Remove commented-out definitions of
9723         TARGET_EDOM and GEN_ERRNO_RTX.
9724
9725 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9726
9727         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9728         df_analyse with df_analyze.
9729
9730 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9731
9732         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9733         beginning of block.
9734
9735 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9736
9737         * calls.c (precompute_arguments): Update comment.
9738
9739 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9740
9741         * et-forest.c: Replace et_occurences with et_occurrences.
9742
9743 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9744
9745         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9746         with iv_analyze.
9747
9748 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9749
9750         * config/i386/i386.c: Rename pni to sse3.
9751         * config/i386/i386.h: Likewise.
9752         * config/i386/i386.md: Likewise.
9753         * config/i386/pmmintrin.h: Likewise.
9754         * doc/extend.texi: Likewise.
9755         * doc/invoke.texi: Likewise.
9756
9757 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9758             Kazu Hirata  <kazu@cs.umass.edu>
9759
9760         Remove -fwritable-strings.
9761         * c-common.c (fix_string_type): Don't check
9762         flag_writable_strings.
9763         (fix_string_type): Likewise.
9764         * c-opts.c (set_std_c89): Don't initialize
9765         flag_writable_strings.
9766         (set_std_c99): Likewise.
9767         * common.opt (fwritable-strings): Remove.
9768         * flags.h: Remove the external declaration of
9769         flag_writable_strings.
9770         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9771         Remove.
9772         * toplev.c (flag_writable_strings): Remove.
9773         (f_options): Remove an entry for writable-strings.
9774         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9775         flag_writable_strings.
9776         (compare_constant) <STRING_CST>: Likewise.
9777         (build_constant_desc): Likewise.
9778         * config/darwin.c (machopic_select_section): Likewise.
9779         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9780         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9781         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9782         * config/mips/mips.c (mips_select_section): Likewise.
9783         (mips_encode_section_info): Likewise.
9784         * config/pa/pa.c (pa_select_section): Likewise.
9785         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9786         * config/v850/v850.c (v850_select_section): Likewise.
9787         * doc/invoke.texi (-fwritable-strings): Remove.
9788         (-fno-const-strings): Don't mention -fwritable-strings.
9789         * doc/trouble.texi: Don't mention -fwritable-strings.
9790
9791 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9792
9793         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9794
9795 2004-02-23  Dale Johannesen  <dalej@apple.com>
9796
9797         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9798         (movdf_hardfloat64):  Ditto.
9799         (movdf_softfloat64):  Ditto.
9800
9801 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9802         * config/rs6000/rs6000.c (function_arg): call to
9803         rs6000_mixed_function_arg for DFmode moved to allow
9804         normal DFmode incoming register assignment.
9805
9806 2004-02-23  Dale Johannesen  <dalej@apple.com>
9807
9808         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9809         (movdf_hardfloat64):  Ditto.
9810
9811 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9812
9813         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9814         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9815         copyright.
9816
9817 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9818
9819         PR c/14156
9820         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9821         to use DECL_P instead.
9822
9823         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9824         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9825
9826 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9827
9828         * Makefile.in (opts.o): Depend on target.h.
9829         * opts.c (decode_options): Use targetm.default_short_enums
9830         instead of DEFAULT_SHORT_ENUMS.
9831         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9832         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9833         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9834         * target.h (gcc_target): Add default_short_enums.
9835         * config/cris/cris.h: Remove a comment about
9836         DEFAULT_SHORT_ENUMS.
9837         * config/ip2k/ip2k.h: Likewise.
9838         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9839         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9840
9841 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9842             Falk Hueffner  <falk@debian.org>
9843
9844         PR c/14188
9845         * builtins.c (expand_builtin_va_arg): Emit an informative message
9846         if a trap is generated.
9847         * c-typeck.c (build_function_call): Likewise.
9848
9849 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9850
9851         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9852         fopen.
9853         * libgcov.c: Include sys/stat.h.
9854         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9855         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9856         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9857         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9858
9859 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9860
9861         * reorg.c: Remove comments about dead ports.
9862
9863 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9864
9865         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9866         extra host object file when targetting cygwin rather than generic
9867         object files.
9868
9869 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9870
9871         Merge from tree-ssa:
9872         2003-11-20  Richard Henderson  <rth@redhat.com>
9873
9874                 * tree-inline.c (insert_decl_map): New.
9875                 (remap_decl, remap_type, remap_block, copy_body_r,
9876                 initialize_inlined_parameters, declare_return_variable,
9877                 remap_save_expr): Use it.
9878
9879         * function.c (copy_body_r): Add mapping from id->ret_label to
9880         id->ret_label.  Revert test for ret_label.
9881
9882 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9883
9884         * genoutput.c (process_template): Strip trailing whitespace in @
9885         templates and issue a warning if there was any.
9886
9887 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9888
9889         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9890         object file when targetting cygwin.
9891         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9892         overridden by top-level Makefile.
9893
9894 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9895
9896         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9897         the x87's load constant instructions when optimizing for size.
9898
9899 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9900
9901         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9902         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9903         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9904         * fold-const.c: Likewise.
9905         * simplify-rtx.c: Likewise.
9906
9907 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9908
9909         * combine.c (can_combine_p): Don't ignore SETs marked with
9910         REG_EH_REGION notes.
9911         (try_combine): When attemting to fix unrecognized insns, don't
9912         split a PARALLEL that contains the original i2.
9913
9914 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9915
9916         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9917         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9918         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9919         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9920         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9921         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9922         portion of header.
9923         (__altivec_link_error_invalid_argument): Remove prototype; will use
9924         __builtin_altivec_compiletime_error("vec_*") instead.
9925         (vec_*): Fix/complete set of available operation overloads given the
9926         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9927         cv-correctness of pointer arguments; in C, always check for correct
9928         argument types before macro expansion.
9929         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9930         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9931         '-W[no-]altivec-long-deprecated' switches.
9932         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9933         '__vector', '__pixel' and '__bool' macros using
9934         '__attribute__((altivec(...)))' types.
9935         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9936         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9937         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9938         New type nodes.
9939         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9940         handling '-W[no-]altivec-long-deprecated'.
9941         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9942         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9943         altivec_expand_dst_builtin): Remove casts from integer literals.
9944         (altivec_expand_builtin): Likewise; handle expansion of new
9945         '__builtin_altivec_compiletime_error' function.
9946         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9947         types, and make them distinct from other vector types; register
9948         '__builtin_altivec_compiletime_error' function.
9949         (print_operand): For 'P', print a full target register name instead of
9950         merely its number.
9951         (rs6000_attribute_table): Add "altivec" attribute.
9952         (rs6000_handle_altivec_attribute): New function.
9953         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9954         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9955         maps to).
9956         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9957         declare.
9958         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9959
9960 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9961
9962         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9963         check.
9964         (shift_mix4left+2): Delete redundant pattern.
9965
9966 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
9967
9968         * alias.c (OUTGOING_REGNO): Don't define the default.
9969         * builtins.c (OUTGOING_REGNO): Likewise.
9970         (INCOMING_REGNO): Likewise.
9971         (apply_args_register_offset): Always use OUTGOING_REGNO.
9972         * combine.c (OUTGOING_REGNO): Likewise.
9973         * sibcall.c (OUTGOING_REGNO): Likewise.
9974         * defaults.h (INCOMING_REGNO): Provide the default.
9975         (OUTGOING_REGNO): Likewise.
9976
9977 2004-02-21  Jan Hubicka  <jh@suse.cz>
9978
9979         * params.def (max-peeled-insns, max-completely-peeled-insns,
9980         max-once-peeled-insns): Set to 400.
9981
9982 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9983
9984         PR c++/12007
9985         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
9986         are set for parameters before outputing debugging information.
9987
9988 2004-02-20  Falk Hueffner  <falk@debian.org>
9989
9990         PR target/14201
9991         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
9992         numbers.
9993
9994 2004-02-20  Per Bothner  <per@bothner.com>
9995
9996         * input.h:  Don't #include line-map.h.  It may cause link problems
9997         with undefined linemap_line_start when line-map.h is included but
9998         line-map.o is not linked, as currently happens with gengtype on
9999         compilers that don't support inline.
10000         * toplev.c:  So we do have to explicitly #include line-map.h here.
10001
10002 2004-02-20  Richard Henderson  <rth@redhat.com>
10003
10004         * doc/invoke.texi: Add -Wvariadic-macros.
10005
10006 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10007
10008         * haifa-sched.c (sched_emit_insn): Remove.
10009         * sched-int.h: Remove the corresponding prototype.
10010
10011 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10012
10013         Revert:
10014         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10015         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10016         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10017         * config/cris/cris.h: Remove a comment about
10018         DEFAULT_SHORT_ENUMS.
10019         * config/ip2k/ip2k.h: Likewise.
10020         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10021
10022 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
10023             Tom Tromey  <tromey@redhat.com>
10024
10025         * doc/install.texi: Moved --disable-libgcj and
10026         --with-system-zlib documentation to new section for
10027         Java-specific options.
10028         Added explicit Cross-Compiler-Specific Options subheading.
10029         Added section for Java-specific options.
10030
10031 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
10032
10033         * doc/install.texi (Building the Ada compiler): Remove
10034         example.
10035
10036 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10037
10038         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
10039
10040 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10041
10042         * gcc.c (process_command): Allow translation of the copyright
10043         symbol but not the rest of the copyright message.
10044         * gcov.c (print_version): Likewise.  Allow translation of the
10045         message about warranty.
10046
10047 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
10048
10049         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
10050         predicate.
10051         ("*andsi_clear"): Tweak constraints to not match postincrement.
10052         Adjust the predicate to exclude a volatile memory reference.
10053         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
10054         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
10055
10056 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
10057
10058         * move-if-change: Remove.
10059         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
10060         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
10061         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
10062         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
10063         (s-gtyp-gen, s-iov): Use the top level move-if-change.
10064         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
10065
10066 2004-02-19  James E Wilson  <wilson@specifixinc.com>
10067
10068         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
10069         for operand2.  Add condition that requires register_operand operand2
10070         before reload.
10071
10072 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
10073             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10074
10075         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
10076         * config/mips/mips.md: Expand comment above unaligned loads and stores.
10077
10078 2004-02-19  Richard Henderson  <rth@redhat.com>
10079
10080         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
10081         * tree.c (build0, build1, build2, build3, build4): Split out from...
10082         (build): ... here.  Call them.
10083         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
10084
10085         * convert.c (convert_to_integer): Remove extra build argument.
10086         * tree-inline.c (expand_call_inline): Likewise.
10087
10088 2004-02-19  Richard Henderson  <rth@redhat.com>
10089
10090         * c-opts.c (warn_variadic_macros): New.
10091         (c_common_handle_option): Set it.
10092         (sanitize_cpp_opts): Copy it to cpp_opts.
10093         * c.opt (Wvariadic-macros): New.
10094         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
10095         * cppinit.c (cpp_create_reader): Initialize it.
10096         * cppmacro.c (parse_params): Check it.
10097
10098 2004-02-19  David Daney <ddaney@avtrex.com>
10099
10100         PR preprocessor/14198
10101         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
10102         builtin_assert ("machine=mips")
10103
10104 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10105
10106         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10107         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10108         * config/cris/cris.h: Remove a comment about
10109         DEFAULT_SHORT_ENUMS.
10110         * config/ip2k/ip2k.h: Likewise.
10111         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10112
10113 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10114
10115         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
10116         when passing single SFmode quantities in general registers,
10117         put them in the high half.
10118
10119 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10120
10121         * doc/md.texi (Standard Names): Document additional dependency on
10122         fix pattern.
10123
10124         * optabs.c (ftruncify): Remove.
10125         (expand_fix): Manually inline ftruncify above.
10126         (can_fix_p): Add FIXME note.
10127
10128 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10129
10130         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
10131         spe_fixuns_truncsfsi2.
10132
10133         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
10134         fixuns_truncsfsi2.
10135
10136 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
10137
10138         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10139         * testsuite/gcc.dg/20040219-1.c: New test.
10140
10141 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
10142
10143         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
10144         "*subsf3_cconly"): Subtraction is not commutative.
10145
10146 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10147
10148         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
10149         (sdbout_symbol): If called before sdbout_init, queue DECL for
10150         later and return.
10151         (sdbout_init): Set sdbout_initialized true, process decls
10152         queued earlier by sdbout_symbol.
10153         (sdbout_finish): Use size_t for index variable.
10154
10155 2004-02-19  Jeff Law  <law@redhat.com>
10156
10157         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
10158         for unordered comparison codes.
10159
10160 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
10161
10162         * reload1.c (reload): Correct comment.
10163         (scan_paradoxical_subregs): Remove #if 0 and old comment.
10164         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
10165         register variables are not used by reload.
10166
10167 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
10168
10169         PR target/14209
10170         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
10171         constraints to not match postincrement.  Adjust the predicate to
10172         exclude a volatile memory reference.
10173
10174 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10175
10176         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
10177
10178 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10179
10180         * hooks.c (hook_void_tree_int): Remove.
10181         (hook_void_constcharptr): Likewise.
10182         (hook_int_void_0): Likewise.
10183         * hooks.h: Remove the prototypes for the above three
10184         functions.
10185         * targhooks.c (hook_bool_machine_mode_true): Remove.
10186         * targhooks.h: Remove the prototype for
10187         hook_bool_machine_mode_true.
10188
10189 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10190
10191         * emit-rtl.c (subreg_realpart_p): Remove.
10192         (reorder_insns_with_line_notes): Likewise.
10193         (end_full_sequence): Likewise.
10194         * rtl.h: Remove the prototype for the above functions.
10195
10196 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10197
10198         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
10199         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10200         config/iq2000/iq2000.h, config/m32r/m32r.h,
10201         config/pdp11/pdp11.h, config/sparc/sparc.h,
10202         config/xtensa/xtensa.h: Remove commented-out or useless
10203         definitions of CASE_VECTOR_PC_RELATIVE.
10204
10205 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10206
10207         * loop.c (all_sets_invariant_p): Remove.
10208
10209 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10210
10211         PR target/12916
10212         * config/sparc/sparc.h (NPARM_REGS): Delete.
10213         (BASE_RETURN_VALUE_REG): Likewise.
10214         (BASE_OUTGOING_VALUE_REG): Likewise.
10215         (BASE_PASSING_ARG_REG): Likewise.
10216         (BASE_INCOMING_ARG_REG): Likewise.
10217         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
10218         TARGET_ARCH64, not TARGET_V9.
10219         (function_arg_slotno): Dispatch based on the mode class.
10220         Handle vector modes like floating-point modes.
10221         (function_arg_record_value_1): Handle vector types like
10222         floating-point types.
10223         (function_arg_record_value_2): Likewise.
10224         Calculate regno after mode transformation.
10225         (function_arg): Handle vector modes like floating-point modes.
10226         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
10227         If ARCH64, do not recheck alignment.
10228         (function_arg_pass_by_reference): Reorder the conditions.
10229         (sparc_return_in_memory): Move after function_arg_padding.
10230         Implement calling conventions for vector modes.
10231         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
10232         (function_value): Move scope of 'regbase'.
10233         Implement calling conventions for vector modes.
10234         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
10235         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
10236         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
10237         the argument is passed by reference.
10238         (sparc_type_code): Handle vector types.
10239
10240 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
10241
10242         * function.c (assign_parms): When building decl_rtl for
10243         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
10244
10245 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
10246
10247         * expr.c (is_aligning_offset): Check if we are aligning the
10248         expressions's address over BIGGEST_ALIGNMENT in bytes, not
10249         in bits.
10250
10251 2003-02-18  Matt Austern  <austern@apple.com>
10252
10253         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
10254         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
10255         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
10256         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
10257         spec string.
10258         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
10259
10260 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
10261
10262         * dwarf2out.c (loclabel_num): Move outside #ifdef
10263         DWARF2_DEBUGGING_INFO and mark with GTY(()).
10264         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
10265         Mark with GTY(()).
10266         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
10267         Allocate memory with ggc_alloc.  No need to copy anything.
10268         (ia64_hpux_file_end): Update to match.
10269
10270 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10271
10272         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
10273         by default.
10274
10275 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10276
10277         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
10278         ("divmodtisi3"): Likewise.
10279         ("udivmoddi4", "udivmodtidi3"): Likewise.
10280         ("divmodsi4", "divmoddisi3"): Likewise.
10281         ("udivmodsi4", "udivmoddisi3"): Likewise.
10282         ("udivsi3", "umodsi3"): Likewise.
10283
10284 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10285
10286         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
10287         placeholder insn when chunkifying the pool.
10288
10289 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10290
10291         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
10292         generating PIC code.
10293
10294 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10295
10296         * config/h8300/h8300-protos.h: Add a prototype for
10297         h8300_expand_branch.
10298         * config/h8300/h8300.c (h8300_expand_branch): New.
10299         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
10300         bgtu, beq, bne): Call h8300_expand_branch().
10301
10302 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10303
10304         * config/h8300/h8300-protos.h: Add prototypes for
10305         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
10306         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
10307         (h8300_hard_regno_mode_ok): Likewise.
10308         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
10309         h8300_hard_regno_nregs().
10310         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
10311
10312 2004-02-18  Per Bothner  <per@bothner.com>
10313
10314         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
10315         partly reverts my 2003-10-01 change, because we're back to logically
10316         including <command line> inside the main line.
10317         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
10318         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
10319         Fixes PR preprocessor/14103.
10320
10321         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
10322         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
10323         (cpp_push_include):  Don't need to increment pfile's line field.
10324         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
10325
10326         * c-ppoutput.c (print struct):  New first_time field.
10327         (init_pp_output):  Set print.first_time.
10328         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
10329         which is set also for (say) <command line>.  Clear print.first_time.
10330
10331         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10332         does not match the code, so fix both.
10333         (should_stack_file):  Inline include_pch_p function.
10334         (include_pch_p):  Remove pointless function.
10335
10336         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10337
10338 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10339
10340         * config/h8300/h8300.md (four define_peephole2's): Use
10341         h8300_regs_ok_for_stm().
10342
10343 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10344
10345         * config/h8300/h8300-protos.h: Update the prototype for
10346         expand_a_rotate().
10347         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10348         argument.
10349         * config/h8300/h8300.md: Update all callers.
10350
10351 2004-02-18  Jan Hubicka  <jh@suse.cz>
10352
10353         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10354         floats.
10355         (simplify_binary_operation): Deal with logicals on floats.
10356
10357         * i386.md (SSE fabs splitters): Emit new patterns.
10358         (SSE cmov splitters): Likewise.
10359         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10360         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10361         subregs.
10362         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10363         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10364
10365 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10366
10367         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10368         by hand.
10369         (output_a_rotate): Tweak a comment.
10370         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10371         (*rotlhi3_1): Change to rotlhi3_1.
10372         (*rotlsi3_1): Change to rotlsi3_1.
10373
10374 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10375
10376         PR target/13866
10377         * arm.c (load_multiple_operation): Don't insist that the source reg
10378         of a post-increment component is the same as the destination.
10379         (store_multiple_operation): Likewise.
10380
10381 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10382
10383         * config/h8300/h8300.md: Move movsf patterns into one section
10384         of the file.
10385
10386 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10387
10388         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10389         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10390         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10391         config/mips/linux64.h, config/pa/pa-64.h,
10392         config/rs6000/aix51.h, config/rs6000/aix52.h,
10393         config/rs6000/spe.md, config/sparc/linux.h,
10394         config/sparc/linux64.h: Update copyright.
10395
10396 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10397
10398         * config/h8300/h8300.md: Move push patterns into one
10399         section of the file.
10400
10401 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10402
10403         PR c++/11326
10404         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10405         fntype.
10406
10407 2004-02-18  Paul Brook  <paul@codesourcery.com>
10408
10409         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10410
10411 2004-02-18  Paul Brook  <paul@codesourcery.com>
10412
10413         PR debug/12934
10414         * dwarf2out.c (loc_descriptor_from_tree): Handle
10415         EXPR_WITH_FILE_LOCATION.
10416
10417 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10418
10419         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10420         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10421         trailing whitespace from instructions.
10422
10423 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10424
10425         * configure.ac: When generating auto-build.h, pass
10426         --enable-languages to the sub-configure.
10427         Put quotes around ${program_transform_name} when generating
10428         name of as, ld, nm, objdump.
10429         * configure: Regenerate.
10430
10431 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10432
10433         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10434         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10435         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10436         (s-preds, s-iov): Do not depend on move-if-change.
10437
10438 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10439
10440         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10441         (insert_save): Likewise.
10442
10443 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10444
10445         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10446         warning.
10447
10448 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10449
10450         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10451         *one_cmplsi2_h8300.
10452         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10453
10454 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10455
10456         * config/h8300/h8300-protos.h: Update the prototype of
10457         fix_bit_operand().
10458         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10459         argument "what".
10460         * config/h8300/h8300.md: Update all callers.
10461
10462 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10463
10464         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10465         the last argument to "code" from "type".
10466
10467 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10468
10469         * config/h8300/h8300.c: Remove an extern declaration of
10470         rtx_equal_function_value_matters.
10471
10472 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10473
10474         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10475         by hand.
10476         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10477         (*iorqi3_1): Change to iorqi3_1.
10478         (*xorqi3_1): Change to xorqi3_1.
10479
10480 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10481
10482         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10483         typos.
10484
10485 2004-02-17  Jan Hubicka  <jh@suse.cz>
10486
10487         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10488
10489 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10490
10491         PR optimization/14119
10492         * combine.c (try_combine): When attemting to fix unrecognized insns,
10493         don't delete SETs marked with REG_EH_REGION notes.
10494
10495 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10496
10497         * combine.c (simplify_if_then_else): Do not replace
10498         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10499         modes differ.
10500
10501 2004-02017  Steven Bosscher  <stevenb@suse.de>
10502
10503         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10504         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10505         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10506         * ada/utils.c: Likewise.
10507         * cp/decl.c: Likewise.
10508         * f/com.c: Likewise.
10509         * java/class.c: Likewise.
10510
10511 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10512
10513         * config/h8300/h8300.md: Fix comment typos.
10514
10515 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10516
10517         * config/mips/t-iris6gld: Renamed to ...
10518         * config/mips/t-irix-gld: ... this.
10519         * config.gcc (mips-sgi-irix6*): Reflect this
10520         (mips-sgi-irix5*): Use it with GNU ld.
10521
10522         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10523         to ...
10524         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10525         * config/mips/t-irix-gld: Reflect this.
10526         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10527
10528         * config/mips/iris5gld.h: New file.
10529         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10530         Only use collect2 without gas.
10531
10532         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10533         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10534         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10535         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10536
10537         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10538         * config/mips/iris5.h: ... here.
10539
10540         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10541         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10542         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10543
10544         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10545         using irix_startfile_spec, irix_endfile_spec.
10546
10547 2004-02-16  Gunther Nikl  <gni@gecko.de>
10548
10549         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10550
10551 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10552
10553         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10554         insns by hand.
10555
10556 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10557
10558         * cfghooks.c (split_edge): Speed up updating of dominators.
10559
10560 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10561
10562         PR c++/11326
10563         * c-common.c (flag_abi_version): Remove.
10564         * c-common.h (flag_abi_version): Likewise.
10565         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10566         * c.opt (fabi-version): Remove.
10567         * calls.c (expand_call): Always pass a function type to
10568         struct_value_rtx.  Use convert_memory_address.
10569         * common.opt (fabi-version): Add it.
10570         * flags.h (flag_abi_version): Likewise.
10571         (abi_version_at_least): New macro.
10572         * opts.c (common_handle_option): Add OPT_fabi_version.
10573         * toplev.c (flag_abi_version): Define it.
10574         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10575         New function.
10576         (ia64_output_mi_thunk): Use it.
10577         (ia64_struct_value_rtx): Likewise.
10578
10579 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10580
10581         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10582         Don't generate insns by hand.
10583
10584 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10585
10586         PR c++/14178
10587         * doc/invoke.texi (fabi-version): The default is 2 now.
10588
10589 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10590
10591         * loop-iv.c: New file.
10592         * Makefile.in (loop-iv.o): New.
10593         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10594         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10595         num_loop_branches): New functions.
10596         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10597         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10598         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10599         get_simple_loop_desc, free_simple_loop_desc): Declare.
10600         (simple_loop_desc): New inline function.
10601         (struct rtx_iv, struct niter_desc): New.
10602         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10603         * expr.c (force_operand): Handle subregs of expressions created by
10604         loop unroller.
10605         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10606         parts of the initialization to toplev.c
10607         * loop-unroll.c (loop_exit_at_end_p): New.
10608         (unroll_and_peel_loops): Call iv_analysis_done.
10609         (decide_peel_once_rolling, decide_peel_completely,
10610         decide_unroll_stupid, decide_unroll_constant_iterations,
10611         decide_unroll_runtime_iterations, decide_peel_simple,
10612         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10613         unroll_loop_runtime_iterations): Use new simple loop analysis.
10614         * loop-unswitch.c (compare_and_jump_seq): New.
10615         (may_unswitch_on_p): Renamed to ...
10616         (may_unswitch_on): Use new iv analysis.
10617         (reversed_condition): Export.
10618         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10619         * predict.c (estimate_probability): Use new simple loop analysis.
10620         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10621         canon_condition, simplify_using_condition): Declare.
10622         * stor-layout.c (get_mode_bounds): New.
10623         * toplev.c (rest_of_handle_loop2): Some parts of
10624         initialization/finalization moved here from loop-init.c.
10625
10626 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10627
10628         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10629         pointer.
10630         (CALL_USED_REGISTERS): Likewise.
10631         (REG_ALLOC_ORDER): Likewise.
10632         (REG_CLASS) <GENERAL_REGS>: Likewise.
10633
10634 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10635
10636         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10637         in associative operators.
10638         * rtlanal.c (commutative_operand_precedence): Create some new
10639         variables.  Prefer a commutative operand on the left, then
10640         binary expressions, then NEG and NOT.
10641
10642 2004-02-16  Matthias Klose  <doko@debian.org>
10643
10644         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10645         in terms of SHLIB_SOVERSION.
10646         * config/m68k/t-slibgcc-elf-ver: New file.
10647         * config/pa/t-slibgcc-elf-ver: New file.
10648         * config.gcc (m68k-linux, parisc-linux): Use them when not
10649         sjlj exceptions are not configured.
10650
10651 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10652
10653         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10654
10655 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10656
10657         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10658
10659 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10660
10661         * doc/sourcebuild.texi: Mention backends.html.
10662
10663 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10664
10665         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10666         line-map.c, line-map.h, var-tracking.c: Fix comment
10667         formatting.
10668
10669 2004-02-16  Richard Henderson  <rth@redhat.com>
10670
10671         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10672
10673         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10674
10675 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10676
10677         * config/h8300/h8300.md: Remove unnecessary parallels from
10678         all define_insn and define_split patterns.
10679
10680 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10681
10682         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10683         "clobber").
10684
10685 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10686
10687         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10688         '%#'.
10689
10690 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10691
10692         * config/ia64/ia64.c, config/mips/mips.c,
10693         config/mmix/mmix-modes.def: Fix comment typos.
10694
10695 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10696
10697         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10698         (get_directive_line): Remove unused function prototype.
10699
10700 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10701
10702         * tree-inline.c (copy_body_r): Do not replace ret_label.
10703
10704 2004-02-14  Jan Hubicka  <jh@suse.cz>
10705
10706         * i386.c (x86_four_jump_limit): New variable.
10707         (k8_avoid_jump_misspredicts): Rename to ...
10708         (ix86_avoid_jump_misspredicts): .. this one.
10709         (ix86_pad_returns): Break out from ...
10710         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10711         to.
10712         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10713
10714 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10715
10716         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10717         PARALLEL is NULL.
10718
10719 2004-02-14  Per Bothner  <per@bothner.com>
10720
10721         * fix-header.c (line_table):  Move local variable in main to global.
10722         * scan.h (line_table):  Use it.
10723         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10724         line (recently renamed to src_loc) before calling recognized_function.
10725
10726 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10727
10728         * Makefile.in: Fix comment typos.
10729
10730 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10731
10732         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10733         for start_value when it is directly moved into reg, and factorize
10734         the retrieval of GET_MODE (reg).
10735
10736 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10737
10738         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10739         (mips_load_got_global): Delete.
10740         (mips_gotoff_page): Declare.
10741         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10742         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10743         UNSPEC_LOAD_GOT pattern rather than a MEM.
10744         (*load_got[sd]i): New patterns.
10745         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10746         (mips_load_got_page, mips_load_got_global): Delete.
10747         (mips_gotoff_page): New function.
10748         (override_options): Don't initialize mips_got_alias_set.
10749
10750 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10751
10752         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10753         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10754         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10755         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10756         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10757         * config/mips/mips.c: Fix some overly-long lines.
10758         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10759         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10760
10761 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10762
10763         * configure.ac: Search for as, ld below libexec/gcc.
10764         * configure: Regenerate.
10765
10766 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10767
10768         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10769         __builtin_arm_setwcx ().
10770         * config/arm/arm.c (arm_expand_builtin): Generate operands
10771         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10772
10773 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10774
10775         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10776         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10777         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10778         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10779         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10780         (_mm_mulhi_pu16): Likewise.
10781
10782 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10783
10784         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10785         DECL_NAME != 0 before dereferencing.
10786
10787 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10788
10789         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10790         (s390_output_addr_const_extra): Declare.
10791         (s390_output_pool_entry): Remove FILE * argument.
10792         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10793         (s390_output_addr_const_extra): New function.
10794         (print_operand_address): Call output_addr_const instead of
10795         s390_output_symbolic_const.
10796         (print_operand): Likewise.
10797         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10798         Remove FILE * argument.
10799         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10800         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10801         call.
10802
10803 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10804
10805         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10806         (struct edge, struct vertex, struct graph): New.
10807         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10808         free_graph): New functions.
10809
10810 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10811
10812         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10813         Use ".set macro" to avoid warnings about multi-instruction
10814         macros, since they're intentional.
10815
10816 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10817
10818         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10819         comment about STANDARD_EXEC_PREFIX.
10820
10821         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10822         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10823         for installing .1 manpages.  Add rules for installing cpp
10824         and gcov manpages under their installed names.
10825
10826 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10827
10828         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10829         host, but try LD_FOR_TARGET first.
10830         * configure: Rebuilt.
10831
10832 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10833
10834         * dbxout.c: Move declaration of dbxout_type_decl outside
10835         #ifdef DBX_DEBUGGING_INFO.
10836         * c-parse.in: Don't give the asmdef production a type.
10837
10838 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10839
10840         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10841         (debug_nothing_tree_int): Prototype.
10842         (dwarf_debug_hooks): Delete, unused.
10843         * debug.c (do_nothing_debug_hooks): Update.
10844         (debug_nothing_tree_int): New function.
10845         * langhooks.h (struct lang_hooks_for_decls):
10846         Remove builtin_type_decls field.
10847         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10848         (LANG_HOOKS_DECLS): Update.
10849         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10850         Use debug_hooks->type_decl.
10851         * dbxout.c (preinit_symbols): New static.
10852         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10853         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10854         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10855         for symbols to output.
10856         (dbxout_type_decl): New function.
10857         (dbxout_symbol): If called before dbxout_init has run, queue
10858         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10859         to TYPE_DECLs before emitting them.
10860         * xcoffout.c (assign_type_number): Delete.
10861         (xcoff_type_numbers): New static table.
10862         (xcoff_assign_fundamental_type_number): New function.
10863         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10864         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10865         * sdbout.c: Include varray.h.
10866         (deferred_global_decls): New static.
10867         (sdb_debug_hooks): Update.
10868         (sdbout_global_decl): If we can't emit something right now,
10869         remember it in deferred_global_decls.
10870         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10871         (sdbout_init): Initialize deferred_global_decls.
10872         * Makefile.in: Update dependencies of sdbout.o.
10873         * dwarf2out.c (dwarf2out_type_decl): New function.
10874         (dwarf2_debug_hooks): Update.
10875         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10876         * c-decl.c (getdecls): Just return 0.
10877         (check_for_loop_decls): Don't use getdecls.
10878         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10879         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10880
10881 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10882
10883         * config/s390/s390.c (s390_sched_reorder2): Remove.
10884         (TARGET_SCHED_REORDER2): Do not redefine.
10885
10886 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10887
10888         * c-parse.in (maybe_type_qual): Delete.
10889         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10890         (asm_argument): New grammar rules.
10891         (extdef_1): Use asmdef.
10892         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10893         (xexpr): Move up with other expression rules.
10894         (stmt): Use asm_stmt.
10895
10896         * c-typeck.c (build_asm_expr): New function - body mostly
10897         pulled from build_asm_stmt.
10898         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10899         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10900
10901 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10902
10903         PR bootstrap/13617
10904         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10905         (mips_declare_object): Make variadic.
10906         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10907         mips_output_aligned_decl_common.
10908         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10909         (mips_declare_object): Make variadic.
10910
10911 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10912
10913         * function.c (update_epilogue_consts): Teach about binary operations.
10914
10915         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10916         previous MEM_VOLATILE in REF.
10917         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10918         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10919
10920 2004-02-12  Gunther Nikl  <gni@gecko.de>
10921
10922         * config.gcc: Restore support for m68k-openbsd.
10923
10924 2004-02-12  Jan Hubicka  <jh@suse.cz>
10925
10926         * tree-optimize.c (tree_rest_of_compilation): Do not release
10927         DECL_ARGUMENTS.
10928
10929 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10930
10931         * doc/install.texi: Fix the spelling of "explicitly".
10932
10933 2004-02-11  Eric Christopher  <echristo@redhat.com>
10934
10935         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10936         duplicate argument structure of cpp_interpret_string.
10937         * cpphash.h: Move prototype...
10938         * cpplib.h: Here.
10939         * cpplib.c: Fix calls to match new function signature.
10940
10941 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10942
10943         PR c/456
10944         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10945         constant expressions at all outside C99 mode if pedantic.
10946
10947 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10948
10949         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10950         (log10_optab, log2_optab): Define corresponding macros.
10951         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10952         * genopinit.c (optabs): Implement log10_optab and log2_optab
10953         using log10?f2 and log2?f2 patterns.
10954         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10955         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10956         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10957         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10958
10959         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10960         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10961         log2, log2f and log2l built-ins as inline x87 intrinsics.
10962
10963 2004-02-11  Richard Henderson  <rth@redhat.com>
10964
10965         PR target/1532
10966         * flow.c (insn_dead_p): A clobber of a dead hard register is a
10967         dead insn after reload.
10968
10969 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
10970
10971         * tree.h (frame_base_decl): Add GTY marker.
10972         * var-tracking.c (frame_base_decl): Likewise.
10973
10974 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
10975
10976         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
10977         incorrect, hunk.
10978         (add_location_or_const_value_attribute): Use text_section_label,
10979         not TEXT_SECTION_NAME.
10980
10981 2004-02-11  Per Bothner  <per@bothner.com>
10982
10983         Represent column numbers using line-map's source_location.
10984         The "next available source_location" is now managed internally by
10985         line-maps.c rather than by clients.
10986         * line-map.h (struct line_map):  New field column_bits.
10987         <from_line>:  Rename field to start_location.
10988         (struct line_maps):  New fields highest_location and max_column_hint.
10989         (linemap_check_files_exited):  New declaration.
10990         (linemap_line_start):  New declaration.
10991         (linemap_add):  Remove from_line parameter; use highest_location field.
10992         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
10993         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
10994         (CURRENT_LINE_MAP):  Remove macro.
10995         (linemap_position_for_column):  New inline function.
10996         * line-map.c (linemap_init):  Clear new fields.
10997         (linemap_check_files_exited):  New function, extracted from ...
10998         (linemap_free):  Use linemap_check_files_exited.
10999         (linemap_add):  Remove from_line parameter.  Various updates.
11000         (linemap_line_start):  New function.
11001         (linemap_lookeup):  Update for new field names.
11002         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
11003         linemap_position_for_column may unpredictably change the current map,
11004         it is cleaner and simpler for us to not cache it in cpp_reader.
11005         (struct cpp_buffer):  New sysp field.
11006         Changed warned_cplusplus_comments and from_stage3 to bitfields.
11007         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
11008         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
11009         current map using linemap_lookup.
11010         (do_linemarker):  Also set buffer's sysp field.
11011         (destringize_and_run):  No longer need to decrement current line.
11012         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
11013         (search_path_head, open_file_failed):  Use buffer's sysp.
11014         (cpp_make_system_header):  Get current map using linemap_lookup.
11015         Also set buffer's sysp flag.
11016         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
11017         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
11018         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
11019         (struct cpp_reader):  ... and adding saved_line_base field.
11020         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
11021         Update accordingly.  Don't adjust line.
11022         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
11023         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
11024         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
11025         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
11026         * cpplex.c (_cpp_lex_direct):  Likewise.
11027         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
11028         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
11029         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
11030         Remove col field as it is now subsumed by src_loc.
11031         * cpperror.c:  Update various field, parameter, and macro names.
11032         (print_location):  If col==0, try SOURCE_COLUMN of line.
11033         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
11034         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
11035         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
11036         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
11037         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
11038         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
11039         (_cpp_lex_direct):  Use linemap_position_for_column.
11040         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
11041         parameter.  Instead get it from the line_table global.  Adjust callers.
11042         (print):  Remove map field.  Replace line field to src_line.
11043         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
11044         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
11045         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
11046         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
11047         * cpptrad.c (copy_comment):  Rename variable.
11048         * c-lex.c (map):  Remove static variable, for same reason we removed
11049         cpp_reader's map field.
11050         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
11051         to call linemap_lookup.
11052         (cb_line_change):  Token's line field replaced by src_loc.
11053         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
11054         Don't save new_map.
11055
11056         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
11057         source_location.
11058
11059 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11060
11061         * config/rs6000/altivec.md (*movv4si_internal): At least one
11062         operand must be register_operand.
11063         (*movv8hi_internal1): Likewise.
11064         (*movv16qi_internal1): Likewise.
11065         (*movv4sf_internal1): Likewise.
11066
11067 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
11068
11069         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
11070         operand.
11071         (movv4hi_internal): Same.
11072         (movv2sf_internal): Same.
11073         (movv1di_internal): Same.
11074
11075 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
11076
11077         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
11078         TARGET_OLDABI consistently.
11079         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
11080         mips_va_arg,override_options,compute_frame_size,
11081         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
11082         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
11083         and TARGET_OLDABI consistently.
11084         * config/mips/mips.md (exception_receiver): Likewise.
11085         * config/mips/linux64.h: Likewise.
11086
11087 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11088
11089         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
11090         Set AltiVec ABI and vrsave as default for ppc64 linux.
11091         (init_cumulative_args): Post error, if try to return
11092         value in AltiVec register without enable AltiVec.
11093         (function_arg_advance): Ditto for passing arguments.
11094
11095 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
11096
11097         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
11098         a label before updating its usage count.
11099
11100 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
11101
11102         * doc/install.texi: Remove extra cd.
11103
11104 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
11105
11106         * c-common.c (vector_size_helper): Remove; call
11107         reconstruct_complex_type() instead.
11108         * tree.c (reconstruct_complex_type): New function
11109         (formerly vector_size_helper() in c-common.c).
11110         (make_vector): Make externally visible.
11111         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
11112
11113 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11114
11115         * config/h8300/h8300-protos.h: Add a prototype for
11116         h8300_regs_ok_for_stm.
11117         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
11118         * config/h8300/h8300.md (stm_h8300s_2_advanced,
11119         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
11120         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
11121         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
11122         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
11123         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
11124         ldm_h8300s_4_normal, ldm_h8300s_4): Use
11125         h8300_regs_ok_for_stm().
11126
11127 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11128
11129         PR c/14088
11130         * real.c (real_from_string): Look for 'X' as well as 'x' in
11131         hexfloat strings.
11132
11133 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11134
11135         * config/h8300/h8300.md: Remove an incorrect comment about
11136         peephole2.  Add comments.
11137
11138 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
11139
11140         PR/14058
11141         * emit-rtl.c (set_decl_incoming_rtl): New.
11142         * tree.h (set_decl_incoming_rtl): New.
11143         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
11144         DECL_INCOMING_RTL.
11145         * ada/misc.c (adjust_decl_rtl): Likewise.
11146
11147 2004-02-10  Per Bothner  <per@bothner.com>
11148
11149         * c-opts.c (c_common_post_options):   Don't emit working directory
11150         in cpp output if -P was specified.
11151
11152 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11153
11154         PR c/14092
11155         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
11156         negate_expr back to the original type.
11157
11158 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
11159
11160         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
11161         bump retaddr here.
11162
11163 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11164
11165         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
11166         gen_lowpart_SUBREG): Move under the file in which they
11167         are actually declared.
11168
11169 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
11170
11171         * doc/sourcebuild.texi: Add libada documentation.
11172
11173         * doc/install.texi: Update documentation on Ada build, now
11174         that the GNAT lib and tools are built automatically.
11175
11176 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
11177
11178         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
11179         && TARGET_IRIX.
11180
11181 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
11182
11183         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
11184         boundaries outside build_component_ref() call (a macro in ObjC++).
11185
11186 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
11187
11188         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
11189         (init_cumulative_args): Likewise.
11190         (a7_overlap_mentioned_p): Delete prototype.
11191         * config/xtensa/xtensa.c (struct machine_function): Replace
11192         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
11193         Add set_frame_ptr_insn field.
11194         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
11195         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
11196         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
11197         at the function entry and replace the operand with the pseudo.
11198         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
11199         argument and record this flag in CUMULATIVE_ARGS.
11200         (function_arg): Remove result_mode and special-case code to handle
11201         arguments in a7.  Instead, set need_a7_copy flag when there is an
11202         incoming argument in a7.
11203         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
11204         and use the value recorded in cfun->machine->set_frame_ptr_insn.
11205         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
11206         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
11207         special-case code.
11208         (a7_overlap_mentioned_p): Delete.
11209         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
11210         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
11211         arguments to init_cumulative_args and pass "incoming" flag instead.
11212         (BLOCK_REG_PADDING): Delete.
11213         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
11214         checks for reload_in_progress and reload_completed.  Update calls to
11215         xtensa_copy_incoming_a7.
11216         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
11217         to call xtensa_copy_incoming_a7.
11218
11219 2004-02-09  DJ Delorie  <dj@redhat.com>
11220
11221         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
11222         longer modify standard_exec_prefix, standard_bindir_prefix, or
11223         standard_startfile_prefix.
11224
11225 2004-02-09  James E Wilson  <wilson@specifixinc.com>
11226
11227         PR c++/11295
11228         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
11229         to expand_expr_real call, and pass in alt_rtl as last argument.
11230
11231         PR libstdc++/5625
11232         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
11233         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
11234         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
11235         * except.c (expand_builtin_extend_pointer): New.
11236         * except.h (expand_builtin_extend_pointer): Declare.
11237
11238 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
11239
11240         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
11241         unaligned loads and stores.
11242
11243 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11244
11245         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
11246         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
11247
11248         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
11249         * config/mips/iris5.h: ... here.
11250         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
11251
11252         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
11253         * config/mips/iris5.h: ... here.
11254
11255 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11256
11257         * configure.ac: Remove default executable files before AC_PROG_CC.
11258         * configure: Regenerate.
11259
11260 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
11261
11262         PR target/13721
11263         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
11264         print a operand other than a register.
11265
11266 2004-02-09  Roger Sayle  <roger@eyesopen.com>
11267
11268         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
11269         tree code rather than call fold_convert, which doesn't specify a
11270         default floating point to integer conversion.
11271
11272 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
11273
11274         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
11275         code to support SGS assembler.  Reformat adjacent code where possible.
11276         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
11277         definition.
11278         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
11279         for '%#'.
11280         * config/m68k/linux.h, config/m68k/m68k.c,
11281         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
11282         macros and asm_printf() format strings.
11283         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
11284         * config/m68k/linux.h: Update copyright.
11285         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
11286
11287 2004-02-08  Andreas Schwab  <schwab@suse.de>
11288             Bernardo Innocenti  <bernie@develer.com>
11289
11290         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
11291         REGISTER_PREFIX.
11292         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
11293         frame pointer register, overridable by OS targets.
11294         * (M68K_REGNAME): Macro to obtain register name for asm output,
11295         eventually replacing %a6 with M68K_FP_REG_NAME.
11296         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
11297         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
11298         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
11299         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
11300         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
11301
11302 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11303
11304         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
11305         hook_rtx_tree_int_null.
11306         * targhooks.c (default_struct_value_rtx): Remove.
11307         * targhooks.h: Remove the prototype for
11308         default_struct_value_rtx.
11309         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11310         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
11311         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11312         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
11313         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
11314         config/rs6000/rs6000.c, config/s390/s390.c,
11315         config/stormy16/stormy16.c, config/v850/v850.c,
11316         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
11317         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
11318
11319 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11320
11321         * README.Portability: Change "ISO C89" to "ISO C90".
11322         * c-parse.in (primary, initelt): Likewise.
11323
11324 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
11325
11326         * real.c (encode_ibm_extended): Normalize the input value before
11327         converting it to a double.  Handle the case where a normal value
11328         rounds to infinity.
11329
11330 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11331
11332         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11333         warning.
11334         * cse.c (preferrable): Change to preferable. Update all of its
11335         callers.
11336         * genautomata.c (ainsn): Change
11337         first_ainsn_with_given_equialence_num to
11338         first_ainsn_with_given_equivalence_num.  Update all of its
11339         references.
11340
11341 2004-02-08  Jan Hubicka  <jh@suse.cz>
11342
11343         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11344
11345 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11346
11347         * function.c (assign_parms): Fix formatting.
11348
11349 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11350
11351         * default.h (PROMOTE_PROTOTYPES): Remove.
11352         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11353         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11354         EXPAND_BUILTIN_SAVEREGS): Poison.
11355         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11356         hook_bool_tree_false.
11357         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11358         * target.h: Replace SETUP_INCOMING_VARARGS with
11359         targetm.calls.setup_incoming_varargs().
11360         * targhooks.c (default_promote_function_return): Remove.
11361         (default_promote_prototypes): Likewise.
11362         (default_struct_value_rtx): Always abort().
11363         (default_expand_builtin_saveregs): Always print an error
11364         message.
11365         (default_setup_incoming_varargs): Do nothing.
11366         (default_pretend_outgoing_varargs_named): Don't depend on
11367         SETUP_INCOMING_VARARGS.
11368         * targhooks.h: Remove the prototype for
11369         default_promote_function_return and
11370         default_promote_prototypes.
11371
11372 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11373
11374         * system.h (SHARED_SECTION_ASM_OP): Poison.
11375         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11376         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11377
11378 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11379
11380         Bug 13856
11381         * c-decl.c (diagnose_mismatched_decls): Only give special
11382         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11383         is also true.
11384         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11385         DECL_FUNCTION_CODE when defining a built-in function.
11386         Don't update DECL_ESTIMATED_INSNS.
11387         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11388         FUNCTION_DECLs.
11389         * tree.h: Delete DECL_ESTIMATED_INSNS.
11390         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11391         (expand_call_inline, optimize_inline_calls): Don't update
11392         DECL_ESTIMATED_INSNS nor inlined_insns.
11393         * cgraphunit.c (cgraph_analyze_function): Don't update
11394         DECL_ESTIMATED_INSNS.
11395
11396 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11397
11398         * c-common.c (shadow_warning): Delete.
11399         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11400         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11401         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11402         * c-parse.in (free_parser_stacks): Delete.
11403
11404 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11405
11406         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11407         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11408         Use the top level mkinstalldirs, not the one in the gcc subdir.
11409         * mkinstalldirs: Remove (from the gcc subdir).
11410
11411 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11412
11413         PR middle-end/13696
11414         * fold-const.c (fold_convert): New function to provide type
11415         conversion to the middle-end without using convert.
11416         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11417         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11418         invert_truthvalue, optimize_bit_field_compare, range_binop,
11419         decode_field_reference, make_range, build_range_check, unextend,
11420         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11421         fold_binary_op_with_conditional_arg, fold_inf_compare,
11422         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11423         convert with calls to fold_convert.
11424
11425 2004-02-07  Jan Hubicka  <jh@suse.cz>
11426
11427         * genrecog.c (find_operand): add extra argument stop.
11428         (validate_pattern): Verify that mach_dup is duplicating operand
11429         defined lexically earlier.
11430
11431 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11432
11433         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11434         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11435         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11436         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11437         config/ia64/ia64.h, config/ip2k/ip2k.h,
11438         config/iq2000/iq2000.h, config/mips/iris5.h,
11439         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11440         config/rs6000/aix51.h, config/rs6000/aix52.h,
11441         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11442         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11443         config/sparc/linux.h, config/sparc/linux64.h,
11444         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11445         config/xtensa/xtensa.h: Remove the definitions of
11446         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11447         MAX_WCHAR_TYPE_SIZE.
11448         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11449         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11450
11451 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11452
11453         PR bootstrap/13990
11454         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11455         gen_rtx_NE.
11456
11457 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11458
11459         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11460         #ifdef ENABLE_CHECKING and #endif.
11461
11462 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11463
11464         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11465         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11466         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11467         integer types and floating point with unsafe_math_optimizations.
11468         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11469         Optimize A - B as A + (-B), if B is easily negated.
11470
11471 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11472
11473         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11474         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11475         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11476         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11477         Update copyright.
11478
11479 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11480
11481         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11482
11483 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11484
11485         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11486         glibc 2.3 or better.
11487
11488 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11489
11490         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11491         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11492
11493 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11494
11495         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11496         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11497         (SHLIB_MKMAP_OPTS): Delete.
11498         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11499         (bispecs): Add rule.
11500         * config/rs6000/libgcc-ppc64.ver: New file.
11501         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11502         (__floatdidf, __floatdisf): Optimize multiply.
11503         (__fixunstfdi): New function.
11504         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11505         real and imag parts larger than one register.
11506         (function_arg): Correct type of reg used when fp arg split partially
11507         to stack.
11508         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11509         and __MACH__ or __powerpc64__.
11510
11511 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11512             Ulrich Weigand  <uweigand@de.ibm.com>
11513
11514         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11515         of gen_highpart or gen_lowpart when the floating point format is
11516         wider than the result mode.
11517
11518 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11519
11520         * dwarf2out.c (loclabel_num): Move into #ifdef
11521         DWARF2_DEBUGGING_INFO.
11522
11523 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11524
11525         * objc/objc-act.c (build_super_template) the 'class' field of
11526         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11527         (get_super_receiver): Likewise.
11528
11529 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11530
11531         * reload1.c (check_eliminable_occurrences): Optimize the reset
11532         of can_eliminate.
11533         (eliminate_regs_in_insn): Likewise.
11534
11535 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11536             Josef Zlomek  <zlomekj@suse.cz>
11537
11538         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11539         at the beginning of function, call dwarf2out_var_location for
11540         NOTE_INSN_VAR_LOCATION note.
11541         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11542         decl_loc_table): New.
11543         (lookup_decl_loc): New function.
11544         (add_var_loc_to_decl): New function.
11545         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11546         only if can_use_fbreg.
11547         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11548         functions.
11549         (loc_descriptor): Likewise. Process VAR_LOCATION.
11550         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11551         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11552         can_use_fbreg == true.
11553         (add_location_or_const_value_attribute): Added parameter enum
11554         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11555         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11556         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11557         with attr == DW_AT_location.
11558         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11559         if frame_base_decl is defined and has a location list.
11560         (gen_variable_die): Call add_location_or_const_value_attribute with
11561         attr == DW_AT_location.
11562         (dwarf2out_var_location): New function.
11563         (dwarf2out_begin_function): New function.
11564         (dwarf2out_init): Create decl_loc_table.
11565
11566 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11567
11568         * loop.c (force_movables): Transitively increase the priorities of
11569         all insns forces by an insn, not just the first one.
11570
11571 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11572             Daniel Berlin <dberlin@dberlin.org>
11573
11574         Josef Zlomek  <zlomekj@suse.cz>
11575         * Makefile.in (var-tracking.o): New.
11576         * common.opt (fvar-tracking): New.
11577         * flags.h (flag_var_tracking): New.
11578         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11579         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11580         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11581         * rtl.c (note_insn_name): Likewise.
11582         * rtl.def (VAR_LOCATION): New.
11583         * rtl.h (NOTE_VAR_LOCATION): New.
11584         (NOTE_VAR_LOCATION_DECL): New.
11585         (NOTE_VAR_LOCATION_LOC): New.
11586         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11587         (variable_tracking_main): New exported function.
11588         * timevar.def (TV_VAR_TRACKING): New.
11589         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11590         (dump_file): "vartrack" was added (-dV).
11591         (flag_var_tracking): New.
11592         (f_options): "var-tracking" was added.
11593         (rest_of_handle_variable_tracking): New function.
11594         (rest_of_compilation): Run variable tracking.
11595         (process_options): If user has not specified flag_var_tracking set it
11596         according to optimize, debug_info_level and debug_hooks.
11597         * tree.h (frame_base_decl): New.
11598         * var-tracking.c: New file.
11599         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11600         (ia64_override_options): Set flags to run variable tracking in machine
11601         dependent reorg instead of toplev.c.
11602         (ia64_reorg): Run variable tracking if wanted.
11603         * doc/invoke.texi: Mention variable tracking in -dV,
11604         add and -fvar-tracking.
11605         * doc/passes.texi: Added variable tracking pass.
11606
11607         Daniel Berlin <dberlin@dberlin.org>
11608         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11609         * dbxout.c (dbx_debug_hooks): Likewise.
11610         (xcoff_debug): Likewise.
11611         * debug.c (do_nothing_debug_hooks): Likewise.
11612         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11613         * dwarfout.c (dwarf_debug_hooks): Likewise.
11614         * sdbout.c (sdb_debug_hooks): Likewise.
11615         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11616         * final.c (final_scan_insn): Call var_location debug hook for each
11617         NOTE_INSN_VAR_LOCATION.
11618
11619 2004-02-06  Jan Hubicka  <jh@suse.cz>
11620
11621         * flow.c (update_life_info): Allocate reg_deaths when called from
11622         scheudler.
11623         (attempt_auto_inc):  Update life ranges accordingly.
11624
11625 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11626
11627         PR debug/11816
11628         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11629
11630 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11631
11632         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11633
11634 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11635
11636         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11637         a separate line info table in use.
11638         Use the correct size for terminators.
11639         (output_die): Use offset, not delta.
11640
11641 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11642
11643         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11644
11645 2004-02-06  Jan Hubicka  <jh@suse.cz>
11646
11647         * recog.c (split_all_insns): Do not update reg info.
11648         * regrename.c (regrename_optimize): Likewise.
11649         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11650         * flow.c (struct propagate_block_info): Add insn_num field.
11651         (reg_deaths): New array.
11652         (life_analysis): Free reg_deaths info.
11653         (allocate_reg_life_data): Allocate reg_deaths array.
11654         (propagate_one_insn): Use new array.
11655         (init_propagate_block): Initialize it.
11656         (free_propagate_block_info): Finish compuation of
11657         REG_LIVE_LENGTH
11658         (attempt_auto_inc): Sanity check that REG_INFO is not
11659         computed at same time.
11660         (mark_used_regs): Update new array.
11661
11662         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11663         substitution.
11664
11665 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11666
11667         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11668         *extendqisi2_short_displ.
11669
11670 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11671
11672         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11673         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11674         (emit_library_call_value_1): Likewise pass nargs.
11675         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11676         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11677         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11678         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11679         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11680         prototype.
11681         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11682         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11683         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11684         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11685         INIT_CUMULATIVE_ARGS.
11686         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11687         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11688         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11689         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11690         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11691         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11692         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11693         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11694         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11695         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11696         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11697         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11698
11699 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11700
11701         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11702         possible.
11703
11704 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11705
11706         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11707         note containing (plus (reg) (const_int)), where reg is an
11708         eliminable reg, then perform the register elimination without
11709         depending on eliminate_regs().
11710
11711 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11712
11713         * config/arc/arc.c (arc_return_in_memory): Check the return
11714         value of int_size_in_bytes against -1.  Don't check
11715         TREE_ADDRESSABLE.
11716         * config/avr/avr.c (avr_return_in_memory): Check the return
11717         value of int_size_in_bytes against -1.
11718         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11719         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11720         Likewise.
11721         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11722         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11723         Likewise.
11724
11725 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11726
11727         * config/frv/frv-protos.h: Remove the prototype for
11728         frv_setup_incoming_varargs.
11729         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11730         (frv_setup_incoming_varargs): Make it static.
11731         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11732
11733 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11734
11735         * config/fr30/fr30-protos.h: Remove the prototype for
11736         fr30_setup_incoming_varargs.
11737         Update the prototypes for fr30_num_arg_regs and
11738         fr30_function_arg_partial_nregs.
11739         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11740         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11741         (fr30_setup_incoming_varargs): Make it static.
11742         Add argument second_time.  Don't do anything when second_time
11743         is nonzero.
11744         (fr30_num_arg_regs): Change the type of the first argument to
11745         enum machine_mode.
11746         (fr30_function_arg_partial_nregs): Change the type of the
11747         second argument to enum machine_mode.
11748         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11749         (SETUP_INCOMING_VARARGS): Remove.
11750
11751 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11752
11753         * config/arc/arc-protos.h: Remove the prototype for
11754         arc_setup_incoming_varargs.
11755         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11756         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11757         (arc_setup_incoming_varargs): Make it static.
11758         (arc_external_libcall): Likewise.
11759         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11760         Remove the commented-out definition of
11761         ASM_OUTPUT_EXTERNAL_LIBCALL.
11762
11763 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11764
11765         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11766         to $$(slibdir) in the installation commands.
11767
11768 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11769
11770         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11771         with inner_regno, not regno.
11772         * rtlanal.c (refers_to_regno_p): Same.
11773
11774 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11775
11776         * config.gcc: Remove i370 support.
11777
11778 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11779
11780         * doc/install.texi:  Update automake and autoconf version
11781         requirements.  Note where to find gcj automake version.
11782
11783 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11784
11785         * Makefile.in (generate-manpages): Move dependencies to ...
11786         (man): here.
11787         * doc/makefile.texi: Document new targets.
11788         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11789
11790 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11791
11792         PR/13485
11793         Makefile.in (srcextra):  Add a level of indirection to ...
11794         (gcc.srcextra): ... here.
11795         (po-generated): Delete.
11796         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11797         options.c.
11798         (start.encap): Remove superfluous lang.srcextra dependency.
11799         objc/Make-lang.in (po-generated):  Delete.
11800
11801 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11802
11803         * config/ia64/ia64.c (REG_GP): Remove.
11804
11805 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11806
11807         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11808
11809 2004-02-05  Devang Patel  <dpatel@apple.com>
11810
11811         * dwarf2out.c (force_type_die): Look up input type itself
11812         instead of root_type() of type.
11813
11814 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11815
11816         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11817         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11818         pre-reload splitters are transformed to post-reload
11819         define_insn_and_split patterns.
11820         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11821
11822 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11823
11824         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11825         TARGET_PROMOTE_PROTOTYPES.
11826
11827 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11828
11829         PR middle-end/13750
11830         Revert:
11831         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11832         PR pch/13361
11833         * c-typeck.c (constructor_asmspec): Delete.
11834         (struct initializer_stack): Delete field 'asmspec'.
11835         (start_init): Delete saving of asmspec.
11836         (finish_init): Don't update constructor_asmspec.
11837         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11838         * stmt.c (expand_asm): Duplicate strings from tree.
11839         (expand_asm_operands): Likewise.
11840         * tree.c (tree_size): Update computation of size of STRING_CST.
11841         (make_node): Don't make STRING_CST nodes.
11842         (build_string): Allocate string with tree node.
11843         * tree.def (STRING_CST): Update comment.
11844         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11845         (tree_string): Place contents of string in tree node.
11846         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11847         from tree.
11848
11849 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11850
11851         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11852         msgid.
11853
11854 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11855
11856         * config/rs6000/altivec.md (*movv4si_internal): At least one
11857         operand must be altivec_register_operand.
11858         (*movv8hi_internal1): Likewise.
11859         (*movv16qi_internal1): Likewise.
11860         (*movv4sf_internal1): Likewise.
11861
11862 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11863
11864         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11865         * configure: Regenerate.
11866
11867 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11868
11869         * doc/install.texi: Update description of --gxx-include-dir to
11870         give correct default value.
11871
11872 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11873
11874         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11875         8 with MAC_REG.
11876
11877 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11878
11879         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11880         gen_rtx_PARALLEL.
11881
11882 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11883
11884         * emit-rtl.c: Update the comment about the file.
11885
11886 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11887
11888         * sourcebuild.texi (Test Idioms): Update testcase naming
11889         conventions.
11890
11891 2004-02-04  Per Bothner  <per@bothner.com>
11892
11893         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11894         * c-ppoutput.c (pp_dir_change):  New function.
11895         * c-common.h (pp_dir_change):  New declaration.
11896         * cpplib.h (struct cpp_options):  Remove working_directory field.
11897         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11898         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11899         Don't handle -fworking_directory here, but in c_common_post_options.
11900         (read_original_directory): Don't back up when done.
11901         Don't clear no-longer used working_directory flag.
11902         * cpplib.h:  Update declarations to match.
11903         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11904         (init_c_lex):  Don't set dir_change callback here, since we want
11905         to set it even if flag_preprocess_only.
11906         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11907         (c_common_post_options):  Set dir_change callback.
11908         Call pp_dir_change if approporiate.
11909         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11910         unneeded parameter and result. Do LC_RENAME for <built-in>.
11911         (c_common_post_options):  Call cpp_read_main_file here instead.
11912         (c_common_init):  Update accordingly.
11913         (push_command_line_include):  Don't cpp_push_main_file.
11914         Do LC_RENAME rather than LC_LEASE to get back to main file.
11915         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11916         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11917         files, but call finish_options for all files.
11918         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11919         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11920         cpp_find_main_file + cpp_push_main_file.
11921         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11922         * opts.c (handle_options):  Only set main_input_filename first time.
11923
11924 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11925
11926         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11927
11928 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11929
11930         * reload.c (find_equiv_reg): When checking for register overlap,
11931         don't index hard_regno_nregs with a pseudo-reg.
11932
11933 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11934
11935         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11936
11937 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11938
11939         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11940         against FIRST_PSEUDO_REGISTER.
11941
11942 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11943
11944         * Makefile.in: Move target, host overrides after per-language
11945         fragments.
11946
11947         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11948         (GNATLIBCFLAGS): Remove -g.
11949
11950 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11951
11952         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11953         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11954         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11955         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11956         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11957         config/sparc/sparc.c, config/vax/vax.c: Revert the
11958         replacements of "FALLTHRU" with "Fall through" done in the
11959         previous patch.
11960
11961 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11962
11963         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
11964         config/arm/arm.c, config/arm/arm.md,
11965         config/cris/cris-protos.h, config/fr30/fr30.c,
11966         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
11967         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
11968         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
11969         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
11970         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
11971         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
11972         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
11973         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
11974         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
11975         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
11976         config/s390/s390.md, config/sparc/netbsd-elf.h,
11977         config/sparc/openbsd.h, config/sparc/sparc.c,
11978         config/xtensa/lib2funcs.S: Fix comment formatting.
11979
11980 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11981
11982         * config/alpha/alpha.c, config/arc/arc.c,
11983         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
11984         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
11985         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
11986         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
11987         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11988         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11989         config/iq2000/iq2000.c, config/m32r/m32r.c,
11990         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
11991         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
11992         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
11993         config/rs6000/rs6000.h, config/sparc/sparc.c,
11994         config/vax/vax.c: Fix comment typos.  Follow spelling
11995         conventions.
11996
11997 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11998
11999         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
12000         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
12001         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
12002         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
12003         config/arm/fpa.md, config/arm/iwmmxt.md,
12004         config/arm/netbsd-elf.h, config/arm/netbsd.h,
12005         config/m68hc11/m68hc11.md, config/mips/iris5.h,
12006         config/mn10300/mn10300.md, config/rs6000/altivec.md,
12007         config/sparc/netbsd-elf.h: Update copyright.
12008
12009 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12010
12011         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12012         for all modes whose size is greater than 8 bytes if ARCH32.
12013         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
12014         by reference if ARCH32.
12015
12016 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
12017
12018         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
12019
12020 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12021
12022         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
12023         to before adddi3 insn patterns.
12024         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
12025         "reload_insi"): Move to before addsi3 insn patterns.
12026
12027 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
12028
12029         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
12030         parameter.  Use it instead of current_function_is_thunk.
12031         * function.h (struct function): Update documentation for is_thunk.
12032         * tree.h (CALL_FROM_THUNK_P): New macro.
12033         * config/alpha/alpha.c (alpha_sa_mask): Do not check
12034         no_new_pseudos when testing current_function_is_thunk.
12035         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
12036
12037 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12038
12039         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
12040         TARGET_SETUP_INCOMING_VARARGS.
12041
12042 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12043
12044         * emit-rtl.c (gen_rtx): Remove.
12045         * genattrtab.c: Don't mention gen_rtx in a comment.
12046         * rtl.h: Remove the prototype for gen_rtx.
12047         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
12048
12049 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12050
12051         * config/arc/arc.h, config/fr30/fr30.h
12052         (SETUP_INCOMING_VARARGS): Remove the target-independent
12053         comments.
12054         * doc/tm.texi: Don't mention deprecated target macros.
12055
12056 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12057
12058         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
12059         target-independent comment.
12060
12061 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12062
12063         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
12064         mention deprecated target macros.
12065
12066 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12067
12068         * config.gcc: Remove obsolete ports and configurations.
12069         * config/linux-aout.h, config/netware.h,
12070         config/t-linux-gnulibc1, config/d30v/abi,
12071         config/d30v/d30v-protos.h, config/d30v/d30v.c,
12072         config/d30v/d30v.h, config/d30v/d30v.md,
12073         config/d30v/libgcc1.asm, config/d30v/t-d30v,
12074         config/dsp16xx/dsp16xx-modes.def,
12075         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
12076         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
12077         config/i370/README, config/i370/i370-c.c,
12078         config/i370/i370-protos.h, config/i370/i370.c,
12079         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
12080         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
12081         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
12082         config/i386/moss.h, config/i386/netware.h,
12083         config/i386/svr3.ifile, config/i386/svr3dbx.h,
12084         config/i386/svr3gas.h, config/i386/svr3z.ifile,
12085         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
12086         config/i960/i960-c.c, config/i960/i960-coff.h,
12087         config/i960/i960-modes.def, config/i960/i960-protos.h,
12088         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
12089         config/i960/rtems.h, config/i960/t-960bare,
12090         config/m68k/hp310.h, config/m68k/hp320.h,
12091         config/m68k/hp320base.h, config/m68k/m68kv4.h,
12092         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
12093         Remove.
12094         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
12095         doc/md.texi: Remove mentions of obsolete ports.
12096
12097 2004-02-04  Jan Hubicka  <jh@suse.cz>
12098
12099         * alias.c (find_base_term, get_addr):  Do not dereference NULL
12100         pointer when all VALUE's locations has been invalidated.
12101         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
12102
12103 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
12104
12105         * doc/invoke.texi (x86 options): Fix spelling/wording.
12106
12107 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
12108
12109         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
12110         put the original string in a comment.
12111         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
12112         * config/mips/mips.c (mips_output_ascii): Likewise.
12113         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
12114
12115 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12116
12117         * system.h (GIV_SORT_CRITERION): Poison.
12118         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
12119         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
12120
12121 2004-02-03  Roger Sayle  <roger@eyesopen.com>
12122
12123         PR target/9348
12124         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
12125         multiplies with a multiplication of the wrong signedness, its the
12126         signedness of the multiplication that we've performed that needs to
12127         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
12128         if expand_mult_highpart_adjust places the result in target.
12129
12130 2004-02-03  Richard Henderson  <rth@redhat.com>
12131
12132         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
12133
12134 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
12135
12136         * config.gcc (sh[234]l): Use little endian fragments.
12137
12138 2004-02-03  Paul Koning  <pkoning@equallogic.com>
12139
12140         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
12141         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
12142         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
12143         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
12144         floating point format.
12145         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
12146         the above functions.
12147         (output_move_quad): Output float values in correct target format.
12148         (legitimate_const_double_p): New function.
12149         * config/pdp11/pdp11.h: Fix typos.
12150         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
12151         (TARGET_FLOAT_FORMAT): Ditto.
12152         (pdp11_f_format, pdp11_d_format): Add external declarations.
12153         (MAX_REGS_PER_ADDRESS): Corrected.
12154         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
12155         (PRINT_OPERAND): Output float literals in target format.
12156
12157 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
12158
12159         PR c++/13975
12160         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
12161         TI_PRIVATE.
12162         (access_public_node): Redefine.
12163         (access_protected_node): Likewise.
12164         (access_private_node): Likewise.
12165         * tree.c (build_common_tree_nodes): Create access_public_node,
12166         access_protected_node, and access_private_node.
12167
12168 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
12169
12170         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
12171         (MASK_INLINE_INT_DIV_THR): Ditto.
12172         (MASK_INLINE_SQRT_LAT): Ditto.
12173         (MASK_INLINE_SQRT_THR): Ditto.
12174         (MASK_DWARF2_ASM): Ditto.
12175         (MASK_EARLY_STOP_BITS): Ditto.
12176
12177 2004-02-02  Paul Brook  <paul@codesourcery.com>
12178
12179         Merge from csl-arm-branch.
12180
12181         2004-01-30  Paul Brook  <paul@codesourcery.com>
12182
12183         * aof.h (REGISTER_NAMES): Add vfp reg names
12184         (ADDITIONAL_REGISTER_NAMES): Ditto.
12185         * aout.h (REGISTER_NAMES): Ditto.
12186         (ADDITIONAL_REGISTER_NAMES): Ditto.
12187         * arm-protos.h: Update/Add Prototypes.
12188         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
12189         Only allow 0.0 for VFP.
12190         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
12191         (values_fp): Rename from values_fpa.  Update Users.
12192         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
12193         Update users.  Only check valid constants for this hardware.
12194         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
12195         Only allow consts for FPA.
12196         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
12197         Only allow consts for FPA.
12198         (use_return_insn): Check for saved VFP regs.
12199         (arm_legitimate_address_p): Handle VFP DFmode addressing.
12200         (arm_legitimize_address): Ditto.
12201         (arm_general_register_operand): New function.
12202         (vfp_mem_operand): New function.
12203         (vfp_compare_operand): New function.
12204         (vfp_secondary_reload_class): New function.
12205         (arm_float_compare_operand): New function.
12206         (vfp_print_multi): New function.
12207         (vfp_output_fstmx): New function.
12208         (vfp_emit_fstm): New function.
12209         (arm_output_epilogue): Output VPF reg restore code.
12210         (arm_expand_prologue): Output VFP reg save code.
12211         (arm_print_operand): Add 'P'.
12212         (arm_hard_regno_mode_ok): Return modes for VFP regs.
12213         (arm_regno_class): Return classes for VFP regs.
12214         (arm_compute_initial_elimination_offset): Include space for VFP regs.
12215         (arm_get_frame_size): Ditto.
12216         * arm.h (FIXED_REGISTERS): Add VFP regs.
12217         (CALL_USED_REGISTERS): Ditto.
12218         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
12219         (FIRST_VFP_REGNUM): Define.
12220         (LAST_VFP_REGNUM): Define.
12221         (IS_VFP_REGNUM): Define.
12222         (FIRST_PSEUDO_REGISTER): Include VFP regs.
12223         (HARD_REGNO_NREGS): Handle VFP regs.
12224         (REG_ALLOC_ORDER): Add VFP regs.
12225         (enum reg_class): Add VFP_REGS.
12226         (REG_CLASS_NAMES): Ditto.
12227         (REG_CLASS_CONTENTS): Ditto.
12228         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
12229         (REG_CLASS_FROM_LETTER): Add 'w'.
12230         (EXTRA_CONSTRAINT_ARM): Add 'U'.
12231         (EXTRA_MEMORY_CONSTRAINT): Define.
12232         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
12233         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12234         (REGISTER_MOVE_COST): Ditto.
12235         (PREDICATE_CODES): Add arm_general_register_operand,
12236         arm_float_compare_operand and vfp_compare_operand.
12237         * arm.md (various): Rename as above.
12238         (divsf3): Enable when TARGET_VFP.
12239         (divdf3): Ditto.
12240         (movdfcc): Ditto.
12241         (sqrtsf2): Ditto.
12242         (sqrtdf2): Ditto.
12243         (arm_movdi): Disable when TARGET_VFP.
12244         (arm_movsi_insn): Ditto.
12245         (movsi): Only split with general regs.
12246         (cmpsf): Use arm_float_compare_operand.
12247         (push_fp_multi): Restrict to TARGET_FPA.
12248         (vfp.md): Include.
12249         * vfp.md: New file.
12250         * fpa.md (various): Rename as above.
12251         * doc/md.texi: Document ARM w and U constraints.
12252
12253         2004-01-15  Paul Brook  <paul@codesourcery.com>
12254
12255         * config.gcc: Add with_fpu.  Allow with-float=softfp.
12256         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
12257         Break out of loop when we find a float-abi.  Fix typo.
12258         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
12259         Set -mfloat-abi=.
12260         * doc/install.texi: Document --with-fpu.
12261
12262         2003-01-14  Paul Brook  <paul@codesourcery.com>
12263
12264         * config.gcc (with_arch): Add armv6.
12265         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
12266         * config/arm/arm.c (arm_overrride_options): Ditto.
12267
12268         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
12269
12270         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
12271         (FL_ARCH6): Renamed from FL_ARCH6J.
12272         (arm_arch3m): Renamed from arm_fast_multiply.
12273         (arm_arch6): Renamed from arm_arch6j.
12274         * arm.h: Update all uses of above.
12275         * arm-cores.def: Likewise.
12276         * arm.md: Likewise.
12277
12278         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
12279         not arm6j.  Add entry for arch armv6.
12280
12281         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
12282
12283         * arm.c (arm_emit_extendsi): Delete.
12284         * arm-protos.h (arm_emit_extendsi): Delete.
12285         * arm.md (zero_extendhisi2): Also handle zero-extension of
12286         non-subregs.
12287         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
12288         (thumb_zero_extendhisi2): Only match if not v6.
12289         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
12290         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
12291         (thumb_extendqisi2): Likewise.
12292         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
12293         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
12294         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
12295         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
12296         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
12297         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
12298         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
12299         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
12300         (arm_extendqisi2addsi): Likewise.
12301
12302         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
12303
12304         Revert this change:
12305         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12306         + REG addressing modes.
12307
12308         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12309         + REG addressing modes.
12310
12311         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
12312
12313         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
12314         CONSTANT_P_RTX.
12315
12316         2003-30-12  Paul Brook  <paul@codesourcery.com>
12317
12318         * longlong.h: protect arm inlines with !defined (__thumb__)
12319
12320         2003-30-12  Paul Brook  <paul@codesourcery.com>
12321
12322         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
12323
12324         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
12325
12326         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
12327         change.
12328
12329         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12330
12331         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12332         to the virtual incoming args pointer for downward stacks.
12333
12334         2003-12-29  Paul Brook  <paul@codesourcery.com>
12335
12336         * config/arm/arm-cores.def: Add cost function.
12337         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12338         (arm_rtx_costs): Remove
12339         (struct processors): Add rtx_costs field.
12340         (all_cores, all_architectures): Ditto.
12341         (arm_override_options): Set targetm.rtx_costs.
12342         (thumb_rtx_costs): New function.
12343         (arm_rtx_costs_1): Remove cases handled elsewhere.
12344         * config/arm/arm.h (processor_type): Add COSTS parameter.
12345
12346         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12347
12348         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12349         (arm926ejs.md): Include it.
12350         * config/arm/arm926ejs.md: New pipeline description.
12351
12352         2003-12-24  Paul Brook  <paul@codesourcery.com>
12353
12354         * config/arm/arm.c (arm_arch6j): New variable.
12355         (arm_override_options): Set it.
12356         (arm_emit_extendsi): New function.
12357         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12358         * config/arm/arm.h (arm_arch6j): Declare.
12359         * config/arm/arm.md: Add sign/zero extend insns.
12360
12361         2003-12-23  Paul Brook  <paul@codesourcery.com>
12362
12363         * config/arm/arm.c (all_architectures): Add armv6.
12364         * doc/invoke.texi: Document it.
12365
12366         2003-12-19  Paul Brook  <paul@codesourcery.com>
12367
12368         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12369         insn patterns to match.
12370         * config/arm/arm-generic.md: Ditto.
12371         * config/arm/cirrus.md: Ditto.
12372         * config/arm/fpa.md: Ditto.
12373         * config/amm/iwmmxt.md: Ditto.
12374         * config/arm/arm1026ejs.md: Ditto.
12375         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12376         for 11_loadb.
12377
12378         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12379
12380         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12381         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12382         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12383         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12384         arm_no_early_mul_dep): Correctly deal with conditional execution,
12385         parallels and single shift operations.
12386         (arm_no_early_alu_shift_value_dep): Define.
12387         * arm.md (attr type): Replace 'normal' with 'alu',
12388         'alu_shift' and 'alu_shift_reg'.
12389         (attr core_cycles): Adjust.
12390         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12391         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12392         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12393         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12394         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12395         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12396         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12397         attribute appropriately.
12398         * config/arm/arm1026ejs.md (alu_op): Adjust.
12399         (alu_shift_op, alu_shift_reg_op): New.
12400         * config/arm/arm1136.md: Add better bypasses for early
12401         registers. Remove load[234] and store[234] bypasses.
12402         (11_alu_op): Adjust.
12403         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12404
12405         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12406
12407         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12408         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12409         * config/arm/arm.c (arm_no_early_store_addr_dep,
12410         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12411         * config/arm/arm1026ejs.md: Add load-store bypass.
12412         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12413         Add bypasses between instructions.
12414
12415         2003-12-10  Paul Brook  <paul@codesourcery.com>
12416
12417         * config/arm/arm.c (arm_fpu_model): New variable.
12418         (arm_fload_abi): New variable.
12419         (target_fpe_name): Rename from target_fp_name.
12420         (target_fpu_name): New variable.
12421         (arm_is_cirrus): Remove.
12422         (fpu_desc): New struct.
12423         (all_fpus): Define.
12424         (pf_model_for_fpu): Define.
12425         (all_loat_abis): Define.
12426         (arm_override_options): Set fp arch flags based on -mfpu=
12427         and -float-abi=.
12428         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12429         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12430         (*): Use new TARGET_* flags.
12431         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12432         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12433         (TARGET_SOFT_FLOAT): Ditto.
12434         (TARGET_SOFT_FLOAT_ABI): New.
12435         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12436         TARGET_HARD_FLOAT.
12437         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12438         (TARGET_OPTIONS): Add -mfpu=.
12439         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12440         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12441         (arm_pf_model): Define.
12442         (arm_float_abi_type): Define.
12443         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12444         * config/arm/arm.md: Use new TARGET_* flags.
12445         * config/arm/cirrus.md: Ditto.
12446         * config/arm/fpa.md: Ditto.
12447         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12448         * config/arm/semi.h (ASM_SPEC): Ditto.
12449         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12450         (FPUTYPE_DEFAULT): Set to VFP.
12451         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12452
12453         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12454
12455         PR target/12476
12456         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12457         'bx' instead of 'b' to avoid branch range restrictions.  Output
12458         the thunk immediately before the thunked-to function.
12459         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12460         .thumb_func if a thunk is being generated.  Emit .code 16 along
12461         with .thumb_func if a thunk is not being generated.
12462
12463         2003-11-15  Nicolas Pitre <nico@cam.org>
12464
12465         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12466         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12467         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12468         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12469         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12470
12471         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12472             Ian Lance Taylor  <ian@wasabisystems.com>
12473
12474         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12475         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12476
12477         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12478
12479         * config/arm/arm.md (insn):  Add new V6 instruction names.
12480         (generic_sched):  New attr.
12481         * config/arm/arm-generic.md:  Use generic_sched here.
12482         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12483         stages of pipeline.  Adjust latency counts accordingly.
12484         * config/arm/arm1136jfs.md:  New file.
12485
12486         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12487
12488         * config/arm/arm.h (processor_type): New enumeration type.
12489         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12490         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12491         (CPP_CPU_ARCH_SPEC): Likewise.
12492         * config/arm/arm.c (arm_tune): New variable.
12493         (all_cores): Use cores.def.
12494         (all_architectures): Add representative processor.
12495         (arm_override_options): Restructure way in which tuning
12496         information is deduced.
12497         * arm.md: Update "insn" and "type" attributes throughout.
12498         (insn): New attribute.
12499         (type): Compute "mult" from "insn" attribute.  Add load2,
12500         load3, load4 alternatives.
12501         (arm automaton): Move to arm-generic.md.
12502         * config/arm/arm-cores.def: New file.
12503         * config/arm/arm-generic.md: Likewise.
12504         * config/arm/arm1026ejs.md: Likewise.
12505
12506 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12507
12508         * doc/invoke.texi (SPARC options): Remove -mflat and
12509         all -mxxx (xxx:chip) options.
12510         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12511         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12512         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12513         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12514         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12515         * config/sparc/sparc.c: Likewise.
12516         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12517         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12518         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12519         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12520         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12521         (sparc_flat_must_save_register_p): Likewise.
12522         (sparc_flat_compute_frame_size): Likewise.
12523         (sparc_flat_save_restore): Likewise.
12524         (sparc_flat_function_prologue): Likewise.
12525         (sparc_flat_function_epilogue): Likewise.
12526         (sparc_flat_epilogue_delay_slots): Likewise.
12527         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12528         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12529         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12530         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12531         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12532         (CONDITIONAL_REGISTER_USAGE): Likewise.
12533         (FRAME_POINTER_REQUIRED): Likewise.
12534         (INITIAL_ELIMINATION_OFFSET): Likewise.
12535         (BASE_RETURN_VALUE_REG): Likewise.
12536         (BASE_OUTGOING_VALUE_REG): Likewise.
12537         (BASE_PASSING_ARG_REG): Likewise.
12538         (BASE_INCOMING_ARG_REG): Likewise.
12539         (INCOMING_REGNO): Likewise.
12540         (OUTGOING_REGNO): Likewise.
12541         (LOCAL_REGNO): Likewise.
12542         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12543         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12544         (EPILOGUE_USES): Likewise.
12545         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12546         ("flat" attribute): Delete.
12547         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12548         handling.
12549         (call followed by jump define_peephole's): Delete.
12550         (exception_receiver): Likewise.
12551         (builtin_setjmp_receiver): Likewise.
12552         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12553
12554 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12555
12556         PR c/11658
12557         PR c/13994
12558         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12559         on langhooks.h.
12560         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12561         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12562         Include langhooks.h.  Replace c_common_truthvalue_conversion
12563         with the truthvalue_conversion language hook throughout.
12564         (expr_no_commas): Call default_conversion before save_expr
12565         for the first term of the production 'x ? : y'.
12566         * c-common.c (c_common_truthvalue_conversion): Remove
12567         obsolete block.  Invoke recursively the hook instead
12568         of this function.
12569         * c-convert.c (convert): handle ERROR_MARK_NODE.
12570         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12571         returned by the truthvalue_conversion language hook.
12572         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12573         c_objc_common_truthvalue_conversion.
12574         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12575         New function.
12576         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12577         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12578         c_objc_common_truthvalue_conversion.
12579
12580 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12581
12582         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12583         of gen_rtx.
12584         (LIBCALL_VALUE): Likewise.
12585         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12586         gen_rtx_CC0 instead of gen_rtx.
12587         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12588         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12589         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12590         gen_rtx.
12591         (m68hc11_emit_logical): Likewise.
12592
12593 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12594
12595         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12596         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12597         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12598         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12599         config/mips/mips.md, config/mmix/mmix.c,
12600         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12601         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12602         config/rs6000/altivec.md, config/s390/s390.c,
12603         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12604         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12605         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12606         constants that are readily available.
12607
12608 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12609
12610         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12611         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12612         instead of GEN_INT (0).  Do the same for other constants that
12613         are readily available.
12614
12615 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12616
12617         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12618         gen_rtx.
12619         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12620         instead of gen_rtx.
12621         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12622         gen_rtx.
12623         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12624         gen_rtx_ASHIFT instead of gen_rtx.
12625         (udivmodqi4): Likewise.
12626
12627 2004-02-02  Richard Henderson  <rth@redhat.com>
12628
12629         PR target/13789
12630         * expr.c (store_expr): Use force_operand before emit_move_insn.
12631
12632 2004-02-02  Jeff Law  <law@redhat.com>
12633             Roger Sayle  <roger@eyesopen.com>
12634
12635         * tree.c (commutative_tree_code, associative_tree_code): New
12636         functions.
12637         (iterative_hash_expr): Use commutative_tree_code.
12638         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12639         * fold-const.c (operand_equal_p): Use commutative_tree_code
12640         rather than inlining the commutativity check.
12641         (fold): Likewise.
12642
12643 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12644
12645         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12646         * config/frv/frv-protos.h: Remove the prototype for
12647         frv_function_arg_keep_as_reference.
12648         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12649         Remove.
12650         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12651         * config/stormy16/stormy16.h: Remove the commented-out
12652         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12653
12654 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12655
12656         PR target/13914
12657         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12658         for retaddr_column.
12659
12660 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12661
12662         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12663         gen_rtx.
12664
12665 2004-02-02  Eric Christopher  <echristo@redhat.com>
12666             Zack Weinberg  <zack@codesourcery.com>
12667
12668         * c-opts.c (c_common_handle_option): Add -finput-charset.
12669         * c.opt: Ditto.
12670         * cppcharset.c (one_iso88591_to_utf8): Remove.
12671         (convert_iso88591_utf8): Ditto.
12672         (conversion_tab): Remove 8859-1 converter.
12673         (_cpp_input_to_utf8): Remove.
12674         (_cpp_init_iconv_buffer): Ditto.
12675         (_cpp_close_iconv_buffer): Ditto.
12676         (_cpp_convert_input): New function.
12677         (_cpp_default_encoding): Ditto.
12678         * cpphash.h: Add/remove prototypes for above.
12679         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12680         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12681         for narrow execution and input character sets.
12682         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12683         * doc/cppopts.texi: Document -finput-charset.
12684
12685 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12686
12687         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12688         against FIRST_PSEUDO_REGISTER.
12689
12690 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12691
12692         * doc/invoke.texi (SPARC options): Further improve.
12693
12694 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12695
12696         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12697         config/h8300/h8300.c, config/ip2k/ip2k.md,
12698         config/iq2000/iq2000.c, config/mips/mips.c,
12699         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12700         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12701         config/v850/v850.md: Fix indentation.
12702
12703 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12704
12705         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12706         arguments on a 16-byte boundary in the parameter array if ARCH64.
12707         Split handling of TFmode.
12708
12709 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12710
12711         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12712         Don't test CONSTANT_P (x).
12713         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12714         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12715         Fix misindentation.
12716
12717 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12718
12719         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12720
12721 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12722
12723         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12724         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12725         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12726         config/iq2000/iq2000.c, config/m32r/m32r.c,
12727         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12728         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12729         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12730         config/stormy16/stormy16.c, config/v850/v850.md,
12731         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12732
12733 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12734
12735         * config/mcore/mcore.c (block_move_sequence): Replace
12736         gen_rtx_CONST_INT with GEN_INT.
12737
12738 2004-02-02  Jan Hubicka  <jh@suse.cz>
12739
12740         * alias.c (record_set): Use hard_regno_nregs.
12741         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12742         * builtins.c (apply_args_size): Likewise.
12743         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12744         mark_set_regs, add_stored_regs, mark_referenced_regs,
12745         insert_restore, insert_save, insert_one_insn): Likewise.
12746         * cfgcleanup.c: Include regs.h
12747         (mark_effect, mentions_nonequal_regs): Likewise.
12748         * cfgrtl.c (mark_killed_regs): Likewise
12749         * combine.c (update_table_tick, record_value_for_reg,
12750         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12751         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12752         reg_bitfield_target_p, distribute_notes): Likewise.
12753         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12754         exp_equiv_p, cse_insn): Likewise.
12755         * cselib.c (cselib_lookup): Likewise.
12756         (cselib_invalidate_regno, cselib_record_set): Likewise.
12757         * df.c (df_ref_record): Likewise.
12758         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12759         Likewise.
12760         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12761         count_or_remove_death_notes_bb): Likewise.
12762         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12763         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12764         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12765         * integrate.c (mark_stores): Likewise.
12766         * jump.c (delete_prior_computation): Likewise.
12767         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12768         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12769         * loop.c (LOOP_REGNO_NREGS): Likewise.
12770         * postreload.c (reload_combine, reload_combine_note_store,
12771         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12772         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12773         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12774         try_recolor_web, insert_coalesced_conflicts, check_colors,
12775         break_precolored_alias): Likewise.
12776         * ra-debug.c: Include regs.h
12777         (ra_print_rtx_object): Likewise.
12778         * ra-rewrite (choose_spill_colors): Likewise.
12779         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12780         * ra.c (init_ra): Likewise.
12781         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12782         peep2_find_free_register): Likewise.
12783         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12784         * regclass.c (hard_regno_nregs): New array.
12785         (init_reg_modes_once): Initialize it.
12786         (choose_hard_reg_mode): Use it.
12787         (record_reg_classes): Likewise.
12788         * regmove.c (mark_flags_life_zones): Likewise.
12789         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12790         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12791         copy_value, maybe_mode_change, find_oldest_value_reg,
12792         copyprop_hardreg_forward_1):
12793         * regs.h (hard_regno_nregs): Declare.
12794         * realod.c (reload_inner_reg_of_subreg): Use it.
12795         (push_reload, combine_reloads, find_dummy_reload,
12796         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12797         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12798         reload_adjust_reg_for_mode): Likewise.
12799         * reload1.c (compute_use_by_pseudos, count_pseudo,
12800         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12801         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12802         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12803         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12804         delete_output_reload): Likewise.
12805         * resource.c (update_live_status, mark_referenced_resources,
12806         mark_set_resources, mark_target_live_regs): Likewise.
12807         * rtlanal.c:  Include regs.h
12808         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12809         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12810         subreg_regno_offset, subreg_offset_representable_p,
12811         hoist_test_store): Likewise.
12812         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12813         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12814         * stmt.c: Include regs.h
12815         (decl_conflicts_with_clobbers_p): Likewise.
12816         * varasm.c (make_decl_rtl): Likewise.
12817         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12818
12819 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12820
12821         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12822         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12823         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12824         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12825         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12826         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12827         config/iq2000/iq2000.h, config/m32r/m32r.c,
12828         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12829         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12830         config/mcore/mcore.c, config/mcore/mcore.h,
12831         config/mcore/mcore.md, config/mips/mips.c,
12832         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12833         config/rs6000/rs6000.c, config/s390/s390.c,
12834         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12835         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12836         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12837
12838 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12839
12840         * config/h8300/h8300.md (two peephole2's): New.
12841
12842 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12843
12844         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12845         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12846         (ASM_CPU_SPEC): Likewise
12847         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12848         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12849
12850 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12851
12852         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12853         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12854         (expand_builtin): Always call expand_builtin_pow.
12855
12856 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12857
12858         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12859         BUILT_IN_SIGNBITL): New GCC builtins.
12860         * builtins.c (expand_builtin_signbit): New function to RTL expand
12861         calls to signbit, signbitf and signbitl as inline intrinsics.
12862         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12863         (fold_builtin_signbit): New function to perform constant folding
12864         of signbit, signbitf and signbitl.
12865         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12866
12867         * doc/extend.texi: Document new signbit{,f,l} builtins.
12868
12869 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12870
12871         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12872
12873 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12874
12875         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12876         "mips_const_double_ok" and "simple_memory_operand", which were
12877         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12878         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12879         for removal of simple_memory_operand.
12880
12881 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12882
12883         * config/c4x/c4x.md: Use GEN_INT instead of
12884         gen_rtx (CONST_INT, ...).
12885
12886 2004-01-31  Richard Henderson  <rth@redhat.com>
12887
12888         * varasm.c (output_constant_pool): Don't zap the pool.
12889
12890 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12891
12892         * genrecog.c (decision_type): Add DT_const_int.
12893         (write_cond) [DT_const_int]: Print a comparison against small
12894         constant.
12895         (write_node): Simplify comparisons against small constants
12896         before printing tests.
12897
12898 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12899
12900         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12901         instead of gen_rtx_CONST_INT.
12902
12903 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12904
12905         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12906         instead of gen_rtx_CONST_INT.
12907
12908 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12909
12910         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12911         hook_bool_CUMULATIVE_ARGS_false.
12912         * targhooks.c (default_strict_argument_naming): Rename to
12913         hook_bool_CUMULATIVE_ARGS_false.
12914         * targhooks.h: Update the prototype for
12915         default_strict_argument_naming.
12916
12917 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12918
12919         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12920         * config/sh/sh.h: Likewise.
12921         * config/sh/sh.md: Likewise.
12922
12923 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12924
12925         * doc/invoke.texi (SPARC options): Restructure and update.
12926
12927 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12928
12929         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12930         STRICT_ARGUMENT_NAMING): Poison.
12931         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12932         hook_bool_tree_false.
12933         * targhooks.c (default_promote_function_args): Remove.
12934         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12935         Don't check incoming.
12936         (default_strict_argument_naming): Don't use
12937         STRICT_ARGUMENT_NAMING.
12938         * targhooks.h: Remove the prototype for
12939         default_promote_function_args.
12940
12941 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12942
12943         * config/i386/i386-protos.h: Remove the prototype for
12944         ix86_setup_incoming_varargs.
12945         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12946         (ix86_setup_incoming_varargs): Make it static.
12947         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12948
12949 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12950
12951         * alloc-pool.c: Fix comment typos.
12952         * builtin-types.def: Likewise.
12953         * builtins.def: Likewise.
12954         * c-pretty-print.c: Likewise.
12955         * df.h: Likewise.
12956         * reload1.c: Likewise.
12957
12958 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12959
12960         * doc/invoke.texi: Follow spelling conventions.
12961         * doc/tm.texi: Likewise.
12962
12963 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12964
12965         * doc/install.texi: Fix typos.
12966         * doc/invoke.texi: Likewise.
12967
12968 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
12969
12970         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
12971         registers as pointers.
12972         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
12973
12974 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
12975
12976         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
12977         and restore it to gen_lowpart_general on exit.
12978         (gen_lowpart_for_combine): Adjust all callers to go through
12979         gen_lowpart.
12980         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
12981         and restore it to gen_lowpart_general on exit.
12982         (gen_lowpart_if_possible): Adjust all callers to go through
12983         gen_lowpart.
12984         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
12985         (gen_lowpart): Declare as pointer to function, initialized to
12986         gen_lowpart_general.
12987         * rtl.h (gen_lowpart): Declare as pointer to function.
12988
12989 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12990
12991         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12992         * calls.c: Likewise.
12993         * emit-rtl.c: Likewise.
12994         * function.c: Likewise.
12995         * reload1.c: Likewise.
12996         * config/i386/cygming.h: Likewise.
12997         * config/i386/i386.c: Likewise.
12998         * config/i386/winnt.c: Likewise.
12999
13000 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
13001
13002         PR bootstrap/9249
13003         * doc/install.texi: document --enable-__cxa_atexit option.
13004         * configure.ac: Disable __cxa_atexit if not supported.
13005         * configure: Regenerate.
13006
13007 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
13008
13009         * ggc-zone.c (ggc_free): New function.
13010
13011 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13012
13013         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
13014         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
13015         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
13016         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
13017         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
13018         config/alpha/alpha.c, config/alpha/alpha.h,
13019         config/alpha/alpha.md, config/alpha/unicosmk.h,
13020         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
13021         config/c4x/c4x-protos.h, config/c4x/c4x.md,
13022         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
13023         config/frv/frvend.c, config/i386/cygming.h,
13024         config/i386/djgpp.h, config/i386/emmintrin.h,
13025         config/i386/gthr-win32.c, config/i386/i386-interix.h,
13026         config/i386/i386-protos.h, config/i386/openbsd.h,
13027         config/i386/winnt.c, config/i386/xm-mingw32.h,
13028         config/i386/xmmintrin.h, config/ia64/ia64.md,
13029         config/iq2000/iq2000.md, config/m32r/m32r.md,
13030         config/m68k/m68k.md, config/mcore/mcore-elf.h,
13031         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
13032         config/mips/iris5gas.h, config/mips/iris6.h,
13033         config/mips/iris6gas.h, config/mips/linux.h,
13034         config/mips/mips.md, config/mips/netbsd.h,
13035         config/mips/openbsd.h, config/mips/windiss.h,
13036         config/pa/fptr.c, config/rs6000/aix.h,
13037         config/rs6000/altivec.h, config/rs6000/darwin.h,
13038         config/rs6000/xcoff.h, config/s390/s390-protos.h,
13039         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
13040         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
13041         config/sparc/sol2.h: Update copyright.
13042
13043 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
13044
13045         * Makefile.in (abs_docdir, abs_srcdir): Define.
13046         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
13047
13048 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13049
13050         * genconfig.c (main): Have CC0_P check its operand even on a
13051         target without cc0.
13052
13053 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13054
13055         * config/alpha/alpha.c: Remove mentions of deprecates macros
13056         in comments, remove some target-independent comments about target
13057         macros, and/or add minimal function comments for target hook
13058         implementations.
13059         * config/avr/avr.c: Likewise.
13060         * config/ia64/ia64.h: Likewise.
13061         * config/ip2k/ip2k.c: Likewise.
13062         * config/iq2000/iq2000.c: Likewise.
13063         * config/m32r/m32r.h: Likewise.
13064         * config/m68hc11/m68hc11.c: Likewise.
13065         * config/mcore/mcore.c: Likewise.
13066         * config/mmix/mmix.c: Likewise.
13067         * config/mn10300/mn10300.c: Likewise.
13068         * config/pa/pa.c: Likewise.
13069         * config/pdp11/pdp11.c: Likewise.
13070         * config/rs6000/rs6000.h: Likewise.
13071         * config/sh/sh.c: Likewise.
13072         * config/sh/sh.h: Likewise.
13073         * config/sparc/sparc.c: Likewise.
13074         * config/sparc/sparc.h: Likewise.
13075         * config/stormy16/stormy16.c: Likewise.
13076         * config/xtensa/xtensa.c: Likewise.
13077
13078 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13079
13080         PR optimization/12147
13081         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
13082         RELOAD_FOR_OPADDR_ADDR.
13083         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
13084         might be reused as RELOAD_FOR_OPADDR_ADDR register.
13085
13086 2004-01-30  Jan Hubicka  <jh@suse.cz>
13087
13088         * reload.c (get_secondary_mem): Fix updating of
13089         secondary_memlocs_elim_used.
13090
13091 2004-01-30  Richard Henderson  <rth@redhat.com>
13092
13093         * varasm.c (struct rtx_const, struct pool_constant): Remove.
13094         (MAX_RTX_HASH_TABLE): Remove.
13095         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
13096         (first_pool, last_pool, pool_offset): Remove.
13097         (struct rtx_constant_pool): Split out from ...
13098         (struct varasm_status): ... here.  Reference one via pointer.
13099         (struct constant_descriptor_rtx): Merge struct pool_constant.
13100         (SYMHASH): Remove.
13101         (decode_rtx_const): Remove.
13102         (const_hash_rtx, compare_constant_rtx): Remove.
13103         (record_constant_rtx): Remove.
13104         (const_desc_rtx_hash, const_desc_rtx_eq): New.
13105         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
13106         (const_rtx_hash_1, const_rtx_hash): New.
13107         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
13108         (simplify_subtraction): Use simplify_rtx.
13109         (force_const_mem): Rewrite to use new data structures.
13110         (find_pool_constant): Likewise.
13111         (get_pool_constant, get_pool_constant_mark,
13112         get_pool_constant_for_function, get_pool_mode,
13113         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
13114         (output_constant_pool_2): Split out from output_constant_pool.
13115         (output_constant_pool_1): Likewise.  Use new pool datastructures.
13116         (output_constant_pool): Zap entire pool datastructure.
13117         (mark_constant): Use new pool datastructures.
13118         (mark_constants): Use for_each_rtx.
13119         (mark_constant_pool): Use new pool datastructures.
13120
13121 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
13122
13123         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
13124         Copy operands[1] to pseudo for simplify_gen_subreg.
13125
13126 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13127
13128         * gcse.c (bypass_block): Fix a typo in the previous check-in
13129         to the file.
13130
13131 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
13132
13133         * toplev.c: Include alloc-pool.h.
13134         * Makefile.in (toplev.c): Update dependencies.
13135
13136 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13137
13138         * combine.c (simplify_shift_const, case XOR): Be careful when
13139         commuting XOR with ASHIFTRT.
13140
13141 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13142             Eric Botcazou  <ebotcazou@libertysurf.fr>
13143
13144         * config/sparc/sparc-protos.h: Remove the prototype for
13145         sparc_builtin_saveregs.
13146         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13147         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13148         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13149         (TARGET_STRUCT_VALUE_RTX): Likewise.
13150         (TARGET_RETURN_IN_MEMORY): Likewise.
13151         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13152         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13153         (sparc_builtin_saveregs): Make it static.
13154         (sparc_promote_prototypes): New.
13155         (sparc_struct_value_rtx): Likewise.
13156         (sparc_return_in_memory): Likewise.
13157         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
13158         (PROMOTE_FUNCTION_RETURN): Likewise.
13159         (RETURN_IN_MEMORY): Likewise.
13160         (STRUCT_VALUE): Likewise.
13161         (STRUCT_VALUE_INCOMING): Likewise.
13162         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13163         (STRICT_ARGUMENT_NAMING): Likewise.
13164         (PROMOTE_PROTOTYPES): Likewise.
13165
13166         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
13167
13168 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13169
13170         PR c/12818
13171         * varasm.c (const_hash_1) <STRING_CST>: Use the
13172         address to compute the hash value if flag_writable_strings.
13173         (compare_constant) <STRING_CST>: Compare the addresses
13174         if flag_writable_strings.
13175         (build_constant_desc): Do not copy the expression for a
13176         STRING_CST if flag_writable_strings.
13177
13178 2004-01-30  Jan Hubicka  <jh@suse.cz>
13179
13180         * alloc-pool.c: Include hashtab.h
13181         (alloc_pool_descriptor): New structure
13182         (alloc_pool_hash): New global variable.
13183         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
13184         (create_alloc_pool): Update statistics.
13185         (free_alloc_pool): Likewise.
13186         (pool_alloc): Likewise.
13187         (output_info): New structure
13188         (print_statistics, dump_alloc_pool_statistics): New function.
13189         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
13190         (dump_alloc_pool_statistics): Declare.
13191         * toplev.c (finalize):  Dump statistics.
13192
13193         * reload.c (secondary_memlocs_elim_used): New static variable.
13194         (get_secondary_mem): Update it.
13195         (find_reloads): Use it.
13196
13197 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
13198
13199         * toplev.c: Fix broken checkin of 2003-12-30, again.
13200
13201 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13202
13203         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
13204         s390*-*-* targets by specifying a 'nop' insn.
13205         * configure: Regenerate.
13206
13207 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13208
13209         PR target/11475
13210         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
13211
13212 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13213
13214         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
13215         of addr when creating MEM copy.
13216
13217 2004-01-29  Devang Patel  <dpatel@apple.com>
13218
13219         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
13220
13221 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13222
13223         PR inline-asm/6162
13224         * reload.c (find_reloads): Only support one pair of commutative
13225         operands.
13226
13227 2004-01-29  Roger Sayle  <roger@eyesopen.com>
13228
13229         PR java/13824
13230         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
13231         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
13232         recursion.
13233
13234 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13235
13236         * config/frv/frv.c: Don't mention deprecated macros in
13237         comments.  Remove some target-independent comments about
13238         target macros.
13239         * config/frv/frv.h: Likewise.
13240
13241 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13242
13243         * cfghooks.c (split_block): Set probability and count of the
13244         new edge.
13245
13246 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
13247
13248         * dwarf2out.c (struct die_struct): Added field decl_id.
13249         (decl_die_table): Changed to hash table.
13250         (decl_die_table_allocated): Deleted.
13251         (decl_die_table_in_use): Deleted.
13252         (DECL_DIE_TABLE_INCREMENT): Deleted.
13253         (decl_die_table_hash): New function.
13254         (decl_die_table_eq): New function.
13255         (lookup_decl_die): Lookup in a hash table.
13256         (equate_decl_number_to_die): Insert into a hash table.
13257         (dwarf2out_init): Init hash table decl_die_table.
13258
13259 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13260
13261         PR optimization/13424
13262         * expr.c (store_constructor): Revert 2003-12-03 change.
13263
13264         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
13265         expected before returning early.  Avoid sharing RTL if they
13266         need to be changed.
13267
13268         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
13269         handling so that memory attributes are preserved.  Don't call
13270         ix86_set_move_mem_attrs.
13271         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
13272         (ix86_expand_clrstr): Rename src argument to
13273         dst.  Rework rep_stos and strset handling so that memory attributes
13274         are preserved.
13275         (ix86_expand_strlen): Pass src argument to
13276         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
13277         memory attributes are preserved.
13278         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
13279         change_address instead of gen_rtx_MEM.
13280         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
13281         expanders.
13282         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
13283         strmovqi, strmovqi_rex64): Remove.
13284         (rep_mov*, strmov*): Prefix insn names with *.
13285         (strset, strset_singleop, rep_stos): New expanders.
13286         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
13287         strsetqi, strsetqi_rex64): Remove.
13288         (rep_stos*, strset*): Prefix insn names with *.
13289         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
13290         to SImode.
13291         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
13292         are preserved.
13293         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
13294         Prefix insn names with *.
13295         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
13296         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
13297         (strlenqi_1): New expander.
13298         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
13299
13300 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13301
13302         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
13303         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
13304         verify_flow_info): Declaration removed.
13305         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
13306         (debug_bb, debug_bb_n): Add argument to dump_bb call.
13307         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
13308         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
13309         instead of delete_block.
13310         * cfghooks.c: Include timevar.h and toplev.h.
13311         (cfg_hooks): Define here.
13312         (verify_flow_info, dump_bb): Moved from cfg.c.
13313         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13314         split_block, split_block_after_labels, move_block_after,
13315         delete_basic_block, split_edge, create_basic_block,
13316         create_empty_bb, can_merge_blocks_p, merge_blocks,
13317         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13318         New functions.
13319         * cfghooks.h (struct cfg_hooks): Added fields name,
13320         make_forwarder_block, tidy_fallthru_edge and
13321         move_block_after. Changed type of verify_flow_info, dump_bb,
13322         split_block fields. Renamed cfgh_split_edge and delete_block
13323         fields.
13324         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13325         split_block, delete_block, split_edge, create_basic_block,
13326         can_merge_blocks_p, merge_blocks): Macros removed.
13327         (cfg_hooks): Do not export.
13328         (verify_flow_info, dump_bb, redirect_edge_and_branch,
13329         redirect_edge_and_branch_force, split_block, split_block_after_labels,
13330         move_block_after, delete_basic_block, split_edge, create_basic_block,
13331         create_empty_bb, can_merge_blocks_p, merge_blocks,
13332         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13333         Declare.
13334         (cfg_layout_rtl_cfg_hooks): Declare.
13335         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13336         New functions.
13337         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13338         (redirect_edge_with_latch_update): Removed.
13339         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13340         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13341         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13342         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13343         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13344         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13345         cfghooks.c.
13346         (rtl_create_basic_block): Coding style fix.
13347         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13348         rtl_make_forwarder_block): New functions.
13349         (update_cfg_after_block_merging): Removed.
13350         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13351         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13352         to dump_bb.
13353         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13354         find_if_case_2): Don't update dominators.
13355         * timevar.def (TV_CFG_VERIFY): New.
13356         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13357         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13358         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13359         (remove_bbs): Don't call remove_bbs.
13360         (create_preheader): Use make_forwarder_block.
13361         (mfb_keep_just, mfb_update_loops): New static functions.
13362
13363 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13364
13365         * config/avr/avr.h: Remove target-independent comments about
13366         target macros.
13367
13368 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13369
13370         * timevar.c (timevar_print): Mention when checking is enabled.
13371
13372 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13373
13374         * c-lex.c (c_lex): Rename to...
13375         (c_lex_with_flags): Add new parameter to get CPP flags.
13376         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13377         * c-pragma.h (c_lex_with_flags): Declare.
13378
13379 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13380
13381         * config/mcore/mcore.c (mcore_external_libcall): Add a
13382         comment.
13383         (mcore_return_in_memory): Likewise.
13384
13385 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13386
13387         * config/mcore/mcore-protos.h: Remove the prototype for
13388         mcore_setup_incoming_varargs.
13389         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13390         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13391         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13392         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13393         (TARGET_STRUCT_VALUE_RTX): Likewise.
13394         (TARGET_RETURN_IN_MEMORY): Likewise.
13395         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13396         (mcore_setup_incoming_varargs): Make it static.  Receive the
13397         first argument by reference.  Add argument second_time.
13398         (mcore_external_libcall): New.
13399         (mcore_return_in_memory): Likewise.
13400         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13401         (PROMOTE_FUNCTION_RETURN): Likewise.
13402         (STRUCT_VALUE): Likewise.
13403         (RETURN_IN_MEMORY): Likewise.
13404         (SETUP_INCOMING_VARARGS): Likewise.
13405         (PROMOTE_PROTOTYPES): Likewise.
13406         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13407
13408 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13409
13410         * config/m32r/m32r-protos.h: Remove the prototype for
13411         m32r_setup_incoming_varargs.
13412         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13413         (TARGET_STRUCT_VALUE_RTX): Likewise.
13414         (TARGET_RETURN_IN_MEMORY): Likewise.
13415         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13416         (m32r_return_in_memory): New.
13417         (m32r_setup_incoming_varargs): Make it static.
13418         * config/m32r/m32r.h: Remove #undef of
13419         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13420         definitions of PROMOTE_FUNCTION_ARGS and
13421         PROMOTE_FUNCTION_RETURN.
13422         (PROMOTE_PROTOTYPES): Remove.
13423         (RETURN_IN_MEMORY): Likewise.
13424         (STRUCT_VALUE): Likewise.
13425
13426 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13427
13428         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13429         (TARGET_STRUCT_VALUE_RTX): Likewise.
13430         (m68k_struct_value_rtx): Likewise.
13431         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13432         STRUCT_VALUE_REGNUM.
13433         (PROMOTE_PROTOTYPES): Remove.
13434         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13435         STRUCT_VALUE_REGNUM.
13436         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13437         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13438
13439 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13440
13441         * config/stormy16/stormy16.c
13442         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13443         TARGET_BUILD_BUILTIN_VA_LIST.
13444
13445 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13446
13447         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13448         (TARGET_STRUCT_VALUE_RTX): Likewise.
13449         (TARGET_RETURN_IN_MEMORY): Likewise.
13450         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13451         (v850_return_in_memory): Likewise.
13452         (v850_setup_incoming_varargs): Likewise.
13453         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13454         (SETUP_INCOMING_VARARGS): Likewise.
13455         (RETURN_IN_MEMORY): Likewise.
13456         (STRUCT_VALUE): Likewise.
13457
13458 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13459
13460         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13461         (fr30_setup_incoming_varargs): Don't use
13462         STRICT_ARGUMENT_NAMING.
13463         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13464         (STRICT_ARGUMENT_NAMING): Likewise.
13465
13466 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13467
13468         * config/frv/frv-protos.h: Remove the prototype for
13469         frv_expand_builtin_saveregs.
13470         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13471         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13472         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13473         STRUCT_VALUE_REGNUM.
13474         (frv_expand_builtin_saveregs): Make it static.
13475         (frv_struct_value_rtx): New.
13476         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13477
13478 2004-01-29  Jan Hubicka  <jh@suse.cz>
13479
13480         PR c++/12850
13481         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13482         initial pointers.
13483         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13484         for functions that will be only inlined.
13485         (cgraph_mark_function_to_output): Likewise.
13486         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13487         do not clear function body.
13488         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13489         (tree_rest_of_compilation): Reorganize the logic releasing function
13490         body to use callgraph datastructure.
13491
13492 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13493
13494         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13495         to register_operand.
13496
13497 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13498
13499         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13500         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13501         match_operand expressions so that all match_dups appear
13502         lexically after their corresponding match_operands.
13503
13504 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13505
13506         * config/h8300/h8300.c (WORD_REG_USED): Use
13507         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13508         (compute_saved_regs): Likewise.
13509         (h8300_expand_prologue): Likewise.  Allocate locals after
13510         saving registers.
13511         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13512         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13513         registers.
13514         (h8300_initial_elimination_offset): Adjust for the new frame
13515         layout, which swaps flips the order of locals and saved
13516         registers.
13517         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13518         (HARD_FRAME_POINTER_REGNUM): New.
13519         (ELIMINABLE_REGS): Add an elimination rule from
13520         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13521         (REGISTER_NAMES): Add fp.
13522         * config/h8300/h8300.md (FP_REG): Change to 11.
13523         (HFP_REG): New.
13524
13525 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13526
13527         * genrecog.c (write_node): Remove a useless local variable.
13528
13529 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13530
13531         * Makefile.in (options.c options.h): Use stamp file s-options to
13532         avoid unnecessary rebuilds.
13533         (options.o): New target listing dependencies.
13534         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13535         (STAGESTUFF): Add s-gtyp-gen.
13536
13537 2004-01-28  Richard Henderson  <rth@redhat.com>
13538
13539         * ggc.h (ggc_free): Declare.
13540         * ggc-common.c (ggc_realloc): Use it.
13541         * ggc-page.c: Remove lots of inline markers.
13542         (globals): Add free_object_list.
13543         (ggc_alloc): Tidy.
13544         (ggc_free, validate_free_objects): New.
13545         (poison_pages): Provide default.
13546         (ggc_collect): Call validate_free_objects; emit markers to
13547         the debug file.
13548
13549 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13550             Jim Wilson  <wilson@specifixinc.com>
13551
13552         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13553         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13554         scratch pointer.
13555         (ia64_secondary_reload_class): Delete case GR_REGS.
13556         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13557         Do not allocate a scratch register.
13558         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13559
13560 2004-01-28  Jan Hubicka  <jh@suse.cz>
13561
13562         * gcse.c (bypass_block): Prevent edges to be unified when we are
13563         about to emit compenstation code.
13564
13565 2004-01-28  Nick Clifton  <nickc@redhat.com>
13566
13567         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13568         the setcwx insn into a register.
13569
13570 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13571
13572         * config/fp-bit.c (pack_d): When using paired doubles to implement
13573         a long double, round the high part separately.
13574         (unpack_d): Fix the case in which the high part is a power of two
13575         and the low part is a nonzero value of the opposite sign.
13576
13577 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13578
13579         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13580         (TARGET_STRUCT_VALUE_RTX): Likewise.
13581         (c4x_external_libcall): Likewise.
13582         (c4x_struct_value_rtx): Likewise.
13583         * config/c4x/c4x.h: Remove.
13584         (STRUCT_VALUE_REGNUM): Likewise.
13585         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13586
13587 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13588
13589         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13590         (TARGET_STRUCT_VALUE_RTX): Likewise.
13591         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13592         (STRUCT_VALUE): Likewise.
13593         (PROMOTE_PROTOTYPES): Likewise.
13594
13595 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13596
13597         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13598         CONST_INT before using INTVAL.
13599
13600 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13601
13602         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13603         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13604         frame if !TARGET_BACKCHAIN.
13605         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13606         TARGET_BACKCHAIN.
13607         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13608
13609 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13610
13611         * ia64.c (ia64_function_arg): When placing HFAs in integer
13612         registers, do not special case the mode used for complex
13613         types.  Do not advance int_regs until the current register
13614         is full.
13615
13616 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13617
13618         PR target/7297
13619         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13620
13621 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13622
13623         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13624         slow, unaligned loads and stores while debugging.  Fix formatting.
13625
13626 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13627
13628         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13629         of computing wmode.
13630         (restore_stack_nonlocal): Same.
13631
13632 2004-01-27  Devang Patel <dpatel@apple.com>
13633
13634         * Makefile.in (dwarf2out.o): Depend on input.h
13635         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13636         imported_module_or_decl.
13637         (xcoff_debug_hooks): Same.
13638         * sdbout.c (sdb_debug_hooks): Same.
13639         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13640         * debug.c (do_nothing_debug_hooks): Same.
13641         (debug_nothing_tree_tree): New function.
13642         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13643         * dwarf2out.c: Include input.h.
13644         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13645         (remove_child_TAG): New function.
13646         (dwarf_tag_name): Handle DW_TAG_imported_module.
13647         (gen_subprogram_die): Equate decl number to declaration die. Do not
13648         remove all children dies while reusing declaration die for definition.
13649         Instead, selectively remove only formal parameters.
13650         (gen_variable_die): Equate variable decl to declaration die.
13651         (gen_field_die): Equate field decl to line number.
13652         (force_namespace_die): Replace it with ...
13653         (force_decl_die): ... this.
13654         (force_type_die): New function.
13655         (setup_namespace_context): Replace use of force_namespace_die() with
13656         force_decl_die().
13657         (gen_namespace_die): Same.
13658         (dwarf2out_imported_module_or_decl): New function.
13659
13660 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13661
13662         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13663         on CQImode and CHImode incoming arguments in register a7.
13664         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13665         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13666         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13667         xtensa_copy_incoming_a7 before reload.
13668
13669 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13670
13671         * coverage.c (get_coverage_counts): Give a different message
13672         if flag_guess_branch_prob is set.
13673         * predict.c (counts_to_freqs): Return an int.
13674         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13675         calculate estimates.
13676
13677 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13678
13679         * config/iq2000/iq2000-protos.h: Remove the prototype for
13680         iq2000_setup_incoming_varargs.
13681         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13682         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13683         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13684         (TARGET_STRUCT_VALUE_RTX): Likewise.
13685         (TARGET_RETURN_IN_MEMORY): Likewise.
13686         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13687         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13688         (iq2000_return_in_memory): Likewise.
13689         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13690         first argument by reference.
13691         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13692         (PROMOTE_FUNCTION_RETURN): Likewise.
13693         (PROMOTE_PROTOTYPES): Likewise.
13694         (RETURN_IN_MEMORY): Likewise.
13695         (STRUCT_VALUE): Likewise.
13696         (SETUP_INCOMING_VARARGS): Likewise.
13697         (STRICT_ARGUMENT_NAMING): Likewise.
13698
13699 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13700
13701         * fixinc/fixinc.c (test_test): Initialize res.
13702         (start_flexer): Initialize pz_cmd_save.
13703
13704 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13705
13706         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13707         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13708
13709 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13710
13711         PR 7198
13712         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13713         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13714         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13715         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13716         Possibly rename pattern for consistency.
13717         Remove ??? comments suggesting that this be done.
13718         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13719         New patterns.
13720         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13721         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13722         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13723         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13724         Update to match.
13725
13726 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13727
13728         * config/arm/arm.c (output_return_instruction): Only restore IP
13729         into SP if frame_pointer_needed.
13730
13731 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13732
13733         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13734         for SCmode and DCmode if ARCH32.
13735         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13736         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13737         if ARCH32.
13738         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13739         if ARCH32.
13740         (BASE_OUTGOING_VALUE_REG): Likewise.
13741
13742 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13743
13744         PR target/10904
13745         PR target/13058
13746         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13747         Forbid mode changes from SImode for lower FP regs if ARCH64.
13748
13749 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13750
13751         * Makefile.in (bt-load.o): Depend on except.h.
13752         * bt-load.c (except.h): #include.
13753         (compute_defs_uses_and_gen): If insn at end of BB can throw
13754         within this function, consider registers used by it unavailable for
13755         btr migration.
13756         (move_btr_def): If insn at end of BB can throw, insert before rather
13757         than after.
13758
13759         * flags.h (flag_btr_bb_exclusive): Declare.
13760         * toplev.c (flag_btr_bb_exclusive): New variable.
13761         (f_options): Add btr-bb-exclusive.
13762         * bt-load.c (augment_live_range): Restore old behaviour if
13763         flag_btr_bb_exclusive is set.
13764         * common.opt: Add entry for -fbtr-bb-exclusive.
13765         * opts.c (common_handle_options): Same.
13766         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13767
13768         * bt-load.c (btrs_live_at_end): New variable.
13769         (compute_defs_uses_and_gen): Compute its pointed-to array.
13770         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13771         (augment_live_range): When augmenting with a new dominator,
13772         use only its btrs_live_at_end set, but also add in the full set
13773         of the old dominator.
13774         (btr_def_live_range): Use btrs_live_at_end.
13775         (move_btr_def): Set other_btr_uses_before_def, and move new set
13776         to the end of the basic block, if appropriate.
13777         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13778
13779         * bt-load.c (basic_block_freq): Remove outdated comment.
13780
13781 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13782
13783         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13784         (PREDICATE_CODES): Remove duplicate.
13785         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13786         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13787         (MASK_PROFILE_KERNEL): Adjust define.
13788
13789 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13790
13791         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13792         of long string literals from 32 bytes to sizeof (void *) when !-Os
13793         and to 1 with -Os.
13794
13795 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13796
13797         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13798         constant addresses in the normal mode.
13799
13800 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13801
13802         * system.h (CHAR_BITFIELD): Delete.
13803         (BOOL_BITFIELD): New.
13804         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13805         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13806
13807 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13808
13809         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13810         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13811         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13812         (TARGET_STRUCT_VALUE_RTX): Likewise.
13813         (TARGET_RETURN_IN_MEMORY): Likewise.
13814         (arc_return_in_memory): Likewise.
13815         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13816         (PROMOTE_FUNCTION_RETURN): Likewise.
13817         (RETURN_IN_MEMORY): Likewise.
13818         (STRUCT_VALUE): Likewise.
13819
13820 2004-01-26  Richard Henderson  <rth@redhat.com>
13821
13822         * c-parse.in (extension): Use itype.
13823         (SAVE_EXT_FLAGS): Don't allocate a tree.
13824         (RESTORE_EXT_FLAGS): Don't read a tree.
13825
13826 2004-01-26  Jan Hubicka  <jh@suse.cz>
13827
13828         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13829         to datastructure to be recycled.
13830
13831 2004-01-25  Jan Hubicka  <jh@suse.cz>
13832
13833         * genextract.c (main): Do not output the memset when not checking.
13834
13835 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13836
13837         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13838         switch statement instead of a chain of if statements.
13839
13840 2004-01-26  Jeff Law  <law@redhat.com>
13841
13842         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13843         acute accents for Petur Runolfsson's entry.
13844
13845 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13846
13847         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13848         (TARGET_RETURN_IN_MEMORY): Likewise.
13849         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13850         (RETURN_IN_MEMORY): Likewise.
13851
13852 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13853
13854          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13855          unaligned load/store into smaller loads and stores.
13856
13857 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13858
13859         * function.c (assign_parms): Do not assign
13860         long long argument to memory in prologue if
13861         is it loaded into register.
13862
13863 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13864
13865          PR middle-end/13779
13866          * expr.c (emit_group_load): split constant
13867          correctly into register components of PARALLEL insn.
13868
13869 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13870
13871         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13872         Use adjust_address_nv directly with appropriate mode.
13873         (restore_stack_nonlocal): Ditto.
13874
13875 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13876
13877         * config/xtensa/xtensa-protos.h: Remove the prototype for
13878         xtensa_builtin_saveregs.
13879         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13880         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13881         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13882         (TARGET_STRUCT_VALUE_RTX): Likewise.
13883         (TARGET_RETURN_IN_MEMORY): Likewise.
13884         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13885         (xtensa_builtin_saveregs): Make it static.
13886         (xtensa_return_in_memory): New.
13887         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13888         (PROMOTE_FUNCTION_RETURN): Likewise.
13889         (PROMOTE_PROTOTYPES): Likewise.
13890         (STRUCT_VALUE): Likewise.
13891         (RETURN_IN_MEMORY): Likewise.
13892         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13893
13894 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13895
13896         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13897         (arm_setup_incoming_varargs): Likewise.
13898         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13899
13900 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13901
13902         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13903         (cris_setup_incoming_varargs): Likewise.
13904         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13905
13906 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13907
13908         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13909         (ns32k_struct_value_rtx): Likewise.
13910         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13911         NS32K_STRUCT_VALUE_REGNUM.
13912
13913 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13914
13915         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13916         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13917         (TARGET_STRUCT_VALUE_RTX): Likewise.
13918         (arm_struct_value_rtx): Likewise.
13919         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13920         (STRUCT_VALUE): Likewise.
13921         (STRUCT_VALUE_REGNUM): Likewise.
13922         (PROMOTE_PROTOTYPES): Likewise.
13923
13924 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13925
13926         * config/ia64/ia64-protos.h: Remove the prototype for
13927         ia64_setup_incoming_varargs and ia64_return_in_memory.
13928         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13929         (TARGET_RETURN_IN_MEMORY): Likewise.
13930         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13931         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13932         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13933         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13934         (ia64_return_in_memory): Make it static.  Change the return
13935         type to bool from int.  Add an argument.
13936         (ia64_struct_value_rtx): New.
13937         * config/ia64/ia64.h: Remove commented-out definitions of
13938         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13939         PROMOTE_PROTOTYPES.
13940         (RETURN_IN_MEMORY): Remove.
13941         (STRUCT_VALUE_REGNUM): Likewise.
13942         (STRICT_ARGUMENT_NAMING): Likewise.
13943
13944 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13945
13946         PR target/13666
13947         * config/sparc/sparc.c (function_arg_union_value): New function.
13948         (function_arg): Use it to deal with unions.
13949         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13950         Replace a conditional statement by a simpler one.
13951
13952 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13953
13954         * config/mips/mips.c (mips16_optimize_gp): Delete.
13955         (mips_reorg): Don't call it.
13956
13957 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13958
13959         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13960         (floatunsqihf2): Remove operand 6.
13961         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13962         fix patterns.
13963         (ldi_conditional, ldf_conditional): Validate operands.
13964
13965 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13966
13967         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
13968         (HAVE_GAS_HIDDEN): Undefine as interim measure.
13969
13970 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13971
13972         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
13973         memory references if TARGET_EXPOSE_LDP nonzero.
13974
13975 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13976
13977         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
13978
13979 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13980
13981         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
13982         invalid operand combinations.
13983
13984 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13985
13986         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
13987         c4x_legitimate_address_p.  Fix post_modify check.
13988
13989         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
13990         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
13991
13992 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
13993
13994         * config/pa/pa-protos.h: Remove the prototype for
13995         hppa_builtin_saveregs.  Add a prototype for
13996         pa_return_in_memory.
13997         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
13998         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13999         (TARGET_STRUCT_VALUE_RTX): Likewise.
14000         (TARGET_RETURN_IN_MEMORY): Likewise.
14001         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14002         (pa_struct_value_rtx): Likewise.
14003         (pa_return_in_memory): Likewise.
14004         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
14005         PA_STRUCT_VALUE_REGNUM.
14006         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
14007         (EXPAND_BUILTIN_SAVEREGS): Remove.
14008         (PROMOTE_PROTOTYPES): Likewise.
14009         (PROMOTE_FUNCTION_RETURN): Likewise.
14010
14011 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14012
14013         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
14014         (TARGET_STRUCT_VALUE_RTX): Likewise.
14015         (vax_struct_value_rtx): Likewise.
14016         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
14017         VAX_STRUCT_VALUE_REGNUM.
14018         (PROMOTE_PROTOTYPES): Remove.
14019
14020 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14021
14022         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
14023
14024 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
14025
14026         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
14027         and MIPS64 have HI/LO interlocks.  Update comment.
14028
14029 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14030
14031         * config/stormy16/stormy16-protos.h: Remove the prototype for
14032         xstormy16_setup_incoming_varargs.
14033         * config/stormy16/stormy16.c
14034         (xstormy16_setup_incoming_varargs): Remove.
14035         (xstormy16_return_in_memory): New.
14036         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14037         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14038         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14039         (TARGET_STRUCT_VALUE_RTX): Likewise.
14040         (TARGET_RETURN_IN_MEMORY): Likewise.
14041         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
14042         (PROMOTE_FUNCTION_RETURN): Likewise
14043         (PROMOTE_PROTOTYPES): Likewise
14044         (RETURN_IN_MEMORY): Likewise
14045         (STRUCT_VALUE): Likewise
14046         (SETUP_INCOMING_VARARGS): Likewise
14047
14048 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14049
14050         * config/mips/mips.c (mips_offset_within_object_p): New function.
14051         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
14052         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
14053         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
14054
14055 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14056
14057         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
14058         (PROMOTE_FUNCTION_RETURN): Likewise.
14059
14060 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14061
14062         * config/mn10300/mn10300-protos.h: Remove the prototype for
14063         mn10300_builtin_saveregs.
14064         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
14065         (TARGET_STRUCT_VALUE_RTX): Likewise.
14066         (TARGET_RETURN_IN_MEMORY): Likewise.
14067         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14068         (mn10300_return_in_memory): Likewise.
14069         (mn10300_builtin_saveregs): Make it static.
14070         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
14071         (RETURN_IN_MEMORY): Likewise.
14072         (STRUCT_VALUE): Likewise.
14073         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14074
14075 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
14076
14077         PR bootstrap/13853
14078         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
14079
14080 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14081
14082         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
14083         using ccr.
14084
14085 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14086
14087         * config/i860/i860-protos.h: Remove the prototype for
14088         i860_saveregs.
14089         * config/i860/i860.c (i860_saveregs): Make it static.
14090         (i860_struct_value_rtx): New.
14091         (TARGET_STRUCT_VALUE_RTX): Likewise.
14092         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14093         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
14094         I860_STRUCT_VALUE_REGNUM.
14095         (EXPAND_BUILTIN_SAVEREGS): Remove.
14096
14097 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14098
14099         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
14100         (TARGET_RETURN_IN_MEMORY): Likewise.
14101         (m68hc11_struct_value_rtx): Likewise.
14102         (m68hc11_return_in_memory): Likewise.
14103         * config/m68hc11/m68hc11.h: Remove a commented-out definition
14104         of PROMOTE_PROTOTYPES.
14105         (RETURN_IN_MEMORY): Remove.
14106         (STRUCT_VALUE_REGNUM): Likewise.
14107
14108 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14109
14110         * config/mmix/mmix-protos.h: Remove the prototype for
14111         mmix_setup_incoming_varargs.
14112         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14113         (TARGET_STRUCT_VALUE_RTX): Likewise.
14114         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14115         (mmix_setup_incoming_varargs): Make it static.
14116         (mmix_struct_value_rtx): New.
14117         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
14118         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
14119         (STRUCT_VALUE_REGNUM): Remove.
14120         (SETUP_INCOMING_VARARGS): Likewise.
14121
14122 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14123
14124         * config/mips/mips-protos.h: Remove the prototypes for
14125         mips_setup_incoming_varargs and mips_return_in_memory.
14126         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14127         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14128         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14129         (TARGET_STRUCT_VALUE_RTX): Likewise.
14130         (TARGET_RETURN_IN_MEMORY): Likewise.
14131         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14132         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14133         (mips_setup_incoming_varargs): Match the prototype for
14134         TARGET_SETUP_INCOMING_VARARGS.
14135         (mips_return_in_memory): Make it static.  Add argument fntype.
14136         (mips_strict_argument_naming): New.
14137         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
14138         (PROMOTE_FUNCTION_ARGS): Likewise.
14139         (PROMOTE_FUNCTION_RETURN): Likewise.
14140         (STRUCT_VALUE): Likewise.
14141         (RETURN_IN_MEMORY): Likewise.
14142         (SETUP_INCOMING_VARARGS): Likewise.
14143         (STRICT_ARGUMENT_NAMING): Likewise.
14144
14145 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14146
14147         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
14148         (TARGET_RETURN_IN_MEMORY): Likewise.
14149         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14150         (ip2k_return_in_memory): Likewise.
14151         (ip2k_setup_incoming_varargs): Likewise.
14152         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
14153         (STRUCT_VALUE): Likewise.
14154         (STRUCT_VALUE_INCOMING): Likewise.
14155         (SETUP_INCOMING_VARARGS): Likewise.
14156
14157 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14158
14159         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
14160         (TARGET_RETURN_IN_MEMORY): Likewise.
14161         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14162         (avr_return_in_memory): Remove.
14163         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
14164         (STRUCT_VALUE): Likewise.
14165         (STRUCT_VALUE_INCOMING): Likewise.
14166         (STRICT_ARGUMENT_NAMING): Likewise.
14167
14168 2004-01-25  Jan Hubicka  <jh@suse.cz>
14169
14170         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
14171
14172 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14173
14174         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
14175         (mips_regno_mode_ok_for_base_p): Declare.
14176         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
14177         (FRAME_POINTER_REGNUM): Renumber to 78.
14178         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
14179         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
14180         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
14181         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
14182         (REG_MODE_OK_FOR_BASE_P): Likewise.
14183         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
14184         entry for 77 to "$arg" and entry for 78 to "$frame".
14185         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
14186         (mips_reg_mode_ok_for_base_p): Remove.
14187         (mips_regno_mode_ok_for_base_p): New function, derived from old
14188         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
14189         restrictions unless we're being strict.
14190         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
14191
14192 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14193
14194         * c-common.h: Fix comment typos.
14195         * c-decl.c: Likewise.
14196         * cgraphunit.c: Likewise.
14197         * combine.c: Likewise.
14198         * et-forest.c: Likewise.
14199         * flow.c: Likewise.
14200         * function.c: Likewise.
14201         * ifcvt.c: Likewise.
14202         * integrate.c: Likewise.
14203         * jump.c: Likewise.
14204         * postreload.c: Likewise.
14205         * varray.c: Likewise.
14206
14207 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14208
14209         * doc/frontends.texi: Update copyright.
14210         * doc/gcov.texi: Likewise.
14211         * doc/gty.texi: Likewise.
14212         * doc/sourcebuild.texi: Likewise.
14213         * doc/standards.texi: Likewise.
14214
14215 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
14216
14217         PR target/12978
14218         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
14219         Remove movstrqi_small because it conflicts with movstrqi_large.
14220
14221 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14222
14223         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14224         (TARGET_STRUCT_VALUE_RTX): Likewise.
14225         (cris_struct_value_rtx): Likewise.
14226         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
14227         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
14228         STRUCT_VALUE_REGNUM.
14229         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
14230
14231 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
14232
14233         PR bootstrap/13848
14234         * cse.c (cse_cc_succs): Change the mode of the source expression
14235         as soon as decide we need a new mode.  Don't permit changing modes
14236         if we found a match in a successor block.
14237         (cse_condition_code_reg): Save original mode of source expression
14238         so that we know whether we have to change the mode in other
14239         insns.
14240
14241 2004-01-24  Jan Hubicka  <jh@suse.cz>
14242
14243         * emit-rtl.c (change_address, adjust_address_1, offset_address,
14244         widen_memory_access):  Return early when there is nothing to change.
14245
14246 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
14247
14248         * simplify-rtx.c (simplify_relational_operation): Don't
14249         simplify address == constant into address + -constant == 0.
14250
14251 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14252
14253         * gcc.c (process_command): Don't internationalize the
14254         Copyright message.
14255         * mips-tfile.c (main): Likewise.
14256
14257 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
14258
14259         * cse.c: (cse_cc_succs) Fix comparison warning.
14260
14261 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14262
14263         * config/h8300/h8300.md: Remove extraneous USE in expanders.
14264
14265 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14266
14267         * config/h8300/h8300-protos.h: Provide prototypes for
14268         h8300_legitimate_constant_p and h8300_legitimate_address_p.
14269         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
14270         (h8300_rtx_ok_for_base_p): Likewise.
14271         (h8300_legitimate_address_p): Likewise.
14272         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
14273         h8300_legitimate_constant_p.
14274         (RTX_OK_FOR_BASE_P): Remove.
14275         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
14276
14277 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14278
14279         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
14280         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
14281         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
14282         (REG_OK_FOR_BASE_STRICT_P): Likewise.
14283         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
14284         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
14285         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
14286         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
14287
14288 2004-01-24  Jan Hubicka  <jh@suse.cz>
14289
14290         * cselib.c (remove_useless_values):  Do not access discarded values.
14291
14292 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
14293
14294         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
14295         arrays.
14296
14297 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14298
14299         * recog.c: Fix a typo in copyright.
14300
14301 2004-01-23  Andrew Pinski  <apinski@apple.com>
14302
14303         * config/rs6000/rs6000.md (call): Fix misappiled patch.
14304         (call_value): Likewise.
14305
14306 2004-01-23  Richard Henderson  <rth@redhat.com>
14307
14308         PR opt/12941
14309         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
14310         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
14311         if SHIFT_COUNT_TRUNCATED is set.
14312
14313 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
14314
14315         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
14316         separate real and imaginary parts.
14317         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
14318
14319 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
14320
14321         PR target/13674
14322         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
14323         loading into GPR.
14324
14325 2004-01-23  Jan Hubicka  <jh@suse.cz>
14326
14327         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
14328         change.
14329
14330         * alloc-pool.c (align_four): Kill.
14331         (create_alloc_pool): Align size to eight.
14332         (free_alloc_pool, free_pool): Invalidate deallocated data.
14333
14334 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14335
14336         PR gcc/1532
14337         * cse.c (cse_change_cc_mode): New static function.
14338         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14339         (cse_condition_code_reg): New function.
14340         * rtl.h (cse_condition_code_reg): Declare.
14341         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14342         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14343         cc_modes_compatible.
14344         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14345         (TARGET_CC_MODES_COMPATIBLE): Define.
14346         (TARGET_INITIALIZER): Add new initializers.
14347         * targhooks.c (default_cc_modes_compatible): New function.
14348         * targhooks.c (default_cc_modes_compatible): Declare.
14349         * hooks.c (hook_bool_intp_intp_false): New function.
14350         * hooks.h (hook_bool_intp_intp_false): Declare.
14351         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14352         (TARGET_CC_MODES_COMPATIBLE): Define.
14353         (ix86_fixed_condition_code_regs): New static function.
14354         (ix86_cc_modes_compatible): Likewise.
14355         * doc/tm.texi (Condition Code): Document new hooks.
14356
14357 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14358
14359         * fixinc/inclhack.def (bad_lval): Renamed to ...
14360         (alpha_bad_lval): ... this.
14361         Removed file list.
14362         Restrict to alpha*-dec-osf*.
14363         * fixinc/fixincl.x: Regenerate.
14364         * fixinc/tests/base/dirent.h: Remove, moving test ...
14365         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14366
14367 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14368
14369         PR c/13814
14370         * c-decl.c (diagnose_mismatched_decls): Also discard a
14371         built-in if we encounter an old-style definition with the
14372         same name.
14373
14374 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14375
14376         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14377         set to default{32,64}.
14378
14379 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14380
14381         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14382         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14383
14384 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14385             Olivier Hainque  <hainque@act-europe.fr>
14386
14387         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14388         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14389
14390 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14391
14392         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14393         size for minipool references.
14394
14395 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14396
14397         * real.c (real_floor, real_ceil): Tweak to allow input and output
14398         arguments to overlap.
14399         (real_round): New function to implement round(3m) semantics.
14400         * real.h (real_round): Prototype here.
14401         * builtins.c (fold_builtin_round): New function to constant fold
14402         round, roundf and roundl.
14403         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14404
14405 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14406
14407         PR optimization/13819
14408         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14409         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14410         (sh_handle_sp_switch_attribute): Remove warning.
14411
14412 2003-11-30  Jan Hubicka  <jh@suse.cz>
14413
14414         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14415
14416 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14417
14418         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14419         may or may not return non-NIL.
14420         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14421         check CANNOT_CHANGE_MODE_CLASS
14422
14423 2004-01-23  Jan Hubicka  <jh@suse.cz>
14424
14425         * basic-block.h (PROP_POSTRELOAD): New macro.
14426         (CLEANUP_LOG_LINKS): New.
14427         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14428         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14429
14430         * cselib.c (value_pool): New.
14431         (new_cselib_val): Use pool.
14432         (cselib_init): Initialize value_pool
14433         (cselib_finish): Free pool.
14434
14435 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14436
14437         * config/sparc/sparc.c (scan_record_type): New function.
14438         (function_arg_slotno): Use it to determine which kinds of
14439         registers the record can be passed in.
14440
14441 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14442
14443         * config/pa/fptr.c: Fix old-style definition.
14444
14445 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14446
14447         PR optimization/13724
14448         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14449         represents the zero bits produced by a ZERO_EXTEND operation.
14450
14451 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14452
14453         PR optimization/13821
14454         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14455         correctly calculate the lowpart offset of the contracted subreg.
14456
14457 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14458
14459         * doc/invoke.texi (Optimize Options): Note that --param arguments
14460         are subject to change without notice.
14461
14462 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14463
14464         * config.gcc (mips-sgi-irix6*o32): Removed.
14465         * config/mips/iris6-o32-as.h: Likewise.
14466         * config/mips/iris6-o32-gas.h: Likewise.
14467         * config/mips/iris6-o32.h: Likewise.
14468
14469 2004-01-22  Jan Hubicka  <jh@suse.cz>
14470
14471         * cfgcleanup.c (first_pass): New static variable.
14472         (try_forward_edges):  Add work limiting check for threading.
14473         (try_crossjump_bb):  Add work limiting check for crossjumping.
14474         (try_optimize_cfg):  Maintain first pass variable.
14475
14476 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14477
14478         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14479         handles complex and vector modes.
14480
14481 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14482
14483         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14484         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14485         (STRICT): Likewise.
14486
14487 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14488
14489         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14490         (genrtl_for_stmt): Remove emit_nop calls.
14491
14492 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14493
14494         PR target/13713
14495         PR target/13324
14496         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14497         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14498         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14499
14500 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14501
14502         * config/arm/arm.c: Include "debug.h".
14503         (thumb_pushpop): Take two new arguments.  Add some commentary.
14504         Output frame information when pushing.
14505         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14506         thumb_pushpop.
14507         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14508         offset, and pass it to thumb_pushpop.  Output CFI information.
14509         (thumb_expand_prologue): Add some frame-related markers and notes.
14510
14511 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14512
14513         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14514         for TARGET_64BIT.
14515         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14516         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14517
14518 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14519             Paolo Bonzini  <bonzini@gnu.org>
14520
14521         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14522         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14523         * rtl.h (subreg_lsb_1): Prototype here.
14524         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14525         sign extensions.
14526
14527 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14528
14529         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14530         macro need not be defined if jump-tables should contain
14531         relative addresses only when -fPIC or -fPIC is in effect.
14532
14533 2004-01-22  Jan Hubicka  <jh@suse.cz>
14534
14535         * alias.c (reg_base_value): Turn into varray.
14536         (reg_base_value_size): Kill.
14537         (old_reg_base_value): New deletable varray.
14538         (alias_invariant_size): New variable.
14539         (REG_BASE_VALUE): Update to use varray.
14540         (find_base_value): Likewise.
14541         (record_set): Likewise.
14542         (record_base_value): Likewise.
14543         (memrefs_conflict_p): Likewise.
14544         (record_set): Likewise
14545         (record_base_value): Likewise.
14546         (memrefs_conflict_p): Use alias_invariant_size.
14547         (init_alias_analysis): Use varray; set alias_invariant_size;
14548         rescale other arrays to be sized by maxreg.
14549         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14550
14551 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14552
14553         * config/sparc/sparc.c (function_arg_slotno): Use
14554         FLOAT_TYPE_P to detect FP fields in structures.
14555         (function_arg_record_value_1): Likewise.
14556         (function_arg_record_value_2): Likewise.
14557
14558 2004-01-22  Jan Hubicka  <jh@suse.cz>
14559
14560         * function.c (allocate_struct_function): Do not initialize expr, emit
14561         and varasm.
14562         (prepare_function_start): Do it here.
14563         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14564
14565 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14566
14567         PR target/13559
14568         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14569         to 'word_mode' once the first slot has been filled.
14570
14571 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14572
14573         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14574         computation of the number of integer registers required.
14575
14576 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14577
14578         * config/i386/i386.md: Simplify certain comparisons of
14579         const_int.
14580
14581 2004-01-21  Andrew Pinski  <apinski@apple.com>
14582
14583         PR target/13785
14584         * config/rs6000/rs6000.md (call_value): Force operand
14585         1 not operand 0 into a register.
14586
14587 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14588
14589         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14590         unwind-dw2-fde.h: Update copyright.
14591
14592 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14593
14594         * pa-protos.h: Update copyright.
14595         * pa.h: Likewise.
14596         * pa.md: Likewise.
14597
14598 2004-01-21  Caroline Tice  <ctice@apple.com>
14599
14600         PR target/12308
14601         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14602         flags register.
14603         (fix_truncdfdi2): Likewise.
14604         (fix_truncsfdi2): Likewise.
14605         (*fix_truncdi_1): Likewise.
14606         (fix_truncxfsi2): Likewise.
14607         (fix_truncdfsi2): Likewise.
14608         (fix_truncsfsi2): Likewise.
14609         (*fix_truncsi_1): Likewise.
14610         (fix_truncxfhi2): Likewise.
14611         (fix_truncdfhi2): Likewise.
14612         (fix_truncsfhi2): Likewise.
14613         (*fix_trunchi_1): Likewise.
14614
14615 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14616
14617         * alias.c, basic-block.h, c-common.c, c-common.h,
14618         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14619         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14620         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14621         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14622         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14623         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14624         genautomata.c, genconditions.c, genemit.c, genflags.c,
14625         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14626         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14627         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14628         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14629         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14630         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14631         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14632         unwind.h, varray.c, varray.h: Update copyright.
14633
14634 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14635
14636         * config/h8300/coff.h: Update copyright.
14637         * config/h8300/elf.h: Likewise.
14638         * config/h8300/h8300-protos.h: Likewise.
14639         * config/h8300/h8300.c: Likewise.
14640         * config/h8300/h8300.h: Likewise.
14641         * config/h8300/h8300.md: Likewise.
14642
14643 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14644
14645         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14646         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14647         ultrix_unistd): New hacks.
14648         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14649         ULTRIX_CONST2_CHECK): Add checks.
14650         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14651         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14652         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14653         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14654         * fixinc/tests/base/locale.h: New file.
14655         * fixinc/fixincl.x: Rebuilt.
14656
14657 2004-01-21  Andreas Jaeger  <aj@suse.de>
14658             Michael Matz  <matz@suse.de>
14659
14660         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14661
14662 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14663
14664         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14665         _Jv_RegisterClasses through a function pointer.
14666
14667 2004-01-21  Falk Hueffner  <falk@debian.org>
14668
14669         PR target/12898
14670         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14671         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14672         which need multiple instructions to emit.
14673
14674 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14675
14676         * config/m32r/m32r.h (CPP_SPEC): Define.
14677
14678 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14679
14680         * c-decl.c (merge_decls): Kill different_binding_level and
14681         different_tu arguments; simplify throughout.
14682         (duplicate_decls): Likewise.
14683         (pushdecl, merge_translation_unit_decls): Update calls to
14684         duplicate_decls.
14685
14686 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14687
14688         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14689         $(SYSTEM_H).
14690         (print-rtl1.o): Depend on $(SYSTEM_H).
14691
14692 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14693
14694         PR bootstrap/12730
14695         * configure.ac: Delete definition and subsitution of docdir.
14696         Add info, man, srcman and srcinfo to target hooks. Create doc/
14697         directory.
14698         * configure: Regenerate.
14699         * Makefile.in: Don't substitute docdir and delete all references
14700         throughout.
14701         (MAKEINFOFLAGS): Define.
14702         (stmp-docobjdir): Delete.
14703         (INFOFILES, MANFILES): Define.
14704         (info): Call lang.info, srcinfo and lang.srcinfo.
14705         (generated-manpages): Call lang.man, srcman and lang.srcman.
14706         (srcinfo, srcman): New rules to copy back files to source directory.
14707         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14708         (install-man): Revamp rule.
14709         (clean): Update dvi directory.
14710         (distclean): Delete TAGS from front end directorys.
14711         (maintainer-clean): Delete all document files in source directory.
14712
14713         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14714         (objc.srcman, objc.srcinfo): Likewise.
14715
14716 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14717
14718         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14719         (matherr_decl): rename & relocate as exception_structure.
14720         This fix must precede the math_exception fix.
14721
14722 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14723
14724         * fold-const.c (fold_convert): Rename to fold_convert_const.
14725         (fold_convert_const): Change arguments to take a tree_code,
14726         a type and the operand/expression to be converted.  Return
14727         NULL_TREE if no simplification is possible.  Add support for
14728         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14729         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14730         Adjust call to fold_convert to match new fold_convert_const.
14731         Avoid modifying the tree passed to fold in-place.
14732
14733 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14734
14735         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14736         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14737         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14738
14739 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14740
14741         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14742         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14743         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14744         (emit_move_sequence): Check scratch_reg first in various if statements.
14745         Extend source simplification to handle all 64-bit CONST_INTs.
14746         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14747         frame size.
14748         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14749         frame offset calculations.
14750         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14751         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14752         LEGITIMATE_64BIT_CONST_INT_P): Define.
14753         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14754         any CONST_INT as legitimate during and after reload.
14755         (VAL_32_BITS_P, INT_32_BITS): Define.
14756         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14757
14758 2004-01-20  Jan Hubicka  <jh@suse.cz>
14759
14760         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14761         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14762         containing hard regs are shared.
14763         (gen_hard_reg_clobber): New function.
14764         (hard_reg_clobbers): New array.
14765         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14766         (copy_rtx): Do not copy clobbers containing hard regs.
14767         * rtl.h (gen_hard_reg_clobber): Declare.
14768
14769 2004-01-20  Jan Hubicka  <jh@suse.cz>
14770
14771         * varray.c:  Include hashtab.h
14772         (varray_descriptor): New structure.
14773         (hash_descriptor, eq_descriptor, varray_descriptor,
14774         print_statistics): New static functions
14775         (varray_init, varray_grow): Update statistics
14776         (dump_varray_statistics): New function.
14777         * varray.h (dump_varray_statistics): Declare.
14778         * toplev.c (finalize): Call it.
14779         * Makefile.in (varray.o): Add dependency.
14780
14781 2004-01-20  Jan Hubicka  <jh@suse.cz>
14782
14783         * cselib.c: Include alloc-pool.h
14784         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14785         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14786         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14787         unchain_one_elt_loc_list_pool, unchain_one_value,
14788         new_cselib_val): Simplify using allocpool.
14789         (cselib_init): Initialize allocpools.
14790         (cselib_finish): Finish allocpools.
14791         * Makefile.in (cselib.o): Depend on alloc-pool.h
14792
14793 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14794
14795         * config/mips/mips.c (mips_load_call_address): Make the call insn
14796         use $gp if it could be calling a lazy binding stub.
14797
14798 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14799
14800         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14801         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14802         (TARGET_STRUCT_VALUE_RTX): Likewise.
14803         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14804         (PROMOTE_FUNCTION_RETURN): Remove.
14805         (STRUCT_VALUE): Remove.
14806
14807 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14808
14809         PR bootstrap/13735
14810         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14811         register as pointer after reload.
14812
14813 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14814
14815         PR optimization/12440
14816         * loop.c: Include ggc.h.
14817         (loop_optimize): Run garbage collector between optimization of loops.
14818         * Makefile.in (loop.o): Add GGC_H dependency.
14819
14820 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14821
14822         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14823         vector register special in function without prototype.
14824         (function_arg_advance): Vector parameters get always
14825         GPRs allocated for the linux64 target.
14826
14827 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14828
14829         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14830         not TARGET_M32RX_MASK.
14831
14832 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14833
14834         PR target/13557
14835         * config/sparc/sparc.c (function_arg): Reorder the cases.
14836
14837 2004-01-19  Per Bothner  <per@bothner.com>
14838
14839         Move cpp_reader's line_maps field to a shared global.
14840         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14841         and change the type to a pointer rather than a struct.
14842         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14843         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14844         Likewise.
14845         * cppfiles.c (validate_pch):  Likewise.
14846         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14847         Likewise.
14848         * cpperror.c (print_location):  Likewise.
14849         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14850         * cppinit.c (cpp_create_reader):  Handle new parameter.
14851         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14852         * input.h (line_table):  New variable.
14853         * toplev.c (line_table):  Declare variable.
14854         (general_init):  Initialize line_table.
14855         * c-opts.c (c_common_init_options):  Pass line_table to
14856         cpp_create_reader.
14857         * fix-header.c (read_scan_file):  New local variable line_table.
14858         Initialize, and pass it to cpp_create_reader.
14859         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14860         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14861
14862 2004-01-19  Per Bothner  <per@bothner.com>
14863
14864         Implement a cache for linemap_lookup.
14865         * line-map.h (struct_line_maps):  Add cache field.
14866         * line-map.c (linemap_init):  Zero cache field.
14867         (linemap_add):  Set cache field to offset of newly allocated map.
14868         (linemap_lookup):  Use and set cache field.
14869
14870 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14871
14872         PR optimization/13567
14873         * cse.c (cse_basic_block): Call cse_insn with a non-null
14874         libcall_insn for the last SET insn of a no-confilict block.
14875
14876 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14877
14878         * Makefile.in (target_noncanonical, program_transform_name): Use
14879         immediate define instead of deferred.
14880         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14881         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14882         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14883         deferred backquote.
14884
14885 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14886
14887         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14888         true unconditionally.
14889         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14890         Remove.
14891         (build_unary_op, build_modify_expr): Don't handle extended
14892         lvalues.
14893         (build_component_ref, build_conditional_expr): Call non_lvalue
14894         instead of pedantic_non_lvalue.
14895         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14896         * fold-const.c (fold): Don't check pedantic directly for
14897         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14898         passed to pedantic_non_lvalue.
14899         * doc/extend.texi: Remove documentation of extended lvalues.
14900
14901 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14902
14903         PR optimization/5263
14904         * simplify-rtx.c (associative_constant_p): Delete.
14905         (simplify_associative_operation): Rewrite to linearize terms, and
14906         attempt to simplify new term against both left and right subterms.
14907         (simplify_binary_operation): Call swap_commutative_operands_p on
14908         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14909         trueop0 and trueop1 down to where first needed.
14910         (simplify_relational_operation): Likewise.
14911         * rtlanal.c (commutative_operand_precedence): Also order constant
14912         operands using avoid_constant_pool_reference.
14913
14914 2004-01-19  Richard Henderson  <rth@redhat.com>
14915
14916         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14917         don't check memory mode.
14918         (unaligned_memory_operand): Likewise.
14919         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14920         abort for op0 not MEM.
14921
14922         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14923         is not a reg, copy to a scratch first.
14924         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14925         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14926         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14927         (reload_inqi, reload_inhi): Fix mode of op0.
14928         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14929         reload_outhi_help): Likewise.  Use define_insn_and_split.
14930
14931         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14932         as well as $29 dead.
14933
14934 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14935
14936         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14937         "tls_object" for thread-local objects.
14938         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14939         "#tls" for thread-local sections.
14940         * configure.ac (thread-local checks): Specify --fatal-warnings in
14941         every binutils-specific checks.  For sparc*-*-*, test whether the
14942         OS is Solaris and the tools are native and act accordingly.
14943         * configure: Rebuild.
14944
14945 2004-01-19  Jeff Law  <law@redhat.com>
14946
14947         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14948         Jerry Quinn and Petur Runolfsson.
14949
14950 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14951
14952         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14953         size, don't use the larger zero-extending loads.
14954
14955 2004-01-19  Richard Henderson  <rth@redhat.com>
14956
14957         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14958         * alpha.md (UNSPEC_NT_LDA): Remove.
14959         (UNSPEC_CVTLQ, cvtlq): New.
14960         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14961         (extendsidi2_fix): Remove.
14962         (extendsidi2 splitter): Use cvtlq.
14963         (extendsidi2 fp peepholes): Remove.
14964         (cvtql): Use SFmode instead of SImode.
14965         (fix_trunc?fsi): Update to match.
14966         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
14967         (movsi): Rename from movsi_nofix, remove f alternatives.
14968         (movsi_nt_vms): Similarly.
14969         (movsi_fix, movsi_nt_vms_fix): Remove.
14970         (nt_lda): Remove.
14971         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
14972
14973 2004-01-19  Jan Hubicka  <jh@suse.cz>
14974
14975         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
14976         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
14977         list.
14978         (cgraph_remove_unreachable_nodes): New function
14979         (cgraph_decide_inlining_of_small_function): Fix pasto.
14980         (cgraph_decide_inlining_incrementally): Fix pasto.
14981         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
14982
14983 2004-01-19  Steven Bosscher  <stevenb@suse.de>
14984
14985         * gengtype.c (header_file): Make it static.
14986         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
14987         * gengtype.h (header_file): No longer extern.
14988
14989 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14990
14991         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
14992         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
14993         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
14994
14995 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
14996
14997         * stmt.c (HAVE_casesi): Define it not already defined.
14998         (HAVE_tablejump): Likewise.
14999         (expand_end_case_type): Resort to the binary tree method if
15000         neither casesi or tablejump is available.
15001
15002 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
15003
15004         * final.c (final_scan_insn): Make non-static again.
15005         * output.h (final_scan_insn): Re-add prototype.
15006         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
15007         to final_scan_insn call.
15008         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
15009         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
15010         * config/pa/pa.c (output_lbranch, output_call): Likewise.
15011         * config/sh/sh.c (print_slot): Likewise.
15012         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
15013         (output_sibcall, sparc_flat_function_epilogue): Likewise.
15014
15015 2004-01-18  Jan Hubicka  <jh@suse.cz>
15016
15017         * basic-block.h (try_redirect_by_replacing_jump): Declare.
15018         * cfgcleanup.c (try_optimize_cfg): Use it.
15019         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
15020         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
15021         Kill hack.
15022         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
15023
15024         Revert:
15025         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15026
15027                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15028                 even after reload, just don't remove the actual jump tables.
15029
15030 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15031
15032         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
15033
15034 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15035
15036         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
15037         the size of a pointer in bytes.
15038
15039 2004-01-18  Roger Sayle  <roger@eyesopen.com>
15040
15041         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
15042         live "next" variable, which could lead to an infinite loop.
15043
15044 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
15045
15046         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
15047         block.
15048
15049         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15050         Check for NULL in the chain and remove repeated code.
15051
15052 2004-01-18  Jan Hubicka  <jh@suse.cz>
15053
15054         * coverage.c (checksum_string): Rename to ...
15055         (coverage_checksum_string): ... this one, Use crc32_string; recognize
15056         names containing random number and zero the number out in order to get
15057         match.
15058
15059 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15060
15061         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
15062
15063 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15064
15065         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
15066         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
15067         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
15068         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
15069         doc/trouble.texi: Remove trailing whitespace.
15070
15071 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15072
15073         PR target/7618
15074         * config/mips/mips.c: Include cfglayout.h.
15075         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15076         (mips_unspec_offset_high): Add temporary register argument.
15077         (mips_load_call_address): New function, split out from...
15078         (mips_expand_call): ...here.
15079         (mips_output_cplocal): New function.
15080         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
15081         (mips_emit_loadgp): New function, split out from...
15082         (mips_expand_prologue): ...here.
15083         (mips_output_mi_thunk): New function.
15084
15085 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
15086
15087         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
15088         mcpu32): Remove redundant checks for implied target predefines.
15089
15090 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
15091
15092         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15093         Return type is unsigned int not int.
15094         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15095         Likewise.
15096
15097 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15098
15099         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
15100         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
15101         "GNU/Linux" and "Microsoft Windows" terminology.
15102
15103 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15104
15105         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
15106         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
15107         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
15108         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
15109         @smallexample instead of @example.
15110
15111 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
15112
15113         * objc/objc-act.c (build_objc_method_call): Use target
15114         hooks instead of macros to determine if ..._stret
15115         dispatchers should be used (NeXT runtime only).
15116
15117 2004-01-17  Roger Sayle  <roger@eyesopen.com>
15118
15119         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
15120         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
15121
15122 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15123
15124         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
15125         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
15126         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
15127         macros.
15128         * reload1.c (emit_reload_insns): Use them.
15129         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
15130         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
15131         for NULL PATTERN.
15132
15133 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15134
15135         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
15136         (final_scan_insn): Update to take an additional SEEN argument.  Emit
15137         a line note after the prologue.  Make static.
15138         (line_note_exists): Remove.
15139         (final): Don't initialize line_note_exists.  Update call to
15140         final_scan_insn.
15141         * output.h (final_scan_insn): Remove prologue.
15142         * function.c (set_insn_locators): Update comment.
15143         (thread_prologue_and_epilogue_insns): Add a comment.
15144
15145 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
15146
15147         PR target/10781
15148         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15149         Prototype.
15150         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15151         New function.
15152         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
15153         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
15154         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
15155
15156 2004-01-17  Jan Hubicka  <jh@suse.cz>
15157
15158         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
15159         commit.
15160
15161         * toplev.c (HAVE_conditional_execution): Provide default.
15162         (rest_of_handle_reorder_blocks): For conditional_execution target
15163         update liveness once after all transformations
15164         (rest_of_compilation): Do crossjumping before ce3.
15165
15166 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
15167
15168         * alias.c (new_alias_set): Mark last_alias_set for PCH.
15169         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
15170         for PCH.
15171         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
15172         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
15173         (get_TOC_alias_set): Mark 'set' for PCH.
15174
15175 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15176
15177         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15178         even after reload, just don't remove the actual jump tables.
15179
15180 2004-01-17  J. Brobecker  <brobecker@gnat.com>
15181
15182         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
15183         Remove checks for is_ada() and TREE_UNSIGNED.
15184         (subrange_type_die): Emit a byte_size attribute if the subrange
15185         type size is different from the base type size.
15186         (modified_type_die): Replace call to is_ada_subrange_type() by
15187         call to is_subrange_type().
15188
15189 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
15190
15191         * config/sh/sh.c: Include ggc.h.
15192
15193 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15194
15195         * Makefile.in (MD5_H): New.
15196         (fold-const.o): Depend on md5.h.
15197         (dwarf2out.o): Likewise.
15198         (cppfiles.o): Likewise.
15199         * cppfiles.c: Include md5.h.
15200         (should_stack_file): Check against list read from PCH file.
15201         (struct pchf_data): New.
15202         (pchf): New variable.
15203         (struct pchf_adder_info): New.
15204         (pchf_adder): New.
15205         (pchf_save_compare): New.
15206         (_cpp_save_file_entries): New.
15207         (_cpp_read_file_entries): New.
15208         (struct pchf_compare_data): New.
15209         (pchf_compare): New.
15210         (check_file_against_entries): New.
15211         * cpphash.h (_cpp_save_file_entries): Prototype.
15212         (_cpp_read_file_entries): Prototype.
15213         * cpppch.c (cpp_write_pch_state): Write the list of headers.
15214         (cpp_read_state): Read the list of headers.
15215
15216 2004-01-17  Jan Hubicka  <jh@suse.cz>
15217
15218         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
15219         builtin_expect specially.
15220         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
15221         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
15222         * invoke.texi (max-inline-insns-single): Set to 100.
15223         (large-function-insns): Set to 3000.
15224
15225 2004-01-16  Eric Christopher  <echristo@redhat.com>
15226             Chandrakala Chavva <cchavva@redhat.com>
15227
15228         * cppcharset.c (one_iso88591_to_utf8): New function.
15229         (convert_iso88591_utf8): Ditto. Use.
15230         (conversion_tab): Use.
15231         (_cpp_input_to_utf8): New function.
15232         (_cpp_init_iconv_buffer): Ditto.
15233         (_cpp_close_iconv_buffer): Ditto.
15234         * cpphash.h: Prototype new functions.
15235         (cpp_buffer): Add input_cset_desc.
15236         * cppinit.c: Add input_charset default.
15237         * cpplib.c (cpp_push_buffer): Support init and
15238         close of iconv.
15239         * cpplib.h (cpp_options): Add input_charset.
15240
15241 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15242
15243         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
15244         * config/alpha/unicosmk.h: Remove a commented-out definition
15245         of ASM_OUTPUT_SECTION_NAME.
15246         * config/stormy16/stormy16.h: Likewise.
15247
15248 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15249
15250         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
15251         (alpha___extern_prefix_sys_stat): ... this.
15252         Apply to <sys/mount.h>, too.
15253         Tweak to match more variations.
15254         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
15255
15256         * fixinc/inclhack.def (alpha___extern_prefix,
15257         alpha___extern_prefix_standards): New hacks to obey
15258         __PRAGMA_EXTERN_PREFIX.
15259         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
15260         test.
15261         * fixinc/tests/base/standards.h: Likewise.
15262
15263         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
15264         variations.
15265         New testcase.
15266         * fixinc/tests/base/pthread.h: Handle it.
15267
15268         * fixincl/inclhack.def (bad_lval): Sort file list.
15269         Add many missing files up to Tru64 UNIX V5.1B.
15270         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
15271         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
15272         order.
15273
15274         * fixinc/fixincl.x: Regenerate.
15275
15276 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
15277
15278         * version.c (version_string): Change to 3.5.0.
15279         * doc/include/gcc-common.texi (version-GCC): Likewise.
15280
15281 2004-01-16  Jan Hubicka  <jh@suse.cz>
15282
15283         * i386.md (load_tp_di): Fix pasto.
15284
15285         PR opt/13608
15286         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
15287
15288         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
15289         pp_c_character_constant, pp_c_floating_constant,
15290         pp_c_additive_expression, pp_c_shift_expression,
15291         pp_c_equality_expression, pp_c_and_expression,
15292         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
15293         pp_c_logical_and_expression): Remove inline modifier.
15294         * dwarf2out.c (get_AT): Likewise.
15295         * et-forest.c (et_splay): Likewise.
15296         * ra.h (ra_alloc, ra_calloc): Likewise
15297
15298 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15299
15300         * config/frv/frv-protos.h: Fix comment formatting.
15301         * config/frv/frv.c: Likewise.
15302         * config/frv/frv.h: Likewise.
15303         * config/frv/frv.md: Likewise.
15304         * config/frv/frvbegin.c: Likewise.
15305         * config/frv/frvend.c: Likewise.
15306
15307 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15308
15309         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
15310         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
15311         LINKER_DOES_NOT_WORK_WITH_DWARF2.
15312         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
15313
15314 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
15315
15316         PR 11864
15317         * postreload.c (reload_cse_simplify_operands): Don't remove
15318         implicit extension from LOAD_EXTEND_OP.
15319
15320 2004-01-16  Jan Hubicka  <jh@suse.cz>
15321
15322         PR opt/11350
15323         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
15324         after reload.
15325         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
15326         rtl_try_redirect_by_replacing_branch): Likewise.
15327
15328 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15329
15330         PR pch/13689
15331         * alias.c (struct alias_set_entry): Mark for GC.
15332         (alias_sets): Make static, mark for GC.
15333         (record_alias_subset): Use GC to allocate alias structures.
15334         * varray.c (element): Make generic varrays GCed.
15335
15336         PR pch/13361
15337         * c-typeck.c (constructor_asmspec): Delete.
15338         (struct initializer_stack): Delete field 'asmspec'.
15339         (start_init): Delete saving of asmspec.
15340         (finish_init): Don't update constructor_asmspec.
15341         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15342         * stmt.c (expand_asm): Duplicate strings from tree.
15343         (expand_asm_operands): Likewise.
15344         * tree.c (tree_size): Update computation of size of STRING_CST.
15345         (make_node): Don't make STRING_CST nodes.
15346         (build_string): Allocate string with tree node.
15347         * tree.def (STRING_CST): Update comment.
15348         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15349         (tree_string): Place contents of string in tree node.
15350         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15351         from tree.
15352
15353         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15354         altivec operands.
15355
15356 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15357
15358         * c-common.h: Fix comment formatting.
15359         * c-cppbuiltin.c: Likewise.
15360         * c-pragma.c: Likewise.
15361         * calls.c: Likewise.
15362         * collect2.c: Likewise.
15363         * cppcharset.c: Likewise.
15364         * cpptrad.c: Likewise.
15365         * dbxout.c: Likewise.
15366         * defaults.h: Likewise.
15367         * dwarf2out.c: Likewise.
15368         * fold-const.c: Likewise.
15369         * genautomata.c: Likewise.
15370         * genconditions.c: Likewise.
15371         * genflags.c: Likewise.
15372         * gengtype.c: Likewise.
15373         * integrate.c: Likewise.
15374         * loop.c: Likewise.
15375         * predict.c: Likewise.
15376         * sdbout.c: Likewise.
15377
15378 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15379
15380         * config/ia64/ia64.md (*movti_internal): C output template
15381         extracted to ia64.c.
15382         (*movti_internal_reg): Delete.
15383         (reload_inti, reload_outti): Use the correct mode on operand 2
15384         in the first place, don't fix it up in the output template.
15385         (movtf, reload_ointf, reload_outtf): New expanders.
15386         (*movtf_internal): New define_insn_and_split.
15387         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15388         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15389         (ia64_split_tmode_move): New function, body mostly pulled
15390         from ia64.md:*movti_internal.
15391         (ia64_function_arg_words): New function, extracted common
15392         logic from ia64_function_arg et seq.
15393         (ia64_function_arg_offset): Likewise.  Handle correctly the
15394         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15395         (ia64_function_arg, ia64_function_arg_partial_nregs)
15396         (ia64_function_arg_advance): Use ia64_function_arg_words and
15397         ia64_function_arg_offset.
15398         (ia64_function_value): TCmode does not go in float regs.
15399         (ia64_secondary_reload_class): Also handle TFmode.
15400         * config/ia64/ia64-protos.h: Remove prototype for
15401         ia64_split_timode; add prototype for ia64_split_tmode_move.
15402
15403 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15404
15405         * Makefile.in (MAINT): Make it an immediate assignment.
15406
15407 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15408
15409         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15410
15411 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15412
15413         * config/h8300/coff.h: Replace Hitachi with Renesas.
15414         * config/h8300/elf.h: Likewise.
15415         * config/h8300/h8300-protos.h: Likewise.
15416         * config/h8300/h8300.c: Likewise.
15417         * config/h8300/h8300.h: Likewise.
15418         * config/h8300/h8300.md: Likewise.
15419         * config/h8300/lib1funcs.asm: Likewise.
15420
15421 2004-01-15  Andrew Pinski  <apinski@apple.com>
15422
15423         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15424         around it.
15425
15426 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15427
15428         * config/h8300/h8300.c (h8300_return_in_memory): New.
15429         (TARGET_STRUCT_VALUE_RTX): Likewise.
15430         (TARGET_RETURN_IN_MEMORY): Likewise.
15431         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15432         (RETURN_IN_MEMORY): Likewise.
15433
15434 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15435
15436         PR optimization/13375
15437         * gcse.c (handle_avail_expr): Just return if the source is not a
15438         single set.
15439
15440 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15441             Daniel Jacobowitz  <drow@mvista.com>
15442
15443         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15444         (EQUIV): Define.
15445         (ARM_FUNC_ALIAS): New macro.
15446         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15447         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15448
15449 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15450
15451         PR optimization/12372
15452         * calls.c (expand_call): Add call_fusage data for stack arguments in
15453         constant calls.
15454
15455 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15456
15457         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15458         (rs6000_elf_declare_function_name): Formatting.
15459         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15460
15461 2004-01-15  Jan Hubicka  <jh@suse.cz>
15462
15463         PR bootstrap/13692
15464         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15465         previous patch.
15466
15467 2004-01-15  Richard Henderson  <rth@redhat.com>
15468
15469         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15470         integer regs of the same call-savedness.
15471
15472 2004-01-15  Andreas Schwab  <schwab@suse.de>
15473
15474         PR bootstrap/13562
15475         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15476         status for NOTB/NOTW/NEGW methods.
15477
15478 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15479
15480         * doc/invoke.texi: Update dump file names.  Fix a typo.
15481
15482 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15483
15484         * builtins.c (expand_builtin_va_end): Don't use
15485         EXPAND_BUILTIN_VA_END.
15486         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15487         * config/d30v/d30v.h: Remove a commented-out definition of
15488         EXPAND_BUILTIN_VA_END.
15489         * config/stormy16/stormy16.h: Likewise.
15490
15491 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15492
15493         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15494         * targhooks.c (default_struct_value_rtx): Don't use
15495         STRUCT_VALUE_INCOMING_REGNUM.
15496
15497 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15498
15499         PR bootstrap/12744
15500         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15501         GENINSRC and not parsedir.  Define srcextra as a langhook.
15502         * configure: Regenerate.
15503         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15504         parsedir and delete all references throughout.  Conditionally define
15505         rule for srcextra dependent on GENINSRC.
15506         (stmp-docobjdir): Delete.
15507         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15508         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15509         and gengtype-yacc.h back to source directory.
15510         (maintainer-clean): Delete all parse files in source directory.
15511         (distclean): Delete generated files.
15512
15513         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15514         (objc-parse.c, objc-parse.y): Don't use parsedir.
15515         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15516         directory if requested.
15517         (po-generated): Don't use parsedir.
15518         (objc.maintainer-clean): Delete above files from source directory.
15519
15520 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15521
15522         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15523
15524 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15525
15526         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15527         TARGET_RETURN_IN_MEMORY.
15528
15529 2004-01-15  Jan Hubicka  <jh@suse.cz>
15530
15531         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15532         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15533         functions accepting SSE arguments
15534         (function_arg): Warn only when asked to warn.
15535         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15536
15537 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15538
15539         * c-parse.in (stmts_and_decls): Make label at end of compound
15540         statement a hard error.
15541
15542 2004-01-14  Jan Hubicka  <jh@suse.cz>
15543
15544         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15545         * cgraph.h (cgraph_local_info): Sort fields by size; add
15546         redefined_extern_inline
15547         (cgraph_global_info): Sort fields by size.
15548         (cgraph_node): Likewise.
15549         * cgraphunit.c (cgraph_finalize_function): Se
15550         local.redefined_extern_inline on redefinition.
15551         (cgraph_analyze_function): Use it; fix formating.
15552
15553 2004-01-14  Jan Hubicka  <jh@suse.cz>
15554
15555         PR c++/10776
15556         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15557         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15558         bitmaps
15559         (cache_size): New variable
15560         (add_dependence): Update use; canonize early memory locations
15561         (sched_analyze_1): Likewise.
15562         (sched_analyze_2): Likewise.
15563         (init_dependency_caches): Initialize bitmaps.
15564         (free_dependency_caches): Free bitmaps
15565
15566 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15567
15568         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15569         targetm.calls.strict_argument_naming().
15570         * target.h: Likewise.
15571
15572 2004-01-14  Richard Henderson  <rth@redhat.com>
15573
15574         PR debug/13231
15575         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15576         instructions.
15577
15578 2004-01-14  Richard Henderson  <rth@redhat.com>
15579
15580         PR c++/12491
15581         * except.c (struct eh_region): Add u.fixup.resolved.
15582         (resolve_one_fixup_region): Split out from ...
15583         (resolve_fixup_regions): ... here.
15584
15585 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15586
15587         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15588
15589 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15590
15591         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15592         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15593         (STRUCT_VALUE): Remove.
15594
15595 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15596
15597         * system.h: Poison PROMOTED_MODE
15598         * integrate.c (expand_inline_function): Don't mention the
15599         PROMOTED_MODE.
15600         * loop.c (update_giv_derive): Same.
15601         * tree.h (DECL_RTL): Same.
15602
15603 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15604
15605         PR target/9365
15606         * sh.c (gen_block_redirect): Add special handling of RETURN.
15607         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15608         far branch target (i.e. it's a return).
15609
15610 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15611
15612         * regrename.c (find_oldest_value_reg): Fix a warning.
15613
15614 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15615
15616         PR bootstrap/12527
15617         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15618         Move linux-gas.h and linux-elf.h before aout.h.
15619         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15620         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15621
15622 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15623
15624         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15625         (CONST_INT, VOIDmode, ...).
15626
15627 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15628
15629         * regrename.c (find_oldest_value_reg): If the replacement uses
15630         multiple hard registers, check that all of them are in CLASS.
15631
15632 2004-01-14  Jan Hubicka  <jh@suse.cz>
15633
15634         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15635         impossible.
15636
15637 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15638
15639         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15640
15641 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15642
15643         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15644         Calculate always vrsave_mask if TARGET_ALTIVEC.
15645         (rs6000_emit_prologue): Emit code for vrsave
15646         only if TARGET_ALTIVEC_VRSAVE.
15647         (rs6000_emit_epilogue): Likewise.
15648
15649 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15650
15651         * config/sparc/sparc.md (tie_add32): Fix pasto.
15652         (tie_add64): Likewise.
15653
15654 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15655
15656         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15657
15658 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15659
15660         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15661         * config/iq2000/iq2000.c: Likewise.
15662         * config/iq2000/iq2000.md: Likewise.
15663
15664 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15665
15666         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15667         (subrange_type_die): Add handle for nameless subrange types.
15668
15669 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15670
15671         * config/h8300/h8300-protos.h: Replace do_movsi with
15672         h8300_expand_movsi.
15673         * config/h8300/h8300.c (do_movsi): Change to
15674         h8300_expand_movsi.
15675         * config/h8300/h8300.md (movsi): Replace do_movsi with
15676         h8300_expand_movsi.
15677         (movsf): Likewise.
15678
15679 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15680
15681         * config/h8300/h8300.c (dosize): Change to
15682         h8300_emit_stack_adjustment.  Update callers.
15683
15684 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15685
15686         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15687         the source being post_inc.  Tighten the predicate for the
15688         destination to register_operand.
15689         (movstricthi): Likewise.
15690
15691 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15692
15693         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15694         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15695         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15696
15697 2004-01-14  Jan Hubicka  <jh@suse.cz>
15698
15699         Partial fix PR c++/12850
15700         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15701         at zero nest level.
15702
15703 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15704
15705         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15706         pseudo-register.
15707
15708 2004-01-13  Devang Patel <dpatel@apple.com
15709
15710         PR debug/7078
15711         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15712         NAMESPACE_DECL memebers.
15713
15714 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15715
15716         PR c++/12709
15717         * c-common.c (finish_fname_decls): Use the chain only if the
15718         tree is an expr_stmt.
15719
15720 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15721
15722         * rtl.def: Add comment about new option in automata_option.
15723
15724         * genautomata.c (PROGRESS_OPTION): New macro.
15725         (progress_flag): New global variable.
15726         (gen_automata_option): Process `progress'.
15727         (transform_insn_regexps, check_unit_distributions_to_automata,
15728         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15729         expand_automata, write_automata): Print about the progress only if
15730         progress_flag.  Remove fflush.
15731         (initiate_automaton_gen): Process command line flag `-progress'.
15732
15733         * doc/md.texi: Describe the new option.
15734
15735 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15736
15737         * cfg.c (dump_bb): Dump entry edges.
15738
15739 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15740
15741         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15742         references from SImode.
15743         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15744
15745 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15746
15747         * system.h (TEXT_SECTION): Poison.
15748         * varasm.c (text_section): Don't use TEXT_SECTION.
15749         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15750         * doc/tm.texi (TEXT_SECTION): Remove.
15751
15752 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15753
15754         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15755
15756 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15757
15758         * unwind-libunwind.c: Delete.
15759
15760 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15761
15762         PR 13656
15763         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15764         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15765         them at the very end.
15766         (validate_proto_after_old_defn): Restructure for comprehensibility;
15767         make error messages clearer.
15768
15769 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15770
15771         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15772         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15773         * varray.c: No need to prototype error.
15774         (varray_check_failed): Wrap long string onto two lines.
15775         (varray_underflow): New function.
15776
15777 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15778
15779         PR c++/13376
15780         * function.h (struct function): Kill `name' field.
15781         (current_function_name): Make it an extern function.
15782         * function.c (current_function_name): New function.
15783         * graph.c: Update all uses of current_function_name.
15784         * gcse.c: Likewise.
15785         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15786         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15787         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15788         instead of a strcmp with "main".
15789
15790 2004-01-13  Jan Hubicka  <jh@suse.cz>
15791
15792         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15793
15794         * cgraphunit.c (cgraph_optimize_function):  Always do
15795         optimize_inline_calls when there is always_inline callee.
15796         (cgraph_decide_inlining): Fix formating.
15797         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15798         functions.
15799         (expand_call_inline): Likewise.
15800         * toplev.h (sorry): Fix prototype.
15801
15802 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15803
15804         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15805         conditional jumps that drop through to unconditional jumps or the
15806         end of the sequence.
15807
15808 2004-01-13  Jan Hubicka  <jh@suse.cz>
15809
15810         * alias.c (new_alias_set): Construct the alias_set varray.
15811         (init_alias_once): Don't do it here.
15812
15813 2004-01-12  Marc Espie <espie@openbsd.org>
15814
15815         * system.h: handle YYBYACC like YYBISON.
15816
15817 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15818
15819         PR target/10847
15820         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15821         building on sparc64-*-openbsd*.
15822
15823 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15824
15825         PR debug/13539
15826         * dbxout.c (dbxout_type): Protected inheritance is not
15827         private but protected.
15828
15829 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15830
15831         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15832
15833 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15834
15835         PR optimization/12508.
15836         * combine.c (try_combine): Remove a dead set in a parallel
15837         even if its destination is a subreg.
15838
15839         Revert:
15840         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15841         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15842         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15843
15844 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15845
15846         * real.c: Update copyright date.
15847         * emit-rtl.c: Likewise.
15848         * rtl.h: Likewise.
15849         * dwarf2out.c: Likewise.
15850         * config/rs6000/darwin-ldouble.c: Likewise.
15851         * config/rs6000/rs6000.md: Likewise.
15852
15853 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15854
15855         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15856         TFmode to SImode libfuncs.
15857
15858 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15859
15860         PR middle-end/11397
15861         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15862
15863 2004-01-12  Jan Hubicka  <jh@suse.cz>
15864
15865         PR opt/12826
15866         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15867         stored.
15868
15869         PR opt/12863
15870         * cfgcleanup.c (label_is_jump_target_p): Move to...
15871         * rtlanal.c (label_is_jump_target_p): ... here.
15872         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15873         edges unified with branch edges.
15874
15875 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15876
15877         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15878         high word of an integral CONST_DOUBLE.
15879
15880 2004-01-12  Paul Brook  <paul@codesourcery.com>
15881
15882         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15883
15884 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15885
15886         PR target/13585
15887         * sh-protos.h (check_use_sfunc_addr): Declare.
15888         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15889         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15890
15891 2004-01-12  Jan Hubicka  <jh@suse.cz>
15892
15893         * alias.c:  Invlude varray.h
15894         (alias_sets): Turn into varray.
15895         (get_alias_set_entry): Use VARRAY; mark inline.
15896         (mems_in_disjoint_alias_sets_p): Mark inline.
15897         (record_alias_subset): Use varray.
15898         (init_alias_once): Initialize varray.
15899         (new_alias_set): Grow array.
15900         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15901
15902 2004-01-12  Jan Hubicka  <jh@suse.cz>
15903
15904         Partial fix for PR opt/10776 II
15905         * cselib.c: Include params.h
15906         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15907         locations.
15908         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15909         * Makefile.in (cselib.o): Depend on params.h
15910
15911 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15912
15913         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15914         simplify_unary_operation if the operand has a known mode.
15915
15916 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15917
15918         PR target/13534
15919         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15920         predicate to handle 'ld' conform addresses.
15921         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15922         contraint.
15923         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15924         are memory contraints.
15925         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15926         New prototype.
15927         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15928         Change 'o' to 'Y' constraint.
15929         (*movdf_softfloat64): Ditto.
15930
15931 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15932
15933         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15934         brace-enclosed syntax in all C output statements.
15935
15936 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15937
15938         PR target/13401
15939         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15940         Objective-C language type value is 14.
15941
15942 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15943
15944         PR c/12148
15945         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15946         `int' in a number of places to make sure we always have a SImode
15947         and not a HImode.  Add a 'L' suffix to a number of constants.
15948
15949 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15950
15951         * pa.c: Don't include obstack.h.
15952
15953         * pa.md: Correct constraint in pattern for loading PIC label address.
15954
15955 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15956
15957         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15958          before defining.
15959
15960 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15961
15962         PR fortran/9972
15963         * toplev.c (rest_of_handle_inline): Also consider functions
15964         for deferral if the language is GNU F77.
15965
15966 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
15967
15968         * c-decl.c (diagnose_arglist_conflict): Add missing space to
15969         diagnostic messages.
15970
15971 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
15972
15973         PR middle-end/13392
15974         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
15975         to drop through label.  Don't fall back to SCC even when conditional
15976         jump has not been found.
15977
15978 2004-01-11  Jan Hubicka  <jh@suse.cz>
15979
15980         * invoke.texi: Fix syntax error in previous patch.
15981
15982         Partial fix for PR opt/10776
15983         * Makefile.in (reload.o): Include param.h
15984         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
15985         * reload.c: Include params.h.
15986         (find_equiv_reg): Work limiting check.
15987         * invoke.texi: Document.
15988
15989 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15990
15991         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
15992         out-of-bounds accesses to string constants.  Simplify mips16
15993         case accordingly.
15994
15995 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
15996
15997         PR optimization/13469
15998         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
15999         reload_cse_regs (-fnon-call-exceptions only).
16000
16001 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
16002
16003         * config/mcore/lib1.asm: Fix comment formatting.
16004         * config/mcore/mcore-elf.h: Likewise.
16005         * config/mcore/mcore.c: Likewise.
16006         * config/mcore/mcore.h: Likewise.
16007         * config/mcore/mcore.md: Likewise.
16008
16009 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16010
16011         * c-decl.c (duplicate_decls): Break apart into...
16012         (diagnose_arglist_conflict, validate_proto_after_old_defn)
16013         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
16014         ... these new functions.  Restructure for comprehensibility.
16015         Remove various archaic special cases.  Always report the
16016         location of the previous declaration when a diagnostic is issued.
16017         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
16018         (match_builtin_function_types): Delete unnecessary forward declaration.
16019
16020 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16021
16022         * genautomata.c (make_automaton, NDFA_to_DFA):
16023         Print progress bars with '.' characters instead of '*'.
16024         (build_automaton): Change notes to match.
16025
16026 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16027
16028         * config/m32r/m32r.md: Use define_constants for unspec and
16029         unspec_volatile.
16030
16031 2004-01-10  Jan Hubicka  <jh@suse.cz>
16032
16033         PR opt/11635
16034         * expr.c (expand_expr_real):  More curefully expand union casts.
16035
16036 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16037
16038         * config/m32r/m32r.md (flush_icache): Use 1 for
16039         unspec_volatile.
16040
16041 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
16042             James E Wilson  <wilson@specifixinc.com>
16043
16044         PR debug/12860
16045         * dbxout.c (dbxout_symbol): Remove initialization of
16046         current_sym_code, current_sym_value, and current_sym_addr.
16047         (dbxout_symbol_location): Same.
16048         (dbxout_prepare_symbol): Zero current_sym_code,
16049         current_sym_value, and current_sym_addr.
16050
16051 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
16052
16053         * tree.c (get_unwidened): Reorder conditions so that the null pointer
16054         check is done first.
16055
16056 2004-01-09  Eric Christopher  <echristo@redhat.com>
16057
16058         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
16059         if we're running mark_constant_function.
16060
16061 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
16062
16063         PR target/12561
16064         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
16065
16066 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
16067
16068         PR debug/11231
16069         * dbxout.c (dbxout_type_fields): Return if any item is
16070         error_mark_node or the type is error_mark_node.
16071
16072 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
16073
16074         * config/rs6000/darwin-ldouble.c: Add big comment explaining
16075         exactly what is expected as a 'long double'.
16076         (_xlqadd): When a value to be returned is representable as a
16077         'double', just return it directly, do not construct it using a union.
16078         Also, correct final fixup.
16079         (_xlqmul): Likewise.
16080         (_xlqdiv): Likewise.
16081         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
16082
16083         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
16084
16085 2004-01-09  Richard Henderson  <rth@redhat.com>
16086
16087         * recog.c (constrain_operands): Validate mem operands.
16088
16089 2004-01-09   James E Wilson  <wilson@specifixinc.com>
16090
16091         * gcc.c (init_spec): Remove -lunwind from shared case.
16092         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
16093
16094 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
16095
16096         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
16097         * configure: Regenerate
16098
16099 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
16100
16101         PR c/11234
16102         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
16103         between function and object pointers.
16104         (digest_init): When comparing a pointer to function type to the
16105         target type, only apply TREE_TYPE once to the pointer to function
16106         type.
16107         * except.c (for_each_eh_label_1): Treat data as a pointer to a
16108         function pointer rather than casting it to a function pointer.
16109         (for_each_eh_label): Update caller.
16110         * recog.h (struct insn_data): Use a struct or union for output.
16111         * genoutput.c (output_insn_data): Update.
16112         * final.c (get_insn_template): Update.
16113
16114 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
16115
16116         * expr.h (expand_expr): Make it a macro, not a function.
16117         (expand_expr_real): New function.
16118         * expr.c (store_expr): Adjust logic for deciding whether or not to
16119         copy the value returned by expand_expr.
16120         (expand_expr): Rename to ...
16121         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
16122         calls to language hooks.
16123         * c-common.h (c_expand_expr): Adjust prototype.
16124         * c-common.c (c_expand_expr): Add alt_rtl parameter.
16125         * langhooks-def.h (lhd_expand_expr): Change prototype.
16126         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
16127         * langhooks.h (lang_hooks): Change type of expand_expr.
16128         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
16129         (last_expr_alt_rtl): Likewise.
16130         (expand_expr_stmt_value): Set last_expr_alt_rtl.
16131         (clear_last_expr): Clear it.
16132         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
16133         (expand_end_bindings): Save and restor last_expr_alt_rtl.
16134         * tree.def (RTL_EXPR): Give it an additional operand.
16135         * tree.h (RTL_EXPR_ALT_RTL): New macro.
16136
16137 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16138
16139         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
16140         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
16141
16142 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16143
16144         PR target/13380.
16145         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
16146         or (ne:SI (reg:CC 17) (const_int 0)).
16147         Be specific about modes wherever possible.
16148
16149 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16150
16151         * config/m32r/m32r.c (m32r_expand_block_move): Call
16152         gen_movestrsi_internal with two more arguments.
16153         (m32r_output_block_move): Adjust operand numbers.
16154         Properly update the source and destination pointers.
16155         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
16156         'r+'.  Change the set detinations to match_operand.
16157
16158 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16159
16160         * final.c (FIRST_INSN_ADDRESS): Remove.
16161         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
16162         * system.h (FIRST_INSN_ADDRESS): Poison.
16163         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
16164         * config/m32r/m32r-protos.h: Remove the prototype for
16165         m32r_first_insn_address.
16166         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
16167         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
16168         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
16169
16170 2004-01-09  J. Brobecker  <brobecker@gnat.com>
16171
16172         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
16173         we just created.
16174         (is_ada_subrange_type): DIEs for enumeration subtypes should be
16175         emitted as subrange types too.
16176         (subrange_type_die): Add handling of enumeration subtypes.
16177
16178 2004-01-08  Richard Henderson  <rth@redhat.com>
16179
16180         PR opt/12441
16181         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
16182         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
16183         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
16184         (ix86_address_cost): Be prepared for SUBREGed registers.
16185         (legitimate_address_p): Accept SUBREGed registers.
16186
16187 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
16188
16189         * Makefile.in: Rename configure.in to configure.ac
16190         * doc/sourcebuild.texi: Likewise.
16191         * configure: Regenerate.
16192         * config.in: Regenerate.
16193
16194 2004-01-08  Stuart Hastings  <stuart@apple.com>
16195
16196         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
16197
16198 2004-01-08  Jan Hubicka  <jh@suse.cz>
16199
16200         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
16201
16202 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
16203
16204         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
16205         (UNSPEC_FIX_TRUNC_TF): New constant.
16206         (movtf_internal): Make splitter active only when insn is active.
16207         (extenddftf2): Rewrite to properly load zero into low part.
16208         (extenddftf2_internal): New.
16209         (extendsftf2): Rewrite.
16210         (truncdftf2): Correct length.
16211         (floatditf2): Delete.
16212         (fix_trunc_helper): New.
16213         (fix_trunctfdi2): Use fix_trunc_helper.
16214         (fix_trunctfsi2): Likewise.fix_trunc
16215         (fix_trunctfsi2_internal): New.
16216
16217         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
16218         addresses are legitimate on Darwin even when flag_pic.
16219         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
16220         non-offsettable addresses for loads of TFmode constants.
16221
16222 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16223
16224         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
16225         variables in the appropriate bss section.
16226
16227 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
16228
16229         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
16230         target_flags has MASK_POWERPC64 when -m64.
16231         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
16232         to 620, 630, power3, power4 and rs64a entries.
16233         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
16234
16235 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
16236
16237         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
16238         floating-point constants.
16239
16240 2004-01-08  J. Brobecker  <brobecker@gnat.com>
16241
16242         * dwarf2out.c (subrange_type_die): Add context_die parameter.
16243         Create the subrange_type DIE using the given context DIE.
16244         (modified_type_die): Update call to subrange_type_die.
16245
16246 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
16247
16248         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
16249         Add multiple-include guard.
16250
16251 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
16252
16253         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
16254         all vector constant loadable by vsplt*.
16255         (output_vec_const_move): Likewise.
16256
16257 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16258
16259         PR c/6024
16260         * c-typeck.c (comptypes): Only treat enumerated types in the same
16261         translation unit as compatible with each other when they are the
16262         same type.
16263         * doc/extend.texi: Update.
16264
16265 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16266
16267         PR c/12165
16268         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
16269         array type from the array element type.
16270
16271 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
16272
16273         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
16274         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
16275         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
16276         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
16277         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
16278
16279 2004-01-06  Eric Christopher  <echristo@redhat.com>
16280
16281         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
16282         (DWARF2_DEBUGGING_INFO): Define.
16283         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
16284         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
16285         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
16286         for irix as.
16287         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
16288         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
16289         * config/mips/iris5gas.h: Ditto.
16290         (DBX_DEBUGGING_INFO): Remove.
16291         (DWARF2_DEBUGGING_INFO): Ditto.
16292         (MIPS_DEBUGGING_INFO): Ditto.
16293         (PREFERRED_DEBUGGING_TYPE): Ditto.
16294         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
16295         (PREFERRED_DEBUGGING_TYPE): Ditto.
16296         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
16297         * config/mips/elf64.h: Ditto.
16298
16299 2004-01-06  Jan Hubicka  <jh@suse.cz>
16300
16301         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
16302         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
16303
16304 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
16305
16306         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
16307         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
16308         * config/rs6000/darwin-ldouble.c: New.
16309
16310         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
16311         for constants.
16312         (constant_subword): Delete.
16313         * rtl.h (constant_subword): Delete prototype.
16314         (immed_double_const): Is not in varasm.c.
16315         * simplify-rtx.c (simplify_immed_subreg): New.
16316         (simplify_subreg): Use simplify_immed_subreg.
16317
16318         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
16319         than trying to generate RTL directly.
16320         (fix_trunctfsi2): Use expand_fix rather than trying to generate
16321         RTL directly.
16322
16323         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
16324
16325 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
16326
16327         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
16328         function into a separate macro.
16329         (read_only_data_section): Add void argument.
16330         (private_data_section): Same.
16331         (read_only_private_data_section): Same.
16332         (toc_section): Same.
16333
16334 2004-01-06  Jan Hubicka  <jh@suse.cz>
16335
16336         * invoke.texi:  Remove typo in last change.
16337
16338         PR target/10301
16339         * config.gcc: Accept opteron and athlon-64 as variants
16340         of k8.
16341         * i386.c (override_options): Likewise.
16342         * invoke.texi (i386 -mtune): Expand documentation.
16343
16344 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16345
16346         * alias.c: Fix comment typos.
16347         * builtins.c: Likewise.
16348         * cfg.c: Likewise.
16349         * df.c: Likewise.
16350         * dominance.c: Likewise.
16351         * dwarf2out.c: Likewise.
16352         * emit-rtl.c: Likewise.
16353         * expr.c: Likewise.
16354         * final.c: Likewise.
16355         * fold-const.c: Likewise.
16356         * gcse.c: Likewise.
16357         * genattrtab.c: Likewise.
16358         * genrecog.c: Likewise.
16359         * gensupport.c: Likewise.
16360         * ggc-zone.c: Likewise.
16361         * integrate.c: Likewise.
16362         * local-alloc.c: Likewise.
16363         * loop.c: Likewise.
16364         * recog.c: Likewise.
16365         * regmove.c: Likewise.
16366         * reg-stack.c: Likewise.
16367         * reorg.c: Likewise.
16368         * rtlanal.c: Likewise.
16369         * rtl.h: Likewise.
16370         * sched-ebb.c: Likewise.
16371         * simplify-rtx.c: Likewise.
16372         * toplev.c: Likewise.
16373         * varasm.c: Likewise.
16374
16375 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16376
16377         * doc/install.texi: Fix typos.
16378         * doc/invoke.texi: Likewise.
16379         * doc/md.texi: Likewise.
16380
16381 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16382
16383         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16384
16385 2004-01-06  Jan Hubicka  <jh@suse.cz>
16386
16387         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16388         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16389         of MMX_REGPARM.
16390         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16391         add MMX_REGPARM.
16392         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16393         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16394         (MMX_REGPARM_MAX): Similarly for -mmmx.
16395
16396 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16397
16398         * config/sh/linux.h: Fix comment formatting.
16399         * config/sh/netbsd-elf.h: Likewise.
16400         * config/sh/sh.c: Likewise.
16401         * config/sh/sh.h: Likewise.
16402         * config/sh/vxworks.h: Likewise.
16403
16404 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16405
16406         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16407         * toplev.c (output_file_directive): Don't use
16408         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16409
16410 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16411
16412         * toplev.c: Fix broken checkin of 2003-12-30.
16413
16414 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16415
16416         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16417         (USING_MMAP): We don't support non-mmap.
16418         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16419         large objects.
16420         (struct page_entry): Remove bytes_free.
16421         (struct page_table_chain): Remove.
16422         (struct globals): Remove page_table member.
16423         (loookup_page_table_entry): Function deleted.
16424         (set_page_table_entry): Ditto.
16425         (ggc_allocated_p): No longer need page table lookups.
16426         (ggc_marked_p): Ditto.
16427         (alloc_small_page): Don't care about bytes_free anymore.
16428         (alloc_large_page): Round up size.
16429         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16430         their size the new way.
16431         Remove page table lookups and setting.
16432         (ggc_get_size): Calculate large object size the new way.
16433         (sweep_pages): Redo to account for fact that we no longer have
16434         bytes_free.
16435         (ggc_collect): No longer need to reincrement bytes_free.
16436         (ggc_pch_alloc_object): Handle new large objects properly.
16437         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16438
16439 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16440
16441         * doc/invoke.texi: Remove a page break.
16442
16443 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16444
16445         * config/avr/avr.c (avr_output_function_prologue): Remove an
16446         extra pair of curly braces.
16447
16448 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16449
16450         * config/mn10300/mn10300.c: Fix comment formatting.
16451         * config/mn10300/mn10300.h: Likewise.
16452
16453 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16454
16455         * tree.h: Update documentation on nothrow_flag.
16456         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16457         types.
16458
16459 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16460
16461         * doc/invoke.texi: Remove traces of dead ports.
16462
16463 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16464
16465         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16466         option.
16467
16468 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16469
16470         PR target/12945
16471         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16472         counter labels.
16473         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16474         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16475         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16476         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16477         (mips_symbol_insns): Don't trust the local/global classification.
16478         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16479         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16480         -mno-explicit-relocs.
16481         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16482         between local and global symbols.
16483
16484 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16485
16486         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16487         (mips_preferred_reload_class): Declare.
16488         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16489         (EXTRA_CONSTRAINT): Update accordingly.
16490         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16491         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16492         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16493         mips_dangerous_for_la25_p.
16494         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16495         if mips_dangerous_for_la25_p.
16496
16497 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16498
16499         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16500         warning.
16501
16502 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16503
16504         * configure.ac: Use AC_PROG_CPP_WERROR.
16505         * configure: Regenerate.
16506
16507 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16508
16509         * .cvsignore: Add autom4te.cache.
16510
16511 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16512
16513         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16514         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16515         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16516         then architecture options, then ABI options.  General rewording.
16517
16518 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16519
16520         PR c/3414
16521         * doc/extend.texi: Clarify definition of malloc attribute.
16522
16523 2004-01-04  Jan Hubicka  <jh@suse.cz>
16524
16525         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16526         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16527         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16528         (cgraph_inline_p): Add extra argument reason.
16529         * cgraphunit.c: Minor formating fixes.
16530         cgraph_first_inlined_callee): New functions.
16531         (record_call_1): Record builtins too.
16532         (cgraph_analyze_function): Update inline_failed messages.
16533         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16534         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16535         (cgraph_check_inline_limits): Likewise; Add argument reason.
16536         (cgraph_set_inline_failed): New static function.
16537         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16538         reasons.
16539         (cgraph_inline_p): Add new argument reason.
16540         * tree-inline.c (expand_call_inline):  Update warning.
16541
16542 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16543
16544         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16545         with modern equivalents.
16546         * configure: Regenerate.
16547
16548         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16549         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16550         * configure: Regenerate.
16551
16552         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16553
16554         * configure.in: Rename to configure.ac.
16555         * configure.ac: Renamed from configure.in; make minimum necessary
16556         changes for autoconf 2.5x.
16557         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16558         * configure: Regenerate with autoconf 2.57.
16559
16560 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16561
16562         * config/mips/linux.h: Fix comment formatting.
16563         * config/mips/mips.c: Likewise.
16564         * config/mips/mips.h: Likewise.
16565         * config/mips/mips.md: Likewise.
16566         * config/mips/netbsd.h: Likewise.
16567         * config/mips/windiss.h: Likewise.
16568
16569 2004-01-02  Richard Henderson  <rth@redhat.com>
16570
16571         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16572         for sse and 387; add suppression for mmx.
16573
16574 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16575
16576         * loop.c (loop_optimize): Free all loops_info's mems.
16577
16578         * c-typeck.c (finish_init): Free spelling_base before
16579         setting it again.
16580
16581         * cfgloop.c (flow_loops_find): Always free the sbitmap
16582         headers.
16583
16584         * predict.c (estimate_probability): Free bbs after being
16585         done with it.
16586
16587 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16588
16589         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16590         const_8bit_operand and call_address_operand.
16591
16592 2004-01-02  Jan Hubicka  <jh@suse.cz>
16593
16594         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16595         when there is nothing to inline but warnings are requested.
16596         (cgraph_decide_inlining):  Fix memory leak.
16597
16598 2004-01-02  Jan Hubicka  <jh@suse.cz>
16599
16600         * expr.c (store_constructor):  Fix pasto in previous patch.
16601
16602 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16603
16604         * config/i386/cygming.h: Fix comment formatting.
16605         * config/i386/djgpp.h: Likewise.
16606         * config/i386/gthr-win32.c: Likewise.
16607         * config/i386/i386-interix.h: Likewise.
16608         * config/i386/i386.c: Likewise.
16609         * config/i386/i386.h: Likewise.
16610         * config/i386/openbsd.h: Likewise.
16611         * config/i386/winnt.c: Likewise.
16612         * config/i386/xm-mingw32.h: Likewise.
16613
16614 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16615
16616         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16617         copyright and last modification dates.
16618
16619 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16620
16621         * doc/install.texi (Specific): Mention x86_64.
16622
16623 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16624
16625         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16626         Call force_operand on plus_constant result.
16627
16628 2004-01-01  Jan Hubicka  <jh@suse.cz>
16629
16630         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16631         * expr.c (store_constructor): Use vec_init pattern.
16632         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16633         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16634         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16635         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16636         New patterns.
16637         (sse2_unpc?pd): Fix pattern.
16638         (sse2_movlpd): Kill.
16639         (sse2_movsd): Deal with movlpd too.
16640         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16641         (ix86_expand_vector_init): New.
16642         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16643         * md.texi (vec_set, vec_extract): Document
16644
16645 2003-12-31  Jan Hubicka  <jh@suse.cz>
16646
16647         PR opt/13473
16648         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16649         ASM input operands
16650
16651         PR opt/12617
16652         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16653         (dump_file): Likewise.
16654         (rest_of_compilation): Likewise.
16655
16656         PR debug/13367
16657         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16658         flag_really_no_inline we inline always_inline functions.
16659         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16660         for non-always_inline functions when there is flag_really_no_inline.
16661         (cgraph_decide_inlining): Limit work done when not inlining.
16662         (cgraph_decide_inlining_incrementally): Likewise.
16663         (cgraph_optimize_function): Check whether something got inlined.
16664         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16665         extern inline functions when not inlining.
16666
16667         * opts.c (decode_options):  Disable crossjumping at -O1
16668         * invoke.texi (-O1): Document change.
16669
16670 See ChangeLog.10 for earlier changes.