OSDN Git Service

2004-06-04 Frank Ch. Eigler <fche@redhat.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
2
3         * gcc.c (MFLIB_SPEC): Remove library references, to require users
4         to enumerate -lmudflap* and dependencies when linking.
5
6 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
7
8         PR target/15822
9         * dojump.c (do_jump): Fix uninitialized variable tcode1.
10
11 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
12
13         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
14         * genconditions.c (write_header): Back out removal of reload.h.
15
16 2004-06-04  Jan Hubicka  <jh@suse.cz>
17
18         Re-apply hopefully fixed patch:
19         * i386.md (UNSPECV_EH_RETURN): Kill.
20         (eh_return): Use jump_insn.
21         (eh_return_si, eh_return_di): Change pattern to jump instruction.
22
23 2004-06-04  Jeff Law  <law@redhat.com>
24
25         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
26
27 2004-06-04  Steven Bosscher  <stevenb@suse.de>
28
29         * except.c (for_each_eh_region): New function.
30         * except.h (for_each_eh_region): Add a prototype for it.
31         * tree-cfg.c (update_eh_labels): New function, callback for
32         for_each_eh_region.
33         (label_for_bb): Make global static, unfortunately.
34         (cleanup_dead_labels): Also update label references for
35         exception regions.
36
37 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
38
39         * config/mips/mips.c (struct irix_section_align_entry): Fix
40         GTY marker.
41
42 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
43
44         * toplev.c (check_global_declarations): Don't ask for
45         DECL_ASSEMBLER_NAME unless the function really is declared
46         static and not defined.
47
48 2004-06-03  Matt Austern  <austern@apple.com>
49
50         PR c++/15428
51         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
52         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
53         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
54         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
55         documentation to reflect the new macro name and to clarify its 
56         meaning.
57         
58 2004-06-03  Steven Bosscher  <stevenb@suse.de>
59
60         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
61
62 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
63
64         * config/darwin.c (machopic_indirect_data_reference): Copy
65         the SYMBOL_REF_DECL from the original RTX for the new
66         non-lazy pointer RTX.
67
68 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
69
70         * tree.h: Remove include of version.h
71         * c-cppbuiltin.c: Include version.h
72         * diagnostic.c: Include version.h
73         * dwarf2out.c: Include version.h
74         * toplev.c: Include version.h
75         * vmsdbgout.c: Include version.h
76         * Makefile.in: Remove dependency on version.h from TREE_H, and
77         add dependencies to required .o targets
78
79 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
80
81         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
82         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
83         (TARGET_H): Add insn-modes.h.
84         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
85         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
86         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
87         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
88         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
89         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
90         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
91         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
92         CFGLAYOUT_H.
93         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
94         Replace ra.h with RA_H.
95         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
96         insn-recog.o): Replace resource.h with RESOURCE_H.
97         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
98         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
99         with SCHED_INT_H.
100         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
101         ra-rewrite.o): Replace df.h with DF_H.
102         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
103         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
104         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
105         (insn-conditions.o): Remove unused reload.h.
106         * cfglayout.h: Add include guard.  Include basic-block.h.
107         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
108         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
109         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
110         basic-block.h.
111         * genconditions.c:  Remove reload.h.
112         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
113         hard-reg-set.h, insn-modes.h.
114         * resource.h: Add include guard.  Include hard-reg-set.h.
115         * sched-int.h:  Add include guard.  Include insn-attr.h,
116         basic-block.h, rtl.h.
117         * target.h: Add include guard.  Include insn-modes.h.
118         * tree-ssa-live.h: Include partition.h.
119
120 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
121                 Kenneth Zadeck <zadeck@naturalbridge.com>
122
123         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
124         (add_var_to_ssa_edges_worklist): Add value argument.
125         Update callers.
126         Use new worklist.
127         (process_ssa_edge_worklist): New function.
128         (tree_ssa_ccp): Move worklist processing core to 
129         process_ssa_edge_worklist, and just call that for the two worklists.
130
131 2004-06-03  Steven Bosscher  <stevenb@suse.de>
132
133         * basic-block.c (tail_recursion_label_list): Don't declare.
134         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
135         accordingly.
136         * cfgbuild.c (find_label_refs): Remove.
137         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
138         * cfgcleanup.c (tail_recursion_label_p): Remove.
139         (merge_blocks_move): Do not check for tail recursion.
140         (try_optimize_cfg): Likewise.
141         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
142         * cfgrtl.c (tail_recursion_label_list): Remove.
143         * except.c (remove_unreachable_regions): Don't handle
144         CALL_PLACEHOLDER insns.
145         (convert_from_eh_region_ranges_1, can_throw_internal,
146         can_throw_external): Likewise.
147         * function.c (free_after_compilation): Don't clear
148         x_tail_recursion_label.
149         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
150         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
151         (reorder_blocks_1): Likewise.
152         * function.h (struct function): Remove x_tail_recursion_label
153         member.  Don't define tail_recursion_label.
154         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
155         * print-rtl.c (print_rtx): Likewise.
156         * rtl.def (CALL_PLACEHOLDER): Remove.
157         * rtl.h (sibcall_use_t): Remove enum.
158         (optimize_sibling_and_tail_recursive_calls,
159         replace_call_placeholder): Remove function prototypes.
160         * stmt.c (tail_recursion_args): Remove.
161         (optimize_tail_recursion): Remove.
162         (expand_return): Don't check for possible tail recursion.
163         * tree.h (optimize_tail_recursion): Remove prototype.
164
165 2004-06-02  Jan Hubicka  <jh@suse.cz>
166
167         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
168         return_stmt.
169
170 2004-06-02  Jason Merrill  <jason@redhat.com>
171
172         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
173         Do include c-parse.in.
174
175 2004-06-02  Eric Christopher  <echristo@redhat.com>
176
177         * c-typeck.c (common_type): Don't lose type qualifiers
178         when creating new variants.
179
180 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
181
182         PR tree-optimization/14042
183         PR tree-optimization/14729
184         PR tree-optimization/14736
185         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
186         Check the type which the pointer points to
187         instead of the pointer types.
188
189 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
190
191         PR tree-optimization/15738.
192         * builtins.c (fold_builtin_strchr): Transform
193         strrchr (s, '\0') to strchr (s, '\0').
194
195 2004-06-02  Steven Bosscher  <stevenb@suse.de>
196
197         * i386.c (ix86_adjust_cost): Don't increase the cost for
198         load+operation for PROCESSOR_PENTIUMPRO, it is already
199         modelled in the DFA description
200
201 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
202
203         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
204         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
205         (ALIAS_H, EMIT_RTL_H): New.
206         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
207         (cfgcleanup.o): Add EMIT_RTL_H.
208         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
209         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
210         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
211         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
212         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
213         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
214         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
215         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
216         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
217         set_mem_size): Move to emit-rtl.h.
218         * emit-rtl.h: New.
219         * alias.h: New.
220
221 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
222
223         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
224         Call fixup_memory_subreg only if the MEM is equal to 'var'.
225         Adjust recursive calls to self.
226         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
227
228 2004-06-01  Richard Henderson  <rth@redhat.com>
229             Andrew Pinski  <pinskia@physics.uc.edu>
230
231         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
232         (primary): Handle offsetof.  Add error productions for faux functions.
233         Move component_ref objc checking to build_component_ref.
234         (reswords): Add offsetof.
235         (rid_to_yy): Add offsetof.
236         * c-tree.h (build_offsetof): Declare.
237         * c-common.h (objc_is_public): Declare.
238         * c-typeck.c (build_component_ref): Check objc_is_public.
239         (build_offsetof): New.
240         * stub-objc.c (objc_is_public): New.
241         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
242         from is_public.
243         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
244         * doc/extend.texi (Offsetof): Move from C++ section to C section
245         and rewrite for __builtin_offsetof.
246
247 2004-06-01  Peter Barada  <peter@the-baradas.com>
248             Peter Jakubek  <peter@laseranimation.com>
249
250         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
251         a scratch to perform an add to memory.
252
253 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
254
255         PR target/14018
256         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
257         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
258         m68k_align_funcs): Remove.
259         (override_options): Remove code to handle -malign-* options.
260         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
261         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
262         (m68k_align_loops_string, m68k_align_jumps_string,
263         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
264         m68k_align_funcs): Remove definitions.
265
266 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
267
268         PR target/15626
269         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
270         by the Sun linker in conjunction with the Sun assembler.
271         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
272
273 2004-06-01  Jeff Law  <law@redhat.com>
274
275         * stmt.c (expand_decl): Be more selective about calling
276         mark_reg_pointer.
277
278 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
279
280         PR objc/7993
281         * objc-act.c (is_private): Do not emit the 'instance variable %s
282         is declared private' error.
283         (is_public): Emit the error after calling is_private.
284         (lookup_objc_ivar): If the instance variable is private, return 0
285         - the instance variable is invisible here.
286
287 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
288
289         * doc/invoke.texi (-static-libgcc): Explicitly mention
290         non-GNU linkers.
291
292 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
293
294         PR target/12968
295         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
296
297 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
298
299         PR c/15749
300         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
301         misuses of structures with flexible array members if
302         in_system_header.
303
304 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
305
306         PR target/15693
307         * config/sparc/sparc.c (compare_operand): New predicate.
308         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
309         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
310         operand is a ZERO_EXTRACT and the second operand is not zero,
311         force the former to a register.
312         (cmpdi expander): Likewise.
313
314 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
315
316         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
317         looks at.
318         * alias.c (alias_invariant_size): Make alias_invariant_size
319         static, fix GTY marker.
320
321 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
322
323         PR tree-optimization/15743.
324         * builtins.c (fold_builtin_1): Fold index() and rindex().
325
326 2004-05-31  Roger Sayle  <roger@eyesopen.com>
327
328         PR middle-end/15069
329         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
330         into "X < 0" (where C is the signbit) if X's type is a full mode.
331
332 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
333
334         * pa.md: Disable the peephole2 patterns that generate indexed
335         floating-point stores when indexing is disabled.
336
337 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
338
339         * c-pretty-print.c (pp_c_left_bracket): Make a function.
340         (pp_c_right_bracket): Likewise.
341         (pp_c_star): Likewise.
342         (pp_c_ampersand): Define.
343         * c-pretty-print.h (pp_c_left_bracket): Declare.
344         (pp_c_right_bracket): Likewise.
345         (pp_c_star): Likewise.
346         (pp_c_ampersand): Likewise.
347
348 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
349
350         * config/sol2.h (__enable_execute_stack): ANSIfy function
351         definition.
352
353 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
354
355         * c-incpath.c (add_path): Canonicalize paths to use '/' if
356         HAVE_DOS_BASED_FILESYSTEM.
357
358 2004-05-31  Steven Bosscher  <stevenb@suse.de>
359
360         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
361         Only look at case labels if the immediate dominator is also
362         the only predecessor.  Don't look for more case labels if the
363         first seen is a case range.
364
365 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
366
367         * builtins.c: Add a prototype for fold_builtin_strchr().
368
369 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
370
371         Revert this patch:
372         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
373
374         * combine.c (gen_binary): Remove.
375         (known_cond, simplify_shift_const
376         find_split_point, combine_simplify_rtx,
377         simplify_if_then_else, simplify_set,
378         simplify_logical, expand_field_assignment,
379         extract_left_shift, force_to_mode,
380         if_then_else_cond, apply_distributive_law,
381         simplify_and_const_int, simplify_shift_const,
382         gen_lowpart_for_combine, simplify_comparison,
383         reversed_comparison): Replace with
384         simplify_gen_binary, simplify_gen_relational or
385         distribute_and_simplify_rtx.
386         (distribute_and_simplify_rtx): New function.
387
388 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
389
390         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
391         when generating PIC code.
392
393 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
394
395         * c-decl.c (c_expand_body_1): Remove and fold back into ...
396         (c_expand_body): here.
397         (c_expand_decl): Move to ...
398         * c-common.c (c_expand_decl): Here and remove check for nested
399         functions.
400         * c-common.h (c_expand_decl): Add prototype.
401         * c-tree.h (c_expand_decl): Remove.
402
403 2004-05-30  Roger Sayle  <roger@eyesopen.com>
404
405         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
406         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
407         fold_mathfn_compare, fold_inf_compare, fold,
408         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
409         Use constant_boolean_node where appropriate.  Don't bother using
410         fold_convert on the second argument to omit_one_operand.
411
412 2004-05-30  Roger Sayle  <roger@eyesopen.com>
413
414         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
415         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
416         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
417         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
418         Add missing (but documented) tree nodes to the index.
419
420 2004-05-30  Steven Bosscher  <stevenb@suse.de>
421
422         PR tree-optimization/14819
423         * builtins.c (fold_builtin_strchr): New.
424         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
425         with fold_builtin_strchr().
426
427 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
428
429         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
430         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
431         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
432         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
433         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
434         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
435         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
436         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
437         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
438         formatting.
439
440 2004-05-30  Steven Bosscher  <stevenb@suse.de>
441
442         * gimplify.c (sort_case_labels): New.  Split out from...
443         (gimplify_switch_expr): ...here.  Use it.
444         * tree-eh.c (lower_try_finally_switch): Sort the labels of
445         the SWITCH_EXPR created here before leaving the function.
446         * tree.c (sort_case_labels): Add prototype.
447
448 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
449
450         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
451         of BOOLEAN_TYPE.
452
453 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
454
455         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
456         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
457         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
458         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
459         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
460         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
461         comment typos.  Follow spelling conventions.
462
463 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
464
465         * gengtype-yacc.y: Add NESTED_PTR token.
466         (option): Record `nested_ptr' option.
467         * gengtype-lex.l: Handle `nested_ptr' keyword.
468         * gengtype.c (walk_type): Process `nested_ptr' option.
469         * gengtype.h (struct nested_ptr_data): New.
470         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
471         * stringpool.c (struct string_pool_data): Make 'entries' point to
472         ht_identifier instead of tree.
473         (gt_pch_save_stringpool): Don't adjust pointers.
474         (gt_pch_restore_stringpool): Call ht_load.
475
476 2004-05-29  Jason Merrill  <jason@redhat.com>
477
478         * gimplify.c (gimplify_expr): Don't build a statement list
479         if no gimplification was necessary.
480
481 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
482
483         * pretty-print.c (pp_base_format_text): Support %< instead of %`
484         and %> as well as %'.
485         * c-format.c: Use %< and %>.
486         (gcc_diag_char_table, gcc_cdiag_char_table,
487         gcc_cxxdiag_char_table): Update.
488
489 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
490
491         * c-typeck.c (common_type): Correct comment.
492
493 2004-05-29  Peter Barada  <peter@the-baradas.com>
494
495         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
496         * config/m68k/m68k.c (const_method): Likewise.
497         * config/m68k/m68k.c (const_int_cost): Likewise.
498         * config/m68k/m68k.c (const_int_cost): Likewise.
499         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
500
501 2004-05-29  Peter Barada  <peter@the-baradas.com>
502
503         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
504         addressing.
505         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
506         movsi,movhi,movqi insn patterns.
507
508 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
509
510         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
511
512         PR target/15720
513         * config/darwin.c (machopic_indirect_call_target): Copy
514         the SYMBOL_REF_DECL from the original RTX for the new
515         stub RTX.
516
517 2004-05-28  DJ Delorie  <dj@redhat.com>
518
519         * stor-layout.c (place_field): Revert erroneous commit.
520
521 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
522
523         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
524         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
525         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
526         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
527         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
528         vec_ste): Remove type checks for integral parameters and literals
529         from '..._args_eq' macros.
530
531 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
532
533         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
534
535 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
536
537         * testsuite/g++.dg/charset/function.cc: New.
538
539         * testsuite/gcc.dg/charset/function.c: New.
540
541         * c-decl.c (c_make_fname_decl): Free return value from
542         fname_as_string.
543
544         * cp/decl.c (cp_make_fname_decl): Free return value from
545         fname_as_string.
546
547         * c-common.c (fname_as_string): Translate if necessary.
548
549 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
550
551         * stringpool.c: Add comments to PCH saving/restoring routines.
552
553 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
554
555         * c-common.c (c_estimate_num_insns_1): Kill.
556         (c_estimate_num_insns): Kill.
557         * c-common.h (c_estimate_num_insns): Kill.
558
559         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
560         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
561         Remove comment about not checking for
562         _POSIX_PRIORITY_SCHEDULING.
563         * gthr-posix.c: Likewise.
564
565 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
566             Roger Sayle  <roger@eyesopen.com>
567
568         PR rtl-optimization/15649
569         Add LTGT_EXPR and improve pretty-printing of unordered
570         comparisons.
571         * c-common.c (c_common_truthvalue_conversion):
572         Handle LTGT_EXPR.
573         * c-typeck.c (build_binary_op): Likewise.
574         * dojump.c (do_jump): Likewise.
575         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
576         * predict.c (tree_predict_by_opcode): Likewise.
577         * real.c (real_compare): Likewise.
578         * tree-cfg.c (verify_expr): Likewise.
579         * tree-inline.c (estimate_num_insns_1): Likewise.
580         * tree-pretty-print.c (dump_generic_node): Likewise.
581         Handle ORDERED_EXPR, UNORDERED_EXPR.
582         (op_symbol): Print unordered comparisons differently
583         than ordered ones.
584         * tree.def (LTGT_EXPR): New '<' tree code.
585         * doc/c-tree.texi (Expressions): Document floating-point
586         comparison nodes.
587
588         Fold comparisons between floating point values.
589         * fold-const.c (enum comparison_code): New, from
590         #define'd constants.  Define compcodes for unordered
591         comparisons and for invalid transformations.
592         (invert_tree_comparison): Add "honor_nans" parameter.
593         (fold_truthop): Revamp to work on floating-point types too.
594         (comparison_to_compcode): Support unordered comparisons.
595         Use new enum comparison_code.
596         (compcode_to_comparison): Likewise.
597         (combine_compcodes): New function.
598         (invert_truthvalue): Let invert_tree_comparison decide
599         whether it is valid to fold the comparison.  Fold ORDERED
600         and UNORDERED even if flag_unsafe_math_optimizations is off,
601         and the remaining even if flag_unsafe_math_optimizations
602         is off but we are under -fno-trapping-math.
603         (fold_relational_const): Integer modes do not honor NaNs.
604
605 2004-05-28  Paul Brook  <paul@codesourcery.com>
606
607         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
608
609 2004-05-28  Paul Brook  <paul@codesourcery.com>
610
611         * config/arm/arm.c (thumb_force_lr_save): New function.
612         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
613         thumb_output_function_prologue): Use it.
614         (thumb_expand_prologue): Set lr_save_eliminated.
615
616 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
617
618         * config/mips/mips.md (extendsidi2): Tie the source and destination
619         of the register alternative.  Split it into nothing.
620
621 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
622
623         * rtl.h (skip_consecutive_labels): Declare.
624         * emit-rtl.c (skip_consecutive_labels): New function.
625         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
626         * jump.c (follow_jumps): Say what null return values mean.
627
628 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
629
630         PR target/13250
631         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
632
633 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
634
635         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
636         libgcc-std.ver.
637         * config/sh/libgcc-std.ver: New file.
638
639 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
640
641         * except.c: Revert change of 2004-05-26.
642         * config/i386/i386.md: Revert change of 2004-05-27.
643
644 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
645
646         * configure.ac: Remove --enable-tree-browser option.
647         Define TREEBROWSER when ac_tree_checking is defined.
648         * configure: Rebuilt.
649
650 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
651
652         * expr.c (store_constructor): Restore sanity check on
653         the size of the type before clearing.
654
655 2004-05-27  Jan Hubicka  <jh@suse.cz>
656
657         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
658
659 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
660
661         * combine.c (gen_binary): Remove.
662         (known_cond, simplify_shift_const
663         find_split_point, combine_simplify_rtx,
664         simplify_if_then_else, simplify_set,
665         simplify_logical, expand_field_assignment,
666         extract_left_shift, force_to_mode,
667         if_then_else_cond, apply_distributive_law,
668         simplify_and_const_int, simplify_shift_const,
669         gen_lowpart_for_combine, simplify_comparison,
670         reversed_comparison): Replace with
671         simplify_gen_binary, simplify_gen_relational or
672         distribute_and_simplify_rtx.
673         (distribute_and_simplify_rtx): New function.
674         * simplify-rtx.c (simplify_binary_operation):
675         Use nonzero_bits to simplify ANDs where we are
676         turning off bits already known to be off in OP0.
677
678 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
679
680         PR target/14478
681         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
682
683 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
684
685         PR middle-end/14084
686         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
687         to size of decl.
688
689 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
690
691         PR/14924
692         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
693
694 2004-05-26  Roger Sayle  <roger@eyesopen.com>
695
696         * tree.h: Fix comment typo.
697
698 2004-05-27  Steven Bosscher  <stevenb@suse.de>
699
700         * gimplify.c (compare_case_labels): New function.
701         (gimplify_switch_expr): Sort case labels, and make sure the
702         last label in the label vector is the default case.
703         * tree-cfg.c (group_case_labels): New function.
704         (build_tree_cfg): Cleanup redundant labels and group case labels
705         before creating edges.
706         (cleanup_dead_labels): Handle GOTO_EXPRs.
707         (find_case_label_for_value): Use a binary search to find the
708         case label for the given value.
709         * tree-gimple.c: Mention that labels are sorted, and that the
710         last label must be the default.
711
712 2004-05-27  Jan Hubicka  <jh@suse.cz>
713
714         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
715
716 2004-05-27  Jan Hubicka  <jh@suse.cz>
717
718         * i386.md (UNSPECV_EH_RETURN): Kill.
719         (eh_return): Use jump_insn.
720         (eh_return_si, eh_return_di): Change pattern to jump instruction.
721
722 2004-05-26  Jan Hubicka  <jh@suse.cz>
723
724         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
725         not loop optimizing.
726
727 2004-05-26  Jan Hubicka  <jh@suse.cz>
728
729         * except.c (can_throw_internal):  Notice RESX instructions.
730
731 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
732
733         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
734         of the two sizes to assemble_integer.
735
736 2004-05-25  Paul Brook  <paul@codesourcery.com>
737
738         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
739         pointless #ifdef.
740
741 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
742
743         * Makefile.in (top_builddir): Define to .
744
745 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
746
747         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
748         top-level detects, except when in-tree ld is being cross-built.
749         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
750         then AS only if target is host.
751         * configure: Rebuilt.
752
753 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
754
755         * global.c (global_alloc): Call make_accurate_live_analysis.
756         (record_one_conflict): Remove dead code.
757         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
758         (bb_info): New structure.
759         (BB_INFO, BB_INFO_BY_INDEX): New macros.
760         (allocate_bb_info, free_bb_info, mark_reg_change,
761         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
762         modify_bb_reg_pav, calculate_reg_pav,
763         make_accurate_live_analysis): New functions.
764
765 2004-05-25  Devang Patel  <dpatel@apple.com>
766
767         * alias.c (init_alias_analysis): Use ggc_calloc instead of
768         xrealloc.
769         (end_alias_analysis): Use ggc_free instead fo free.
770
771 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
772
773         PR target/15546
774         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
775         as needed to be outputted.
776
777 2004-05-25  Jan Hubicka  <jh@suse.cz>
778
779         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
780
781 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
782         Mostafa Hagog  <mustafa@il.ibm.com>
783
784         * Makefile.in (modulo-sched.o, ddg.o): New.
785         * ddg.h, ddg.c, modulo-sched.c: New files.
786         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
787         internals to "dupicate_insn".
788         (duplicate_insn): New function.
789         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
790         declarations.
791         * common.opt (fmodulo-sched): New flag.
792         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
793         Remove static and forward declaration.
794         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
795         functions.
796         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
797         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
798         declarations.
799         * flags.h (flag_modulo_sched): New flag.
800         * opts.c (common_handle_option): Handle modulo-sched flag.
801         * params.def (max-sms-loop-number, sms-max-ii-factor,
802         sms-dfa-history, sms-loop-average-count-threshold): New
803         parameters.
804         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
805         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
806         parameters.
807         * passes.c ("sms", "sms-vcg"): New dumps.
808         (rest_of_handle_sched): Call sms_schedule.
809         * rtl.h (sms_schedule): New declaration.
810         * timevar.def (TV_SMS): New.
811         * toplev.c (flag_modulo_sched): Initialize.
812         (f_options): Handle -fmodulo-sched option.
813         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
814         * docs/passes.texi: Document new SMS pass.
815
816 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
817
818         * Makefile.in (OBJS): Add rtlhooks.o.
819         (rtlanal.o): Depend on function.h.
820         (cse.o): Depend on rtlhooks-def.h.
821         (combine.o): Depend on rtlhooks-def.h.
822         (rtlhooks.o): New rule.
823         * combine.c: Include rtlhooks-def.h.
824         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
825         num_sign_bit_copies, cached_num_sign_bit_copies,
826         num_sign_bit_copies1): Move most of the code to rtlanal.c.
827         (reg_nonzero_bits_for_combine,
828         reg_num_sign_bit_copies_for_combine): New functions holding
829         the remnants of the above.
830         (combine_rtl_hooks): New.
831         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
832         * cse.c: Include rtlhooks-def.h.
833         (cse_rtl_hooks): New.
834         (cse_main): Set rtl_hooks instead of gen_lowpart.
835         * emit-rtl.c (gen_lowpart): Remove.
836         (gen_lowpart_general): Move to rtlhooks.c.
837         * rtl.h (nonzero_bits, num_sign_bit_copies,
838         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
839         (gen_lowpart_general): Remove.
840         (gen_lowpart): Temporarily redefine as a macro.
841         * rtlanal.c: Include function.h.
842         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
843         num_sign_bit_copies, cached_num_sign_bit_copies,
844         num_sign_bit_copies1): New, from combine.c.
845         * rtlhooks.c: New file.
846
847 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
848
849         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
850         to support 32-bit -mint8 mode.
851
852         * doc/invoke.texi (-mint8): Added documentation for the -mint8
853         option in the AVR architecture.
854
855 2004-05-24  Mike Stump  <mrs@apple.com>
856
857         * doc/install.texi: Document that dejagnu 1.4.4 is required.
858
859 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
860
861         * intl.h (open_quote, close_quote): New.
862         * intl.c (open_quote, close_quote): New.
863         (gcc_init_libintl): Set them.
864         * pretty-print.c: Include "intl.h".
865         (pp_base_format_text): Support 'q' format flag and %` and %'
866         formats.  Use ' instead of ` in comments.
867         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
868         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
869         foramt_types_orig): Describe these new formats.
870         (decode_format_attr, check_function_format,
871         check_format_info_main): Use these new formats.
872         (status_warning): Use ATTRIBUTE_GCC_DIAG.
873         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
874         check these formats to 3.5.
875
876 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
877
878         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
879         (BACKEND): Reflect this.
880         (LIBDEPS): Move CPPLIB before LIBIBERTY.
881         (LIBS): Likewise.
882
883 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
884
885         PR tree-optimization/14197
886         * builtins.c: Include "tree-gimple.h"
887         (readonly_data_expr): Use get_base_address.  Make sure to call
888         decl_readonly_section only on trees it can handle.
889         * tree-gimple.c (get_base_address): Accept STRING_CST and
890         CONSTRUCTOR expressions.
891         * Makefile.in: Update dependencies.
892
893 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
894
895         Move libcpp to the toplevel.
896         * Makefile.in: Remove references to libcpp files,
897         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
898         and change hashtable.h to that.
899         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
900         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
901         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
902         * configure: Regenerate.
903         * config.in: Regenerate.
904         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
905         * cppcharset.c: Removed.
906         * cpperror.c: Removed.
907         * cppexp.c: Removed.
908         * cppfiles.c: Removed.
909         * cpphash.c: Removed.
910         * cpphash.h: Removed.
911         * cppinit.c: Removed.
912         * cpplex.c: Removed.
913         * cpplib.c: Removed.
914         * cpplib.h: Removed.
915         * cppmacro.c: Removed.
916         * cpppch.c: Removed.
917         * cpptrad.c: Removed.
918         * cppucnid.h: Removed.
919         * cppucnid.pl: Removed.
920         * cppucnid.tab: Removed.
921         * hashtable.c: Removed.
922         * hashtable.h: Removed.
923         * line-map.c: Removed.
924         * line-map.h: Removed.
925         * mkdeps.c: Removed.
926         * mkdeps.h: Removed.
927         * stringpool.h: Include symtab.h instead of hashtable.h.
928         * tree.h: Include symtab.h instead of hashtable.h.
929         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
930
931 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
932
933         * gcc.c (struct prefix_list): Add forward declaration.
934         (do_spec_path): New function, extracted from...
935         (do_spec_1) <'D'>: ... here.  Drop support for
936         SPACE_AFTER_L_OPTION.
937         (do_spec_1) <'I'>: Use do_spec_path.
938         (process_command): Do not store the 'include' suffix
939         in include_prefixes.
940         * system.h: Poison SPACE_AFTER_L_OPTION.
941
942 2002-05-23  Roger Sayle  <roger@eyesopen.com>
943
944         * fold-const.c (non_lvalue): Explicitly list the tree codes that
945         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
946
947 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
948
949         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
950         Update based on printed manual.  Enable setting of offsets for
951         FSFPRINT and move it to gcc-common.texi.
952         * doc/gcc.texi: Update FSF printing details.
953         * doc/gccint.texi: Remove FSF printing details.
954
955 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
956
957         * config/rs6000/t-rs6000: Remove the disabling -Werror.
958
959 2004-05-22  Roger Sayle  <roger@eyesopen.com>
960
961         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
962         expand_builtin_strrchr, expand_builtin_strpbrk,
963         expand_builtin_mempcpy, expand_builtin_memcmp,
964         expand_builtin_strcmp, expand_builtin_strncmp,
965         expand_builtin_strcat, std_expand_builtin_va_start,
966         std_expand_builtin_va_arg, expand_builtin_va_copy,
967         expand_builtin_signbit, fold_builtin_cabs,
968         fold_builtin_logarithm, fold_builtin_mempcpy,
969         fold_builtin_signbit, fold_builtin_isascii,
970         fold_builtin_toascii, fold_builtin_isdigit,
971         fold_builtin_1, build_function_call_expr,
972         simplify_builtin_strchr, simplify_builtin_strrchr,
973         simplify_builtin_strpbrk, simplify_builtin_strncpy,
974         simplify_builtin_memcmp, simplify_builtin_strcmp,
975         simplify_builtin_strncmp, simplify_builtin_strncat,
976         simplify_builtin_strspn, simplify_builtin_strcspn,
977         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
978         to build with calls to build2, build3 or omit_one_operand.
979
980 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
981
982         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
983         section when generating EABI code.
984
985 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
986
987         PR 15546
988         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
989         Call mark_decl_referenced on the SYMBOL_REF_DECL.
990
991 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
992
993         * c-common.c (c_common_truthvalue_conversion): Handle
994         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
995         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
996         i.e. set the type to truthvalue_type_node and return.
997
998 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
999
1000        * tree.h (struct tree_decl): Add possibly_inlined bit.
1001         (DECL_POSSIBLY_INLINED): New accessor macro.
1002         * cgraph.h: Remove declaration of cgraph_inline_hash.
1003         * cgraph.c: Remove definition of cgraph_inline_hash.
1004         (hash_node): Revert to hashing DECL_UID.
1005         (eq_node): Take two pointers to cgraph_node structures.
1006         Compare DECL_UIDs.
1007         (cgraph_remove_node): Pass the node directly to htab_find_slot.
1008         (cgraph_varpool_hash_node): Rename hash_varpool_node;
1009         hash on DECL_UID.
1010         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
1011         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
1012         (cgraph_node): Allocate a temporary node on the stack, fill in
1013         its DECL field, and pass that to htab_find_slot.
1014         (cgraph_varpool_node): Likewise.
1015         (cgraph_function_possibly_inlined_p): If global info is ready,
1016         return the DECL_POSSIBLY_INLINED bit.
1017         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
1018         instead of mucking with cgraph_inline_hash.
1019
1020 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1021
1022         * doc/contrib.texi: Add g77 contributors.
1023
1024 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1025
1026         * calls.c (initialize_argument_information): Forbid sibcalls if a
1027         callee-copied argument is stored in the current function's frame.
1028
1029 2004-05-22  Eric Christopher  <echristo@redhat.com>
1030
1031         * fix-header.c (read_scan_file): Update for add_path change.
1032
1033 2004-05-22  Ben Elliston  <bje@au.ibm.com>
1034
1035         * c.opt (Wmissing-include-dirs): New.
1036         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
1037         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
1038         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
1039         * c-incpath.h (add_path): Add fourth (bool) argument.
1040         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
1041         (add_standard_paths): Likewise.
1042         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
1043         is used and the directory was user-supplied via -I.
1044         (add_path): Set p->user_supplied_p.  Remove duplicated code by
1045         using add_cpp_dir_path ().
1046         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
1047         (struct cpp_dir): Add user_supplied_p.
1048         * doc/invoke.texi (Warning Options): Document new option.
1049
1050 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
1051
1052         * fold-const.c (fold_read_from_constant_string): Convert result to
1053         requested type.
1054
1055 2004-05-21  Richard Henderson  <rth@redhat.com>
1056
1057         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
1058         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
1059         Don't mark VA_ARG_EXPRs volatile here.
1060         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
1061
1062 2004-05-21  Richard Henderson  <rth@redhat.com>
1063
1064         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
1065         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
1066
1067 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1068
1069         * fold-const.c (fold, fold_relational_hi_lo,
1070         nondestructive_fold_binary_to_constant,
1071         fold_read_from_constant_string): Use fold_convert instead of convert.
1072         * builtins.c (simplify_builtin, simplify_builtin_strstr,
1073         simplify_builtin_strchr, simplify_builtin_strrchr,
1074         simplify_builtin_strpbrk): Use fold_convert instead of convert.
1075
1076 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
1077
1078         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
1079         is NULL.
1080
1081 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1082
1083         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
1084         override sparc.h definition.
1085
1086 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1087
1088         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
1089         get_unwidened, get_narrower): Replace build with build2.
1090         * fold-const.c (negate_expr, associate_trees, size_binop,
1091         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
1092         pedantic_omit_one_operand, distribute_bit_expr,
1093         make_bit_field_ref, optimize_bit_field_compare,
1094         decode_field_reference, range_binop, make_range,
1095         build_range_check, fold_range_test, fold_truthop,
1096         optimize_minmax_comparison, extract_muldiv_1,
1097         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
1098         fold_inf_compare, fold_single_bit_test, fold,
1099         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1100         Likewise replace build with either build2 or build3.
1101
1102 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
1103
1104         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
1105         * calls.c (prepare_call_address): Don't test
1106         NO_RECURSIVE_FUNCTION_CSE.
1107         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
1108         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1109         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1110         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1111         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1112         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1113         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1114         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1115         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1116         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1117         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1118         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
1119         Likewise.
1120         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1121         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
1122         * doc/tm.texi (Costs): Remove documentation for
1123         NO_RECURSIVE_FUNCTION_CSE.
1124
1125 2004-05-20  Paul Brook  <paul@codesourcery.com>
1126
1127         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
1128         * unwind-dw2.c (extract_cie_info): Ditto.
1129         (_Unwind_FrameState): Change retaddr_column to word type.
1130
1131 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1132
1133         PR middle-end/3074
1134         * fold-const.c (strip_compound_expr): Delete function.
1135         (count_cond): Delete function.
1136         (fold_binary_op_with_conditional_arg): Only perform transformations
1137         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
1138         when a is constant.  This greatly simplifies this routine.
1139
1140         * tree.c (saved_expr_p): Delete function.
1141         * tree.h (saved_expr_p): Delete function prototype.
1142
1143 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1144
1145         * common.opt (ftree-loop-optimize): Remove.
1146
1147 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
1148
1149         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
1150         (NM_FOR_TARGET): Use := and $(shell).
1151         (mainversion): Remove unused variable.
1152
1153 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1154
1155         * reorg.c (delete_from_delay_slot): If we have a barrier after the
1156         sequence containing the insn to be deleted, always reemit it.
1157
1158 2004-05-20  Richard Henderson  <rth@redhat.com>
1159
1160         PR 15454
1161         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
1162         * function.c (expand_function_start): Expand static_chain_decl by hand.
1163         * gimplify.c (create_tmp_var_name): Export.
1164         * tree-gimple.h (create_tmp_var_name): Declare.
1165
1166 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1167
1168         * rs6000.c (print_operand) <case 'z'>: Call
1169         mark_decl_referenced before assemble_name.
1170
1171 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
1172
1173         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1174         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1175         (cgraph_varpool_node): Hash on the pointer to the decl, not
1176         the DECL_UID.  Fixes 64-bit bootstrap failure.
1177
1178 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
1179
1180         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
1181         we don't earlyclobber operands used in the second insn.
1182
1183 2004-05-20  Steven Bosscher  <stevenb@suse.de>
1184
1185         * tree-mudflap.c: Formatting fixes.
1186
1187 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1188
1189         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
1190         * gengtype.c (open_base_files): Include reload.h in ifiles.
1191         * reload.h (reg_equiv_memory_loc_varray): Declare.
1192         * reload1.c (reg_equiv_memory_loc_varray): New variable.
1193         (init_reload): Initialize it.
1194         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
1195         reg_equiv_memory_loc_varray to size 0.
1196         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
1197         growing reg_equiv_memory_loc_varray to the desired size.
1198         * passes.c (rest_of_handle_old_regalloc): Likewise.
1199         * reload.c: Amend comment on calling init_reload.
1200
1201 2004-05-20  Nick Clifton  <nickc@redhat.com>
1202
1203         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
1204         with 'TRAMP' in the body of the macro definition.
1205
1206 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1207
1208         PR target/15383
1209         * config/ia64/ia64.c (ia64_expand_compare): Don't check
1210         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
1211         cmptf_libfunc isn't set.
1212         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
1213         conventions.
1214         (ia64_sysv4_init_libfuncs): New.
1215
1216         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
1217         ia64_sysv4_init_libfuncs.
1218
1219 2004-05-20  Falk Hueffner  <falk@debian.org>
1220
1221         PR other/15526
1222         * libgcc2.c (__mulvsi3): Fix overflow test.
1223
1224 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
1225
1226         PR c/14171
1227         * reg-stack.c (nan): Rename to ...
1228         (not_a_num): Here.
1229         (reg_to_stack): Rename nan to not_a_num.
1230         (subst_stack_regs_pat): Likewise.
1231         (convert_regs_entry): Likewise.
1232         (convert_regs_1): Likewise.
1233
1234         * tree-cfg.c (find_case_label_for_value): Replace call to
1235         simple_cst_equal with tree_int_cst_equal.
1236
1237 2004-05-19  Jeff Law <law@redhat.com>
1238
1239         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
1240         If the operand is for a use, then strip away the SSA_NAME, do not
1241         strip away the SSA_NAME for a set.  Never call release_ssa_name.
1242         (mark_def_sites): Appropriately pass additional argument to
1243         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
1244         then set the VDEF_RESULT to the VDEF_OP.
1245         (set_def_block): Strip away any SSA_NAME to get to the real
1246         underlying variable.
1247
1248         * tree-ssa-phiopt.c (value_replacement): Handle the case where
1249         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
1250         BB directly.
1251
1252 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1253
1254         PR c++/15463
1255         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
1256         result of inverse.
1257
1258         PR rtl-optimization/15274
1259         * loop-iv.c (determine_max_iter, shorten_into_mode,
1260         iv_number_of_iterations): Handle constants correctly.
1261         * rtl.h (get_mode_bounds): Declaration changed.
1262         * stor-layout.c (get_mode_bounds): Return a constant suitable for
1263         the target mode.
1264
1265         PR rtl-optimization/14692
1266         * loop-unswitch.c (may_unswitch_on): Try folding the result.
1267         (unswitch_single_loop): Work correctly when may_unswitch_on
1268         returns a folded constant.
1269
1270         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
1271         * simplify-rtx.c (simplify_const_relational_operation): Optimize
1272         comparisons with mode bounds.
1273
1274         * function.c (struct temp_slot): Add new field prev.
1275         (free_after_compilation, init_temp_slots): Free new fields.
1276         (cut_slot_from_list, insert_slot_to_list,
1277         temp_slots_at_level, max_slot_level, move_slot_to_level,
1278         make_slot_available): New functions.
1279         (assign_stack_temp_for_type, combine_temp_slots,
1280         find_temp_slot_from_address, preserve_temp_slots,
1281         preserve_rtl_expr_result, free_temp_slots,
1282         free_temps_for_rtl_expr, pop_temp_slots): Work with
1283         the new structure of lists.
1284         (mark_all_temps_used): Removed.
1285         * function.h (struct function): Field x_temp_slots
1286         replaced by x_used_temp_slots and x_avail_temp_slots.
1287         (temp_slots): Replaced by ...
1288         (used_temp_slots, avail_temp_slots): New.
1289         * tree.h (mark_all_temps_used): Declaration removed.
1290
1291         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
1292         simplify_using_assignment): Take the expression out of
1293         the expr_list wrapper.
1294
1295         * loop-iv.c (iv_number_of_iterations): Improve clasification of
1296         infinite loops.
1297
1298 2004-05-19  Roger Sayle  <roger@eyesopen.com>
1299
1300         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
1301         costs should be based on code size when optimizing for size.
1302
1303 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
1304
1305         * fold-const.c: Remove non-printable character 160.
1306
1307 2004-05-19  Nick Clifton  <nickc@redhat.com>
1308
1309         * doc/invoke.texi (ARM Options): Fix typo.
1310         Remove descrption of -mshort-load-bytes and
1311         -mno-short-load-bytes.
1312
1313         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
1314         missing parenthesis.
1315         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
1316         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
1317
1318 2004-05-19  Steven Bosscher  <stevenb@suse.de>
1319
1320         * expr.c (store_constructor): Build loop start and end by hand
1321         instead of via loop functions from stmt.c.
1322         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
1323         Remove the code to expand them.
1324
1325         * stmt.c (loop_stack): Remove this and everything related.
1326         (struct nesting, enum nesting_desc): Update.
1327         (expand_fixup): Likewise.
1328         (expand_loop_start, expand_start_loop_continue_elsewhere,
1329         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
1330         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
1331         expand_exit_loop_if_false, expand_exit_loop_top_cond,
1332         expand_exit_something): Remove.
1333         * tree.h: Remove prototypes.
1334
1335 2004-05-18  Mike Stump  <mrs@apple.com>
1336             Devang Patel  <dpatel@apple.com>
1337
1338         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
1339         if this label is for eh.
1340         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
1341         * config/darwin.c (darwin_emit_unwind_label): Likewise.
1342         * dwarf2out.c (output_call_frame_info): Likewise.
1343         * output.h (default_emit_unwind_label): Likewise.
1344         * target.h (unwind_label): Likewise.
1345         * varasm.c (default_emit_unwind_label): Likewise.
1346
1347         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1348         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
1349         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
1350         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
1351         DEBUG_RANGES_SECTION): Define.
1352
1353 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
1354
1355         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1356         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1357         (cgraph_varpool_node):
1358         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
1359         (cgraph_function_possibly_inlined_p): Use the decl itself for
1360         the key, not DECL_ASSEMBLER_NAME.
1361         (change_decl_assembler_name): No need to muck with the hash tables.
1362         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
1363         Delete.
1364         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
1365         for the key, not DECL_ASSEMBLER_NAME.
1366         * cgraph.h: Remove prototypes of deleted functions.
1367         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1368         (mark_decl_referenced): New function.
1369         * tree.h: Prototype mark_decl_referenced.
1370         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1371         mark_decl_referenced before assemble_name.
1372         * c-decl.c (finish_decl): Use mark_decl_referenced.
1373
1374 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1375             Jeff Law <law@redhat.com>
1376
1377         * tree-ssa-phiopt.c (abs_replacement): New function.
1378         (empty_block_p): New function extracted from...
1379         (candidate_bb_for_phi_optimization): Break out empty block test.
1380         (conditional_replacement): Use empty_block_p.
1381         (value_replacement): Similarly.
1382
1383         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1384         * tree-ssa-phiopt.c: Include flags.h.
1385         (conditional_replacement): Remove argument names from prototype.
1386         Minor formatting and comment fixes.
1387         (tree_ssa_phiopt): If conditional_replacement returns false, then
1388         call value_replacement.
1389         (value_replacement): New function.
1390
1391 2004-05-18  Jeff Law  <law@redhat.com>
1392
1393         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1394         from conditional_replacement.
1395         (candidate_bb_for_phi_optimization): Similarly.
1396         (conditional_replacement): Use replace_phi_with_stmt and
1397         candidate_bb_for_phi_optimization.
1398
1399         * tree-ssa-phiopt.c: Fix various formatting issues.
1400
1401 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1402
1403         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1404         s390_expand_cmpmem): Do not use expand_start_loop and
1405         expand_end_loop, instead build the loop manually.
1406
1407 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1408
1409         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1410         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1411
1412 2004-05-17  Jeff Law  <law@redhat.com>
1413
1414         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1415         * flags.h (flag_delete_null_pointer_checks): Here.
1416         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1417         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1418         (add_phi_arg, remove_phi_arg_num): Similarly.
1419         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1420         property into PHI nodes.
1421         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1422         (record_equivalences_from_phis): If all PHI arguments are known to be
1423         nonzero, then the result must be nonzero as well.
1424         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1425         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1426         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1427         as appropriate.
1428         * tree.h (PHI_ARG_NONZERO): Define.
1429         (phi_arg_d): Add nonzero flag.
1430
1431 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1432
1433         * f: Entire directory removed
1434
1435         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1436         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1437         (g77_integer_type_node, g77_uinteger_type_node)
1438         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1439         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1440         the above set of variables.
1441
1442         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1443         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1444         to g77 manual.
1445
1446 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1447
1448         PR tree-optimization/15438
1449         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1450         attributed functions as pure or const.
1451
1452 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1453
1454         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1455         from source code with errors.
1456
1457 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1458
1459         Enable tree browser for all front ends.
1460         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1461         (BACKEND): ...to here.
1462
1463 2004-05-17  Jan Hubicka  <jh@suse.cz>
1464
1465         * i386.c (construct_container): Do not produce BLKmode registers.
1466         (classify_argument): Properly compute alignment of complex types.
1467
1468 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1469
1470         PR target/15084
1471         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1472         and renamed to movdi_insv_1_rex64.
1473         (insv): Support SImode for 32bit and DImode for 64bit.
1474
1475 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1476
1477         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1478         (TARGET_SWITCHES): Remove debugg.
1479         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1480         TARGET_64BIT.
1481         (subdi3): Replace the define_expand with a define_insn, the latter
1482         renamed from subdi3_internal_3.
1483         (negdi2): Likewise negdi2_internal_2.
1484         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1485         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1486         and associated define_splits.
1487         (adddi3_internal): Renamed from adddi3_internal_3.
1488         (ashldi3_internal): Likewise ashldi3_internal4.
1489         (ashrdi3_internal): Likewise ashrdi3_internal4.
1490         (lshrdi3_internal): Likewise lshrdi3_internal4.
1491
1492 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1493
1494         * optabs.c (expand_unop): Try implementing negation using subtraction
1495         from zero.
1496
1497 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1498
1499         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1500         SAR register.
1501
1502 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1503
1504         PR target/10982
1505         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1506         (ne_zeroextractsi_shifted): New pattern.
1507         (ite_ne_zeroextractsi): New pattern.
1508         (ite_ne_zeroextractsi_shifted): New pattern.
1509
1510 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1511
1512         * c-gimplify.c (c_genericize):
1513         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1514         * c-parse.in <expr_no_commas>: Likewise.
1515         <if_prefix>: Likewise.
1516         <select_or_iter_stmt>: Likewise.
1517         * expr.c (expand_var, expand_expr_real_1): Likewise.
1518         * expr.h (expand_expr): Make it a static inline function.
1519         Move prototype for expand_expr_real up before this.
1520         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1521         Likewise.
1522         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1523         gimplify_asm_expr, gimplify_expr): Likewise.
1524         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1525         dump_function_to_file): Likewise.
1526         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1527         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1528         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1529         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1530         Likewise.
1531         * tree-optimize.c (execute_one_pass): Likewise.
1532         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1533         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1534
1535         * objc/objc-act.c (objc_build_try_enter_fragment,
1536         objc_build_try_epilogue, objc_build_catch_stmt,
1537         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1538         with lang_hooks.foo ().
1539
1540 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1541
1542         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1543         that simplify_builtin doesn't destructively modify its argument.
1544
1545 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1546
1547         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1548         implementations for ARM and Thumb.
1549         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1550
1551 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1552
1553         * prefix.c (update_path): Replace PREFIX with KEY only
1554         when it matches a full directory name in PATH.
1555
1556 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1557
1558         * arm.h (TARGET_APCS_32): Delete.
1559         (TARGET_MMU_TRAPS): Delete.
1560         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1561         define __APCS_26__.
1562         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1563         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1564         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1565         (prog_mode_type): Delete.
1566         (PROMOTE_MODE): Always promote unsigned for HImode.
1567         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1568         (MASK_RETURN_ADDR): Simplify.
1569         * arm.c (arm_prgmode): Delete.
1570         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1571         (print_multi_reg, output_return_instruction): Simplify.
1572         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1573         (arm_return_addr): Simplify.
1574         * arm.md (prog_mode): Delete.
1575         (conds): Simplify.
1576         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1577         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1578         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1579         (loadhi_shiftpredec): Delete.
1580         (peephole for post-increment on HImode load): Delete.
1581         * arm/crtn.asm: (FUNC_END): Simplify.
1582         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1583         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1584         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1585         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1586         MULTILIB_DEFAULTS as required.
1587         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1588         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1589         variables as required.
1590         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1591
1592 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1593
1594         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1595         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1596         count to 8 to handle n_reg > 2.
1597
1598 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1599
1600         * doc/extend.texi: Update WG14 URL.
1601
1602 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1603
1604         * basic-block.h (life_analysis, delete_noop_moves):
1605         Update prototypes.
1606         * bt-load.c (branch_target_load_optimize): Don't take the
1607         insns stream as an argument.  Update the life_analysis calls.
1608         * combine.c (combine_instructions): Update delete_noop_moves
1609         calls.
1610         * flow.c (notice_stack_pointer_modification): Don't take the
1611         insns stream as an argument.  Work on the flow graph.
1612         (life_analysis): Likewise.
1613         (delete_noop_moves): Likewise.
1614         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1615         (rest_of_handle_life): Update life_analysis call.
1616         (rest_of_compilation): Likewise, and also update
1617         branch_target_load_optimize call.
1618         * ra.c (reg_alloc): Update life_analysis call.
1619         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1620         the insns stream as an argument.
1621         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1622         call.
1623         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1624         prototypes.
1625         * value-profile.c (branch_prob): Update life_analysis call.
1626         * web.c (web_main): Work on the CFG, not on the insns stream.
1627
1628         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1629         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1630         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1631
1632 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1633
1634         PR c/15444
1635         * c-format.c (avoid_dollar_number): New function.
1636         (check_format_info_main): Call avoid_dollar_number when operand
1637         numbers might occur but has_operand_number == 0.
1638
1639 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1640
1641         * arm.md (all peephole2 patterns): Use predicates that validate
1642         register classes as appropriate.
1643
1644 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1645
1646         PR opt/14472
1647         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1648         ignore type conversions that do not inhibit tail calling.
1649         (find_tail_calls): Likewise.
1650
1651 2004-05-14  Jeff Law  <law@redhat.com>
1652
1653         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1654         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1655         bypassed virtuals into vars_to_rename just before into-ssa pass.
1656
1657         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1658         so that it picks up more opportunities to eliminate ABS expressions
1659         or turn them into negations.
1660
1661 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1662
1663         * passes.c (rest_of_handle_null_pointer): Remove.
1664         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1665         (rest_of_compilation): Likewise.
1666         * rtl.h (delete_null_pointer_checks): Remove prototype.
1667         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1668         Remove declarations.
1669         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1670         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1671         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1672         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1673         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1674         one_classic_gcse_pass, invalidate_nonnull_info,
1675         delete_null_pointer_checks_1, delete_null_pointer_checks,
1676         expr_reached_here_p_work): Remove.
1677         (gcse_main): Do not perform classic GCSE when optimizing for size.
1678         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1679         are never used.
1680
1681 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1682
1683         PR optimization/14466
1684         * tree-complex.c (make_temp): Remove.
1685         (gimplify_val): Replace make_temp with make_rename_temp
1686         and add NULL as the second argument.
1687         (expand_complex_div_wide): Likewise.
1688         * tree-dfa.c (make_rename_temp): New function.
1689         * tree-flow.h (make_rename_temp): Declare.
1690         * tree-sra.c (make_temp): Remove.
1691         (lookup_scalar): Replace make_temp with make_rename_temp.
1692         (create_scalar_copies): Likewise.
1693         * tree-ssa-phiopt.c (conditional_replacement): When we
1694         get non gimple create a temporary variable to hold the
1695         casted expression.
1696
1697 2004-05-14  Paul Brook  <paul@codesourcery.com>
1698
1699         * stor-layout.c (update_alignment_for_field): Use
1700         targetm.align_anon_bitfield.
1701         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1702         (TARGET_INITIALIZER): Use it.
1703         * target.h (struct gcc_target): Add align_anon_bitfield.
1704         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1705         (TARGET_ALIGN_ANON_BITFIELD): Define.
1706         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1707
1708 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1709
1710         * tree.def (documentation): Remove mention of class 'b'.
1711         (BLOCK): Now in class 'x'.
1712         * c-common.c (verify_tree): Remove case 'b'.
1713         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1714         * calls.c (calls_function_1): Control cannot get past the switch
1715         when exp is a BLOCK.
1716         * print-tree.c (print_node): Move code for class 'b' to the class
1717         'c'/'x' switch, as case BLOCK.
1718         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1719         (unsafe_for_reeval, substitute_placeholder_in_expr)
1720         (stabilize_reference_1): Remove case 'b'.
1721         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1722         of something being 'b' to tests for TREE_CODE of something being
1723         BLOCK.
1724         * tree-ssa-operands.c (get_expr_operands): Likewise.
1725
1726 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1727
1728         * tree-gimple.c: Rename from tree-simple.c.
1729         * tree-gimple.h: Rename from tree-simple.h.
1730         * c-gimplify.c: Rename from c-simplify.c
1731         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
1732         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
1733         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
1734         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
1735         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
1736         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
1737         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
1738         Update.
1739
1740 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
1741
1742         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
1743
1744 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1745
1746         * tree-ssa.c (delete_tree_ssa): XFREE
1747         bitmaps allocated with BITMAP_XMALLOC.
1748
1749         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
1750         idfs_cache at the end of the function.
1751
1752         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
1753         at the end of the function.
1754
1755         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
1756         el at the end of the function.
1757
1758         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
1759         bitmaps allocated with BITMAP_XMALLOC.
1760
1761         * loop-unswitch.c (unswitch_single_loop): Free bbs at
1762         the end.
1763
1764         * final.c (shorten_branches): Free uid_shuid before
1765         reallocating it.
1766
1767         * bb-reoder.c (connect_traces): Free cold_traces at the end.
1768
1769 2004-05-13  Jeff Law  <law@redhat.com>
1770
1771         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
1772         variables.  Simplify slightly by using USE_OP/DEF_OP instead
1773         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
1774
1775         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
1776         rather than iterating through the blocks testing each bit in
1777         livein to initialize the worklist.
1778         (mark_def_sites): Remove useless checks of KILLS for virtual
1779         operands.
1780
1781         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
1782         new parameters for the statement and variable worklist as well
1783         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
1784         worklist recording interesting variables in the variable worklist
1785         and bitmap.  Handle casts between integral and boolean types.
1786         (substitute_single_use_vars): Accept new parameters for the statement
1787         and variable worklist.  When a substitution is made add a new
1788         entry to the statement worklist.  Handle casts between integral
1789         and boolean types.
1790         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
1791         worklists to children.  Iterate until the statement worklist
1792         is empty.
1793
1794 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
1795
1796         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
1797         the end of the block.
1798
1799         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
1800         with BITMAP_XMALLOC.
1801
1802         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
1803         with BITMAP_XMALLOC.
1804
1805         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
1806         Free nonzero_vars at the end of the function.
1807
1808         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
1809         need to generate code instead of a NOP_EXPR.
1810
1811 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
1812
1813         * gcc.c (default_compilers): Fill out initializers for new Fortran
1814         entries.
1815
1816 2004-05-13  Paul Brook  <paul@codesourcery.com>
1817
1818         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
1819
1820 2004-05-13  Paul Brook  <paul@codesourcery.com>
1821
1822         * config/arm/arm.c (arm_default_short_enums): New function.
1823         (TARGET_DEFAULT_SHORT_ENUMS): Define.
1824
1825 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1826
1827         Merge from tree-ssa-20020619-branch.
1828
1829         * Makefile.in (reload1.o-warn): Add.
1830         (tree-alias-ander.o-warn): Add.
1831         (GMPLIBS): Define.
1832         (GMPINC): Define.
1833         (BANSHEELIB): Define.
1834         (BANSHEEINC): Define.
1835         (TREE_DUMP_H): Define.
1836         (TREE_SIMPLE_H): Define.
1837         (TREE_FLOW_H): Define.
1838         (LIBDEPS): Add BANSHEELIB.
1839         (INCLUDES): Add BANSHEEINC and GMPINC.
1840         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
1841         c-mudflap.o and c-pretty-print.o.
1842         (C_OBJS): Remove c-pretty-print.o.
1843         (OBJS-common): Remove sibcall.o.
1844         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
1845         tree-ssa.o, tree-optimize.o, tree-simple.o,
1846         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
1847         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
1848         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
1849         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
1850         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
1851         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
1852         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
1853         tree-tailcall.o, gimple-low.o, tree-iterator.o,
1854         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
1855         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
1856         tree-profile.o.
1857         (OBJC-archive): Add tree-nomudflap.o.
1858         (cc1): Add dependency on @TREEBROWSER@.
1859         (c-decl.o): Add dependency on TREE_DUMP_H.
1860         (c-dump.o): Likewise.
1861         (c-common.o): Add dependency on tree-iterator.h
1862         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
1863         (gtype-desc.o): Add dependency on TREE_FLOW_H.
1864         (tree.o): Add dependency on tree-iterator.h,
1865         BASIC_BLOCK_H and TREE_FLOW_H.
1866         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
1867         (langhooks.o): Add dependency on TREE_SIMPLE_H.
1868         (tree-alias-type.o, tree-alias-ander.o,
1869         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
1870         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
1871         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
1872         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
1873         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
1874         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
1875         tree-nested.o, tree-iterator.o, tree-dfa.o,
1876         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
1877         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
1878         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
1879         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
1880         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
1881         tree-sra.o, tree-complex.o, tree-profile.o,
1882         rtl-profile.o): New rules.
1883         (function.o): Add dependency on basic-block.h
1884         (expr.o): Add dependency on tree-iterator.h.
1885         (sibcall.o): Remove.
1886         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
1887         (cfg.o): Add dependency on TIMEVAR_H.
1888         (cfghooks.o): Add dependency on TREE_FLOW_H.
1889         (reg-stack.o): Add dependency on basic-block.h.
1890         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
1891         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
1892         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
1893         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
1894         tree-alias-type.h, tree-alias-common.h,
1895         tree-alias-type.c, tree-alias-common.c,
1896         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
1897         rtl-profile.c and tree-nested.c.
1898         (gt-tree-alias-common.h, gt-tree-mudflap.h,
1899         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
1900         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
1901         gt-tree-cfg.h, gt-tree-nested.h): New rules.
1902         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
1903         * basic-block.h: Include predict.h
1904         (struct edge_def): Add GTY marker.
1905         Change field 'insns' to be a union of tree and rtx.
1906         (EDGE_TRUE_VALUE): Define.
1907         (EDGE_FALSE_VALUE): Define.
1908         (EDGE_EXECUTABLE): Define.
1909         (struct bb_ann_d): Forward declare.
1910         (struct basic_block_def): Add GTY marker.
1911         Remove fields head_tree and end_tree.
1912         Add fields stmt_list, rbi and tree_annotations.
1913         (struct reorder_block_def): Define.
1914         (basic_block_info): Add GTY marker.
1915         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
1916         variables instead of macros.
1917         (flow_call_edges_add): Remove declaration.
1918         (make_eh_edge): Remove declaration.
1919         (brief_dump_cfg, find_edge, tree_predicted_by_p,
1920         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
1921         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
1922         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
1923         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
1924         (try_redirect_by_replacing_jump): Modfiy return type to
1925         edge instead of bool.
1926         * bb-reorder.c (copy_bb): Call duplicate_block
1927         instead of cfg_layout_duplicate_bb.
1928         (copy_bb_p): Call can_duplicate_block_p instead of
1929         cfg_layout_can_duplicate_bb_p.
1930         * bitmap.c (bitmap_first_set_bit): Abort if word
1931         wasn't found.
1932         (bitmap_last_set_bit): Likewise.
1933         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
1934         (DEF_FUNCTION_TYPE_3): Add.
1935         * builtins.c (c_strlen): Make extern.
1936         (builtin_save_expr): New.
1937         (expand_builtin_nonlocal_goto): New.
1938         (expand_builtin_constant_p): Remove.
1939         (expand_builtin_mathfn): Call builtin_save_expr instead
1940         of save_expr.
1941         (expand_builtin_mathfn_2): Likewise.
1942         (expand_builtin_strcmp): Likewise.
1943         (expand_builtin_strncmp): Likewise.
1944         (expand_builtin_strcat): Likewise.
1945         (fold_builtin_cabs): Likewise.
1946         (expand_builtin_alloca): Don't trigger if -fmudflap is
1947         given.
1948         (build_string_literal): Set TREE_INVARIANT on new node.
1949         (expand_builtin_profile_fun): New.
1950         (round_trampoline_addr): New.
1951         (expand_builtin_init_trampoline): New.
1952         (expand_builtin_adjust_trampoline): New.
1953         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
1954         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
1955         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
1956         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
1957         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
1958         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
1959         Handle.
1960         (fold_builtin_expect): New.
1961         (fold_builtin_isascii): Don't return non-constant results
1962         in GIMPLE form.
1963         (fold_builtin_isdigit): Likewise.
1964         (fold_builtin_1): New.
1965         (fold_builtin): Call it.
1966         (build_function_call_expr): Update call to build a new
1967         CALL_EXPR.
1968         (purge_builtin_constant_p): Remove.
1969         (simplify_builtin, simplify_builtin_memcmp,
1970         simplify_builtin_strcmp, simplify_builtin_strncmp,
1971         simplify_builtin_strpbrk, simplify_builtin_strstr,
1972         simplify_builtin_strchr, simplify_builtin_strrchr,
1973         simplify_builtin_strcat, simplify_builtin_strncat,
1974         simplify_builtin_strspn, simplify_builtin_strcspn,
1975         simplify_builtin_next_arg, simplify_builtin_va_start,
1976         simplify_builtin_sprintf): New.
1977         * builtins.def (BUILT_IN_STACK_ALLOC,
1978         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
1979         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
1980         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
1981         BUILT_IN_PROFILE_FUNC_EXIT): Define.
1982         * c-common.c: Include tree-iterator.h and hashtab.h.
1983         (lang_statement_code_p): Declare.
1984         (lang_gimplify_stmt): Declare.
1985         (fix_string_type): Set TREE_INVARIANT for value.
1986         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
1987         (c_type_hash): New.
1988         (c_common_get_alias_set): Handle multiple type nodes
1989         referring to "the same" type, currently for C90 only.
1990         (c_add_case_label): Use create_artificial_label.
1991         (finish_label_address_expr): Don't set TREE_CONSTANT on
1992         result.
1993         (c_expand_expr): Don't handle STMT_EXPR.
1994         (handle_alias_attribute): Marke aliased variables to be
1995         TREE_STATIC.
1996         (handle_nonnull_attribute): Initialize arg_num.
1997         (check_function_nonnull): Likewise.
1998         (c_walk_subtrees): New.
1999         (c_estimate_num_insns_1): Don't handle
2000         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
2001         (c_decl_uninit_1): Remove.
2002         (c_decl_uninit): Remove.
2003         (c_warn_unused_result): New.
2004         * c-common.def (ASM_STMT): Change number of operands
2005         to 4.
2006         (FILE_STMT): Remove.
2007         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
2008         Remove.
2009         (lang_gimplify_stmt): Add.
2010         (expand_stmt): Remove.
2011         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2012         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
2013         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
2014         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
2015         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
2016         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2017         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2018         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
2019         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
2020         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
2021         genrtl_compound_stmt, genrtl_asm_stmt,
2022         genrtl_cleanup_stmt, c_decl_uninit): Remove.
2023         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
2024         c_tree_chain_matters_p, c_warn_unused_result,
2025         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
2026         Declare.
2027         * c-convert.c (convert): Make convert work when
2028         converting to compatible types across translation unit.
2029         * c-decl.c: Include langhooks.h, tree-mudflap.h,
2030         tree-simple.h, diagnostic.h and tree-dump.h
2031         (merge_decls): Initialize oldtype to NULL.
2032         (finish_decl): Use DECL_HARD_REGISTER instead of
2033         DECL_C_HARD_REGISTER.
2034         (check_bitfield_type_and_width): Check for null
2035         lang_type_specific when check the precision of an enum.
2036         (grokdeclarator): Immediately layout an ARRAY_TYPE used
2037         in a pointer-to-array declarator.
2038         (finish_struct): Clear allocated struct lang_type.
2039         (finish_enum): Set enum_min and enum_max.  Set
2040         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
2041         not to the enumerators.
2042         (set_decl_nonlocal): New.
2043         (store_parm_decls): Use it via walk_tree.
2044         (c_finalize): New.
2045         (finish_function): When !targetm.have_ctors_dtors,
2046         record static constructors and destructors here...
2047         (c_expand_body_1): ... not here.
2048         (c_expand_decl): Rename from c_expand_decl_stmt.
2049         Handle all C-specific expansion semantics.
2050         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
2051         STMT_LINENO.
2052         * c-format.c (handle_format_arg_attribute): Initialize
2053         format_num.
2054         * c-lang.c: Include tree-inline.h
2055         (LANG_HOOKS_EXPAND_DECL,
2056         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2057         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
2058         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
2059         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2060         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
2061         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
2062         (c_types_compatible_p): New.
2063         * c-mudflap.c: New file.
2064         * c-objc-common.c: Include tree-mudflap.h
2065         (start_cdtor, finish_cdtor): Collapse
2066         together into
2067         (build_cdtor): ...here.  Update to construct a complete tree
2068         for the function.  No need to call push_scope, pop_scope, or
2069         clear_last_expr, or set current_function_cannot_inline.
2070         (c_missing_noreturn_ok_p): Change prototype to return
2071         bool.
2072         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
2073         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
2074         opts.c.
2075         (c_common_post_options): Don't ever use rtl inlining.
2076         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
2077         * c-pragma.c (handle_pragma_redefine_extname): Define
2078         always.
2079         (init_pragma): Activate #pragma redefine_extname for mudflap.
2080         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
2081         (pp_c_initializer): Accept any type CONSTRUCTOR.
2082         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
2083         COMPLEX_TYPE.
2084         (decl_name_str): New local function.
2085         (pp_c_direct_declarator): Call it.
2086         (pp_c_primary_expression): Call it.
2087         (pp_c_id_expression): Call it.
2088         (pp_c_statement): Call it.
2089         (print_c_tree): Create new pp object.
2090         * c-pretty-print.h (pp_c_tree_decl_identifier,
2091         print_c_tree): Declare.
2092         * c-semantics.c: Include langhooks.h
2093         (lang_expand_stmt, lang_expand_decl_stmt,
2094         find_reachable_label_1, find_reachable_label,
2095         expand_unreachable_if_stmt, expand_unreachable_stmt,
2096         genrtl_do_stmt_1): Remove.
2097         (begin_stmt_tree): Don't check for changed filename.
2098         Call annotate_with_locus.
2099         (finish_stmt_tree): Don't set line for end of function.
2100         (build_stmt): Don't check type nodes for
2101         side effects.
2102         (build_stmt): Set TREE_SIDE_EFFECTS.
2103         Set EXPR_LOCUS instead of STMT_LINENO.
2104         (lang_expand_stmt, lang_expand_decl_stmt,
2105         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2106         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2107         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
2108         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
2109         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
2110         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
2111         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
2112         find_reachable_label_1, expand_unreachable_if_stmt,
2113         expand_unreachable_stmt): Remove.
2114         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
2115         * c-simplify.c: New file.
2116         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
2117         (struct lang_type): Add fields enum_min and enum_max.
2118         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
2119         (c_expand_decl, c_missing_noreturn_ok_p,
2120         c_types_compatible_p): Declare.
2121         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
2122         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
2123         (default_function_array_conversion): Rely on build to
2124         set TREE_CONSTANT.
2125         (parser_build_binary_op, pointer_diff): Likewise.
2126         (build_unary_op, build_binary_op): Likewise.
2127         (build_array_ref):
2128         (build_external_ref): Set TREE_INVARIANT.
2129         (build_c_cast, pop_init_level): Likewise.
2130         (process_init_element): Use ASM_VOLATILE_P.
2131         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
2132         (c_finish_case): Call c_do_switch_warnings.
2133         * c.opt (fdump-): Remove.
2134         * calls.c (try_to_integrate): Remove.
2135         (prepare_call_address): Replace fndecl arg with a
2136         precomputed static chain value.
2137         (emit_call_1): New argument for full call expr.
2138         (flags_from_decl_or_type): Call special_function_p.
2139         (initialize_argument_information): Add argument
2140         may_tailcall.
2141         (purge_reg_equiv_notes): New.
2142         (expand_call): Do not try to expand calls inline.
2143         (fixup_tail_calls): New.
2144         * cfg.c: Include timevar.h and ggc.h.
2145         (bb_pool, edge_pool): Remove.
2146         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
2147         (entry_exit_blocks): Remove.
2148         (rbi_pool): Declare.
2149         (init_flow): Do not create pools.
2150         Allocate entry/exit block.
2151         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
2152         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
2153         (unlink_block): Clear b->prev_bb and b->next_bb.
2154         (compact_blocks): Clear all slots of BASIC_BLOCK array.
2155         (dump_flow_info): Work on trees too.
2156         (dump_cfg_bb_info): New.
2157         (brief_dump_cfg): New.
2158         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
2159         (find_edge): New.
2160         * cfgbuild.c (rtl_make_eh_edge): Rename from
2161         make_eh_edge.  Update all users.
2162         (find_basic_blocks): Don't call VARRAY_FREE on
2163         basic_block_info.
2164         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
2165         and newpos2.
2166         (delete_unreachable_blocks): Return changed status.
2167         (merge_seq_blocks): New.
2168         * cfghooks.c: Include tree-flow.h
2169         (tree_register_cfg_hooks, ir_type): New.
2170         (redirect_edge_and_branch): Change return type to edge.
2171         (predict_edge, predicted_by_p, can_duplicate_block_p,
2172         duplicate_block, block_ends_with_call_p,
2173         block_ends_with_condjump_p, flow_call_edges_add): New.
2174         * cfghooks.h (redirect_edge_and_branch): Change return
2175         type to edge.
2176         (predict_edge, predicted_by_p, can_duplicate_block_p,
2177         duplicate_block, block_ends_with_call_p,
2178         block_ends_with_condjump_p, flow_call_edges_add): Declare.
2179         (redirect_edge_and_branch): Change return type to edge.
2180         (struct cfg_hooks): Add fields block_ends_with_call_p,
2181         block_ends_with_condjump_p, flow_call_edges_add,
2182         predict_edge, predicted_by_p, can_duplicate_block_p and
2183         duplicate_block.
2184         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
2185         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
2186         (fixup_reorder_chain): Use initialize_bb_rbi.
2187         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
2188         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
2189         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
2190         (insn_locators_initialize): Use new info about blocks.
2191         * cfglayout.h (typedef struct reorder_block_def): Moved to
2192         basic_block.h.
2193         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
2194         removed.
2195         * cfgloop.c: Include tree.h and tree-flow.h.
2196         * cfgloop.h (create_loop_notes): Declare.
2197         * cfgloopmanip.c (create_loop_notes): New.
2198         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
2199         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
2200         and duplicate_block fields.
2201         (create_basic_block_structure): Don't look at
2202         RTX_INTEGRATED_P.
2203         (rtl_block_ends_with_call_p): New.
2204         (rtl_block_ends_with_condjump_p): New.
2205         (need_fake_edge_p): Moved from cfganal.c.
2206         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
2207         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
2208         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
2209         (cfg_layout_rtl_cfg_hooks): Ditto.
2210         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
2211         functions to be reachable.
2212         * cgraphunit.c (decide_is_function_needed):
2213         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
2214         inline functions don't need to be output.
2215         (cgraph_assemble_pending_functions): Don't do anything
2216         special for nested functions.
2217         (cgraph_mark_functions_to_output): Likewise.
2218         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
2219         (cgraph_analyze_function): Use estimate_num_insns.
2220         (cgraph_mark_functions_to_output): Likewise.
2221         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
2222         (cgraph_expand_function): Allow functions to not be
2223         emitted.
2224         (cgraph_remove_unreachable_nodes):
2225         (cgraph_recursive_inlining_p): Simplify.
2226         (lookup_recursive_calls,
2227         cgraph_decide_recursive_inlining): New.
2228         (cgraph_decide_inlining_*): Update calls of
2229         cgraph_mark_inline.
2230         * combine.c (get_pos_from_mask): Always set *plen.
2231         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
2232         ftree-based-profiling, ftree-ccp, ftree-ch,
2233         ftree-combine-temps, ftree-copyrename, ftree-dce,
2234         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
2235         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
2236         ftree-lrs): Add.
2237         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
2238         Undefine.
2239         * configure.ac: Add --enable-tree-browser option.
2240         Add --with-libbanshee option.
2241         Add GMPLIBS and GMPINC.
2242         * configure: Regenerate.
2243         * coverage.c (tree_ctr_tables): New.
2244         (coverage_counter_alloc): Use it.
2245         (build_ctr_info_value): Ditto.
2246         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
2247         (tree_coverage_counter_ref): New.
2248         * coverage.h (coverage_counter_ref): Remove declaration.
2249         (rtl_coverage_counter_ref): Declare.
2250         (tree_coverage_counter_ref): Declare.
2251         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
2252         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
2253         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
2254         (struct cse_basic_block_data): Rename enum values to not
2255         conflict with profile.h; update all uses.
2256         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
2257         in comments.
2258         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
2259         * diagnostic.h (debug_output_buffer, dump_generic_node,
2260         print_generic_stmt, print_generic_stmt_indented,
2261         print_generic_expr, print_generic_decl,
2262         debug_generic_expr, debug_generic_stmt, debug_c_tree):
2263         Declare.
2264         * dominance.c: Cache immediate dominators.
2265         * domwalk.c: New file.
2266         * domwalk.h: New file.
2267         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
2268         (gen_subprogram_die): Generate a DIE for a named
2269         return value.
2270         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
2271         (add_location_or_const_value_attribute): Likewise.
2272         (add_bound_info): Likewise.
2273         (gen_decl_die): Likewise.
2274         * emit-rtl.c (maybe_set_first_label_num): New.
2275         (copy_most_rtx): Don't copy the integrated flag.
2276         Copy the new return_val flag.
2277         * et-forest.c (MAX_NODES): Define.
2278         (record_path_before_1): Abort if len is greater than
2279         MAX_NODES.
2280         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
2281         gen_eh_region_catch, gen_eh_region_allowed,
2282         gen_eh_region_must_not_throw, get_eh_region_number,
2283         get_eh_region_may_contain_throw, get_eh_region_tree_label,
2284         set_eh_region_tree_label, expand_resx_expr): New.
2285         (expand_eh_region_start, expand_start_catch): Use them.
2286         (expand_end_catch): Tidy.
2287         (note_eh_region_may_contain_throw): Take region argument.
2288         (note_current_region_may_contain_throw): New.
2289         (get_exception_filter): Export.
2290         (collect_eh_region_array): Export.
2291         (remove_unreachable_regions): Check ERT_TRY based on reachability
2292         of catches, not reachability of continue_label.  Never remove
2293         ERT_MUST_NOT_THROW regions.
2294         (collect_rtl_labels_from_trees): New.
2295         (convert_from_eh_region_ranges): Use it.
2296         (connect_post_landing_pads): Handle dying cleanups.
2297         (struct reachable_info): Add callback data.
2298         (add_reachable_handler): Invoke the callback.
2299         (foreach_reachable_handler): New.
2300         (reachable_handlers): Use it.
2301         (arh_to_landing_pad, arh_to_label): New.
2302         (can_throw_internal_1): Split out from can_throw_internal.
2303         (can_throw_external_1): Similarly.
2304         * except.h: Update.
2305         * explow.c (emit_stack_save): Remove savearea mode check.
2306         (update_nonlocal_goto_save_area): New.
2307         (allocate_dynamic_stack_space): Use it.
2308         (probe_stack_range): Never emit loop notes.
2309         * expmed.c (extract_fixed_bit_field): Always propagate the
2310         target for the shift if it is a REG.
2311         * expr.c: Include tree-iterator.h
2312         (is_zeros_p): Remove.
2313         (categorize_ctor_elements_1, categorize_ctor_elements): New.
2314         (count_type_elements): New.
2315         (mostly_zeros_p): Use them.
2316         (expr_wfl_stack): Remove.
2317         (convert_move): Do nothing if to and from are the same.
2318         (emit_block_move_via_loop): Don't emit LOOP notes.
2319         (emit_move_insn): Don't handle CONSTANT_P_RTX.
2320         (emit_move_insn_1): Don't generate inline warnings.
2321         (expand_vars, expand_var): Split from ...
2322         (expand_expr_1): ... here.
2323         (expand_expr_real, expand_expr_real_1):  Use new macros
2324         EXPR_LOCATION and EXPR_HAS_LOCATION.
2325         * expr.h (simplify_builtin_fputs,
2326         simplify_builtin_strcpy, simplify_builtin_strncpy,
2327         expand_var, fixup_tail_calls,
2328         update_nonlocal_goto_save_area): Declare.
2329         (lookup_static_chain, expand_inline_function,
2330         mark_seen_cases): Remove.
2331         (prepare_call_address): Change type of 2nd argument to
2332         rtx.
2333         * final.c (profile_function): Update static chain test.
2334         (final): Don't look at RTX_INTEGRATED_P.
2335         * flags.h (flag_mudflap, flag_mudflap_threads,
2336         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
2337         flag_tree_dce, flag_tree_combine_temps,
2338         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
2339         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
2340         flag_tree_points_to): Declare.
2341         (enum pta_type): Declare.
2342         * flow.c (lang_missing_noreturn_ok_p): Remove.
2343         (check_function_return_warnings): Remove.
2344         (update_life_info): Update comments.
2345         (free_basic_block_vars): Don't call VARRAY_FREE for
2346         basic_block_info.
2347         (regno_uninitialized): Remove.
2348         * fold-const.c (int_const_binop): Make extern.
2349         (non_lvalue): Rely on build to set TREE_CONSTANT.
2350         (operand_equal_p): Replace only_const argument with
2351         flags.  Allow pure functions if OEP_PURE_SAME.
2352         (fold): Use OEP_ONLY_CONST.
2353         (invert_truthvalue) <NOP_EXPR> Break if argument is of
2354         boolean type.
2355         (fold_relational_hi_lo,
2356         nondestructive_fold_binary_to_constant,
2357         nondestructive_fold_unary_to_constant,
2358         fold_read_from_constant_string): New.
2359         * function.c (struct function): Remove calls_constant_p.
2360         (current_function_calls_constant_p): Remove.
2361         (inline_function_decl): Remove.
2362         (put_var_into_stack): Don't use it.
2363         (fix_lexical_addr): Likewise.
2364         (inline_function_decl): Remove extern declaration.
2365         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
2366         (trampolines_created): Move to varasm.c.
2367         (free_after_compilation): Update for removed fields.
2368         (allocate_struct_function): Likewise.
2369         (delete_handlers, lookup_static_chain): Remove.
2370         (fix_lexical_addr): Don't consider non-local variable refs.
2371         (trampoline_address): Remove.
2372         (round_trampoline_addr): Move to builtins.c.
2373         (adjust_trampoline_addr): Remove.
2374         (expand_function_start): Update for changes to static chain
2375         and nonlocal goto handling.
2376         (initial_trampoline): Move to varasm.c.
2377         (expand_function_end): Don't build trampolines or kill
2378         unreferenced nonlocal goto labels.
2379         (free_after_compilation): Don't set it.
2380         (expand_function_end): Likewise.
2381         (setjmp_vars_warning): Rename from
2382         uninitialized_vars_warning, remove uninitialized vars warning.
2383         (uninitialized_vars_warning): Remove old comment
2384         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2385         and do not call the langhook.
2386         (expand_function_start, expand_function_end): Don't do
2387         function instrumentation here.
2388         (clear_block_marks): Rename from reorder_blocks_0, export.
2389         (blocks_nreverse): Export.
2390         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2391         of rtl.
2392         (reset_block_changes, record_block_change, finalize_block_changes,
2393         check_block_change, free_block_changes): New functions.
2394         (assign_parms): Setting of current_function_stdarg
2395         moved ...
2396         (allocate_struct_function): ... here.
2397         * function.h (struct function): Remove x_nonlocal_labels,
2398         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2399         x_context_display, x_trampoline_list, needs_context.
2400         Add static_chain_decl, nonlocal_goto_save_area.
2401         (struct function): Remove x_clobber_return_insn.
2402         Add tail_call_emit field, last_label_uid,
2403         unexpanded_var_list, dont_emit_block_notes,
2404         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2405         (clear_block_marks): Declare.
2406         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2407         (mfwrap_spec, mflib_spec): Declare.
2408         (cpp_unique_options, cc1_options): Ditto.
2409         (default_compilers): Add .F and .f90.
2410         (static_specs): Add mfwrap and mflib.
2411         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2412         CONSTANT_RTX_P.
2413         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2414         Update to match insns field in struct edge_def.
2415         * gdbinit.in (pgs, pge): Define.
2416         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2417         instead of the integrated flag.
2418         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2419         * gengtype-yacc.y (bitfieldlen): Add empty action.
2420         (struct_fields): Accept unnamed bitfields.
2421         (bitfieldlen): Split from ...
2422         (bitfieldopt): ... here.
2423         * gengtype.c (ifiles): Add tree-alias-type.h and
2424         tree-flow.h.
2425         * genrecog.c (validate_pattern): Do not handle
2426         CONSTANT_P_RTX.
2427         * gimple-low.c: New file.
2428         * gimplify.c: New file.
2429         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2430         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2431         * ifcvt.c (dead_or_predicable): Initialize local variable
2432         'earliest'.
2433         * input.h (expr_wfl_stack): Remove.
2434         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2435         (setup_initial_hard_reg_value_integration): Likewise.
2436         (initialize_for_inline): Likewise.
2437         (note_modified_parmregs): Likewise.
2438         (integrate_parm_decls): Likewise.
2439         (process_reg_param): Likewise.
2440         (save_parm_insns): Likewise.
2441         (copy_insn_list): Likewise.
2442         (copy_insn_notes): Likewise.
2443         (compare_blocks): Likewise.
2444         (find_block): Likewise.
2445         (inlining): Likewise.
2446         (function_cannot_inline_p): Likewise.
2447         (parmdecl_map): Likewise.
2448         (in_nonparam_insns): Likewise.
2449         (save_for_inline): Likewise.
2450         (FIXED_BASE_PLUS): Likewise.
2451         (expand_inline_function): Likewise.
2452         (copy_rtx_and_substitute): Don't look at map->integrating,
2453         map->inline_target, and inlining, since we are never copying
2454         for integrating.
2455         Don't abort on RTX_INTEGRATED_P.
2456         (old_fun): Remove.
2457         (output_inline_function): Remove.
2458         * integrate.h (struct inline_map): Remove fields integrating,
2459         block_map, leaf_reg_map, inline_target, and local_return_label.
2460         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2461         copy_loop_headers, never_reached_warning): Removed.
2462         (any_uncondjump_p): Reject nonlocal goto.
2463         * langhooks-def.h (lhd_types_compatible_p,
2464         lhd_expand_decl, lhd_gimplify_expr): Declare.
2465         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2466         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2467         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2468         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2469         LANG_HOOKS_GIMPLIFY_EXPR,
2470         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2471         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2472         LANG_HOOKS_GIMPLIFY_EXPR,
2473         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2474         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2475         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2476         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2477         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2478         LANG_HOOKS_DECL_UNINIT,
2479         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2480         * langhooks.c: Include tree-simple.h.
2481         (lhd_expand_decl): New.
2482         (lhd_types_compatible_p): New.
2483         (lhd_decl_uninit): Remove.
2484         (lhd_gimplify_expr): New.
2485         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2486         Remove.
2487         (struct lang_hooks_for_functions): Add field
2488         missing_noreturn_ok_p.
2489         (struct lang_hooks): Add field expand_decl,
2490         types_compatible_p, gimplify_expr and
2491         gimple_before_inlining.
2492         Remove fields decl_uninit and rtl_expand
2493         * opts.c (decode_options): Set flag_tree_ccp,
2494         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2495         flag_tree_pre, flag_tree_ter,
2496         flag_tree_live_range_split, flag_tree_sra,
2497         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2498         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2499         OPT_fmudflapth, OPT_fmudflapir,
2500         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2501         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2502         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2503         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2504         OPT_ftree_points_to_ and OPT_ftree_pre.
2505         * output.h (regno_uninitialized, find_basic_blocks,
2506         cleanup_cfg, delete_unreachable_blocks,
2507         check_function_return_warnings): Remove.
2508         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2509         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2510         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2511         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2512         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2513         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2514         Define.
2515         * passes.c (rest_of_decl_compilation):
2516         (rest_of_handle_sibling_calls): Remove.
2517         (rest_of_handle_inlining): Remove.
2518         (rest_of_handle_gcse): Do not run
2519         purge_builtin_constant_p.
2520         (rest_of_compilation): Update.
2521         Do not call copy_loop_headers.
2522         Do rtl-based profiling only when
2523         !flag_tree_based_profiling.  Register rtl-based profiling
2524         hooks.
2525         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2526         (predicted_by_p): Rename to ...
2527         (rtl_predicted_by_p): .. this one; make global
2528         (tree_predicted_by_p): New.
2529         (dump_prediction): Add FILE argument.
2530         (predict_edge): Rename to ...
2531         (rtl_predict_edge): .. this one.
2532         (tree_predict_edge): New.
2533         (combine_predictions_for_insn): Update calls of predict_edge.
2534         (predict_loops): Break out from ...
2535         (estimate_probability): ... here; update comments; move updating
2536         of unknown probabilities from ...
2537         (estimate_bb_frequencies): ... here.
2538         (combine_predictions_for_bb): New.
2539         (tree_predict_by_opcode): New.
2540         (tree_estimate_probability): New.
2541         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2542         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2543         * predict.h: Add include guard.
2544         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2545         * pretty-print.c (pp_write_text_to_stream): Make extern.
2546         * pretty-print.h (pp_write_text_to_stream): Declare.
2547         * print-rtl.c (print_rtx): Don't print the integrated flag.
2548         Print the return_val flag.
2549         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2550         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2551         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2552         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2553         * profile.c: Include cfghooks.h, tree-flow.h.
2554         (profile_hooks): New.
2555         (profile_dump_file): New.
2556         (instrument_edges): Use hooks instead of RTL-specific code.
2557         (instrument_values): Ditto.
2558         (get_exec_counts): Ditto.
2559         (compute_branch_probabilities): Ditto.
2560         (compute_value_histograms): Ditto.
2561         (branch_prob): Ditto.
2562         (find_spanning_tree): Ditto.
2563         (end_branch_prob): Ditto.
2564         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2565         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2566         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2567         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2568         (tree_register_profile_hooks): New.
2569         (rtl_register_profile_hooks): New.
2570         * ra-rewrite.c (rewrite_program): Clear variable info.
2571         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2572         * regs.h: Add include guards.
2573         * reload.c (decompose): Clear val using memset.
2574         * rtl.def (CONSTANT_P_RTX): Remove.
2575         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2576         (copy_loop_headers): Remove.
2577         (struct rtx_def): Replace the integrated flag with the
2578         return_val flag.
2579         (maybe_set_first_label_num): Declare.
2580         (init_branch_prob): Move declaration to value-prof.h.
2581         (end_branch_prob): Ditto.
2582         (branch_prob): Ditto.
2583         (never_reached_warning): Don't declare it.
2584         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2585         (hoist_insn_to_edge): Update to match field insns in
2586         struct edge_def.
2587         * sbitmap.c (sbitmap_realloc): New.
2588         * sbitmap.h (sbitmap_realloc): Declare.
2589         * sibcall.c: Remove file.
2590         * simplify-rtx.c (simplify_rtx): Do not handle
2591         CONSTANT_P_RTX.
2592         * stmt.c (parse_output_constraint): Don't warn for read-write
2593         memory operand.
2594         (tail_recursion_args): Use types_compatible_p langhook.
2595         (force_label_rtx): Don't look at inline_function_decl.
2596         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2597         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2598         (declare_nonlocal_label): Remove.
2599         (expand_goto): Don't handle nonlocal gotos.
2600         (expand_nl_handler_label): Remove.
2601         (expand_nl_goto_receivers): Remove.
2602         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2603         update_nonlocal_goto_save_area.
2604         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2605         (warn_if_unused_value): Likewise.
2606         (expand_start_loop, expand_loop_continue_here,
2607         expand_end_loop): Don't create loop notes.
2608         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2609         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2610         (expand_end_case_type): Don't do warn_switch handling.
2611         (pushcase, pushcase_range) Update add_case_node calls.
2612         (add_case_node): Add dont_expand_label argument.
2613         (same_case_target_p): Don't search rtl.
2614         (expand_start_bindings_and_block, expand_end_bindings):
2615         Don't emit block notes when dont_emit_block_notes.
2616         (using_eh_for_cleanups_p): Export.
2617         (expand_return): Allow any typed rhs.
2618         (expand_stack_alloc): New.
2619         (expand_stack_save, expand_stack_restore): New.
2620         (containing_blocks_have_cleanups_or_stack_level): New
2621         function.
2622         (asm_op_is_mem_input): New fn.
2623         (expand_asm_expr): New fn.
2624         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2625         nodes.
2626         * stor-layout.c (layout_type): Just return if type is
2627         error_mark_node.
2628         (update_alignment_for_field): Export.
2629         (variable_size): We don't care about global_bindings_p if
2630         the frontend doesn't want a list of the expressions.
2631         * system.h: Poison INTEGRATE_THRESHOLD.
2632         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2633         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2634         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2635         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2636         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2637         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2638         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2639         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2640         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2641         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2642         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2643         TV_CONTROL_DEPENDENCES): Define.
2644         * toplev.c: Include tree-alias-common.h
2645         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2646         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2647         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2648         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2649         flag_tree_combine_temps, flag_tree_ter,
2650         flag_tree_live_range_split, flag_tree_dom,
2651         flag_tree_copyrename, flag_tree_dse): Declare.
2652         (f_options): Add tree-based-profiling, tree-gvn,
2653         tree-pre, tree-ccp, tree-dce,
2654         tree-dominator-opts, tree-copyrename, tree-dse,
2655         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2656         (wrapup_global_declarations): Don't output nested inlined functions.
2657         (general_init): Call init_tree_optimization_passes.
2658         (process_options): Sorry for -ftree-based-profiling plus
2659         -ftest-coverage or -fprofile-values.
2660         * toplev.h (init_tree_optimization_passes,
2661         flag_tree_based_profiling): Declare.
2662         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2663         * tree-alias-ander.c: New file.
2664         * tree-alias-ander.h: New file.
2665         * tree-alias-common.c: New file.
2666         * tree-alias-common.h: New file.
2667         * tree-alias-type.c: New file.
2668         * tree-alias-type.h: New file.
2669         * tree-browser.c: New file.
2670         * tree-browser.def: New file.
2671         * tree-cfg.c: New file.
2672         * tree-complex.c: New file.
2673         * tree-dfa.c: New file.
2674         * tree-dump.c (dump_enable_all): New.
2675         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2676         (dump_node): Remove const from field suffix and swtch.
2677         (dump_files): Add null entry, .generic, .nested, .vcg,
2678         .xml and a match-all entry.
2679         (extra_dump_files, extra_dump_files_in_use,
2680         extra_dump_files_alloced): Declare
2681         (dump_option_value_info): Add raw, details, stats,
2682         blocks, vops, lineno, uid and all.
2683         (dump_register): New.
2684         (get_dump_file_info): New.
2685         (dump_begin): Call it.
2686         Do nothing for TDI_none.
2687         (dump_begin): Include phase number in dump filename.
2688         (dump_enable_all): New.
2689         (dump_switch_p_1): Split out from dump_switch_p.
2690         (dump_switch_p): Handle extra_dump_files.
2691         Start our scan at TDI_none + 1.
2692         If -fdump-tree-all was given, call dump_enable_all.
2693         * tree-dump.h: Include splay-tree.h.
2694         (dump_function, dump_function_to_file, dump_register):
2695         Declare.
2696         * tree-eh.c: New file.
2697         * tree-flow-inline.h: New file.
2698         * tree-flow.h: New file.
2699         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2700         * tree-inline.h (walk_tree,
2701         walk_tree_without_duplicates): Move to tree.h.
2702         (estimate_num_insns): Declare.
2703         * tree-into-ssa.c: New file.
2704         * tree-iterator.c: New file.
2705         * tree-iterator.h: New file.
2706         * tree-mudflap.c: New file.
2707         * tree-mudflap.h: New file.
2708         * tree-nested.c: New file.
2709         * tree-nomudflap.c: New file.
2710         * tree-nrv.c: New file.
2711         * tree-optimize.c (dump_flags, vars_to_rename,
2712         in_gimple_form, all_passes, pass_gimple,
2713         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2714         (execute_gimple, execute_rebuild_bind,
2715         gate_all_optimizations, execute_del_cfg,
2716         register_one_dump_file, register_dump_files, dup_pass_1,
2717         init_tree_optimization_passes, execute_todo,
2718         execute_one_pass, execute_pass_list): New.
2719         (clear_decl_rtl): Remove.
2720         (tree_rest_of_compilation): Update to use tree
2721         optimizers.
2722         * tree-outof-ssa.c: New file.
2723         * tree-pass.h: New file.
2724         * tree-phinodes.c: New file.
2725         * tree-pretty-print.c: New file.
2726         * tree-profile.c: New file.
2727         * tree-simple.c: New file.
2728         * tree-simple.h: New file.
2729         * tree-sra.c: New file.
2730         * tree-ssa-alias.c: New file.
2731         * tree-ssa-ccp.c: New file.
2732         * tree-ssa-copy.c: New file.
2733         * tree-ssa-copyrename.c: New file.
2734         * tree-ssa-dce.c: New file.
2735         * tree-ssa-dom.c: New file.
2736         * tree-ssa-dse.c: New file.
2737         * tree-ssa-forwprop.c: New file.
2738         * tree-ssa-live.c: New file.
2739         * tree-ssa-live.h: New file.
2740         * tree-ssa-loop.c: New file.
2741         * tree-ssa-operands.c: New file.
2742         * tree-ssa-operands.h: New file.
2743         * tree-ssa-phiopt.c: New file.
2744         * tree-ssa-pre.c: New file.
2745         * tree-ssa.c: New file.
2746         * tree-ssanames.c: New file.
2747         * tree-tailcall.c: New file.
2748         * tree.c: Include tree-iterator.h, basic-block.h and
2749         tree-flow.h.
2750         (tree_node_kind): Add phi_nodes and ssa names.
2751         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
2752         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
2753         (make_node_stat): Handle PHI_NODE and SSA_NAME.
2754         <'c'> Set TREE_INVARIANT.
2755         (copy_node_stat): Abort if trying to copy a
2756         STATEMENT_LIST.
2757         Clear TREE_VISITED.
2758         Clear annotation field.
2759         (build_constructor): Copy TREE_INVARIANT from vals.
2760         Don't clear TREE_CONSTANT.
2761         (expr_first, expr_last, expr_length): Remove.
2762         (staticp): Pass unknown component references to the language.
2763         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
2764         (skip_simple_arithmetic): Likewise.
2765         (stabilize_reference_1): Likewise.
2766         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
2767         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
2768         STATEMENT_LIST.
2769         (lhd_unsave_expr_now): Remove.
2770         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
2771         (recompute_tree_invarant_for_addr_expr): New.
2772         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
2773         Call recompute_tree_invarant_for_addr_expr.
2774         Set TREE_INVARIANT accordingly.
2775         (build2_stat): Don't handle CALL_EXPR.
2776         (build3_stat): Don't call build2_stat for CALL_EXPRs.
2777         (build_expr_wfl): Remove.
2778         (annotate_with_file_line, annotate_with_locus): New.
2779         (simple_cst_equal): Call simple_cst_list_equal to compare
2780         CONSTRUCTOR_ELTS pointers.
2781         (iterative_hash_expr): Don't hash types associated
2782         with conversions.  Instead hash on the signedness of the
2783         toplevel object and the operand of the conversion.
2784         (dump_tree_statistics): Call ssanames_print_statistics
2785         and phinodes_print_statistics.
2786         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
2787         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
2788         needs_to_live_in_memory): New.
2789         (initializer_zerop): Handle VECTOR_CST.  Don't check
2790         AGGREGATE_TYPE_P for CONSTRUCTOR.
2791         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
2792         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
2793         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
2794         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
2795         (CALL_EXPR): Add another operand.
2796         (EXPR_WITH_FILE_LOCATION): Remove.
2797         (SWITCH_EXPR): Add another operand.
2798         * tree.h: Update various comments.
2799         (union tree_ann_d): Forward declare.
2800         (struct tree_common): Add fields nowarning_flag,
2801         invariant_flag and visited.
2802         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
2803         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
2804         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
2805         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
2806         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
2807         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
2808         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
2809         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
2810         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
2811         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
2812         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
2813         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
2814         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
2815         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
2816         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
2817         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
2818         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
2819         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
2820         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
2821         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
2822         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
2823         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
2824         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
2825         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
2826         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
2827         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
2828         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
2829         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
2830         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
2831         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
2832         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
2833         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
2834         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
2835         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
2836         TDF_UID,): Define.
2837         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
2838         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
2839         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
2840         EXPR_WFL_SET_LINECOL): Remove.
2841         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
2842         make_phi_node, init_phinodes, fini_phinodes,
2843         release_phi_node, phinodes_print_statistics,
2844         init_ssanames, fini_ssanames, make_ssa_name,
2845         release_ssa_name, ssanames_print_statistics,
2846         annotate_with_file_line, build_empty_stmt,
2847         annotate_with_locus, expr_only, categorize_ctor_elements,
2848         count_type_elements, add_var_to_bind_expr, is_essa_node,
2849         expand_stack_alloc, expand_stack_save,
2850         expand_stack_restore, add_case_node, operand_equal_p,
2851         nondestructive_fold_unary_to_constant,
2852         nondestructive_fold_binary_to_constant,
2853         fold_read_from_constant_string, int_const_binop,
2854         strip_float_extensions, simplify_builtin, c_strlen,
2855         recompute_tree_invarant_for_addr_expr,
2856         needs_to_live_in_memory, make_vector,
2857         setjmp_vars_warning, update_alignment_for_field,
2858         expand_asm_expr, asm_op_is_mem_input,
2859         containing_blocks_have_cleanups_or_stack_level,
2860         create_artificial_label, gimplify_function_tree,
2861         get_name, unshare_expr, walk_tree,
2862         walk_tree_without_duplicates, in_gimple_form): Declare.
2863         (struct tree_exp): Add fields locus and block.
2864         (struct tree_ssa_name, struct edge_def, struct
2865         tree_phi_node, struct tree_eref_common, struct
2866         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
2867         union alias_var_def, struct tree_statement_list_node,
2868         struct tree_statement_list, enum operand_equal_flag): Declare.
2869         (enum tree_node_structure_enum): Add TS_SSA_NAME,
2870         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
2871         TS_STATEMENT_LIST.
2872         (union tree_node): Add fields ssa_name, phi, eref, ephi,
2873         euse and stmt_list.
2874         (function_cannot_inline_p, uninitialized_vars_warning,
2875         save_for_inline, output_inline_function, all_cases_count,
2876         check_for_full_enumeration_handling,
2877         declare_nonlocal_label): Remove.
2878         (enum tree_dump_index): Add TDI_none, TDI_tu,
2879         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
2880         * unroll.c (unroll_loop): Don't clear map->inline_target.
2881         * unwind-sjlj.c (uw_install_context): Make a proper static inline
2882         function.
2883         * value-prof.c (value_prof_hooks): New.
2884         (find_values_to_profile): Rename to rtl_find_values_to_profile.
2885         Move rtl-specific bits in from branch_prob.
2886         (value_profile_transformations): Rename to
2887         rtl_value_profile_transformations.
2888         (struct value_prof_hooks): New.
2889         (rtl_value_prof_hooks): New.
2890         (rtl_register_value_prof_hooks): New.
2891         (tree_find_values_to_profile): New stub.
2892         (tree_value_profile_transformations): New stub.
2893         (tree_value_prof_hooks): New stub.
2894         (tree_register_value_prof_hooks): New stub.
2895         (find_values_to_profile): New.
2896         (value_profile_transformations): New.
2897         * value-prof.h: Add multiple inclusion guard.
2898         (struct histogram_value): Change rtx fields to void *.
2899         (rtl_register_value_prof_hooks): New declaration.
2900         (tree_register_value_prof_hooks): New declaration.
2901         (find_values_to_profile): New declaration.
2902         (free_profiled_values): New declaration.
2903         (value_profile_transformations): New declaration.
2904         (struct profile_hooks): New declaration.
2905         (init_branch_prob): Declaration moved from rtl.h.
2906         (branch_prob): Declaration moved from rtl.h.
2907         (end_branch_prob): Declaration mooved from rtl.h.
2908         (tree_register_profile_hooks): New declaration.
2909         (rtl_register_profile_hooks): New declaration.
2910         (tree_profile_hooks): New declaration.
2911         (rtl_profile_hooks): New declaration.
2912         * varasm.c: Include tree-mudflap.h.
2913         (TRAMPOLINE_ALIGNMENT): Remove.
2914         (make_decl_rtl): Call mudflap_enqueue_decl.
2915         (assemble_static_space):
2916         (assemble_trampoline_template): Set and return
2917         TRAMPOLINE_ALIGNMENT.
2918         * varray.c (element): Add GENERIC_PTR_NOGC entry.
2919         Add entry for 'tree *'.
2920         Add entry for struct edge_def *.
2921         (varray_copy): New.
2922         * varray.h (enum varray_data_enum): Add
2923         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
2924         VARRAY_DATA_TREE_PTR.
2925         (union varray_data_tag): Corresponding changes.
2926         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
2927         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
2928         VARRAY_EDGE, VARRAY_TREE_PTR,
2929         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
2930         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
2931         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
2932
2933         * config/*/*: Various updates for changed macros, tree
2934         codes, etc.  Check ChangeLog.tree-ssa.
2935
2936         * doc/cfg.texi: New file.
2937         * doc/tree-ssa.texi: New file.
2938         * doc/c-tree.texi: Document new codes.
2939         * doc/gccint.texi: Include new files.
2940         * doc/install.texi: Document new features.
2941         * doc/invoke.texi: Document new switches.
2942         * doc/passes.texi: Document new passes.
2943         * doc/rtl.texi: Update changed RTL codes.
2944         * doc/sourcebuild.texi: Update build instructions.
2945         * doc/standards.texi: Document Fortran changes.
2946         * doc/tm.texi: Update.
2947
2948 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
2949
2950         Replace several arrays with a struct of arrays.
2951         * combine.c (struct reg_stat): New.
2952         (init_reg_last_arrays): Renamed to...
2953         (init_reg_last): ...this.  Callers adjusted.
2954         (reg_stat): New.
2955         (combine_instructions): Allocate it and use it.
2956         (reg_last_death, reg_last_set, reg_last_set_value,
2957         reg_last_set_label, reg_last_set_table_tick,
2958         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
2959         reg_last_set_mode, reg_last_set_nonzero_bits,
2960         reg_last_set_sign_bit_copies): Replace throughout
2961         with items of reg_stat.
2962
2963 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2964
2965         PR optimization/15100
2966         * combine.c (distribute_notes): Don't create a dangling
2967         REG_LIBCALL/REG_RETVAL note.
2968
2969 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2970
2971         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
2972
2973         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
2974         negv2si2.
2975
2976 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
2977
2978         * doc/md.texi (Standard Names): Fix typo in vec_init description.
2979
2980 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
2981
2982         * doc/gty.texi (GTY Options): Clarify example.
2983
2984 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
2985
2986         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
2987         Add const qualifier to altivec vector type if one is needed.
2988
2989 2004-05-11  Paul Brook  <paul@codesourcery.com>
2990
2991         * flags.h (flag_short_enums): Update comment.
2992         * opts.c (decode_options): Set flag_short_enums to 2.
2993         * toplev.c (flag_short_enums): Update comment.
2994         (process_options): Call default_short_enums target hook.
2995
2996 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
2997
2998         PR target/14063
2999         * config/rs6000/altivec.md (altivec_dssall):
3000         Change to unspec_volatile.
3001         (altivec_dss): Likewise.
3002
3003 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
3004
3005         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
3006         vnor.
3007         ("one_cmplv8hi2"): Same.
3008         ("one_cmplv4si2"): Same.
3009
3010 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3011
3012         PR target/15130
3013         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
3014         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
3015         into account.  Compute the correct number of general registers
3016         for the return value.  Generate a special push/pop sequence when
3017         failing to get a temporary register for non SHmedia epilogue.
3018         (sh_expand_epilogue): Add an argument to show whether it's for
3019         sibcall or not.  Set the 3rd argument of output_stack_adjust to
3020         -1 if needed.
3021         (sh_need_epilogue): Call sh_expand_epilogue with 0.
3022         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
3023         with 1.
3024         (epilogue): Call sh_expand_epilogue with 0.
3025
3026 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
3027
3028         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
3029         goto a cleanup label.  After the cleanup, free the allocated memory.
3030
3031 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
3032
3033         * config/rs6000/altivec.h (vec_sld): Add overloads for
3034         argument/return types of 'vector bool int', 'vector bool short'
3035         and 'vector bool char'.
3036
3037 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
3038
3039         * c-decl.c (store_parm_decls_newstyle): Correct test for a
3040         nested function.
3041
3042 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
3043
3044         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
3045         treating missing ones as "".
3046         * config/mips/mips.md: Remove constraints from match_operands and
3047         match_scratches if they appear in define_expands (except reload*),
3048         define_peephole2s, define_splits or attribute specifications.
3049         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
3050         constraint strings.
3051
3052 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3053
3054         * config/rs6000/rs6000.c (function_arg_boundary): Always align
3055         AltiVec vectors.
3056         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
3057         vectors by refererence.  Align the same for TARGET_64BIT to a 16
3058         byte boundary.  Remove useless code.  Add function comment.
3059         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
3060         call to where it belongs.
3061         (function_arg_partial_nregs): Return true for all TARGET_32BIT
3062         -mabi=no-altivec AltiVec vectors.  Fix debug output.
3063         (rs6000_va_arg): Adjust for AltiVec change.
3064
3065 2004-05-10  Paul Brook  <paul@codesourcery.com>
3066
3067         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3068         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3069         (TARGET_DOUBLEWORD_ALIGN): Use it.
3070         (WCHAR_TYPE): Define.
3071         (WCHAR_SIZE_TYPE): Define.
3072         (SIZE_TYPE): Define.
3073
3074 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3075
3076         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
3077         when size is 8 bytes.
3078         (function_arg_advance): Account for stack space used by AltiVec
3079         args when -mabi=altivec.  Simplify alignment calculations.  For
3080         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
3081         (function_arg): Similarly.
3082         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
3083         not AltiVec ABI.
3084         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
3085         Correct alignment, and align before testing reg count.  Remove
3086         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
3087         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
3088         TARGET_FPRS here..
3089         (rs6000_function_value): .. not here before call.
3090
3091 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3092
3093         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
3094
3095 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
3096
3097         PR 15007
3098         * c-decl.c (current_file_decl): Rename to all_translation_units,
3099         adjust comment.
3100         (pop_scope): If popping file_scope, construct a
3101         TRANSLATION_UNIT_DECL and make it the context of all the
3102         symbols in the scope.
3103         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
3104         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
3105         anything to current_file_decl.
3106         (pushdecl_top_level): Likewise.
3107         (store_parm_decls_newstyle): Adjust check for nested function.
3108         (c_write_global_declarations): Update for renamed variable.
3109
3110 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3111
3112         * config/rs6000/rs6000-protos.h
3113         (rs6000_conditional_register_usage): Protoize.
3114
3115         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
3116
3117         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
3118         function.
3119
3120 2004-05-08  Roger Sayle  <roger@eyesopen.com>
3121
3122         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
3123         where op is a comparison operator and C1 and C2 are integer constants
3124         into a range check.
3125         (fold): Call fold_div_compare.
3126
3127 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3128
3129         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
3130         problems with earlier versions of the GNU compiler.
3131
3132 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
3133
3134         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
3135         Declare.
3136
3137         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
3138         (rs6000_hard_regno_mode_ok): New.
3139         (rs6000_init_hard_regno_mode_ok): New.
3140         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
3141
3142         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
3143         result.
3144
3145 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
3146
3147         * config/rs6000/altivec.h (vector, pixel, bool): Do not
3148         define as macros #ifdef __APPLE_ALTIVEC__.
3149
3150 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
3151
3152         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
3153         Generate appropriate parallels for vector arguments
3154         passed to vararg functions. (function_arg): make the call
3155         to rs6000_mixed_function_arg for vector args as needed.
3156
3157 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3158
3159         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
3160         EABI_FLOAT_VARARGS_P.
3161
3162 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3163
3164         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
3165         * config/mips/mips.c (override_options): Disable branch likely
3166         instructions if TUNE_MIPS5500.
3167
3168 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3169
3170         * config/mips/mips.c (override_options): Allow the hi and lo registers
3171         to store any integral mode, not just MODE_INTs.
3172
3173 2004-05-07  Paul Brook  <paul@codesourcery.com>
3174
3175         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3176         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3177         (TARGET_DOUBLEWORD_ALIGN): Use it.
3178         (WCHAR_TYPE): Define.
3179         (WCHAR_SIZE_TYPE): Define.
3180         (SIZE_TYPE): Define.
3181
3182 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3183
3184         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
3185         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
3186
3187 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
3188
3189         * loop-doloop.c (doloop_valid_p): Make sure that body
3190         gets freed.
3191
3192 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
3193
3194         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
3195         declaration.
3196         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
3197         (sparc_skip_caller_unimp): New global variable.
3198         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
3199         Use it instead of SKIP_CALLERS_UNIMP_P.
3200         * config/sparc/sparc.md (call expander): Add sanity check.
3201         (call_address_struct_value_sp32): Re-sync with expander.
3202         (call_symbolic_struct_value_sp32): Likewise.
3203         (return peepholes): Use 'sparc_skip_caller_unimp' instead
3204         of custom predicate.
3205
3206 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3207
3208         PR c++/14962
3209         * c-pragma.c (handle_pragma_redefine_extname): Only change
3210         the assembler name of FUNCTION_DECLs and VAR_DECLs.
3211
3212 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3213
3214         * optabs.h (enum optab_index): Add new OTI_log1p.
3215         (log1p_optab): Define corresponding macro.
3216         * optabs.c (init_optabs): Initialize log1p_optab.
3217         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
3218         patterns.
3219         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
3220         using log1p_optab.
3221         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
3222         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3223
3224         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
3225
3226         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
3227         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
3228         Prototype here.
3229         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
3230         x87's fyl2xp1 instruction.
3231         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
3232         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
3233         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
3234         log1p  and log1pl built-ins as inline x87 intrinsics.
3235
3236 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
3237
3238         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
3239         * config/arm/freebsd.h: Likewise.
3240         * config/ia64/freebsd.h: Likewise.
3241         * config/sparc/freebsd.h: Likewise.
3242
3243 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
3244
3245         PR optimization/15296
3246         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
3247         getting last consecutive label at a branch.
3248         (relax_delay_slots): Similar, near top of loop.
3249
3250 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3251
3252         PR target/15202
3253         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
3254         register to general register.
3255
3256 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
3257
3258         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
3259         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
3260         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
3261         (STACK_BOUNDARY): Delete.
3262
3263 2004-05-06  Stuart Hastings  <stuart@apple.com>
3264
3265         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
3266         mistakenly clobbered by 1.423.
3267
3268 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3269
3270         * doc/invoke.texi: Document -mvr4130-align.
3271         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
3272         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
3273         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
3274         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
3275         * config/mips/mips.md: Include sched-int.h.
3276         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
3277         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
3278         (override_options): Enable -mvr4130-align at -O3 and above.
3279         (mips_sim_insn): New variable.
3280         (mips_sim): New structure.
3281         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
3282         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
3283         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
3284         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
3285         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
3286         (mips_reorg): Call vr4130_align_insns.
3287         (vr4130_last_insn): New variable.
3288         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
3289         (vr4130_swap_insns_p, vr4130_reorder): New functions.
3290         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
3291         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
3292         (mips_use_dfa_pipeline_interface): Return true for the same.
3293         * config/mips/4130.md: New file.
3294         * config/mips/mips.md: Include it.  Add a peephole2 to convert
3295         "mult;mflo" into "mtlo;macc".
3296         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
3297         target of maccs.
3298         (*msac_using_macc): New pattern.
3299
3300 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3301
3302         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
3303         (ir_vr55_hilo): Split into...
3304         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
3305         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
3306         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
3307         Add various multiplication bypasses.
3308         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
3309         multiplication.
3310
3311 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
3312
3313         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
3314         attribute to "XF".
3315
3316 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
3317
3318         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
3319         (fmod_optab, drem_optab): Define corresponding macros.
3320         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
3321         * genopinit.c (optabs): Implement fmod_optab and drem_optab
3322         using fmod?f3 and drem?f3 patterns.
3323         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
3324         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
3325         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
3326         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
3327         flag_unsafe_math_optimizations is set.
3328
3329         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
3330         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
3331
3332         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
3333         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
3334         Prototype here.
3335         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
3336         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
3337         fprem and fprem1 instructions.
3338         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
3339         Rename insn definition to x86_fnstsw_1.
3340         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
3341         x87 instructions.
3342         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
3343         and fmodl built-ins as inline x87 intrinsics.
3344         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
3345         and dreml built-ins as inline x87 intrinsics.
3346
3347 2004-05-05  Roger Sayle  <roger@eyesopen.com>
3348
3349         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
3350
3351 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
3352
3353         PR driver/9822
3354         * doc/invoke.texi (Spec Files): Remove documentation of %c.
3355
3356 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
3357
3358         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
3359         representation.
3360
3361 2004-05-06  Paul Brook  <paul@codesourcery.com>
3362
3363         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
3364         (arm_coproc_mem_operand): ... To this.
3365         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
3366         (arm_legitimate_index_p): Ditto.
3367         (vfp_mem_operand): Rename ...
3368         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3369         (vfp_secondary_reload_class): Use it.
3370         (output_move_double): Use doubleword load/store instructions.
3371         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3372         * config/arm/arm.h (TARGET_LDRD): Define.
3373         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3374         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3375         New splitter for invalid doubleword loads.
3376         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3377         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3378         * doc/md.texi: Document Uy constraint.
3379
3380 2004-05-05  Jan Hubicka  <jh@suse.cz>
3381
3382         PR opt/14980
3383         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3384         inline clones.
3385
3386 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3387
3388         PR target/15290
3389         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3390         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3391
3392 2004-05-05  Mike Stump  <mrs@apple.com>
3393
3394         * config/darwin-c.c (add_framework): Copy the directory name as it
3395         can be freed later.  Also, ensure we always allocate enough room
3396         for the cached framework information.
3397         (find_subframework_header): Keep track of the directory where the
3398         subframework header was found.
3399         (framework_construct_pathname): Speed up by not trying to re-add a
3400         framework.
3401         * cppfiles.c (search_path_exhausted): Arrange for the missing
3402         header callback to be able to set the directory where the header
3403         was found.
3404         (cpp_get_dir): Add.
3405         * cpplib.h (missing_header_cb): Add a parameter.
3406         (cpp_get_dir): Add.
3407
3408 2004-05-03  Mike Stump  <mrs@apple.com>
3409
3410         * doc/invoke.texi (Directory Options): Document -iquote.
3411         * doc/cpp.texi: Likewise.
3412         * doc/cppopts.texi: Likewise.
3413         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3414         (c_common_handle_option): Likewise.
3415         * c.opt (iquote): Add.
3416         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3417         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3418
3419         * c-opts.c (case OPT_I): Deprecate -I- support.
3420         * doc/invoke.texi: Likewise.
3421         * doc/cpp.texi: Likewise.
3422         * doc/cppopts.texi: Likewise.
3423
3424 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3425
3426         * basic-block.h (free_basic_block_vars): Update prototype.
3427         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3428         argument.
3429         (life_analysis): Update call.
3430         * ifcvt.c (if_convert): Likewise.
3431         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3432         * passes.c (rest_of_handle_final): Likewise.
3433         (rest_of_compilation): Likewise.
3434         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3435
3436         * emit-rtl.c (next_real_insn): Use INSN_P.
3437         (prev_real_insn): Likewise.
3438
3439 2004-05-05  Eric Christopher  <echristo@redhat.com>
3440
3441         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3442         representation.
3443
3444 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3445
3446         * config/rs6000/rs6000.c (build_opaque_vector_type):
3447         New function.
3448         (rs6000_init_builtins): Use it.
3449
3450 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3451
3452         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3453         (func_table): Change type from char ** to vms_func_ref.
3454         (write_rtnbeg):  Update to reflect func_table change.  Use
3455         fde->funcdef_number instead of rtnnum in output.
3456         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3457
3458 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3459             Richard Henderson  <rth@redhat.com>
3460
3461         PR target/14899
3462
3463         * c-common.c (vector_types_convertible_p): New function.
3464         * c-typeck.c (comptypes): Recurse on vector types.
3465         (convert_for_assignment): Use vector_types_convertible_p.
3466         (digest_init): Use vector_types_convertible_p to check
3467         validness of constant vector initializers; otherwise treat
3468         them as scalars.
3469         * tree.c (make_or_reuse_type): New.
3470         (build_common_tree_nodes): Use it.
3471         * cp/call.c (standard_conversion): Likewise.
3472         * cp/typeck.c (comptypes): Recurse on vector types.
3473         (convert_for_assignment): Use vector_types_convertible_p.
3474
3475 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3476
3477         * config/mips/mips.c (override_options): Default to no
3478         generation of branch-likely operations when tuning for
3479         CPUs where they tend to have a negative performance impact
3480         (e.g., SB-1).
3481
3482 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3483
3484         * expr.c (store_constructor_field): Don't call store_constructor
3485         if bitsize is not a multiple of a byte.
3486
3487 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3488
3489         * reload1.c (inherit_piecemeal_p): New function.
3490         (emit_reload_insns): When reloading a group of hard registers, use
3491         inherit_piecemeal_p to decide whether the values of individual hard
3492         registers can be inherited.
3493
3494 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3495
3496         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3497         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3498         * config/t-linux (LIB2ADDEHDEP): Likewise.
3499
3500 2004-05-04  Paul Brook  <paul@codesourcery.com>
3501
3502         * config/arm/crti.asm: Push an even number of registers.
3503         * config/arm/crtn.asm: And restore them.  Load via sp.
3504
3505 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3506
3507         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3508         Collect overhead information.
3509         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3510         parameter and pass it through.
3511         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3512         MEM_STAT_DECL parameter and pass it through.
3513         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3514         MEM_STAT_DECL parameter and pass it through.
3515
3516 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3517
3518         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3519
3520         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3521
3522         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3523         rs6000_hard_regno_nregs.
3524
3525 2004-05-03  Eric Christopher  <echristo@redhat.com>
3526
3527         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3528         prologue insn instead of setting up call.
3529         (s390_emit_epilogue): Ditto.
3530         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3531         (define_constants): Add numbers for above patterns.
3532
3533 2004-05-03  Eric Christopher  <echristo@redhat.com>
3534
3535         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3536         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3537         * config/s390/s390-protos.h: Prototype.
3538
3539 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3540
3541         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3542         assignment.
3543
3544 2004-05-03  Eric Christopher  <echristo@redhat.com>
3545
3546         * config/mips/mips.md: Fix branch length attribute definition.
3547
3548 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3549
3550         * config.gcc: Remove --enable-altivec support.
3551
3552         * config/rs6000/altivec-defs.h: Remove.
3553
3554 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3555
3556         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3557         * fixinc/fixincl.x: Regenerate.
3558
3559 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3560
3561         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3562         definition.
3563         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3564         float_truncate insn.
3565         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3566         (logb?f2): Reimplement expanders with float_truncate insn.
3567
3568 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3569
3570         PR 14718
3571         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3572         force_type_die for CONST_DECL.
3573
3574 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3575             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3576
3577         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3578         tm-dwarf2.h to tm_file.
3579         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3580         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3581         (ASM_DEBUG_SPEC): Delete.
3582
3583 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3584
3585         * optabs.h (enum optab_index): Add new OTI_expm1.
3586         (expm1_optab): Define corresponding macro.
3587         * optabs.c (init_optabs): Initialize expm1_optab.
3588         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3589         patterns.
3590         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3591         using expm1_optab.
3592         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3593         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3594
3595         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3596         to implement expm1, expm1f and expm1l built-ins as inline x87
3597         intrinsics.
3598
3599 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3600
3601         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3602         * config/frv/frv.md (*return_true, *return_false): New patterns.
3603
3604 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3605
3606         * rtl.h (PHI_NODE_P): Remove.
3607
3608 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3609
3610         PR middle-end/14988
3611         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3612         when passed -2 as 'align'.
3613         (put_var_into_stack): Use 'bool' as the type for the three local
3614         predicates.  Adjust calls to put_reg_into_stack.
3615         When passed a CONCAT, instruct put_reg_into_stack to use
3616         a consecutive stack slot for the second part.
3617         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3618         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3619         parameters.  Retrieve the register mode from 'reg'.
3620         When consecutive_p is true, instruct assign_stack_local_1 to use
3621         BITS_PER_UNIT alignment.
3622         (put_addressof_into_stack): Use 'bool' as the type for the two
3623         local predicates. Adjust call to put_reg_into_stack.
3624
3625 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3626
3627         * fold-const.c (fold_convert_const, fold): Add missing
3628         FIX_ROUND_EXPR case.
3629
3630 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3631
3632         * configure.ac (FLEX, BISON): Only use tools from the build tree
3633         if build equals host.
3634         * configure: Rebuilt.
3635
3636         * config/frv/frv-protos.h (frv_expand_epilogue,
3637         frv_expand_fdpic_call): Add bool argument.
3638         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3639         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3640         (frv_expand_epilogue): Use new argument to decide whether to emit
3641         return instruction or copy the return address to LR.
3642         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3643         sibcalls.
3644         (sibcall_operand): New.
3645         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3646         PLUS nor LABEL_REF.  Add sibcall_operand.
3647         * config/frv/frv.md (call, call_value): Pass false to
3648         frv_expand_fdpic_call.
3649         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3650         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3651         sibcall_value_internal, sibcall_value_fdpicdi): New.
3652         (return_unsigned_true, return_unsigned_false): New.
3653         (epilogue): Adjust call to frv_expand_epilogue.
3654         (sibcall_epilogue): New.
3655
3656         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3657         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3658         before redefining them.
3659
3660 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3661
3662         * builtins.c (fold_fixed_mathfn): New function.
3663         (fold_builtin_lround, fold_builtin): Use it.
3664
3665 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3666
3667         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3668         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3669
3670 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3671
3672         * config/cris/cris.h: Revert my "fix comment typos" patch.
3673
3674 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3675
3676         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3677
3678 2004-05-01  Falk Hueffner  <falk@debian.org>
3679
3680         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3681         builtin_insll): Disallow 0 as first input operand.
3682
3683 2004-05-01  Falk Hueffner  <falk@debian.org>
3684
3685         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3686
3687 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3688
3689         PR middle-end/15054
3690         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3691         on a TARGET_EXPR temp.
3692         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3693         TARGET_EXPR temp slots.
3694
3695 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3696
3697         * simplify-rtx.c (simplify_ternary_operation): When
3698         converting an IF_THEN_ELSE to a relational op, return
3699         correct mode.
3700
3701 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3702
3703         * builtins.c (fold_builtin_round): Fix comment typo.
3704         (fold_builtin_lround): New function.
3705         (fold_builtin): Use it.
3706
3707 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3708
3709         PR target/11608
3710         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3711         more like the one in config/dbxelf.h.
3712
3713 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3714
3715         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3716         and adjust definition accordingly.
3717         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3718         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3719         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3720         VECTOR_TYPE.
3721
3722 2004-04-30  Jason Merrill  <jason@redhat.com>
3723
3724         PR c++/14587
3725         * config/i386/winnt.c (associated_type): Look for attributes on
3726         the TYPE_MAIN_VARIANT of *this.
3727         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3728         apply the attributes to the variants.
3729
3730 2004-04-30  Paul Brook  <paul@codesourcery.com>
3731
3732         * config.gcc: Simplify arm --with-{cpu,tune} test.
3733         * config/arm/arm-cores.def: Document whitespace restrictions.
3734
3735 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3736
3737         PR other/1963
3738         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
3739
3740 2004-04-30  Brian Ford  <ford@vss.fsi.com>
3741             DJ Delorie  <dj@redhat.com>
3742
3743         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3744         (DWARF2_DEBUGGING_INFO): Define to enable.
3745         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
3746         DWARF2.
3747         * configure.ac (Target-specific assembler checks)
3748         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
3749         relocs.
3750         * configure: Regenerate.
3751         * config.in: Likewise.
3752
3753         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
3754         (ASM_OUPUT_DWARF_OFFSET): Define.
3755
3756 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
3757
3758         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
3759         (s390_emit_call): New function prototype added.
3760         (s390_tls_get_offset): Function removed.
3761         * config/s390/s390.c (s390_function_ok_for_sibcall,
3762         s390_call_saved_register_used_p): New functions.
3763         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
3764         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
3765         (s390_emit_tls_call_insn): New function.
3766         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
3767         emit_call_insn.
3768         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
3769         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
3770         added.
3771         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
3772         register number used to hold the target address for sibcalls.
3773         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
3774         New expanders.
3775         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
3776         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
3777         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
3778         Expanders removed.
3779         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
3780         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
3781         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
3782         ("epilogue"): Changed the call to s390_emit_epilogue to use the
3783         new parameter.
3784
3785 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
3786
3787         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
3788         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
3789         reg-stack.c, varasm.c, config/alpha/ev4.md,
3790         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
3791         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
3792         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
3793         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
3794         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
3795         config/ia64/itanium2.md, config/ip2k/ip2k.c,
3796         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
3797         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
3798         comment typos.
3799
3800 2004-04-30  Paul Brook  <paul@codesourcery.com>
3801
3802         * config.gcc: Default ep9312 to hard-float.
3803         * config/arm/arm-cores.def: Add ARCH field.
3804         * config/arm/arm.c (FL_FOR_ARCH*): Define.
3805         (arm_arch_cirrus): New variable.
3806         (all_cores): Set and use arch.
3807         (all_architectures): Ditto.
3808         (arm_arch_name): New variable.
3809         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
3810         Set and use arm_arch_cirrus.
3811         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
3812         (enum processor_type): Update ARM_CORE define.
3813         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
3814         (CPP_SPEC): Remove %(cpp_cpu_arch).
3815         (CPP_ARCH_DEFAULT_SPEC): Remove.
3816         (CPP_CPU_ARCH_SPEC): Remove.
3817         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
3818         (FPUTYPE_DEFAULT): Don't define here.
3819
3820 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
3821
3822         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
3823         updates too.
3824
3825 2004-04-30  Paul Brook  <paul@codesourcery.com>
3826
3827         * arm.c (arm_needs_doubleword_align): Use mode alignment.
3828
3829 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
3830
3831         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
3832         vec_sububs.
3833         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
3834         duplicates.
3835
3836 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3837
3838         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
3839         atan2?f3 expanders.
3840
3841 2004-04-29  Nick Clifton  <nickc@redhat.com>
3842
3843         Bug 14093
3844         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
3845         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
3846         Delete static from definition.
3847         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
3848
3849 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
3850
3851         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
3852         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
3853         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
3854         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
3855
3856 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
3857
3858         * commom.opt (Wfatal-errors): Add it.
3859         * diagnostic.c (flag_fatal_errors): Define it.
3860         (diagnostic_action_after_output): Check for flag_fatal_errors.
3861         * flags.h (flag_fatal_errors): Declare it.
3862         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
3863         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
3864
3865 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
3866
3867         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
3868         blocks which have kill flag set.
3869
3870 2004-04-29  Ben Elliston  <bje@au.ibm.com>
3871
3872         * configure.ac (--with-as): Abort if user-supplied assembler
3873         cannot be executed.
3874         (--with-ld): Likewise for the linker.
3875         * configure: Regenerate.
3876
3877 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3878
3879         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
3880         isn't NULL before using it.
3881
3882 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
3883
3884         PR target/15189
3885         * config/mips/mips.md (load_df_low): Use default length.
3886         (load_df_high, store_df_high): Likewise.
3887
3888 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3889
3890         * config/mips/mips.md, config/mips/sb1.md,
3891         config/rs6000/rs6000.c: Fix comment typos.
3892
3893 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
3894
3895         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
3896         Fix comment typos.
3897
3898 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
3899
3900         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
3901         (delete_if_ordinary): Use above macro.
3902         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
3903         Update copyright.
3904         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
3905
3906 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
3907
3908         * c-decl.c (get_parm_info): Use the correct tag keywords when
3909         warning about type declarations in prototypes.
3910
3911 2004-04-29  Paul Brook  <paul@codesourcery.com>
3912
3913         * config.gcc: Pull list of cores from arm-cores.def.
3914
3915 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3916
3917         * combine.c (combine_simplify_rtx): Adjust call to use
3918         simplify_relational_operation.  Do not use SELECT_CC_MODE
3919         when a comparison already has a MODE_CC mode.
3920
3921 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
3922
3923         (simplify_set): simplify_relational_operation may now
3924         return another relational expression.
3925         * cse.c (fold_rtx): simplify_relational_operation now
3926         takes of computing the comparison mode.
3927         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
3928         remove dead code.
3929         (do_compare_rtx_and_jump): Likewise.
3930         * integrate.c (subst_constants): simplify_relational_operation
3931         may now return another relational expression.
3932         * simplify-rtx.c (simplify_gen_relational): Move most code to
3933         the new simplify_relational_operation and
3934         simplify_relational_operation_1 functions.
3935         (simplify_relational_operation): Rewritten.
3936         (simplify_relational_operation_1): New function.
3937         (simplify_ternary_operation): simplify_relational_operation
3938         may now return another relational expression.
3939         (simplify_rtx): Remove unnecessary temp variable.
3940
3941 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
3942
3943         * reg-stack.c (swap_to_top): New function.
3944         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
3945         swap_to_top().
3946         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
3947         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
3948         UNSPEC_FSCALE_EXP.
3949
3950         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
3951         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
3952         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
3953         x87's fscale insn.
3954         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
3955         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
3956         patterns.
3957
3958 2004-04-28  Serge Belyshev  <1319@bot.ru>
3959
3960         PR 14944
3961         * coverage.c (read_counts_file): Fix usage of warning () call.
3962         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
3963
3964 2004-04-28  Ben Elliston  <bje@au.ibm.com>
3965
3966         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
3967         options with "-" in the option index.
3968         (SPARC Options): Likewise.
3969         (M32R/D Options): Likewise.
3970
3971 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3972
3973         * convert.c (convert_to_integer): Convert (long)round -> lround,
3974         etc.
3975
3976 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
3977
3978         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
3979         Return false if we do not have fp register.
3980         (addrs_ok_for_quad_peep): Rename to ...
3981         (mems_ok_for_quad_peep): this.
3982         Add check for volatile memory.
3983         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
3984         Rename to ...
3985         (mems_ok_for_quad_peep): this.
3986         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
3987         to peephole2's.
3988         (lfq_power2): New instruction.
3989         (stfq_power2): Likewise.
3990
3991 2004-04-28  Jan Hubicka  <jh@suse.cz>
3992
3993         PR c/15004
3994         * function.c (do_warn_unused_parameter): Break out form ...
3995         (expand_function_end): ... here; warn only when not using cgraphunit.
3996         * function.h (do_warn_unused_parameter): Declare.
3997         * cgraphunit.c: Include function.h.
3998         (cgraph_finalize_function): Do unused parameter warning.
3999         * Makefile.in (cgraphunit.o): Depend on function.h
4000
4001 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4002
4003         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
4004         calling install-info on $(DESTDIR)$(infodir)/dir already being
4005         present.
4006
4007 2004-04-28  Paul Brook  <paul@codesourcery.com>
4008
4009         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
4010
4011 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4012
4013         * gcse.c (find_moveable_store): Do not accept store insns with
4014         REG_EH_REGION note.
4015
4016 2004-04-28  Paul Brook  <paul@codesourcery.com>
4017
4018         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
4019         * function.c (assign_temp): Ditto.
4020         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
4021
4022 2004-04-28  Paul Brook  <paul@codesourcery.com>
4023
4024         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
4025
4026 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
4027
4028         * var-tracking.c (variable_different_p): Add a parameter
4029         compare_current_location, compare current location of variable parts
4030         if it is true.
4031         (dataflow_set_different_1): Pass compare_current_location == false.
4032         (dataflow_set_different_2): Pass compare_current_location == false.
4033         (emit_notes_for_differences_1): Pass compare_current_location == true.
4034
4035 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4036
4037         * config/s390/s390.md ("casesi"): Mark jump table access as
4038         non-trapping and unchanging.
4039
4040 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4041
4042         PR debug/14829
4043         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
4044         callers.
4045         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
4046         number for indexing hard_regno_nregs array.
4047
4048 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
4049
4050         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
4051         * config/darwin-crt2.c: Only have contents on __ppc__.
4052
4053 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
4054
4055         * config/xtensa/xtensa.c (call_insn_operand): Check
4056         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
4057         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
4058         * config/xtensa/xtensa.md (call, call_value): Likewise.
4059
4060 2004-04-27  Wu Yongwei  <adah@sh163.net>
4061
4062         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
4063         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
4064         (__gthread_mutex_init_function): Replace CreateMutex with
4065         initialization of custom mutex using CreateSemaphore.
4066         (__gthread_mutex_lock): Use InterlockedIncrement.
4067         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
4068         (__gthread_mutex_unlock): Use InterlockedDecrement and
4069         ReleaseSemaphore to unlock
4070         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
4071         __gthread_mutex_lock, __gthread_mutex_trylock,
4072         __gthread_mutex_unlock): Adjust to match inline versions in
4073         gthr-win32.h.
4074
4075 2004-04-27  Paul Brook  <paul@codesourcery.com>
4076
4077         * config/arm/arm.c (arm_promote_prototypes): New function.
4078         (TARGET_PROMOTE_PROTOTYPES): Use it.
4079
4080 2004-04-27  Paul Brook  <paul@codesourcery.com>
4081
4082         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
4083
4084 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
4085
4086         * config/alpha.c (alpha_end_function): For OpenVMS gas,
4087         correctly output .pdesc directive before .end.
4088
4089 2004-04-26  James E Wilson  <wilson@specifixinc.com>
4090
4091         Bug 14927
4092         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
4093         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
4094
4095 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
4096
4097         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
4098         * config/pa/pa-hpux10.h: Likewise.
4099         * config/pa/pa-hpux11.h: Likewise.
4100
4101 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
4102
4103         * doc/invoke.texi (Overall Options): Document default for -o
4104         for PCH files.
4105
4106 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4107
4108         * builtins.c (expand_builtin_update_setjmp_buf): New function.
4109         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
4110         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
4111
4112 2004-04-26  Paul Brook  <paul@codesourcery.com>
4113
4114         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
4115
4116 2004-04-26  Paul Brook  <paul@codesourcery.com>
4117
4118         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
4119
4120 2004-04-25  Roger Sayle  <roger@eyesopen.com>
4121
4122         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
4123         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
4124         X % -1 as 0.
4125
4126 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
4127
4128         PR bootstrap/15141
4129         * except.c (connect_post_landing_pads): Delete insns after the
4130         barrier when generating a unwind_resume_libfunc call.
4131
4132 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4133
4134         PR/c++ 15119
4135         * tree.c (substitute_placeholder_in_expr, case 4): New case,
4136         for TARGET_EXPR.
4137
4138 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4139
4140         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4141         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
4142         inhibit_libc is defined.
4143
4144 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
4145
4146         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
4147         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
4148         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
4149         (TARGET_SCHED_VARIABLE_ISSUE): Define.
4150         (mips_adjust_cost): Move later in file, next to other sched hooks.
4151         (mips_macc_chains_last_hilo): New variable.
4152         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
4153         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
4154         * config/mips/mips.md (may_clobber_hilo): New attribute.
4155
4156 2004-04-24  Roger Sayle  <roger@eyesopen.com>
4157             Bruce Korb  <bkorb@gnu.org>
4158
4159         * fixinc/inclhack.def (aix_syswait_2): New fix.
4160         * fixinc/fixincl.x: Regenerate.
4161         * fixinc/tests/base/sys/wait.h: Update for new test.
4162
4163 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
4164
4165         PR target/14960
4166         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
4167         to non_fixed_size, and leave out fixed_size from the sum.
4168         (generate_set_vrsave): Correct clobbers.
4169         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
4170         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
4171         (rs6000_libcall_value): Likewise.
4172         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
4173         (FUNCTION_ARG_REGNO_P): Likewise.
4174
4175 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4176
4177         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
4178         is a CONST_INT.
4179         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
4180         with NARROW_OP1 instead of OP1.
4181
4182 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4183
4184         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
4185         and __s390x__ hosts.
4186
4187 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4188
4189         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
4190         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
4191         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
4192         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
4193         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
4194         * builtins.c (expand_builtin_fork_or_exec): New.
4195         (expand_builtin): Call it.
4196         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
4197         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
4198         * c-common.c (PID_TYPE): New macro.
4199         (c_common_nodes_and_builtins): Initialize pid_type_node.
4200         * calls.c (special_function_p): Do not handle fork and exec.
4201         (expand_call): Do not handle ECF_FORK_OR_EXEC.
4202         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4203         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
4204         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4205         __gcov_execv, __gcov_execvp, __gcov_execve): New.
4206         * tree.h (enum tree_index): Add TI_PID_TYPE.
4207         (pid_type_node): New macro.
4208         (ECF_FORK_OR_EXEC): Removed.
4209
4210 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4211
4212         PR optimization/13985
4213         * cfgloopmanip.c (fix_loop_placements): New prototype.
4214         Call fix_bb_placements on the preheader of loops that have
4215         been reparented.
4216         (remove_path): Adjust call to fix_loop_placements.
4217
4218 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
4219
4220         * config/darwin7.h: New file.
4221         * config.gcc (*-*-darwin*): Add darwin7.h if the
4222         version is greater than 6.
4223         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
4224         (MATH_LIBRARY): Wrap in ifdefs.
4225
4226 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
4227
4228         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
4229         loading iWMMXt registers with a frame pointer.  Use post-increment
4230         without a frame pointer.
4231         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
4232
4233 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
4234
4235         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
4236         mode" rather than "-funit-at-a-time" since -O2 enables it
4237         without requiring -f* options.  Refer to -fprofile-generate and
4238         -fprofile-use correctly.  Move -funit-at-a-time among options
4239         enabled by -O.  Add information about unit-at-a-time caveats.
4240
4241 2004-04-22  Per Bothner  <per@bothner.com>
4242
4243         * line-map.h (struct line_maps):  New field highest_line.
4244         (linemap_position_for_column):  Make non-inline function.
4245         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
4246         * line-map.c (linemap_init):  Clear highest_line field.
4247         (linemap_add):  Set highest_line field.
4248         (linemap_line_start):  Minor optimization - use highest_line field.
4249         Reduce maximum column hint to 10000.  Update highest_line field.
4250         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
4251         * cpphash.h (struct cpp_reader):  Remove line field - instead use
4252         line_table->highest_line.
4253         (saved_line):  Remove unused field.
4254         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
4255         Use  line_table's highest_line field instead of cpp_reader's line.
4256         * cpplib.c (start_directive):  Likewise use highest_line field.
4257         (do_line, do_linemarker):  Likewise just use newest map.
4258         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
4259         * cpperror.c (cpp_error):  Likewise use highest_line field.
4260         * cppfiles.c (open_file_failed:  Likewise.
4261         (cpp_make_system_header):  Likewise use newest map and highest_line.
4262         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
4263         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
4264         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
4265         _cpp_lex_direct):  Likewise use highest_line.
4266         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
4267         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
4268         and use newest map.
4269         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
4270         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
4271         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
4272
4273 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
4274
4275         PR bootstrap/14992
4276         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
4277         * config/linux.h (USE_LD_AS_NEEDED): Define.
4278         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
4279         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
4280         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
4281         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
4282         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
4283         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
4284         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
4285
4286 2004-04-22  Per Bothner  <per@bothner.com>
4287
4288         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
4289         Fixes PR preprocessor/15067.
4290
4291 2004-04-23  Andreas Schwab  <schwab@suse.de>
4292
4293         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
4294         avoid aliasing warning.
4295
4296 2004-04-22  Jan Hubicka  <jh@suse.cz>
4297             Mostafa Hagog <mustafa@il.ibm.com>
4298
4299       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
4300       * cfgloopanal.c (expected_loop_iterations): Change the return value
4301
4302 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
4303
4304         * cselib.h (struct elt_loc_list): Remove canon_loc field.
4305         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
4306         (cselib_invalidate_mem): Remove all canon_loc and canon_x
4307         traces.
4308
4309 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
4310
4311         Revert
4312         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4313
4314                 * var-tracking.c (variable_part_different_p): Variable parts
4315                 differ when the most recent locations differ.
4316
4317 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
4318
4319         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
4320         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
4321         (embedded_pic_offset): Delete.
4322         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
4323         MASK_* constants.
4324         (TARGET_EMBEDDED_PIC): Delete.
4325         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
4326         (ASM_SPEC): Remove -membedded-pic.
4327         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
4328         (ASM_OUTPUT_CASE_LABEL): Likewise.
4329         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
4330         * config/mips/windiss.h (ASM_SPEC): Likewise.
4331         * config/mips/mips.c (struct machine_function): Remove
4332         embedded_pic_fnaddr_rtx.
4333         (TARGET_ENCODE_SECTION_INFO): Remove override.
4334         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
4335         (override_options): Remove -membedded-pic handling.
4336         (print_operand): Remove handling of '%S'.
4337         (mips_select_section: Remove -membedded-pic handling.
4338         (mips_encode_section_info): Delete.
4339         (mips_output_conditional_branch): Remove mention of -membedded-pic.
4340         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
4341         -membedded-pic handling.
4342         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
4343
4344 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
4345
4346         * var-tracking.c (frame_base_decl): Remove useless GTY.
4347
4348 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
4349
4350         * config/rs6000/rs6000.c (rs6000_override_options): Error when
4351         user wants altivec and e500 instructions.
4352
4353 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4354
4355         PR target/14813
4356         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
4357         in .init_array section to ...
4358         * config/ia64/crtbegin.asm: Here.
4359
4360         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
4361         and hidden if HAVE_INITFINI_ARRAY is defined.
4362
4363 2004-04-21  James E Wilson  <wilson@specifixinc.com>
4364
4365         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
4366         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
4367         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4368         (fp_register_operand, lo_operand): New.
4369         (mips_rtx_costs): Add TUNE_SB1 support.
4370         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4371         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4372         (mips_multipass_dfa_lookahead): New.
4373         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4374         TUNE_SB1): New.
4375         (TARGET_SWITCHES): Add -mfp-exceptions support.
4376         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4377         (BRANCH_COST): Fix whitespace.
4378         * config/mips/mips.md: Include sb1.md.
4379         * config/mips/sb1.md: New file.
4380         * doc/invoke.texi: Document -mfp-exceptions.
4381
4382         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4383         comment.
4384         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4385         (fixincl.o-warn): Delete.
4386
4387 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4388
4389         * config/rs6000/rs6000 (print_operand) ['z']:
4390         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4391
4392 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4393
4394         * config.gcc: Support --with-arch=iwmmxt for ARM.
4395
4396 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4397
4398         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4399         in two more places; remove unneeded force_reg
4400
4401 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4402
4403         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4404         for TARGET_MACHO.
4405         (print_operand): For TARGET_MACHO check to see if we need a stub
4406         and output one if we need it.
4407
4408         PR debug/15033
4409         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4410         rtl.
4411
4412 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4413
4414         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4415         (vall_value_gp): Likewise.
4416
4417 2004-04-20  DJ Delorie  <dj@redhat.com>
4418
4419         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4420         variables stored in word registers, then in memory.
4421
4422 2004-04-20  Eric Christopher  <echristo@redhat.com>
4423
4424         * cp/parser.c (cp_parser_declaration): Move translate
4425         up before tokens are lexed.
4426
4427 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4428
4429         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4430         (asin_optab, acos_optab): Define corresponding macros.
4431         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4432         * genopinit.c (optabs): Implement asin_optab and acos_optab
4433         using asin?f2 and acos?f2 patterns.
4434         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4435         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4436         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4437         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4438
4439         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4440         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4441         acos, acosf and acosl built-ins as inline x87 intrinsics.
4442
4443 2004-04-20  Paul Brook  <paul@codesourcery.com>
4444
4445         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4446
4447 2004-04-20  Paul Brook  <paul@codesourcery.com>
4448
4449         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4450
4451 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4452
4453         Revert part of 2004-04-17 change that moved -frename-registers
4454         to -O1.  -frename-registers is buggy.
4455
4456         * toplev.c (flag_rename_registers): Initialize to 0.
4457         * doc/invoke.texi (Optimize options): Move -frename-registers
4458         to "Not triggered by any -O level" section.  Adjust commentary
4459         accordingly.
4460
4461 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4462
4463         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4464
4465 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4466
4467         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4468         for mflo and mfhi instructions.
4469         (mips_output_move): Remove mflo and mfhi handling.
4470         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4471         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4472         Likewise various define_peephole2s.
4473         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4474         alternatives.
4475         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4476         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4477         (mfhilo_di, mfhilo_si): New patterns.
4478
4479 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4480
4481         * function.c (assign_parms): Force
4482         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4483
4484 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4485
4486         * var-tracking.c (variable_part_different_p): Variable parts differ
4487         when the most recent locations differ.
4488
4489 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4490
4491         * rtl.h (reg_set_last): Delete declaration.
4492         * rtlanal.c (reg_set_last): Delete.
4493
4494 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4495
4496         * fold-const.c (fold_convert): Make function extern/public.
4497         * tree.h (fold_convert): Prototype here.
4498         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4499         expand_builtin_strrchr, expand_builtin_strpbrk,
4500         expand_builtin_mempcpy, expand_builtin_bcopy,
4501         expand_builtin_bzero, expand_builtin_memcmp,
4502         expand_builtin_strcmp, expand_builtin_strncmp,
4503         stabilize_va_list, expand_builtin_sprintf,
4504         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4505         fold_builtin_exponent, fold_builtin_mempcpy,
4506         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4507         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4508         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4509
4510 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4511
4512         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4513         (move_from_CR_gt_bit): New.
4514         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4515         E500.
4516         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4517         E500.
4518
4519         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4520         (tstsfeq_gpr): Same.
4521         (cmpsfgt_gpr): Same.
4522         (tstsfgt_gpr): Same.
4523         (cmpsflt_gpr): Same.
4524         (tstsflt_gpr): Same.
4525         (e500_cceq_ior_compare): New.
4526         (e500_flip_gt_bit): New.
4527
4528         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4529         (print_operand): Add 'c' and 'D'.
4530         (rs6000_generate_compare): Rewrite to generate correct rtl.
4531         (rs6000_emit_sCOND): Handle E500.
4532         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4533         (output_e500_flip_gt_bit): New.
4534
4535         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4536         Protoize.
4537
4538 2004-04-19  Eric Christopher  <echristo@redhat.com>
4539
4540         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4541
4542 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4543
4544         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4545         fix information.
4546
4547 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4548
4549         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4550         download URL.
4551
4552 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4553
4554         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4555         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4556
4557 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4558
4559         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4560         (fold_builtin): Update caller to match.
4561
4562         PR bootstrap/15009
4563         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4564
4565         PR bootstrap/14999
4566         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4567
4568 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4569
4570         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4571
4572         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4573         (expand_mult_highpart_optab): Likewise.
4574         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4575
4576 2004-04-19  Paul Brook  <paul@codesourcery.com>
4577
4578         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4579         floatunssisf2, floatunssidf2): New patterns.
4580
4581 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4582
4583         PR other/14918
4584         * doc/invoke.texi (-fprofile-generate): Document requirement to
4585         use -fprofile-generate when linking.
4586
4587         * doc/extend.texi (Strong Using): Warn users against using this
4588         feature.
4589
4590 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4591
4592         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4593         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4594         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4595         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4596         constant.  Propogate change throughout file.
4597         (struct machine_function): Remove insns_len.
4598         (mips_string_length, mips16_strings, string_constants): Delete.
4599         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4600         when generating mips16 code.  Remove special mips16 treatment of
4601         string constants.
4602         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4603         to have the form LABEL+CONSTANT.
4604         (mips_symbolic_address_p): Fix comment.
4605         (m16_usym8_4, m16_usym5_4): Delete.
4606         (mips_output_function_epilogue): Remove mips16 string handling.
4607         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4608         (mips_select_section, mips_encode_section_info): Remove mips16
4609         string handling.
4610         (struct mips16_constant_pool): New.
4611         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4612         sorted into order of ascending mode size.  Keep track of the highest
4613         possible start address, taking padding and the masking of the base PC
4614         value into account.
4615         (dump_constants_1): New function, split out from dump_constants.
4616         Handle vector constants.  Use gen_consttable_{int,float} rather than
4617         separate functions for each mode.
4618         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4619         rather than separate functions for each alignment.
4620         (mips_find_symbol): Delete.
4621         (mips16_insn_length): New function, split out from
4622         mips16_lay_out_constants.
4623         (mips16_rewrite_pool_refs): New function.
4624         (mips16_lay_out_constants): Rework. Remove string handling.
4625         Always create an inline constant pool.
4626         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4627         (UNSPEC_ALIGN): New constants.
4628         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4629         (UNSPEC_ALIGN_[248]): Delete.
4630         (consttable_int, consttable_float, align): New patterns.
4631         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4632
4633 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4634
4635         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4636         __unn_args_eq.
4637
4638 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4639
4640         PR target/14715
4641         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4642         with STARTING_FRAME_OFFSET.
4643
4644 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4645
4646         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4647         * config/mips/mips.c (macc_msac_operand): New function.
4648         * config/mips/mips.md (*msac): Move after *macc.
4649         (*msac2): New.  Generalize macc-related peepholes so that they apply
4650         to msac too.
4651
4652 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4653
4654         * opts.c (decode_options): Do not enable flag_rename_registers
4655         and flag_web at -O3.
4656         * toplev.c (flag_rename_registers): Initialize
4657         flag_rename_registers and flag_web to
4658         AUTODETECT_FLAG_VAR_TRACKING.
4659         (default_debug_hooks): New global.
4660         (process_options): Initialize default_debug_hooks.  Warn if
4661         -fvar-tracking specified but not supported by the current
4662         debug format.  Do not run var tracking at -O0 or if not
4663         supported by the current debug format, even if
4664         -fvar-tracking was given.  If -fno-rename-registers
4665         is not specified, always run register renaming if var
4666         tracking is supported by the default debugging information
4667         format for the target, and we are at -O1 or higher; similarly
4668         for -fweb, but only at -O2 or higher.
4669         * doc/invoke.texi (Optimize Options): Document this.
4670
4671 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4672
4673         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4674         * configure: Regenerate.
4675
4676 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4677
4678         * gcc.c (used_arg): Check whether an option has been removed.
4679
4680 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4681
4682         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4683         debugging on Solaris 7 and up.
4684
4685 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4686
4687         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4688         IRIX 5 port.
4689         Remove -save-temps workaround, handled automatically.
4690         Require GNU binutils 2.15 for debugging.
4691         Remove SGI make warnings since GNU make is now required.
4692         (Specific, mips-sgi-irix6): Some markup fixes.
4693         Describe MIPSpro C problems and workarounds.
4694         Mention working O32 ABI support.
4695         Recommend GNU as 2.15 for O32 with debugging.
4696         Remove description of fixed structure pass/return bug.
4697
4698 2004-04-16  DJ Delorie  <dj@redhat.com>
4699
4700         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4701         TYPE_FIELDS.
4702         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4703
4704 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4705
4706         * pa.md: Remove unnecessary declarations for asm_out_file.
4707
4708         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4709         SAR register.  Fix comment.
4710         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4711         (%cr11).
4712
4713         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4714
4715 2004-04-16  Nick Clifton  <nickc@redhat.com>
4716
4717         * config/arm/arm.c (arm_override_options): Revert previous patch.
4718         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4719         be safely built.
4720
4721 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4722
4723         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4724         bug.
4725         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4726         TARGET_DEFAULT): Changed. Ditto.
4727         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4728         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4729         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4730         (TARGET_ENDIAN_DEFAULT): Added.
4731
4732 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4733
4734         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
4735         ATTR_CONST_NOTHROW_LIST.
4736
4737 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4738
4739         PR/middle-end 14915
4740         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
4741         BITS_BIG_ENDIAN.
4742
4743 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
4744
4745         * ra-debug.c (ra_print_rtx): Add break's to case legs.
4746
4747 2004-04-14  James E Wilson  <wilson@specifixinc.com>
4748
4749         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
4750
4751 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
4752
4753         * libada-mk.in: New file.
4754         * configure.ac: Create libada-mk from libada-mk.in.
4755         * configure: Regenerate.
4756
4757 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
4758
4759         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
4760         (logb_optab, ilogb_optab): Define corresponding macros.
4761         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
4762         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
4763         using logb?f2 and ilogb?i2 patterns.
4764         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
4765         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
4766         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
4767         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4768
4769         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
4770         and UNSPEC_XTRACT_EXP.
4771
4772         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
4773         patterns to implement fxtract x87 instruction.
4774         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
4775         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
4776         intrinsics.
4777         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
4778         x87's fxtract insn.
4779
4780 2004-04-14  Eric Christopher  <echristo@redhat.com>
4781
4782         * config/mips/t-elf: Enable multilibs by default.
4783
4784 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
4785
4786         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
4787         previous fix to check HAVE_return at runtime too.
4788
4789 2004-04-14  Nick Clifton  <nickc@redhat.com>
4790
4791         * config/arm/arm.c (arm_override_options): If the user has not
4792         specified an ABI, then default to AAPCS for the iWMMXt processor.
4793         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
4794         * config/arm/t-xscale-coff: Likewise.
4795
4796 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4797
4798         * builtins.c (fold_builtin_isdigit): New.
4799         (fold_builtin): Handle BUILT_IN_ISDIGIT.
4800         * defaults.h: Add TARGET_DIGIT0 and sort.
4801         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
4802
4803 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4804
4805         * builtins.c (fold_builtin_cabs, fold_builtin): Use
4806         `mathfn_built_in' to determine the new builtin.
4807         * fold-const.c (fold): Likewise.
4808
4809 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
4810
4811         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
4812         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
4813         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
4814         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
4815         (ASM_SPEC): Update accordingly.
4816         * config/mips/mips.c: Update after above renaming.
4817         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
4818         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
4819
4820 2004-04-13  James E Wilson  <wilson@specifixinc.com>
4821
4822         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
4823         increment errorcount and return false instead of true.
4824
4825 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
4826
4827         * optabs.c (expand_twoval_unop): Reorder function arguments.
4828         * builtins.c (expand_builtin_mathfn_3): Update calls to
4829         expand_twoval_unop.
4830
4831         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
4832         and UNSPEC_TAN_TAN. Add missing comment.
4833
4834         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
4835         patterns to implement fptan x87 instruction.
4836         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
4837         and tanl built-ins as inline x87 intrinsics. Define corresponding
4838         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
4839         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
4840         x87's fptan insn.
4841
4842 2004-03-13  Richard Henderson  <rth@redhat.com>
4843
4844         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4845         for LABEL_REFs.
4846
4847         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
4848         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
4849         * doc/invoke.texi: Update to match.
4850
4851         * varasm.c (unlikely_text_section): Use assemble_align instead of
4852         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
4853         correct alignment argument.
4854
4855 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
4856
4857         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4858         after setting reg_last_reload_reg for optional output reloads.
4859
4860 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
4861
4862         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
4863         Definition of these two macros are corrected by adding
4864         matchine right paren.
4865
4866 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
4867
4868         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
4869
4870 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4871
4872         * config/i386/i386.c (output_387_reg_move): New function.
4873         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
4874         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
4875         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
4876         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
4877         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
4878
4879 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4880
4881         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
4882         TYPE_DECL.
4883         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
4884         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
4885         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
4886         Use skip_simple_arithmetic to find SAVE_EXPR.
4887         (force_type_save_exprs, force_type_save_exprs_1): New functions.
4888         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
4889         Properly chain multiple pointers.
4890         (copy_tree_r): Copy a TYPE_DECL.
4891         * tree.c (variably_modified_type_p): Add some missing tests and
4892         make some other minor changes.
4893         * tree.h (force_type_save_exprs): New declaration.
4894
4895 2004-04-12  Roger Sayle  <roger@eyesopen.com>
4896
4897         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
4898         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
4899         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
4900         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
4901         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
4902         x%-1 into 0 (or x&0 if x has side-effects).
4903
4904 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4905
4906         * config/rs6000/rs6000.md: Document why a pattern is not
4907         available.
4908
4909         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
4910         of floats on the E500.
4911         (branch_positive_comparison_operator): Do not allow NE even on the
4912         E500.
4913
4914 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
4915
4916         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
4917         in_text_unlikely_section to in_unlikely_text_section.
4918
4919 2004-04-11  Roger Sayle  <roger@eyesopen.com>
4920
4921         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
4922         calling convention to allow a NULL_TREE to be returned.  Factor
4923         sanity checks from callers, return NULL_TREE when appropriate.
4924         (fold): Handle COMPOUND_EXPR operands of binary expressions
4925         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
4926         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
4927         calls to fold_binary_op_with_conditional_arg.
4928
4929 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4930
4931         * config/mips/iris5.h (current_section_flags):  Add
4932         in_unlikely_executed_text and default case.
4933
4934 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
4935
4936         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
4937         failure on solaris. Place ifdef HAVE_return around gen_ret call.
4938         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
4939         HAVE_return and place it around the place where it is needed.
4940
4941 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
4942
4943         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
4944         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
4945         and NORMAL_TEXT_SECTION_NAME.
4946         (unlikely_text_section): Check targetm.have_named_sections
4947         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
4948         instead of SECTION_FORMAT_STRING.
4949         * config/mips/iris5.h (current_section_name): Add
4950         in_unlikely_executed_text case and move the abort into the switch.
4951         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
4952         (NORMAL_TEXT_SECTION_NAME): Remove.
4953         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
4954         (SECTION_FORMAT_STRING): Remove.
4955         * defaults.h (SECTION_FORMAT_STRING): Remove.
4956         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
4957         (SECTION_FORMAT_STRING): Remove.
4958
4959 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
4960
4961         * c-typeck.c (common_type): Prefer long long to long when same
4962         precision.
4963
4964 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
4965
4966         PR 14887
4967         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
4968         mode argument.
4969         * config/ia64/ia64.c (ia64_hpux_file_end): Check
4970         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
4971
4972 2004-04-09  Roger Sayle  <roger@eyesopen.com>
4973
4974         * simplify-rtx.c (mode_signbit_p): New function to check whether
4975         an RTX is an immediate constant that represents the most significant
4976         bit of a given machine mode.
4977         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
4978         C is the sign bit.
4979         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
4980         when C2 is the sign bit.
4981         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
4982         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
4983         sign bit.
4984
4985 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4986
4987         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
4988         TYPE_MODE.
4989
4990 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
4991
4992         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
4993         of TREE_READONLY for types.
4994
4995 2004-04-09  Caroline Tice  <ctice@apple.com>
4996
4997         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
4998         (struct basic_block_def):  Add new field, partition.
4999         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
5000         definitions.
5001         (partition_hot_cold_basic_blocks): Add extern function
5002         declaration.
5003         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
5004         include statements.
5005         (N_ROUNDS): Increase the maximum number of rounds by 1.
5006         (branch_threshold): Add array value for new round.
5007         (exec_threshold): Add array value for new round.
5008         (push_to_next_round_p): New function.
5009         (add_unlikely_executed_notes): New function.
5010         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
5011         (mark_bb_for_unlikely_executed_section): New function.
5012         (add_labels_and_missing_jumps): New function.
5013         (add_reg_crossing_jump_notes): New function.
5014         (fix_up_fall_thru_edges): New function.
5015         (find_jump_block): New function.
5016         (fix_crossing_conditional_branches): New function.
5017         (fix_crossing_unconditional_branches): New function.
5018         (fix_edges_for_rarely_executed_code): New function.
5019         (partition_hot_cold_basic_blocks): New function.
5020         (find_traces):  Add an extra round for partitioning hot/cold
5021         basic blocks.
5022         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
5023         and only cold blocks, into the last (extra) round of collecting traces.
5024         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
5025         over crossing edges.
5026         (bb_to_key):  Add code to correctly identify cold blocks when
5027         doing partitioning.
5028         (connect_traces): Modify to connect all the non-cold traces first, then
5029         go back and connect up all the cold traces.
5030         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
5031         * cfg.c (entry_exit_blocks): Add initialization for partition field in
5032         entry and exit blocks.
5033         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
5034         if we are doing hot/cold partitioning.
5035         * cfgcleanup.c (cfglayout.h): Add new include statement.
5036         (try_simplify_condjump): Modify to not attempt on blocks with jumps
5037         that cross section boundaries.
5038         (try_forward_edges): Likewise.
5039         (merge_blocks_move_predecessor_nojumps): Likewise.
5040         (merge_blocks_move_successor_nojumps): Likewise.
5041         (merge_blocks_move): Likewise.
5042         (try_crossjump_to_edge): Modify to not attempt after we have done
5043         the block partitioning.
5044         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
5045         cross section boundaries.
5046         (try_optimize_cfg): Likewise.
5047         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
5048         jumps that cross section boundaries.
5049         * cfglayout.c (flags.h): Add new include statement.
5050         (update_unlikely_executed_notes):  New function.
5051         (fixup_reorder_chain):  Add code so when a new jumping basic block is
5052         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
5053         updated appropriately.
5054         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
5055         introduced by this optimization.
5056         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
5057         extern function declaration.
5058         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
5059         list of notes that can be deleted.
5060         (create_basic_block_structure):  Add initialization for partition field.
5061         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
5062         section boundaries.
5063         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
5064         cross section boundaries.
5065         (commit_one_edge_insertion): Add code so newly created basic block
5066         ends up in correct (hot or cold) section.  Modify to disallow
5067         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5068         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
5069         crosses section boundaries.
5070         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
5071         cross section boundaries.
5072         (force_nonfallthru_and_redirect): Modify to make sure new basic block
5073         ends up in correct section, with correct notes attached.
5074         * common.opt (freorder-blocks-and-partition):  Add new flag for this
5075         optimization.
5076         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
5077         the end of functions are written into the correct (hot or cold)
5078         section.
5079         (dbx_source_file): Add code so writing debug file information
5080         doesn't incorrectly change sections.
5081         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
5082         in partitioning hot/cold basic blocks into separate sections.
5083         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
5084         section partitioning.
5085         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
5086         conditional branches can span all of memory.
5087         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
5088         unconditional branches can span all of memory.
5089         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
5090         (final_scan_insn):  Add code to check for NOTE instruction indicating
5091         whether basic block belongs in hot or cold section, and to make sure
5092         the current basic block is being written to the appropriate section.
5093         Also added code to ensure that jump table basic blocks end up in the
5094         correct section.
5095         * flags.h (flag_reorder_blocks_and_partition):  New flag.
5096         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
5097         one of the branches has a jump that crosses between sections.
5098         (find_if_case_2): Likewise.
5099         (ifcvt): Modify to not attempt to mark loop exit edges after
5100         hot/cold partitioning has occurred.
5101         * opts.c (decode_options): Code to handle new flag,
5102         flag_reorder_blocks_and_partition; also to turn it off if
5103         flag_exceptions is on.
5104         (common_handle_option): Code to handle new flag,
5105         flag_reorder_blocks_and_partition.
5106         * output.h (unlikely_text_section): New extern function declaration.
5107         (in_unlikely_text_section): New extern function declaration.
5108         * passes.c (rest_of_handle_stack_regs):  Add
5109         flag_reorder_blocks_and_partition as an 'or' condition for calling
5110         reorder_basic_blocks.
5111         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
5112         as an 'or' condition for calling reorder_basic_blocks.
5113         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
5114         * print-rtl.c (print_rtx): Add code for handling new note,
5115         NOTE_INSN_UNLIKELY_EXECUTED_CODE
5116         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
5117         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
5118         cross between section boundaries.
5119         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
5120         indicating the basic block containing it belongs in the cold section.
5121         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
5122         between hot and cold sections.
5123         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
5124         initialize this flag, and to tie it to the command-line option
5125         freorder-blocks-and-partition.
5126         * varasm.c (cfglayout.h):  Add new include statement.
5127         (unlikely_section_label_printed):  New global variable, used for
5128         determining when to output section name labels for cold sections.
5129         (in_section):  Add in_unlikely_executed_text to enum data structure.
5130         (text_section):  Modify code to use SECTION_FORMAT_STRING and
5131         NORMAL_TEXT_SECTION_NAME macros.
5132         (unlikely_text_section):  New function.
5133         (in_unlikely_text_section):  New function.
5134         (function_section):  Add code to make sure beginning of function is
5135         written into correct section (hot or cold).
5136         (assemble_start_function):  Add code to make sure stuff is written to
5137         the correct section.
5138         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
5139         to an if statement that was checking 'in_text_section'.
5140         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
5141         condition to an if statement that was checking 'in_text_section'.
5142         (default_section_type_flags_1):  Add check: if in cold section
5143         flags = SECTION_CODE.
5144         * config/darwin.c (darwin_asm_named_section):  Modify to use
5145         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
5146         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
5147         specifically for the i386.
5148         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
5149         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
5150         text string to something more informative.
5151         (NORMAL_TEXT_SECTION_NAME): Add new definition.
5152         (SECTION_FORMAT_STRING):  Add new definition.
5153         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
5154         '!in_unlikely_text_section' as an 'and' condition to an if statement
5155         that was already checking '!in_text_section'.
5156         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
5157         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
5158         sure these are properly defined for linux on ppc.
5159         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
5160         for this new flag.
5161         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
5162         reg_note.
5163         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
5164         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
5165         these new macros.
5166
5167 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5168
5169         * function.c (gen_mem_addressof): When changing the RTX from a REG
5170         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
5171
5172 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5173
5174         PR target/14888
5175         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
5176         truncxfdf2_noop): Provide dummy "fmov" implementations.
5177
5178 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
5179
5180         * gcc.c (default_compilers): Add missing initializers.
5181
5182         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5183         Return 1 if file was successfully mapped.
5184
5185 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
5186
5187         PR pch/13419
5188         PR pch/14137
5189         Radar #: 3315288
5190         * doc/invoke.texi (Precompiled Headers): Suggest -o
5191         to put an output file in a particular place.  Be more detailed
5192         about which options affect PCH validity and which options
5193         might not work.
5194         * c-pch.c (pch_matching): New.
5195         (MATCH_SIZE): New.
5196         (struct c_pch_validity): New field 'match'.
5197         (pch_init): Handle pch_matching.
5198         (c_common_valid_pch): Check pch_matching.
5199
5200         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
5201
5202 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
5203
5204         * doc/invoke.texi (Precompiled Headers): Warn about known
5205         problems.
5206
5207 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5208
5209         PR c++/14808
5210         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
5211         to 1 if ASM_OUTPUT_DEF is defined.
5212         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
5213         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
5214         Set to non-zero iff not a one_only decl.
5215
5216 2004-04-08  Paul Brook  <paul@codesourcery.com>
5217
5218         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
5219
5220 2004-04-08  Paul Brook  <paul@codesourcery.com>
5221
5222         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
5223         PROMOTE_FOR_CALL_ONLY.
5224         * config/arm/arm-protos.h (arm_function_value): Declare.
5225         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
5226         (TARGET_PROMOTE_PROTOTYPES): Return false.
5227         (arm_function_value): New function.
5228         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
5229         (FUNCTION_VALUE): Call arm_function_value.
5230         * config/cris/cris.h (PROMOTE_MODE): Rename ...
5231         (PROMOTE_FUNCTION_MODE): ... to this.
5232         (PROMOTE_FOR_CALL_ONLY): Remove.
5233         * config/mmix/mmix.h: Likewise.
5234         * config/s390/s390.h: Likewise.
5235         * config/sparc/sparc.h: Likewise.
5236         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
5237         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
5238         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
5239         (PROMOTE_FOR_CALL_ONLY): Remove.
5240
5241 2004-04-08  Joel Sherrill <joel@oarcorp.com>
5242
5243         PR ada/14538
5244         * ada/5rosinte.adb: Remove fake mprotect() body.
5245         * ada/5rosinte.ads: Add SA_SIGINFO.
5246         * ada/5rtpopsp.adb: Rewrite to use new interface.
5247         * ada/init.c: Reorder so the simple single OS conditional __rtems__
5248         is tested before more complex ones which mix UNIX and embedded
5249         systems in the conditional.
5250
5251 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
5252
5253         PR ada/14665
5254         * ada/osint.adb (Find_Program_Name): Rework to properly handle
5255         filenames which end in .exe or have versioning suffixes like VMS.
5256
5257 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
5258
5259         PR target/10129
5260         * config/darwin.c (darwin_encode_section_info): When the decl has
5261         a DECL_INITIAL, it is only defined also when it is not a common.
5262
5263 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5264
5265         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
5266         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
5267
5268 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5269
5270         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
5271         global register variables.
5272
5273 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
5274
5275         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
5276         rpc_xdr_lvalue_cast_b): New fixes.
5277         * fixinc/fixincl.x: Regenerate.
5278         * fixinc/tests/base/rpc/xdr.h: Add new tests.
5279
5280 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
5281
5282         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
5283         to power4 and power5 entries.
5284
5285 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
5286
5287         * c-common.h (pending_lang_change): Mark for PCH.
5288
5289 2004-04-07  Caroline Tice  <ctice@apple.com>
5290
5291         * gcc.c (main): Move 'break' in main loops (on an error)
5292         to wait until error processing has occurred.
5293
5294 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
5295
5296         * config.gcc: Stop changing enable_threads midstream.
5297         Replace uses of enable_threads_flag with enable_threads.
5298         * configure.ac: Replace uses of enable_threads_flag with
5299         enable_threads.  Improve autoconf quotation in one place.
5300         * configure: Regenerate.
5301
5302 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
5303
5304         * builtins.c: Implement support for sincos function.
5305         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
5306         BUILT_IN_COS{,F,L}.
5307         (expand_builtin_mathfn_3): New function.
5308         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
5309         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
5310         flag_unsafe_math_optimization is set.
5311
5312         * optabs.h (enum optab_index): Add new OTI_sincos.
5313         (sincos_optab): Define corresponding macro.
5314
5315         * optabs.c (init_optabs): Initialize sincos_optab.
5316         (expand_twoval_unop): New function.
5317
5318         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
5319         patterns.
5320
5321         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
5322         and UNSPEC_SINCOS_SIN.
5323
5324         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
5325         sincosxf3): New patterns to implement sincos, sincosf and sincosl
5326         built-ins as inline x87 intrinsics. Define splits for
5327         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
5328         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
5329         sincos patterns.
5330         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
5331         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
5332
5333         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
5334         x87's fsincos insn.
5335
5336 2004-04-06  Devang Patel  <dpatel@apple.com>
5337
5338         PR 14467
5339         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
5340
5341 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5342
5343         * doc/install.texi: Update HP-UX 11 installation procedure.
5344
5345 2004-04-06  Paul Brook  <paul@codesourcery.com>
5346
5347         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
5348
5349 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5350
5351         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
5352         when the TLS address is generated by a function call.
5353         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
5354         (tls_local_dynamic): Likewise.
5355
5356 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
5357
5358         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
5359         and TYPE_VOLATILE.
5360
5361 2004-04-05  Caroline Tice  <ctice@apple.com>
5362
5363         * gcc.c (combine_flag): New global variable, for new driver option.
5364         (struct compiler): Add two new fields, to be used when
5365         combining multiple input files in a single pass (IMA).
5366         (default_compilers):  Add values for the new fields to all
5367         compiler entries. Modify the "@c" compiler entry for doing IMA
5368         properly with "-save-temps" and the "combine" flag.
5369         (option_map):  Add new driver option, "--combine", to tell driver
5370         to pass multiple input files to compiler at one time.
5371         (have_o_argbuf_index): New global variable.
5372         (store_arg): Modify to assign value to have_o_argbuf_index.
5373         (struct infile):  Add three new fields, to help with IMA.
5374         (display_help): Add help for new "combine" option.
5375         (process_command): Remove local variable have_o; add code to check
5376         for new "combine" option; remove assignment to combine_inputs.
5377         (do_spec_1):  Modify to deal with IMA better.
5378         (main): Make variable 'lang_n_infiles' local to entire function
5379         rather than to a single block.  Use flag combine_flag to
5380         determine whether to do IMA or not; Modify loop initializing
5381         infiles to deal properly with linker files.
5382         Add code for doing preprocessing in presence of
5383         IMA with "-save-temps" flag.  Modify "main" loop to handle
5384         multiple input files, in multiple languages, with or without
5385         preprocessing,  gracefully.
5386         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5387         re-set it to same directory it's previously been set to (avoid
5388         irritating, meaningless warning messages when doing IMA with
5389         save-temps).
5390         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5391         remove documentation about IMA that is no longer accurate; Add
5392         documentation explaining what "-combine" does.
5393         * ada/lang-specs.h: Add initialization values for new fields in
5394         "struct compiler".
5395         * cp/lang-specs.h: Likewise.
5396         * f/lang-specs.h: Likewise.
5397         * java/lang-specs.h: Likewise.
5398         * objc/lang-specs.h: Likewise.
5399         * treelang/lang-specs.h: Likewise.
5400
5401 2004-04-05  David Edelsohn
5402
5403         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5404         symbol handling.
5405
5406 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5407             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5408
5409         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5410         * pa.md: Use replace_equiv_address to retain the attributes of the
5411         memory operands used in the split and peephole2 patterns for optimizing
5412         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5413
5414 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5415
5416         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5417         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5418         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5419         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5420         PARM_DECL.
5421         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5422         for a type.
5423         * print-tree.c (print_node): Properly handle side-effects, readonly,
5424         and constant flags.
5425         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5426         and TREE_CONSTANT if not a type.
5427         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5428         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5429         (NON_TYPE_CHECK): New macro.
5430         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5431
5432 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5433
5434         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5435         to DWARF2_DEBUG unconditionally.
5436         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5437
5438 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5439             Nathanael Nerode  <neroden@gcc.gnu.org>
5440
5441         PR target/14548
5442         * config.host: Set the shell variable host_can_use_collect2.
5443         Set it to yes by default, and to no for alpha*-dec-*vms*,
5444         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5445         * configure.ac: Set and substitute the shell variable collect2.
5446         Give an error if use_collect2 is yes and host_can_use_collect2 is
5447         no.
5448         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5449         uses.  Initialize to @collect2@.
5450         (STAGESTUFF): Remove $(USE_COLLECT2).
5451         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5452         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5453         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5454         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5455         * configure: Regenerate.
5456
5457 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5458
5459         * simplify-rtx.c (simplify_binary_operation): Constant fold
5460         DIV, MOD, UDIV and UMOD using div_and_round_double.
5461
5462 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5463
5464         PR c++/14804
5465         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5466         RECORD_TYPEs.
5467
5468 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5469
5470         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5471         documentation.
5472
5473 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5474
5475         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5476         updating the REG_EQUAL note on an insn's libcall_insn.
5477
5478 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5479
5480         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5481
5482 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5483
5484         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5485         with reorder_operands_p.
5486
5487 2004-04-03  Jan Hubicka  <jh@suse.cz>
5488
5489         * md.texi (vec_set, vec_extract, vec_init): Document.
5490
5491 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5492
5493        * opts.c (decode_options): Do function inlining with very small
5494        max-inline-insns-* parameters when optimizing for size.
5495
5496 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5497
5498         * config/i386/i386.h (TARGET_NOCONA): New macro.
5499         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5500         (processor_type): Add PROCESSOR_NOCONA.
5501
5502         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5503
5504         * config/i386/i386.c (nocona_cost): New variable.
5505         (m_NOCONA): New macro.
5506         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5507         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5508         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5509         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5510         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5511         x86_decompose_lea, x86_arch_always_fancy_math_387,
5512         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5513         x86_ext_80387_constants, x86_four_jump_limit):
5514         (override_options): Add nocona_cost to processor_target_table.
5515         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5516         (incdec_operand): Prevent inc/dec generation for Nocona too.
5517         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5518
5519 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5520
5521         * rtlanal.c (find_reg_note): Manually
5522         unswitch the loop.
5523
5524 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5525
5526         * genemit.c (gen_split): Change prototype of generated code.
5527         * genrecog.c (write_action): Adjust prototype for and calls to
5528         gen_split_*.
5529         * gensupport.c (struct queue_elem): Add split field.
5530         (queue_pattern): Return a value.  Clear the split field.
5531         (process_rtx): Maintain an association between an insn and the
5532         split generated from it for a define_insn_and_split.
5533         (process_one_cond_exec): Generate a new split for a
5534         define_insn_and_split.
5535         * config/arm/arm-protos.h (arm_split_constant): Add insn
5536         parameter.
5537         (emit_constant_insn): New function.
5538         (arm_gen_constant): Use it.
5539         * config/arm/arm.md: Adjust calls to arm_split_constant.
5540
5541 2004-04-02  Jan Hubicka  <jh@suse.cz>
5542
5543         * cgraph.c: Add overall comment.
5544         (cgraph_inline_hash): New global variable.
5545         (cgraph_create_node): Break out from ...
5546         (cgraph_node): ... here.
5547         (cgraph_edge): New function.
5548         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5549         (cgraph_remove_edge): Accept edge, intead of source and destination.
5550         (cgraph_redirect_edge_callee): New.
5551         (cgraph_remove_node): Update all new datastructures.
5552         (cgraph_record_call, cgraph_remove_call): Kill.
5553         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5554         (dump_cgraph): ... here.
5555         (cgraph_function_possibly_inlined_p): Use new hashtable.
5556         (cgraph_clone_edge, cgraph_clone_node): New.
5557         * cgraph.h: Include hashtab.h
5558         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5559         fields, add inlined_to pointer.
5560         (cgraph_node): Add pointer to next_clone.
5561         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5562         (cgraph_remove_call, cgraph_record_call): Kill.
5563         (cgraph_inline_hash): Declare.
5564         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5565         cgraph_redirect_edge_callee): Declare.
5566         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5567         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5568         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5569         * cgraphunit.c: Add overall comment.
5570         (cgraph_optimize_function): Kill.
5571         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5572         (cgraph_finalize_function): Update call of cgraph_remove_node
5573         (record_call_1): Record call sites.
5574         (cgraph_create_edges): Accept node instead of decl argument.
5575         (error_found): New static variable.
5576         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5577         (cgraph_analyze_function): Update for new datastructures.
5578         (cgraph_finalize_compilation_unit): Plug memory leak.
5579         (cgraph_optimize_function): Kill.
5580         (cgraph_expand_function): Do not use cgraph_optimize_function.
5581         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5582         cgraph_inlined_callees): Kill.
5583         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5584         clones.
5585         (estimate_growth): Simplify.
5586         (cgraph_clone_inlined_nodes): New function.
5587         (cgraph_mark_inline_edge): Re-implement.
5588         (cgraph_mark_inline): Likewise.
5589         (cgraph_check_inline_limits): Simplify.
5590         (cgraph_recursive_inlining_p): New.
5591         (update_callee_keys): Break out from ...
5592         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5593         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5594         Likewise.
5595         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5596         list.
5597         (cgraph_preserve_function_body_p): New predicate.
5598         (cgraph_optimize): Verify cgraph.
5599         * function.h (struct function): Add fields saved_tree/saved_args.
5600         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5601         * toplev.c (rest_of_compilation): Do not free cfun.
5602         * tree-inline.c: Include function.h
5603         (struct inline_data): Add saving_p field; replace decl/current_decl by
5604         node/current_node.
5605         (insert_decl_map): New function.
5606         (copy_body_r): Handle saving; update cgraph datastructure.
5607         (copy_body): Handle recursive inlining.
5608         (initialize_inlined_parameters): Likewise.
5609         (expand_call_inline): Propagate node attributes; update cgraph.
5610         (optimize_inline_calls): Verify that datastructure still match.
5611         (save_body): New function.
5612         * tree-inline.h (save_body): New.
5613         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5614         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5615         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5616
5617 2004-04-01  Serge Belyshev  <1319@bot.ru>
5618
5619         PR target/14702
5620         * config/i386/i386.md: fix source operand constraints in
5621         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5622
5623 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5624
5625         * fold-const.c (folda): Preserve types of comparisons.
5626
5627 2004-04-01  Richard Henderson  <rth@redhat.com>
5628
5629         * toplev.c (backend_init): Move init_optimization_passes call ...
5630         (lang_dependent_init): ... here.
5631
5632 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5633             Jakub Jelinek  <jakub@redhat.com>
5634
5635         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5636         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5637         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5638         * configure: Rebuilt.
5639         * config.in: Rebuilt.
5640         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5641         (stage2-start, stage3-start, stage4-start): Likewise.
5642         (stageprofile-start, stagefeedback-start): Likewise.
5643
5644 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5645
5646         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5647         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5648         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5649         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5650         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5651         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5652         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5653         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5654         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5655         * config/sparc/t-linux: Removed.
5656
5657 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5658
5659         PR c++/14755
5660         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5661         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5662
5663 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5664
5665         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5666         * stor-layout.c (layout_decl): Likewise.
5667         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5668         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5669         * print-tree.c (print_node): Handle various used of unsigned_flag.
5670         * tree.def (BIT_FIELD_REF): Update comment.
5671         * tree.h (TREE_UNSIGNED): Deleted.
5672         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5673
5674 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5675
5676         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5677         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5678         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5679         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5680         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5681         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5682         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5683         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5684         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5685         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5686         REAL_TYPE, not INTEGER_TYPE.
5687         (layout_type, case VECTOR_TYPE): Simplify code.
5688         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5689         * tree.h: Update comments.
5690         (STRIP_NOPS): Use TYPE_UNSIGNED.
5691         (TYPE_UNSIGNED): New macro.
5692         (TYPE_TRAP_SIGNED): Remove now redundant check.
5693         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5694
5695 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5696
5697         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5698
5699 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5700
5701         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5702         Add darwin-fpsave.asm, darwin-vecsave.asm,
5703         and darwin-world.asm.
5704         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5705         as the asm files contain altivec instructions.
5706         * config/rs6000/darwin-fpsave.asm: New file.
5707         * config/rs6000/darwin-vecsave.asm: New file.
5708         * config/rs6000/darwin-world.asm: New file.
5709
5710 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5711
5712         * gengtype-yacc.y (option, stringseq): Add missing
5713         terminating semicolon.
5714
5715 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5716
5717         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5718         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5719         tls_dtprel_ha_32, tls_dtprel_ha_64,
5720         tls_dtprel_lo_32, tls_dtprel_lo_64,
5721         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5722         tls_tprel_ha_32, tls_tprel_ha_64,
5723         tls_tprel_lo_32, tls_tprel_lo_64,
5724         tls_got_tprel_32, tls_got_tprel_64,
5725         tls_tls_32, tls_tls_64): Replace register_operand with
5726         gpc_reg_operand.
5727
5728 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5729
5730         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5731         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
5732         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
5733         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
5734         *ctrdi_internal6): Replace register_operand with
5735         nonimmediate_operand.
5736
5737 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
5738
5739         * fold-const.c (fold): Reassociate multiply expression
5740         with an adjacent non-multiply expression to use
5741         architecture's multiply-add instruction.
5742
5743 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
5744
5745         * gengtype.c (create_option): New function.
5746         * gengtype.h: Prototype it.
5747         * gengtype-yacc.y (stringseq): New rule.
5748         (option): Use create_option.  Add new bare ID production.  Use
5749         stringseq, not STRING directly.
5750
5751         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
5752         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
5753         * varray.h, config/alpha/alpha.c:
5754         Use new shorter form of GTY markers.
5755
5756         * doc/gty.texi: Rewrite.
5757
5758 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
5759
5760         * config/darwin.c (machopic_function_base_name):
5761         Remove current_name and getting the name of the
5762         current function.
5763
5764 2004-03-30  Nick Clifton  <nickc@redhat.com>
5765
5766         * config/arm/arm.md (thumb_jump): Reduce the backward branch
5767         range, and increase the forward branch range, to allow for
5768         the fact that the PC will be off by 4.
5769
5770 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
5771
5772         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
5773
5774 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5775
5776         * config/rs6000/rs6000.c (output_vec_const_move):
5777         Find all cases of EASY_VECTOR_15_ADD_SELF.
5778         (easy_vector_constant_add_self): Accept
5779         all vector constant loadable by vsplt* and vadd*.
5780         (easy_vector_same): Use easy_vector_splat_const.
5781         (easy_vector_const): Use easy_vector_splat_const.
5782         (easy_vector_splat_const): New function.
5783         (gen_easy_vector_constant_add_self): New function.
5784
5785         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
5786         New prototype.
5787
5788         * config/rs6000/altivec.md (movv4si splitter): Change to
5789         emit move insn with halfed vector constant.
5790         (*movv8hi splitter): Likewise.
5791         (*movv16qi splitter): Likewise.
5792
5793 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
5794
5795         PR 11591
5796         * config/rs6000/rs6000.c (rs6000_legitimate_address):
5797         Allow any offset to argument pointer in no-strict case.
5798
5799 2004-03-30  Jan Hubicka  <jh@suse.cz>
5800
5801         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
5802         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
5803         dump file in non-unit-at-a-time mode.
5804
5805 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
5806
5807         * config/cris/cris.h: Correct #ifdef to test for
5808         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
5809         HAVE_AS_MUL_BUG_ABORT_OPTION.
5810
5811 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5812
5813         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
5814         the address inside the old RTL.
5815
5816 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
5817
5818         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
5819         (struct c_binding, struct c_scope): Add chain_next
5820         attributes to GTY markers.
5821         (struct lang_identifier, struct lang_tree_node): Define
5822         here...
5823         * c-tree.h: ... not here.  No longer need to declare struct
5824         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5825         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
5826         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
5827
5828         PR 14734, 11944
5829         * c-decl.c (get_parm_info): If error_mark_node is encountered
5830         in the bindings chain, unbind and discard it; don't abort.
5831
5832 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
5833             Dorit Naishlos <dorit@il.ibm.com>
5834
5835         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
5836         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
5837
5838 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
5839
5840         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
5841
5842         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
5843         (m68hc11_attribute_table): New attribute "page0" to mark a global
5844         variable as being allocated from within page0 section.
5845         (m68hc11_encode_label): New function.
5846         (m68hc11_strip_name_encoding): New function.
5847         (m68hc11_page0_symbol_p): New function.
5848         (m68hc11_indirect_p): Accept global variables marked in page0.
5849         (m68hc11_encode_section_info): Lookup "page0" attribute.
5850
5851         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
5852         represents access to page0 variables.
5853
5854         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
5855         ("*logicalsi3_silshl16_zext"): Likewise.
5856         ("*ashldi3_const32"): Likewise.
5857         (peephole2 ashift): Likewise.
5858
5859 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5860
5861         * c-tree.h (C_DECL_REGISTER): New.
5862         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
5863         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
5864         (build_array_ref, c_mark_addressable): Set and use it.
5865         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
5866         Allow structures with volatile fields to be declared register.
5867         Don't check TREE_ADDRESSABLE before warning about taking address
5868         of register.
5869         * c-decl.c (finish_decl): Don't allow structures with volatile
5870         fields to be placed in named register.
5871         * doc/trouble.texi: Remove reference to structures with volatile
5872         fields in registers.
5873
5874 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5875
5876         * function.c (thread_prologue_and_epilogue): Move
5877         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
5878         before the epilogue.
5879
5880 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
5881
5882         * expr.c (store_constructor): Use gen_int_mode to correctly
5883         sign-extend CONST_INT value.
5884
5885 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5886
5887         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
5888         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
5889         * doc/extend.texi: Likewise.
5890
5891 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
5892
5893         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
5894           with TYPE_ORIG_SIZE_TYPE.
5895
5896 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
5897
5898         PR 14219
5899         * c-typeck.c (build_binary_op): Do not allow comparisons of
5900         vectors.
5901
5902 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
5903
5904         * config.gcc: Remove sparc-tti-*.
5905         * config/sparc/pbd.h: Delete.
5906
5907         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
5908         * config/sparc/aout.h: Likewise.
5909
5910         * config/sparc/sparc.h: Remove if 0'd code.
5911         * config/sparc/sparc.md (call): Remove if 0'd code.
5912         (call_value): Likewise.
5913         (nonlocal_goto): Likewise.
5914         (unimp_insn): Delete.
5915
5916 2004-03-25  Roger Sayle  <roger@eyesopen.com>
5917
5918         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
5919         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
5920
5921 2004-03-25  Richard Henderson  <rth@redhat.com>
5922
5923         PR 11527
5924         * c-typeck.c (pop_init_level): Emit pending init elements earlier
5925         rather than later.
5926
5927 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5928
5929         * builtins.c (fold_builtin): Fix error in last change.
5930
5931 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
5932
5933         * config/mips/mips.h: Formatting fix.
5934
5935 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5936
5937         * builtins.def: Add ctype builtins.
5938         * doc/extend.texi: Likewise.
5939
5940 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5941
5942         * builtins.c (fold_builtin): Add new builtin optimizations for
5943         sqrt and/or cbrt.
5944         * fold-const.c (fold): Likewise.
5945
5946 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
5947
5948         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
5949         (rs6000_sched_groups): New variable.
5950         (processor_target_table): Add power5.
5951         (rs6000_override_options): Set rs6000_sched_insert_nops,
5952         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
5953         from rs6000_sched_groups.
5954         (output_cbranch): Use rs6000_always_hint.
5955         (rs6000_variable_issue): Use rs6000_sched_groups.
5956         (rs6000_adjust_cost): Add CPU_POWER5.
5957         (is_microcoded_insn): Use rs6000_sched_groups.
5958         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
5959         Return 2 for POWER5 cracked instructions.
5960         (is_cracked_insn): Use rs6000_sched_groups.
5961         (is_branch_slot_insn): Use rs6000_sched_groups.
5962         (rs6000_issue_rate): Add CPU_POWER5.
5963         (rs6000_sched_finish): Use rs6000_sched_groups.
5964         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
5965         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
5966         (DEFAULT_SCHED_COSTLY_DEP): Delete.
5967         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
5968         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
5969         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
5970         * config/rs6000/power5.md: New file.
5971         * doc/invoke.texi: Add power5 option.
5972
5973 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5974
5975         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
5976         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
5977         * doc/invoke.texi: Fix a typo.
5978
5979 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
5980
5981         PR optimization/9707.
5982         * stmt.c (emit_case_nodes): Emit equality comparisons instead
5983         of recursing if both children are single-valued cases with no
5984         children.
5985
5986 2004-03-25  Paul Brook  <paul@codesourcery.com>
5987
5988         * config/arm/arm.c (vfp_print_multi): Remove.
5989         (arm_output_fldmx): New function.
5990         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
5991         (arm_expand_prologue): Update to match.
5992         (arm_get_vfp_saved_size): New Function.
5993         (arm_get_frame_offsets): Use it.
5994         (arm_output_epilogue): Use new functions.
5995
5996 2004-03-24  Richard Henderson  <rth@redhat.com>
5997
5998         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
5999         (reg_known_value, reg_known_value_size): Likewise; make static.
6000         (reg_known_equiv_p): Make static.
6001         (clear_reg_alias_info): Update for new indexing.
6002         (get_reg_known_value, set_reg_known_value): New.
6003         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
6004         (canon_rtx): Use them.
6005         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
6006         Don't play queer offsetting games with reg_known_value and
6007         reg_known_equiv_p.
6008         (end_alias_analysis): Free reg_known_value with gc.
6009         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
6010         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
6011         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
6012         functions instead.
6013
6014 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
6015
6016         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
6017         config/i386/mmintrin.h: Update copyright.
6018
6019 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6020
6021         * configure.ac: Add --enable-werror-always (for top level bootstrap
6022         support).
6023         * configure: Regenerate.
6024
6025 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
6026
6027         * objc/objc-act.c (objc_comptypes): Treat comparisons
6028         between 'Class' and '<class> *' as explicitly invalid.
6029
6030 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
6031
6032         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
6033         (-fprofile-values): Add enabled with profile-{generate,use}.
6034         (-fvpt): Same.
6035         (-ftracer): Add enabled with profile-use.
6036         (-funit-at-a-time): Add enabled at -O2,-O3.
6037         (-funroll-loops): Add enabled with profile-use.
6038         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
6039         (max-gcse-passes): Mention default.
6040         (max-cse-path-length): Mention default.
6041
6042 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6043
6044         * Makefile.in (STRICT2_WARN): Reorder.
6045         * configure.ac: Check for -Wold-style-definition, and use it
6046         in strict1_warn if it's available.
6047         * configure: Regnerate.
6048
6049 2004-03-24  Paul Brook  <paul@nowt.org>
6050
6051         * config.gcc <arm>: Add --with-abi=
6052         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
6053         thumb_far_jump_used): Remove prototypes.
6054         (arm_needs_doubleword_align): Add prototype.
6055         (thumb_compute_initial_elimination_offset): Ditto.
6056         * config/arm/arm.c (arm_get_frame_offsets): New function.
6057         (use_return_insn, output_return_instruction, arm_output_epilogue,
6058         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
6059         arm_expand_prologue, thumb_expand_epilogue): Use it.
6060         (arm_abi, target_abi_name, all_arm_abis): New variables.
6061         (arm_override_options): Set them.  Set structure padding for AAPCS.
6062         (arm_return_in_memory): Update ABI check.
6063         (arm_init_cumulative_args): Initialize can_split.
6064         (arm_needs_doubleword_align): New function.
6065         (arm_function_arg): Don't split args after pushing to stack. Handle
6066         doubleword/even reg alignment.
6067         (arm_va_arg): Handle all doubleword aligned args.
6068         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
6069         on ABI, not CPU.
6070         (arm_compute_save_reg0_reg12_mask): Fix comment.
6071         (thumb_get_frame_size, thumb_get_frame_size): Remove.
6072         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
6073         value for alignment.
6074         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
6075         to match.
6076         (thumb_compute_initial_elimination_offset): New function.
6077         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
6078         unneccessary rounding.
6079         * config/arm/arm.h (target_abi_name): Declare.
6080         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
6081         arm_abi_type, ARM_DEFAULT_ABI): Define.
6082         (ARM_FLAG_ATPCS): Remove.
6083         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
6084         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
6085         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
6086         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
6087         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
6088         Contitionalize on ABI, not CPU.
6089         (struct arm_stack_offsets): Define.
6090         (struct machine_function): Add stack_offsets.  Remove frame_size.
6091         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
6092         pushed.
6093         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
6094         doubleword alignment.
6095         (THUMB_INITIAL_ELIMINATION_OFFSET,
6096         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
6097         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
6098         * config/arm/arm.md (align_8): Enable for all targets.
6099         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
6100         (ARM_DEFAULT_ABI): Define.
6101         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
6102         -mstructure-size-boundary.
6103
6104 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6105
6106         * configure.ac: Check for -Wno-variadic-macros; don't use
6107         -pedantic (in stage 1 or a simple 'make all') unless it's available,
6108         and if it's available, use it.  Also, clean up check for
6109         -Wno-long-long.
6110         * configure: Regenerate.
6111
6112 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6113
6114         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
6115         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
6116         (MULTILIB_DEFAULTS): Use it.
6117         (MIPS_CPU_STRING_DEFAULT): Remove.
6118         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
6119         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
6120         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
6121         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
6122         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
6123         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
6124         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
6125         accordingly.
6126
6127 2004-03-24  DJ Delorie  <dj@redhat.com>
6128             Richard Sandiford  <rsandifo@redhat.com>
6129
6130         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
6131         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
6132         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
6133         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
6134         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
6135         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
6136         if TARGET_FIX_VR4122.
6137         * config/mips/mips.md (define_attr length): Account for nops inserted
6138         after macc and dmult when using -mfix-vr4122-bugs.
6139         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
6140         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
6141         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
6142         * config/mips/vr4122-div.S: New file.
6143         * doc/invoke.texi: Document -mfix-vr4122-bugs.
6144
6145 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6146
6147         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
6148         (TARGET_MIPS4130): New macro.
6149         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
6150         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
6151         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
6152         with PROCESSOR_R4130.
6153         * config/mips/mips.md (define_attr cpu): Add r4130.
6154         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
6155
6156 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6157             Richard Sandiford  <rsandifo@redhat.com>
6158
6159         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
6160
6161 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
6162
6163         PR preprocessor/14438
6164         * cpplib.c (do_pragma): Remove line_change call after pragma
6165         handler.
6166
6167 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
6168
6169         * doc/extend.texi (ARM Built-in Functions): Replace with correct
6170         declarations.
6171
6172 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6173
6174         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
6175         if flag_unsafe_math_optimizations.
6176         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
6177         and TARGET_80387 expand using truncdfsf2_noop pattern.
6178         (truncxfsf2): Likewise using truncxfsf2_noop.
6179         (truncxfdf2): Likewise using truncxfdf2_noop.
6180         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
6181
6182 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
6183
6184         * hooks.c (hook_constcharptr_tree_null): New hook.
6185         * hooks.h (hook_constcharptr_tree_null): New prototype.
6186         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
6187         * target.h (mangle_fundamental_type): New target hook.
6188         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
6189         target hook at rs6000_mangle_fundamental_type.
6190         (rs6000_mangle_fundamental_type): New function.
6191         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
6192
6193 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
6194
6195         PR 12267, 12391, 12560, 13129, 14114, 14133
6196         * c-tree.h: Forward declare struct c_binding.  Declare
6197         c_override_bindings_to_false.  Update prototypes.
6198         (struct lang_identifier): Update comments.  Change fields to be
6199         struct c_binding *.
6200         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
6201         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
6202         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
6203         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
6204         * c-common.h: Update prototypes.
6205         * c-decl.c (struct c_scope): Update commentary.  Remove names,
6206         names_last, parms, parms_last, tags, and shadowed fields.  Add
6207         bindings and depth fields.
6208         (scope_freelist): Move to more appropriate location.
6209         (c_print_identifier): Update for changes to struct lang_identifier.
6210         (objc_mark_locals_volatile): Update for new bindings structures.
6211         (global_bindings_p): Honor c_override_global_bindings_to_false.
6212         (pushlevel): Rename to push_scope; take no arguments; use the
6213         scope_freelist; initialize scope->depth and check for overflow.
6214         (poplevel): Rename to pop_scope; totally rewritten for new bindings
6215         structures.
6216         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
6217         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
6218         Improve some commentary.  Adjust handling of forward parm decls.
6219         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
6220         Preserve C_DECL_IN_EXTERNAL_SCOPE.
6221         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
6222         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
6223         decls.  Rewrite for new bindings structures.  Improve commentary.
6224         Eliminate the copy_node call.
6225         (implicit_decl_warning): Use the "diag" idiom (as seen in
6226         locate_old_decl) to reduce code duplication; call locate_old_decl
6227         if appropriate.  Relocate to remove need for forward declaration.
6228         (implicitly_declare): Adjust for new bindings structures.  Kludge
6229         around Objective-C not-really-builtin functions.
6230         (undeclared_variable): Improve diagnostics.  If current_function_decl
6231         is nonnull but current_function_scope is null, use current_scope.
6232         Use bind.
6233         (lookup_tag): Adjust for new bindings structures.  Kludge around
6234         Objective-C's tag declarations that wind up in the external scope.
6235         (lookup_name): Adjust for new bindings structures.  Kludge around
6236         c-common.c's pseudo-typedefs that wind up in the external scope.
6237         (lookup_name_current_level): Rename lookup_name_in_scope; take a
6238         second argument indicating the scope to examine; rewrite for
6239         new bindings structures.
6240         (c_init_decl_processing): Adjust for renamed functions.  Do not
6241         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
6242         First scope pushed is the external scope, not the global scope.
6243         (builtin_function): Use bind, not pushdecl.  Adjust other bits
6244         for new data structures.  Keep track of builtins that should be
6245         made visible automatically.
6246         (start_decl): Adjust diagnostics.  Remove unnecessary call to
6247         expand_decl.
6248         (grokparms): Return 0 if arg_types is error_mark_node.
6249         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
6250         reversed sense.  Rewrite for new bindings structures.  Do not
6251         leave any decls in the scope, to prevent pop_scope from doing
6252         contradictory things with them.
6253         (finish_struct, finish_enum): Remove redundant diagnostics.
6254         (build_enumerator): Don't cascade diagnostics for error_mark_node.
6255         Mark location where -pedantic changes the meaning of the program.
6256         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
6257         parameter decls into the function's scope structure using bind.
6258         Warn here about function definitions in the wrong style.
6259         Adjust diagnostics.
6260         (store_parm_decls): Correct the determination of whether a
6261         function was defined with a prototype.
6262         (c_write_global_declarations): Operate on all file decls and on
6263         the external scope.  Split body of the loop to...
6264         (c_write_global_declarations_1): ... this new function, to avoid
6265         code duplication.
6266         (truly_local_externals, first_builtin_decl, last_builtin_decl)
6267         (make_scope, pop_scope, in_parm_level_p, set_block)
6268         (any_external_decl, record_external_decl, bind_label, getdecls)
6269         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
6270         (c_reset_state): Delete.
6271         (visible_builtins, c_override_global_bindings_to_false)
6272         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
6273         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
6274         (external_scope, binding_freelist, bind, free_binding_and_advance)
6275         (push_file_scope, pop_file_scope): New.
6276         (pushtag, pushdecl_top_level, lookup_label, declare_label)
6277         (define_label, c_make_fname_decl, finish_decl)
6278         (mark_forward_parm_decls, build_compound_literal)
6279         (grokdeclarator, start_function, check_for_loop_decls)
6280         (identifier_global_value, record_builtin_type): Minor adjustments
6281         for new bindings structures.  Improve diagnostics and commentary.
6282         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
6283         pushlevel/poplevel respectively.
6284         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
6285         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
6286         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
6287         correct loop over multiple translation units; call fatal_error if
6288         requested to compile more than one file at once.  (This disables
6289         IMA temporarily - an up-front error being preferable to a crash.)
6290         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
6291         (all actions): Adjust calls to pushlevel/poplevel.
6292         (parsing_iso_function_signature): Delete.
6293         (extdef_1): Fold into extdef.
6294         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
6295         warn here about function definitions in the wrong style.
6296         (after_tyle_declarator, parm_declarator_starttypename)
6297         (parm_declarator_nostarttypename, notype_declarator): Remove
6298         commented-out productions.
6299         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
6300         an empty TREE_LIST node.  Adjust calls to get_parm_info.
6301         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
6302         to suppress -Wold-style-definition after this error.
6303         (c_parse_file): Don't clear the binding stack or call
6304         finish_fname_decls here.  Correct comment.
6305         * c-typeck.c (same_translation_unit_p): Export.
6306         (common_type): Use c_override_global_bindings_to_false, not
6307         pushlevel/poplevel/declare_parm_level.
6308         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
6309         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
6310         and LANG_HOOKS_GETDECLS with do-nothing stubs.
6311         * objc/objc-lang.c: Likewise.
6312         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
6313         get_parm_info.
6314         (OBJC_VOID_AT_END): Delete; replace all uses
6315         with void_list_node.
6316         (generate_forward_declaration_to_string_table): Delete.
6317         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
6318
6319         * coverage.c (create_coverage): Don't pushdecl anything.
6320         * langhooks.c (lhd_clear_binding_stack): Call
6321         lang_hooks.decls.poplevel, not poplevel.
6322         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
6323         circular list rather than going into an infinite loop.
6324
6325 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
6326
6327         * optabs.c (expand_binop): When synthesizing double word rotates
6328         from single word shifts, use a new register target if the provided
6329         target is not a REG already.
6330
6331 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6332
6333         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
6334         * c-common.c (handle_mode_attribute): Add extra arg to
6335         build_pointer_type_for_mode and build_reference_type_for_mode.
6336         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
6337         for INTEGER_CST.
6338         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
6339         Chain pointers via TYPE_NEXT_PTR_TO.
6340         (build_reference_type_for_mode): Similarly.
6341         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
6342         and build_reference_type_for_mode.
6343         (tree_check4_failed): New function.
6344         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
6345         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
6346         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
6347         Add check.
6348
6349 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6350
6351         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
6352         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
6353         when both A and B are nonnegative.
6354         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
6355         nonzero.
6356
6357 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6358
6359         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
6360         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
6361
6362 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6363
6364         PR optimization/14669
6365         * fold-const.c (fold): Only unwiden integer comparisons for equality
6366         and inequality operators, or when the signedness doesn't change.
6367
6368 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6369
6370         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6371         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6372         * config/sparc/t-linux: New file.
6373
6374 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6375
6376         * gcse.c (can_assign_to_reg_p): New function, split out from...
6377         (want_to_gcse_p): ...here.
6378         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6379         the rhs of a store.
6380
6381 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6382
6383         * c-typeck.c (same_translation_unit_p): Fix pasto.
6384
6385 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6386
6387         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6388         (PARAM_MAX_SCHED_REGION_INSNS): New.
6389         * sched-rgn.c: Include params.h
6390         (MAX_RGN_BLOCKS): Delete.
6391         (MAX_RGN_INSNS): Delete.
6392         (too_large): Return bool.  Convert to PARAM_VALUE.
6393         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6394         * doc/invoke.texi (param): Document max-sched-region-blocks and
6395         max-sched-region-insns.
6396
6397 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6398
6399         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6400         for base types.
6401
6402 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6403
6404         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6405         change.
6406
6407 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6408
6409         PR c/14069
6410         * c-decl.c (finish_struct): Change type of incorrect flexible array
6411         field into error_mark_node.
6412
6413 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6414
6415         PR target/14580
6416         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6417         who are not local for Darwin PIC.
6418
6419 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6420
6421         * regrename.c (regrename_optimize): Set regs_ever_live for all
6422         registers introduced as replacement.
6423
6424 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6425
6426         PR middle-end/14470
6427         * expr.c (mark_queue): New function.
6428         (emit_insns_enqueued_after_mark): New function replacing
6429         emit_queue.  Clear the body of emitted queued insns.
6430         (emit_queue): Call emit_insns_enqueued_after_mark.
6431         (store_expr): Mark the increment queue on entry.  Emit
6432         only the incrementations queued when expanding the source.
6433
6434 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6435
6436         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6437         of top level bootstrap, and consistency).  Reindent.
6438         * configure: Regenerate.
6439
6440 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6441
6442         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6443         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6444         unnecessary casts.
6445
6446 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6447
6448         PR target/14291
6449         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6450         __MINGW32__.
6451
6452 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6453
6454         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6455         to nonimmediate_operand.
6456         ("*doloop_di"): Likewise.
6457
6458 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6459
6460         * real.h (struct real_value): Use the same type for all
6461         bitfields.  Rename exp to uexp.
6462         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6463         Adjust all uses of exp...
6464         * builtins.c: ... here, ...
6465         * emit-rtl.c: ... here, and ...
6466         * real.c: ... and here.
6467
6468 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6469
6470         * pretty-print.c (pp_base_maybe_space): New function.
6471         * pretty-print.h (pp_base_maybe_space): Declare.
6472         (pp_maybe_space): New macro.
6473
6474 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6475
6476         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6477
6478 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6479
6480         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6481         of using register multiplication cost.
6482         (expand_mult): Adapt choose_mult_variant call.
6483         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6484         of MODE; pass appropriate cost bound.  Adjust result when
6485         performing signed multiplication by a negative constant.
6486         Don't use intermediate modes larger than word_mode.
6487
6488 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6489
6490         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6491         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6492         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6493         * explow.c (expr_size): Likewise.
6494         * expr.h (placeholder_list, find_placeholder): Deleted.
6495         * expr.c (store_constructor): Likewise.
6496         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6497         (placeholder_list, find_placeholder): Deleted.
6498         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6499         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6500         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6501         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6502         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6503         Likewise.
6504         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6505         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6506         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6507         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6508         Clean up by using first_rtl_op.
6509         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6510         (substitute_placeholder_in_expr): New function.
6511         * tree.def (WITH_RECORD_EXPR): Deleted.
6512         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6513         (substitute_placeholder_in_expr): New.
6514
6515 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6516
6517         * dojump.c (prefer_and_bit_test): Fix which part of
6518         the and_test is replaced.
6519
6520 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6521
6522         * frontends.texi: Add missing line.
6523
6524 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6525             Chris Devers  <cdevers@pobox.com>
6526             Joseph S. Myers  <jsm@polyomino.org.uk>
6527
6528         * doc/frontends.texi: Rewrite.
6529         * doc/gcc.texi: Update last modification date.
6530
6531 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6532
6533         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6534         message before redirecting the edge.
6535
6536 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6537
6538         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6539         flag.
6540         * explow.c (force_not_mem): Set REG_POINTER flag according to
6541         MEM_POINTER one.
6542         * rtl.h (MEM_POINTER): New macro.
6543         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6544         for MEM_POINTER.
6545
6546 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6547
6548         PR target/13889
6549         * cse.c (fold_rtx): Avoid substituting constants into unary
6550         conversion operations.
6551
6552 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6553
6554         * fold-const.c (fold): Replace "expr" with "t".
6555
6556 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6557
6558         PR c/12373
6559         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6560         DECL_ORIGINAL_TYPE if there isn't one.
6561
6562 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6563
6564         * fold-const.c (fold): Replace "final_type" with "type".
6565         Remove variable "final_type".
6566
6567 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6568
6569         * fold-const.c (fold): Constify "type".
6570         Replace "TREE_TYPE (t)" with "type".
6571
6572 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6573
6574         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6575         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6576         via (*targetm.foo) () with targetm.foo ().
6577
6578 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6579
6580         PR other/14630
6581         * doc/install.texi: Add info directory category and entry.
6582
6583 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6584
6585         * fold-const.c (fold): Replace "t" with "tem" where it is used
6586         as a temporary variable.  Remove "orig_t" and all of its uses.
6587
6588 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6589
6590         * fold-const.c (fold): Remove variable "invert".
6591         Move the handling of relational expressions that can be folded
6592         to a constant ...
6593         (fold_relational_const): ... here.
6594         (tree_expr_nonzero_p): New.
6595
6596 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6597
6598         PR c/14635
6599         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6600         DEF_GCC_BUILTIN.
6601
6602 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6603
6604         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6605         (GTFILES): Add $(srcdir)/dojump.h.
6606         (gt-dojump.h): New dependency.
6607         * dojump.c (and_reg, and_test, shift_test): New static variables.
6608         (prefer_and_bit_test): New function.
6609         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6610
6611 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6612
6613         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6614         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6615         reorg.c, tree.h: Fix comment typos.
6616
6617 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6618
6619         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6620         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6621         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6622         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6623         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6624         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6625         targetm.foo ().
6626
6627 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6628
6629         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6630         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6631         always_inline attribute.
6632         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6633         Treat expansion as completed even if literal argument is
6634         invalid (so that other expansions are not tried in vain).
6635
6636 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6637
6638         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6639         const0_rtx.
6640
6641 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6642
6643         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6644         ...
6645         (fold_abs_const): ... here.
6646
6647 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6648
6649         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6650
6651 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6652
6653         PR target/11520
6654         * config/avr/avr.md ("call_insn"): Handle explicit integer
6655         specially.
6656         (call_value_insn): Likewise.
6657
6658 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6659
6660         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6661
6662 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6663
6664         * fold-const.c (negate_expr): Move the handling of constants
6665         ...
6666         (fold_negate_const): ... here.
6667
6668 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6669
6670         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6671         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6672         * tree.c (debug_no_type_hash): Deleted.
6673         (type_hash_canon): Abort if passed a variant.
6674         Check lang_hooks.types.hash_types.
6675         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6676         (build_array_type): Remove unnecessary allocation of pointer type.
6677         (build_complex_type): Properly qualify resulting type.
6678
6679 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6680
6681         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6682
6683 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6684
6685         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6686         (expand_mult): ...here.
6687         (extract_high_half): New, split out from expand_mult_highpart.
6688         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6689         (expand_highpart): Evaluate the cost of a shift/add sequence,
6690         then see if any of the specialized optabs are cheaper.
6691
6692 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6693
6694         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6695
6696 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6697
6698         * convert.c (convert_to_real): Add more math builtins.
6699
6700 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6701
6702         * convert.c (convert_to_real): Reformat using switch stmt.
6703
6704 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6705
6706         * c-common.c (pointer_int_sum): Do not complain about using
6707         pointers to pointers-to-members.
6708
6709 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6710
6711         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6712         have moved to the target hooks structure".
6713
6714 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6715
6716         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6717         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6718         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6719         Likewise.
6720         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6721         Likewise.
6722         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6723         rm7_fp_quick): Likewise.
6724         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6725         rm9k_fquick): Likewise.
6726         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6727         Likewise.
6728         (ir_sr70_icmp): Delete.
6729
6730 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6731
6732         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
6733         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
6734         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
6735         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
6736         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
6737         Protect with proper check.
6738         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
6739         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
6740         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
6741         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
6742         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
6743         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
6744         not TYPE_FIELDS.
6745         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
6746
6747 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
6748
6749         * gcse.c (eliminate_partially_redundant_loads): Reject change if
6750         dest is set between beginning and current insn.
6751
6752 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6753
6754         * c-decl.c (grokdeclarator): Do not complain about redeclaring
6755         visible "static" identifiers "extern" in a local scope.
6756         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
6757         post-increments/decrements.
6758
6759 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
6760
6761         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
6762         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
6763         (xtensa_va_start): Remove assignment to current_function_arg_words.
6764
6765 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
6766
6767         * alias.c (record_set): Detect the case where a register is assigned
6768         a new value that has the same base term as the old one.
6769
6770 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6771
6772         * doloop.c: Removed.
6773         * loop-doloop.c: New file.
6774         * Makefile.in (doloop.o): Remove.
6775         (loop-doloop.o): New.
6776         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
6777         * cfgloopanal.c (get_loop_level): New function.
6778         * loop-iv.c (iv_number_of_iterations): Handle case when loop
6779         is leaved immediatelly.
6780         * loop.c (strength_reduce): Do not call doloop optimization.
6781         * loop.h (LOOP_BCT): Removed.
6782         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
6783         (rest_of_handle_loop2): Call doloop_optimize_loops.
6784         (rest_of_compilation): Test for optimizations moved to
6785         rest_of_handle_loop2.
6786
6787 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
6788
6789         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
6790         for mixed mode.
6791         (rs6000_emit_prologue): Ditto.
6792         (rs6000_emit_epilogue): Ditto.
6793         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
6794         macro for mixed mode.
6795
6796 2004-03-18  Jan Hubicka  <jh@suse.cz>
6797
6798         * predict.c (propagate_freq): Compute correctly frequency of
6799         EXIT_BLOCK.
6800
6801 2004-03-17  Eric Christopher  <echristo@redhat.com>
6802
6803         * builtins.c (apply_args_size): Use reg_raw_mode.
6804         (apply_result_size): Ditto.
6805
6806 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6807
6808         PR target/14620
6809         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
6810
6811 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
6812
6813         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
6814         32-bit builds when defaulting to 32-bit.
6815
6816 2004-03-17  Jan Hubicka  <jh@suse.cz>
6817
6818         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
6819         array.
6820
6821 2004-03-17  James E Wilson  <wilson@specifixinc.com>
6822
6823         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
6824         (hazard_nop): Change type to nop.
6825         (type): Split arith into arith, shift, slt, clz.  Delete darith.
6826         Fix all uses.  Change arith to multi if more than one insn emitted.
6827         * config/mips/5400.md (ir_vr54_arith): Likewise.
6828         * config/mips/5500.md (ir_vr55_arith): Likewise.
6829         * config/mips/7000.md (rm7_int_other): Likewise.
6830         * config/mips/9000.md (rm9k_int): Likewise.
6831         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
6832
6833 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
6834
6835         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
6836         to hold the subtype tree instead of recomputing it several times.
6837
6838 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
6839
6840         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
6841         CC_INVERT.
6842         * config/mn10300/mn10300.md (cc): Remove "invert".
6843
6844 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6845
6846         * builtins.c (integer_valued_real_p): Add builtin rint.
6847         (fold_builtin): Likewise.
6848         * convert.c (convert_to_real): Likewise.
6849
6850         * convert.c (convert_to_real): Fix typos in `long double'
6851         builtins.
6852
6853 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
6854
6855         PR c++/14481
6856         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
6857         generated COMPOUND_EXPRs.
6858
6859 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6860
6861         * config/h8300/t-rtems (h8300-*-rtems*): New.
6862
6863 2004-03-16  Eric Christopher  <echristo@redhat.com>
6864
6865         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
6866
6867 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6868
6869         * config/i386/i386-protos.h: Add a prototype for
6870         ix86_reverse_condition.
6871         * config/i386/i386.c (ix86_reverse_condition): New.
6872         * config/i386/i386.h (REVERSE_CONDITION): Use
6873         ix86_reverse_condition.
6874         * config/i386/i386.md: Use ix86_reverse_condition instead of
6875         REVERSE_CONDITION.
6876
6877 2004-03-16  J. Brobecker  <brobecker@gnat.com>
6878
6879         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
6880
6881 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
6882
6883         PR bootstrap/12974
6884         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
6885
6886 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6887
6888         * c-common.c (c_common_type_for_mode): Build vector types on
6889         demand.
6890         (handle_mode_attribute): Deprecate using the mode attribute
6891         to create vector types.  Fix indentation.
6892         (vector_type_node_list): Remove.
6893         (handle_vector_size_attribute): Create vector types on demand.
6894         Strip a NON_LVALUE_EXPR from the attribute if there is one.
6895         * c-typeck.c (comptypes): Make vector types compatible if they
6896         have the same underlying mode.
6897         (convert_for_assignment): Use comptypes to convert between
6898         vector types.
6899         * tree.c (build_common_tree_nodes_2): Do not create vector types.
6900         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
6901         vector types.
6902         * tree.h: Remove vector types.
6903         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
6904         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
6905         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
6906         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
6907         * doc/extend.texi (Vector Types): Document how to use the
6908         vector_size attribute to create vectors, rather than mode.
6909
6910         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
6911         * config/i386/emmintrin.h: Likewise.
6912         * config/i386/mmintrin.h: Likewise.
6913         * config/i386/xmmintrin.h: Likewise.
6914         * config/sh/ushmedia.h: Likewise.
6915
6916 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
6917
6918         * config/freebsd-spec.h, config/arc/arc-protos.h,
6919         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
6920         config/arm/linux-gas.h, config/arm/semi.h,
6921         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
6922         config/ia64/freebsd.h, config/mips/7000.md,
6923         config/mips/9000.md, config/ns32k/ns32k-protos.h,
6924         config/sparc/pbd.h: Update copyright.
6925
6926 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
6927
6928         PR target/14577
6929         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
6930
6931 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
6932
6933         * combine.c (combine_simplify_rtx): Remove the "last"
6934         parameter and its documentation.  Adjust recursive calls.
6935         (simplify_logical): Always perform the only simplification
6936         controlled by "last", if the simplified expression is
6937         actually different.
6938         (try_combine): Do not pass the "last" parameter to
6939         combine_simplify_rtx.
6940
6941 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
6942
6943         PR target/14599
6944         * config/mips/mips.md (UNSPEC_GP): New constant.
6945         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
6946         an UNSPEC instead of (reg $gp).
6947         (mips16_gp_pseudo_reg): Change accordingly.
6948         (print_operand): Print $gp directly when handling CONST_GP_P.
6949
6950 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6951
6952         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
6953         * longlong.h: Make code 68060 clean when compiling for m68060.
6954
6955 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
6956
6957         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
6958         * doc/md.texi: Clarify description of "i" constraint.
6959
6960 2004-03-15  James E Wilson  <wilson@specifixinc.com>
6961
6962         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
6963         Split store into store, fpstore, fpidxstore.  Fix all uses.
6964         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
6965         Likewise.
6966         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
6967         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
6968         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
6969         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
6970         ir_sr70_fstore): Likewise.
6971
6972 2004-03-15  Richard Henderson  <rth@redhat.com>
6973
6974         PR middle-end/14535
6975         * except.c (collect_one_action_chain): Record action for cleanup
6976         outer of exception spec.
6977
6978 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
6979
6980         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6981         Fix the check for abort and only do the mmap if we can.
6982
6983 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
6984
6985         * config/sparc/sparc.h: Rework comments about the code model
6986         in 64-bit environment and the mode 'Pmode'.
6987         * doc/invoke.texi (SPARC options): Rework description of the
6988         different code models supported in 64-bit environment.
6989
6990 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6991
6992         * defaults.h (REVERSIBLE_CC_MODE): Define.
6993         * jump.c (reversed_comparison_code_parts): Don't check if
6994         REVERSIBLE_CC_MODE is defined.
6995
6996 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
6997
6998         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
6999         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
7000         hosthooks.h, params.h, ra-colorize.c, web.c,
7001         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
7002         config/avr/avr-protos.h, config/avr/avr.md,
7003         config/fr30/fr30-protos.h, config/fr30/fr30.md,
7004         config/h8300/fixunssfsi.c, config/i386/darwin.h,
7005         config/i386/freebsd.h, config/i386/freebsd64.h,
7006         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
7007         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
7008         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
7009         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
7010         config/pa/pa64-regs.h, config/rs6000/aix41.h,
7011         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
7012         config/sparc/aout.h, config/sparc/freebsd.h,
7013         config/sparc/litecoff.h, config/vax/vax-protos.h,
7014         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
7015         copyright.
7016
7017 2004-03-15  Paul Brook  <paul@codesourcery.com>
7018
7019         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
7020
7021 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7022
7023         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
7024         (pp_c_cv_qualifier): Document.
7025         (pp_c_space_for_pointer_operator): Likewise.
7026         (pp_c_integer_constant): Likewise.
7027         (pp_c_identifier): Likewise.
7028         (pp_c_init_declarator): Don't print function body.
7029
7030 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7031
7032         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
7033         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
7034         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
7035         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
7036         wording and grammar.
7037
7038 2004-03-14  Roger Sayle  <roger@eyesopen.com>
7039
7040         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
7041         with lang_hooks.foo ().
7042         * builtins.c (expand_builtin_va_arg): Likewise.
7043         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
7044         c_common_type_for_mode, c_common_nodes_and_builtins,
7045         handle_mode_attribute, handle_vector_size_attribute): Likewise.
7046         * c-convert.c (convert): Likewise.
7047         * c-format.c (check_format_types): Likewise.
7048         * c-objc-common.c (c_tree_printer): Likewise.
7049         * c-typeck.c (build_unary_op, build_conditional_expr,
7050         build_binary_op): Likewise.
7051         * calls.c (try_to_integrate, expand_call,
7052         emit_library_call_value_1): Likewise.
7053         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
7054         Likewise.
7055         * cgraphunit.c (record_call_1, cgraph_analyze_function,
7056         cgraph_expand_function): Likewise.
7057         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
7058         * coverage.c (build_fn_info_type, build_ctr_info_type,
7059         build_gcov_info, create_coverage): Likewise.
7060         * dbxout.c (dbxout_init): Likewise.
7061         * diagnostic.c (diagnostic_report_current_function): Likewise.
7062         * dojump.c (do_jump): Likewise.
7063         * dwarf2out.c (dwarf2_name): Likewise.
7064         * except.c (init_eh): Likewise.
7065         * explow.c (expr_size, int_expr_size): Likewise.
7066         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
7067         Likewise.
7068         * expr.c (store_expr, store_constructor, safe_from_p,
7069         expand_expr_real, do_store_flag, try_casesi): Likewise.
7070         * function.c (push_function_context_to, pop_function_context_from,
7071         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
7072         put_var_into_stack, allocate_struct_function, current_function_name):
7073         Likewise.
7074         * integrate.c (copy_decl_for_inlining, expand_inline_function):
7075         Likewise.
7076         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
7077         lhd_print_error_function): Likewise.
7078         * opts.c (handle_option, decode_options): Likewise.
7079         * passes.c (open_dump_file): Likewise.
7080         * print-tree.c (print_node): Likewise.
7081         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
7082         expand_decl_cleanup, emit_case_nodes): Likewise.
7083         * stor-layout.c (variable_size): Likewise.
7084         * toplev.c (announce_function, wrapup_global_declarations,
7085         check_global_declarations, compile_file, default_tree_printer,
7086         process_options, lang_dependent_init, finalize): Likewise.
7087         * tree-dump.c (dequeue_and_dump): Likewise.
7088         * tree-inline.c (remap_decl, remap_block, copy_body_r,
7089         initialize_inlined_parameters, declare_return_variable,
7090         inlinable_function_p, expand_call_inline, optimize_inline_calls,
7091         walk_tree, copy_tree_r): Likewise.
7092         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7093         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
7094         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
7095         variably_modified_type_p, dump_tree_statistics): Likewise.
7096         * varasm.c (assemble_variable, compare_constant, copy_constant,
7097         force_const_mem, compute_reloc_for_constant, output_constant,
7098         output_addressed_constants, initializer_constant_valid_p): Likewise.
7099
7100 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
7101
7102         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
7103
7104 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
7105
7106         * doc/install.texi: Reflect autoconf and automake version for
7107         libffi. Update autoconf version to 2.59.
7108
7109 2004-03-13  Roger Sayle  <roger@eyesopen.com>
7110
7111         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
7112         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
7113         make_range, build_range_check, fold_range_test, unextend,
7114         constant_boolean_node, fold_binary_op_with_conditional_arg,
7115         fold_truthop, fold_mathfn_compare, fold_inf_compare,
7116         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
7117         with lang_hooks.foo ().
7118
7119 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
7120
7121         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
7122
7123 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
7124
7125         * doc/install.texi: Note status of -fnew-ra.
7126
7127 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7128
7129         PR middle-end/14470
7130         * expr.c (store_expr): Call emit_queue before generating the move
7131         from the temporary to the original target.  Protect the temporary
7132         from emit_queue.
7133
7134 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
7135
7136         PR target/14533
7137         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
7138         other than UNSPEC_GOTOFF.
7139
7140 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
7141
7142         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
7143         to arm_legitimate_index_p.  Update all callers with SET as default
7144         value.
7145         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
7146         range if OUTER is a sign-extend operation on QImode.  Correctly
7147         reject shift operations on sign-extended QImode addresses.
7148         (bad_signed_byte_operand): Delete.
7149         (arm_extendqisi_mem_op): New function.
7150         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
7151         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
7152         constraints.
7153         (CONSTRAINT_LEN): New.
7154         (EXTRA_CONSTRAINT): Delete.  Replace with...
7155         (EXTRA_CONSTRAINT_STR): ... this.
7156         (PREDICATE_CODES): Remove bad_signed_byte_operand.
7157         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
7158         is now always default.
7159         (define_splits for bad sign-extend loads): Delete.
7160         (arm_extendqisi, arm_extendqisi_v5): Likewise.
7161         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
7162         Rework 'U' constraint to 'Uv'.
7163         * arm-protos.h: Remove bad_signed_byte_operand.  Add
7164         arm_extendqisi_mem_op.
7165         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
7166         Add Uq constraint.
7167
7168 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
7169
7170         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
7171         with targetm version.
7172
7173         PR target/14567
7174         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
7175         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
7176         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
7177         Update all users of RS6000_ARG_SIZE.
7178         (function_arg_advance): Count fregno using mode size.
7179         (function_arg): Handle long double split over regs and memory.
7180         (function_arg_partial_nregs): Likewise.
7181         (rs6000_va_arg): Repackage complex args.
7182
7183 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
7184
7185         PR target/14047
7186         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
7187         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
7188         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
7189
7190 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
7191
7192         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
7193         prototype.
7194         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
7195         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7196
7197 2003-03-12  Andrew Pinski  <apinski@apple.com>
7198
7199         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7200         Use ret instead of result. Use addr instead of base.
7201
7202 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
7203
7204         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
7205         fixes required by libstdc++ and update installation instructions
7206         for libstdc++.a.
7207
7208 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
7209
7210         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
7211         leading '@' on fastcall symbols before stripping suffix.
7212
7213 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7214
7215         * combine.c (unmentioned_reg_p): New function to check whether an
7216         expression is a "specialization" of another, i.e. that there are
7217         no registers or memory references mentioned in the first that don't
7218         appear in the second.
7219         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
7220         (combine_instructions): Also try combining instructions using the
7221         REG_EQUAL note from a preceding log-linked instruction.
7222
7223 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7224
7225         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
7226
7227 2004-03-12  Matt Austern  <austern@apple.com>
7228
7229         * target.h (struct gcc_target): New target hook, unwind_label.
7230         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
7231         * output.h (default_emit_unwind_label): New function.
7232         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
7233         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
7234         (TARGET_SUPPORTS_HIDDEN): New target macro.
7235         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
7236         that corresponds to this FDE.
7237         (FRAME_BEGIN_LABEL): Allow target to override default label.
7238         (output_call_frame_info): If FDEs are linknonce, then use extra
7239         indirection for FDE encoding, output a label for each FDE, and
7240         output an empty label for each function without an FDE.
7241         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
7242         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
7243         decls with DECL_ONE_ONLY set, if that macro is defined.
7244         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
7245         for a SUPPORTS_ONE_ONLY target.
7246         * config/darwin-protos.h (darwin_unique_section): Declare.
7247         (darwin_asm_named_section): Likewise.
7248         (darwin_section_type_flags): Likewise.
7249         (darwin_non_lazy_pcrel): Likewise.
7250         (darwin_emit_unwind_label): Likewise.
7251         (darwin_make_decl_one_only): Likewise.
7252         * config/darwin.c (machopic_finish): Get rid of tweak that
7253         eliminate stubs for symbols that are defined.
7254         (darwin_encode_section_info): Don't treat weak functions as defined.
7255         (darwin_make_decl_one_only): Define.
7256         (darwin_asm_named_section): Likewise.
7257         (darwin_section_type_flags): Likewise.
7258         (darwin_unique_section): Likewise.
7259         (darwin_emit_unwind_label): Likewise.
7260         (darwin_non_lazy_pcrel): Likewise.
7261         (darwin_asm_output_dwarf_delta): Difference between two labels is
7262         local only if both labels are local.
7263         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
7264         (ASM_MAKE_LABEL_LINKONCE): Likewise.
7265         (TARGET_SUPPORTS_HIDDEN): Likewise.
7266         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
7267         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
7268         (FRAME_BEGIN_LABEL): Likewise.
7269         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
7270         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7271         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
7272         (TARGET_ASM_UNIQUE_SECTION): Define.
7273         (EH_FRAME_SECTION_NAME): Define.
7274         (EH_FRAME_SECTION_ATTR): Likewise.
7275         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
7276         (TARGET_ASM_NAMED_SECTION): Likewise.
7277         (TARGET_SECTION_TYPE_FLAGS): Likewise.
7278         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
7279         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
7280         TARGET_ASM_EMIT_UNWIND_LABEL.
7281
7282 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7283
7284         * builtins.c (expand_builtin_mathfn): Add pow10* to the
7285         existing exp10* case.
7286         (expand_builtin): Likewise.
7287
7288 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
7289
7290         * doc/tm.texi (registers) <Values in Registers>: Add
7291         entry for REGMODE_NATURAL_SIZE.
7292
7293 2004-03-12  Richard Henderson  <rth@redhat.com>
7294
7295         PR target/14547
7296         * target.h (struct gcc_target): Move calls substructure before
7297         booleans.  Add split_complex_arg.
7298         * function.c (assign_parms, split_complex_args): Use it.
7299         * calls.c (expand_call): Likewise.
7300         (split_complex_values): Likewise.  Check for splittable types
7301         before allocating memory.
7302         (split_complex_types): Likewise.
7303         * system.h (SPLIT_COMPLEX_ARGS): Poison.
7304         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
7305         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
7306         * config/alpha/alpha.c (alpha_split_complex_arg): New.
7307         (TARGET_SPLIT_COMPLEX_ARG): New.
7308         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
7309         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
7310         (rs6000_override_options): Zap it for non-AIX.
7311         (rs6000_function_value): Use targetm.calls.split_complex_arg.
7312         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
7313         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
7314         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
7315         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
7316         SPLIT_COMPLEX_ARGS entry.
7317
7318 2004-03-11  Richard Henderson  <rth@redhat.com>
7319
7320         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
7321         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
7322         (alpha_emit_xfloating_arith): Update to match.
7323         (alpha_emit_xfloating_compare): Likewise.
7324         (alpha_emit_xfloating_cvt): Likewise.
7325         (alpha_emit_xfloating_libcall): Take already built symbol,
7326         mark call const.
7327         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
7328         op1 in a register.
7329
7330 2004-03-11  Richard Henderson  <rth@redhat.com>
7331
7332         PR target/14539
7333         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
7334
7335         * simplify-rtx.c (simplify_relational_operation): Fix typo.
7336
7337 2004-03-11  Richard Henderson  <rth@redhat.com>
7338
7339         PR middle-end/14477
7340         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
7341
7342 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7343
7344         PR target/14262
7345         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
7346         defined, pass small BLKmode values in registers in the low-order part.
7347
7348 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7349
7350         * combine.c (if_then_else_cond): Check for NULL return value of
7351         simplify_gen_subreg.
7352
7353 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7354
7355         PR target/14496
7356         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
7357         TARGET_SINGLE_FLOAT.
7358
7359 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
7360
7361         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
7362         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
7363         * config/ia64/ia64.c (ia64_init_libfuncs): New.
7364         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
7365
7366 2004-03-11  Roger Sayle  <roger@eyesopen.com>
7367
7368         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7369         -((int)X>>C) where C is an integer constant one bit less than the
7370         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7371         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7372
7373         * simplify-rtx.c (simplify_unary_operation): Also implement the
7374         above transformations at the RTL level.
7375
7376 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7377
7378         * real.c (encode_ibm_extended): Do round low word.
7379
7380 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7381
7382         * config/arm/arm.md (is_xscale): Comment this attribute and move
7383         it a bit further up in the file, closer to related attributes.
7384
7385 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7386
7387         * config/host-solaris.c (sol_gt_pch_use_address): Add
7388         missing terminating marker to comment.
7389
7390 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7391
7392         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7393         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7394         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7395         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7396         move_operand as source predicate in all cases.
7397         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7398         Test reg_or_0_operand.  Use move_operand as source predicate.
7399         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7400         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7401         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7402         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7403         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7404         Use move_operand as source predicate.  Remove 'K' constraint.
7405         (*movqi_internal): Likewise movqi_internal.
7406         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7407         reg_or_0_operand.  Use move_operand as source predicate.
7408         (*movsf_softfloat): Likewise movsf_internal2.
7409         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7410         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7411         (*movdf_softfloat): Likewise movdf_internal2.
7412         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7413         for DImode if !TARGET_64BIT.
7414         (mips_legitimize_move): Simplify accordingly.
7415
7416 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7417
7418         PR/14362
7419         * var-tracking.c (struct variable_def): Added field refcount.
7420         (variable_htab_free): Decrease the refcount and delete variable
7421         only if there are no more references.
7422         (unshare_variable): New function.
7423         (vars_copy_1): Increase refcount instead of copying the variable.
7424         (variable_union): Share the variables where possible, unshare
7425         the variables if needed.
7426         (variable_different_p): Return false if var1 and var2 are
7427         the same structure.
7428         (variable_was_changed): Init the refcount of new variable.
7429         (set_frame_base_location): Unshare variable if needed.
7430         (set_variable_part): Init the refcount of new variable.
7431         Unshare the variables if needed.
7432         (delete_variable_part): Unshare the variables if needed.
7433         (emit_notes_for_differences_1): Init the refcount of new variable.
7434         (vt_add_function_parameters): Do not add function parameters to
7435         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7436         (vt_initialize): Do not add frame_base_decl to IN set of
7437         ENTRY_BLOCK_PTR because it is unused anyway.
7438
7439 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7440
7441         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7442         (vars_copy): Likewise.
7443         (variable_union): Likewise.
7444         (set_variable_part): Likewise.
7445         (delete_variable_part): Likewise.
7446
7447 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7448
7449         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7450         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7451         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7452         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7453         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7454         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7455         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7456         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7457         config/stormy16/stormy16.c: Fix comment typos and formatting.
7458
7459 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7460
7461         * configure: Regenerate, since I forgot to while committing Paolo's
7462         changes.
7463
7464 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7465
7466         PR ada/14131
7467         Move language detection to the top level.
7468         * configure.ac: Remove code to detect languages,
7469         it now lives exclusively in the top level.
7470         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7471         top level, renamed to ACX_PROG_GNAT.
7472
7473 2004-03-10  Richard Henderson  <rth@redhat.com>
7474
7475         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7476         extra arguments.
7477         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7478         and host_xmake_file fragments.
7479         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7480         (gt_pch_restore): Similarly for gt_pch_use_address.
7481         (default_gt_pch_get_address): New.
7482         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7483         (default_gt_pch_use_address): Split out of gt_pch_restore.
7484         (mmap_gt_pch_use_address): Likewise.
7485         * hooks.c (hook_voidp_size_t_null): Remove.
7486         (hook_bool_voidp_size_t_false): Remove.
7487         * hooks.h: Likewise.
7488         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7489         default_ or mmap_ definitions.
7490         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7491         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7492         and gt_pch_use_address.
7493         * config/host-linux.c, config/host-solaris.c: New files.
7494         * config/x-linux, config/x-solaris: New files.
7495         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7496         Update for changed definition.
7497         (darwin_rs6000_gt_pch_use_address): Likewise.
7498         * doc/hostconfig.texi: Update docs.
7499
7500 2004-03-10  Richard Henderson  <rth@redhat.com>
7501
7502         PR c/14517
7503         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7504         except for pedantic c90 mode.
7505
7506 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7507
7508         * configure.ac: Bump AC_PREREQ to 2.59.
7509         * configure: Regenerate.
7510
7511 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7512
7513         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7514         (exp10_optab, exp2_optab): Define corresponding macros.
7515         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7516         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7517         using exp10?f2 and exp2?f2 patterns.
7518         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7519         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7520         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7521         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7522
7523         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7524         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7525         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7526
7527 2004-03-10  Anthony Green  <green@redhat.com>
7528
7529         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7530
7531 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7532
7533         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7534         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7535         __LONGDOUBLE128.
7536         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7537         TARGET_OS_AIX_CPP_BUILTINS.
7538         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7539         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7540         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7541         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7542         previous change.
7543
7544 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7545
7546         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7547
7548 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7549
7550         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7551         __LONGDOUBLE128 on AIX.
7552
7553 2004-03-10  Andrew Haley  <aph@redhat.com>
7554
7555         PR optimization/14381
7556         * function.c (expand_function_end): Emit a blockage insn before
7557         the epilogue when -fnon-call-exceptions is used.
7558
7559         * except.c (expand_start_all_catch): Make comment more accurate.
7560
7561 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7562
7563         PR target/14480
7564         * config/rs6000/t-rtems: Add missing file on branch.
7565
7566 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7567
7568         * dbxout.c (dbxout_symbol_location): Do not output references
7569         to optimized-out constant pool symbols.
7570
7571 2004-03-10  Andreas Schwab  <schwab@suse.de>
7572
7573         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7574         twon34_r.
7575
7576 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7577
7578         * alias.c (alias_sets_might_conflict_p): New.
7579         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7580         * common.opt (Wstrict-aliasing=): New.
7581         * flags.h (warn_strict_aliasing): Change type to int.
7582         * opts.c (warn_strict_aliasing): Change type to int.
7583         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7584         * tree.h (alias_sets_might_conflict_p): Declare it.
7585         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7586
7587 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7588
7589         PR bootstrap/12371
7590         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7591         (CALL_USED_REGISTERS): Likewise.
7592         (REG_CLASS_CONTENTS): Likewise.
7593         (REG_ALLOC_ORDER): New.
7594         (REGNO_REG_CLASS): Use regno_reg_class.
7595         * config/m68k/m68k.c: Add regno_reg_class array.
7596
7597 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7598
7599         * config/ia64/ia64.md (divsi3): Fix algorithm.
7600           (udivsi3): Ditto.
7601           (setf_exp_xf): Remove '*' from name.
7602         * testsuite/gcc.dg/20040309-1.c: New test.
7603
7604 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7605
7606         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7607         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7608         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7609         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7610         (sparc_aout_select_rtx_section): Don't check
7611         SUNOS4_SHARED_LIBRARIES.
7612         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7613
7614 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7615
7616         PR other/14474
7617         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7618         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7619         INTERNALS".
7620
7621 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7622
7623         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7624         (LIBGCC_SPEC): Update to match.
7625
7626 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7627
7628         * c-decl.c (last_function_parms, last_function_parm_tags)
7629         (last_function_parm_others, current_function_parms)
7630         (current_function_parm_tags, current_function_parm_others):
7631         Delete.
7632         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7633         New macros.
7634         (grokdeclarator): For function definitions, save the arg-info
7635         block from the declarator in DECL_ARGUMENTS.
7636         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7637         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7638         contains only PARM_DECLs.  Improve diagnostics.
7639         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7640         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7641         (store_parm_decls_newstyle): Take the function to operate on,
7642         and an arg-info block, as arguments; don't get anything from
7643         current_function_* globals.
7644         (store_parm_decls_oldstyle): Likewise.
7645         (store_parm_decls): Pass fndecl and its arg-info block down to
7646         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7647         argument lists through store_parm_decls_newstyle to reduce
7648         overhead.
7649         (pushdecl): Comment on the problems with the call to copy_node.
7650         Clear DECL_ARGUMENTS of the old node after copying it, if it
7651         is an arg-info block instead of a chain of decls.
7652         (start_function): Do not manipulate current_function_parm* or
7653         last_function_parm*.
7654
7655 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7656             Andrew Pinski  <pinskia@physics.uc.edu>
7657
7658         * ifcvt.c (noce_try_sign_mask): New function to transform
7659         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7660         (noce_process_if_block): Call noce_try_sign_mask.
7661
7662 2004-03-09  Andrew Pinski  <apinski@apple.com>
7663
7664         * c-typeck.c (tagged_types_tu_compatible_p):
7665         Fix typo.
7666
7667 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7668
7669         * simplify-rtx.c (simplify_const_relational_operation): New function
7670         renamed from simplify_relational_operation.
7671         (simplify_relational_operation): Change prototype to accept an
7672         additional mode argument.  Call simplify_const_relational_operation.
7673         (simplify_gen_relational): Update simplify_relational_operation call.
7674         (simplify_ternary_operation): Update simplify_relational_operation
7675         subroutine call to use simplify_const_relational_operation instead.
7676
7677         * rtl.h (simplify_const_relational_operation): Prototype here.
7678         (simplify_relational_operation): Add addtional mode argument.
7679
7680         * combine.c (combine_simplify_rtx): Update calls to
7681         simplify_relational_operation.
7682         (simplify_set): Likewise.
7683         (gen_binary): Likewise.
7684         * cse.c (fold_rtx): Likewise.
7685         * dojump.c (compare_from_rtx): Likewise.
7686         (do_compare_rtx_and_jump): Likewise.
7687         * integrate.c (subst_constants): Likewise.
7688         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7689
7690 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7691
7692         * config/m32r/m32r.md: Remove all define_peephole's.
7693
7694 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7695
7696         * config/rs6000/rs6000.md: Remove trailing whitespace.
7697
7698 2004-03-08  Eric Christopher  <echristo@redhat.com>
7699
7700         * Makefile.in (site.exp): Add libiconv variable definition.
7701
7702 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7703
7704         * configure: Regenerate for config/accross.m4 correction.
7705
7706 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7707
7708         PR target/14480
7709         * config/rs6000/t-rtems: Add missing file on branch.
7710
7711 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7712
7713         PR middle-end/14289
7714         * c-typeck.c (c_mark_addressable): A register variable should
7715         be considered global if its not automatic, i.e. TREE_PUBLIC,
7716         TREE_STATIC or DECL_EXTERNAL.
7717         * function.c (put_var_into_stack): Call abort when placing a
7718         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7719
7720 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7721
7722         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7723         ("*extendqisi2_short_displ"): Likewise.
7724
7725 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7726
7727         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7728         (comp_operator): Likewise.
7729         * config/pdp11/pdp11-protos.h: Remove corresponding
7730         prototypes.
7731
7732 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
7733
7734         * expr.c (highest_pow2_factor_for_type): Rename into
7735         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
7736         TYPE_ALIGN when the target is a COMPONENT_REF.
7737         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
7738
7739 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7740
7741         * config/rs6000/rs6000.c: Formatting fix.
7742         (legitimate_offset_address_p): Correct offset range check.
7743
7744         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
7745         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
7746         and MASK_STRING.
7747
7748 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7749
7750         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
7751         for little endian.
7752         ("ashrdi3_no_power"): Disable for little endian.
7753         (ashrdi3): Same.
7754
7755 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7756
7757         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
7758         builtins.
7759
7760 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
7761
7762         PR target/14471
7763         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
7764         case, checking for -no-mul-bug-abort option.
7765         * configure, config.in: Regenerate.
7766         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
7767         and -mno-mul-bug-workaround.
7768         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
7769         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
7770         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
7771         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
7772         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
7773         sure mulu.d is not last on cache-line.
7774         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
7775         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
7776         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
7777         (TARGET_SWITCHES): New options -mmul-bug-workaround and
7778         -mno-mul-bug-workaround.
7779         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
7780         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
7781         * config/cris/cris.c (cris_operand_extend_operator): Clarify
7782         relation to MULT in head comment.
7783         (cris_op_str): Abort for MULT.
7784         (cris_print_operand) <case '!'>: New case.
7785
7786 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
7787
7788         PR debug/11983
7789         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
7790         dw_val_class_vec.  Replace use throughout file.
7791         (dw_float_const): Delete.
7792         (dw_vec_const): New.
7793         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
7794         throughout file.
7795         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
7796         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
7797         (size_of_die): Adjust dw_val_class_vec sizing.
7798         (output_die): Output dw_val_class_vec.
7799         (insert_int, extract_int, insert_float): New functions.
7800         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
7801         Handle CONST_VECTOR.
7802         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
7803
7804 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
7805
7806         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
7807         AltiVec abi cannot co-exist.
7808
7809         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
7810
7811 2004-03-07  Jan Hubicka  <jh@suse.cz>
7812
7813         * except.c (emit_to_new_bb_before):  Break fallthru edges.
7814
7815 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
7816
7817         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
7818         ("*lshrsi3"): Also accept an immediate for 68HC12.
7819         ("*ashrsi3_const"): Likewise.
7820         ("*ashrsi3"): Likewise.
7821         ("*ashlsi3_const"): Likewise.
7822         ("*ashlsi3"): Likewise.
7823         ("cmphi_1_hc12"): Compare two hard register by pushing them and
7824         comparing with a pop; don't use a split for that.
7825         ("cmphi split"): Disable compare split for 68HC12.
7826
7827         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
7828         the status operands if they have side effects.
7829
7830 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
7831
7832         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
7833         definition.
7834         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
7835         config/h8300/h8300.h, config/ia64/ia64.h,
7836         config/mcore/mcore.h, config/mmix/mmix.h,
7837         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7838         config/stormy16/stormy16.h, config/v850/v850.h,
7839         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
7840         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
7841         definition.
7842
7843 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7844
7845         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
7846         <XOR_EXPR>: Fold x ^ x as zero.
7847         <AND_EXPR>: Fold x & x as x.
7848
7849 2004-03-07  Roger Sayle  <roger@eyesopen.com>
7850
7851         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
7852         "foo++ == const" into "++foo == const+incr".
7853
7854 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
7855
7856         * config/mips/mips.c (mips_in_small_data_p): Return false if
7857         TARGET_ABICALLS.
7858
7859 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
7860
7861         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
7862         the stack register.
7863         (expand_prologue): Don't make an interrupt or a trap handler a far
7864         symbol.
7865         (m68hc11_initial_elimination_offset): Likewise.
7866
7867 2004-03-06  Richard Henderson  <rth@redhat.com>
7868
7869         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
7870
7871 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7872
7873         * config/ns32k/ns32k-protos.h: Add a prototype for
7874         ns32k_notice_update_cc.
7875         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
7876         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
7877         ns32k_notice_update_cc.
7878
7879 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
7880
7881         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
7882         "*load_multiple_si"): Allow only if reload_completed.
7883         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
7884         Likewise.
7885
7886 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
7887
7888         * config/vax/vax-protos.h: Add a prototype for
7889         vax_notice_update_cc.
7890         * config/vax/vax.c (vax_notice_update_cc): New.
7891         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
7892         vax_notice_update_cc.
7893
7894 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
7895
7896         * collect2.c (main): Only export initfunc and finifunc if
7897         LD_INIT_SWITCH not defined.
7898         (scan_prog_file): Only export constructors and destructors if
7899         LD_INIT_SWITCH not defined.  Only export symbols not found in
7900         shared objects.
7901
7902 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7903
7904         * pa.md (icacheflush): Reorder operands to make match_scratch operand
7905         last.
7906         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
7907         from calls to gen_icacheflush.
7908
7909 2004-03-06  Richard Henderson  <rth@redhat.com>
7910
7911         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
7912         (TARGET_LONG_DOUBLE_128): New.
7913         (TARGET_SWITCHES): Add long-double-{128,64}.
7914         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
7915         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
7916         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
7917         (WIDEST_HARDWARE_FP_SIZE): New.
7918         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
7919         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
7920         if TARGET_VAX_FLOAT.
7921         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
7922         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
7923
7924 2004-03-06  Richard Henderson  <rth@redhat.com>
7925
7926         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
7927         botched rtx class conversion.
7928
7929 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7930
7931         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
7932         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
7933
7934         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
7935         macros.
7936         * fold-const.c (fold_mathfn_compare, fold): Likewise.
7937
7938 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
7939
7940         PR target/14343
7941         * config/i386/i386.md (movv2di_internal): Conditionalize on
7942         TARGET_SSE, not TARGET_SSE2.
7943
7944 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
7945
7946         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
7947         duplicated line.
7948
7949 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7950
7951         * builtins.c: Consistently use logN not log* in comments.
7952
7953 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7954
7955         * rtl.h (mem_expr_equal_p): Function prototype added.
7956         * cfgcleanup.c (merge_memattrs): New function.
7957         (flow_find_cross_jump): Call merge_memattrs for matching insns.
7958         * emit-rtl.c (mem_expr_equal_p): New function.
7959
7960 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
7961
7962         * objc/objc-act.c (synth_module_prologue): Const-qualify
7963         objc_selector type if using the GNU runtime; fix generated
7964         signatures for objc_msg_lookup and objc_msg_lookup_super
7965         to match what GNU ObjC headers provide; reformat and clean up.
7966         (synth_self_and_ucmd_args): Use previously constructed (and
7967         hence possibly const-qualified) objc_selector type.
7968
7969 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
7970
7971         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
7972
7973 2004-03-05  Jason Merrill  <jason@redhat.com>
7974
7975         * tree.h (TYPE_HASH): Use TYPE_UID.
7976         (TREE_HASH): New macro with old definition of TYPE_HASH.
7977         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
7978         (build_array_type, build_function_type): Likewise.
7979         (build_method_type_directly): Likewise.
7980         (build_offset_type, build_complex_type): Likewise.
7981         (type_hash_list, attribute_hash_list): Likewise. Now static.
7982         * except.c: s/TYPE_HASH/TREE_HASH/.
7983
7984 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
7985
7986         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
7987         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
7988         __va_ndx by 2 words when referencing an argument on the stack.
7989         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
7990         words when an arg on the stack is first seen.
7991
7992 2004-03-05  Paul Brook  <paul@codesourcery.com>
7993
7994         * arm.h (ARM_FLAG_VFP): Remove.
7995         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
7996         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
7997
7998 2004-03-05  Paul Brook  <paul@codesourcery.com>
7999
8000         * function.c (assign_parms): Include pretend alignment offset.
8001
8002 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8003
8004         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
8005         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
8006
8007 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
8008
8009         * configure.ac: When passing --enable-languages to subdir
8010         configure when host != build, make sure we don't pass an empty
8011         value.
8012         * configure: Regenerate.
8013
8014 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
8015
8016         PR 13577
8017         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
8018         options.
8019
8020 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8021
8022         * simplify-rtx.c (simplify_relational_operation): If
8023         flag_wrapv is set, do not move terms between the two
8024         side of a relational operator.
8025
8026 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8027
8028         * rtlanal.c: Include target.h and output.h
8029         (rtx_cost, address_cost, default_address_cost): Move from...
8030         * cse.c (rtx_cost, address_cost, default_address_cost):
8031         ... this file.
8032         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
8033         * Makefile.in: Adjust dependencies.
8034
8035 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
8036
8037         * cse.c (cse_end_of_basic_block): Make static.
8038         * local-alloc.c (function_invariant_p): Move to
8039         reload1.c.
8040         * loop.c (libcall_other_reg, record_excess_regs):
8041         Make static.
8042         * reload1.c (function_invariant_p): Moved here
8043         from local-alloc.c, made static.
8044         * rtl.h (cse_end_of_basic_block, function_invariant_p,
8045         libcall_other_reg, record_excess_regs): Remove
8046         declarations.
8047
8048 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8049
8050         * config/m32r/m32r.c (signed_comparison_operator): Add a
8051         missing parenthesis.
8052
8053 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
8054
8055         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
8056         going to call mmap again.  Read the file into the right place.
8057         Give a fatal error if we have to relocate.
8058
8059 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
8060
8061         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
8062         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
8063
8064 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
8065
8066         PR other/14354
8067         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
8068         round the same.  When rounding, clear bits that would cause a
8069         second rounding in pack_d.
8070         (_fpmul_parts): Ditto.  Remove #if 0:d code.
8071
8072 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
8073
8074         PR c++/14425, c++/14426
8075         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
8076         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
8077         Change C++ definitions to accept a 'const int' argument;
8078         the prototypes already do.
8079         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
8080         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
8081         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
8082         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
8083         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
8084         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
8085         end in ..._int; change them to accept an int instead of a char
8086         as the last parameter.
8087
8088 2004-03-04  Phil Edwards  <phil@codesourcery.com>
8089
8090         * genmultilib:  Change '=' to '-' when translating option names
8091         to directory names.
8092
8093 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8094
8095         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
8096         stack slot for temp used for result of BLKmode but in integral mode.
8097
8098 2004-03-04  Jan Hubicka  <jh@suse.cz>
8099
8100         * reload.c (find_reloads): Reorganize if seqeunce to switch.
8101
8102         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
8103         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
8104
8105 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
8106
8107         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
8108         * testsuite/gcc.dg/20040303-1.c: New test.
8109
8110 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8111
8112         * ppro.md: Rewrite as a DFA pipeline description.
8113         * i386.md: Remove all uses of the ppro_uops attribute.
8114         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
8115         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
8116         ix86_sched_reorder, ix86_variable_issue,
8117         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
8118         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
8119         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
8120         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
8121         * athlon.md (athlon_ssecmp_load): Fix comment
8122
8123 2004-03-04  Stuart Hastings  <stuart@apple.com>
8124
8125         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
8126
8127 2004-03-04  Stuart Hastings  <stuart@apple.com>
8128
8129         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
8130         686, tell Darwin assembler to allow prefetch insns, non-empty def
8131         of SUBTARGET_OPTION_TRANSLATE_TABLE.
8132
8133 2004-03-04  DJ Delorie  <dj@redhat.com>
8134
8135         PR optimization/14282
8136         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
8137         between a call and the assignment of its return value.
8138
8139 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8140
8141         * config/h8300/h8300.c: Put a comment for every function.
8142
8143 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8144
8145         * config/h8300/h8300.md: Add comments about peephole2's.
8146
8147 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8148
8149         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
8150
8151 2004-03-04  Jan Hubicka  <jh@suse.cz>
8152
8153         * cfgcleanup.c (thread_jump): Update call of cselib_init.
8154         * cselib.c (cselib_record_memory): New static variable.
8155         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
8156         Give up on memories when asked for.
8157         (cselib_init): Accept new argument.
8158         * cselib.h (cselib_init): Update prototype.
8159         * gcse.c (local_cprop_pass): Update call of cselib_init.
8160         * loop.c (load_mems): Update call of cselib_init.
8161         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
8162         * sched-deps.c (sched_analyze): Update call of cselib_init.
8163
8164 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8165             GP <gp@qnx.com>
8166
8167         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
8168         when compiling PIC.
8169
8170 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
8171
8172         PR/14362
8173         * var-tracking.c (track_expr_p): Do not track variables which
8174         should be ignored for debugging purposes.
8175
8176 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8177
8178         * real.c (encode_ibm_extended): Don't bother rounding low double.
8179         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
8180         when fmt->pnan < fmt->p.
8181
8182 2004-03-04  Eric Christopher  <echristo@redhat.com>
8183
8184         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
8185         only range of valid arg registers and fixed_regs.
8186
8187 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8188
8189         PR target/14406
8190         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
8191         (abstf2, abstf2_internal): New define_expand.
8192
8193 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8194
8195         PR optimization/14235
8196         * expr.c (convert_move): Copy the source to a new pseudo
8197         when converting from a sub-word source to a larger-than-word
8198         register which conflicts with the source.
8199
8200 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
8201
8202         PR 13728
8203         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
8204         parameters with the same name, unless one is a forward decl.
8205         Do not issue a redundant-redeclaration warning for forward
8206         decls of parameters.
8207
8208 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8209
8210         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
8211         configuration.
8212
8213 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
8214
8215         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
8216
8217 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8218
8219         * target-def.h (TARGET_OPTF): Delete.
8220         * c-opts.c (TARGET_OPTF): Define.
8221
8222 2004-03-04  Jan Hubicka  <jh@suse.cz>
8223
8224         * cselib.c (cselib_finish): Fix another miss-application of my previous
8225         patch.
8226
8227 2004-03-03  Mike Stump  <mrs@apple.com>
8228
8229         Add framework support for darwin.
8230
8231         * c-incpath.c: Include target.h and machmode.h.
8232         (add_path): Use a consistent style for cpp_dir.  Initialize
8233         p->construct to 0.
8234         (add_cpp_dir_path): New.
8235         (register_include_chains): Add use of extra_includes callback.
8236         (hook_void_int): Add.
8237         (target_c_incpath): Add.
8238         * c-incpath.h (add_cpp_dir_path): New.
8239         (target_c_incpath_s): Add.
8240         (target_c_incpath): Add.
8241         (C_INCPATH_INIT): Add.
8242         * c-opts.c (c_common_missing_argument,
8243         c_common_handle_option): Add -F argument processing.
8244         * c.opt: Add -F argument processing.
8245         * gcc.c (trad_capable_cpp): Add -F argument processing.
8246         * cppfiles.c (find_file_in_dir): Update to use construct
8247         callback.
8248         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
8249         cpp_get_prev): New.
8250         (_cpp_find_file): Use search_path_exhausted.
8251         (make_cpp_dir): Initialize construct to 0.
8252         * cpplib.h (missing_header_cb
8253         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
8254         (cpp_callbacks): Add missing_header
8255         (cpp_dir): Add construct.
8256         * target-def.h: (TARGET_OPTF): New.
8257         * hooks.c (hook_void_int, hook_void_charptr): Add.
8258         * hooks.h (hook_void_int, hook_void_charptr): Add.
8259         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
8260         $(MACHMODE_H) dependencies.
8261         * doc/invoke.texi (Darwin Options): Document -F.
8262         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
8263         (TARGET_OPTF): Add.
8264         * fix-header.c (target_c_incpath): Add.
8265
8266         * config/darwin-c.c: Add c-incpath.h include.
8267         (using_frameworks, find_subframework_file,
8268         find_subframework_header, add_system_framework_path,
8269         frameworks_in_use, num_frameworks, max_frameworks,
8270         add_framework, find_framework, struct framework_header,
8271         framework_header_dirs, framework_construct_pathname,
8272         find_subframework_file, add_system_framework_path,
8273         add_framework_path, framework_defaults,
8274         darwin_register_frameworks, find_subframework_header): Add.
8275         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
8276         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
8277         (CPP_SPEC): Add __APPLE_CC__ support.
8278         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
8279
8280 2004-03-04  Jan Hubicka  <jh@suse.cz>
8281
8282         * cselib.c (cselib_finish): Fix miss-application of my previous
8283         patch.
8284
8285 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8286
8287         * hooks.c (hook_tree_tree_identity): New.
8288         * hooks.h: Add a prototype for hook_tree_tree_identity.
8289         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
8290         instead of MD_ASM_CLOBBERS.
8291         * system.h (MD_ASM_CLOBBERS): Poison.
8292         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
8293         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
8294         * target.h (gcc_target): Add md_asm_clobbers.
8295         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
8296         (ix86_md_asm_clobbers): New.
8297         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
8298         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
8299         TARGET_MD_ASM_CLOBBERS.
8300
8301 2004-03-03  Stuart Hastings  <stuart@apple.com>
8302
8303         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
8304
8305 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8306
8307         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
8308
8309         * config/sparc/sparc.h (ASM_FLOAT): Delete.
8310         (ASM_DOUBLE): Likewise.
8311         (ASM_LONGDOUBLE): Likewise.
8312         * config/sparc/pbd.h (ASM_INT_OP): Delete.
8313
8314 2003-03-03  Richard Henderson  <rth@redhat.com>
8315
8316         PR opt/13862
8317         * cselib.c (cselib_record_sets): Don't record multiple sets in
8318         asm insns.
8319
8320 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
8321
8322         * common.opt: Add description of the new -fgcse-after-reload flag.
8323
8324         * flags.h (flag_gcse_after_reload): Declaration of global variable.
8325
8326         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
8327         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
8328         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
8329         get_bb_avail_insn, hash_scan_set_after_reload,
8330         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
8331         gcse_after_reload, get_bb_avail_insn): New functions to implement
8332         gcse-after-reload.
8333         (gcse_after_reload_main): New function, the main entry point to
8334         gcse-after-reload.
8335
8336         * rtl.h (gcse_after_reload_main): Declaration of the new function.
8337
8338         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
8339
8340         * toplev.c (flag_gcse_after_reload): Initialization.
8341
8342         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
8343
8344         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8345         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
8346         the gcse after reload optimization.
8347
8348         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8349         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
8350         parameters.
8351
8352         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
8353
8354 2004-03-03  Nicolas Pitre <nico@cam.org>
8355
8356         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
8357         small negative values.
8358
8359 2004-03-03  Jan Hubicka  <jh@suse.cz>
8360
8361         * cselib.c (hash_table):  Remove GTY marker.
8362         (reg_values): Turn into array.
8363         (used_regs): Likewise.
8364         (n_used_regs): New static variable.
8365         (reg_values_old): Kill.
8366         (clear_table): Update uses of arrays.
8367         (cselib_lookup): Likewise.
8368         (cselib_record_set): Likewise.
8369         (cselib_init): Likewise.
8370         (cselib_finish): Likewise.
8371         (cselib_udpate_varray_sizes): Kill.
8372         * cselib.h (cselib_update_varray_sizes): Kill.
8373
8374 2004-03-03  Paul Brook  <paul@codesourcery.com>
8375
8376         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8377
8378 2004-03-03  Jan Hubicka  <jh@suse.cz>
8379
8380         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8381         Rename from ...; make statistics transparent.
8382         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8383         (loc_descriptor): New structure.
8384         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8385         add_statistics):
8386         New static function.
8387         (ggc_record_overhead, dump_statistics): New global function.
8388         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8389         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8390         from ...; accept locations
8391         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8392         ggc_realloc, ggc_alloc_typed):  ... this one.
8393         from ...; accept locations
8394         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8395         ggc_alloc_stat): Rename from ... ; pass locations
8396         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8397         ... this one.
8398         (ggc_alloc_stat): Record overehead.
8399         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8400         ggc_realloc, ggc_alloc_typed):  Turn to macros
8401         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8402         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8403         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8404         * langhooks.h (lhd_make_node): Declare.
8405         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8406         * langhooks.c (lhd_make_node): New.
8407         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8408         locations.
8409         (rtx_alloc, swallow_copy_rtx): ... this one.
8410         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8411         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8412         * toplpev.c (finalize): Dump stats.
8413         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8414         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8415         Rename from ... ; pass locators.
8416         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8417         build?,  build_decl): Declare.
8418         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8419         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8420         Declare.
8421         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8422         build?,  build_decl): New macros.
8423         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8424         * statistics.h: New file.
8425
8426 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8427             Richard Sandiford  <rsandifo@redhat.com>
8428
8429         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8430         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8431         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8432         * config/mips/mips.c (mips_output_division): Fill the branch delay
8433         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8434         TARGET_FIX_R4400.
8435         (mips_output_division): Adjust accordingly.
8436         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8437         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8438
8439 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8440
8441         * alias.c (rtx_equal_for_memref_p): Use predicates
8442         to test rtx classes and new rtx class codes, possibly
8443         splitting conditionals that tested against '<' and 'o'.
8444         * caller-save.c (save_call_clobbered_regs): Likewise.
8445         * combine.c (contains_muldiv, find_split_point, subst,
8446         combine_simplify_rtx, simplify_if_then_else,
8447         simplify_set, simplify_logical, expand_compound_operation,
8448         make_compound_operation, if_then_else_cond, known_cond,
8449         apply_distributive_law, cached_nonzero_bits,
8450         cached_num_sign_bit_copies, simplify_shift_const,
8451         gen_binary, simplify_comparison, update_table_tick,
8452         record_value_for_reg, get_lsat_value_validate): Likewise.
8453         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8454         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8455         Likewise.
8456         * emit-rtl.c (copy_insn_1): Likewise.
8457         * expr.c (force_operand): Likewise.
8458         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8459         * flow.c (notice_stack_pointer_modification_1,
8460         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8461         and_reg_cond, elim_reg_cond): Likewise.
8462         * function.c (update_epilogue_consts): Likewise.
8463         * genattrtab.c (attr_rtx_1): Likewise.
8464         * genopinit.c (gen_insn): Likewise.
8465         * integrate.c (subst_constants): Likewise.
8466         * jump.c (reversed_comparison_code_parts,
8467         reversed_comparison_code, delete_related_insns,
8468         rtx_renumbered_equal_p): Likewise.
8469         * local-alloc.c (block_alloc): Likewise.
8470         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8471         canonicalize_condition): Likewise.
8472         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8473         Likewise.
8474         * optabs.c (add_equal_node, expand_binop): Likewise.
8475         * predict.c (estimate_probability): Likewise.
8476         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8477         * recog.c (validate_replace_rtx_1, comparison_operator,
8478         offsettable_address_p, constrain_operands): Likewise.
8479         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8480         Likewise.
8481         * regclass.c (scan_one_insn): Likewise.
8482         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8483         * regrename.c (kill_autoinc_value): Likewise.
8484         * reload.c (find_reusable_reload, find_reloads,
8485         reg_overlap_mentioned_for_reload_p): Likewise.
8486         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8487         * rtl.c (copy_rtx): Likewise.
8488         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8489         * rtlanal.c (commutative_operand_precedence): Likewise.
8490         * sched-deps.c (conditions_mutex_p): Likewise.
8491         * sched-rgn.c (is_cfg_nonregular): Likewise.
8492         * simplify-rtx.c (simplify_gen_binary,
8493         simplify_gen_relational, simplify_replace_rtx,
8494         simplify_unary_operation, simplify_binary_operation,
8495         simplify_ternary_operation, simplify_rtx): Likewise.
8496         * unroll.c (reg_dead_after_loop): Likewise.
8497         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8498         print_operand): Likewise.
8499         * config/arc/arc.c (proper_comparison_operator): Likewise.
8500         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8501         Likewise.
8502         * config/avr/avr.c (_reg_unused_after): Likewise.
8503         * config/frv/frv.c (frv_ifcvt_modify_tests,
8504         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8505         * config/i386/i386.c (ix86_comparison_operator,
8506         ix86_carry_flag_operator, fcmov_comparison_operator,
8507         arith_or_logical_operator, print_operand,
8508         ix86_expand_binary_operator, ix86_binary_operator_ok):
8509         Likewise.
8510         * config/i386/i386.md: Likewise.
8511         * config/ia64/ia64.c (not_postinc_memory_operand,
8512         ia64_print_operand, update_set_flags, errata_emit_nops):
8513         Likewise.
8514         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8515         CONSTRAINT_OK_FOR_S): Likewise.
8516         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8517         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8518         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8519         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8520         Likewise.
8521         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8522         eqne_comparison_operator, signed_comparison_operator):
8523         Likewise.
8524         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8525         Likewise.
8526         * config/mmix/mmix (mmix_foldable_comparison_operator,
8527         mmix_comparison_operator): Likewise.
8528         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8529         * config/rs6000/rs6000.c (stmw_operation,
8530         branch_comparison_operator, trap_comparison_operator,
8531         ccr_bit): Likewise.
8532         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8533         * config/s390/s390.c (s390_alc_comparison,
8534         s390_slb_comparison):L Likewise.
8535         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8536         Likewise.
8537         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8538         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8539         emit_hard_tfmode_operation, reg_unused_after)
8540         * doc/md.texi, doc/rtl.texi: Likewise.
8541
8542         * ra-debug.c: Add 2004 to list of copyright years.
8543         * unroll.c: Likewise.
8544
8545         * combine.c (simplify_logical): Remove dummy test,
8546         (apply_distributive_law): Fix typo in comment.
8547         GET_CODE (x) == AND so x is a commutative binary op.
8548         * jump.c (delete_related_insns): simplify loop
8549         condition, move testing of RTX codes inside the loop.
8550         (rtx_renumbered_equal_p): do not use RTX_CODE.
8551         * rtl.c (rtx_class): Declare as enum rtx_class.
8552         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8553         Move to RTX_COMM_COMPARE class.
8554         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8555         Move to RTX_CONST_OBJ class.
8556         * rtl.h (enum rtx_class): New declaration,
8557         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8558         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8559         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8560         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8561         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8562         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8563         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8564         OBJECT_P): New macros.
8565         * config/sparc/sparc.c (noov_compare_op): Remove register
8566         from parameter.
8567
8568 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8569
8570         * target.h: Remove texi jargons in comments.
8571
8572 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8573
8574         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8575         threshold to 0x4f.
8576
8577         Revert:
8578         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8579         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8580         as well.
8581         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8582         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8583
8584 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8585
8586         * doc/md.texi (cbranchmode4): New.
8587
8588 2004-03-02  Eric Christopher  <echristo@redhat.com>
8589
8590         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8591         fix_trunc.
8592         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8593         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8594         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8595         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8596
8597 2004-03-02  Richard Henderson  <rth@redhat.com>
8598
8599         PR middle-end/11767
8600         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8601         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8602         before the compare, if flag_non_call_exceptions.
8603
8604 2004-03-02  Richard Henderson  <rth@redhat.com>
8605
8606         PR middle-end/14327
8607         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8608         emitting the label, not after.
8609
8610 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8611
8612         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8613         (m68hc11_mov_addr_mode): Likewise.
8614         (m68hc11_override_options): Initialize them based on target.
8615         (register_indirect_p): Allow a MEM for indirect addressing modes and
8616         use flags to control what is allowed.
8617         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8618         supported addressing modes.
8619         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8620         (go_if_legitimate_address_internal): Likewise.
8621         (m68hc11_indirect_p): Likewise and check the mode.
8622         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8623
8624 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8625
8626         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8627         (expand_builtin_setjmp_setup): Use
8628         targetm.builtin_setjmp_frame_value instead of
8629         BUILTIN_SETJMP_FRAME_VALUE.
8630         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8631         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8632         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8633         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8634         * targhooks.c (default_builtin_setjmp_frame_value): New.
8635         * targhooks.h: Add a prototype for
8636         default_builtin_setjmp_frame_value.
8637         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8638         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8639
8640 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8641
8642         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8643         sequences of moves.
8644         (add peepholes): New peepholes to optimize sequences adding small
8645         constants.
8646         (bset peepholes): New peepholes to transform an OR in a bset form
8647         (bclr peepholes): Likewise for bclr form.
8648         (cmp peepholes): New peepholes to avoid register copies when comparing.
8649
8650 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8651
8652         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8653         to separate push from moves.
8654         ("*pushdf_internal"): Likewise.
8655         ("*pushsf_internal"): Likewise.
8656         ("*pushsi_internal"): Likewise.
8657         ("movdi_internal"): Use define_insn_and_split; non push operand.
8658         ("movdf_internal"): Likewise.
8659         ("movsf_internal"): Likewise.
8660         ("movsi_internal"): Likewise.
8661         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8662         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8663         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8664
8665 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8666
8667         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8668         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8669         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8670         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8671         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8672         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8673         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8674         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8675         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8676         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8677         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8678
8679 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8680
8681         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8682         (SOFT_XY_REGNUM): Define.
8683         (cmp split): Use the above instead of hard coded numbers.
8684         (8-bit op split): No need to check the mode; allow Q_REG.
8685         (ashift split): Adjust the first operand if it uses the SP and we
8686         are pushing the shifted value.
8687         (plus shift split): Fix when a source is in register D+X.
8688         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8689
8690 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8691
8692         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8693         comparing with Z register.
8694
8695 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8696
8697         * cfgloop.h (struct loop_desc): Removed.
8698         (struct loop): Fields simple, desc and has_desc removed.
8699         (simple_loop_p, count_loop_iterations): Declaration removed.
8700         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8701         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8702         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8703         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8704         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8705         simple_condition_p, simple_increment, count_strange_loop_iterations,
8706         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8707         Removed.
8708         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8709
8710 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8711
8712         * genattrtab.c: Don't handle MATCH_INSN.
8713         * genrecog.c: Likewise.
8714         * gensupport.c: Likewise.
8715         * rtl.def (match_insn): Remove.
8716         * doc/md.texi (match_insn, match_insn2): Remove.
8717
8718 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8719
8720         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8721         macro results in memory allocation.
8722
8723 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8724
8725         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8726         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8727         %(fbsd_dynamic_linker),
8728         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8729         config/i386/freebsd.h
8730         * config/arm/freebsd.h: Ditto.
8731         * config/i386/freebsd.h: Ditto.
8732         * config/i386/freebsd64.h: Ditto.
8733         * config/ia64/freebsd.h: Ditto.
8734         * config/rs6000/sysv4.h: Ditto.
8735         * config/sparc/freebsd.h: Ditto.
8736
8737 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
8738
8739         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
8740
8741 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8742
8743         * rtl.def (define_combine): Remove.
8744
8745 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8746
8747         * config/h8300/h8300.md: Tweak formatting.
8748
8749 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8750
8751         * config/h8300/h8300.md (*cmphi_h8300): Rename to
8752         *cmphi_h8300_znvc.
8753         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
8754
8755 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
8756
8757         PR bootstrap/14356
8758         * gcc.c (process_command): Remove const-qualification from argv.
8759         (main): Likewise.
8760
8761 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8762
8763         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
8764         pushqi1_h8300hs_advanced.  Adjust its caller.
8765         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
8766         Adjust its caller.
8767
8768 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
8769
8770         * Makefile.in (install-libgcc, install-multilib): Pass
8771         mkinstalldirs var to libgcc.mk.
8772
8773 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8774
8775         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
8776         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
8777
8778 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
8779
8780         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
8781         * config/h8300/h8300.md: Split several peephole2's, each into
8782         two.
8783
8784 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8785
8786         * dominance.c (recount_dominator): Handle postdominators.
8787
8788 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8789
8790         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
8791         (NUM_SYMBOL_TYPES): Likewise.
8792         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
8793         (mips_unspec_address): Declare.
8794         (mips_gotoff_page, mips_gotoff_global): Delete.
8795         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
8796         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
8797         (mips_symbolic_constant_p, mips_symbolic_address_p)
8798         (mips_symbol_insns): Handle new symbol types.
8799         (general_symbolic_operand): New predicate.
8800         (mips_unspec_address): Make extern.
8801         (mips_gotoff_page, mips_gotoff_global): Delete.
8802         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
8803         Handle new symbol types.
8804         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
8805         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
8806         mips_unspec_address directly.
8807         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
8808         the documentation of -mexplicit-relocs.
8809
8810 2004-03-01  Jeff Law  <law@redhat.com>
8811
8812         * fold-const.c (fold): An equality comparison of a non-weak object
8813         against zero has a known result.  Similarly an equality comparison
8814         of the address of two non-weak, unaliased symbols has a known result.
8815
8816         * ggc-page.c (struct page_entry): New field PREV.
8817         (ggc_alloc): Update PREV field appropriately.
8818         (sweep_pages): Likewise.
8819         (ggc_free): Likewise.  Use PREV field rather than loop to
8820         improve ggc_free performance.
8821
8822 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
8823
8824         * config/mips/mips.c (mips_output_division): Use the division
8825         instruction to fill the delay slot of a zero check.
8826         (mips_idiv_insns): Adjust accordingly.
8827
8828 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
8829
8830         * config.gcc: Create a default tmake_file for linux, and use
8831         it in all but two linux clauses.  Comment those two.
8832
8833 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
8834
8835         * combine.c (try_combine):  Do not refer to is_replaced.
8836         (gen_lowpart_for_combine):  Perverse subregs now have a
8837         more politically correct name.
8838         * cse.c (cse_insn): Likewise.
8839         * jump.c: Fix bogus reference to delete_insn.
8840
8841 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
8842
8843         PR debug/14328
8844         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
8845         constants as signed values.
8846
8847         PR middle-end/13448
8848         * c-tree.h (readonly_warning): Rename to ...
8849         (readonly_error): ... this.
8850         * c-typeck.c (build_unary_op): Adjust accordingly.
8851         (readonly_warning): Rename to ...
8852         (readonly_error): ... this and issue errors, not warnings.
8853         (build_modify_expr): Call readonly_error, not readonly_warning.
8854         (c_expand_asm_operands): Likewise.
8855         * tree-inline.c (optimize_inline_calls): Do not inline functions
8856         after errors have occurred.
8857
8858 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8859
8860         * configure.ac: Rearrange some threading code for clarity;
8861         add section comment.
8862         * configure: Regenerate.
8863
8864 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8865
8866         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
8867         typos.
8868         * doc/cppopts.texi: Fix a typo.
8869
8870 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8871
8872         * config/i386/i386.md: Fix formatting.
8873
8874 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
8875
8876         * configure.ac: Add some comments delineating sections of code.
8877
8878         * doc/install.texi: Note that libada uses autoconf 2.57 also.
8879
8880         * doc/install.texi: Fix idiot typo in previous commit.
8881
8882         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
8883
8884 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8885
8886         * config/h8300/h8300.md: Add comments about peephole2's.
8887
8888 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8889
8890         * config/h8300/h8300.md: Tweak operand numbers of some
8891         peephole2's.
8892
8893 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
8894
8895         * config/h8300/h8300.md: Tweak comments about peephole2's.
8896
8897 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
8898
8899         PR middle-end/14203
8900         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
8901         instead of testing whether DECL_RTL is not NULL.
8902
8903 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8904
8905         * config/sh/sh.c: Fix formatting.
8906
8907 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8908
8909         * config/sh/sh.c: Convert to ISO-C.
8910
8911 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
8912
8913         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
8914         my previous patch.
8915
8916         * config/darwin.h (machopic_finish): Output stub even if the
8917         symbol is already defined.
8918
8919 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8920
8921         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
8922
8923 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8924
8925         * genattr.c (main): Don't define
8926         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
8927         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
8928         (DFA_PIPELINE_INTERFACE): Likewise.
8929         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
8930         (DFA_PIPELINE_INTERFACE): Likewise.
8931
8932 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
8933
8934         * config/mips/mips.md (tstsi, tstdi): Delete.
8935
8936 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8937
8938         * config/mips/mips.c (override_options): Remove an obsolete
8939         duplicate definition of the "e" constraint.
8940         * config/mips/mips.h: Update a comment accordingly.
8941
8942 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8943
8944         * config/mips/mips.md: Complete the unfinished R4000
8945         multiply/shift errata workaround.  Improve documentation.
8946         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
8947         has a hilo hazard.
8948         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
8949         (muldi3, muldi3_internal): Likewise.
8950         (muldi3_internal2): Remove, replacing with...
8951         (muldi3_mult3, muldi3_r4000): ...these new patterns.
8952         (mulsidi3): Take the errata into account.
8953         (mulsidi3_32bit): Remove, replacing with...
8954         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
8955         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
8956         (umulsidi3): Take the errata into account.
8957         (umulsidi3_32bit): Remove, replacing with..
8958         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
8959         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
8960         TARGET_FIX_R4000.
8961         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
8962         (smuldi3_highpart, umuldi3_highpart): Likewise.
8963         * doc/invoke.texi: Document the errata workaround.
8964
8965 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8966
8967         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
8968         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8969         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
8970         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
8971         * config/mips/mips.c (mips_idiv_insns): New function.
8972         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
8973         (mips_output_division): Add a workaround for the R4000 divide/shift
8974         errata.
8975         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
8976         the length of an "idiv" instruction.
8977         * doc/invoke.texi: Document the new switches.
8978
8979 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
8980
8981         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
8982         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
8983
8984 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8985
8986         PR optimization/14229
8987         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
8988
8989 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
8990
8991         * fold-const.c (fold): Strip NOPs that change the signedness
8992         for RSHIFT too.  Expand comment.
8993
8994 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
8995
8996         PR optimization/7871
8997         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
8998         from or to call insns.
8999
9000 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9001
9002         PR optimization/7871
9003         * flow.c (propagate_one_insn): Interpret calls as setting global
9004         registers, not merely clobbering them.
9005
9006 2004-02-27  Dale Johannesen  <dalej@apple.com>
9007
9008         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
9009         config/darwin-protos.h:  Ditto.
9010         config/darwin.h:  Remove call to it.
9011         * combine.c (distribute_notes): Do not place a REG_DEAD note
9012         when value is both set and used.
9013
9014 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9015
9016         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9017         as well.
9018         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9019         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9020
9021 2004-02-27  Andrew Pinski  <apinski@apple.com>
9022
9023         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
9024         Speedup common case of the type values being in the same order.
9025
9026 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
9027
9028         * config/ia64/ia64.h (no-inline-float-divide): New option.
9029         * config/ia64/ia64.h (no-inline-int-divide): New option.
9030         * config/ia64/ia64.h (no-inline-sqrt): New option.
9031         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
9032         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
9033         * config/ia64/ia64.c (ia64_override_options): Modify error
9034         checking for inlined division/sqrt.
9035
9036 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9037
9038         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
9039         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
9040         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
9041         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
9042         copyright.
9043
9044 2004-02-27  Paul Brook  <paul@codesourcery.com>
9045
9046         * function.c (assign_parms): Don't count pretend args for alignment.
9047
9048 2004-02-27  Richard Henderson  <rth@redhat.com>
9049
9050         * passes.c: New file.
9051         * Makefile.in (OBJS-common): Add it.
9052         * diagnostic.c (rtl_dump_and_exit): Move decl ...
9053         * flags.h (rtl_dump_and_exit): ... here.
9054         * output.h (size_directive_output, last_assemble_variable_decl):
9055         Move from toplev.c.
9056         * rtl.h (reg_alloc): Move from toplev.c.
9057         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
9058         struct dump_file_info, enum dump_file_index, dump_file_tbl,
9059         open_dump_file, close_dump_file, rest_of_decl_compilation,
9060         rest_of_type_compilation, rest_of_handle_final,
9061         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
9062         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
9063         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
9064         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
9065         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
9066         rest_of_handle_tracer, rest_of_handle_if_conversion,
9067         rest_of_handle_if_after_combine, rest_of_handle_web,
9068         rest_of_handle_branch_prob,
9069         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
9070         rest_of_handle_addressof, rest_of_handle_sibling_calls,
9071         rest_of_handle_jump_bypass, rest_of_handle_inlining,
9072         rest_of_handle_null_pointer, rest_of_handle_combine,
9073         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9074         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9075         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
9076         (decode_d_option): Use enable_rtl_dump_file.
9077         (compile_file, finalize, do_compile): Move profile+combine+graph
9078         cleanup to finish_optimization_passes.
9079         * toplev.h (init_optimization_passes, finish_optimization_passes,
9080         enable_rtl_dump_file): Declare.
9081
9082 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
9083             Roger Sayle  <roger@eyesopen.com>
9084
9085         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
9086         operands to build a tree with swapped operands.
9087         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
9088         'unsignedp' predicate to specify the signedness.
9089
9090 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9091
9092         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
9093         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
9094         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
9095         comment typos and formatting.  Follow spelling conventions.
9096
9097 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
9098
9099         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
9100         fix_truncsfsi2.
9101
9102         * config/rs6000/spe.md: Delete spe_efsctuiz.
9103         Add spe_fixuns_truncsfsi2.
9104         Add spe_fix_truncsfsi2.
9105
9106 2004-02-26  Eric Christopher  <echristo@redhat.com>
9107
9108         * c-lex.c (c_lex_string_translate): New variable.
9109         (lex_string): Use to determine string translation.
9110         * c-pragma.h: Prototype.
9111         * c-parse.in (start_string_translation): New. Set above.
9112         (stop_string_translation): Ditto.
9113         (attribute, attribute_list, asm_def, asm_stmt,
9114         asm_operand): Use above functions.
9115         * cp/parser.c (cp_parser_declaration): Translate strings
9116         unless token is RID_EXTERN. Set c_lex_string_translate
9117         for recursive use.
9118         (cp_parser_asm_definition): Only translate argument strings
9119         to asms.
9120         (cp_parser_asm_operand_list): Ditto.
9121         (cp_parser_attribute_list): Do not translate attribute strings.
9122
9123 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9124
9125         * stmt.c (expand_start_case_dummy): Remove.
9126         * tree.h: Remove the corresponding prototype.
9127
9128 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9129
9130         * builtins.c (apply_args_register_offset): Remove.
9131         * tree.h: Remove the corresponding prototype.
9132
9133 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9134
9135         * stor-layout.c (is_pending_size): Remove.
9136         * tree.h: Remove the corresponding prototype.
9137
9138 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9139
9140         * recog.c (validate_replace_src): Remove.
9141         * recog.h: Remove the corresponding prototype.
9142
9143 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9144
9145         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
9146         MAYBE_REG_PARM_STACK_SPACE.
9147         * function.c: Likewise.
9148         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
9149         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9150         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
9151         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9152
9153 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9154
9155         * c-decl.c (c_expand_deferred_function): Remove.
9156         * c-tree.h: Remove the corresponding prototype.
9157
9158 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9159
9160         * postreload.c (reload_cse_move2add): Generate just a PLUS
9161         instead of an entire SET.
9162
9163 2004-02-26  Jan Hubicka  <jh@suse.cz>
9164
9165         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
9166         /pentium4m.
9167         * i386.c (override_options): Add support for new CPUs.
9168         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
9169         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
9170         constants.
9171         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
9172
9173 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
9174
9175         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
9176
9177 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
9178
9179         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
9180         (sparc_emit_fixunsdi): New prototype.
9181         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
9182         (sparc_emit_fixunsdi): New function.
9183         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
9184         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
9185         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
9186         to sparc_emit_floatunsdi.
9187         (fixuns_truncsfdi2): New expander.
9188         (fixuns_truncdfdi2): Likewise.
9189
9190 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
9191
9192         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
9193         unless HAVE_cc0.
9194
9195 2004-02-25  Richard Henderson  <rth@redhat.com>
9196
9197         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
9198         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
9199         use (op0-op1) == 0 if op0 is a pointer.
9200         * config/alpha/alpha.md (cmpdi): Use some_operand.
9201         (three comparison combine splits): Remove.
9202
9203 2004-02-25  Richard Henderson  <rth@redhat.com>
9204
9205         PR c/12794
9206         * c-common.c (handle_alias_attribute): Reject the attribute if
9207         current_function_decl is set.
9208
9209 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9210
9211         * config.gcc: Add comment describing extra_gcc_objs.
9212         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
9213         * configure.ac (extra_gcc_objs): New substitution variable.
9214         (host_extra_gcc_objs): Don't substitute.
9215         * configure: Regenerate.
9216         * Makefile.in: Use extra_gcc_objs.
9217
9218 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9219
9220         * doc/contrib.texi: Add an entry for myself.
9221
9222 2004-02-25  Jan Hubicka  <jh@suse.cz>
9223
9224         * basic-block.h (make_eh_edge, break_superblocks): Declare.
9225         * cfgbuild.c (make_eh_edge):  Make global.
9226         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
9227         * except.c (build_post_landing_pads, connect_post_landing_pads,
9228         dw2_build_landing_pads, sjlj_emit_function_enter,
9229         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9230         sjlj_build_landing_pads): Update CFG.
9231         (emit_to_new_bb_before): New function.
9232         (finish_eh_generation): Do not rebuild the CFG.
9233
9234 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9235
9236         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
9237         target_cpu_default defines.
9238         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
9239         * pa.h (TARGET_DEFAULT): Likewise.
9240
9241 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9242
9243         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
9244         comparisons with regard to signedness.
9245
9246 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9247
9248         * arm.c (thumb_legitimize_address): New function.
9249         * arm-protos.h: Prototype it.
9250         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
9251         (LEGITIMIZE_ADDRESS): Use it.
9252
9253 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
9254
9255         * reload1.c (reload): Only spill eliminable register with multiple
9256         adjacent elimination alternatives if all alternatives fail.
9257
9258 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9259
9260         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
9261         is -4095...+4095 inclusive.
9262
9263 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
9264
9265         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
9266         the bootstrap failure with Sun CC 5.4 and 5.5.
9267
9268 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9269
9270         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
9271         which modifies NEWREG.
9272         (cse_condition_code_reg): Update the mode of CC_REG in
9273         CC_SRC_INSN on our own.
9274
9275 2004-02-24  Michael Matz  <matz@suse.de>
9276
9277         * config/i386/i386.c (ix86_comp_type_attributes): Check for
9278         regparm attributes.
9279
9280 2004-02-24  Richard Henderson  <rth@redhat.com>
9281
9282         * toplev.c (dump_file_tbl): Rename from dump_file.
9283         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
9284         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
9285         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
9286         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
9287         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
9288         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
9289         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
9290         s/rtl_dump_file/dump_file/g.
9291
9292 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
9293
9294         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
9295         (spe_fixuns_truncsfsi2): Delete.
9296
9297         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
9298         (fixuns_truncsfsi2): Delete.
9299
9300 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
9301
9302         PR/14240
9303         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
9304
9305 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
9306
9307         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
9308
9309 2004-02-24  Jason Merrill  <jason@redhat.com>
9310
9311         * tree.c (check_qualified_type): New fn.
9312         (get_qualified_type): Use it.  If type already has the desired
9313         quals, just return it.
9314         * tree.h: Declare it.
9315
9316 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
9317
9318         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
9319         TARGET_SCHED_FINISH_GLOBAL): New macros.
9320
9321         * target.h (md_init_global, md_finish_global): Function
9322         declarations corresponding to new target macros.
9323
9324         * haifa-sched.c (sched_init, sched_finish): Allow target to
9325         call the new schedular hooks.
9326
9327         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
9328         call to update_life_info.
9329
9330         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
9331         flag_schedule_insns for SH4.
9332
9333         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
9334         find_set_regmode_weight, find_insn_regmode_weight,
9335         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
9336         sh_variable_issue, high_pressure, ready_reorder,
9337         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
9338         functions used to throttle the insn movement in first
9339         scheduling pass for SH.
9340
9341         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
9342         TARGET_SCHED_FINISH_GLOBAL.
9343
9344 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
9345
9346         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
9347         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
9348         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
9349         symbols in sections named by the user.
9350         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
9351         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
9352         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
9353         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
9354         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
9355         the above.
9356         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
9357         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
9358         one more pseudo to further improve code generation.
9359         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
9360         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
9361         inside UNSPEC.
9362         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
9363         * config/frv/frv.c (frv_legitimate_address_p): Added
9364         allow_double_reg_p argument.  Adjust all callers.  Use it to
9365         decide whether to enable double-register indirect addressing.
9366         (frv_funcdesc_alias_set): Remove.
9367         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9368         register.  Emit movdi_ldd.
9369         (ldd_address_operand): New.
9370         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9371         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9372         (PREDICATE_CODES): Add ldd_address_operand.
9373         * config/frv/frv.md (movdi_ldd): New.
9374         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9375         intermediate computations if possible.
9376         (symGOTOFF2reg_i): Fix harmless typo.
9377         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9378         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9379         relocated p_vaddr to vaddr type.
9380         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9381         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9382         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9383         MEM, or use a funcdesc alias set.  Use regular move instead of
9384         ldd.
9385         (dbl_memory_one_insn_operand): Recognize function descriptors by
9386         type or by alias set, and don't split them.
9387         * config/frv/frv.md (call, call_value): Never use call_internal
9388         for fdpic.
9389         (call_internal, call_value_internal): Never match for FDPIC.
9390         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9391         call_value_fdpicsi): Require FDPIC.
9392         (ldd): Removed.
9393         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9394         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9395         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9396         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9397         FDPIC.  Compute data base address.
9398         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9399         before the other self-specs are processed.
9400         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9401         Build with -fPIC.
9402         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9403         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9404         inhibit_libc is defined.
9405         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9406         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9407         __FRV_FDPIC__.
9408         (__RELOC_POINTER): Define.
9409         (_Unwind_IteratePhdrCallback): Use it.
9410         * config/frv/frv.h (Twrite): Define.
9411         (TRANSFER_FROM_TRAMPOLINE): Use it.
9412         * config/frv/linux.h (INVOKE__main): Undefine.
9413         (Twrite): Override.
9414         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9415         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9416         (-mlibrary-pic): Emphasize that this option generates EABI code.
9417         (-mcpu): Add fr550.
9418         (-mpack): Remove.
9419         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9420         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9421         and CONSTs in FDPIC mode.
9422         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9423         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9424         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9425         constants.
9426         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9427         rather than 'i' constraint for the 2-instruction alternative.
9428         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9429         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9430         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9431         EXTRA_CONSTRAINT_FOR_Y.
9432         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9433         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9434         (addsi3): Change 'Y' constraint to 'Q'.
9435         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9436         * reload.c (CONST_POOL_OK_P): New macro.
9437         (find_reloads): Use it to decide whether a constant can be forced
9438         into memory.
9439         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9440         constant satisfies got12_operand.
9441         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9442         (frv_legitimate_address_p): Check for valid unspec offsets using
9443         got12_operand rather than frv_legitimate_fdpic_operand_p.
9444         (frv_legitimate_fdpic_operand_p): Delete.
9445         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9446         or after reload.
9447         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9448         TARGET_FDPIC.
9449         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9450         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9451         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9452         (frv_fdpic_fptr_operand): Don't declare here.
9453         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9454         rather than fdpic_got12_operand.
9455         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9456         got12_operand and const_unspec_operand.
9457         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9458         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9459         (symbolic_operand): Remove.
9460         (const_unspec_operand): New predicate.
9461         * config/frv/frv.md (*movsi_got): Use got12_operand.
9462         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9463         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9464         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9465         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9466         * config/frv/frv.c (frv_unspec): New structure.
9467         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9468         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9469         validate CONST indices.  Use frv_output_const_unspec to print them.
9470         (frv_print_operand): Update call to unspec_got_name.  Use
9471         frv_output_const_unspec to print constant unspecs.
9472         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9473         Reject UNSPECs otherwise.
9474         (unspec_got_name): Take the relocation number as argument, not an
9475         rtx containing it.
9476         (frv_output_addr_const_extra): Remove, replacing with...
9477         (frv_output_const_unspec): ...this new function.
9478         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9479         (gpr_or_int12_operand): Use fdpic_got12_operand.
9480         (dbl_memory_one_insn_operand): Likewise.
9481         (fdpic_got12_operand): Use frv_const_unspec_p.
9482         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9483         are already legitimate.  Use frv_small_data_reloc_p when deciding
9484         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9485         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9486         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9487         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9488         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9489         label, for real this time.
9490         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9491         representation of visibility.
9492         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9493         such.
9494         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9495         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9496         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9497         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9498         it was explicitly disabled.
9499         (frv_stack_info): There is no need to save the link register in every
9500         frame unless TARGET_LINKED_FP is true.
9501         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9502         frame pointer if the stack pointer might change value.
9503         (frv_return_addr_rtx): Check and process "count" argument.
9504         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9505         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9506         (frv_find_base_term): Declare.
9507         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9508         (FIND_BASE_TERM): Define.
9509         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9510         small_data_register_operand, small_data_symbolic_operand.  Add
9511         symbolic_operand.
9512         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9513         (frv_print_operand_memory_reference, output_move_single): Remove
9514         special handling for unlegitimized sdata addresses.
9515         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9516         and symbolic addresses.
9517         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9518         (frv_find_base_term): New function.
9519         (int_2word_operand): Check specifically for symbolic address constants.
9520         (pic_register_operand, pic_symbolic_operand): Delete.
9521         (small_data_register_operand, small_data_symbolic_operand): Delete.
9522         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9523         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9524         (move_source_operand): Only accept CONSTs if they're a two-insn
9525         symbolic constant.
9526         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9527         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9528         using gen_symGOTOFF2reg*.
9529         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9530         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9531         themselves a cost of 3 insns.
9532         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9533         Change predicate to symbolic_operand.
9534         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9535         (*movsi_lda_sdata): Delete.
9536         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9537         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9538         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9539         frv-*-*linux*.
9540         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9541         label.
9542         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9543         -multilib-library-pic.
9544         (LINK_SPEC): Add -z text for -mfdpic.
9545         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9546         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9547         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9548         Override.
9549         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9550         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9551         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9552         crtstuff-generated files.
9553         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9554         * config.gcc: Add frv-*-*linux*.
9555         * config/frv/linux.h, config/frv/t-linux: New.
9556         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9557         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9558         when -mfdpic even if a linker script is explicitly listed.
9559         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9560         * config/frv/frv.c (frv_override_options): Clear asm_out
9561         unaligned_op for SImode on FDPIC.
9562         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9563         argument passed to decl_readonly_section.
9564         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9565         whole block run with FDPIC even with -fno-PIC.
9566         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9567         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9568         symbol or label plus offset to memory.
9569         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9570         GOTOFF and GPREL for LABEL_REF.
9571         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9572         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9573         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9574         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9575         * doc/invoke.texi: Document them.
9576         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9577         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9578         (frv_splittable_got_operand): Removed.
9579         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9580         LO_SUM.  Add comments.
9581         (frv_override_options): Moved enabling of FDPIC to
9582         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9583         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9584         (frv_legitimize_fdpic_address): Don't duplicate logic in
9585         frv_emit_movsi.
9586         (frv_gen_GPsym2reg): New.
9587         (unspec_got_name): Added gprel.
9588         (frv_expand_fdpic_call): Add support for inlining PLTs.
9589         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9590         (gpr_or_int12_operand): Added GPREL12.
9591         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9592         (small_data_symbolic_operand): Fail if FDPIC.
9593         (fdpic_splittable_got_operand): Removed.
9594         (fdpic_got12_operand): Added GPREL12.
9595         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9596         when appropriate.  Fix sdata GOTOFF.
9597         (frv_legitimate_constant_p): Require legitimate PIC operand for
9598         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9599         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9600         flag_pic case.
9601         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9602         frv_assemble_integer fails.
9603         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9604         (SUBTARGET_DRIVER_SELF_SPECS): New.
9605         (ASM_SPEC): Don't pass -mno-fdpic.
9606         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9607         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9608         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9609         -multilib-library-pic.
9610         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9611         condexec_si_media_operator, condexec_sf_add_operator and
9612         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9613         and condexec_sf_unary_operator.
9614         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9615         New.
9616         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9617         movsi_internal.  Give them internal names.  movsi_got has type
9618         int.
9619         (fdpic got splitters): Remove.
9620         (symGPREL2reg, symGPREL2reg_hilo): New.
9621         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9622         to -mlibrary-pic.  Map -multilib-library-pic to it.
9623         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9624         Document.
9625         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9626         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9627         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9628         (frv_cannot_force_const_mem): New function.
9629         (const_small_data_p, plus_small_data_p): Update comments on sdata
9630         on FDPIC.
9631         (frv_override_options): Set flag_pie for FDPIC too.
9632         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9633         call-saved registers on FDPIC.
9634         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9635         don't force LR to be preserved.
9636         (frv_expand_prologue): Likewise.
9637         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9638         (frv_frame_pointer_required): Don't force it just because the
9639         FDPIC register is used.
9640         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9641         operand only if !condexec_p.
9642         (frv_legitimize_address): Return the FDPIC-legitimized address.
9643         Don't match small data here on FDPIC.
9644         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9645         symbols.  Use TRUE/FALSE instead of 1/0.
9646         (frv_local_funcdesc_p): New.
9647         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9648         immediates when possible.
9649         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9650         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9651         an UNSPEC_GOT.
9652         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9653         12-bit immediates when possible.
9654         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9655         are not legitimate pic operands.
9656         (frv_in_small_data_p): Re-enable for FDPIC.
9657         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9658         (FRV_GLOBAL_P): Removed.
9659         * config/frv/frv.md: Add modes to CONSTs.
9660         (movsi_got): New.
9661         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9662         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9663         (fdpic splittable operations): Match on flag_pic != 1.
9664         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9665         * config/frv/frv.c (frv_asm_out_constructor,
9666         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9667         bytes, not bits.
9668         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9669         * config/frv/frv.c (frv_assemble_integer): Reject complex
9670         expressions referencing function SYMBOL_REFs.
9671         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9672         (move_source_operand): Reject CONSTs that reference function
9673         SYMBOL_REFs on FDPIC.
9674         (frv_emit_movsi): If we get such a CONST, break it up.
9675         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9676         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9677         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9678         MEM.
9679         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9680         (frv_trampoline_size): Increase for FDPIC.
9681         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9682         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9683         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9684         Disable use of GOTOFF for now.
9685         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9686         Disable use of small data in FDPIC for now.
9687         (frv_asm_output_mi_thunk): Implement for FDPIC.
9688         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9689         * config/frv/frv.c (frv_asm_out_constructor): Use
9690         frv_assemble_integer for FDPIC pointers.
9691         (frv_asm_out_destructor): Likewise.
9692         * config/frv/frv.md (ldd): Fix order of operands.  Use
9693         address_operand for input.
9694         2003-09-18  DJ Delorie  <dj@redhat.com>
9695         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9696         (unspec_got_name): Correct typo.
9697         (frv_emit_movsi): Pre-expand splittable GOTs.
9698         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9699         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9700         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9701         * config/frv/t-frv: Add -mfdpic multilibs.
9702         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9703         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9704         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9705         flag_pic, default to 32-bit pics, require DWORD ops.
9706         (frv_override_options): Add W and Z constraints.
9707         (frv_expand_prologue): No pic prologue for -mfdpic.
9708         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9709         (frv_print_operand_memory_reference): Handle GOT constants.
9710         (frv_legitimate_address_p): Allow GOT constants.
9711         (frv_legitimize_address): Handle GOT addresses too.
9712         (frv_legitimate_fdpic_operand_p): New.
9713         (frv_legitimize_fdpic_address): New.
9714         (unspec_got_name): New.
9715         (frv_output_addr_const_extra): New.
9716         (frv_expand_fdpic_call): New.
9717         (frv_fdpic_fptr_operand): New.
9718         (gpr_or_int12_operand): Handle GOT operands.
9719         (int_2word_operand): Handle GOT operands.
9720         (fdpic_operand): New.
9721         (fdpic_splittable_got_operand): New.
9722         (fdpic_got12_operand): New.
9723         (frv_emit_movsi): Handle GOT operands.
9724         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9725         (frv_print_operand): Support 'g' code for GOT operands.
9726         * config/frv/frv-protos.h: Add prototypes as needed.
9727         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9728         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9729         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9730         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9731         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
9732         R_FRV_GOTOFFLO): New.
9733         (movsi_high_got, movsi_lo_sum_got): New.
9734         (*movsi_pic): Don't use this splitter for -mfdpic.
9735         (addsi3): Allow GOT references also.
9736         (call, call_value): Handle -mfdpic separately.
9737         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
9738         call_value_fdpicsi): New.
9739         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
9740         symGOTOFF2reg_i): New.
9741         * config/frv/frv.h (MASK_FDPIC): New.
9742         (TARGET_FDPIC): New.
9743         (TARGET_SWITCHES): Add -mfdpic.
9744         (FDPIC_FPTR_REGNO): New.
9745         (FDPIC_REGNO): New.
9746         (OUR_FDPIC_REG): New.
9747         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
9748         FDPIC_CALL_REGS.
9749         (REG_CLASS_NAMES): Likewise.
9750         (REG_CLASS_CONTENTS): Likewise.
9751         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
9752         (EXTRA_CONSTRAINT): Add it here.
9753         (FRV_GLOBAL_P): New.
9754         (OUTPUT_ADDR_CONST_EXTRA): New.
9755
9756 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9757
9758         * config/sparc/sparc.h: Remove commented-out definitions of
9759         TARGET_EDOM and GEN_ERRNO_RTX.
9760
9761 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9762
9763         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
9764         df_analyse with df_analyze.
9765
9766 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
9767
9768         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
9769         beginning of block.
9770
9771 2004-02-23  James E Wilson  <wilson@specifixinc.com>
9772
9773         * calls.c (precompute_arguments): Update comment.
9774
9775 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9776
9777         * et-forest.c: Replace et_occurences with et_occurrences.
9778
9779 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9780
9781         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
9782         with iv_analyze.
9783
9784 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
9785
9786         * config/i386/i386.c: Rename pni to sse3.
9787         * config/i386/i386.h: Likewise.
9788         * config/i386/i386.md: Likewise.
9789         * config/i386/pmmintrin.h: Likewise.
9790         * doc/extend.texi: Likewise.
9791         * doc/invoke.texi: Likewise.
9792
9793 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
9794             Kazu Hirata  <kazu@cs.umass.edu>
9795
9796         Remove -fwritable-strings.
9797         * c-common.c (fix_string_type): Don't check
9798         flag_writable_strings.
9799         (fix_string_type): Likewise.
9800         * c-opts.c (set_std_c89): Don't initialize
9801         flag_writable_strings.
9802         (set_std_c99): Likewise.
9803         * common.opt (fwritable-strings): Remove.
9804         * flags.h: Remove the external declaration of
9805         flag_writable_strings.
9806         * opts.c (common_handle_option) <OPT_fwritable_strings>:
9807         Remove.
9808         * toplev.c (flag_writable_strings): Remove.
9809         (f_options): Remove an entry for writable-strings.
9810         * varasm.c (const_hash_1) <STRING_CST>: Don't check
9811         flag_writable_strings.
9812         (compare_constant) <STRING_CST>: Likewise.
9813         (build_constant_desc): Likewise.
9814         * config/darwin.c (machopic_select_section): Likewise.
9815         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
9816         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
9817         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
9818         * config/mips/mips.c (mips_select_section): Likewise.
9819         (mips_encode_section_info): Likewise.
9820         * config/pa/pa.c (pa_select_section): Likewise.
9821         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
9822         * config/v850/v850.c (v850_select_section): Likewise.
9823         * doc/invoke.texi (-fwritable-strings): Remove.
9824         (-fno-const-strings): Don't mention -fwritable-strings.
9825         * doc/trouble.texi: Don't mention -fwritable-strings.
9826
9827 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
9828
9829         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
9830
9831 2004-02-23  Dale Johannesen  <dalej@apple.com>
9832
9833         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
9834         (movdf_hardfloat64):  Ditto.
9835         (movdf_softfloat64):  Ditto.
9836
9837 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
9838         * config/rs6000/rs6000.c (function_arg): call to
9839         rs6000_mixed_function_arg for DFmode moved to allow
9840         normal DFmode incoming register assignment.
9841
9842 2004-02-23  Dale Johannesen  <dalej@apple.com>
9843
9844         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
9845         (movdf_hardfloat64):  Ditto.
9846
9847 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9848
9849         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
9850         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
9851         copyright.
9852
9853 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
9854
9855         PR c/14156
9856         * c-typeck.c (c_expand_return): Change check for VAR_DECL
9857         to use DECL_P instead.
9858
9859         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
9860         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
9861
9862 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
9863
9864         * Makefile.in (opts.o): Depend on target.h.
9865         * opts.c (decode_options): Use targetm.default_short_enums
9866         instead of DEFAULT_SHORT_ENUMS.
9867         * system.h (DEFAULT_SHORT_ENUMS): Poison.
9868         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
9869         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
9870         * target.h (gcc_target): Add default_short_enums.
9871         * config/cris/cris.h: Remove a comment about
9872         DEFAULT_SHORT_ENUMS.
9873         * config/ip2k/ip2k.h: Likewise.
9874         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
9875         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
9876
9877 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9878             Falk Hueffner  <falk@debian.org>
9879
9880         PR c/14188
9881         * builtins.c (expand_builtin_va_arg): Emit an informative message
9882         if a trap is generated.
9883         * c-typeck.c (build_function_call): Likewise.
9884
9885 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9886
9887         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
9888         fopen.
9889         * libgcov.c: Include sys/stat.h.
9890         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
9891         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
9892         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
9893         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
9894
9895 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
9896
9897         * reorg.c: Remove comments about dead ports.
9898
9899 2004-02-22  Christopher Faylor  <cgf@redhat.com>
9900
9901         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
9902         extra host object file when targetting cygwin rather than generic
9903         object files.
9904
9905 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
9906
9907         Merge from tree-ssa:
9908         2003-11-20  Richard Henderson  <rth@redhat.com>
9909
9910                 * tree-inline.c (insert_decl_map): New.
9911                 (remap_decl, remap_type, remap_block, copy_body_r,
9912                 initialize_inlined_parameters, declare_return_variable,
9913                 remap_save_expr): Use it.
9914
9915         * function.c (copy_body_r): Add mapping from id->ret_label to
9916         id->ret_label.  Revert test for ret_label.
9917
9918 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
9919
9920         * genoutput.c (process_template): Strip trailing whitespace in @
9921         templates and issue a warning if there was any.
9922
9923 2004-02-21  Christopher Faylor  <cgf@redhat.com>
9924
9925         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
9926         object file when targetting cygwin.
9927         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
9928         overridden by top-level Makefile.
9929
9930 2004-02-21  Roger Sayle  <roger@eyesopen.com>
9931
9932         * config/i386/i386.c (standard_80387_constant_p): Also prefer
9933         the x87's load constant instructions when optimizing for size.
9934
9935 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
9936
9937         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
9938         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
9939         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
9940         * fold-const.c: Likewise.
9941         * simplify-rtx.c: Likewise.
9942
9943 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
9944
9945         * combine.c (can_combine_p): Don't ignore SETs marked with
9946         REG_EH_REGION notes.
9947         (try_combine): When attemting to fix unrecognized insns, don't
9948         split a PARALLEL that contains the original i2.
9949
9950 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
9951
9952         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
9953         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
9954         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
9955         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
9956         (vector, pixel, bool): #define to __vector, __pixel and __bool.
9957         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
9958         portion of header.
9959         (__altivec_link_error_invalid_argument): Remove prototype; will use
9960         __builtin_altivec_compiletime_error("vec_*") instead.
9961         (vec_*): Fix/complete set of available operation overloads given the
9962         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
9963         cv-correctness of pointer arguments; in C, always check for correct
9964         argument types before macro expansion.
9965         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
9966         defining Darwin/PowerPC-specific '-f[no-]altivec' and
9967         '-W[no-]altivec-long-deprecated' switches.
9968         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
9969         '__vector', '__pixel' and '__bool' macros using
9970         '__attribute__((altivec(...)))' types.
9971         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
9972         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
9973         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
9974         New type nodes.
9975         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
9976         handling '-W[no-]altivec-long-deprecated'.
9977         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
9978         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
9979         altivec_expand_dst_builtin): Remove casts from integer literals.
9980         (altivec_expand_builtin): Likewise; handle expansion of new
9981         '__builtin_altivec_compiletime_error' function.
9982         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
9983         types, and make them distinct from other vector types; register
9984         '__builtin_altivec_compiletime_error' function.
9985         (print_operand): For 'P', print a full target register name instead of
9986         merely its number.
9987         (rs6000_attribute_table): Add "altivec" attribute.
9988         (rs6000_handle_altivec_attribute): New function.
9989         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
9990         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
9991         maps to).
9992         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
9993         declare.
9994         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
9995
9996 2004-02-20  James E Wilson  <wilson@specifixinc.com>
9997
9998         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
9999         check.
10000         (shift_mix4left+2): Delete redundant pattern.
10001
10002 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10003
10004         * alias.c (OUTGOING_REGNO): Don't define the default.
10005         * builtins.c (OUTGOING_REGNO): Likewise.
10006         (INCOMING_REGNO): Likewise.
10007         (apply_args_register_offset): Always use OUTGOING_REGNO.
10008         * combine.c (OUTGOING_REGNO): Likewise.
10009         * sibcall.c (OUTGOING_REGNO): Likewise.
10010         * defaults.h (INCOMING_REGNO): Provide the default.
10011         (OUTGOING_REGNO): Likewise.
10012
10013 2004-02-21  Jan Hubicka  <jh@suse.cz>
10014
10015         * params.def (max-peeled-insns, max-completely-peeled-insns,
10016         max-once-peeled-insns): Set to 400.
10017
10018 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10019
10020         PR c++/12007
10021         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
10022         are set for parameters before outputing debugging information.
10023
10024 2004-02-20  Falk Hueffner  <falk@debian.org>
10025
10026         PR target/14201
10027         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
10028         numbers.
10029
10030 2004-02-20  Per Bothner  <per@bothner.com>
10031
10032         * input.h:  Don't #include line-map.h.  It may cause link problems
10033         with undefined linemap_line_start when line-map.h is included but
10034         line-map.o is not linked, as currently happens with gengtype on
10035         compilers that don't support inline.
10036         * toplev.c:  So we do have to explicitly #include line-map.h here.
10037
10038 2004-02-20  Richard Henderson  <rth@redhat.com>
10039
10040         * doc/invoke.texi: Add -Wvariadic-macros.
10041
10042 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10043
10044         * haifa-sched.c (sched_emit_insn): Remove.
10045         * sched-int.h: Remove the corresponding prototype.
10046
10047 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10048
10049         Revert:
10050         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10051         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10052         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10053         * config/cris/cris.h: Remove a comment about
10054         DEFAULT_SHORT_ENUMS.
10055         * config/ip2k/ip2k.h: Likewise.
10056         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10057
10058 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
10059             Tom Tromey  <tromey@redhat.com>
10060
10061         * doc/install.texi: Moved --disable-libgcj and
10062         --with-system-zlib documentation to new section for
10063         Java-specific options.
10064         Added explicit Cross-Compiler-Specific Options subheading.
10065         Added section for Java-specific options.
10066
10067 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
10068
10069         * doc/install.texi (Building the Ada compiler): Remove
10070         example.
10071
10072 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10073
10074         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
10075
10076 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10077
10078         * gcc.c (process_command): Allow translation of the copyright
10079         symbol but not the rest of the copyright message.
10080         * gcov.c (print_version): Likewise.  Allow translation of the
10081         message about warranty.
10082
10083 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
10084
10085         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
10086         predicate.
10087         ("*andsi_clear"): Tweak constraints to not match postincrement.
10088         Adjust the predicate to exclude a volatile memory reference.
10089         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
10090         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
10091
10092 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
10093
10094         * move-if-change: Remove.
10095         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
10096         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
10097         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
10098         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
10099         (s-gtyp-gen, s-iov): Use the top level move-if-change.
10100         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
10101
10102 2004-02-19  James E Wilson  <wilson@specifixinc.com>
10103
10104         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
10105         for operand2.  Add condition that requires register_operand operand2
10106         before reload.
10107
10108 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
10109             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10110
10111         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
10112         * config/mips/mips.md: Expand comment above unaligned loads and stores.
10113
10114 2004-02-19  Richard Henderson  <rth@redhat.com>
10115
10116         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
10117         * tree.c (build0, build1, build2, build3, build4): Split out from...
10118         (build): ... here.  Call them.
10119         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
10120
10121         * convert.c (convert_to_integer): Remove extra build argument.
10122         * tree-inline.c (expand_call_inline): Likewise.
10123
10124 2004-02-19  Richard Henderson  <rth@redhat.com>
10125
10126         * c-opts.c (warn_variadic_macros): New.
10127         (c_common_handle_option): Set it.
10128         (sanitize_cpp_opts): Copy it to cpp_opts.
10129         * c.opt (Wvariadic-macros): New.
10130         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
10131         * cppinit.c (cpp_create_reader): Initialize it.
10132         * cppmacro.c (parse_params): Check it.
10133
10134 2004-02-19  David Daney <ddaney@avtrex.com>
10135
10136         PR preprocessor/14198
10137         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
10138         builtin_assert ("machine=mips")
10139
10140 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10141
10142         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10143         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10144         * config/cris/cris.h: Remove a comment about
10145         DEFAULT_SHORT_ENUMS.
10146         * config/ip2k/ip2k.h: Likewise.
10147         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10148
10149 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10150
10151         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
10152         when passing single SFmode quantities in general registers,
10153         put them in the high half.
10154
10155 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10156
10157         * doc/md.texi (Standard Names): Document additional dependency on
10158         fix pattern.
10159
10160         * optabs.c (ftruncify): Remove.
10161         (expand_fix): Manually inline ftruncify above.
10162         (can_fix_p): Add FIXME note.
10163
10164 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10165
10166         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
10167         spe_fixuns_truncsfsi2.
10168
10169         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
10170         fixuns_truncsfsi2.
10171
10172 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
10173
10174         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10175         * testsuite/gcc.dg/20040219-1.c: New test.
10176
10177 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
10178
10179         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
10180         "*subsf3_cconly"): Subtraction is not commutative.
10181
10182 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10183
10184         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
10185         (sdbout_symbol): If called before sdbout_init, queue DECL for
10186         later and return.
10187         (sdbout_init): Set sdbout_initialized true, process decls
10188         queued earlier by sdbout_symbol.
10189         (sdbout_finish): Use size_t for index variable.
10190
10191 2004-02-19  Jeff Law  <law@redhat.com>
10192
10193         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
10194         for unordered comparison codes.
10195
10196 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
10197
10198         * reload1.c (reload): Correct comment.
10199         (scan_paradoxical_subregs): Remove #if 0 and old comment.
10200         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
10201         register variables are not used by reload.
10202
10203 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
10204
10205         PR target/14209
10206         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
10207         constraints to not match postincrement.  Adjust the predicate to
10208         exclude a volatile memory reference.
10209
10210 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10211
10212         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
10213
10214 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10215
10216         * hooks.c (hook_void_tree_int): Remove.
10217         (hook_void_constcharptr): Likewise.
10218         (hook_int_void_0): Likewise.
10219         * hooks.h: Remove the prototypes for the above three
10220         functions.
10221         * targhooks.c (hook_bool_machine_mode_true): Remove.
10222         * targhooks.h: Remove the prototype for
10223         hook_bool_machine_mode_true.
10224
10225 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10226
10227         * emit-rtl.c (subreg_realpart_p): Remove.
10228         (reorder_insns_with_line_notes): Likewise.
10229         (end_full_sequence): Likewise.
10230         * rtl.h: Remove the prototype for the above functions.
10231
10232 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10233
10234         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
10235         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10236         config/iq2000/iq2000.h, config/m32r/m32r.h,
10237         config/pdp11/pdp11.h, config/sparc/sparc.h,
10238         config/xtensa/xtensa.h: Remove commented-out or useless
10239         definitions of CASE_VECTOR_PC_RELATIVE.
10240
10241 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10242
10243         * loop.c (all_sets_invariant_p): Remove.
10244
10245 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10246
10247         PR target/12916
10248         * config/sparc/sparc.h (NPARM_REGS): Delete.
10249         (BASE_RETURN_VALUE_REG): Likewise.
10250         (BASE_OUTGOING_VALUE_REG): Likewise.
10251         (BASE_PASSING_ARG_REG): Likewise.
10252         (BASE_INCOMING_ARG_REG): Likewise.
10253         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
10254         TARGET_ARCH64, not TARGET_V9.
10255         (function_arg_slotno): Dispatch based on the mode class.
10256         Handle vector modes like floating-point modes.
10257         (function_arg_record_value_1): Handle vector types like
10258         floating-point types.
10259         (function_arg_record_value_2): Likewise.
10260         Calculate regno after mode transformation.
10261         (function_arg): Handle vector modes like floating-point modes.
10262         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
10263         If ARCH64, do not recheck alignment.
10264         (function_arg_pass_by_reference): Reorder the conditions.
10265         (sparc_return_in_memory): Move after function_arg_padding.
10266         Implement calling conventions for vector modes.
10267         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
10268         (function_value): Move scope of 'regbase'.
10269         Implement calling conventions for vector modes.
10270         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
10271         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
10272         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
10273         the argument is passed by reference.
10274         (sparc_type_code): Handle vector types.
10275
10276 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
10277
10278         * function.c (assign_parms): When building decl_rtl for
10279         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
10280
10281 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
10282
10283         * expr.c (is_aligning_offset): Check if we are aligning the
10284         expressions's address over BIGGEST_ALIGNMENT in bytes, not
10285         in bits.
10286
10287 2003-02-18  Matt Austern  <austern@apple.com>
10288
10289         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
10290         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
10291         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
10292         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
10293         spec string.
10294         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
10295
10296 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
10297
10298         * dwarf2out.c (loclabel_num): Move outside #ifdef
10299         DWARF2_DEBUGGING_INFO and mark with GTY(()).
10300         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
10301         Mark with GTY(()).
10302         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
10303         Allocate memory with ggc_alloc.  No need to copy anything.
10304         (ia64_hpux_file_end): Update to match.
10305
10306 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10307
10308         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
10309         by default.
10310
10311 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10312
10313         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
10314         ("divmodtisi3"): Likewise.
10315         ("udivmoddi4", "udivmodtidi3"): Likewise.
10316         ("divmodsi4", "divmoddisi3"): Likewise.
10317         ("udivmodsi4", "udivmoddisi3"): Likewise.
10318         ("udivsi3", "umodsi3"): Likewise.
10319
10320 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10321
10322         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
10323         placeholder insn when chunkifying the pool.
10324
10325 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10326
10327         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
10328         generating PIC code.
10329
10330 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10331
10332         * config/h8300/h8300-protos.h: Add a prototype for
10333         h8300_expand_branch.
10334         * config/h8300/h8300.c (h8300_expand_branch): New.
10335         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
10336         bgtu, beq, bne): Call h8300_expand_branch().
10337
10338 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10339
10340         * config/h8300/h8300-protos.h: Add prototypes for
10341         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
10342         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
10343         (h8300_hard_regno_mode_ok): Likewise.
10344         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
10345         h8300_hard_regno_nregs().
10346         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
10347
10348 2004-02-18  Per Bothner  <per@bothner.com>
10349
10350         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
10351         partly reverts my 2003-10-01 change, because we're back to logically
10352         including <command line> inside the main line.
10353         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
10354         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
10355         Fixes PR preprocessor/14103.
10356
10357         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
10358         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
10359         (cpp_push_include):  Don't need to increment pfile's line field.
10360         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
10361
10362         * c-ppoutput.c (print struct):  New first_time field.
10363         (init_pp_output):  Set print.first_time.
10364         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
10365         which is set also for (say) <command line>.  Clear print.first_time.
10366
10367         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10368         does not match the code, so fix both.
10369         (should_stack_file):  Inline include_pch_p function.
10370         (include_pch_p):  Remove pointless function.
10371
10372         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10373
10374 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10375
10376         * config/h8300/h8300.md (four define_peephole2's): Use
10377         h8300_regs_ok_for_stm().
10378
10379 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10380
10381         * config/h8300/h8300-protos.h: Update the prototype for
10382         expand_a_rotate().
10383         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10384         argument.
10385         * config/h8300/h8300.md: Update all callers.
10386
10387 2004-02-18  Jan Hubicka  <jh@suse.cz>
10388
10389         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10390         floats.
10391         (simplify_binary_operation): Deal with logicals on floats.
10392
10393         * i386.md (SSE fabs splitters): Emit new patterns.
10394         (SSE cmov splitters): Likewise.
10395         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10396         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10397         subregs.
10398         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10399         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10400
10401 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10402
10403         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10404         by hand.
10405         (output_a_rotate): Tweak a comment.
10406         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10407         (*rotlhi3_1): Change to rotlhi3_1.
10408         (*rotlsi3_1): Change to rotlsi3_1.
10409
10410 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10411
10412         PR target/13866
10413         * arm.c (load_multiple_operation): Don't insist that the source reg
10414         of a post-increment component is the same as the destination.
10415         (store_multiple_operation): Likewise.
10416
10417 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10418
10419         * config/h8300/h8300.md: Move movsf patterns into one section
10420         of the file.
10421
10422 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10423
10424         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10425         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10426         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10427         config/mips/linux64.h, config/pa/pa-64.h,
10428         config/rs6000/aix51.h, config/rs6000/aix52.h,
10429         config/rs6000/spe.md, config/sparc/linux.h,
10430         config/sparc/linux64.h: Update copyright.
10431
10432 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10433
10434         * config/h8300/h8300.md: Move push patterns into one
10435         section of the file.
10436
10437 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10438
10439         PR c++/11326
10440         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10441         fntype.
10442
10443 2004-02-18  Paul Brook  <paul@codesourcery.com>
10444
10445         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10446
10447 2004-02-18  Paul Brook  <paul@codesourcery.com>
10448
10449         PR debug/12934
10450         * dwarf2out.c (loc_descriptor_from_tree): Handle
10451         EXPR_WITH_FILE_LOCATION.
10452
10453 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10454
10455         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10456         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10457         trailing whitespace from instructions.
10458
10459 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10460
10461         * configure.ac: When generating auto-build.h, pass
10462         --enable-languages to the sub-configure.
10463         Put quotes around ${program_transform_name} when generating
10464         name of as, ld, nm, objdump.
10465         * configure: Regenerate.
10466
10467 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10468
10469         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10470         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10471         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10472         (s-preds, s-iov): Do not depend on move-if-change.
10473
10474 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10475
10476         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10477         (insert_save): Likewise.
10478
10479 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10480
10481         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10482         warning.
10483
10484 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10485
10486         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10487         *one_cmplsi2_h8300.
10488         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10489
10490 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10491
10492         * config/h8300/h8300-protos.h: Update the prototype of
10493         fix_bit_operand().
10494         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10495         argument "what".
10496         * config/h8300/h8300.md: Update all callers.
10497
10498 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10499
10500         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10501         the last argument to "code" from "type".
10502
10503 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10504
10505         * config/h8300/h8300.c: Remove an extern declaration of
10506         rtx_equal_function_value_matters.
10507
10508 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10509
10510         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10511         by hand.
10512         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10513         (*iorqi3_1): Change to iorqi3_1.
10514         (*xorqi3_1): Change to xorqi3_1.
10515
10516 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10517
10518         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10519         typos.
10520
10521 2004-02-17  Jan Hubicka  <jh@suse.cz>
10522
10523         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10524
10525 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10526
10527         PR optimization/14119
10528         * combine.c (try_combine): When attemting to fix unrecognized insns,
10529         don't delete SETs marked with REG_EH_REGION notes.
10530
10531 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10532
10533         * combine.c (simplify_if_then_else): Do not replace
10534         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10535         modes differ.
10536
10537 2004-02017  Steven Bosscher  <stevenb@suse.de>
10538
10539         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10540         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10541         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10542         * ada/utils.c: Likewise.
10543         * cp/decl.c: Likewise.
10544         * f/com.c: Likewise.
10545         * java/class.c: Likewise.
10546
10547 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10548
10549         * config/h8300/h8300.md: Fix comment typos.
10550
10551 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10552
10553         * config/mips/t-iris6gld: Renamed to ...
10554         * config/mips/t-irix-gld: ... this.
10555         * config.gcc (mips-sgi-irix6*): Reflect this
10556         (mips-sgi-irix5*): Use it with GNU ld.
10557
10558         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10559         to ...
10560         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10561         * config/mips/t-irix-gld: Reflect this.
10562         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10563
10564         * config/mips/iris5gld.h: New file.
10565         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10566         Only use collect2 without gas.
10567
10568         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10569         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10570         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10571         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10572
10573         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10574         * config/mips/iris5.h: ... here.
10575
10576         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10577         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10578         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10579
10580         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10581         using irix_startfile_spec, irix_endfile_spec.
10582
10583 2004-02-16  Gunther Nikl  <gni@gecko.de>
10584
10585         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10586
10587 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10588
10589         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10590         insns by hand.
10591
10592 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10593
10594         * cfghooks.c (split_edge): Speed up updating of dominators.
10595
10596 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10597
10598         PR c++/11326
10599         * c-common.c (flag_abi_version): Remove.
10600         * c-common.h (flag_abi_version): Likewise.
10601         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10602         * c.opt (fabi-version): Remove.
10603         * calls.c (expand_call): Always pass a function type to
10604         struct_value_rtx.  Use convert_memory_address.
10605         * common.opt (fabi-version): Add it.
10606         * flags.h (flag_abi_version): Likewise.
10607         (abi_version_at_least): New macro.
10608         * opts.c (common_handle_option): Add OPT_fabi_version.
10609         * toplev.c (flag_abi_version): Define it.
10610         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10611         New function.
10612         (ia64_output_mi_thunk): Use it.
10613         (ia64_struct_value_rtx): Likewise.
10614
10615 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10616
10617         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10618         Don't generate insns by hand.
10619
10620 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10621
10622         PR c++/14178
10623         * doc/invoke.texi (fabi-version): The default is 2 now.
10624
10625 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10626
10627         * loop-iv.c: New file.
10628         * Makefile.in (loop-iv.o): New.
10629         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10630         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10631         num_loop_branches): New functions.
10632         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10633         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10634         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10635         get_simple_loop_desc, free_simple_loop_desc): Declare.
10636         (simple_loop_desc): New inline function.
10637         (struct rtx_iv, struct niter_desc): New.
10638         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10639         * expr.c (force_operand): Handle subregs of expressions created by
10640         loop unroller.
10641         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10642         parts of the initialization to toplev.c
10643         * loop-unroll.c (loop_exit_at_end_p): New.
10644         (unroll_and_peel_loops): Call iv_analysis_done.
10645         (decide_peel_once_rolling, decide_peel_completely,
10646         decide_unroll_stupid, decide_unroll_constant_iterations,
10647         decide_unroll_runtime_iterations, decide_peel_simple,
10648         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10649         unroll_loop_runtime_iterations): Use new simple loop analysis.
10650         * loop-unswitch.c (compare_and_jump_seq): New.
10651         (may_unswitch_on_p): Renamed to ...
10652         (may_unswitch_on): Use new iv analysis.
10653         (reversed_condition): Export.
10654         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10655         * predict.c (estimate_probability): Use new simple loop analysis.
10656         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10657         canon_condition, simplify_using_condition): Declare.
10658         * stor-layout.c (get_mode_bounds): New.
10659         * toplev.c (rest_of_handle_loop2): Some parts of
10660         initialization/finalization moved here from loop-init.c.
10661
10662 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10663
10664         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10665         pointer.
10666         (CALL_USED_REGISTERS): Likewise.
10667         (REG_ALLOC_ORDER): Likewise.
10668         (REG_CLASS) <GENERAL_REGS>: Likewise.
10669
10670 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10671
10672         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10673         in associative operators.
10674         * rtlanal.c (commutative_operand_precedence): Create some new
10675         variables.  Prefer a commutative operand on the left, then
10676         binary expressions, then NEG and NOT.
10677
10678 2004-02-16  Matthias Klose  <doko@debian.org>
10679
10680         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10681         in terms of SHLIB_SOVERSION.
10682         * config/m68k/t-slibgcc-elf-ver: New file.
10683         * config/pa/t-slibgcc-elf-ver: New file.
10684         * config.gcc (m68k-linux, parisc-linux): Use them when not
10685         sjlj exceptions are not configured.
10686
10687 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10688
10689         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10690
10691 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10692
10693         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10694
10695 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10696
10697         * doc/sourcebuild.texi: Mention backends.html.
10698
10699 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10700
10701         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10702         line-map.c, line-map.h, var-tracking.c: Fix comment
10703         formatting.
10704
10705 2004-02-16  Richard Henderson  <rth@redhat.com>
10706
10707         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10708
10709         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10710
10711 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10712
10713         * config/h8300/h8300.md: Remove unnecessary parallels from
10714         all define_insn and define_split patterns.
10715
10716 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10717
10718         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10719         "clobber").
10720
10721 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10722
10723         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10724         '%#'.
10725
10726 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10727
10728         * config/ia64/ia64.c, config/mips/mips.c,
10729         config/mmix/mmix-modes.def: Fix comment typos.
10730
10731 2004-02-15  Roger Sayle  <roger@eyesopen.com>
10732
10733         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
10734         (get_directive_line): Remove unused function prototype.
10735
10736 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10737
10738         * tree-inline.c (copy_body_r): Do not replace ret_label.
10739
10740 2004-02-14  Jan Hubicka  <jh@suse.cz>
10741
10742         * i386.c (x86_four_jump_limit): New variable.
10743         (k8_avoid_jump_misspredicts): Rename to ...
10744         (ix86_avoid_jump_misspredicts): .. this one.
10745         (ix86_pad_returns): Break out from ...
10746         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
10747         to.
10748         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
10749
10750 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
10751
10752         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
10753         PARALLEL is NULL.
10754
10755 2004-02-14  Per Bothner  <per@bothner.com>
10756
10757         * fix-header.c (line_table):  Move local variable in main to global.
10758         * scan.h (line_table):  Use it.
10759         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
10760         line (recently renamed to src_loc) before calling recognized_function.
10761
10762 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
10763
10764         * Makefile.in: Fix comment typos.
10765
10766 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
10767
10768         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
10769         for start_value when it is directly moved into reg, and factorize
10770         the retrieval of GET_MODE (reg).
10771
10772 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10773
10774         * config/mips/mips-protos.h (mips_load_got_page): Delete.
10775         (mips_load_got_global): Delete.
10776         (mips_gotoff_page): Declare.
10777         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
10778         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
10779         UNSPEC_LOAD_GOT pattern rather than a MEM.
10780         (*load_got[sd]i): New patterns.
10781         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
10782         (mips_load_got_page, mips_load_got_global): Delete.
10783         (mips_gotoff_page): New function.
10784         (override_options): Don't initialize mips_got_alias_set.
10785
10786 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
10787
10788         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
10789         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
10790         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
10791         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
10792         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
10793         * config/mips/mips.c: Fix some overly-long lines.
10794         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
10795         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
10796
10797 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10798
10799         * configure.ac: Search for as, ld below libexec/gcc.
10800         * configure: Regenerate.
10801
10802 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10803
10804         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
10805         __builtin_arm_setwcx ().
10806         * config/arm/arm.c (arm_expand_builtin): Generate operands
10807         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
10808
10809 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
10810
10811         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
10812         and "wmuluh" to "wmulsm" and "wmulum", respectively.
10813         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
10814         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
10815         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
10816         (_mm_mulhi_pu16): Likewise.
10817
10818 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
10819
10820         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
10821         DECL_NAME != 0 before dereferencing.
10822
10823 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
10824
10825         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
10826         (s390_output_addr_const_extra): Declare.
10827         (s390_output_pool_entry): Remove FILE * argument.
10828         * config/s390/s390.c (s390_output_symbolic_const): Remove.
10829         (s390_output_addr_const_extra): New function.
10830         (print_operand_address): Call output_addr_const instead of
10831         s390_output_symbolic_const.
10832         (print_operand): Likewise.
10833         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
10834         Remove FILE * argument.
10835         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
10836         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
10837         call.
10838
10839 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10840
10841         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
10842         (struct edge, struct vertex, struct graph): New.
10843         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
10844         free_graph): New functions.
10845
10846 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
10847
10848         * config/mips/mips.md (casesi_internal, casesi_internal_di):
10849         Use ".set macro" to avoid warnings about multi-instruction
10850         macros, since they're intentional.
10851
10852 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
10853
10854         * config/darwin.h: Add include guards.  Remove old, now incorrect,
10855         comment about STANDARD_EXEC_PREFIX.
10856
10857         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
10858         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
10859         for installing .1 manpages.  Add rules for installing cpp
10860         and gcov manpages under their installed names.
10861
10862 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
10863
10864         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
10865         host, but try LD_FOR_TARGET first.
10866         * configure: Rebuilt.
10867
10868 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10869
10870         * dbxout.c: Move declaration of dbxout_type_decl outside
10871         #ifdef DBX_DEBUGGING_INFO.
10872         * c-parse.in: Don't give the asmdef production a type.
10873
10874 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10875
10876         * debug.h (struct gcc_debug_hooks): Add type_decl field.
10877         (debug_nothing_tree_int): Prototype.
10878         (dwarf_debug_hooks): Delete, unused.
10879         * debug.c (do_nothing_debug_hooks): Update.
10880         (debug_nothing_tree_int): New function.
10881         * langhooks.h (struct lang_hooks_for_decls):
10882         Remove builtin_type_decls field.
10883         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
10884         (LANG_HOOKS_DECLS): Update.
10885         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
10886         Use debug_hooks->type_decl.
10887         * dbxout.c (preinit_symbols): New static.
10888         (dbx_debug_hooks, xcoff_debug_hooks): Update.
10889         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
10890         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
10891         for symbols to output.
10892         (dbxout_type_decl): New function.
10893         (dbxout_symbol): If called before dbxout_init has run, queue
10894         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
10895         to TYPE_DECLs before emitting them.
10896         * xcoffout.c (assign_type_number): Delete.
10897         (xcoff_type_numbers): New static table.
10898         (xcoff_assign_fundamental_type_number): New function.
10899         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
10900         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
10901         * sdbout.c: Include varray.h.
10902         (deferred_global_decls): New static.
10903         (sdb_debug_hooks): Update.
10904         (sdbout_global_decl): If we can't emit something right now,
10905         remember it in deferred_global_decls.
10906         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
10907         (sdbout_init): Initialize deferred_global_decls.
10908         * Makefile.in: Update dependencies of sdbout.o.
10909         * dwarf2out.c (dwarf2out_type_decl): New function.
10910         (dwarf2_debug_hooks): Update.
10911         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
10912         * c-decl.c (getdecls): Just return 0.
10913         (check_for_loop_decls): Don't use getdecls.
10914         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
10915         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
10916
10917 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
10918
10919         * config/s390/s390.c (s390_sched_reorder2): Remove.
10920         (TARGET_SCHED_REORDER2): Do not redefine.
10921
10922 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
10923
10924         * c-parse.in (maybe_type_qual): Delete.
10925         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
10926         (asm_argument): New grammar rules.
10927         (extdef_1): Use asmdef.
10928         (maybeasm): Move down with other asm rules; use simple_asm_expr.
10929         (xexpr): Move up with other expression rules.
10930         (stmt): Use asm_stmt.
10931
10932         * c-typeck.c (build_asm_expr): New function - body mostly
10933         pulled from build_asm_stmt.
10934         (build_asm_stmt): Just handle tacking on the volatile qualifier.
10935         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
10936
10937 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
10938
10939         PR bootstrap/13617
10940         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
10941         (mips_declare_object): Make variadic.
10942         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
10943         mips_output_aligned_decl_common.
10944         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
10945         (mips_declare_object): Make variadic.
10946
10947 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10948
10949         * function.c (update_epilogue_consts): Teach about binary operations.
10950
10951         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
10952         previous MEM_VOLATILE in REF.
10953         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
10954         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
10955
10956 2004-02-12  Gunther Nikl  <gni@gecko.de>
10957
10958         * config.gcc: Restore support for m68k-openbsd.
10959
10960 2004-02-12  Jan Hubicka  <jh@suse.cz>
10961
10962         * tree-optimize.c (tree_rest_of_compilation): Do not release
10963         DECL_ARGUMENTS.
10964
10965 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
10966
10967         * doc/install.texi: Fix the spelling of "explicitly".
10968
10969 2004-02-11  Eric Christopher  <echristo@redhat.com>
10970
10971         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
10972         duplicate argument structure of cpp_interpret_string.
10973         * cpphash.h: Move prototype...
10974         * cpplib.h: Here.
10975         * cpplib.c: Fix calls to match new function signature.
10976
10977 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
10978
10979         PR c/456
10980         * cppexp.c (num_binary_op): Don't allow comma operators in #if
10981         constant expressions at all outside C99 mode if pedantic.
10982
10983 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
10984
10985         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
10986         (log10_optab, log2_optab): Define corresponding macros.
10987         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
10988         * genopinit.c (optabs): Implement log10_optab and log2_optab
10989         using log10?f2 and log2?f2 patterns.
10990         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
10991         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
10992         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
10993         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
10994
10995         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
10996         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
10997         log2, log2f and log2l built-ins as inline x87 intrinsics.
10998
10999 2004-02-11  Richard Henderson  <rth@redhat.com>
11000
11001         PR target/1532
11002         * flow.c (insn_dead_p): A clobber of a dead hard register is a
11003         dead insn after reload.
11004
11005 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
11006
11007         * tree.h (frame_base_decl): Add GTY marker.
11008         * var-tracking.c (frame_base_decl): Likewise.
11009
11010 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
11011
11012         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
11013         incorrect, hunk.
11014         (add_location_or_const_value_attribute): Use text_section_label,
11015         not TEXT_SECTION_NAME.
11016
11017 2004-02-11  Per Bothner  <per@bothner.com>
11018
11019         Represent column numbers using line-map's source_location.
11020         The "next available source_location" is now managed internally by
11021         line-maps.c rather than by clients.
11022         * line-map.h (struct line_map):  New field column_bits.
11023         <from_line>:  Rename field to start_location.
11024         (struct line_maps):  New fields highest_location and max_column_hint.
11025         (linemap_check_files_exited):  New declaration.
11026         (linemap_line_start):  New declaration.
11027         (linemap_add):  Remove from_line parameter; use highest_location field.
11028         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
11029         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
11030         (CURRENT_LINE_MAP):  Remove macro.
11031         (linemap_position_for_column):  New inline function.
11032         * line-map.c (linemap_init):  Clear new fields.
11033         (linemap_check_files_exited):  New function, extracted from ...
11034         (linemap_free):  Use linemap_check_files_exited.
11035         (linemap_add):  Remove from_line parameter.  Various updates.
11036         (linemap_line_start):  New function.
11037         (linemap_lookeup):  Update for new field names.
11038         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
11039         linemap_position_for_column may unpredictably change the current map,
11040         it is cleaner and simpler for us to not cache it in cpp_reader.
11041         (struct cpp_buffer):  New sysp field.
11042         Changed warned_cplusplus_comments and from_stage3 to bitfields.
11043         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
11044         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
11045         current map using linemap_lookup.
11046         (do_linemarker):  Also set buffer's sysp field.
11047         (destringize_and_run):  No longer need to decrement current line.
11048         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
11049         (search_path_head, open_file_failed):  Use buffer's sysp.
11050         (cpp_make_system_header):  Get current map using linemap_lookup.
11051         Also set buffer's sysp flag.
11052         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
11053         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
11054         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
11055         (struct cpp_reader):  ... and adding saved_line_base field.
11056         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
11057         Update accordingly.  Don't adjust line.
11058         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
11059         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
11060         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
11061         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
11062         * cpplex.c (_cpp_lex_direct):  Likewise.
11063         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
11064         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
11065         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
11066         Remove col field as it is now subsumed by src_loc.
11067         * cpperror.c:  Update various field, parameter, and macro names.
11068         (print_location):  If col==0, try SOURCE_COLUMN of line.
11069         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
11070         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
11071         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
11072         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
11073         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
11074         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
11075         (_cpp_lex_direct):  Use linemap_position_for_column.
11076         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
11077         parameter.  Instead get it from the line_table global.  Adjust callers.
11078         (print):  Remove map field.  Replace line field to src_line.
11079         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
11080         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
11081         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
11082         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
11083         * cpptrad.c (copy_comment):  Rename variable.
11084         * c-lex.c (map):  Remove static variable, for same reason we removed
11085         cpp_reader's map field.
11086         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
11087         to call linemap_lookup.
11088         (cb_line_change):  Token's line field replaced by src_loc.
11089         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
11090         Don't save new_map.
11091
11092         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
11093         source_location.
11094
11095 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11096
11097         * config/rs6000/altivec.md (*movv4si_internal): At least one
11098         operand must be register_operand.
11099         (*movv8hi_internal1): Likewise.
11100         (*movv16qi_internal1): Likewise.
11101         (*movv4sf_internal1): Likewise.
11102
11103 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
11104
11105         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
11106         operand.
11107         (movv4hi_internal): Same.
11108         (movv2sf_internal): Same.
11109         (movv1di_internal): Same.
11110
11111 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
11112
11113         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
11114         TARGET_OLDABI consistently.
11115         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
11116         mips_va_arg,override_options,compute_frame_size,
11117         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
11118         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
11119         and TARGET_OLDABI consistently.
11120         * config/mips/mips.md (exception_receiver): Likewise.
11121         * config/mips/linux64.h: Likewise.
11122
11123 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11124
11125         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
11126         Set AltiVec ABI and vrsave as default for ppc64 linux.
11127         (init_cumulative_args): Post error, if try to return
11128         value in AltiVec register without enable AltiVec.
11129         (function_arg_advance): Ditto for passing arguments.
11130
11131 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
11132
11133         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
11134         a label before updating its usage count.
11135
11136 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
11137
11138         * doc/install.texi: Remove extra cd.
11139
11140 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
11141
11142         * c-common.c (vector_size_helper): Remove; call
11143         reconstruct_complex_type() instead.
11144         * tree.c (reconstruct_complex_type): New function
11145         (formerly vector_size_helper() in c-common.c).
11146         (make_vector): Make externally visible.
11147         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
11148
11149 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11150
11151         * config/h8300/h8300-protos.h: Add a prototype for
11152         h8300_regs_ok_for_stm.
11153         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
11154         * config/h8300/h8300.md (stm_h8300s_2_advanced,
11155         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
11156         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
11157         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
11158         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
11159         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
11160         ldm_h8300s_4_normal, ldm_h8300s_4): Use
11161         h8300_regs_ok_for_stm().
11162
11163 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11164
11165         PR c/14088
11166         * real.c (real_from_string): Look for 'X' as well as 'x' in
11167         hexfloat strings.
11168
11169 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11170
11171         * config/h8300/h8300.md: Remove an incorrect comment about
11172         peephole2.  Add comments.
11173
11174 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
11175
11176         PR/14058
11177         * emit-rtl.c (set_decl_incoming_rtl): New.
11178         * tree.h (set_decl_incoming_rtl): New.
11179         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
11180         DECL_INCOMING_RTL.
11181         * ada/misc.c (adjust_decl_rtl): Likewise.
11182
11183 2004-02-10  Per Bothner  <per@bothner.com>
11184
11185         * c-opts.c (c_common_post_options):   Don't emit working directory
11186         in cpp output if -P was specified.
11187
11188 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11189
11190         PR c/14092
11191         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
11192         negate_expr back to the original type.
11193
11194 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
11195
11196         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
11197         bump retaddr here.
11198
11199 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11200
11201         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
11202         gen_lowpart_SUBREG): Move under the file in which they
11203         are actually declared.
11204
11205 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
11206
11207         * doc/sourcebuild.texi: Add libada documentation.
11208
11209         * doc/install.texi: Update documentation on Ada build, now
11210         that the GNAT lib and tools are built automatically.
11211
11212 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
11213
11214         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
11215         && TARGET_IRIX.
11216
11217 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
11218
11219         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
11220         boundaries outside build_component_ref() call (a macro in ObjC++).
11221
11222 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
11223
11224         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
11225         (init_cumulative_args): Likewise.
11226         (a7_overlap_mentioned_p): Delete prototype.
11227         * config/xtensa/xtensa.c (struct machine_function): Replace
11228         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
11229         Add set_frame_ptr_insn field.
11230         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
11231         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
11232         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
11233         at the function entry and replace the operand with the pseudo.
11234         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
11235         argument and record this flag in CUMULATIVE_ARGS.
11236         (function_arg): Remove result_mode and special-case code to handle
11237         arguments in a7.  Instead, set need_a7_copy flag when there is an
11238         incoming argument in a7.
11239         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
11240         and use the value recorded in cfun->machine->set_frame_ptr_insn.
11241         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
11242         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
11243         special-case code.
11244         (a7_overlap_mentioned_p): Delete.
11245         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
11246         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
11247         arguments to init_cumulative_args and pass "incoming" flag instead.
11248         (BLOCK_REG_PADDING): Delete.
11249         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
11250         checks for reload_in_progress and reload_completed.  Update calls to
11251         xtensa_copy_incoming_a7.
11252         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
11253         to call xtensa_copy_incoming_a7.
11254
11255 2004-02-09  DJ Delorie  <dj@redhat.com>
11256
11257         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
11258         longer modify standard_exec_prefix, standard_bindir_prefix, or
11259         standard_startfile_prefix.
11260
11261 2004-02-09  James E Wilson  <wilson@specifixinc.com>
11262
11263         PR c++/11295
11264         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
11265         to expand_expr_real call, and pass in alt_rtl as last argument.
11266
11267         PR libstdc++/5625
11268         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
11269         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
11270         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
11271         * except.c (expand_builtin_extend_pointer): New.
11272         * except.h (expand_builtin_extend_pointer): Declare.
11273
11274 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
11275
11276         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
11277         unaligned loads and stores.
11278
11279 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11280
11281         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
11282         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
11283
11284         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
11285         * config/mips/iris5.h: ... here.
11286         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
11287
11288         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
11289         * config/mips/iris5.h: ... here.
11290
11291 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11292
11293         * configure.ac: Remove default executable files before AC_PROG_CC.
11294         * configure: Regenerate.
11295
11296 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
11297
11298         PR target/13721
11299         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
11300         print a operand other than a register.
11301
11302 2004-02-09  Roger Sayle  <roger@eyesopen.com>
11303
11304         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
11305         tree code rather than call fold_convert, which doesn't specify a
11306         default floating point to integer conversion.
11307
11308 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
11309
11310         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
11311         code to support SGS assembler.  Reformat adjacent code where possible.
11312         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
11313         definition.
11314         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
11315         for '%#'.
11316         * config/m68k/linux.h, config/m68k/m68k.c,
11317         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
11318         macros and asm_printf() format strings.
11319         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
11320         * config/m68k/linux.h: Update copyright.
11321         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
11322
11323 2004-02-08  Andreas Schwab  <schwab@suse.de>
11324             Bernardo Innocenti  <bernie@develer.com>
11325
11326         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
11327         REGISTER_PREFIX.
11328         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
11329         frame pointer register, overridable by OS targets.
11330         * (M68K_REGNAME): Macro to obtain register name for asm output,
11331         eventually replacing %a6 with M68K_FP_REG_NAME.
11332         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
11333         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
11334         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
11335         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
11336         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
11337
11338 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11339
11340         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
11341         hook_rtx_tree_int_null.
11342         * targhooks.c (default_struct_value_rtx): Remove.
11343         * targhooks.h: Remove the prototype for
11344         default_struct_value_rtx.
11345         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11346         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
11347         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11348         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
11349         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
11350         config/rs6000/rs6000.c, config/s390/s390.c,
11351         config/stormy16/stormy16.c, config/v850/v850.c,
11352         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
11353         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
11354
11355 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11356
11357         * README.Portability: Change "ISO C89" to "ISO C90".
11358         * c-parse.in (primary, initelt): Likewise.
11359
11360 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
11361
11362         * real.c (encode_ibm_extended): Normalize the input value before
11363         converting it to a double.  Handle the case where a normal value
11364         rounds to infinity.
11365
11366 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11367
11368         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11369         warning.
11370         * cse.c (preferrable): Change to preferable. Update all of its
11371         callers.
11372         * genautomata.c (ainsn): Change
11373         first_ainsn_with_given_equialence_num to
11374         first_ainsn_with_given_equivalence_num.  Update all of its
11375         references.
11376
11377 2004-02-08  Jan Hubicka  <jh@suse.cz>
11378
11379         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11380
11381 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11382
11383         * function.c (assign_parms): Fix formatting.
11384
11385 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11386
11387         * default.h (PROMOTE_PROTOTYPES): Remove.
11388         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11389         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11390         EXPAND_BUILTIN_SAVEREGS): Poison.
11391         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11392         hook_bool_tree_false.
11393         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11394         * target.h: Replace SETUP_INCOMING_VARARGS with
11395         targetm.calls.setup_incoming_varargs().
11396         * targhooks.c (default_promote_function_return): Remove.
11397         (default_promote_prototypes): Likewise.
11398         (default_struct_value_rtx): Always abort().
11399         (default_expand_builtin_saveregs): Always print an error
11400         message.
11401         (default_setup_incoming_varargs): Do nothing.
11402         (default_pretend_outgoing_varargs_named): Don't depend on
11403         SETUP_INCOMING_VARARGS.
11404         * targhooks.h: Remove the prototype for
11405         default_promote_function_return and
11406         default_promote_prototypes.
11407
11408 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11409
11410         * system.h (SHARED_SECTION_ASM_OP): Poison.
11411         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11412         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11413
11414 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11415
11416         Bug 13856
11417         * c-decl.c (diagnose_mismatched_decls): Only give special
11418         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11419         is also true.
11420         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11421         DECL_FUNCTION_CODE when defining a built-in function.
11422         Don't update DECL_ESTIMATED_INSNS.
11423         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11424         FUNCTION_DECLs.
11425         * tree.h: Delete DECL_ESTIMATED_INSNS.
11426         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11427         (expand_call_inline, optimize_inline_calls): Don't update
11428         DECL_ESTIMATED_INSNS nor inlined_insns.
11429         * cgraphunit.c (cgraph_analyze_function): Don't update
11430         DECL_ESTIMATED_INSNS.
11431
11432 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11433
11434         * c-common.c (shadow_warning): Delete.
11435         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11436         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11437         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11438         * c-parse.in (free_parser_stacks): Delete.
11439
11440 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11441
11442         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11443         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11444         Use the top level mkinstalldirs, not the one in the gcc subdir.
11445         * mkinstalldirs: Remove (from the gcc subdir).
11446
11447 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11448
11449         PR middle-end/13696
11450         * fold-const.c (fold_convert): New function to provide type
11451         conversion to the middle-end without using convert.
11452         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11453         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11454         invert_truthvalue, optimize_bit_field_compare, range_binop,
11455         decode_field_reference, make_range, build_range_check, unextend,
11456         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11457         fold_binary_op_with_conditional_arg, fold_inf_compare,
11458         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11459         convert with calls to fold_convert.
11460
11461 2004-02-07  Jan Hubicka  <jh@suse.cz>
11462
11463         * genrecog.c (find_operand): add extra argument stop.
11464         (validate_pattern): Verify that mach_dup is duplicating operand
11465         defined lexically earlier.
11466
11467 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11468
11469         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11470         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11471         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11472         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11473         config/ia64/ia64.h, config/ip2k/ip2k.h,
11474         config/iq2000/iq2000.h, config/mips/iris5.h,
11475         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11476         config/rs6000/aix51.h, config/rs6000/aix52.h,
11477         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11478         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11479         config/sparc/linux.h, config/sparc/linux64.h,
11480         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11481         config/xtensa/xtensa.h: Remove the definitions of
11482         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11483         MAX_WCHAR_TYPE_SIZE.
11484         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11485         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11486
11487 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11488
11489         PR bootstrap/13990
11490         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11491         gen_rtx_NE.
11492
11493 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11494
11495         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11496         #ifdef ENABLE_CHECKING and #endif.
11497
11498 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11499
11500         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11501         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11502         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11503         integer types and floating point with unsafe_math_optimizations.
11504         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11505         Optimize A - B as A + (-B), if B is easily negated.
11506
11507 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11508
11509         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11510         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11511         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11512         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11513         Update copyright.
11514
11515 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11516
11517         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11518
11519 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11520
11521         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11522         glibc 2.3 or better.
11523
11524 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11525
11526         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11527         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11528
11529 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11530
11531         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11532         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11533         (SHLIB_MKMAP_OPTS): Delete.
11534         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11535         (bispecs): Add rule.
11536         * config/rs6000/libgcc-ppc64.ver: New file.
11537         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11538         (__floatdidf, __floatdisf): Optimize multiply.
11539         (__fixunstfdi): New function.
11540         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11541         real and imag parts larger than one register.
11542         (function_arg): Correct type of reg used when fp arg split partially
11543         to stack.
11544         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11545         and __MACH__ or __powerpc64__.
11546
11547 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11548             Ulrich Weigand  <uweigand@de.ibm.com>
11549
11550         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11551         of gen_highpart or gen_lowpart when the floating point format is
11552         wider than the result mode.
11553
11554 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11555
11556         * dwarf2out.c (loclabel_num): Move into #ifdef
11557         DWARF2_DEBUGGING_INFO.
11558
11559 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11560
11561         * objc/objc-act.c (build_super_template) the 'class' field of
11562         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11563         (get_super_receiver): Likewise.
11564
11565 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11566
11567         * reload1.c (check_eliminable_occurrences): Optimize the reset
11568         of can_eliminate.
11569         (eliminate_regs_in_insn): Likewise.
11570
11571 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11572             Josef Zlomek  <zlomekj@suse.cz>
11573
11574         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11575         at the beginning of function, call dwarf2out_var_location for
11576         NOTE_INSN_VAR_LOCATION note.
11577         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11578         decl_loc_table): New.
11579         (lookup_decl_loc): New function.
11580         (add_var_loc_to_decl): New function.
11581         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11582         only if can_use_fbreg.
11583         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11584         functions.
11585         (loc_descriptor): Likewise. Process VAR_LOCATION.
11586         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11587         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11588         can_use_fbreg == true.
11589         (add_location_or_const_value_attribute): Added parameter enum
11590         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11591         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11592         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11593         with attr == DW_AT_location.
11594         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11595         if frame_base_decl is defined and has a location list.
11596         (gen_variable_die): Call add_location_or_const_value_attribute with
11597         attr == DW_AT_location.
11598         (dwarf2out_var_location): New function.
11599         (dwarf2out_begin_function): New function.
11600         (dwarf2out_init): Create decl_loc_table.
11601
11602 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11603
11604         * loop.c (force_movables): Transitively increase the priorities of
11605         all insns forces by an insn, not just the first one.
11606
11607 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11608             Daniel Berlin <dberlin@dberlin.org>
11609
11610         Josef Zlomek  <zlomekj@suse.cz>
11611         * Makefile.in (var-tracking.o): New.
11612         * common.opt (fvar-tracking): New.
11613         * flags.h (flag_var_tracking): New.
11614         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11615         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11616         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11617         * rtl.c (note_insn_name): Likewise.
11618         * rtl.def (VAR_LOCATION): New.
11619         * rtl.h (NOTE_VAR_LOCATION): New.
11620         (NOTE_VAR_LOCATION_DECL): New.
11621         (NOTE_VAR_LOCATION_LOC): New.
11622         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11623         (variable_tracking_main): New exported function.
11624         * timevar.def (TV_VAR_TRACKING): New.
11625         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11626         (dump_file): "vartrack" was added (-dV).
11627         (flag_var_tracking): New.
11628         (f_options): "var-tracking" was added.
11629         (rest_of_handle_variable_tracking): New function.
11630         (rest_of_compilation): Run variable tracking.
11631         (process_options): If user has not specified flag_var_tracking set it
11632         according to optimize, debug_info_level and debug_hooks.
11633         * tree.h (frame_base_decl): New.
11634         * var-tracking.c: New file.
11635         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11636         (ia64_override_options): Set flags to run variable tracking in machine
11637         dependent reorg instead of toplev.c.
11638         (ia64_reorg): Run variable tracking if wanted.
11639         * doc/invoke.texi: Mention variable tracking in -dV,
11640         add and -fvar-tracking.
11641         * doc/passes.texi: Added variable tracking pass.
11642
11643         Daniel Berlin <dberlin@dberlin.org>
11644         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11645         * dbxout.c (dbx_debug_hooks): Likewise.
11646         (xcoff_debug): Likewise.
11647         * debug.c (do_nothing_debug_hooks): Likewise.
11648         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11649         * dwarfout.c (dwarf_debug_hooks): Likewise.
11650         * sdbout.c (sdb_debug_hooks): Likewise.
11651         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11652         * final.c (final_scan_insn): Call var_location debug hook for each
11653         NOTE_INSN_VAR_LOCATION.
11654
11655 2004-02-06  Jan Hubicka  <jh@suse.cz>
11656
11657         * flow.c (update_life_info): Allocate reg_deaths when called from
11658         scheudler.
11659         (attempt_auto_inc):  Update life ranges accordingly.
11660
11661 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11662
11663         PR debug/11816
11664         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11665
11666 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11667
11668         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11669
11670 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11671
11672         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11673         a separate line info table in use.
11674         Use the correct size for terminators.
11675         (output_die): Use offset, not delta.
11676
11677 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11678
11679         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11680
11681 2004-02-06  Jan Hubicka  <jh@suse.cz>
11682
11683         * recog.c (split_all_insns): Do not update reg info.
11684         * regrename.c (regrename_optimize): Likewise.
11685         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11686         * flow.c (struct propagate_block_info): Add insn_num field.
11687         (reg_deaths): New array.
11688         (life_analysis): Free reg_deaths info.
11689         (allocate_reg_life_data): Allocate reg_deaths array.
11690         (propagate_one_insn): Use new array.
11691         (init_propagate_block): Initialize it.
11692         (free_propagate_block_info): Finish compuation of
11693         REG_LIVE_LENGTH
11694         (attempt_auto_inc): Sanity check that REG_INFO is not
11695         computed at same time.
11696         (mark_used_regs): Update new array.
11697
11698         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11699         substitution.
11700
11701 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11702
11703         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11704         *extendqisi2_short_displ.
11705
11706 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11707
11708         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11709         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11710         (emit_library_call_value_1): Likewise pass nargs.
11711         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11712         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11713         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11714         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11715         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11716         prototype.
11717         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11718         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11719         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11720         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11721         INIT_CUMULATIVE_ARGS.
11722         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11723         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11724         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11725         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11726         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11727         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11728         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11729         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11730         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11731         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
11732         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
11733         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
11734
11735 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11736
11737         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
11738         possible.
11739
11740 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11741
11742         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
11743         note containing (plus (reg) (const_int)), where reg is an
11744         eliminable reg, then perform the register elimination without
11745         depending on eliminate_regs().
11746
11747 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11748
11749         * config/arc/arc.c (arc_return_in_memory): Check the return
11750         value of int_size_in_bytes against -1.  Don't check
11751         TREE_ADDRESSABLE.
11752         * config/avr/avr.c (avr_return_in_memory): Check the return
11753         value of int_size_in_bytes against -1.
11754         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
11755         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
11756         Likewise.
11757         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
11758         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
11759         Likewise.
11760
11761 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11762
11763         * config/frv/frv-protos.h: Remove the prototype for
11764         frv_setup_incoming_varargs.
11765         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
11766         (frv_setup_incoming_varargs): Make it static.
11767         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
11768
11769 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11770
11771         * config/fr30/fr30-protos.h: Remove the prototype for
11772         fr30_setup_incoming_varargs.
11773         Update the prototypes for fr30_num_arg_regs and
11774         fr30_function_arg_partial_nregs.
11775         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
11776         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11777         (fr30_setup_incoming_varargs): Make it static.
11778         Add argument second_time.  Don't do anything when second_time
11779         is nonzero.
11780         (fr30_num_arg_regs): Change the type of the first argument to
11781         enum machine_mode.
11782         (fr30_function_arg_partial_nregs): Change the type of the
11783         second argument to enum machine_mode.
11784         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
11785         (SETUP_INCOMING_VARARGS): Remove.
11786
11787 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11788
11789         * config/arc/arc-protos.h: Remove the prototype for
11790         arc_setup_incoming_varargs.
11791         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
11792         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
11793         (arc_setup_incoming_varargs): Make it static.
11794         (arc_external_libcall): Likewise.
11795         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
11796         Remove the commented-out definition of
11797         ASM_OUTPUT_EXTERNAL_LIBCALL.
11798
11799 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
11800
11801         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
11802         to $$(slibdir) in the installation commands.
11803
11804 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11805
11806         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
11807         with inner_regno, not regno.
11808         * rtlanal.c (refers_to_regno_p): Same.
11809
11810 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11811
11812         * config.gcc: Remove i370 support.
11813
11814 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11815
11816         * doc/install.texi:  Update automake and autoconf version
11817         requirements.  Note where to find gcj automake version.
11818
11819 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11820
11821         * Makefile.in (generate-manpages): Move dependencies to ...
11822         (man): here.
11823         * doc/makefile.texi: Document new targets.
11824         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
11825
11826 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
11827
11828         PR/13485
11829         Makefile.in (srcextra):  Add a level of indirection to ...
11830         (gcc.srcextra): ... here.
11831         (po-generated): Delete.
11832         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
11833         options.c.
11834         (start.encap): Remove superfluous lang.srcextra dependency.
11835         objc/Make-lang.in (po-generated):  Delete.
11836
11837 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11838
11839         * config/ia64/ia64.c (REG_GP): Remove.
11840
11841 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11842
11843         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
11844
11845 2004-02-05  Devang Patel  <dpatel@apple.com>
11846
11847         * dwarf2out.c (force_type_die): Look up input type itself
11848         instead of root_type() of type.
11849
11850 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
11851
11852         * config/s390/s390.md ("*tmqidi_ext"): New insn.
11853         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
11854         pre-reload splitters are transformed to post-reload
11855         define_insn_and_split patterns.
11856         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
11857
11858 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11859
11860         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
11861         TARGET_PROMOTE_PROTOTYPES.
11862
11863 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11864
11865         PR middle-end/13750
11866         Revert:
11867         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11868         PR pch/13361
11869         * c-typeck.c (constructor_asmspec): Delete.
11870         (struct initializer_stack): Delete field 'asmspec'.
11871         (start_init): Delete saving of asmspec.
11872         (finish_init): Don't update constructor_asmspec.
11873         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11874         * stmt.c (expand_asm): Duplicate strings from tree.
11875         (expand_asm_operands): Likewise.
11876         * tree.c (tree_size): Update computation of size of STRING_CST.
11877         (make_node): Don't make STRING_CST nodes.
11878         (build_string): Allocate string with tree node.
11879         * tree.def (STRING_CST): Update comment.
11880         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11881         (tree_string): Place contents of string in tree node.
11882         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11883         from tree.
11884
11885 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11886
11887         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
11888         msgid.
11889
11890 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
11891
11892         * config/rs6000/altivec.md (*movv4si_internal): At least one
11893         operand must be altivec_register_operand.
11894         (*movv8hi_internal1): Likewise.
11895         (*movv16qi_internal1): Likewise.
11896         (*movv4sf_internal1): Likewise.
11897
11898 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
11899
11900         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
11901         * configure: Regenerate.
11902
11903 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
11904
11905         * doc/install.texi: Update description of --gxx-include-dir to
11906         give correct default value.
11907
11908 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11909
11910         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
11911         8 with MAC_REG.
11912
11913 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11914
11915         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
11916         gen_rtx_PARALLEL.
11917
11918 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
11919
11920         * emit-rtl.c: Update the comment about the file.
11921
11922 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
11923
11924         * sourcebuild.texi (Test Idioms): Update testcase naming
11925         conventions.
11926
11927 2004-02-04  Per Bothner  <per@bothner.com>
11928
11929         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
11930         * c-ppoutput.c (pp_dir_change):  New function.
11931         * c-common.h (pp_dir_change):  New declaration.
11932         * cpplib.h (struct cpp_options):  Remove working_directory field.
11933         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
11934         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
11935         Don't handle -fworking_directory here, but in c_common_post_options.
11936         (read_original_directory): Don't back up when done.
11937         Don't clear no-longer used working_directory flag.
11938         * cpplib.h:  Update declarations to match.
11939         * c-lex.c (cb_dir_change):  Move to c-opts.c.
11940         (init_c_lex):  Don't set dir_change callback here, since we want
11941         to set it even if flag_preprocess_only.
11942         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
11943         (c_common_post_options):  Set dir_change callback.
11944         Call pp_dir_change if approporiate.
11945         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
11946         unneeded parameter and result. Do LC_RENAME for <built-in>.
11947         (c_common_post_options):  Call cpp_read_main_file here instead.
11948         (c_common_init):  Update accordingly.
11949         (push_command_line_include):  Don't cpp_push_main_file.
11950         Do LC_RENAME rather than LC_LEASE to get back to main file.
11951         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
11952         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
11953         files, but call finish_options for all files.
11954         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
11955         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
11956         cpp_find_main_file + cpp_push_main_file.
11957         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
11958         * opts.c (handle_options):  Only set main_input_filename first time.
11959
11960 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
11961
11962         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
11963
11964 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
11965
11966         * reload.c (find_equiv_reg): When checking for register overlap,
11967         don't index hard_regno_nregs with a pseudo-reg.
11968
11969 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
11970
11971         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
11972
11973 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
11974
11975         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
11976         against FIRST_PSEUDO_REGISTER.
11977
11978 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11979
11980         * Makefile.in: Move target, host overrides after per-language
11981         fragments.
11982
11983         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
11984         (GNATLIBCFLAGS): Remove -g.
11985
11986 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11987
11988         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11989         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
11990         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
11991         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
11992         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
11993         config/sparc/sparc.c, config/vax/vax.c: Revert the
11994         replacements of "FALLTHRU" with "Fall through" done in the
11995         previous patch.
11996
11997 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
11998
11999         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
12000         config/arm/arm.c, config/arm/arm.md,
12001         config/cris/cris-protos.h, config/fr30/fr30.c,
12002         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
12003         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
12004         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
12005         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
12006         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
12007         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
12008         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
12009         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
12010         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
12011         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
12012         config/s390/s390.md, config/sparc/netbsd-elf.h,
12013         config/sparc/openbsd.h, config/sparc/sparc.c,
12014         config/xtensa/lib2funcs.S: Fix comment formatting.
12015
12016 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12017
12018         * config/alpha/alpha.c, config/arc/arc.c,
12019         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
12020         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
12021         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
12022         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
12023         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12024         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12025         config/iq2000/iq2000.c, config/m32r/m32r.c,
12026         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
12027         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
12028         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
12029         config/rs6000/rs6000.h, config/sparc/sparc.c,
12030         config/vax/vax.c: Fix comment typos.  Follow spelling
12031         conventions.
12032
12033 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12034
12035         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
12036         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
12037         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
12038         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
12039         config/arm/fpa.md, config/arm/iwmmxt.md,
12040         config/arm/netbsd-elf.h, config/arm/netbsd.h,
12041         config/m68hc11/m68hc11.md, config/mips/iris5.h,
12042         config/mn10300/mn10300.md, config/rs6000/altivec.md,
12043         config/sparc/netbsd-elf.h: Update copyright.
12044
12045 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12046
12047         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12048         for all modes whose size is greater than 8 bytes if ARCH32.
12049         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
12050         by reference if ARCH32.
12051
12052 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
12053
12054         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
12055
12056 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12057
12058         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
12059         to before adddi3 insn patterns.
12060         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
12061         "reload_insi"): Move to before addsi3 insn patterns.
12062
12063 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
12064
12065         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
12066         parameter.  Use it instead of current_function_is_thunk.
12067         * function.h (struct function): Update documentation for is_thunk.
12068         * tree.h (CALL_FROM_THUNK_P): New macro.
12069         * config/alpha/alpha.c (alpha_sa_mask): Do not check
12070         no_new_pseudos when testing current_function_is_thunk.
12071         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
12072
12073 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12074
12075         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
12076         TARGET_SETUP_INCOMING_VARARGS.
12077
12078 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12079
12080         * emit-rtl.c (gen_rtx): Remove.
12081         * genattrtab.c: Don't mention gen_rtx in a comment.
12082         * rtl.h: Remove the prototype for gen_rtx.
12083         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
12084
12085 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12086
12087         * config/arc/arc.h, config/fr30/fr30.h
12088         (SETUP_INCOMING_VARARGS): Remove the target-independent
12089         comments.
12090         * doc/tm.texi: Don't mention deprecated target macros.
12091
12092 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12093
12094         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
12095         target-independent comment.
12096
12097 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12098
12099         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
12100         mention deprecated target macros.
12101
12102 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12103
12104         * config.gcc: Remove obsolete ports and configurations.
12105         * config/linux-aout.h, config/netware.h,
12106         config/t-linux-gnulibc1, config/d30v/abi,
12107         config/d30v/d30v-protos.h, config/d30v/d30v.c,
12108         config/d30v/d30v.h, config/d30v/d30v.md,
12109         config/d30v/libgcc1.asm, config/d30v/t-d30v,
12110         config/dsp16xx/dsp16xx-modes.def,
12111         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
12112         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
12113         config/i370/README, config/i370/i370-c.c,
12114         config/i370/i370-protos.h, config/i370/i370.c,
12115         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
12116         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
12117         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
12118         config/i386/moss.h, config/i386/netware.h,
12119         config/i386/svr3.ifile, config/i386/svr3dbx.h,
12120         config/i386/svr3gas.h, config/i386/svr3z.ifile,
12121         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
12122         config/i960/i960-c.c, config/i960/i960-coff.h,
12123         config/i960/i960-modes.def, config/i960/i960-protos.h,
12124         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
12125         config/i960/rtems.h, config/i960/t-960bare,
12126         config/m68k/hp310.h, config/m68k/hp320.h,
12127         config/m68k/hp320base.h, config/m68k/m68kv4.h,
12128         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
12129         Remove.
12130         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
12131         doc/md.texi: Remove mentions of obsolete ports.
12132
12133 2004-02-04  Jan Hubicka  <jh@suse.cz>
12134
12135         * alias.c (find_base_term, get_addr):  Do not dereference NULL
12136         pointer when all VALUE's locations has been invalidated.
12137         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
12138
12139 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
12140
12141         * doc/invoke.texi (x86 options): Fix spelling/wording.
12142
12143 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
12144
12145         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
12146         put the original string in a comment.
12147         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
12148         * config/mips/mips.c (mips_output_ascii): Likewise.
12149         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
12150
12151 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12152
12153         * system.h (GIV_SORT_CRITERION): Poison.
12154         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
12155         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
12156
12157 2004-02-03  Roger Sayle  <roger@eyesopen.com>
12158
12159         PR target/9348
12160         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
12161         multiplies with a multiplication of the wrong signedness, its the
12162         signedness of the multiplication that we've performed that needs to
12163         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
12164         if expand_mult_highpart_adjust places the result in target.
12165
12166 2004-02-03  Richard Henderson  <rth@redhat.com>
12167
12168         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
12169
12170 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
12171
12172         * config.gcc (sh[234]l): Use little endian fragments.
12173
12174 2004-02-03  Paul Koning  <pkoning@equallogic.com>
12175
12176         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
12177         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
12178         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
12179         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
12180         floating point format.
12181         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
12182         the above functions.
12183         (output_move_quad): Output float values in correct target format.
12184         (legitimate_const_double_p): New function.
12185         * config/pdp11/pdp11.h: Fix typos.
12186         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
12187         (TARGET_FLOAT_FORMAT): Ditto.
12188         (pdp11_f_format, pdp11_d_format): Add external declarations.
12189         (MAX_REGS_PER_ADDRESS): Corrected.
12190         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
12191         (PRINT_OPERAND): Output float literals in target format.
12192
12193 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
12194
12195         PR c++/13975
12196         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
12197         TI_PRIVATE.
12198         (access_public_node): Redefine.
12199         (access_protected_node): Likewise.
12200         (access_private_node): Likewise.
12201         * tree.c (build_common_tree_nodes): Create access_public_node,
12202         access_protected_node, and access_private_node.
12203
12204 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
12205
12206         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
12207         (MASK_INLINE_INT_DIV_THR): Ditto.
12208         (MASK_INLINE_SQRT_LAT): Ditto.
12209         (MASK_INLINE_SQRT_THR): Ditto.
12210         (MASK_DWARF2_ASM): Ditto.
12211         (MASK_EARLY_STOP_BITS): Ditto.
12212
12213 2004-02-02  Paul Brook  <paul@codesourcery.com>
12214
12215         Merge from csl-arm-branch.
12216
12217         2004-01-30  Paul Brook  <paul@codesourcery.com>
12218
12219         * aof.h (REGISTER_NAMES): Add vfp reg names
12220         (ADDITIONAL_REGISTER_NAMES): Ditto.
12221         * aout.h (REGISTER_NAMES): Ditto.
12222         (ADDITIONAL_REGISTER_NAMES): Ditto.
12223         * arm-protos.h: Update/Add Prototypes.
12224         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
12225         Only allow 0.0 for VFP.
12226         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
12227         (values_fp): Rename from values_fpa.  Update Users.
12228         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
12229         Update users.  Only check valid constants for this hardware.
12230         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
12231         Only allow consts for FPA.
12232         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
12233         Only allow consts for FPA.
12234         (use_return_insn): Check for saved VFP regs.
12235         (arm_legitimate_address_p): Handle VFP DFmode addressing.
12236         (arm_legitimize_address): Ditto.
12237         (arm_general_register_operand): New function.
12238         (vfp_mem_operand): New function.
12239         (vfp_compare_operand): New function.
12240         (vfp_secondary_reload_class): New function.
12241         (arm_float_compare_operand): New function.
12242         (vfp_print_multi): New function.
12243         (vfp_output_fstmx): New function.
12244         (vfp_emit_fstm): New function.
12245         (arm_output_epilogue): Output VPF reg restore code.
12246         (arm_expand_prologue): Output VFP reg save code.
12247         (arm_print_operand): Add 'P'.
12248         (arm_hard_regno_mode_ok): Return modes for VFP regs.
12249         (arm_regno_class): Return classes for VFP regs.
12250         (arm_compute_initial_elimination_offset): Include space for VFP regs.
12251         (arm_get_frame_size): Ditto.
12252         * arm.h (FIXED_REGISTERS): Add VFP regs.
12253         (CALL_USED_REGISTERS): Ditto.
12254         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
12255         (FIRST_VFP_REGNUM): Define.
12256         (LAST_VFP_REGNUM): Define.
12257         (IS_VFP_REGNUM): Define.
12258         (FIRST_PSEUDO_REGISTER): Include VFP regs.
12259         (HARD_REGNO_NREGS): Handle VFP regs.
12260         (REG_ALLOC_ORDER): Add VFP regs.
12261         (enum reg_class): Add VFP_REGS.
12262         (REG_CLASS_NAMES): Ditto.
12263         (REG_CLASS_CONTENTS): Ditto.
12264         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
12265         (REG_CLASS_FROM_LETTER): Add 'w'.
12266         (EXTRA_CONSTRAINT_ARM): Add 'U'.
12267         (EXTRA_MEMORY_CONSTRAINT): Define.
12268         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
12269         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12270         (REGISTER_MOVE_COST): Ditto.
12271         (PREDICATE_CODES): Add arm_general_register_operand,
12272         arm_float_compare_operand and vfp_compare_operand.
12273         * arm.md (various): Rename as above.
12274         (divsf3): Enable when TARGET_VFP.
12275         (divdf3): Ditto.
12276         (movdfcc): Ditto.
12277         (sqrtsf2): Ditto.
12278         (sqrtdf2): Ditto.
12279         (arm_movdi): Disable when TARGET_VFP.
12280         (arm_movsi_insn): Ditto.
12281         (movsi): Only split with general regs.
12282         (cmpsf): Use arm_float_compare_operand.
12283         (push_fp_multi): Restrict to TARGET_FPA.
12284         (vfp.md): Include.
12285         * vfp.md: New file.
12286         * fpa.md (various): Rename as above.
12287         * doc/md.texi: Document ARM w and U constraints.
12288
12289         2004-01-15  Paul Brook  <paul@codesourcery.com>
12290
12291         * config.gcc: Add with_fpu.  Allow with-float=softfp.
12292         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
12293         Break out of loop when we find a float-abi.  Fix typo.
12294         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
12295         Set -mfloat-abi=.
12296         * doc/install.texi: Document --with-fpu.
12297
12298         2003-01-14  Paul Brook  <paul@codesourcery.com>
12299
12300         * config.gcc (with_arch): Add armv6.
12301         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
12302         * config/arm/arm.c (arm_overrride_options): Ditto.
12303
12304         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
12305
12306         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
12307         (FL_ARCH6): Renamed from FL_ARCH6J.
12308         (arm_arch3m): Renamed from arm_fast_multiply.
12309         (arm_arch6): Renamed from arm_arch6j.
12310         * arm.h: Update all uses of above.
12311         * arm-cores.def: Likewise.
12312         * arm.md: Likewise.
12313
12314         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
12315         not arm6j.  Add entry for arch armv6.
12316
12317         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
12318
12319         * arm.c (arm_emit_extendsi): Delete.
12320         * arm-protos.h (arm_emit_extendsi): Delete.
12321         * arm.md (zero_extendhisi2): Also handle zero-extension of
12322         non-subregs.
12323         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
12324         (thumb_zero_extendhisi2): Only match if not v6.
12325         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
12326         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
12327         (thumb_extendqisi2): Likewise.
12328         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
12329         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
12330         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
12331         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
12332         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
12333         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
12334         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
12335         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
12336         (arm_extendqisi2addsi): Likewise.
12337
12338         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
12339
12340         Revert this change:
12341         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12342         + REG addressing modes.
12343
12344         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12345         + REG addressing modes.
12346
12347         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
12348
12349         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
12350         CONSTANT_P_RTX.
12351
12352         2003-30-12  Paul Brook  <paul@codesourcery.com>
12353
12354         * longlong.h: protect arm inlines with !defined (__thumb__)
12355
12356         2003-30-12  Paul Brook  <paul@codesourcery.com>
12357
12358         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
12359
12360         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
12361
12362         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
12363         change.
12364
12365         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12366
12367         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12368         to the virtual incoming args pointer for downward stacks.
12369
12370         2003-12-29  Paul Brook  <paul@codesourcery.com>
12371
12372         * config/arm/arm-cores.def: Add cost function.
12373         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12374         (arm_rtx_costs): Remove
12375         (struct processors): Add rtx_costs field.
12376         (all_cores, all_architectures): Ditto.
12377         (arm_override_options): Set targetm.rtx_costs.
12378         (thumb_rtx_costs): New function.
12379         (arm_rtx_costs_1): Remove cases handled elsewhere.
12380         * config/arm/arm.h (processor_type): Add COSTS parameter.
12381
12382         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12383
12384         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12385         (arm926ejs.md): Include it.
12386         * config/arm/arm926ejs.md: New pipeline description.
12387
12388         2003-12-24  Paul Brook  <paul@codesourcery.com>
12389
12390         * config/arm/arm.c (arm_arch6j): New variable.
12391         (arm_override_options): Set it.
12392         (arm_emit_extendsi): New function.
12393         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12394         * config/arm/arm.h (arm_arch6j): Declare.
12395         * config/arm/arm.md: Add sign/zero extend insns.
12396
12397         2003-12-23  Paul Brook  <paul@codesourcery.com>
12398
12399         * config/arm/arm.c (all_architectures): Add armv6.
12400         * doc/invoke.texi: Document it.
12401
12402         2003-12-19  Paul Brook  <paul@codesourcery.com>
12403
12404         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12405         insn patterns to match.
12406         * config/arm/arm-generic.md: Ditto.
12407         * config/arm/cirrus.md: Ditto.
12408         * config/arm/fpa.md: Ditto.
12409         * config/amm/iwmmxt.md: Ditto.
12410         * config/arm/arm1026ejs.md: Ditto.
12411         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12412         for 11_loadb.
12413
12414         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12415
12416         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12417         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12418         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12419         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12420         arm_no_early_mul_dep): Correctly deal with conditional execution,
12421         parallels and single shift operations.
12422         (arm_no_early_alu_shift_value_dep): Define.
12423         * arm.md (attr type): Replace 'normal' with 'alu',
12424         'alu_shift' and 'alu_shift_reg'.
12425         (attr core_cycles): Adjust.
12426         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12427         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12428         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12429         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12430         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12431         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12432         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12433         attribute appropriately.
12434         * config/arm/arm1026ejs.md (alu_op): Adjust.
12435         (alu_shift_op, alu_shift_reg_op): New.
12436         * config/arm/arm1136.md: Add better bypasses for early
12437         registers. Remove load[234] and store[234] bypasses.
12438         (11_alu_op): Adjust.
12439         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12440
12441         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12442
12443         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12444         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12445         * config/arm/arm.c (arm_no_early_store_addr_dep,
12446         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12447         * config/arm/arm1026ejs.md: Add load-store bypass.
12448         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12449         Add bypasses between instructions.
12450
12451         2003-12-10  Paul Brook  <paul@codesourcery.com>
12452
12453         * config/arm/arm.c (arm_fpu_model): New variable.
12454         (arm_fload_abi): New variable.
12455         (target_fpe_name): Rename from target_fp_name.
12456         (target_fpu_name): New variable.
12457         (arm_is_cirrus): Remove.
12458         (fpu_desc): New struct.
12459         (all_fpus): Define.
12460         (pf_model_for_fpu): Define.
12461         (all_loat_abis): Define.
12462         (arm_override_options): Set fp arch flags based on -mfpu=
12463         and -float-abi=.
12464         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12465         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12466         (*): Use new TARGET_* flags.
12467         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12468         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12469         (TARGET_SOFT_FLOAT): Ditto.
12470         (TARGET_SOFT_FLOAT_ABI): New.
12471         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12472         TARGET_HARD_FLOAT.
12473         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12474         (TARGET_OPTIONS): Add -mfpu=.
12475         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12476         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12477         (arm_pf_model): Define.
12478         (arm_float_abi_type): Define.
12479         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12480         * config/arm/arm.md: Use new TARGET_* flags.
12481         * config/arm/cirrus.md: Ditto.
12482         * config/arm/fpa.md: Ditto.
12483         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12484         * config/arm/semi.h (ASM_SPEC): Ditto.
12485         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12486         (FPUTYPE_DEFAULT): Set to VFP.
12487         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12488
12489         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12490
12491         PR target/12476
12492         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12493         'bx' instead of 'b' to avoid branch range restrictions.  Output
12494         the thunk immediately before the thunked-to function.
12495         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12496         .thumb_func if a thunk is being generated.  Emit .code 16 along
12497         with .thumb_func if a thunk is not being generated.
12498
12499         2003-11-15  Nicolas Pitre <nico@cam.org>
12500
12501         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12502         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12503         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12504         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12505         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12506
12507         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12508             Ian Lance Taylor  <ian@wasabisystems.com>
12509
12510         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12511         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12512
12513         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12514
12515         * config/arm/arm.md (insn):  Add new V6 instruction names.
12516         (generic_sched):  New attr.
12517         * config/arm/arm-generic.md:  Use generic_sched here.
12518         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12519         stages of pipeline.  Adjust latency counts accordingly.
12520         * config/arm/arm1136jfs.md:  New file.
12521
12522         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12523
12524         * config/arm/arm.h (processor_type): New enumeration type.
12525         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12526         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12527         (CPP_CPU_ARCH_SPEC): Likewise.
12528         * config/arm/arm.c (arm_tune): New variable.
12529         (all_cores): Use cores.def.
12530         (all_architectures): Add representative processor.
12531         (arm_override_options): Restructure way in which tuning
12532         information is deduced.
12533         * arm.md: Update "insn" and "type" attributes throughout.
12534         (insn): New attribute.
12535         (type): Compute "mult" from "insn" attribute.  Add load2,
12536         load3, load4 alternatives.
12537         (arm automaton): Move to arm-generic.md.
12538         * config/arm/arm-cores.def: New file.
12539         * config/arm/arm-generic.md: Likewise.
12540         * config/arm/arm1026ejs.md: Likewise.
12541
12542 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12543
12544         * doc/invoke.texi (SPARC options): Remove -mflat and
12545         all -mxxx (xxx:chip) options.
12546         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12547         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12548         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12549         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12550         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12551         * config/sparc/sparc.c: Likewise.
12552         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12553         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12554         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12555         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12556         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12557         (sparc_flat_must_save_register_p): Likewise.
12558         (sparc_flat_compute_frame_size): Likewise.
12559         (sparc_flat_save_restore): Likewise.
12560         (sparc_flat_function_prologue): Likewise.
12561         (sparc_flat_function_epilogue): Likewise.
12562         (sparc_flat_epilogue_delay_slots): Likewise.
12563         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12564         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12565         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12566         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12567         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12568         (CONDITIONAL_REGISTER_USAGE): Likewise.
12569         (FRAME_POINTER_REQUIRED): Likewise.
12570         (INITIAL_ELIMINATION_OFFSET): Likewise.
12571         (BASE_RETURN_VALUE_REG): Likewise.
12572         (BASE_OUTGOING_VALUE_REG): Likewise.
12573         (BASE_PASSING_ARG_REG): Likewise.
12574         (BASE_INCOMING_ARG_REG): Likewise.
12575         (INCOMING_REGNO): Likewise.
12576         (OUTGOING_REGNO): Likewise.
12577         (LOCAL_REGNO): Likewise.
12578         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12579         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12580         (EPILOGUE_USES): Likewise.
12581         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12582         ("flat" attribute): Delete.
12583         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12584         handling.
12585         (call followed by jump define_peephole's): Delete.
12586         (exception_receiver): Likewise.
12587         (builtin_setjmp_receiver): Likewise.
12588         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12589
12590 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12591
12592         PR c/11658
12593         PR c/13994
12594         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12595         on langhooks.h.
12596         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12597         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12598         Include langhooks.h.  Replace c_common_truthvalue_conversion
12599         with the truthvalue_conversion language hook throughout.
12600         (expr_no_commas): Call default_conversion before save_expr
12601         for the first term of the production 'x ? : y'.
12602         * c-common.c (c_common_truthvalue_conversion): Remove
12603         obsolete block.  Invoke recursively the hook instead
12604         of this function.
12605         * c-convert.c (convert): handle ERROR_MARK_NODE.
12606         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12607         returned by the truthvalue_conversion language hook.
12608         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12609         c_objc_common_truthvalue_conversion.
12610         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12611         New function.
12612         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12613         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12614         c_objc_common_truthvalue_conversion.
12615
12616 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12617
12618         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12619         of gen_rtx.
12620         (LIBCALL_VALUE): Likewise.
12621         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12622         gen_rtx_CC0 instead of gen_rtx.
12623         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12624         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12625         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12626         gen_rtx.
12627         (m68hc11_emit_logical): Likewise.
12628
12629 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12630
12631         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12632         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12633         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12634         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12635         config/mips/mips.md, config/mmix/mmix.c,
12636         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12637         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12638         config/rs6000/altivec.md, config/s390/s390.c,
12639         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12640         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12641         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12642         constants that are readily available.
12643
12644 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12645
12646         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12647         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12648         instead of GEN_INT (0).  Do the same for other constants that
12649         are readily available.
12650
12651 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12652
12653         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12654         gen_rtx.
12655         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12656         instead of gen_rtx.
12657         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12658         gen_rtx.
12659         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12660         gen_rtx_ASHIFT instead of gen_rtx.
12661         (udivmodqi4): Likewise.
12662
12663 2004-02-02  Richard Henderson  <rth@redhat.com>
12664
12665         PR target/13789
12666         * expr.c (store_expr): Use force_operand before emit_move_insn.
12667
12668 2004-02-02  Jeff Law  <law@redhat.com>
12669             Roger Sayle  <roger@eyesopen.com>
12670
12671         * tree.c (commutative_tree_code, associative_tree_code): New
12672         functions.
12673         (iterative_hash_expr): Use commutative_tree_code.
12674         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12675         * fold-const.c (operand_equal_p): Use commutative_tree_code
12676         rather than inlining the commutativity check.
12677         (fold): Likewise.
12678
12679 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12680
12681         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12682         * config/frv/frv-protos.h: Remove the prototype for
12683         frv_function_arg_keep_as_reference.
12684         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12685         Remove.
12686         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12687         * config/stormy16/stormy16.h: Remove the commented-out
12688         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12689
12690 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12691
12692         PR target/13914
12693         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12694         for retaddr_column.
12695
12696 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12697
12698         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12699         gen_rtx.
12700
12701 2004-02-02  Eric Christopher  <echristo@redhat.com>
12702             Zack Weinberg  <zack@codesourcery.com>
12703
12704         * c-opts.c (c_common_handle_option): Add -finput-charset.
12705         * c.opt: Ditto.
12706         * cppcharset.c (one_iso88591_to_utf8): Remove.
12707         (convert_iso88591_utf8): Ditto.
12708         (conversion_tab): Remove 8859-1 converter.
12709         (_cpp_input_to_utf8): Remove.
12710         (_cpp_init_iconv_buffer): Ditto.
12711         (_cpp_close_iconv_buffer): Ditto.
12712         (_cpp_convert_input): New function.
12713         (_cpp_default_encoding): Ditto.
12714         * cpphash.h: Add/remove prototypes for above.
12715         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12716         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12717         for narrow execution and input character sets.
12718         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12719         * doc/cppopts.texi: Document -finput-charset.
12720
12721 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12722
12723         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12724         against FIRST_PSEUDO_REGISTER.
12725
12726 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12727
12728         * doc/invoke.texi (SPARC options): Further improve.
12729
12730 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12731
12732         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
12733         config/h8300/h8300.c, config/ip2k/ip2k.md,
12734         config/iq2000/iq2000.c, config/mips/mips.c,
12735         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
12736         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
12737         config/v850/v850.md: Fix indentation.
12738
12739 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12740
12741         * config/sparc/sparc.c (function_arg_slotno): Align TImode
12742         arguments on a 16-byte boundary in the parameter array if ARCH64.
12743         Split handling of TFmode.
12744
12745 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
12746
12747         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
12748         Don't test CONSTANT_P (x).
12749         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
12750         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
12751         Fix misindentation.
12752
12753 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12754
12755         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
12756
12757 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12758
12759         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
12760         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
12761         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
12762         config/iq2000/iq2000.c, config/m32r/m32r.c,
12763         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
12764         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
12765         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
12766         config/stormy16/stormy16.c, config/v850/v850.md,
12767         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
12768
12769 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12770
12771         * config/mcore/mcore.c (block_move_sequence): Replace
12772         gen_rtx_CONST_INT with GEN_INT.
12773
12774 2004-02-02  Jan Hubicka  <jh@suse.cz>
12775
12776         * alias.c (record_set): Use hard_regno_nregs.
12777         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
12778         * builtins.c (apply_args_size): Likewise.
12779         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
12780         mark_set_regs, add_stored_regs, mark_referenced_regs,
12781         insert_restore, insert_save, insert_one_insn): Likewise.
12782         * cfgcleanup.c: Include regs.h
12783         (mark_effect, mentions_nonequal_regs): Likewise.
12784         * cfgrtl.c (mark_killed_regs): Likewise
12785         * combine.c (update_table_tick, record_value_for_reg,
12786         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
12787         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
12788         reg_bitfield_target_p, distribute_notes): Likewise.
12789         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
12790         exp_equiv_p, cse_insn): Likewise.
12791         * cselib.c (cselib_lookup): Likewise.
12792         (cselib_invalidate_regno, cselib_record_set): Likewise.
12793         * df.c (df_ref_record): Likewise.
12794         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
12795         Likewise.
12796         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
12797         count_or_remove_death_notes_bb): Likewise.
12798         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
12799         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
12800         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
12801         * integrate.c (mark_stores): Likewise.
12802         * jump.c (delete_prior_computation): Likewise.
12803         * lcm.c (reg_dies, reg_becomes_live): Likewise.
12804         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
12805         * loop.c (LOOP_REGNO_NREGS): Likewise.
12806         * postreload.c (reload_combine, reload_combine_note_store,
12807         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
12808         * ra-colorize.c (combine, color_usable_p, get_free_reg,
12809         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
12810         try_recolor_web, insert_coalesced_conflicts, check_colors,
12811         break_precolored_alias): Likewise.
12812         * ra-debug.c: Include regs.h
12813         (ra_print_rtx_object): Likewise.
12814         * ra-rewrite (choose_spill_colors): Likewise.
12815         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
12816         * ra.c (init_ra): Likewise.
12817         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
12818         peep2_find_free_register): Likewise.
12819         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
12820         * regclass.c (hard_regno_nregs): New array.
12821         (init_reg_modes_once): Initialize it.
12822         (choose_hard_reg_mode): Use it.
12823         (record_reg_classes): Likewise.
12824         * regmove.c (mark_flags_life_zones): Likewise.
12825         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
12826         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
12827         copy_value, maybe_mode_change, find_oldest_value_reg,
12828         copyprop_hardreg_forward_1):
12829         * regs.h (hard_regno_nregs): Declare.
12830         * realod.c (reload_inner_reg_of_subreg): Use it.
12831         (push_reload, combine_reloads, find_dummy_reload,
12832         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
12833         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
12834         reload_adjust_reg_for_mode): Likewise.
12835         * reload1.c (compute_use_by_pseudos, count_pseudo,
12836         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
12837         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
12838         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
12839         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
12840         delete_output_reload): Likewise.
12841         * resource.c (update_live_status, mark_referenced_resources,
12842         mark_set_resources, mark_target_live_regs): Likewise.
12843         * rtlanal.c:  Include regs.h
12844         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
12845         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
12846         subreg_regno_offset, subreg_offset_representable_p,
12847         hoist_test_store): Likewise.
12848         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
12849         * sched-rgn.c (check_live_1, update_live_1): Likewise.
12850         * stmt.c: Include regs.h
12851         (decl_conflicts_with_clobbers_p): Likewise.
12852         * varasm.c (make_decl_rtl): Likewise.
12853         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
12854
12855 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12856
12857         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
12858         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
12859         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
12860         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
12861         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
12862         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12863         config/iq2000/iq2000.h, config/m32r/m32r.c,
12864         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
12865         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
12866         config/mcore/mcore.c, config/mcore/mcore.h,
12867         config/mcore/mcore.md, config/mips/mips.c,
12868         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
12869         config/rs6000/rs6000.c, config/s390/s390.c,
12870         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
12871         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
12872         "gen_rtx (FOO, " with "gen_rtx_FOO (".
12873
12874 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
12875
12876         * config/h8300/h8300.md (two peephole2's): New.
12877
12878 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
12879
12880         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
12881         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
12882         (ASM_CPU_SPEC): Likewise
12883         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
12884         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
12885
12886 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12887
12888         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
12889         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
12890         (expand_builtin): Always call expand_builtin_pow.
12891
12892 2004-02-01  Roger Sayle  <roger@eyesopen.com>
12893
12894         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
12895         BUILT_IN_SIGNBITL): New GCC builtins.
12896         * builtins.c (expand_builtin_signbit): New function to RTL expand
12897         calls to signbit, signbitf and signbitl as inline intrinsics.
12898         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
12899         (fold_builtin_signbit): New function to perform constant folding
12900         of signbit, signbitf and signbitl.
12901         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
12902
12903         * doc/extend.texi: Document new signbit{,f,l} builtins.
12904
12905 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
12906
12907         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
12908
12909 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
12910
12911         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
12912         "mips_const_double_ok" and "simple_memory_operand", which were
12913         removed from the MIPS port with the mips-3_4-rewrite branch merge.
12914         * config/mips/mips.c (mips16_lay_out_constants): Update comment
12915         for removal of simple_memory_operand.
12916
12917 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12918
12919         * config/c4x/c4x.md: Use GEN_INT instead of
12920         gen_rtx (CONST_INT, ...).
12921
12922 2004-01-31  Richard Henderson  <rth@redhat.com>
12923
12924         * varasm.c (output_constant_pool): Don't zap the pool.
12925
12926 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12927
12928         * genrecog.c (decision_type): Add DT_const_int.
12929         (write_cond) [DT_const_int]: Print a comparison against small
12930         constant.
12931         (write_node): Simplify comparisons against small constants
12932         before printing tests.
12933
12934 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12935
12936         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
12937         instead of gen_rtx_CONST_INT.
12938
12939 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12940
12941         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
12942         instead of gen_rtx_CONST_INT.
12943
12944 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12945
12946         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
12947         hook_bool_CUMULATIVE_ARGS_false.
12948         * targhooks.c (default_strict_argument_naming): Rename to
12949         hook_bool_CUMULATIVE_ARGS_false.
12950         * targhooks.h: Update the prototype for
12951         default_strict_argument_naming.
12952
12953 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12954
12955         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
12956         * config/sh/sh.h: Likewise.
12957         * config/sh/sh.md: Likewise.
12958
12959 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
12960
12961         * doc/invoke.texi (SPARC options): Restructure and update.
12962
12963 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12964
12965         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
12966         STRICT_ARGUMENT_NAMING): Poison.
12967         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
12968         hook_bool_tree_false.
12969         * targhooks.c (default_promote_function_args): Remove.
12970         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
12971         Don't check incoming.
12972         (default_strict_argument_naming): Don't use
12973         STRICT_ARGUMENT_NAMING.
12974         * targhooks.h: Remove the prototype for
12975         default_promote_function_args.
12976
12977 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12978
12979         * config/i386/i386-protos.h: Remove the prototype for
12980         ix86_setup_incoming_varargs.
12981         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
12982         (ix86_setup_incoming_varargs): Make it static.
12983         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
12984
12985 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12986
12987         * alloc-pool.c: Fix comment typos.
12988         * builtin-types.def: Likewise.
12989         * builtins.def: Likewise.
12990         * c-pretty-print.c: Likewise.
12991         * df.h: Likewise.
12992         * reload1.c: Likewise.
12993
12994 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
12995
12996         * doc/invoke.texi: Follow spelling conventions.
12997         * doc/tm.texi: Likewise.
12998
12999 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13000
13001         * doc/install.texi: Fix typos.
13002         * doc/invoke.texi: Likewise.
13003
13004 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
13005
13006         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
13007         registers as pointers.
13008         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
13009
13010 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
13011
13012         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
13013         and restore it to gen_lowpart_general on exit.
13014         (gen_lowpart_for_combine): Adjust all callers to go through
13015         gen_lowpart.
13016         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
13017         and restore it to gen_lowpart_general on exit.
13018         (gen_lowpart_if_possible): Adjust all callers to go through
13019         gen_lowpart.
13020         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
13021         (gen_lowpart): Declare as pointer to function, initialized to
13022         gen_lowpart_general.
13023         * rtl.h (gen_lowpart): Declare as pointer to function.
13024
13025 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13026
13027         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13028         * calls.c: Likewise.
13029         * emit-rtl.c: Likewise.
13030         * function.c: Likewise.
13031         * reload1.c: Likewise.
13032         * config/i386/cygming.h: Likewise.
13033         * config/i386/i386.c: Likewise.
13034         * config/i386/winnt.c: Likewise.
13035
13036 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
13037
13038         PR bootstrap/9249
13039         * doc/install.texi: document --enable-__cxa_atexit option.
13040         * configure.ac: Disable __cxa_atexit if not supported.
13041         * configure: Regenerate.
13042
13043 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
13044
13045         * ggc-zone.c (ggc_free): New function.
13046
13047 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13048
13049         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
13050         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
13051         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
13052         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
13053         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
13054         config/alpha/alpha.c, config/alpha/alpha.h,
13055         config/alpha/alpha.md, config/alpha/unicosmk.h,
13056         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
13057         config/c4x/c4x-protos.h, config/c4x/c4x.md,
13058         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
13059         config/frv/frvend.c, config/i386/cygming.h,
13060         config/i386/djgpp.h, config/i386/emmintrin.h,
13061         config/i386/gthr-win32.c, config/i386/i386-interix.h,
13062         config/i386/i386-protos.h, config/i386/openbsd.h,
13063         config/i386/winnt.c, config/i386/xm-mingw32.h,
13064         config/i386/xmmintrin.h, config/ia64/ia64.md,
13065         config/iq2000/iq2000.md, config/m32r/m32r.md,
13066         config/m68k/m68k.md, config/mcore/mcore-elf.h,
13067         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
13068         config/mips/iris5gas.h, config/mips/iris6.h,
13069         config/mips/iris6gas.h, config/mips/linux.h,
13070         config/mips/mips.md, config/mips/netbsd.h,
13071         config/mips/openbsd.h, config/mips/windiss.h,
13072         config/pa/fptr.c, config/rs6000/aix.h,
13073         config/rs6000/altivec.h, config/rs6000/darwin.h,
13074         config/rs6000/xcoff.h, config/s390/s390-protos.h,
13075         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
13076         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
13077         config/sparc/sol2.h: Update copyright.
13078
13079 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
13080
13081         * Makefile.in (abs_docdir, abs_srcdir): Define.
13082         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
13083
13084 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13085
13086         * genconfig.c (main): Have CC0_P check its operand even on a
13087         target without cc0.
13088
13089 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13090
13091         * config/alpha/alpha.c: Remove mentions of deprecates macros
13092         in comments, remove some target-independent comments about target
13093         macros, and/or add minimal function comments for target hook
13094         implementations.
13095         * config/avr/avr.c: Likewise.
13096         * config/ia64/ia64.h: Likewise.
13097         * config/ip2k/ip2k.c: Likewise.
13098         * config/iq2000/iq2000.c: Likewise.
13099         * config/m32r/m32r.h: Likewise.
13100         * config/m68hc11/m68hc11.c: Likewise.
13101         * config/mcore/mcore.c: Likewise.
13102         * config/mmix/mmix.c: Likewise.
13103         * config/mn10300/mn10300.c: Likewise.
13104         * config/pa/pa.c: Likewise.
13105         * config/pdp11/pdp11.c: Likewise.
13106         * config/rs6000/rs6000.h: Likewise.
13107         * config/sh/sh.c: Likewise.
13108         * config/sh/sh.h: Likewise.
13109         * config/sparc/sparc.c: Likewise.
13110         * config/sparc/sparc.h: Likewise.
13111         * config/stormy16/stormy16.c: Likewise.
13112         * config/xtensa/xtensa.c: Likewise.
13113
13114 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13115
13116         PR optimization/12147
13117         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
13118         RELOAD_FOR_OPADDR_ADDR.
13119         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
13120         might be reused as RELOAD_FOR_OPADDR_ADDR register.
13121
13122 2004-01-30  Jan Hubicka  <jh@suse.cz>
13123
13124         * reload.c (get_secondary_mem): Fix updating of
13125         secondary_memlocs_elim_used.
13126
13127 2004-01-30  Richard Henderson  <rth@redhat.com>
13128
13129         * varasm.c (struct rtx_const, struct pool_constant): Remove.
13130         (MAX_RTX_HASH_TABLE): Remove.
13131         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
13132         (first_pool, last_pool, pool_offset): Remove.
13133         (struct rtx_constant_pool): Split out from ...
13134         (struct varasm_status): ... here.  Reference one via pointer.
13135         (struct constant_descriptor_rtx): Merge struct pool_constant.
13136         (SYMHASH): Remove.
13137         (decode_rtx_const): Remove.
13138         (const_hash_rtx, compare_constant_rtx): Remove.
13139         (record_constant_rtx): Remove.
13140         (const_desc_rtx_hash, const_desc_rtx_eq): New.
13141         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
13142         (const_rtx_hash_1, const_rtx_hash): New.
13143         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
13144         (simplify_subtraction): Use simplify_rtx.
13145         (force_const_mem): Rewrite to use new data structures.
13146         (find_pool_constant): Likewise.
13147         (get_pool_constant, get_pool_constant_mark,
13148         get_pool_constant_for_function, get_pool_mode,
13149         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
13150         (output_constant_pool_2): Split out from output_constant_pool.
13151         (output_constant_pool_1): Likewise.  Use new pool datastructures.
13152         (output_constant_pool): Zap entire pool datastructure.
13153         (mark_constant): Use new pool datastructures.
13154         (mark_constants): Use for_each_rtx.
13155         (mark_constant_pool): Use new pool datastructures.
13156
13157 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
13158
13159         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
13160         Copy operands[1] to pseudo for simplify_gen_subreg.
13161
13162 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13163
13164         * gcse.c (bypass_block): Fix a typo in the previous check-in
13165         to the file.
13166
13167 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
13168
13169         * toplev.c: Include alloc-pool.h.
13170         * Makefile.in (toplev.c): Update dependencies.
13171
13172 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13173
13174         * combine.c (simplify_shift_const, case XOR): Be careful when
13175         commuting XOR with ASHIFTRT.
13176
13177 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13178             Eric Botcazou  <ebotcazou@libertysurf.fr>
13179
13180         * config/sparc/sparc-protos.h: Remove the prototype for
13181         sparc_builtin_saveregs.
13182         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13183         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13184         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13185         (TARGET_STRUCT_VALUE_RTX): Likewise.
13186         (TARGET_RETURN_IN_MEMORY): Likewise.
13187         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13188         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13189         (sparc_builtin_saveregs): Make it static.
13190         (sparc_promote_prototypes): New.
13191         (sparc_struct_value_rtx): Likewise.
13192         (sparc_return_in_memory): Likewise.
13193         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
13194         (PROMOTE_FUNCTION_RETURN): Likewise.
13195         (RETURN_IN_MEMORY): Likewise.
13196         (STRUCT_VALUE): Likewise.
13197         (STRUCT_VALUE_INCOMING): Likewise.
13198         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13199         (STRICT_ARGUMENT_NAMING): Likewise.
13200         (PROMOTE_PROTOTYPES): Likewise.
13201
13202         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
13203
13204 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13205
13206         PR c/12818
13207         * varasm.c (const_hash_1) <STRING_CST>: Use the
13208         address to compute the hash value if flag_writable_strings.
13209         (compare_constant) <STRING_CST>: Compare the addresses
13210         if flag_writable_strings.
13211         (build_constant_desc): Do not copy the expression for a
13212         STRING_CST if flag_writable_strings.
13213
13214 2004-01-30  Jan Hubicka  <jh@suse.cz>
13215
13216         * alloc-pool.c: Include hashtab.h
13217         (alloc_pool_descriptor): New structure
13218         (alloc_pool_hash): New global variable.
13219         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
13220         (create_alloc_pool): Update statistics.
13221         (free_alloc_pool): Likewise.
13222         (pool_alloc): Likewise.
13223         (output_info): New structure
13224         (print_statistics, dump_alloc_pool_statistics): New function.
13225         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
13226         (dump_alloc_pool_statistics): Declare.
13227         * toplev.c (finalize):  Dump statistics.
13228
13229         * reload.c (secondary_memlocs_elim_used): New static variable.
13230         (get_secondary_mem): Update it.
13231         (find_reloads): Use it.
13232
13233 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
13234
13235         * toplev.c: Fix broken checkin of 2003-12-30, again.
13236
13237 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13238
13239         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
13240         s390*-*-* targets by specifying a 'nop' insn.
13241         * configure: Regenerate.
13242
13243 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13244
13245         PR target/11475
13246         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
13247
13248 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13249
13250         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
13251         of addr when creating MEM copy.
13252
13253 2004-01-29  Devang Patel  <dpatel@apple.com>
13254
13255         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
13256
13257 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13258
13259         PR inline-asm/6162
13260         * reload.c (find_reloads): Only support one pair of commutative
13261         operands.
13262
13263 2004-01-29  Roger Sayle  <roger@eyesopen.com>
13264
13265         PR java/13824
13266         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
13267         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
13268         recursion.
13269
13270 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13271
13272         * config/frv/frv.c: Don't mention deprecated macros in
13273         comments.  Remove some target-independent comments about
13274         target macros.
13275         * config/frv/frv.h: Likewise.
13276
13277 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13278
13279         * cfghooks.c (split_block): Set probability and count of the
13280         new edge.
13281
13282 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
13283
13284         * dwarf2out.c (struct die_struct): Added field decl_id.
13285         (decl_die_table): Changed to hash table.
13286         (decl_die_table_allocated): Deleted.
13287         (decl_die_table_in_use): Deleted.
13288         (DECL_DIE_TABLE_INCREMENT): Deleted.
13289         (decl_die_table_hash): New function.
13290         (decl_die_table_eq): New function.
13291         (lookup_decl_die): Lookup in a hash table.
13292         (equate_decl_number_to_die): Insert into a hash table.
13293         (dwarf2out_init): Init hash table decl_die_table.
13294
13295 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13296
13297         PR optimization/13424
13298         * expr.c (store_constructor): Revert 2003-12-03 change.
13299
13300         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
13301         expected before returning early.  Avoid sharing RTL if they
13302         need to be changed.
13303
13304         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
13305         handling so that memory attributes are preserved.  Don't call
13306         ix86_set_move_mem_attrs.
13307         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
13308         (ix86_expand_clrstr): Rename src argument to
13309         dst.  Rework rep_stos and strset handling so that memory attributes
13310         are preserved.
13311         (ix86_expand_strlen): Pass src argument to
13312         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
13313         memory attributes are preserved.
13314         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
13315         change_address instead of gen_rtx_MEM.
13316         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
13317         expanders.
13318         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
13319         strmovqi, strmovqi_rex64): Remove.
13320         (rep_mov*, strmov*): Prefix insn names with *.
13321         (strset, strset_singleop, rep_stos): New expanders.
13322         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
13323         strsetqi, strsetqi_rex64): Remove.
13324         (rep_stos*, strset*): Prefix insn names with *.
13325         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
13326         to SImode.
13327         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
13328         are preserved.
13329         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
13330         Prefix insn names with *.
13331         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
13332         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
13333         (strlenqi_1): New expander.
13334         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
13335
13336 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13337
13338         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
13339         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
13340         verify_flow_info): Declaration removed.
13341         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
13342         (debug_bb, debug_bb_n): Add argument to dump_bb call.
13343         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
13344         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
13345         instead of delete_block.
13346         * cfghooks.c: Include timevar.h and toplev.h.
13347         (cfg_hooks): Define here.
13348         (verify_flow_info, dump_bb): Moved from cfg.c.
13349         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13350         split_block, split_block_after_labels, move_block_after,
13351         delete_basic_block, split_edge, create_basic_block,
13352         create_empty_bb, can_merge_blocks_p, merge_blocks,
13353         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13354         New functions.
13355         * cfghooks.h (struct cfg_hooks): Added fields name,
13356         make_forwarder_block, tidy_fallthru_edge and
13357         move_block_after. Changed type of verify_flow_info, dump_bb,
13358         split_block fields. Renamed cfgh_split_edge and delete_block
13359         fields.
13360         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13361         split_block, delete_block, split_edge, create_basic_block,
13362         can_merge_blocks_p, merge_blocks): Macros removed.
13363         (cfg_hooks): Do not export.
13364         (verify_flow_info, dump_bb, redirect_edge_and_branch,
13365         redirect_edge_and_branch_force, split_block, split_block_after_labels,
13366         move_block_after, delete_basic_block, split_edge, create_basic_block,
13367         create_empty_bb, can_merge_blocks_p, merge_blocks,
13368         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13369         Declare.
13370         (cfg_layout_rtl_cfg_hooks): Declare.
13371         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13372         New functions.
13373         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13374         (redirect_edge_with_latch_update): Removed.
13375         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13376         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13377         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13378         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13379         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13380         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13381         cfghooks.c.
13382         (rtl_create_basic_block): Coding style fix.
13383         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13384         rtl_make_forwarder_block): New functions.
13385         (update_cfg_after_block_merging): Removed.
13386         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13387         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13388         to dump_bb.
13389         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13390         find_if_case_2): Don't update dominators.
13391         * timevar.def (TV_CFG_VERIFY): New.
13392         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13393         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13394         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13395         (remove_bbs): Don't call remove_bbs.
13396         (create_preheader): Use make_forwarder_block.
13397         (mfb_keep_just, mfb_update_loops): New static functions.
13398
13399 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13400
13401         * config/avr/avr.h: Remove target-independent comments about
13402         target macros.
13403
13404 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13405
13406         * timevar.c (timevar_print): Mention when checking is enabled.
13407
13408 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13409
13410         * c-lex.c (c_lex): Rename to...
13411         (c_lex_with_flags): Add new parameter to get CPP flags.
13412         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13413         * c-pragma.h (c_lex_with_flags): Declare.
13414
13415 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13416
13417         * config/mcore/mcore.c (mcore_external_libcall): Add a
13418         comment.
13419         (mcore_return_in_memory): Likewise.
13420
13421 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13422
13423         * config/mcore/mcore-protos.h: Remove the prototype for
13424         mcore_setup_incoming_varargs.
13425         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13426         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13427         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13428         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13429         (TARGET_STRUCT_VALUE_RTX): Likewise.
13430         (TARGET_RETURN_IN_MEMORY): Likewise.
13431         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13432         (mcore_setup_incoming_varargs): Make it static.  Receive the
13433         first argument by reference.  Add argument second_time.
13434         (mcore_external_libcall): New.
13435         (mcore_return_in_memory): Likewise.
13436         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13437         (PROMOTE_FUNCTION_RETURN): Likewise.
13438         (STRUCT_VALUE): Likewise.
13439         (RETURN_IN_MEMORY): Likewise.
13440         (SETUP_INCOMING_VARARGS): Likewise.
13441         (PROMOTE_PROTOTYPES): Likewise.
13442         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13443
13444 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13445
13446         * config/m32r/m32r-protos.h: Remove the prototype for
13447         m32r_setup_incoming_varargs.
13448         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13449         (TARGET_STRUCT_VALUE_RTX): Likewise.
13450         (TARGET_RETURN_IN_MEMORY): Likewise.
13451         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13452         (m32r_return_in_memory): New.
13453         (m32r_setup_incoming_varargs): Make it static.
13454         * config/m32r/m32r.h: Remove #undef of
13455         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13456         definitions of PROMOTE_FUNCTION_ARGS and
13457         PROMOTE_FUNCTION_RETURN.
13458         (PROMOTE_PROTOTYPES): Remove.
13459         (RETURN_IN_MEMORY): Likewise.
13460         (STRUCT_VALUE): Likewise.
13461
13462 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13463
13464         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13465         (TARGET_STRUCT_VALUE_RTX): Likewise.
13466         (m68k_struct_value_rtx): Likewise.
13467         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13468         STRUCT_VALUE_REGNUM.
13469         (PROMOTE_PROTOTYPES): Remove.
13470         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13471         STRUCT_VALUE_REGNUM.
13472         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13473         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13474
13475 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13476
13477         * config/stormy16/stormy16.c
13478         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13479         TARGET_BUILD_BUILTIN_VA_LIST.
13480
13481 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13482
13483         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13484         (TARGET_STRUCT_VALUE_RTX): Likewise.
13485         (TARGET_RETURN_IN_MEMORY): Likewise.
13486         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13487         (v850_return_in_memory): Likewise.
13488         (v850_setup_incoming_varargs): Likewise.
13489         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13490         (SETUP_INCOMING_VARARGS): Likewise.
13491         (RETURN_IN_MEMORY): Likewise.
13492         (STRUCT_VALUE): Likewise.
13493
13494 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13495
13496         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13497         (fr30_setup_incoming_varargs): Don't use
13498         STRICT_ARGUMENT_NAMING.
13499         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13500         (STRICT_ARGUMENT_NAMING): Likewise.
13501
13502 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13503
13504         * config/frv/frv-protos.h: Remove the prototype for
13505         frv_expand_builtin_saveregs.
13506         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13507         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13508         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13509         STRUCT_VALUE_REGNUM.
13510         (frv_expand_builtin_saveregs): Make it static.
13511         (frv_struct_value_rtx): New.
13512         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13513
13514 2004-01-29  Jan Hubicka  <jh@suse.cz>
13515
13516         PR c++/12850
13517         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13518         initial pointers.
13519         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13520         for functions that will be only inlined.
13521         (cgraph_mark_function_to_output): Likewise.
13522         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13523         do not clear function body.
13524         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13525         (tree_rest_of_compilation): Reorganize the logic releasing function
13526         body to use callgraph datastructure.
13527
13528 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13529
13530         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13531         to register_operand.
13532
13533 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13534
13535         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13536         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13537         match_operand expressions so that all match_dups appear
13538         lexically after their corresponding match_operands.
13539
13540 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13541
13542         * config/h8300/h8300.c (WORD_REG_USED): Use
13543         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13544         (compute_saved_regs): Likewise.
13545         (h8300_expand_prologue): Likewise.  Allocate locals after
13546         saving registers.
13547         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13548         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13549         registers.
13550         (h8300_initial_elimination_offset): Adjust for the new frame
13551         layout, which swaps flips the order of locals and saved
13552         registers.
13553         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13554         (HARD_FRAME_POINTER_REGNUM): New.
13555         (ELIMINABLE_REGS): Add an elimination rule from
13556         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13557         (REGISTER_NAMES): Add fp.
13558         * config/h8300/h8300.md (FP_REG): Change to 11.
13559         (HFP_REG): New.
13560
13561 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13562
13563         * genrecog.c (write_node): Remove a useless local variable.
13564
13565 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13566
13567         * Makefile.in (options.c options.h): Use stamp file s-options to
13568         avoid unnecessary rebuilds.
13569         (options.o): New target listing dependencies.
13570         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13571         (STAGESTUFF): Add s-gtyp-gen.
13572
13573 2004-01-28  Richard Henderson  <rth@redhat.com>
13574
13575         * ggc.h (ggc_free): Declare.
13576         * ggc-common.c (ggc_realloc): Use it.
13577         * ggc-page.c: Remove lots of inline markers.
13578         (globals): Add free_object_list.
13579         (ggc_alloc): Tidy.
13580         (ggc_free, validate_free_objects): New.
13581         (poison_pages): Provide default.
13582         (ggc_collect): Call validate_free_objects; emit markers to
13583         the debug file.
13584
13585 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13586             Jim Wilson  <wilson@specifixinc.com>
13587
13588         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13589         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13590         scratch pointer.
13591         (ia64_secondary_reload_class): Delete case GR_REGS.
13592         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13593         Do not allocate a scratch register.
13594         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13595
13596 2004-01-28  Jan Hubicka  <jh@suse.cz>
13597
13598         * gcse.c (bypass_block): Prevent edges to be unified when we are
13599         about to emit compenstation code.
13600
13601 2004-01-28  Nick Clifton  <nickc@redhat.com>
13602
13603         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13604         the setcwx insn into a register.
13605
13606 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13607
13608         * config/fp-bit.c (pack_d): When using paired doubles to implement
13609         a long double, round the high part separately.
13610         (unpack_d): Fix the case in which the high part is a power of two
13611         and the low part is a nonzero value of the opposite sign.
13612
13613 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13614
13615         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13616         (TARGET_STRUCT_VALUE_RTX): Likewise.
13617         (c4x_external_libcall): Likewise.
13618         (c4x_struct_value_rtx): Likewise.
13619         * config/c4x/c4x.h: Remove.
13620         (STRUCT_VALUE_REGNUM): Likewise.
13621         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13622
13623 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13624
13625         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13626         (TARGET_STRUCT_VALUE_RTX): Likewise.
13627         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13628         (STRUCT_VALUE): Likewise.
13629         (PROMOTE_PROTOTYPES): Likewise.
13630
13631 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13632
13633         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13634         CONST_INT before using INTVAL.
13635
13636 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13637
13638         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13639         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13640         frame if !TARGET_BACKCHAIN.
13641         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13642         TARGET_BACKCHAIN.
13643         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13644
13645 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13646
13647         * ia64.c (ia64_function_arg): When placing HFAs in integer
13648         registers, do not special case the mode used for complex
13649         types.  Do not advance int_regs until the current register
13650         is full.
13651
13652 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13653
13654         PR target/7297
13655         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13656
13657 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13658
13659         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13660         slow, unaligned loads and stores while debugging.  Fix formatting.
13661
13662 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13663
13664         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13665         of computing wmode.
13666         (restore_stack_nonlocal): Same.
13667
13668 2004-01-27  Devang Patel <dpatel@apple.com>
13669
13670         * Makefile.in (dwarf2out.o): Depend on input.h
13671         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13672         imported_module_or_decl.
13673         (xcoff_debug_hooks): Same.
13674         * sdbout.c (sdb_debug_hooks): Same.
13675         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13676         * debug.c (do_nothing_debug_hooks): Same.
13677         (debug_nothing_tree_tree): New function.
13678         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13679         * dwarf2out.c: Include input.h.
13680         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13681         (remove_child_TAG): New function.
13682         (dwarf_tag_name): Handle DW_TAG_imported_module.
13683         (gen_subprogram_die): Equate decl number to declaration die. Do not
13684         remove all children dies while reusing declaration die for definition.
13685         Instead, selectively remove only formal parameters.
13686         (gen_variable_die): Equate variable decl to declaration die.
13687         (gen_field_die): Equate field decl to line number.
13688         (force_namespace_die): Replace it with ...
13689         (force_decl_die): ... this.
13690         (force_type_die): New function.
13691         (setup_namespace_context): Replace use of force_namespace_die() with
13692         force_decl_die().
13693         (gen_namespace_die): Same.
13694         (dwarf2out_imported_module_or_decl): New function.
13695
13696 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13697
13698         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13699         on CQImode and CHImode incoming arguments in register a7.
13700         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13701         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13702         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13703         xtensa_copy_incoming_a7 before reload.
13704
13705 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13706
13707         * coverage.c (get_coverage_counts): Give a different message
13708         if flag_guess_branch_prob is set.
13709         * predict.c (counts_to_freqs): Return an int.
13710         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13711         calculate estimates.
13712
13713 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13714
13715         * config/iq2000/iq2000-protos.h: Remove the prototype for
13716         iq2000_setup_incoming_varargs.
13717         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13718         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13719         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13720         (TARGET_STRUCT_VALUE_RTX): Likewise.
13721         (TARGET_RETURN_IN_MEMORY): Likewise.
13722         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13723         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13724         (iq2000_return_in_memory): Likewise.
13725         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13726         first argument by reference.
13727         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13728         (PROMOTE_FUNCTION_RETURN): Likewise.
13729         (PROMOTE_PROTOTYPES): Likewise.
13730         (RETURN_IN_MEMORY): Likewise.
13731         (STRUCT_VALUE): Likewise.
13732         (SETUP_INCOMING_VARARGS): Likewise.
13733         (STRICT_ARGUMENT_NAMING): Likewise.
13734
13735 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
13736
13737         * fixinc/fixinc.c (test_test): Initialize res.
13738         (start_flexer): Initialize pz_cmd_save.
13739
13740 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13741
13742         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
13743         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
13744
13745 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13746
13747         PR 7198
13748         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
13749         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
13750         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
13751         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
13752         Possibly rename pattern for consistency.
13753         Remove ??? comments suggesting that this be done.
13754         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
13755         New patterns.
13756         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
13757         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
13758         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
13759         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
13760         Update to match.
13761
13762 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
13763
13764         * config/arm/arm.c (output_return_instruction): Only restore IP
13765         into SP if frame_pointer_needed.
13766
13767 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13768
13769         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13770         for SCmode and DCmode if ARCH32.
13771         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
13772         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
13773         if ARCH32.
13774         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
13775         if ARCH32.
13776         (BASE_OUTGOING_VALUE_REG): Likewise.
13777
13778 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
13779
13780         PR target/10904
13781         PR target/13058
13782         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
13783         Forbid mode changes from SImode for lower FP regs if ARCH64.
13784
13785 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13786
13787         * Makefile.in (bt-load.o): Depend on except.h.
13788         * bt-load.c (except.h): #include.
13789         (compute_defs_uses_and_gen): If insn at end of BB can throw
13790         within this function, consider registers used by it unavailable for
13791         btr migration.
13792         (move_btr_def): If insn at end of BB can throw, insert before rather
13793         than after.
13794
13795         * flags.h (flag_btr_bb_exclusive): Declare.
13796         * toplev.c (flag_btr_bb_exclusive): New variable.
13797         (f_options): Add btr-bb-exclusive.
13798         * bt-load.c (augment_live_range): Restore old behaviour if
13799         flag_btr_bb_exclusive is set.
13800         * common.opt: Add entry for -fbtr-bb-exclusive.
13801         * opts.c (common_handle_options): Same.
13802         * doc/invoke.texi: Document -fbtr-bb-exclusive.
13803
13804         * bt-load.c (btrs_live_at_end): New variable.
13805         (compute_defs_uses_and_gen): Compute its pointed-to array.
13806         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
13807         (augment_live_range): When augmenting with a new dominator,
13808         use only its btrs_live_at_end set, but also add in the full set
13809         of the old dominator.
13810         (btr_def_live_range): Use btrs_live_at_end.
13811         (move_btr_def): Set other_btr_uses_before_def, and move new set
13812         to the end of the basic block, if appropriate.
13813         (migrate_btr_defs): Allocate and free btrs_live_at_end.
13814
13815         * bt-load.c (basic_block_freq): Remove outdated comment.
13816
13817 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
13818
13819         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
13820         (PREDICATE_CODES): Remove duplicate.
13821         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
13822         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
13823         (MASK_PROFILE_KERNEL): Adjust define.
13824
13825 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
13826
13827         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
13828         of long string literals from 32 bytes to sizeof (void *) when !-Os
13829         and to 1 with -Os.
13830
13831 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13832
13833         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
13834         constant addresses in the normal mode.
13835
13836 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
13837
13838         * system.h (CHAR_BITFIELD): Delete.
13839         (BOOL_BITFIELD): New.
13840         * c-decl.c (c_scope): Use BOOL_BITFIELD.
13841         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
13842
13843 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13844
13845         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13846         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13847         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13848         (TARGET_STRUCT_VALUE_RTX): Likewise.
13849         (TARGET_RETURN_IN_MEMORY): Likewise.
13850         (arc_return_in_memory): Likewise.
13851         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
13852         (PROMOTE_FUNCTION_RETURN): Likewise.
13853         (RETURN_IN_MEMORY): Likewise.
13854         (STRUCT_VALUE): Likewise.
13855
13856 2004-01-26  Richard Henderson  <rth@redhat.com>
13857
13858         * c-parse.in (extension): Use itype.
13859         (SAVE_EXT_FLAGS): Don't allocate a tree.
13860         (RESTORE_EXT_FLAGS): Don't read a tree.
13861
13862 2004-01-26  Jan Hubicka  <jh@suse.cz>
13863
13864         * cselib.c (discard_useless_values):  Clear out value pointer pointing
13865         to datastructure to be recycled.
13866
13867 2004-01-25  Jan Hubicka  <jh@suse.cz>
13868
13869         * genextract.c (main): Do not output the memset when not checking.
13870
13871 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13872
13873         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
13874         switch statement instead of a chain of if statements.
13875
13876 2004-01-26  Jeff Law  <law@redhat.com>
13877
13878         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
13879         acute accents for Petur Runolfsson's entry.
13880
13881 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13882
13883         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
13884         (TARGET_RETURN_IN_MEMORY): Likewise.
13885         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
13886         (RETURN_IN_MEMORY): Likewise.
13887
13888 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13889
13890          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
13891          unaligned load/store into smaller loads and stores.
13892
13893 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13894
13895         * function.c (assign_parms): Do not assign
13896         long long argument to memory in prologue if
13897         is it loaded into register.
13898
13899 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13900
13901          PR middle-end/13779
13902          * expr.c (emit_group_load): split constant
13903          correctly into register components of PARALLEL insn.
13904
13905 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
13906
13907         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
13908         Use adjust_address_nv directly with appropriate mode.
13909         (restore_stack_nonlocal): Ditto.
13910
13911 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13912
13913         * config/xtensa/xtensa-protos.h: Remove the prototype for
13914         xtensa_builtin_saveregs.
13915         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13916         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13917         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13918         (TARGET_STRUCT_VALUE_RTX): Likewise.
13919         (TARGET_RETURN_IN_MEMORY): Likewise.
13920         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13921         (xtensa_builtin_saveregs): Make it static.
13922         (xtensa_return_in_memory): New.
13923         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
13924         (PROMOTE_FUNCTION_RETURN): Likewise.
13925         (PROMOTE_PROTOTYPES): Likewise.
13926         (STRUCT_VALUE): Likewise.
13927         (RETURN_IN_MEMORY): Likewise.
13928         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13929
13930 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13931
13932         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
13933         (arm_setup_incoming_varargs): Likewise.
13934         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
13935
13936 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13937
13938         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
13939         (cris_setup_incoming_varargs): Likewise.
13940         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
13941
13942 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13943
13944         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
13945         (ns32k_struct_value_rtx): Likewise.
13946         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
13947         NS32K_STRUCT_VALUE_REGNUM.
13948
13949 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13950
13951         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13952         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13953         (TARGET_STRUCT_VALUE_RTX): Likewise.
13954         (arm_struct_value_rtx): Likewise.
13955         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
13956         (STRUCT_VALUE): Likewise.
13957         (STRUCT_VALUE_REGNUM): Likewise.
13958         (PROMOTE_PROTOTYPES): Likewise.
13959
13960 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
13961
13962         * config/ia64/ia64-protos.h: Remove the prototype for
13963         ia64_setup_incoming_varargs and ia64_return_in_memory.
13964         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
13965         (TARGET_RETURN_IN_MEMORY): Likewise.
13966         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13967         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13968         (ia64_setup_incoming_varargs): Adjust the arguments to meet
13969         the requirement of TARGET_SETUP_INCOMING_VARARGS.
13970         (ia64_return_in_memory): Make it static.  Change the return
13971         type to bool from int.  Add an argument.
13972         (ia64_struct_value_rtx): New.
13973         * config/ia64/ia64.h: Remove commented-out definitions of
13974         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
13975         PROMOTE_PROTOTYPES.
13976         (RETURN_IN_MEMORY): Remove.
13977         (STRUCT_VALUE_REGNUM): Likewise.
13978         (STRICT_ARGUMENT_NAMING): Likewise.
13979
13980 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
13981
13982         PR target/13666
13983         * config/sparc/sparc.c (function_arg_union_value): New function.
13984         (function_arg): Use it to deal with unions.
13985         (function_value): Likewise.  Define 'regbase' only for ARCH64.
13986         Replace a conditional statement by a simpler one.
13987
13988 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
13989
13990         * config/mips/mips.c (mips16_optimize_gp): Delete.
13991         (mips_reorg): Don't call it.
13992
13993 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
13994
13995         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
13996         (floatunsqihf2): Remove operand 6.
13997         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
13998         fix patterns.
13999         (ldi_conditional, ldf_conditional): Validate operands.
14000
14001 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14002
14003         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
14004         (HAVE_GAS_HIDDEN): Undefine as interim measure.
14005
14006 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14007
14008         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
14009         memory references if TARGET_EXPOSE_LDP nonzero.
14010
14011 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14012
14013         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
14014
14015 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14016
14017         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
14018         invalid operand combinations.
14019
14020 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14021
14022         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
14023         c4x_legitimate_address_p.  Fix post_modify check.
14024
14025         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
14026         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
14027
14028 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14029
14030         * config/pa/pa-protos.h: Remove the prototype for
14031         hppa_builtin_saveregs.  Add a prototype for
14032         pa_return_in_memory.
14033         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
14034         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14035         (TARGET_STRUCT_VALUE_RTX): Likewise.
14036         (TARGET_RETURN_IN_MEMORY): Likewise.
14037         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14038         (pa_struct_value_rtx): Likewise.
14039         (pa_return_in_memory): Likewise.
14040         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
14041         PA_STRUCT_VALUE_REGNUM.
14042         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
14043         (EXPAND_BUILTIN_SAVEREGS): Remove.
14044         (PROMOTE_PROTOTYPES): Likewise.
14045         (PROMOTE_FUNCTION_RETURN): Likewise.
14046
14047 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14048
14049         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
14050         (TARGET_STRUCT_VALUE_RTX): Likewise.
14051         (vax_struct_value_rtx): Likewise.
14052         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
14053         VAX_STRUCT_VALUE_REGNUM.
14054         (PROMOTE_PROTOTYPES): Remove.
14055
14056 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14057
14058         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
14059
14060 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
14061
14062         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
14063         and MIPS64 have HI/LO interlocks.  Update comment.
14064
14065 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14066
14067         * config/stormy16/stormy16-protos.h: Remove the prototype for
14068         xstormy16_setup_incoming_varargs.
14069         * config/stormy16/stormy16.c
14070         (xstormy16_setup_incoming_varargs): Remove.
14071         (xstormy16_return_in_memory): New.
14072         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14073         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14074         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14075         (TARGET_STRUCT_VALUE_RTX): Likewise.
14076         (TARGET_RETURN_IN_MEMORY): Likewise.
14077         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
14078         (PROMOTE_FUNCTION_RETURN): Likewise
14079         (PROMOTE_PROTOTYPES): Likewise
14080         (RETURN_IN_MEMORY): Likewise
14081         (STRUCT_VALUE): Likewise
14082         (SETUP_INCOMING_VARARGS): Likewise
14083
14084 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14085
14086         * config/mips/mips.c (mips_offset_within_object_p): New function.
14087         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
14088         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
14089         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
14090
14091 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14092
14093         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
14094         (PROMOTE_FUNCTION_RETURN): Likewise.
14095
14096 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14097
14098         * config/mn10300/mn10300-protos.h: Remove the prototype for
14099         mn10300_builtin_saveregs.
14100         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
14101         (TARGET_STRUCT_VALUE_RTX): Likewise.
14102         (TARGET_RETURN_IN_MEMORY): Likewise.
14103         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14104         (mn10300_return_in_memory): Likewise.
14105         (mn10300_builtin_saveregs): Make it static.
14106         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
14107         (RETURN_IN_MEMORY): Likewise.
14108         (STRUCT_VALUE): Likewise.
14109         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14110
14111 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
14112
14113         PR bootstrap/13853
14114         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
14115
14116 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14117
14118         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
14119         using ccr.
14120
14121 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14122
14123         * config/i860/i860-protos.h: Remove the prototype for
14124         i860_saveregs.
14125         * config/i860/i860.c (i860_saveregs): Make it static.
14126         (i860_struct_value_rtx): New.
14127         (TARGET_STRUCT_VALUE_RTX): Likewise.
14128         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14129         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
14130         I860_STRUCT_VALUE_REGNUM.
14131         (EXPAND_BUILTIN_SAVEREGS): Remove.
14132
14133 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14134
14135         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
14136         (TARGET_RETURN_IN_MEMORY): Likewise.
14137         (m68hc11_struct_value_rtx): Likewise.
14138         (m68hc11_return_in_memory): Likewise.
14139         * config/m68hc11/m68hc11.h: Remove a commented-out definition
14140         of PROMOTE_PROTOTYPES.
14141         (RETURN_IN_MEMORY): Remove.
14142         (STRUCT_VALUE_REGNUM): Likewise.
14143
14144 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14145
14146         * config/mmix/mmix-protos.h: Remove the prototype for
14147         mmix_setup_incoming_varargs.
14148         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14149         (TARGET_STRUCT_VALUE_RTX): Likewise.
14150         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14151         (mmix_setup_incoming_varargs): Make it static.
14152         (mmix_struct_value_rtx): New.
14153         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
14154         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
14155         (STRUCT_VALUE_REGNUM): Remove.
14156         (SETUP_INCOMING_VARARGS): Likewise.
14157
14158 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14159
14160         * config/mips/mips-protos.h: Remove the prototypes for
14161         mips_setup_incoming_varargs and mips_return_in_memory.
14162         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14163         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14164         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14165         (TARGET_STRUCT_VALUE_RTX): Likewise.
14166         (TARGET_RETURN_IN_MEMORY): Likewise.
14167         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14168         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14169         (mips_setup_incoming_varargs): Match the prototype for
14170         TARGET_SETUP_INCOMING_VARARGS.
14171         (mips_return_in_memory): Make it static.  Add argument fntype.
14172         (mips_strict_argument_naming): New.
14173         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
14174         (PROMOTE_FUNCTION_ARGS): Likewise.
14175         (PROMOTE_FUNCTION_RETURN): Likewise.
14176         (STRUCT_VALUE): Likewise.
14177         (RETURN_IN_MEMORY): Likewise.
14178         (SETUP_INCOMING_VARARGS): Likewise.
14179         (STRICT_ARGUMENT_NAMING): Likewise.
14180
14181 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14182
14183         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
14184         (TARGET_RETURN_IN_MEMORY): Likewise.
14185         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14186         (ip2k_return_in_memory): Likewise.
14187         (ip2k_setup_incoming_varargs): Likewise.
14188         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
14189         (STRUCT_VALUE): Likewise.
14190         (STRUCT_VALUE_INCOMING): Likewise.
14191         (SETUP_INCOMING_VARARGS): Likewise.
14192
14193 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14194
14195         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
14196         (TARGET_RETURN_IN_MEMORY): Likewise.
14197         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14198         (avr_return_in_memory): Remove.
14199         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
14200         (STRUCT_VALUE): Likewise.
14201         (STRUCT_VALUE_INCOMING): Likewise.
14202         (STRICT_ARGUMENT_NAMING): Likewise.
14203
14204 2004-01-25  Jan Hubicka  <jh@suse.cz>
14205
14206         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
14207
14208 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14209
14210         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
14211         (mips_regno_mode_ok_for_base_p): Declare.
14212         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
14213         (FRAME_POINTER_REGNUM): Renumber to 78.
14214         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
14215         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
14216         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
14217         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
14218         (REG_MODE_OK_FOR_BASE_P): Likewise.
14219         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
14220         entry for 77 to "$arg" and entry for 78 to "$frame".
14221         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
14222         (mips_reg_mode_ok_for_base_p): Remove.
14223         (mips_regno_mode_ok_for_base_p): New function, derived from old
14224         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
14225         restrictions unless we're being strict.
14226         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
14227
14228 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14229
14230         * c-common.h: Fix comment typos.
14231         * c-decl.c: Likewise.
14232         * cgraphunit.c: Likewise.
14233         * combine.c: Likewise.
14234         * et-forest.c: Likewise.
14235         * flow.c: Likewise.
14236         * function.c: Likewise.
14237         * ifcvt.c: Likewise.
14238         * integrate.c: Likewise.
14239         * jump.c: Likewise.
14240         * postreload.c: Likewise.
14241         * varray.c: Likewise.
14242
14243 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14244
14245         * doc/frontends.texi: Update copyright.
14246         * doc/gcov.texi: Likewise.
14247         * doc/gty.texi: Likewise.
14248         * doc/sourcebuild.texi: Likewise.
14249         * doc/standards.texi: Likewise.
14250
14251 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
14252
14253         PR target/12978
14254         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
14255         Remove movstrqi_small because it conflicts with movstrqi_large.
14256
14257 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14258
14259         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14260         (TARGET_STRUCT_VALUE_RTX): Likewise.
14261         (cris_struct_value_rtx): Likewise.
14262         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
14263         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
14264         STRUCT_VALUE_REGNUM.
14265         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
14266
14267 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
14268
14269         PR bootstrap/13848
14270         * cse.c (cse_cc_succs): Change the mode of the source expression
14271         as soon as decide we need a new mode.  Don't permit changing modes
14272         if we found a match in a successor block.
14273         (cse_condition_code_reg): Save original mode of source expression
14274         so that we know whether we have to change the mode in other
14275         insns.
14276
14277 2004-01-24  Jan Hubicka  <jh@suse.cz>
14278
14279         * emit-rtl.c (change_address, adjust_address_1, offset_address,
14280         widen_memory_access):  Return early when there is nothing to change.
14281
14282 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
14283
14284         * simplify-rtx.c (simplify_relational_operation): Don't
14285         simplify address == constant into address + -constant == 0.
14286
14287 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14288
14289         * gcc.c (process_command): Don't internationalize the
14290         Copyright message.
14291         * mips-tfile.c (main): Likewise.
14292
14293 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
14294
14295         * cse.c: (cse_cc_succs) Fix comparison warning.
14296
14297 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14298
14299         * config/h8300/h8300.md: Remove extraneous USE in expanders.
14300
14301 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14302
14303         * config/h8300/h8300-protos.h: Provide prototypes for
14304         h8300_legitimate_constant_p and h8300_legitimate_address_p.
14305         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
14306         (h8300_rtx_ok_for_base_p): Likewise.
14307         (h8300_legitimate_address_p): Likewise.
14308         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
14309         h8300_legitimate_constant_p.
14310         (RTX_OK_FOR_BASE_P): Remove.
14311         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
14312
14313 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14314
14315         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
14316         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
14317         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
14318         (REG_OK_FOR_BASE_STRICT_P): Likewise.
14319         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
14320         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
14321         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
14322         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
14323
14324 2004-01-24  Jan Hubicka  <jh@suse.cz>
14325
14326         * cselib.c (remove_useless_values):  Do not access discarded values.
14327
14328 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
14329
14330         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
14331         arrays.
14332
14333 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14334
14335         * recog.c: Fix a typo in copyright.
14336
14337 2004-01-23  Andrew Pinski  <apinski@apple.com>
14338
14339         * config/rs6000/rs6000.md (call): Fix misappiled patch.
14340         (call_value): Likewise.
14341
14342 2004-01-23  Richard Henderson  <rth@redhat.com>
14343
14344         PR opt/12941
14345         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
14346         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
14347         if SHIFT_COUNT_TRUNCATED is set.
14348
14349 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
14350
14351         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
14352         separate real and imaginary parts.
14353         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
14354
14355 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
14356
14357         PR target/13674
14358         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
14359         loading into GPR.
14360
14361 2004-01-23  Jan Hubicka  <jh@suse.cz>
14362
14363         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
14364         change.
14365
14366         * alloc-pool.c (align_four): Kill.
14367         (create_alloc_pool): Align size to eight.
14368         (free_alloc_pool, free_pool): Invalidate deallocated data.
14369
14370 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14371
14372         PR gcc/1532
14373         * cse.c (cse_change_cc_mode): New static function.
14374         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14375         (cse_condition_code_reg): New function.
14376         * rtl.h (cse_condition_code_reg): Declare.
14377         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14378         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14379         cc_modes_compatible.
14380         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14381         (TARGET_CC_MODES_COMPATIBLE): Define.
14382         (TARGET_INITIALIZER): Add new initializers.
14383         * targhooks.c (default_cc_modes_compatible): New function.
14384         * targhooks.c (default_cc_modes_compatible): Declare.
14385         * hooks.c (hook_bool_intp_intp_false): New function.
14386         * hooks.h (hook_bool_intp_intp_false): Declare.
14387         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14388         (TARGET_CC_MODES_COMPATIBLE): Define.
14389         (ix86_fixed_condition_code_regs): New static function.
14390         (ix86_cc_modes_compatible): Likewise.
14391         * doc/tm.texi (Condition Code): Document new hooks.
14392
14393 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14394
14395         * fixinc/inclhack.def (bad_lval): Renamed to ...
14396         (alpha_bad_lval): ... this.
14397         Removed file list.
14398         Restrict to alpha*-dec-osf*.
14399         * fixinc/fixincl.x: Regenerate.
14400         * fixinc/tests/base/dirent.h: Remove, moving test ...
14401         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14402
14403 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14404
14405         PR c/13814
14406         * c-decl.c (diagnose_mismatched_decls): Also discard a
14407         built-in if we encounter an old-style definition with the
14408         same name.
14409
14410 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14411
14412         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14413         set to default{32,64}.
14414
14415 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14416
14417         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14418         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14419
14420 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14421             Olivier Hainque  <hainque@act-europe.fr>
14422
14423         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14424         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14425
14426 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14427
14428         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14429         size for minipool references.
14430
14431 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14432
14433         * real.c (real_floor, real_ceil): Tweak to allow input and output
14434         arguments to overlap.
14435         (real_round): New function to implement round(3m) semantics.
14436         * real.h (real_round): Prototype here.
14437         * builtins.c (fold_builtin_round): New function to constant fold
14438         round, roundf and roundl.
14439         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14440
14441 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14442
14443         PR optimization/13819
14444         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14445         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14446         (sh_handle_sp_switch_attribute): Remove warning.
14447
14448 2003-11-30  Jan Hubicka  <jh@suse.cz>
14449
14450         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14451
14452 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14453
14454         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14455         may or may not return non-NIL.
14456         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14457         check CANNOT_CHANGE_MODE_CLASS
14458
14459 2004-01-23  Jan Hubicka  <jh@suse.cz>
14460
14461         * basic-block.h (PROP_POSTRELOAD): New macro.
14462         (CLEANUP_LOG_LINKS): New.
14463         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14464         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14465
14466         * cselib.c (value_pool): New.
14467         (new_cselib_val): Use pool.
14468         (cselib_init): Initialize value_pool
14469         (cselib_finish): Free pool.
14470
14471 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14472
14473         * config/sparc/sparc.c (scan_record_type): New function.
14474         (function_arg_slotno): Use it to determine which kinds of
14475         registers the record can be passed in.
14476
14477 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14478
14479         * config/pa/fptr.c: Fix old-style definition.
14480
14481 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14482
14483         PR optimization/13724
14484         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14485         represents the zero bits produced by a ZERO_EXTEND operation.
14486
14487 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14488
14489         PR optimization/13821
14490         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14491         correctly calculate the lowpart offset of the contracted subreg.
14492
14493 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14494
14495         * doc/invoke.texi (Optimize Options): Note that --param arguments
14496         are subject to change without notice.
14497
14498 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14499
14500         * config.gcc (mips-sgi-irix6*o32): Removed.
14501         * config/mips/iris6-o32-as.h: Likewise.
14502         * config/mips/iris6-o32-gas.h: Likewise.
14503         * config/mips/iris6-o32.h: Likewise.
14504
14505 2004-01-22  Jan Hubicka  <jh@suse.cz>
14506
14507         * cfgcleanup.c (first_pass): New static variable.
14508         (try_forward_edges):  Add work limiting check for threading.
14509         (try_crossjump_bb):  Add work limiting check for crossjumping.
14510         (try_optimize_cfg):  Maintain first pass variable.
14511
14512 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14513
14514         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14515         handles complex and vector modes.
14516
14517 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14518
14519         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14520         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14521         (STRICT): Likewise.
14522
14523 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14524
14525         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14526         (genrtl_for_stmt): Remove emit_nop calls.
14527
14528 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14529
14530         PR target/13713
14531         PR target/13324
14532         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14533         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14534         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14535
14536 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14537
14538         * config/arm/arm.c: Include "debug.h".
14539         (thumb_pushpop): Take two new arguments.  Add some commentary.
14540         Output frame information when pushing.
14541         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14542         thumb_pushpop.
14543         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14544         offset, and pass it to thumb_pushpop.  Output CFI information.
14545         (thumb_expand_prologue): Add some frame-related markers and notes.
14546
14547 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14548
14549         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14550         for TARGET_64BIT.
14551         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14552         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14553
14554 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14555             Paolo Bonzini  <bonzini@gnu.org>
14556
14557         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14558         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14559         * rtl.h (subreg_lsb_1): Prototype here.
14560         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14561         sign extensions.
14562
14563 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14564
14565         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14566         macro need not be defined if jump-tables should contain
14567         relative addresses only when -fPIC or -fPIC is in effect.
14568
14569 2004-01-22  Jan Hubicka  <jh@suse.cz>
14570
14571         * alias.c (reg_base_value): Turn into varray.
14572         (reg_base_value_size): Kill.
14573         (old_reg_base_value): New deletable varray.
14574         (alias_invariant_size): New variable.
14575         (REG_BASE_VALUE): Update to use varray.
14576         (find_base_value): Likewise.
14577         (record_set): Likewise.
14578         (record_base_value): Likewise.
14579         (memrefs_conflict_p): Likewise.
14580         (record_set): Likewise
14581         (record_base_value): Likewise.
14582         (memrefs_conflict_p): Use alias_invariant_size.
14583         (init_alias_analysis): Use varray; set alias_invariant_size;
14584         rescale other arrays to be sized by maxreg.
14585         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14586
14587 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14588
14589         * config/sparc/sparc.c (function_arg_slotno): Use
14590         FLOAT_TYPE_P to detect FP fields in structures.
14591         (function_arg_record_value_1): Likewise.
14592         (function_arg_record_value_2): Likewise.
14593
14594 2004-01-22  Jan Hubicka  <jh@suse.cz>
14595
14596         * function.c (allocate_struct_function): Do not initialize expr, emit
14597         and varasm.
14598         (prepare_function_start): Do it here.
14599         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14600
14601 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14602
14603         PR target/13559
14604         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14605         to 'word_mode' once the first slot has been filled.
14606
14607 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14608
14609         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14610         computation of the number of integer registers required.
14611
14612 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14613
14614         * config/i386/i386.md: Simplify certain comparisons of
14615         const_int.
14616
14617 2004-01-21  Andrew Pinski  <apinski@apple.com>
14618
14619         PR target/13785
14620         * config/rs6000/rs6000.md (call_value): Force operand
14621         1 not operand 0 into a register.
14622
14623 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14624
14625         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14626         unwind-dw2-fde.h: Update copyright.
14627
14628 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14629
14630         * pa-protos.h: Update copyright.
14631         * pa.h: Likewise.
14632         * pa.md: Likewise.
14633
14634 2004-01-21  Caroline Tice  <ctice@apple.com>
14635
14636         PR target/12308
14637         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14638         flags register.
14639         (fix_truncdfdi2): Likewise.
14640         (fix_truncsfdi2): Likewise.
14641         (*fix_truncdi_1): Likewise.
14642         (fix_truncxfsi2): Likewise.
14643         (fix_truncdfsi2): Likewise.
14644         (fix_truncsfsi2): Likewise.
14645         (*fix_truncsi_1): Likewise.
14646         (fix_truncxfhi2): Likewise.
14647         (fix_truncdfhi2): Likewise.
14648         (fix_truncsfhi2): Likewise.
14649         (*fix_trunchi_1): Likewise.
14650
14651 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14652
14653         * alias.c, basic-block.h, c-common.c, c-common.h,
14654         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14655         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14656         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14657         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14658         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14659         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14660         genautomata.c, genconditions.c, genemit.c, genflags.c,
14661         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14662         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14663         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14664         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14665         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14666         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14667         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14668         unwind.h, varray.c, varray.h: Update copyright.
14669
14670 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14671
14672         * config/h8300/coff.h: Update copyright.
14673         * config/h8300/elf.h: Likewise.
14674         * config/h8300/h8300-protos.h: Likewise.
14675         * config/h8300/h8300.c: Likewise.
14676         * config/h8300/h8300.h: Likewise.
14677         * config/h8300/h8300.md: Likewise.
14678
14679 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14680
14681         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14682         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14683         ultrix_unistd): New hacks.
14684         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14685         ULTRIX_CONST2_CHECK): Add checks.
14686         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14687         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14688         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14689         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14690         * fixinc/tests/base/locale.h: New file.
14691         * fixinc/fixincl.x: Rebuilt.
14692
14693 2004-01-21  Andreas Jaeger  <aj@suse.de>
14694             Michael Matz  <matz@suse.de>
14695
14696         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14697
14698 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14699
14700         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14701         _Jv_RegisterClasses through a function pointer.
14702
14703 2004-01-21  Falk Hueffner  <falk@debian.org>
14704
14705         PR target/12898
14706         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14707         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14708         which need multiple instructions to emit.
14709
14710 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14711
14712         * config/m32r/m32r.h (CPP_SPEC): Define.
14713
14714 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14715
14716         * c-decl.c (merge_decls): Kill different_binding_level and
14717         different_tu arguments; simplify throughout.
14718         (duplicate_decls): Likewise.
14719         (pushdecl, merge_translation_unit_decls): Update calls to
14720         duplicate_decls.
14721
14722 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14723
14724         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14725         $(SYSTEM_H).
14726         (print-rtl1.o): Depend on $(SYSTEM_H).
14727
14728 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14729
14730         PR bootstrap/12730
14731         * configure.ac: Delete definition and subsitution of docdir.
14732         Add info, man, srcman and srcinfo to target hooks. Create doc/
14733         directory.
14734         * configure: Regenerate.
14735         * Makefile.in: Don't substitute docdir and delete all references
14736         throughout.
14737         (MAKEINFOFLAGS): Define.
14738         (stmp-docobjdir): Delete.
14739         (INFOFILES, MANFILES): Define.
14740         (info): Call lang.info, srcinfo and lang.srcinfo.
14741         (generated-manpages): Call lang.man, srcman and lang.srcman.
14742         (srcinfo, srcman): New rules to copy back files to source directory.
14743         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
14744         (install-man): Revamp rule.
14745         (clean): Update dvi directory.
14746         (distclean): Delete TAGS from front end directorys.
14747         (maintainer-clean): Delete all document files in source directory.
14748
14749         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
14750         (objc.srcman, objc.srcinfo): Likewise.
14751
14752 2004-01-20  Bruce Korb  <bkorb@gnu.org>
14753
14754         * fixinc/inclhack.def(math_exception): bypass only for glibc.
14755         (matherr_decl): rename & relocate as exception_structure.
14756         This fix must precede the math_exception fix.
14757
14758 2004-01-20  Roger Sayle  <roger@eyesopen.com>
14759
14760         * fold-const.c (fold_convert): Rename to fold_convert_const.
14761         (fold_convert_const): Change arguments to take a tree_code,
14762         a type and the operand/expression to be converted.  Return
14763         NULL_TREE if no simplification is possible.  Add support for
14764         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
14765         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
14766         Adjust call to fold_convert to match new fold_convert_const.
14767         Avoid modifying the tree passed to fold in-place.
14768
14769 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
14770
14771         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
14772         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
14773         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
14774
14775 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14776
14777         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
14778         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
14779         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
14780         (emit_move_sequence): Check scratch_reg first in various if statements.
14781         Extend source simplification to handle all 64-bit CONST_INTs.
14782         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
14783         frame size.
14784         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
14785         frame offset calculations.
14786         * pa.h (NEW_HP_ASSEMBLER): Add comment.
14787         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
14788         LEGITIMATE_64BIT_CONST_INT_P): Define.
14789         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
14790         any CONST_INT as legitimate during and after reload.
14791         (VAL_32_BITS_P, INT_32_BITS): Define.
14792         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
14793
14794 2004-01-20  Jan Hubicka  <jh@suse.cz>
14795
14796         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
14797         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
14798         containing hard regs are shared.
14799         (gen_hard_reg_clobber): New function.
14800         (hard_reg_clobbers): New array.
14801         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
14802         (copy_rtx): Do not copy clobbers containing hard regs.
14803         * rtl.h (gen_hard_reg_clobber): Declare.
14804
14805 2004-01-20  Jan Hubicka  <jh@suse.cz>
14806
14807         * varray.c:  Include hashtab.h
14808         (varray_descriptor): New structure.
14809         (hash_descriptor, eq_descriptor, varray_descriptor,
14810         print_statistics): New static functions
14811         (varray_init, varray_grow): Update statistics
14812         (dump_varray_statistics): New function.
14813         * varray.h (dump_varray_statistics): Declare.
14814         * toplev.c (finalize): Call it.
14815         * Makefile.in (varray.o): Add dependency.
14816
14817 2004-01-20  Jan Hubicka  <jh@suse.cz>
14818
14819         * cselib.c: Include alloc-pool.h
14820         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
14821         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
14822         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
14823         unchain_one_elt_loc_list_pool, unchain_one_value,
14824         new_cselib_val): Simplify using allocpool.
14825         (cselib_init): Initialize allocpools.
14826         (cselib_finish): Finish allocpools.
14827         * Makefile.in (cselib.o): Depend on alloc-pool.h
14828
14829 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
14830
14831         * config/mips/mips.c (mips_load_call_address): Make the call insn
14832         use $gp if it could be calling a lazy binding stub.
14833
14834 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
14835
14836         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
14837         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14838         (TARGET_STRUCT_VALUE_RTX): Likewise.
14839         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
14840         (PROMOTE_FUNCTION_RETURN): Remove.
14841         (STRUCT_VALUE): Remove.
14842
14843 2004-01-20  Denis Chertykov  <denisc@overta.ru>
14844
14845         PR bootstrap/13735
14846         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
14847         register as pointer after reload.
14848
14849 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14850
14851         PR optimization/12440
14852         * loop.c: Include ggc.h.
14853         (loop_optimize): Run garbage collector between optimization of loops.
14854         * Makefile.in (loop.o): Add GGC_H dependency.
14855
14856 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
14857
14858         * gcc/config/rs6000/rs6000.c (function_arg) Handle
14859         vector register special in function without prototype.
14860         (function_arg_advance): Vector parameters get always
14861         GPRs allocated for the linux64 target.
14862
14863 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
14864
14865         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
14866         not TARGET_M32RX_MASK.
14867
14868 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
14869
14870         PR target/13557
14871         * config/sparc/sparc.c (function_arg): Reorder the cases.
14872
14873 2004-01-19  Per Bothner  <per@bothner.com>
14874
14875         Move cpp_reader's line_maps field to a shared global.
14876         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
14877         and change the type to a pointer rather than a struct.
14878         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
14879         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
14880         Likewise.
14881         * cppfiles.c (validate_pch):  Likewise.
14882         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
14883         Likewise.
14884         * cpperror.c (print_location):  Likewise.
14885         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
14886         * cppinit.c (cpp_create_reader):  Handle new parameter.
14887         (cpp_destroy):  Don't free line_maps - that's no longer our job.
14888         * input.h (line_table):  New variable.
14889         * toplev.c (line_table):  Declare variable.
14890         (general_init):  Initialize line_table.
14891         * c-opts.c (c_common_init_options):  Pass line_table to
14892         cpp_create_reader.
14893         * fix-header.c (read_scan_file):  New local variable line_table.
14894         Initialize, and pass it to cpp_create_reader.
14895         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
14896         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
14897
14898 2004-01-19  Per Bothner  <per@bothner.com>
14899
14900         Implement a cache for linemap_lookup.
14901         * line-map.h (struct_line_maps):  Add cache field.
14902         * line-map.c (linemap_init):  Zero cache field.
14903         (linemap_add):  Set cache field to offset of newly allocated map.
14904         (linemap_lookup):  Use and set cache field.
14905
14906 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
14907
14908         PR optimization/13567
14909         * cse.c (cse_basic_block): Call cse_insn with a non-null
14910         libcall_insn for the last SET insn of a no-confilict block.
14911
14912 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14913
14914         * Makefile.in (target_noncanonical, program_transform_name): Use
14915         immediate define instead of deferred.
14916         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
14917         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
14918         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
14919         deferred backquote.
14920
14921 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
14922
14923         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
14924         true unconditionally.
14925         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
14926         Remove.
14927         (build_unary_op, build_modify_expr): Don't handle extended
14928         lvalues.
14929         (build_component_ref, build_conditional_expr): Call non_lvalue
14930         instead of pedantic_non_lvalue.
14931         (build_c_cast): Don't condition use of non_lvalue on pedantic.
14932         * fold-const.c (fold): Don't check pedantic directly for
14933         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
14934         passed to pedantic_non_lvalue.
14935         * doc/extend.texi: Remove documentation of extended lvalues.
14936
14937 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14938
14939         PR optimization/5263
14940         * simplify-rtx.c (associative_constant_p): Delete.
14941         (simplify_associative_operation): Rewrite to linearize terms, and
14942         attempt to simplify new term against both left and right subterms.
14943         (simplify_binary_operation): Call swap_commutative_operands_p on
14944         op0 and op1, not trueop0 and trueop1.  Move the initialization of
14945         trueop0 and trueop1 down to where first needed.
14946         (simplify_relational_operation): Likewise.
14947         * rtlanal.c (commutative_operand_precedence): Also order constant
14948         operands using avoid_constant_pool_reference.
14949
14950 2004-01-19  Richard Henderson  <rth@redhat.com>
14951
14952         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
14953         don't check memory mode.
14954         (unaligned_memory_operand): Likewise.
14955         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
14956         abort for op0 not MEM.
14957
14958         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
14959         is not a reg, copy to a scratch first.
14960         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
14961         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
14962         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
14963         (reload_inqi, reload_inhi): Fix mode of op0.
14964         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
14965         reload_outhi_help): Likewise.  Use define_insn_and_split.
14966
14967         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
14968         as well as $29 dead.
14969
14970 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
14971
14972         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
14973         "tls_object" for thread-local objects.
14974         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
14975         "#tls" for thread-local sections.
14976         * configure.ac (thread-local checks): Specify --fatal-warnings in
14977         every binutils-specific checks.  For sparc*-*-*, test whether the
14978         OS is Solaris and the tools are native and act accordingly.
14979         * configure: Rebuild.
14980
14981 2004-01-19  Jeff Law  <law@redhat.com>
14982
14983         * contrib.texi: Update Paolo Carlini's entry.  New entries for
14984         Jerry Quinn and Petur Runolfsson.
14985
14986 2004-01-19  Roger Sayle  <roger@eyesopen.com>
14987
14988         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
14989         size, don't use the larger zero-extending loads.
14990
14991 2004-01-19  Richard Henderson  <rth@redhat.com>
14992
14993         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
14994         * alpha.md (UNSPEC_NT_LDA): Remove.
14995         (UNSPEC_CVTLQ, cvtlq): New.
14996         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
14997         (extendsidi2_fix): Remove.
14998         (extendsidi2 splitter): Use cvtlq.
14999         (extendsidi2 fp peepholes): Remove.
15000         (cvtql): Use SFmode instead of SImode.
15001         (fix_trunc?fsi): Update to match.
15002         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
15003         (movsi): Rename from movsi_nofix, remove f alternatives.
15004         (movsi_nt_vms): Similarly.
15005         (movsi_fix, movsi_nt_vms_fix): Remove.
15006         (nt_lda): Remove.
15007         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
15008
15009 2004-01-19  Jan Hubicka  <jh@suse.cz>
15010
15011         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
15012         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
15013         list.
15014         (cgraph_remove_unreachable_nodes): New function
15015         (cgraph_decide_inlining_of_small_function): Fix pasto.
15016         (cgraph_decide_inlining_incrementally): Fix pasto.
15017         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
15018
15019 2004-01-19  Steven Bosscher  <stevenb@suse.de>
15020
15021         * gengtype.c (header_file): Make it static.
15022         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
15023         * gengtype.h (header_file): No longer extern.
15024
15025 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15026
15027         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
15028         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
15029         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
15030
15031 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15032
15033         * stmt.c (HAVE_casesi): Define it not already defined.
15034         (HAVE_tablejump): Likewise.
15035         (expand_end_case_type): Resort to the binary tree method if
15036         neither casesi or tablejump is available.
15037
15038 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
15039
15040         * final.c (final_scan_insn): Make non-static again.
15041         * output.h (final_scan_insn): Re-add prototype.
15042         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
15043         to final_scan_insn call.
15044         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
15045         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
15046         * config/pa/pa.c (output_lbranch, output_call): Likewise.
15047         * config/sh/sh.c (print_slot): Likewise.
15048         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
15049         (output_sibcall, sparc_flat_function_epilogue): Likewise.
15050
15051 2004-01-18  Jan Hubicka  <jh@suse.cz>
15052
15053         * basic-block.h (try_redirect_by_replacing_jump): Declare.
15054         * cfgcleanup.c (try_optimize_cfg): Use it.
15055         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
15056         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
15057         Kill hack.
15058         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
15059
15060         Revert:
15061         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15062
15063                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15064                 even after reload, just don't remove the actual jump tables.
15065
15066 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15067
15068         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
15069
15070 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15071
15072         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
15073         the size of a pointer in bytes.
15074
15075 2004-01-18  Roger Sayle  <roger@eyesopen.com>
15076
15077         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
15078         live "next" variable, which could lead to an infinite loop.
15079
15080 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
15081
15082         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
15083         block.
15084
15085         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15086         Check for NULL in the chain and remove repeated code.
15087
15088 2004-01-18  Jan Hubicka  <jh@suse.cz>
15089
15090         * coverage.c (checksum_string): Rename to ...
15091         (coverage_checksum_string): ... this one, Use crc32_string; recognize
15092         names containing random number and zero the number out in order to get
15093         match.
15094
15095 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15096
15097         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
15098
15099 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15100
15101         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
15102         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
15103         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
15104         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
15105         doc/trouble.texi: Remove trailing whitespace.
15106
15107 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15108
15109         PR target/7618
15110         * config/mips/mips.c: Include cfglayout.h.
15111         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15112         (mips_unspec_offset_high): Add temporary register argument.
15113         (mips_load_call_address): New function, split out from...
15114         (mips_expand_call): ...here.
15115         (mips_output_cplocal): New function.
15116         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
15117         (mips_emit_loadgp): New function, split out from...
15118         (mips_expand_prologue): ...here.
15119         (mips_output_mi_thunk): New function.
15120
15121 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
15122
15123         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
15124         mcpu32): Remove redundant checks for implied target predefines.
15125
15126 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
15127
15128         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15129         Return type is unsigned int not int.
15130         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15131         Likewise.
15132
15133 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15134
15135         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
15136         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
15137         "GNU/Linux" and "Microsoft Windows" terminology.
15138
15139 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15140
15141         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
15142         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
15143         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
15144         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
15145         @smallexample instead of @example.
15146
15147 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
15148
15149         * objc/objc-act.c (build_objc_method_call): Use target
15150         hooks instead of macros to determine if ..._stret
15151         dispatchers should be used (NeXT runtime only).
15152
15153 2004-01-17  Roger Sayle  <roger@eyesopen.com>
15154
15155         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
15156         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
15157
15158 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15159
15160         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
15161         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
15162         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
15163         macros.
15164         * reload1.c (emit_reload_insns): Use them.
15165         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
15166         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
15167         for NULL PATTERN.
15168
15169 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15170
15171         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
15172         (final_scan_insn): Update to take an additional SEEN argument.  Emit
15173         a line note after the prologue.  Make static.
15174         (line_note_exists): Remove.
15175         (final): Don't initialize line_note_exists.  Update call to
15176         final_scan_insn.
15177         * output.h (final_scan_insn): Remove prologue.
15178         * function.c (set_insn_locators): Update comment.
15179         (thread_prologue_and_epilogue_insns): Add a comment.
15180
15181 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
15182
15183         PR target/10781
15184         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15185         Prototype.
15186         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15187         New function.
15188         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
15189         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
15190         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
15191
15192 2004-01-17  Jan Hubicka  <jh@suse.cz>
15193
15194         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
15195         commit.
15196
15197         * toplev.c (HAVE_conditional_execution): Provide default.
15198         (rest_of_handle_reorder_blocks): For conditional_execution target
15199         update liveness once after all transformations
15200         (rest_of_compilation): Do crossjumping before ce3.
15201
15202 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
15203
15204         * alias.c (new_alias_set): Mark last_alias_set for PCH.
15205         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
15206         for PCH.
15207         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
15208         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
15209         (get_TOC_alias_set): Mark 'set' for PCH.
15210
15211 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15212
15213         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15214         even after reload, just don't remove the actual jump tables.
15215
15216 2004-01-17  J. Brobecker  <brobecker@gnat.com>
15217
15218         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
15219         Remove checks for is_ada() and TREE_UNSIGNED.
15220         (subrange_type_die): Emit a byte_size attribute if the subrange
15221         type size is different from the base type size.
15222         (modified_type_die): Replace call to is_ada_subrange_type() by
15223         call to is_subrange_type().
15224
15225 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
15226
15227         * config/sh/sh.c: Include ggc.h.
15228
15229 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15230
15231         * Makefile.in (MD5_H): New.
15232         (fold-const.o): Depend on md5.h.
15233         (dwarf2out.o): Likewise.
15234         (cppfiles.o): Likewise.
15235         * cppfiles.c: Include md5.h.
15236         (should_stack_file): Check against list read from PCH file.
15237         (struct pchf_data): New.
15238         (pchf): New variable.
15239         (struct pchf_adder_info): New.
15240         (pchf_adder): New.
15241         (pchf_save_compare): New.
15242         (_cpp_save_file_entries): New.
15243         (_cpp_read_file_entries): New.
15244         (struct pchf_compare_data): New.
15245         (pchf_compare): New.
15246         (check_file_against_entries): New.
15247         * cpphash.h (_cpp_save_file_entries): Prototype.
15248         (_cpp_read_file_entries): Prototype.
15249         * cpppch.c (cpp_write_pch_state): Write the list of headers.
15250         (cpp_read_state): Read the list of headers.
15251
15252 2004-01-17  Jan Hubicka  <jh@suse.cz>
15253
15254         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
15255         builtin_expect specially.
15256         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
15257         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
15258         * invoke.texi (max-inline-insns-single): Set to 100.
15259         (large-function-insns): Set to 3000.
15260
15261 2004-01-16  Eric Christopher  <echristo@redhat.com>
15262             Chandrakala Chavva <cchavva@redhat.com>
15263
15264         * cppcharset.c (one_iso88591_to_utf8): New function.
15265         (convert_iso88591_utf8): Ditto. Use.
15266         (conversion_tab): Use.
15267         (_cpp_input_to_utf8): New function.
15268         (_cpp_init_iconv_buffer): Ditto.
15269         (_cpp_close_iconv_buffer): Ditto.
15270         * cpphash.h: Prototype new functions.
15271         (cpp_buffer): Add input_cset_desc.
15272         * cppinit.c: Add input_charset default.
15273         * cpplib.c (cpp_push_buffer): Support init and
15274         close of iconv.
15275         * cpplib.h (cpp_options): Add input_charset.
15276
15277 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15278
15279         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
15280         * config/alpha/unicosmk.h: Remove a commented-out definition
15281         of ASM_OUTPUT_SECTION_NAME.
15282         * config/stormy16/stormy16.h: Likewise.
15283
15284 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15285
15286         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
15287         (alpha___extern_prefix_sys_stat): ... this.
15288         Apply to <sys/mount.h>, too.
15289         Tweak to match more variations.
15290         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
15291
15292         * fixinc/inclhack.def (alpha___extern_prefix,
15293         alpha___extern_prefix_standards): New hacks to obey
15294         __PRAGMA_EXTERN_PREFIX.
15295         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
15296         test.
15297         * fixinc/tests/base/standards.h: Likewise.
15298
15299         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
15300         variations.
15301         New testcase.
15302         * fixinc/tests/base/pthread.h: Handle it.
15303
15304         * fixincl/inclhack.def (bad_lval): Sort file list.
15305         Add many missing files up to Tru64 UNIX V5.1B.
15306         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
15307         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
15308         order.
15309
15310         * fixinc/fixincl.x: Regenerate.
15311
15312 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
15313
15314         * version.c (version_string): Change to 3.5.0.
15315         * doc/include/gcc-common.texi (version-GCC): Likewise.
15316
15317 2004-01-16  Jan Hubicka  <jh@suse.cz>
15318
15319         * i386.md (load_tp_di): Fix pasto.
15320
15321         PR opt/13608
15322         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
15323
15324         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
15325         pp_c_character_constant, pp_c_floating_constant,
15326         pp_c_additive_expression, pp_c_shift_expression,
15327         pp_c_equality_expression, pp_c_and_expression,
15328         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
15329         pp_c_logical_and_expression): Remove inline modifier.
15330         * dwarf2out.c (get_AT): Likewise.
15331         * et-forest.c (et_splay): Likewise.
15332         * ra.h (ra_alloc, ra_calloc): Likewise
15333
15334 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15335
15336         * config/frv/frv-protos.h: Fix comment formatting.
15337         * config/frv/frv.c: Likewise.
15338         * config/frv/frv.h: Likewise.
15339         * config/frv/frv.md: Likewise.
15340         * config/frv/frvbegin.c: Likewise.
15341         * config/frv/frvend.c: Likewise.
15342
15343 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15344
15345         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
15346         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
15347         LINKER_DOES_NOT_WORK_WITH_DWARF2.
15348         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
15349
15350 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
15351
15352         PR 11864
15353         * postreload.c (reload_cse_simplify_operands): Don't remove
15354         implicit extension from LOAD_EXTEND_OP.
15355
15356 2004-01-16  Jan Hubicka  <jh@suse.cz>
15357
15358         PR opt/11350
15359         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
15360         after reload.
15361         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
15362         rtl_try_redirect_by_replacing_branch): Likewise.
15363
15364 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15365
15366         PR pch/13689
15367         * alias.c (struct alias_set_entry): Mark for GC.
15368         (alias_sets): Make static, mark for GC.
15369         (record_alias_subset): Use GC to allocate alias structures.
15370         * varray.c (element): Make generic varrays GCed.
15371
15372         PR pch/13361
15373         * c-typeck.c (constructor_asmspec): Delete.
15374         (struct initializer_stack): Delete field 'asmspec'.
15375         (start_init): Delete saving of asmspec.
15376         (finish_init): Don't update constructor_asmspec.
15377         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15378         * stmt.c (expand_asm): Duplicate strings from tree.
15379         (expand_asm_operands): Likewise.
15380         * tree.c (tree_size): Update computation of size of STRING_CST.
15381         (make_node): Don't make STRING_CST nodes.
15382         (build_string): Allocate string with tree node.
15383         * tree.def (STRING_CST): Update comment.
15384         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15385         (tree_string): Place contents of string in tree node.
15386         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15387         from tree.
15388
15389         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15390         altivec operands.
15391
15392 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15393
15394         * c-common.h: Fix comment formatting.
15395         * c-cppbuiltin.c: Likewise.
15396         * c-pragma.c: Likewise.
15397         * calls.c: Likewise.
15398         * collect2.c: Likewise.
15399         * cppcharset.c: Likewise.
15400         * cpptrad.c: Likewise.
15401         * dbxout.c: Likewise.
15402         * defaults.h: Likewise.
15403         * dwarf2out.c: Likewise.
15404         * fold-const.c: Likewise.
15405         * genautomata.c: Likewise.
15406         * genconditions.c: Likewise.
15407         * genflags.c: Likewise.
15408         * gengtype.c: Likewise.
15409         * integrate.c: Likewise.
15410         * loop.c: Likewise.
15411         * predict.c: Likewise.
15412         * sdbout.c: Likewise.
15413
15414 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15415
15416         * config/ia64/ia64.md (*movti_internal): C output template
15417         extracted to ia64.c.
15418         (*movti_internal_reg): Delete.
15419         (reload_inti, reload_outti): Use the correct mode on operand 2
15420         in the first place, don't fix it up in the output template.
15421         (movtf, reload_ointf, reload_outtf): New expanders.
15422         (*movtf_internal): New define_insn_and_split.
15423         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15424         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15425         (ia64_split_tmode_move): New function, body mostly pulled
15426         from ia64.md:*movti_internal.
15427         (ia64_function_arg_words): New function, extracted common
15428         logic from ia64_function_arg et seq.
15429         (ia64_function_arg_offset): Likewise.  Handle correctly the
15430         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15431         (ia64_function_arg, ia64_function_arg_partial_nregs)
15432         (ia64_function_arg_advance): Use ia64_function_arg_words and
15433         ia64_function_arg_offset.
15434         (ia64_function_value): TCmode does not go in float regs.
15435         (ia64_secondary_reload_class): Also handle TFmode.
15436         * config/ia64/ia64-protos.h: Remove prototype for
15437         ia64_split_timode; add prototype for ia64_split_tmode_move.
15438
15439 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15440
15441         * Makefile.in (MAINT): Make it an immediate assignment.
15442
15443 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15444
15445         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15446
15447 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15448
15449         * config/h8300/coff.h: Replace Hitachi with Renesas.
15450         * config/h8300/elf.h: Likewise.
15451         * config/h8300/h8300-protos.h: Likewise.
15452         * config/h8300/h8300.c: Likewise.
15453         * config/h8300/h8300.h: Likewise.
15454         * config/h8300/h8300.md: Likewise.
15455         * config/h8300/lib1funcs.asm: Likewise.
15456
15457 2004-01-15  Andrew Pinski  <apinski@apple.com>
15458
15459         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15460         around it.
15461
15462 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15463
15464         * config/h8300/h8300.c (h8300_return_in_memory): New.
15465         (TARGET_STRUCT_VALUE_RTX): Likewise.
15466         (TARGET_RETURN_IN_MEMORY): Likewise.
15467         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15468         (RETURN_IN_MEMORY): Likewise.
15469
15470 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15471
15472         PR optimization/13375
15473         * gcse.c (handle_avail_expr): Just return if the source is not a
15474         single set.
15475
15476 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15477             Daniel Jacobowitz  <drow@mvista.com>
15478
15479         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15480         (EQUIV): Define.
15481         (ARM_FUNC_ALIAS): New macro.
15482         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15483         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15484
15485 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15486
15487         PR optimization/12372
15488         * calls.c (expand_call): Add call_fusage data for stack arguments in
15489         constant calls.
15490
15491 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15492
15493         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15494         (rs6000_elf_declare_function_name): Formatting.
15495         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15496
15497 2004-01-15  Jan Hubicka  <jh@suse.cz>
15498
15499         PR bootstrap/13692
15500         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15501         previous patch.
15502
15503 2004-01-15  Richard Henderson  <rth@redhat.com>
15504
15505         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15506         integer regs of the same call-savedness.
15507
15508 2004-01-15  Andreas Schwab  <schwab@suse.de>
15509
15510         PR bootstrap/13562
15511         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15512         status for NOTB/NOTW/NEGW methods.
15513
15514 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15515
15516         * doc/invoke.texi: Update dump file names.  Fix a typo.
15517
15518 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15519
15520         * builtins.c (expand_builtin_va_end): Don't use
15521         EXPAND_BUILTIN_VA_END.
15522         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15523         * config/d30v/d30v.h: Remove a commented-out definition of
15524         EXPAND_BUILTIN_VA_END.
15525         * config/stormy16/stormy16.h: Likewise.
15526
15527 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15528
15529         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15530         * targhooks.c (default_struct_value_rtx): Don't use
15531         STRUCT_VALUE_INCOMING_REGNUM.
15532
15533 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15534
15535         PR bootstrap/12744
15536         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15537         GENINSRC and not parsedir.  Define srcextra as a langhook.
15538         * configure: Regenerate.
15539         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15540         parsedir and delete all references throughout.  Conditionally define
15541         rule for srcextra dependent on GENINSRC.
15542         (stmp-docobjdir): Delete.
15543         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15544         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15545         and gengtype-yacc.h back to source directory.
15546         (maintainer-clean): Delete all parse files in source directory.
15547         (distclean): Delete generated files.
15548
15549         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15550         (objc-parse.c, objc-parse.y): Don't use parsedir.
15551         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15552         directory if requested.
15553         (po-generated): Don't use parsedir.
15554         (objc.maintainer-clean): Delete above files from source directory.
15555
15556 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15557
15558         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15559
15560 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15561
15562         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15563         TARGET_RETURN_IN_MEMORY.
15564
15565 2004-01-15  Jan Hubicka  <jh@suse.cz>
15566
15567         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15568         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15569         functions accepting SSE arguments
15570         (function_arg): Warn only when asked to warn.
15571         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15572
15573 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15574
15575         * c-parse.in (stmts_and_decls): Make label at end of compound
15576         statement a hard error.
15577
15578 2004-01-14  Jan Hubicka  <jh@suse.cz>
15579
15580         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15581         * cgraph.h (cgraph_local_info): Sort fields by size; add
15582         redefined_extern_inline
15583         (cgraph_global_info): Sort fields by size.
15584         (cgraph_node): Likewise.
15585         * cgraphunit.c (cgraph_finalize_function): Se
15586         local.redefined_extern_inline on redefinition.
15587         (cgraph_analyze_function): Use it; fix formating.
15588
15589 2004-01-14  Jan Hubicka  <jh@suse.cz>
15590
15591         PR c++/10776
15592         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15593         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15594         bitmaps
15595         (cache_size): New variable
15596         (add_dependence): Update use; canonize early memory locations
15597         (sched_analyze_1): Likewise.
15598         (sched_analyze_2): Likewise.
15599         (init_dependency_caches): Initialize bitmaps.
15600         (free_dependency_caches): Free bitmaps
15601
15602 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15603
15604         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15605         targetm.calls.strict_argument_naming().
15606         * target.h: Likewise.
15607
15608 2004-01-14  Richard Henderson  <rth@redhat.com>
15609
15610         PR debug/13231
15611         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15612         instructions.
15613
15614 2004-01-14  Richard Henderson  <rth@redhat.com>
15615
15616         PR c++/12491
15617         * except.c (struct eh_region): Add u.fixup.resolved.
15618         (resolve_one_fixup_region): Split out from ...
15619         (resolve_fixup_regions): ... here.
15620
15621 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15622
15623         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15624
15625 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15626
15627         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15628         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15629         (STRUCT_VALUE): Remove.
15630
15631 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15632
15633         * system.h: Poison PROMOTED_MODE
15634         * integrate.c (expand_inline_function): Don't mention the
15635         PROMOTED_MODE.
15636         * loop.c (update_giv_derive): Same.
15637         * tree.h (DECL_RTL): Same.
15638
15639 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15640
15641         PR target/9365
15642         * sh.c (gen_block_redirect): Add special handling of RETURN.
15643         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15644         far branch target (i.e. it's a return).
15645
15646 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15647
15648         * regrename.c (find_oldest_value_reg): Fix a warning.
15649
15650 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15651
15652         PR bootstrap/12527
15653         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15654         Move linux-gas.h and linux-elf.h before aout.h.
15655         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15656         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15657
15658 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15659
15660         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15661         (CONST_INT, VOIDmode, ...).
15662
15663 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15664
15665         * regrename.c (find_oldest_value_reg): If the replacement uses
15666         multiple hard registers, check that all of them are in CLASS.
15667
15668 2004-01-14  Jan Hubicka  <jh@suse.cz>
15669
15670         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15671         impossible.
15672
15673 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15674
15675         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15676
15677 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15678
15679         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15680         Calculate always vrsave_mask if TARGET_ALTIVEC.
15681         (rs6000_emit_prologue): Emit code for vrsave
15682         only if TARGET_ALTIVEC_VRSAVE.
15683         (rs6000_emit_epilogue): Likewise.
15684
15685 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15686
15687         * config/sparc/sparc.md (tie_add32): Fix pasto.
15688         (tie_add64): Likewise.
15689
15690 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15691
15692         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15693
15694 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15695
15696         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15697         * config/iq2000/iq2000.c: Likewise.
15698         * config/iq2000/iq2000.md: Likewise.
15699
15700 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15701
15702         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15703         (subrange_type_die): Add handle for nameless subrange types.
15704
15705 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15706
15707         * config/h8300/h8300-protos.h: Replace do_movsi with
15708         h8300_expand_movsi.
15709         * config/h8300/h8300.c (do_movsi): Change to
15710         h8300_expand_movsi.
15711         * config/h8300/h8300.md (movsi): Replace do_movsi with
15712         h8300_expand_movsi.
15713         (movsf): Likewise.
15714
15715 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15716
15717         * config/h8300/h8300.c (dosize): Change to
15718         h8300_emit_stack_adjustment.  Update callers.
15719
15720 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15721
15722         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15723         the source being post_inc.  Tighten the predicate for the
15724         destination to register_operand.
15725         (movstricthi): Likewise.
15726
15727 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15728
15729         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15730         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15731         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
15732
15733 2004-01-14  Jan Hubicka  <jh@suse.cz>
15734
15735         Partial fix PR c++/12850
15736         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
15737         at zero nest level.
15738
15739 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
15740
15741         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
15742         pseudo-register.
15743
15744 2004-01-13  Devang Patel <dpatel@apple.com
15745
15746         PR debug/7078
15747         * dbxout.c (dbxout_symbol_name): Emit mangled names for
15748         NAMESPACE_DECL memebers.
15749
15750 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
15751
15752         PR c++/12709
15753         * c-common.c (finish_fname_decls): Use the chain only if the
15754         tree is an expr_stmt.
15755
15756 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
15757
15758         * rtl.def: Add comment about new option in automata_option.
15759
15760         * genautomata.c (PROGRESS_OPTION): New macro.
15761         (progress_flag): New global variable.
15762         (gen_automata_option): Process `progress'.
15763         (transform_insn_regexps, check_unit_distributions_to_automata,
15764         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
15765         expand_automata, write_automata): Print about the progress only if
15766         progress_flag.  Remove fflush.
15767         (initiate_automaton_gen): Process command line flag `-progress'.
15768
15769         * doc/md.texi: Describe the new option.
15770
15771 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15772
15773         * cfg.c (dump_bb): Dump entry edges.
15774
15775 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
15776
15777         * arm.c (thumb_legitimate_address_p): Only allow constant pool
15778         references from SImode.
15779         * arm.md (thumb_movhi_insn): Don't allow minipool references.
15780
15781 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15782
15783         * system.h (TEXT_SECTION): Poison.
15784         * varasm.c (text_section): Don't use TEXT_SECTION.
15785         * config/sh/sh.c (sh_file_start): Fix a comment typo.
15786         * doc/tm.texi (TEXT_SECTION): Remove.
15787
15788 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
15789
15790         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
15791
15792 2004-01-12  James E Wilson  <wilson@specifixinc.com>
15793
15794         * unwind-libunwind.c: Delete.
15795
15796 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15797
15798         PR 13656
15799         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
15800         oldtype is set, set *newtypep or *oldtypep too.  Do not set
15801         them at the very end.
15802         (validate_proto_after_old_defn): Restructure for comprehensibility;
15803         make error messages clearer.
15804
15805 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
15806
15807         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
15808         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
15809         * varray.c: No need to prototype error.
15810         (varray_check_failed): Wrap long string onto two lines.
15811         (varray_underflow): New function.
15812
15813 2004-01-13  Steven Bosscher  <stevenb@suse.de>
15814
15815         PR c++/13376
15816         * function.h (struct function): Kill `name' field.
15817         (current_function_name): Make it an extern function.
15818         * function.c (current_function_name): New function.
15819         * graph.c: Update all uses of current_function_name.
15820         * gcse.c: Likewise.
15821         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
15822         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
15823         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
15824         instead of a strcmp with "main".
15825
15826 2004-01-13  Jan Hubicka  <jh@suse.cz>
15827
15828         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
15829
15830         * cgraphunit.c (cgraph_optimize_function):  Always do
15831         optimize_inline_calls when there is always_inline callee.
15832         (cgraph_decide_inlining): Fix formating.
15833         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
15834         functions.
15835         (expand_call_inline): Likewise.
15836         * toplev.h (sorry): Fix prototype.
15837
15838 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15839
15840         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
15841         conditional jumps that drop through to unconditional jumps or the
15842         end of the sequence.
15843
15844 2004-01-13  Jan Hubicka  <jh@suse.cz>
15845
15846         * alias.c (new_alias_set): Construct the alias_set varray.
15847         (init_alias_once): Don't do it here.
15848
15849 2004-01-12  Marc Espie <espie@openbsd.org>
15850
15851         * system.h: handle YYBYACC like YYBISON.
15852
15853 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
15854
15855         PR target/10847
15856         * config.gcc: No longer includes conflicting header sparc/sol2.h when
15857         building on sparc64-*-openbsd*.
15858
15859 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
15860
15861         PR debug/13539
15862         * dbxout.c (dbxout_type): Protected inheritance is not
15863         private but protected.
15864
15865 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15866
15867         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
15868
15869 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
15870
15871         PR optimization/12508.
15872         * combine.c (try_combine): Remove a dead set in a parallel
15873         even if its destination is a subreg.
15874
15875         Revert:
15876         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
15877         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
15878         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
15879
15880 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
15881
15882         * real.c: Update copyright date.
15883         * emit-rtl.c: Likewise.
15884         * rtl.h: Likewise.
15885         * dwarf2out.c: Likewise.
15886         * config/rs6000/darwin-ldouble.c: Likewise.
15887         * config/rs6000/rs6000.md: Likewise.
15888
15889 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15890
15891         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
15892         TFmode to SImode libfuncs.
15893
15894 2004-01-12  Roger Sayle  <roger@eyesopen.com>
15895
15896         PR middle-end/11397
15897         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
15898
15899 2004-01-12  Jan Hubicka  <jh@suse.cz>
15900
15901         PR opt/12826
15902         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
15903         stored.
15904
15905         PR opt/12863
15906         * cfgcleanup.c (label_is_jump_target_p): Move to...
15907         * rtlanal.c (label_is_jump_target_p): ... here.
15908         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
15909         edges unified with branch edges.
15910
15911 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
15912
15913         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
15914         high word of an integral CONST_DOUBLE.
15915
15916 2004-01-12  Paul Brook  <paul@codesourcery.com>
15917
15918         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
15919
15920 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
15921
15922         PR target/13585
15923         * sh-protos.h (check_use_sfunc_addr): Declare.
15924         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
15925         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
15926
15927 2004-01-12  Jan Hubicka  <jh@suse.cz>
15928
15929         * alias.c:  Invlude varray.h
15930         (alias_sets): Turn into varray.
15931         (get_alias_set_entry): Use VARRAY; mark inline.
15932         (mems_in_disjoint_alias_sets_p): Mark inline.
15933         (record_alias_subset): Use varray.
15934         (init_alias_once): Initialize varray.
15935         (new_alias_set): Grow array.
15936         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
15937
15938 2004-01-12  Jan Hubicka  <jh@suse.cz>
15939
15940         Partial fix for PR opt/10776 II
15941         * cselib.c: Include params.h
15942         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
15943         locations.
15944         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
15945         * Makefile.in (cselib.o): Depend on params.h
15946
15947 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
15948
15949         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
15950         simplify_unary_operation if the operand has a known mode.
15951
15952 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
15953
15954         PR target/13534
15955         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
15956         predicate to handle 'ld' conform addresses.
15957         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
15958         contraint.
15959         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
15960         are memory contraints.
15961         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
15962         New prototype.
15963         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
15964         Change 'o' to 'Y' constraint.
15965         (*movdf_softfloat64): Ditto.
15966
15967 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
15968
15969         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
15970         brace-enclosed syntax in all C output statements.
15971
15972 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
15973
15974         PR target/13401
15975         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
15976         Objective-C language type value is 14.
15977
15978 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
15979
15980         PR c/12148
15981         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
15982         `int' in a number of places to make sure we always have a SImode
15983         and not a HImode.  Add a 'L' suffix to a number of constants.
15984
15985 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15986
15987         * pa.c: Don't include obstack.h.
15988
15989         * pa.md: Correct constraint in pattern for loading PIC label address.
15990
15991 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
15992
15993         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
15994          before defining.
15995
15996 2004-01-11  Steven Bosscher  <stevenb@suse.de>
15997
15998         PR fortran/9972
15999         * toplev.c (rest_of_handle_inline): Also consider functions
16000         for deferral if the language is GNU F77.
16001
16002 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
16003
16004         * c-decl.c (diagnose_arglist_conflict): Add missing space to
16005         diagnostic messages.
16006
16007 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
16008
16009         PR middle-end/13392
16010         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
16011         to drop through label.  Don't fall back to SCC even when conditional
16012         jump has not been found.
16013
16014 2004-01-11  Jan Hubicka  <jh@suse.cz>
16015
16016         * invoke.texi: Fix syntax error in previous patch.
16017
16018         Partial fix for PR opt/10776
16019         * Makefile.in (reload.o): Include param.h
16020         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
16021         * reload.c: Include params.h.
16022         (find_equiv_reg): Work limiting check.
16023         * invoke.texi: Document.
16024
16025 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16026
16027         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
16028         out-of-bounds accesses to string constants.  Simplify mips16
16029         case accordingly.
16030
16031 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16032
16033         PR optimization/13469
16034         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
16035         reload_cse_regs (-fnon-call-exceptions only).
16036
16037 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
16038
16039         * config/mcore/lib1.asm: Fix comment formatting.
16040         * config/mcore/mcore-elf.h: Likewise.
16041         * config/mcore/mcore.c: Likewise.
16042         * config/mcore/mcore.h: Likewise.
16043         * config/mcore/mcore.md: Likewise.
16044
16045 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16046
16047         * c-decl.c (duplicate_decls): Break apart into...
16048         (diagnose_arglist_conflict, validate_proto_after_old_defn)
16049         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
16050         ... these new functions.  Restructure for comprehensibility.
16051         Remove various archaic special cases.  Always report the
16052         location of the previous declaration when a diagnostic is issued.
16053         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
16054         (match_builtin_function_types): Delete unnecessary forward declaration.
16055
16056 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16057
16058         * genautomata.c (make_automaton, NDFA_to_DFA):
16059         Print progress bars with '.' characters instead of '*'.
16060         (build_automaton): Change notes to match.
16061
16062 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16063
16064         * config/m32r/m32r.md: Use define_constants for unspec and
16065         unspec_volatile.
16066
16067 2004-01-10  Jan Hubicka  <jh@suse.cz>
16068
16069         PR opt/11635
16070         * expr.c (expand_expr_real):  More curefully expand union casts.
16071
16072 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16073
16074         * config/m32r/m32r.md (flush_icache): Use 1 for
16075         unspec_volatile.
16076
16077 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
16078             James E Wilson  <wilson@specifixinc.com>
16079
16080         PR debug/12860
16081         * dbxout.c (dbxout_symbol): Remove initialization of
16082         current_sym_code, current_sym_value, and current_sym_addr.
16083         (dbxout_symbol_location): Same.
16084         (dbxout_prepare_symbol): Zero current_sym_code,
16085         current_sym_value, and current_sym_addr.
16086
16087 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
16088
16089         * tree.c (get_unwidened): Reorder conditions so that the null pointer
16090         check is done first.
16091
16092 2004-01-09  Eric Christopher  <echristo@redhat.com>
16093
16094         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
16095         if we're running mark_constant_function.
16096
16097 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
16098
16099         PR target/12561
16100         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
16101
16102 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
16103
16104         PR debug/11231
16105         * dbxout.c (dbxout_type_fields): Return if any item is
16106         error_mark_node or the type is error_mark_node.
16107
16108 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
16109
16110         * config/rs6000/darwin-ldouble.c: Add big comment explaining
16111         exactly what is expected as a 'long double'.
16112         (_xlqadd): When a value to be returned is representable as a
16113         'double', just return it directly, do not construct it using a union.
16114         Also, correct final fixup.
16115         (_xlqmul): Likewise.
16116         (_xlqdiv): Likewise.
16117         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
16118
16119         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
16120
16121 2004-01-09  Richard Henderson  <rth@redhat.com>
16122
16123         * recog.c (constrain_operands): Validate mem operands.
16124
16125 2004-01-09   James E Wilson  <wilson@specifixinc.com>
16126
16127         * gcc.c (init_spec): Remove -lunwind from shared case.
16128         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
16129
16130 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
16131
16132         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
16133         * configure: Regenerate
16134
16135 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
16136
16137         PR c/11234
16138         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
16139         between function and object pointers.
16140         (digest_init): When comparing a pointer to function type to the
16141         target type, only apply TREE_TYPE once to the pointer to function
16142         type.
16143         * except.c (for_each_eh_label_1): Treat data as a pointer to a
16144         function pointer rather than casting it to a function pointer.
16145         (for_each_eh_label): Update caller.
16146         * recog.h (struct insn_data): Use a struct or union for output.
16147         * genoutput.c (output_insn_data): Update.
16148         * final.c (get_insn_template): Update.
16149
16150 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
16151
16152         * expr.h (expand_expr): Make it a macro, not a function.
16153         (expand_expr_real): New function.
16154         * expr.c (store_expr): Adjust logic for deciding whether or not to
16155         copy the value returned by expand_expr.
16156         (expand_expr): Rename to ...
16157         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
16158         calls to language hooks.
16159         * c-common.h (c_expand_expr): Adjust prototype.
16160         * c-common.c (c_expand_expr): Add alt_rtl parameter.
16161         * langhooks-def.h (lhd_expand_expr): Change prototype.
16162         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
16163         * langhooks.h (lang_hooks): Change type of expand_expr.
16164         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
16165         (last_expr_alt_rtl): Likewise.
16166         (expand_expr_stmt_value): Set last_expr_alt_rtl.
16167         (clear_last_expr): Clear it.
16168         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
16169         (expand_end_bindings): Save and restor last_expr_alt_rtl.
16170         * tree.def (RTL_EXPR): Give it an additional operand.
16171         * tree.h (RTL_EXPR_ALT_RTL): New macro.
16172
16173 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16174
16175         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
16176         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
16177
16178 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16179
16180         PR target/13380.
16181         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
16182         or (ne:SI (reg:CC 17) (const_int 0)).
16183         Be specific about modes wherever possible.
16184
16185 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16186
16187         * config/m32r/m32r.c (m32r_expand_block_move): Call
16188         gen_movestrsi_internal with two more arguments.
16189         (m32r_output_block_move): Adjust operand numbers.
16190         Properly update the source and destination pointers.
16191         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
16192         'r+'.  Change the set detinations to match_operand.
16193
16194 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16195
16196         * final.c (FIRST_INSN_ADDRESS): Remove.
16197         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
16198         * system.h (FIRST_INSN_ADDRESS): Poison.
16199         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
16200         * config/m32r/m32r-protos.h: Remove the prototype for
16201         m32r_first_insn_address.
16202         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
16203         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
16204         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
16205
16206 2004-01-09  J. Brobecker  <brobecker@gnat.com>
16207
16208         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
16209         we just created.
16210         (is_ada_subrange_type): DIEs for enumeration subtypes should be
16211         emitted as subrange types too.
16212         (subrange_type_die): Add handling of enumeration subtypes.
16213
16214 2004-01-08  Richard Henderson  <rth@redhat.com>
16215
16216         PR opt/12441
16217         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
16218         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
16219         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
16220         (ix86_address_cost): Be prepared for SUBREGed registers.
16221         (legitimate_address_p): Accept SUBREGed registers.
16222
16223 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
16224
16225         * Makefile.in: Rename configure.in to configure.ac
16226         * doc/sourcebuild.texi: Likewise.
16227         * configure: Regenerate.
16228         * config.in: Regenerate.
16229
16230 2004-01-08  Stuart Hastings  <stuart@apple.com>
16231
16232         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
16233
16234 2004-01-08  Jan Hubicka  <jh@suse.cz>
16235
16236         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
16237
16238 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
16239
16240         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
16241         (UNSPEC_FIX_TRUNC_TF): New constant.
16242         (movtf_internal): Make splitter active only when insn is active.
16243         (extenddftf2): Rewrite to properly load zero into low part.
16244         (extenddftf2_internal): New.
16245         (extendsftf2): Rewrite.
16246         (truncdftf2): Correct length.
16247         (floatditf2): Delete.
16248         (fix_trunc_helper): New.
16249         (fix_trunctfdi2): Use fix_trunc_helper.
16250         (fix_trunctfsi2): Likewise.fix_trunc
16251         (fix_trunctfsi2_internal): New.
16252
16253         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
16254         addresses are legitimate on Darwin even when flag_pic.
16255         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
16256         non-offsettable addresses for loads of TFmode constants.
16257
16258 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16259
16260         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
16261         variables in the appropriate bss section.
16262
16263 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
16264
16265         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
16266         target_flags has MASK_POWERPC64 when -m64.
16267         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
16268         to 620, 630, power3, power4 and rs64a entries.
16269         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
16270
16271 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
16272
16273         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
16274         floating-point constants.
16275
16276 2004-01-08  J. Brobecker  <brobecker@gnat.com>
16277
16278         * dwarf2out.c (subrange_type_die): Add context_die parameter.
16279         Create the subrange_type DIE using the given context DIE.
16280         (modified_type_die): Update call to subrange_type_die.
16281
16282 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
16283
16284         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
16285         Add multiple-include guard.
16286
16287 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
16288
16289         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
16290         all vector constant loadable by vsplt*.
16291         (output_vec_const_move): Likewise.
16292
16293 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16294
16295         PR c/6024
16296         * c-typeck.c (comptypes): Only treat enumerated types in the same
16297         translation unit as compatible with each other when they are the
16298         same type.
16299         * doc/extend.texi: Update.
16300
16301 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16302
16303         PR c/12165
16304         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
16305         array type from the array element type.
16306
16307 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
16308
16309         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
16310         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
16311         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
16312         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
16313         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
16314
16315 2004-01-06  Eric Christopher  <echristo@redhat.com>
16316
16317         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
16318         (DWARF2_DEBUGGING_INFO): Define.
16319         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
16320         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
16321         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
16322         for irix as.
16323         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
16324         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
16325         * config/mips/iris5gas.h: Ditto.
16326         (DBX_DEBUGGING_INFO): Remove.
16327         (DWARF2_DEBUGGING_INFO): Ditto.
16328         (MIPS_DEBUGGING_INFO): Ditto.
16329         (PREFERRED_DEBUGGING_TYPE): Ditto.
16330         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
16331         (PREFERRED_DEBUGGING_TYPE): Ditto.
16332         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
16333         * config/mips/elf64.h: Ditto.
16334
16335 2004-01-06  Jan Hubicka  <jh@suse.cz>
16336
16337         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
16338         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
16339
16340 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
16341
16342         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
16343         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
16344         * config/rs6000/darwin-ldouble.c: New.
16345
16346         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
16347         for constants.
16348         (constant_subword): Delete.
16349         * rtl.h (constant_subword): Delete prototype.
16350         (immed_double_const): Is not in varasm.c.
16351         * simplify-rtx.c (simplify_immed_subreg): New.
16352         (simplify_subreg): Use simplify_immed_subreg.
16353
16354         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
16355         than trying to generate RTL directly.
16356         (fix_trunctfsi2): Use expand_fix rather than trying to generate
16357         RTL directly.
16358
16359         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
16360
16361 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
16362
16363         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
16364         function into a separate macro.
16365         (read_only_data_section): Add void argument.
16366         (private_data_section): Same.
16367         (read_only_private_data_section): Same.
16368         (toc_section): Same.
16369
16370 2004-01-06  Jan Hubicka  <jh@suse.cz>
16371
16372         * invoke.texi:  Remove typo in last change.
16373
16374         PR target/10301
16375         * config.gcc: Accept opteron and athlon-64 as variants
16376         of k8.
16377         * i386.c (override_options): Likewise.
16378         * invoke.texi (i386 -mtune): Expand documentation.
16379
16380 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16381
16382         * alias.c: Fix comment typos.
16383         * builtins.c: Likewise.
16384         * cfg.c: Likewise.
16385         * df.c: Likewise.
16386         * dominance.c: Likewise.
16387         * dwarf2out.c: Likewise.
16388         * emit-rtl.c: Likewise.
16389         * expr.c: Likewise.
16390         * final.c: Likewise.
16391         * fold-const.c: Likewise.
16392         * gcse.c: Likewise.
16393         * genattrtab.c: Likewise.
16394         * genrecog.c: Likewise.
16395         * gensupport.c: Likewise.
16396         * ggc-zone.c: Likewise.
16397         * integrate.c: Likewise.
16398         * local-alloc.c: Likewise.
16399         * loop.c: Likewise.
16400         * recog.c: Likewise.
16401         * regmove.c: Likewise.
16402         * reg-stack.c: Likewise.
16403         * reorg.c: Likewise.
16404         * rtlanal.c: Likewise.
16405         * rtl.h: Likewise.
16406         * sched-ebb.c: Likewise.
16407         * simplify-rtx.c: Likewise.
16408         * toplev.c: Likewise.
16409         * varasm.c: Likewise.
16410
16411 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16412
16413         * doc/install.texi: Fix typos.
16414         * doc/invoke.texi: Likewise.
16415         * doc/md.texi: Likewise.
16416
16417 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16418
16419         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16420
16421 2004-01-06  Jan Hubicka  <jh@suse.cz>
16422
16423         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16424         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16425         of MMX_REGPARM.
16426         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16427         add MMX_REGPARM.
16428         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16429         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16430         (MMX_REGPARM_MAX): Similarly for -mmmx.
16431
16432 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16433
16434         * config/sh/linux.h: Fix comment formatting.
16435         * config/sh/netbsd-elf.h: Likewise.
16436         * config/sh/sh.c: Likewise.
16437         * config/sh/sh.h: Likewise.
16438         * config/sh/vxworks.h: Likewise.
16439
16440 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16441
16442         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16443         * toplev.c (output_file_directive): Don't use
16444         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16445
16446 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16447
16448         * toplev.c: Fix broken checkin of 2003-12-30.
16449
16450 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16451
16452         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16453         (USING_MMAP): We don't support non-mmap.
16454         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16455         large objects.
16456         (struct page_entry): Remove bytes_free.
16457         (struct page_table_chain): Remove.
16458         (struct globals): Remove page_table member.
16459         (loookup_page_table_entry): Function deleted.
16460         (set_page_table_entry): Ditto.
16461         (ggc_allocated_p): No longer need page table lookups.
16462         (ggc_marked_p): Ditto.
16463         (alloc_small_page): Don't care about bytes_free anymore.
16464         (alloc_large_page): Round up size.
16465         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16466         their size the new way.
16467         Remove page table lookups and setting.
16468         (ggc_get_size): Calculate large object size the new way.
16469         (sweep_pages): Redo to account for fact that we no longer have
16470         bytes_free.
16471         (ggc_collect): No longer need to reincrement bytes_free.
16472         (ggc_pch_alloc_object): Handle new large objects properly.
16473         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16474
16475 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16476
16477         * doc/invoke.texi: Remove a page break.
16478
16479 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16480
16481         * config/avr/avr.c (avr_output_function_prologue): Remove an
16482         extra pair of curly braces.
16483
16484 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16485
16486         * config/mn10300/mn10300.c: Fix comment formatting.
16487         * config/mn10300/mn10300.h: Likewise.
16488
16489 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16490
16491         * tree.h: Update documentation on nothrow_flag.
16492         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16493         types.
16494
16495 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16496
16497         * doc/invoke.texi: Remove traces of dead ports.
16498
16499 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16500
16501         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16502         option.
16503
16504 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16505
16506         PR target/12945
16507         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16508         counter labels.
16509         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16510         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16511         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16512         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16513         (mips_symbol_insns): Don't trust the local/global classification.
16514         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16515         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16516         -mno-explicit-relocs.
16517         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16518         between local and global symbols.
16519
16520 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16521
16522         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16523         (mips_preferred_reload_class): Declare.
16524         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16525         (EXTRA_CONSTRAINT): Update accordingly.
16526         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16527         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16528         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16529         mips_dangerous_for_la25_p.
16530         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16531         if mips_dangerous_for_la25_p.
16532
16533 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16534
16535         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16536         warning.
16537
16538 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16539
16540         * configure.ac: Use AC_PROG_CPP_WERROR.
16541         * configure: Regenerate.
16542
16543 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16544
16545         * .cvsignore: Add autom4te.cache.
16546
16547 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16548
16549         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16550         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16551         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16552         then architecture options, then ABI options.  General rewording.
16553
16554 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16555
16556         PR c/3414
16557         * doc/extend.texi: Clarify definition of malloc attribute.
16558
16559 2004-01-04  Jan Hubicka  <jh@suse.cz>
16560
16561         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16562         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16563         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16564         (cgraph_inline_p): Add extra argument reason.
16565         * cgraphunit.c: Minor formating fixes.
16566         cgraph_first_inlined_callee): New functions.
16567         (record_call_1): Record builtins too.
16568         (cgraph_analyze_function): Update inline_failed messages.
16569         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16570         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16571         (cgraph_check_inline_limits): Likewise; Add argument reason.
16572         (cgraph_set_inline_failed): New static function.
16573         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16574         reasons.
16575         (cgraph_inline_p): Add new argument reason.
16576         * tree-inline.c (expand_call_inline):  Update warning.
16577
16578 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16579
16580         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16581         with modern equivalents.
16582         * configure: Regenerate.
16583
16584         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16585         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16586         * configure: Regenerate.
16587
16588         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16589
16590         * configure.in: Rename to configure.ac.
16591         * configure.ac: Renamed from configure.in; make minimum necessary
16592         changes for autoconf 2.5x.
16593         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16594         * configure: Regenerate with autoconf 2.57.
16595
16596 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16597
16598         * config/mips/linux.h: Fix comment formatting.
16599         * config/mips/mips.c: Likewise.
16600         * config/mips/mips.h: Likewise.
16601         * config/mips/mips.md: Likewise.
16602         * config/mips/netbsd.h: Likewise.
16603         * config/mips/windiss.h: Likewise.
16604
16605 2004-01-02  Richard Henderson  <rth@redhat.com>
16606
16607         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16608         for sse and 387; add suppression for mmx.
16609
16610 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16611
16612         * loop.c (loop_optimize): Free all loops_info's mems.
16613
16614         * c-typeck.c (finish_init): Free spelling_base before
16615         setting it again.
16616
16617         * cfgloop.c (flow_loops_find): Always free the sbitmap
16618         headers.
16619
16620         * predict.c (estimate_probability): Free bbs after being
16621         done with it.
16622
16623 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16624
16625         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16626         const_8bit_operand and call_address_operand.
16627
16628 2004-01-02  Jan Hubicka  <jh@suse.cz>
16629
16630         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16631         when there is nothing to inline but warnings are requested.
16632         (cgraph_decide_inlining):  Fix memory leak.
16633
16634 2004-01-02  Jan Hubicka  <jh@suse.cz>
16635
16636         * expr.c (store_constructor):  Fix pasto in previous patch.
16637
16638 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16639
16640         * config/i386/cygming.h: Fix comment formatting.
16641         * config/i386/djgpp.h: Likewise.
16642         * config/i386/gthr-win32.c: Likewise.
16643         * config/i386/i386-interix.h: Likewise.
16644         * config/i386/i386.c: Likewise.
16645         * config/i386/i386.h: Likewise.
16646         * config/i386/openbsd.h: Likewise.
16647         * config/i386/winnt.c: Likewise.
16648         * config/i386/xm-mingw32.h: Likewise.
16649
16650 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16651
16652         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16653         copyright and last modification dates.
16654
16655 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16656
16657         * doc/install.texi (Specific): Mention x86_64.
16658
16659 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16660
16661         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16662         Call force_operand on plus_constant result.
16663
16664 2004-01-01  Jan Hubicka  <jh@suse.cz>
16665
16666         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16667         * expr.c (store_constructor): Use vec_init pattern.
16668         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16669         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16670         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16671         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16672         New patterns.
16673         (sse2_unpc?pd): Fix pattern.
16674         (sse2_movlpd): Kill.
16675         (sse2_movsd): Deal with movlpd too.
16676         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16677         (ix86_expand_vector_init): New.
16678         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16679         * md.texi (vec_set, vec_extract): Document
16680
16681 2003-12-31  Jan Hubicka  <jh@suse.cz>
16682
16683         PR opt/13473
16684         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16685         ASM input operands
16686
16687         PR opt/12617
16688         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16689         (dump_file): Likewise.
16690         (rest_of_compilation): Likewise.
16691
16692         PR debug/13367
16693         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16694         flag_really_no_inline we inline always_inline functions.
16695         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16696         for non-always_inline functions when there is flag_really_no_inline.
16697         (cgraph_decide_inlining): Limit work done when not inlining.
16698         (cgraph_decide_inlining_incrementally): Likewise.
16699         (cgraph_optimize_function): Check whether something got inlined.
16700         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16701         extern inline functions when not inlining.
16702
16703         * opts.c (decode_options):  Disable crossjumping at -O1
16704         * invoke.texi (-O1): Document change.
16705
16706 See ChangeLog.10 for earlier changes.