OSDN Git Service

2004-06-08 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
2
3         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
4         Make sure that we are in INDIRECT mode when getting the
5         stub name.
6
7 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
8
9         * h8300.md (extendqisi2_h8300): Add constraints.
10         (ldm_h8300s_4_normal): Fix typo.
11
12 2004-06-08  Richard Henderson  <rth@redhat.com>
13
14         * gimple-low.c (struct lower_data): Replace the_return_label and
15         one_return_stmt with return_statements.
16         (lower_function_body): Process the entire list of return_statements.
17         (lower_return_expr): Check source value before unifying return_exprs.   
18         * gimplify.c (gimplify_return_expr): Force the use of a temporary
19         for !aggregate_value_p.
20         * tree-gimple.c: Update RETURN_EXPR grammer.
21
22 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
23
24         PR target/15598
25         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
26
27 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
28
29         PR rtl-optimization/15717
30         * config/i386/i386.c (legitimate_constant_p): Do not allow
31         x - symbol_ref.
32
33 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
34
35         * gimplify.c (copy_if_shared_r): Revert:
36         2004-05-21  Richard Henderson  <rth@redhat.com>
37         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
38
39 2004-06-07  Roger Sayle  <roger@eyesopen.com>
40
41         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
42         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
43         (init_expmed): Initialize these cost arrays as appropriate.
44         (store_bit_field, extract_bit_field): Correct whitespace.
45         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
46         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
47         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
48         word_mode or compute_mode as appropriate.
49
50 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
51
52         PR target/15783
53         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
54         parameter.  Enumerate the registers inside the PARALLEL.
55         (function_arg): Adjust call to function_arg_union_value.
56         (function_value): Likewise.
57
58         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
59
60 2004-06-07  Roger Sayle  <roger@eyesopen.com>
61
62         * real.c (real_copysign): New function to implement libm's copysign.
63         * real.h (real_copysign): Prototype here.
64         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
65         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
66         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
67         fold_builtin_isdigit): Add function prototypes.
68         (fold_builtin_copysign): New function to fold copysign, copysignf
69         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
70         constant arguments at compile-time using real_copysign.  Fold
71         copysign(X,Y) as fabs(X) if Y is always non-negative.
72         (fold_builtin_1): Correct minor whitespace/style issues.  Call
73         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
74
75 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
76
77         * tree.c (iterative_hash_expr): Use real_hash.
78
79 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
80
81         PR c/14765
82         * c-parse.in (compstmt_primary_start): Set last_expr_type to
83         NULL_TREE.
84
85 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
86
87         PR c++/15815
88         * doc/extend.texi: Deprecate #pragma interface and #pragma
89         implementation.
90
91 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
92
93         PR middle-end/15666
94         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
95         builtin decl as well.
96
97 2004-06-07  Roger Sayle  <roger@eyesopen.com>
98
99         PR c/14649
100         * c-typeck.c (require_constant_value, require_constant_elements):
101         Move declarations to the top of the file.
102         (build_function_call): If we require a constant value, fold with
103         fold_initializer.  If the result is a constant, and the function
104         wasn't called using __builtin_foo, issue a pedantic warning.
105         (build_unary_op): If we require a constant value, fold tree with
106         fold_initializer.
107         (build_binary_op): Use require_constant_value to determine whether
108         to call fold or fold_initializer.
109
110 2004-06-07  Richard Henderson  <rth@redhat.com>
111
112         * gimple-low.c (struct lower_data): Add the_return_label and
113         one_return_stmt.
114         (lower_function_body): Initialize and use them.
115         (lower_return_expr): New.
116         (lower_stmt): Call it.
117         * gimplify.c (gimplify_return_expr): Force the argument to be either
118         null or a result_decl.
119         * tree-gimple.c: Update gimple grammer to match.
120         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
121         coalescing of result_decls.
122
123 2004-06-07  Richard Henderson  <rth@redhat.com>
124
125         PR rtl-opt/15193
126         * expmed.c (extract_bit_field): Fix vector_extract return.
127
128         * config/i386/i386.md (negv4sf2): New pattern.
129
130 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
131
132         PR c++/15337
133         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
134         message.
135
136 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
137
138         * config.in: Regenerate.
139
140 2004-06-06  Steven Bosscher  <stevenb@suse.de>
141
142         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
143         SWITCH_LABELS are always sorted.
144
145 2004-06-06  Steven Bosscher  <stevenb@suse.de>
146
147         * hooks.c (hook_int_void_1): New generic hook.
148         * hooks.h (hook_int_void_1): Add prototype.
149         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
150         Define to hook_int_void_1.
151         * config/c4x/c4x.md: Replace dummies for the old pipeline model
152         with dummies for the new one.
153
154 2004-06-06  Roger Sayle  <roger@eyesopen.com>
155
156         * tree.h (lvalue_or_else): Delete function prototype.
157         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
158
159 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
160
161         PR target/14542
162         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
163         a live change of a register after peephole replacement.
164
165 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
166
167         PR c/13519
168         * c-typeck.c (composite_type, common_pointer_type): New functions.
169         (common_type): Split parts into composite_type and
170         common_pointer_type.  Ensure that arithmetic operations return
171         unqualified types without attributes.  Don't make composite type
172         of signed enum and compatible integer be unsigned.
173         (build_conditional_expr, build_binary_op): Use
174         common_pointer_type.
175         * c-decl.c (merge_decls): Use composite_type.
176         * c-tree.h (composite_type): Declare.
177
178 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
179
180         PR target/14457
181         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
182         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
183         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
184         (inhibit_libc): Must define.
185         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
186         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
187         ("xorhi3"): Likewise.
188
189 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
190
191         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
192         always_inline pass.
193
194 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
195
196         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
197         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
198
199 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
200
201         * regclass.c (init_reg_sets): Check for missing registers in target
202         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
203
204 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
205
206         * Makefile.in (MKDEPS_H): New shorthand.
207         (c-opts.o): Update dependencies.
208         * c-opts.c: Include mkdeps.h.
209         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
210         not cpp_add_dependency_target.
211
212 2004-06-05  Steven Bosscher  <stevenb@suse.de>
213
214         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
215         * config/v850/v850.md: Convert to DFA scheduler description.
216
217 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
218
219         PR fortran/15478
220         * doc/install.texi: Document GMP as prerequisite. Document
221         --with-gmp and --with-gmp-dir configure options.
222         * fortran/gfortran.texi: Remove section "Compiling and testing",
223         remove TOC reference to it.
224
225 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
226
227         * combine.c(simplify_shift_const): Check shift amount is a
228         CONST_INT.
229
230 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
231
232         * toplev.c (init_asm_output): Add explicit 'b' to mode when
233         opening asm_out_file.
234         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
235         reading asm_out_file. Replace fflush after reading asm_out_file
236         with fseek.
237         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
238         default and add to HOST_HOOKS_INITIALIZER.
239         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
240         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
241         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
242         to set mmi.offset padding.
243          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
244         $(srcdir)/config/i386/winnt.c.
245         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
246         (i[34567]86-*-uwin*): Likewise.
247         *i[34567]86-*-interix3*): Likewise.
248         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
249         * config/i386/host-mingw32.c: New file.
250         * config/i386/x-mingw32: Add rule for host-mingw32.o.
251         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
252         (extern_head): Likewise.
253         (struct export_list) Likewise.
254         (export_head): Likewise.
255         (i386_pe_record_external_function): Use ggc_alloc.
256         (i386_pe_record_exported_symbol): Likewise.
257         Include "gt-winnt.h" at end.
258         * doc/hostconfig.texi: Document
259         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
260
261 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
262
263         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
264         Rename 68000 and 68k to m68k for consistency in comments.  Remove
265         trailing whitespace before EOLs and before TABs.
266         (MAX_CODE_ALIGN): Remove unused macro.
267         (CALL_USED_REGISTERS): Reformat and add comments.
268
269 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
270
271         * gcc.c (MFLIB_SPEC): Remove library references, to require users
272         to enumerate -lmudflap* and dependencies when linking.
273
274 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
275
276         PR target/15822
277         * dojump.c (do_jump): Fix uninitialized variable tcode1.
278
279 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
280
281         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
282         * genconditions.c (write_header): Back out removal of reload.h.
283
284 2004-06-04  Jan Hubicka  <jh@suse.cz>
285
286         Re-apply hopefully fixed patch:
287         * i386.md (UNSPECV_EH_RETURN): Kill.
288         (eh_return): Use jump_insn.
289         (eh_return_si, eh_return_di): Change pattern to jump instruction.
290
291 2004-06-04  Jeff Law  <law@redhat.com>
292
293         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
294
295 2004-06-04  Steven Bosscher  <stevenb@suse.de>
296
297         * except.c (for_each_eh_region): New function.
298         * except.h (for_each_eh_region): Add a prototype for it.
299         * tree-cfg.c (update_eh_labels): New function, callback for
300         for_each_eh_region.
301         (label_for_bb): Make global static, unfortunately.
302         (cleanup_dead_labels): Also update label references for
303         exception regions.
304
305 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
306
307         * config/mips/mips.c (struct irix_section_align_entry): Fix
308         GTY marker.
309
310 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
311
312         * toplev.c (check_global_declarations): Don't ask for
313         DECL_ASSEMBLER_NAME unless the function really is declared
314         static and not defined.
315
316 2004-06-03  Matt Austern  <austern@apple.com>
317
318         PR c++/15428
319         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
320         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
321         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
322         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
323         documentation to reflect the new macro name and to clarify its
324         meaning.
325
326 2004-06-03  Steven Bosscher  <stevenb@suse.de>
327
328         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
329
330 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
331
332         * config/darwin.c (machopic_indirect_data_reference): Copy
333         the SYMBOL_REF_DECL from the original RTX for the new
334         non-lazy pointer RTX.
335
336 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
337
338         * tree.h: Remove include of version.h
339         * c-cppbuiltin.c: Include version.h
340         * diagnostic.c: Include version.h
341         * dwarf2out.c: Include version.h
342         * toplev.c: Include version.h
343         * vmsdbgout.c: Include version.h
344         * Makefile.in: Remove dependency on version.h from TREE_H, and
345         add dependencies to required .o targets
346
347 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
348
349         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
350         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
351         (TARGET_H): Add insn-modes.h.
352         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
353         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
354         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
355         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
356         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
357         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
358         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
359         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
360         CFGLAYOUT_H.
361         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
362         Replace ra.h with RA_H.
363         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
364         insn-recog.o): Replace resource.h with RESOURCE_H.
365         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
366         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
367         with SCHED_INT_H.
368         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
369         ra-rewrite.o): Replace df.h with DF_H.
370         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
371         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
372         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
373         (insn-conditions.o): Remove unused reload.h.
374         * cfglayout.h: Add include guard.  Include basic-block.h.
375         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
376         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
377         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
378         basic-block.h.
379         * genconditions.c:  Remove reload.h.
380         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
381         hard-reg-set.h, insn-modes.h.
382         * resource.h: Add include guard.  Include hard-reg-set.h.
383         * sched-int.h:  Add include guard.  Include insn-attr.h,
384         basic-block.h, rtl.h.
385         * target.h: Add include guard.  Include insn-modes.h.
386         * tree-ssa-live.h: Include partition.h.
387
388 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
389                 Kenneth Zadeck <zadeck@naturalbridge.com>
390
391         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
392         (add_var_to_ssa_edges_worklist): Add value argument.
393         Update callers.
394         Use new worklist.
395         (process_ssa_edge_worklist): New function.
396         (tree_ssa_ccp): Move worklist processing core to
397         process_ssa_edge_worklist, and just call that for the two worklists.
398
399 2004-06-03  Steven Bosscher  <stevenb@suse.de>
400
401         * basic-block.c (tail_recursion_label_list): Don't declare.
402         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
403         accordingly.
404         * cfgbuild.c (find_label_refs): Remove.
405         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
406         * cfgcleanup.c (tail_recursion_label_p): Remove.
407         (merge_blocks_move): Do not check for tail recursion.
408         (try_optimize_cfg): Likewise.
409         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
410         * cfgrtl.c (tail_recursion_label_list): Remove.
411         * except.c (remove_unreachable_regions): Don't handle
412         CALL_PLACEHOLDER insns.
413         (convert_from_eh_region_ranges_1, can_throw_internal,
414         can_throw_external): Likewise.
415         * function.c (free_after_compilation): Don't clear
416         x_tail_recursion_label.
417         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
418         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
419         (reorder_blocks_1): Likewise.
420         * function.h (struct function): Remove x_tail_recursion_label
421         member.  Don't define tail_recursion_label.
422         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
423         * print-rtl.c (print_rtx): Likewise.
424         * rtl.def (CALL_PLACEHOLDER): Remove.
425         * rtl.h (sibcall_use_t): Remove enum.
426         (optimize_sibling_and_tail_recursive_calls,
427         replace_call_placeholder): Remove function prototypes.
428         * stmt.c (tail_recursion_args): Remove.
429         (optimize_tail_recursion): Remove.
430         (expand_return): Don't check for possible tail recursion.
431         * tree.h (optimize_tail_recursion): Remove prototype.
432
433 2004-06-02  Jan Hubicka  <jh@suse.cz>
434
435         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
436         return_stmt.
437
438 2004-06-02  Jason Merrill  <jason@redhat.com>
439
440         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
441         Do include c-parse.in.
442
443 2004-06-02  Eric Christopher  <echristo@redhat.com>
444
445         * c-typeck.c (common_type): Don't lose type qualifiers
446         when creating new variants.
447
448 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
449
450         PR tree-optimization/14042
451         PR tree-optimization/14729
452         PR tree-optimization/14736
453         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
454         Check the type which the pointer points to
455         instead of the pointer types.
456
457 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
458
459         PR tree-optimization/15738.
460         * builtins.c (fold_builtin_strchr): Transform
461         strrchr (s, '\0') to strchr (s, '\0').
462
463 2004-06-02  Steven Bosscher  <stevenb@suse.de>
464
465         * i386.c (ix86_adjust_cost): Don't increase the cost for
466         load+operation for PROCESSOR_PENTIUMPRO, it is already
467         modelled in the DFA description
468
469 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
470
471         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
472         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
473         (ALIAS_H, EMIT_RTL_H): New.
474         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
475         (cfgcleanup.o): Add EMIT_RTL_H.
476         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
477         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
478         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
479         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
480         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
481         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
482         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
483         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
484         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
485         set_mem_size): Move to emit-rtl.h.
486         * emit-rtl.h: New.
487         * alias.h: New.
488
489 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
490
491         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
492         Call fixup_memory_subreg only if the MEM is equal to 'var'.
493         Adjust recursive calls to self.
494         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
495
496 2004-06-01  Richard Henderson  <rth@redhat.com>
497             Andrew Pinski  <pinskia@physics.uc.edu>
498
499         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
500         (primary): Handle offsetof.  Add error productions for faux functions.
501         Move component_ref objc checking to build_component_ref.
502         (reswords): Add offsetof.
503         (rid_to_yy): Add offsetof.
504         * c-tree.h (build_offsetof): Declare.
505         * c-common.h (objc_is_public): Declare.
506         * c-typeck.c (build_component_ref): Check objc_is_public.
507         (build_offsetof): New.
508         * stub-objc.c (objc_is_public): New.
509         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
510         from is_public.
511         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
512         * doc/extend.texi (Offsetof): Move from C++ section to C section
513         and rewrite for __builtin_offsetof.
514
515 2004-06-01  Peter Barada  <peter@the-baradas.com>
516             Peter Jakubek  <peter@laseranimation.com>
517
518         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
519         a scratch to perform an add to memory.
520
521 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
522
523         PR target/14018
524         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
525         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
526         m68k_align_funcs): Remove.
527         (override_options): Remove code to handle -malign-* options.
528         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
529         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
530         (m68k_align_loops_string, m68k_align_jumps_string,
531         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
532         m68k_align_funcs): Remove definitions.
533
534 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
535
536         PR target/15626
537         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
538         by the Sun linker in conjunction with the Sun assembler.
539         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
540
541 2004-06-01  Jeff Law  <law@redhat.com>
542
543         * stmt.c (expand_decl): Be more selective about calling
544         mark_reg_pointer.
545
546 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
547
548         PR objc/7993
549         * objc-act.c (is_private): Do not emit the 'instance variable %s
550         is declared private' error.
551         (is_public): Emit the error after calling is_private.
552         (lookup_objc_ivar): If the instance variable is private, return 0
553         - the instance variable is invisible here.
554
555 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
556
557         * doc/invoke.texi (-static-libgcc): Explicitly mention
558         non-GNU linkers.
559
560 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
561
562         PR target/12968
563         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
564
565 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
566
567         PR c/15749
568         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
569         misuses of structures with flexible array members if
570         in_system_header.
571
572 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
573
574         PR target/15693
575         * config/sparc/sparc.c (compare_operand): New predicate.
576         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
577         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
578         operand is a ZERO_EXTRACT and the second operand is not zero,
579         force the former to a register.
580         (cmpdi expander): Likewise.
581
582 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
583
584         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
585         looks at.
586         * alias.c (alias_invariant_size): Make alias_invariant_size
587         static, fix GTY marker.
588
589 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
590
591         PR tree-optimization/15743.
592         * builtins.c (fold_builtin_1): Fold index() and rindex().
593
594 2004-05-31  Roger Sayle  <roger@eyesopen.com>
595
596         PR middle-end/15069
597         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
598         into "X < 0" (where C is the signbit) if X's type is a full mode.
599
600 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
601
602         * pa.md: Disable the peephole2 patterns that generate indexed
603         floating-point stores when indexing is disabled.
604
605 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
606
607         * c-pretty-print.c (pp_c_left_bracket): Make a function.
608         (pp_c_right_bracket): Likewise.
609         (pp_c_star): Likewise.
610         (pp_c_ampersand): Define.
611         * c-pretty-print.h (pp_c_left_bracket): Declare.
612         (pp_c_right_bracket): Likewise.
613         (pp_c_star): Likewise.
614         (pp_c_ampersand): Likewise.
615
616 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
617
618         * config/sol2.h (__enable_execute_stack): ANSIfy function
619         definition.
620
621 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
622
623         * c-incpath.c (add_path): Canonicalize paths to use '/' if
624         HAVE_DOS_BASED_FILESYSTEM.
625
626 2004-05-31  Steven Bosscher  <stevenb@suse.de>
627
628         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
629         Only look at case labels if the immediate dominator is also
630         the only predecessor.  Don't look for more case labels if the
631         first seen is a case range.
632
633 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
634
635         * builtins.c: Add a prototype for fold_builtin_strchr().
636
637 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
638
639         Revert this patch:
640         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
641
642         * combine.c (gen_binary): Remove.
643         (known_cond, simplify_shift_const
644         find_split_point, combine_simplify_rtx,
645         simplify_if_then_else, simplify_set,
646         simplify_logical, expand_field_assignment,
647         extract_left_shift, force_to_mode,
648         if_then_else_cond, apply_distributive_law,
649         simplify_and_const_int, simplify_shift_const,
650         gen_lowpart_for_combine, simplify_comparison,
651         reversed_comparison): Replace with
652         simplify_gen_binary, simplify_gen_relational or
653         distribute_and_simplify_rtx.
654         (distribute_and_simplify_rtx): New function.
655
656 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
657
658         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
659         when generating PIC code.
660
661 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
662
663         * c-decl.c (c_expand_body_1): Remove and fold back into ...
664         (c_expand_body): here.
665         (c_expand_decl): Move to ...
666         * c-common.c (c_expand_decl): Here and remove check for nested
667         functions.
668         * c-common.h (c_expand_decl): Add prototype.
669         * c-tree.h (c_expand_decl): Remove.
670
671 2004-05-30  Roger Sayle  <roger@eyesopen.com>
672
673         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
674         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
675         fold_mathfn_compare, fold_inf_compare, fold,
676         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
677         Use constant_boolean_node where appropriate.  Don't bother using
678         fold_convert on the second argument to omit_one_operand.
679
680 2004-05-30  Roger Sayle  <roger@eyesopen.com>
681
682         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
683         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
684         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
685         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
686         Add missing (but documented) tree nodes to the index.
687
688 2004-05-30  Steven Bosscher  <stevenb@suse.de>
689
690         PR tree-optimization/14819
691         * builtins.c (fold_builtin_strchr): New.
692         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
693         with fold_builtin_strchr().
694
695 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
696
697         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
698         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
699         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
700         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
701         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
702         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
703         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
704         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
705         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
706         formatting.
707
708 2004-05-30  Steven Bosscher  <stevenb@suse.de>
709
710         * gimplify.c (sort_case_labels): New.  Split out from...
711         (gimplify_switch_expr): ...here.  Use it.
712         * tree-eh.c (lower_try_finally_switch): Sort the labels of
713         the SWITCH_EXPR created here before leaving the function.
714         * tree.c (sort_case_labels): Add prototype.
715
716 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
717
718         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
719         of BOOLEAN_TYPE.
720
721 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
722
723         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
724         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
725         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
726         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
727         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
728         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
729         comment typos.  Follow spelling conventions.
730
731 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
732
733         * gengtype-yacc.y: Add NESTED_PTR token.
734         (option): Record `nested_ptr' option.
735         * gengtype-lex.l: Handle `nested_ptr' keyword.
736         * gengtype.c (walk_type): Process `nested_ptr' option.
737         * gengtype.h (struct nested_ptr_data): New.
738         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
739         * stringpool.c (struct string_pool_data): Make 'entries' point to
740         ht_identifier instead of tree.
741         (gt_pch_save_stringpool): Don't adjust pointers.
742         (gt_pch_restore_stringpool): Call ht_load.
743
744 2004-05-29  Jason Merrill  <jason@redhat.com>
745
746         * gimplify.c (gimplify_expr): Don't build a statement list
747         if no gimplification was necessary.
748
749 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
750
751         * pretty-print.c (pp_base_format_text): Support %< instead of %`
752         and %> as well as %'.
753         * c-format.c: Use %< and %>.
754         (gcc_diag_char_table, gcc_cdiag_char_table,
755         gcc_cxxdiag_char_table): Update.
756
757 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
758
759         * c-typeck.c (common_type): Correct comment.
760
761 2004-05-29  Peter Barada  <peter@the-baradas.com>
762
763         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
764         * config/m68k/m68k.c (const_method): Likewise.
765         * config/m68k/m68k.c (const_int_cost): Likewise.
766         * config/m68k/m68k.c (const_int_cost): Likewise.
767         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
768
769 2004-05-29  Peter Barada  <peter@the-baradas.com>
770
771         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
772         addressing.
773         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
774         movsi,movhi,movqi insn patterns.
775
776 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
777
778         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
779
780         PR target/15720
781         * config/darwin.c (machopic_indirect_call_target): Copy
782         the SYMBOL_REF_DECL from the original RTX for the new
783         stub RTX.
784
785 2004-05-28  DJ Delorie  <dj@redhat.com>
786
787         * stor-layout.c (place_field): Revert erroneous commit.
788
789 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
790
791         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
792         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
793         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
794         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
795         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
796         vec_ste): Remove type checks for integral parameters and literals
797         from '..._args_eq' macros.
798
799 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
800
801         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
802
803 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
804
805         * testsuite/g++.dg/charset/function.cc: New.
806
807         * testsuite/gcc.dg/charset/function.c: New.
808
809         * c-decl.c (c_make_fname_decl): Free return value from
810         fname_as_string.
811
812         * cp/decl.c (cp_make_fname_decl): Free return value from
813         fname_as_string.
814
815         * c-common.c (fname_as_string): Translate if necessary.
816
817 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
818
819         * stringpool.c: Add comments to PCH saving/restoring routines.
820
821 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
822
823         * c-common.c (c_estimate_num_insns_1): Kill.
824         (c_estimate_num_insns): Kill.
825         * c-common.h (c_estimate_num_insns): Kill.
826
827         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
828         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
829         Remove comment about not checking for
830         _POSIX_PRIORITY_SCHEDULING.
831         * gthr-posix.c: Likewise.
832
833 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
834             Roger Sayle  <roger@eyesopen.com>
835
836         PR rtl-optimization/15649
837         Add LTGT_EXPR and improve pretty-printing of unordered
838         comparisons.
839         * c-common.c (c_common_truthvalue_conversion):
840         Handle LTGT_EXPR.
841         * c-typeck.c (build_binary_op): Likewise.
842         * dojump.c (do_jump): Likewise.
843         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
844         * predict.c (tree_predict_by_opcode): Likewise.
845         * real.c (real_compare): Likewise.
846         * tree-cfg.c (verify_expr): Likewise.
847         * tree-inline.c (estimate_num_insns_1): Likewise.
848         * tree-pretty-print.c (dump_generic_node): Likewise.
849         Handle ORDERED_EXPR, UNORDERED_EXPR.
850         (op_symbol): Print unordered comparisons differently
851         than ordered ones.
852         * tree.def (LTGT_EXPR): New '<' tree code.
853         * doc/c-tree.texi (Expressions): Document floating-point
854         comparison nodes.
855
856         Fold comparisons between floating point values.
857         * fold-const.c (enum comparison_code): New, from
858         #define'd constants.  Define compcodes for unordered
859         comparisons and for invalid transformations.
860         (invert_tree_comparison): Add "honor_nans" parameter.
861         (fold_truthop): Revamp to work on floating-point types too.
862         (comparison_to_compcode): Support unordered comparisons.
863         Use new enum comparison_code.
864         (compcode_to_comparison): Likewise.
865         (combine_compcodes): New function.
866         (invert_truthvalue): Let invert_tree_comparison decide
867         whether it is valid to fold the comparison.  Fold ORDERED
868         and UNORDERED even if flag_unsafe_math_optimizations is off,
869         and the remaining even if flag_unsafe_math_optimizations
870         is off but we are under -fno-trapping-math.
871         (fold_relational_const): Integer modes do not honor NaNs.
872
873 2004-05-28  Paul Brook  <paul@codesourcery.com>
874
875         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
876
877 2004-05-28  Paul Brook  <paul@codesourcery.com>
878
879         * config/arm/arm.c (thumb_force_lr_save): New function.
880         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
881         thumb_output_function_prologue): Use it.
882         (thumb_expand_prologue): Set lr_save_eliminated.
883
884 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
885
886         * config/mips/mips.md (extendsidi2): Tie the source and destination
887         of the register alternative.  Split it into nothing.
888
889 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
890
891         * rtl.h (skip_consecutive_labels): Declare.
892         * emit-rtl.c (skip_consecutive_labels): New function.
893         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
894         * jump.c (follow_jumps): Say what null return values mean.
895
896 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
897
898         PR target/13250
899         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
900
901 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
902
903         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
904         libgcc-std.ver.
905         * config/sh/libgcc-std.ver: New file.
906
907 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
908
909         * except.c: Revert change of 2004-05-26.
910         * config/i386/i386.md: Revert change of 2004-05-27.
911
912 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
913
914         * configure.ac: Remove --enable-tree-browser option.
915         Define TREEBROWSER when ac_tree_checking is defined.
916         * configure: Rebuilt.
917
918 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
919
920         * expr.c (store_constructor): Restore sanity check on
921         the size of the type before clearing.
922
923 2004-05-27  Jan Hubicka  <jh@suse.cz>
924
925         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
926
927 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
928
929         * combine.c (gen_binary): Remove.
930         (known_cond, simplify_shift_const
931         find_split_point, combine_simplify_rtx,
932         simplify_if_then_else, simplify_set,
933         simplify_logical, expand_field_assignment,
934         extract_left_shift, force_to_mode,
935         if_then_else_cond, apply_distributive_law,
936         simplify_and_const_int, simplify_shift_const,
937         gen_lowpart_for_combine, simplify_comparison,
938         reversed_comparison): Replace with
939         simplify_gen_binary, simplify_gen_relational or
940         distribute_and_simplify_rtx.
941         (distribute_and_simplify_rtx): New function.
942         * simplify-rtx.c (simplify_binary_operation):
943         Use nonzero_bits to simplify ANDs where we are
944         turning off bits already known to be off in OP0.
945
946 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
947
948         PR target/14478
949         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
950
951 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
952
953         PR middle-end/14084
954         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
955         to size of decl.
956
957 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
958
959         PR/14924
960         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
961
962 2004-05-26  Roger Sayle  <roger@eyesopen.com>
963
964         * tree.h: Fix comment typo.
965
966 2004-05-27  Steven Bosscher  <stevenb@suse.de>
967
968         * gimplify.c (compare_case_labels): New function.
969         (gimplify_switch_expr): Sort case labels, and make sure the
970         last label in the label vector is the default case.
971         * tree-cfg.c (group_case_labels): New function.
972         (build_tree_cfg): Cleanup redundant labels and group case labels
973         before creating edges.
974         (cleanup_dead_labels): Handle GOTO_EXPRs.
975         (find_case_label_for_value): Use a binary search to find the
976         case label for the given value.
977         * tree-gimple.c: Mention that labels are sorted, and that the
978         last label must be the default.
979
980 2004-05-27  Jan Hubicka  <jh@suse.cz>
981
982         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
983
984 2004-05-27  Jan Hubicka  <jh@suse.cz>
985
986         * i386.md (UNSPECV_EH_RETURN): Kill.
987         (eh_return): Use jump_insn.
988         (eh_return_si, eh_return_di): Change pattern to jump instruction.
989
990 2004-05-26  Jan Hubicka  <jh@suse.cz>
991
992         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
993         not loop optimizing.
994
995 2004-05-26  Jan Hubicka  <jh@suse.cz>
996
997         * except.c (can_throw_internal):  Notice RESX instructions.
998
999 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1000
1001         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1002         of the two sizes to assemble_integer.
1003
1004 2004-05-25  Paul Brook  <paul@codesourcery.com>
1005
1006         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1007         pointless #ifdef.
1008
1009 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1010
1011         * Makefile.in (top_builddir): Define to .
1012
1013 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1014
1015         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1016         top-level detects, except when in-tree ld is being cross-built.
1017         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1018         then AS only if target is host.
1019         * configure: Rebuilt.
1020
1021 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1022
1023         * global.c (global_alloc): Call make_accurate_live_analysis.
1024         (record_one_conflict): Remove dead code.
1025         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1026         (bb_info): New structure.
1027         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1028         (allocate_bb_info, free_bb_info, mark_reg_change,
1029         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1030         modify_bb_reg_pav, calculate_reg_pav,
1031         make_accurate_live_analysis): New functions.
1032
1033 2004-05-25  Devang Patel  <dpatel@apple.com>
1034
1035         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1036         xrealloc.
1037         (end_alias_analysis): Use ggc_free instead fo free.
1038
1039 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1040
1041         PR target/15546
1042         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1043         as needed to be outputted.
1044
1045 2004-05-25  Jan Hubicka  <jh@suse.cz>
1046
1047         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1048
1049 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1050         Mostafa Hagog  <mustafa@il.ibm.com>
1051
1052         * Makefile.in (modulo-sched.o, ddg.o): New.
1053         * ddg.h, ddg.c, modulo-sched.c: New files.
1054         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1055         internals to "dupicate_insn".
1056         (duplicate_insn): New function.
1057         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1058         declarations.
1059         * common.opt (fmodulo-sched): New flag.
1060         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1061         Remove static and forward declaration.
1062         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1063         functions.
1064         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1065         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1066         declarations.
1067         * flags.h (flag_modulo_sched): New flag.
1068         * opts.c (common_handle_option): Handle modulo-sched flag.
1069         * params.def (max-sms-loop-number, sms-max-ii-factor,
1070         sms-dfa-history, sms-loop-average-count-threshold): New
1071         parameters.
1072         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1073         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1074         parameters.
1075         * passes.c ("sms", "sms-vcg"): New dumps.
1076         (rest_of_handle_sched): Call sms_schedule.
1077         * rtl.h (sms_schedule): New declaration.
1078         * timevar.def (TV_SMS): New.
1079         * toplev.c (flag_modulo_sched): Initialize.
1080         (f_options): Handle -fmodulo-sched option.
1081         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1082         * docs/passes.texi: Document new SMS pass.
1083
1084 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1085
1086         * Makefile.in (OBJS): Add rtlhooks.o.
1087         (rtlanal.o): Depend on function.h.
1088         (cse.o): Depend on rtlhooks-def.h.
1089         (combine.o): Depend on rtlhooks-def.h.
1090         (rtlhooks.o): New rule.
1091         * combine.c: Include rtlhooks-def.h.
1092         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1093         num_sign_bit_copies, cached_num_sign_bit_copies,
1094         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1095         (reg_nonzero_bits_for_combine,
1096         reg_num_sign_bit_copies_for_combine): New functions holding
1097         the remnants of the above.
1098         (combine_rtl_hooks): New.
1099         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1100         * cse.c: Include rtlhooks-def.h.
1101         (cse_rtl_hooks): New.
1102         (cse_main): Set rtl_hooks instead of gen_lowpart.
1103         * emit-rtl.c (gen_lowpart): Remove.
1104         (gen_lowpart_general): Move to rtlhooks.c.
1105         * rtl.h (nonzero_bits, num_sign_bit_copies,
1106         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1107         (gen_lowpart_general): Remove.
1108         (gen_lowpart): Temporarily redefine as a macro.
1109         * rtlanal.c: Include function.h.
1110         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1111         num_sign_bit_copies, cached_num_sign_bit_copies,
1112         num_sign_bit_copies1): New, from combine.c.
1113         * rtlhooks.c: New file.
1114
1115 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
1116
1117         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
1118         to support 32-bit -mint8 mode.
1119
1120         * doc/invoke.texi (-mint8): Added documentation for the -mint8
1121         option in the AVR architecture.
1122
1123 2004-05-24  Mike Stump  <mrs@apple.com>
1124
1125         * doc/install.texi: Document that dejagnu 1.4.4 is required.
1126
1127 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
1128
1129         * intl.h (open_quote, close_quote): New.
1130         * intl.c (open_quote, close_quote): New.
1131         (gcc_init_libintl): Set them.
1132         * pretty-print.c: Include "intl.h".
1133         (pp_base_format_text): Support 'q' format flag and %` and %'
1134         formats.  Use ' instead of ` in comments.
1135         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
1136         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
1137         foramt_types_orig): Describe these new formats.
1138         (decode_format_attr, check_function_format,
1139         check_format_info_main): Use these new formats.
1140         (status_warning): Use ATTRIBUTE_GCC_DIAG.
1141         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
1142         check these formats to 3.5.
1143
1144 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1145
1146         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
1147         (BACKEND): Reflect this.
1148         (LIBDEPS): Move CPPLIB before LIBIBERTY.
1149         (LIBS): Likewise.
1150
1151 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
1152
1153         PR tree-optimization/14197
1154         * builtins.c: Include "tree-gimple.h"
1155         (readonly_data_expr): Use get_base_address.  Make sure to call
1156         decl_readonly_section only on trees it can handle.
1157         * tree-gimple.c (get_base_address): Accept STRING_CST and
1158         CONSTRUCTOR expressions.
1159         * Makefile.in: Update dependencies.
1160
1161 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
1162
1163         Move libcpp to the toplevel.
1164         * Makefile.in: Remove references to libcpp files,
1165         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
1166         and change hashtable.h to that.
1167         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
1168         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
1169         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
1170         * configure: Regenerate.
1171         * config.in: Regenerate.
1172         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
1173         * cppcharset.c: Removed.
1174         * cpperror.c: Removed.
1175         * cppexp.c: Removed.
1176         * cppfiles.c: Removed.
1177         * cpphash.c: Removed.
1178         * cpphash.h: Removed.
1179         * cppinit.c: Removed.
1180         * cpplex.c: Removed.
1181         * cpplib.c: Removed.
1182         * cpplib.h: Removed.
1183         * cppmacro.c: Removed.
1184         * cpppch.c: Removed.
1185         * cpptrad.c: Removed.
1186         * cppucnid.h: Removed.
1187         * cppucnid.pl: Removed.
1188         * cppucnid.tab: Removed.
1189         * hashtable.c: Removed.
1190         * hashtable.h: Removed.
1191         * line-map.c: Removed.
1192         * line-map.h: Removed.
1193         * mkdeps.c: Removed.
1194         * mkdeps.h: Removed.
1195         * stringpool.h: Include symtab.h instead of hashtable.h.
1196         * tree.h: Include symtab.h instead of hashtable.h.
1197         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
1198
1199 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
1200
1201         * gcc.c (struct prefix_list): Add forward declaration.
1202         (do_spec_path): New function, extracted from...
1203         (do_spec_1) <'D'>: ... here.  Drop support for
1204         SPACE_AFTER_L_OPTION.
1205         (do_spec_1) <'I'>: Use do_spec_path.
1206         (process_command): Do not store the 'include' suffix
1207         in include_prefixes.
1208         * system.h: Poison SPACE_AFTER_L_OPTION.
1209
1210 2002-05-23  Roger Sayle  <roger@eyesopen.com>
1211
1212         * fold-const.c (non_lvalue): Explicitly list the tree codes that
1213         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
1214
1215 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
1216
1217         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
1218         Update based on printed manual.  Enable setting of offsets for
1219         FSFPRINT and move it to gcc-common.texi.
1220         * doc/gcc.texi: Update FSF printing details.
1221         * doc/gccint.texi: Remove FSF printing details.
1222
1223 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
1224
1225         * config/rs6000/t-rs6000: Remove the disabling -Werror.
1226
1227 2004-05-22  Roger Sayle  <roger@eyesopen.com>
1228
1229         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1230         expand_builtin_strrchr, expand_builtin_strpbrk,
1231         expand_builtin_mempcpy, expand_builtin_memcmp,
1232         expand_builtin_strcmp, expand_builtin_strncmp,
1233         expand_builtin_strcat, std_expand_builtin_va_start,
1234         std_expand_builtin_va_arg, expand_builtin_va_copy,
1235         expand_builtin_signbit, fold_builtin_cabs,
1236         fold_builtin_logarithm, fold_builtin_mempcpy,
1237         fold_builtin_signbit, fold_builtin_isascii,
1238         fold_builtin_toascii, fold_builtin_isdigit,
1239         fold_builtin_1, build_function_call_expr,
1240         simplify_builtin_strchr, simplify_builtin_strrchr,
1241         simplify_builtin_strpbrk, simplify_builtin_strncpy,
1242         simplify_builtin_memcmp, simplify_builtin_strcmp,
1243         simplify_builtin_strncmp, simplify_builtin_strncat,
1244         simplify_builtin_strspn, simplify_builtin_strcspn,
1245         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
1246         to build with calls to build2, build3 or omit_one_operand.
1247
1248 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1249
1250         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
1251         section when generating EABI code.
1252
1253 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
1254
1255         PR 15546
1256         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
1257         Call mark_decl_referenced on the SYMBOL_REF_DECL.
1258
1259 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
1260
1261         * c-common.c (c_common_truthvalue_conversion): Handle
1262         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
1263         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
1264         i.e. set the type to truthvalue_type_node and return.
1265
1266 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
1267
1268        * tree.h (struct tree_decl): Add possibly_inlined bit.
1269         (DECL_POSSIBLY_INLINED): New accessor macro.
1270         * cgraph.h: Remove declaration of cgraph_inline_hash.
1271         * cgraph.c: Remove definition of cgraph_inline_hash.
1272         (hash_node): Revert to hashing DECL_UID.
1273         (eq_node): Take two pointers to cgraph_node structures.
1274         Compare DECL_UIDs.
1275         (cgraph_remove_node): Pass the node directly to htab_find_slot.
1276         (cgraph_varpool_hash_node): Rename hash_varpool_node;
1277         hash on DECL_UID.
1278         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
1279         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
1280         (cgraph_node): Allocate a temporary node on the stack, fill in
1281         its DECL field, and pass that to htab_find_slot.
1282         (cgraph_varpool_node): Likewise.
1283         (cgraph_function_possibly_inlined_p): If global info is ready,
1284         return the DECL_POSSIBLY_INLINED bit.
1285         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
1286         instead of mucking with cgraph_inline_hash.
1287
1288 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1289
1290         * doc/contrib.texi: Add g77 contributors.
1291
1292 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1293
1294         * calls.c (initialize_argument_information): Forbid sibcalls if a
1295         callee-copied argument is stored in the current function's frame.
1296
1297 2004-05-22  Eric Christopher  <echristo@redhat.com>
1298
1299         * fix-header.c (read_scan_file): Update for add_path change.
1300
1301 2004-05-22  Ben Elliston  <bje@au.ibm.com>
1302
1303         * c.opt (Wmissing-include-dirs): New.
1304         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
1305         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
1306         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
1307         * c-incpath.h (add_path): Add fourth (bool) argument.
1308         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
1309         (add_standard_paths): Likewise.
1310         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
1311         is used and the directory was user-supplied via -I.
1312         (add_path): Set p->user_supplied_p.  Remove duplicated code by
1313         using add_cpp_dir_path ().
1314         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
1315         (struct cpp_dir): Add user_supplied_p.
1316         * doc/invoke.texi (Warning Options): Document new option.
1317
1318 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
1319
1320         * fold-const.c (fold_read_from_constant_string): Convert result to
1321         requested type.
1322
1323 2004-05-21  Richard Henderson  <rth@redhat.com>
1324
1325         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
1326         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
1327         Don't mark VA_ARG_EXPRs volatile here.
1328         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
1329
1330 2004-05-21  Richard Henderson  <rth@redhat.com>
1331
1332         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
1333         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
1334
1335 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1336
1337         * fold-const.c (fold, fold_relational_hi_lo,
1338         nondestructive_fold_binary_to_constant,
1339         fold_read_from_constant_string): Use fold_convert instead of convert.
1340         * builtins.c (simplify_builtin, simplify_builtin_strstr,
1341         simplify_builtin_strchr, simplify_builtin_strrchr,
1342         simplify_builtin_strpbrk): Use fold_convert instead of convert.
1343
1344 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
1345
1346         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
1347         is NULL.
1348
1349 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1350
1351         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
1352         override sparc.h definition.
1353
1354 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1355
1356         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
1357         get_unwidened, get_narrower): Replace build with build2.
1358         * fold-const.c (negate_expr, associate_trees, size_binop,
1359         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
1360         pedantic_omit_one_operand, distribute_bit_expr,
1361         make_bit_field_ref, optimize_bit_field_compare,
1362         decode_field_reference, range_binop, make_range,
1363         build_range_check, fold_range_test, fold_truthop,
1364         optimize_minmax_comparison, extract_muldiv_1,
1365         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
1366         fold_inf_compare, fold_single_bit_test, fold,
1367         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1368         Likewise replace build with either build2 or build3.
1369
1370 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
1371
1372         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
1373         * calls.c (prepare_call_address): Don't test
1374         NO_RECURSIVE_FUNCTION_CSE.
1375         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
1376         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1377         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1378         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1379         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1380         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1381         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1382         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1383         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1384         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1385         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1386         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
1387         Likewise.
1388         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1389         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
1390         * doc/tm.texi (Costs): Remove documentation for
1391         NO_RECURSIVE_FUNCTION_CSE.
1392
1393 2004-05-20  Paul Brook  <paul@codesourcery.com>
1394
1395         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
1396         * unwind-dw2.c (extract_cie_info): Ditto.
1397         (_Unwind_FrameState): Change retaddr_column to word type.
1398
1399 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1400
1401         PR middle-end/3074
1402         * fold-const.c (strip_compound_expr): Delete function.
1403         (count_cond): Delete function.
1404         (fold_binary_op_with_conditional_arg): Only perform transformations
1405         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
1406         when a is constant.  This greatly simplifies this routine.
1407
1408         * tree.c (saved_expr_p): Delete function.
1409         * tree.h (saved_expr_p): Delete function prototype.
1410
1411 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1412
1413         * common.opt (ftree-loop-optimize): Remove.
1414
1415 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
1416
1417         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
1418         (NM_FOR_TARGET): Use := and $(shell).
1419         (mainversion): Remove unused variable.
1420
1421 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1422
1423         * reorg.c (delete_from_delay_slot): If we have a barrier after the
1424         sequence containing the insn to be deleted, always reemit it.
1425
1426 2004-05-20  Richard Henderson  <rth@redhat.com>
1427
1428         PR 15454
1429         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
1430         * function.c (expand_function_start): Expand static_chain_decl by hand.
1431         * gimplify.c (create_tmp_var_name): Export.
1432         * tree-gimple.h (create_tmp_var_name): Declare.
1433
1434 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1435
1436         * rs6000.c (print_operand) <case 'z'>: Call
1437         mark_decl_referenced before assemble_name.
1438
1439 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
1440
1441         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1442         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1443         (cgraph_varpool_node): Hash on the pointer to the decl, not
1444         the DECL_UID.  Fixes 64-bit bootstrap failure.
1445
1446 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
1447
1448         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
1449         we don't earlyclobber operands used in the second insn.
1450
1451 2004-05-20  Steven Bosscher  <stevenb@suse.de>
1452
1453         * tree-mudflap.c: Formatting fixes.
1454
1455 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1456
1457         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
1458         * gengtype.c (open_base_files): Include reload.h in ifiles.
1459         * reload.h (reg_equiv_memory_loc_varray): Declare.
1460         * reload1.c (reg_equiv_memory_loc_varray): New variable.
1461         (init_reload): Initialize it.
1462         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
1463         reg_equiv_memory_loc_varray to size 0.
1464         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
1465         growing reg_equiv_memory_loc_varray to the desired size.
1466         * passes.c (rest_of_handle_old_regalloc): Likewise.
1467         * reload.c: Amend comment on calling init_reload.
1468
1469 2004-05-20  Nick Clifton  <nickc@redhat.com>
1470
1471         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
1472         with 'TRAMP' in the body of the macro definition.
1473
1474 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1475
1476         PR target/15383
1477         * config/ia64/ia64.c (ia64_expand_compare): Don't check
1478         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
1479         cmptf_libfunc isn't set.
1480         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
1481         conventions.
1482         (ia64_sysv4_init_libfuncs): New.
1483
1484         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
1485         ia64_sysv4_init_libfuncs.
1486
1487 2004-05-20  Falk Hueffner  <falk@debian.org>
1488
1489         PR other/15526
1490         * libgcc2.c (__mulvsi3): Fix overflow test.
1491
1492 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
1493
1494         PR c/14171
1495         * reg-stack.c (nan): Rename to ...
1496         (not_a_num): Here.
1497         (reg_to_stack): Rename nan to not_a_num.
1498         (subst_stack_regs_pat): Likewise.
1499         (convert_regs_entry): Likewise.
1500         (convert_regs_1): Likewise.
1501
1502         * tree-cfg.c (find_case_label_for_value): Replace call to
1503         simple_cst_equal with tree_int_cst_equal.
1504
1505 2004-05-19  Jeff Law <law@redhat.com>
1506
1507         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
1508         If the operand is for a use, then strip away the SSA_NAME, do not
1509         strip away the SSA_NAME for a set.  Never call release_ssa_name.
1510         (mark_def_sites): Appropriately pass additional argument to
1511         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
1512         then set the VDEF_RESULT to the VDEF_OP.
1513         (set_def_block): Strip away any SSA_NAME to get to the real
1514         underlying variable.
1515
1516         * tree-ssa-phiopt.c (value_replacement): Handle the case where
1517         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
1518         BB directly.
1519
1520 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1521
1522         PR c++/15463
1523         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
1524         result of inverse.
1525
1526         PR rtl-optimization/15274
1527         * loop-iv.c (determine_max_iter, shorten_into_mode,
1528         iv_number_of_iterations): Handle constants correctly.
1529         * rtl.h (get_mode_bounds): Declaration changed.
1530         * stor-layout.c (get_mode_bounds): Return a constant suitable for
1531         the target mode.
1532
1533         PR rtl-optimization/14692
1534         * loop-unswitch.c (may_unswitch_on): Try folding the result.
1535         (unswitch_single_loop): Work correctly when may_unswitch_on
1536         returns a folded constant.
1537
1538         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
1539         * simplify-rtx.c (simplify_const_relational_operation): Optimize
1540         comparisons with mode bounds.
1541
1542         * function.c (struct temp_slot): Add new field prev.
1543         (free_after_compilation, init_temp_slots): Free new fields.
1544         (cut_slot_from_list, insert_slot_to_list,
1545         temp_slots_at_level, max_slot_level, move_slot_to_level,
1546         make_slot_available): New functions.
1547         (assign_stack_temp_for_type, combine_temp_slots,
1548         find_temp_slot_from_address, preserve_temp_slots,
1549         preserve_rtl_expr_result, free_temp_slots,
1550         free_temps_for_rtl_expr, pop_temp_slots): Work with
1551         the new structure of lists.
1552         (mark_all_temps_used): Removed.
1553         * function.h (struct function): Field x_temp_slots
1554         replaced by x_used_temp_slots and x_avail_temp_slots.
1555         (temp_slots): Replaced by ...
1556         (used_temp_slots, avail_temp_slots): New.
1557         * tree.h (mark_all_temps_used): Declaration removed.
1558
1559         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
1560         simplify_using_assignment): Take the expression out of
1561         the expr_list wrapper.
1562
1563         * loop-iv.c (iv_number_of_iterations): Improve clasification of
1564         infinite loops.
1565
1566 2004-05-19  Roger Sayle  <roger@eyesopen.com>
1567
1568         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
1569         costs should be based on code size when optimizing for size.
1570
1571 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
1572
1573         * fold-const.c: Remove non-printable character 160.
1574
1575 2004-05-19  Nick Clifton  <nickc@redhat.com>
1576
1577         * doc/invoke.texi (ARM Options): Fix typo.
1578         Remove descrption of -mshort-load-bytes and
1579         -mno-short-load-bytes.
1580
1581         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
1582         missing parenthesis.
1583         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
1584         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
1585
1586 2004-05-19  Steven Bosscher  <stevenb@suse.de>
1587
1588         * expr.c (store_constructor): Build loop start and end by hand
1589         instead of via loop functions from stmt.c.
1590         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
1591         Remove the code to expand them.
1592
1593         * stmt.c (loop_stack): Remove this and everything related.
1594         (struct nesting, enum nesting_desc): Update.
1595         (expand_fixup): Likewise.
1596         (expand_loop_start, expand_start_loop_continue_elsewhere,
1597         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
1598         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
1599         expand_exit_loop_if_false, expand_exit_loop_top_cond,
1600         expand_exit_something): Remove.
1601         * tree.h: Remove prototypes.
1602
1603 2004-05-18  Mike Stump  <mrs@apple.com>
1604             Devang Patel  <dpatel@apple.com>
1605
1606         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
1607         if this label is for eh.
1608         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
1609         * config/darwin.c (darwin_emit_unwind_label): Likewise.
1610         * dwarf2out.c (output_call_frame_info): Likewise.
1611         * output.h (default_emit_unwind_label): Likewise.
1612         * target.h (unwind_label): Likewise.
1613         * varasm.c (default_emit_unwind_label): Likewise.
1614
1615         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1616         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
1617         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
1618         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
1619         DEBUG_RANGES_SECTION): Define.
1620
1621 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
1622
1623         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1624         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1625         (cgraph_varpool_node):
1626         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
1627         (cgraph_function_possibly_inlined_p): Use the decl itself for
1628         the key, not DECL_ASSEMBLER_NAME.
1629         (change_decl_assembler_name): No need to muck with the hash tables.
1630         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
1631         Delete.
1632         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
1633         for the key, not DECL_ASSEMBLER_NAME.
1634         * cgraph.h: Remove prototypes of deleted functions.
1635         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1636         (mark_decl_referenced): New function.
1637         * tree.h: Prototype mark_decl_referenced.
1638         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1639         mark_decl_referenced before assemble_name.
1640         * c-decl.c (finish_decl): Use mark_decl_referenced.
1641
1642 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1643             Jeff Law <law@redhat.com>
1644
1645         * tree-ssa-phiopt.c (abs_replacement): New function.
1646         (empty_block_p): New function extracted from...
1647         (candidate_bb_for_phi_optimization): Break out empty block test.
1648         (conditional_replacement): Use empty_block_p.
1649         (value_replacement): Similarly.
1650
1651         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1652         * tree-ssa-phiopt.c: Include flags.h.
1653         (conditional_replacement): Remove argument names from prototype.
1654         Minor formatting and comment fixes.
1655         (tree_ssa_phiopt): If conditional_replacement returns false, then
1656         call value_replacement.
1657         (value_replacement): New function.
1658
1659 2004-05-18  Jeff Law  <law@redhat.com>
1660
1661         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1662         from conditional_replacement.
1663         (candidate_bb_for_phi_optimization): Similarly.
1664         (conditional_replacement): Use replace_phi_with_stmt and
1665         candidate_bb_for_phi_optimization.
1666
1667         * tree-ssa-phiopt.c: Fix various formatting issues.
1668
1669 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1670
1671         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1672         s390_expand_cmpmem): Do not use expand_start_loop and
1673         expand_end_loop, instead build the loop manually.
1674
1675 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1676
1677         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1678         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1679
1680 2004-05-17  Jeff Law  <law@redhat.com>
1681
1682         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1683         * flags.h (flag_delete_null_pointer_checks): Here.
1684         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1685         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1686         (add_phi_arg, remove_phi_arg_num): Similarly.
1687         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1688         property into PHI nodes.
1689         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1690         (record_equivalences_from_phis): If all PHI arguments are known to be
1691         nonzero, then the result must be nonzero as well.
1692         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1693         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1694         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1695         as appropriate.
1696         * tree.h (PHI_ARG_NONZERO): Define.
1697         (phi_arg_d): Add nonzero flag.
1698
1699 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1700
1701         * f: Entire directory removed
1702
1703         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1704         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1705         (g77_integer_type_node, g77_uinteger_type_node)
1706         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1707         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1708         the above set of variables.
1709
1710         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1711         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1712         to g77 manual.
1713
1714 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1715
1716         PR tree-optimization/15438
1717         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1718         attributed functions as pure or const.
1719
1720 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1721
1722         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1723         from source code with errors.
1724
1725 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1726
1727         Enable tree browser for all front ends.
1728         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1729         (BACKEND): ...to here.
1730
1731 2004-05-17  Jan Hubicka  <jh@suse.cz>
1732
1733         * i386.c (construct_container): Do not produce BLKmode registers.
1734         (classify_argument): Properly compute alignment of complex types.
1735
1736 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1737
1738         PR target/15084
1739         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1740         and renamed to movdi_insv_1_rex64.
1741         (insv): Support SImode for 32bit and DImode for 64bit.
1742
1743 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1744
1745         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1746         (TARGET_SWITCHES): Remove debugg.
1747         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1748         TARGET_64BIT.
1749         (subdi3): Replace the define_expand with a define_insn, the latter
1750         renamed from subdi3_internal_3.
1751         (negdi2): Likewise negdi2_internal_2.
1752         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1753         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1754         and associated define_splits.
1755         (adddi3_internal): Renamed from adddi3_internal_3.
1756         (ashldi3_internal): Likewise ashldi3_internal4.
1757         (ashrdi3_internal): Likewise ashrdi3_internal4.
1758         (lshrdi3_internal): Likewise lshrdi3_internal4.
1759
1760 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1761
1762         * optabs.c (expand_unop): Try implementing negation using subtraction
1763         from zero.
1764
1765 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1766
1767         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1768         SAR register.
1769
1770 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1771
1772         PR target/10982
1773         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1774         (ne_zeroextractsi_shifted): New pattern.
1775         (ite_ne_zeroextractsi): New pattern.
1776         (ite_ne_zeroextractsi_shifted): New pattern.
1777
1778 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1779
1780         * c-gimplify.c (c_genericize):
1781         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1782         * c-parse.in <expr_no_commas>: Likewise.
1783         <if_prefix>: Likewise.
1784         <select_or_iter_stmt>: Likewise.
1785         * expr.c (expand_var, expand_expr_real_1): Likewise.
1786         * expr.h (expand_expr): Make it a static inline function.
1787         Move prototype for expand_expr_real up before this.
1788         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1789         Likewise.
1790         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1791         gimplify_asm_expr, gimplify_expr): Likewise.
1792         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1793         dump_function_to_file): Likewise.
1794         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1795         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1796         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1797         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1798         Likewise.
1799         * tree-optimize.c (execute_one_pass): Likewise.
1800         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1801         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1802
1803         * objc/objc-act.c (objc_build_try_enter_fragment,
1804         objc_build_try_epilogue, objc_build_catch_stmt,
1805         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1806         with lang_hooks.foo ().
1807
1808 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1809
1810         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1811         that simplify_builtin doesn't destructively modify its argument.
1812
1813 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1814
1815         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1816         implementations for ARM and Thumb.
1817         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1818
1819 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1820
1821         * prefix.c (update_path): Replace PREFIX with KEY only
1822         when it matches a full directory name in PATH.
1823
1824 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1825
1826         * arm.h (TARGET_APCS_32): Delete.
1827         (TARGET_MMU_TRAPS): Delete.
1828         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1829         define __APCS_26__.
1830         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1831         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1832         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1833         (prog_mode_type): Delete.
1834         (PROMOTE_MODE): Always promote unsigned for HImode.
1835         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1836         (MASK_RETURN_ADDR): Simplify.
1837         * arm.c (arm_prgmode): Delete.
1838         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1839         (print_multi_reg, output_return_instruction): Simplify.
1840         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1841         (arm_return_addr): Simplify.
1842         * arm.md (prog_mode): Delete.
1843         (conds): Simplify.
1844         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1845         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1846         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1847         (loadhi_shiftpredec): Delete.
1848         (peephole for post-increment on HImode load): Delete.
1849         * arm/crtn.asm: (FUNC_END): Simplify.
1850         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1851         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1852         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1853         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1854         MULTILIB_DEFAULTS as required.
1855         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1856         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1857         variables as required.
1858         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1859
1860 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1861
1862         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1863         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1864         count to 8 to handle n_reg > 2.
1865
1866 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1867
1868         * doc/extend.texi: Update WG14 URL.
1869
1870 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1871
1872         * basic-block.h (life_analysis, delete_noop_moves):
1873         Update prototypes.
1874         * bt-load.c (branch_target_load_optimize): Don't take the
1875         insns stream as an argument.  Update the life_analysis calls.
1876         * combine.c (combine_instructions): Update delete_noop_moves
1877         calls.
1878         * flow.c (notice_stack_pointer_modification): Don't take the
1879         insns stream as an argument.  Work on the flow graph.
1880         (life_analysis): Likewise.
1881         (delete_noop_moves): Likewise.
1882         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1883         (rest_of_handle_life): Update life_analysis call.
1884         (rest_of_compilation): Likewise, and also update
1885         branch_target_load_optimize call.
1886         * ra.c (reg_alloc): Update life_analysis call.
1887         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1888         the insns stream as an argument.
1889         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1890         call.
1891         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1892         prototypes.
1893         * value-profile.c (branch_prob): Update life_analysis call.
1894         * web.c (web_main): Work on the CFG, not on the insns stream.
1895
1896         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1897         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1898         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1899
1900 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1901
1902         PR c/15444
1903         * c-format.c (avoid_dollar_number): New function.
1904         (check_format_info_main): Call avoid_dollar_number when operand
1905         numbers might occur but has_operand_number == 0.
1906
1907 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1908
1909         * arm.md (all peephole2 patterns): Use predicates that validate
1910         register classes as appropriate.
1911
1912 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1913
1914         PR opt/14472
1915         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1916         ignore type conversions that do not inhibit tail calling.
1917         (find_tail_calls): Likewise.
1918
1919 2004-05-14  Jeff Law  <law@redhat.com>
1920
1921         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1922         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1923         bypassed virtuals into vars_to_rename just before into-ssa pass.
1924
1925         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1926         so that it picks up more opportunities to eliminate ABS expressions
1927         or turn them into negations.
1928
1929 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1930
1931         * passes.c (rest_of_handle_null_pointer): Remove.
1932         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1933         (rest_of_compilation): Likewise.
1934         * rtl.h (delete_null_pointer_checks): Remove prototype.
1935         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1936         Remove declarations.
1937         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1938         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1939         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1940         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1941         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1942         one_classic_gcse_pass, invalidate_nonnull_info,
1943         delete_null_pointer_checks_1, delete_null_pointer_checks,
1944         expr_reached_here_p_work): Remove.
1945         (gcse_main): Do not perform classic GCSE when optimizing for size.
1946         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1947         are never used.
1948
1949 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1950
1951         PR optimization/14466
1952         * tree-complex.c (make_temp): Remove.
1953         (gimplify_val): Replace make_temp with make_rename_temp
1954         and add NULL as the second argument.
1955         (expand_complex_div_wide): Likewise.
1956         * tree-dfa.c (make_rename_temp): New function.
1957         * tree-flow.h (make_rename_temp): Declare.
1958         * tree-sra.c (make_temp): Remove.
1959         (lookup_scalar): Replace make_temp with make_rename_temp.
1960         (create_scalar_copies): Likewise.
1961         * tree-ssa-phiopt.c (conditional_replacement): When we
1962         get non gimple create a temporary variable to hold the
1963         casted expression.
1964
1965 2004-05-14  Paul Brook  <paul@codesourcery.com>
1966
1967         * stor-layout.c (update_alignment_for_field): Use
1968         targetm.align_anon_bitfield.
1969         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1970         (TARGET_INITIALIZER): Use it.
1971         * target.h (struct gcc_target): Add align_anon_bitfield.
1972         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1973         (TARGET_ALIGN_ANON_BITFIELD): Define.
1974         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1975
1976 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1977
1978         * tree.def (documentation): Remove mention of class 'b'.
1979         (BLOCK): Now in class 'x'.
1980         * c-common.c (verify_tree): Remove case 'b'.
1981         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1982         * calls.c (calls_function_1): Control cannot get past the switch
1983         when exp is a BLOCK.
1984         * print-tree.c (print_node): Move code for class 'b' to the class
1985         'c'/'x' switch, as case BLOCK.
1986         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
1987         (unsafe_for_reeval, substitute_placeholder_in_expr)
1988         (stabilize_reference_1): Remove case 'b'.
1989         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
1990         of something being 'b' to tests for TREE_CODE of something being
1991         BLOCK.
1992         * tree-ssa-operands.c (get_expr_operands): Likewise.
1993
1994 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
1995
1996         * tree-gimple.c: Rename from tree-simple.c.
1997         * tree-gimple.h: Rename from tree-simple.h.
1998         * c-gimplify.c: Rename from c-simplify.c
1999         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2000         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2001         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2002         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2003         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2004         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2005         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2006         Update.
2007
2008 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2009
2010         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2011
2012 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2013
2014         * tree-ssa.c (delete_tree_ssa): XFREE
2015         bitmaps allocated with BITMAP_XMALLOC.
2016
2017         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2018         idfs_cache at the end of the function.
2019
2020         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2021         at the end of the function.
2022
2023         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2024         el at the end of the function.
2025
2026         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2027         bitmaps allocated with BITMAP_XMALLOC.
2028
2029         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2030         the end.
2031
2032         * final.c (shorten_branches): Free uid_shuid before
2033         reallocating it.
2034
2035         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2036
2037 2004-05-13  Jeff Law  <law@redhat.com>
2038
2039         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2040         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2041         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2042
2043         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2044         rather than iterating through the blocks testing each bit in
2045         livein to initialize the worklist.
2046         (mark_def_sites): Remove useless checks of KILLS for virtual
2047         operands.
2048
2049         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2050         new parameters for the statement and variable worklist as well
2051         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2052         worklist recording interesting variables in the variable worklist
2053         and bitmap.  Handle casts between integral and boolean types.
2054         (substitute_single_use_vars): Accept new parameters for the statement
2055         and variable worklist.  When a substitution is made add a new
2056         entry to the statement worklist.  Handle casts between integral
2057         and boolean types.
2058         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2059         worklists to children.  Iterate until the statement worklist
2060         is empty.
2061
2062 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2063
2064         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2065         the end of the block.
2066
2067         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2068         with BITMAP_XMALLOC.
2069
2070         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2071         with BITMAP_XMALLOC.
2072
2073         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2074         Free nonzero_vars at the end of the function.
2075
2076         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2077         need to generate code instead of a NOP_EXPR.
2078
2079 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2080
2081         * gcc.c (default_compilers): Fill out initializers for new Fortran
2082         entries.
2083
2084 2004-05-13  Paul Brook  <paul@codesourcery.com>
2085
2086         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2087
2088 2004-05-13  Paul Brook  <paul@codesourcery.com>
2089
2090         * config/arm/arm.c (arm_default_short_enums): New function.
2091         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2092
2093 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2094
2095         Merge from tree-ssa-20020619-branch.
2096
2097         * Makefile.in (reload1.o-warn): Add.
2098         (tree-alias-ander.o-warn): Add.
2099         (GMPLIBS): Define.
2100         (GMPINC): Define.
2101         (BANSHEELIB): Define.
2102         (BANSHEEINC): Define.
2103         (TREE_DUMP_H): Define.
2104         (TREE_SIMPLE_H): Define.
2105         (TREE_FLOW_H): Define.
2106         (LIBDEPS): Add BANSHEELIB.
2107         (INCLUDES): Add BANSHEEINC and GMPINC.
2108         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
2109         c-mudflap.o and c-pretty-print.o.
2110         (C_OBJS): Remove c-pretty-print.o.
2111         (OBJS-common): Remove sibcall.o.
2112         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
2113         tree-ssa.o, tree-optimize.o, tree-simple.o,
2114         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
2115         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
2116         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
2117         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2118         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
2119         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
2120         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
2121         tree-tailcall.o, gimple-low.o, tree-iterator.o,
2122         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
2123         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
2124         tree-profile.o.
2125         (OBJC-archive): Add tree-nomudflap.o.
2126         (cc1): Add dependency on @TREEBROWSER@.
2127         (c-decl.o): Add dependency on TREE_DUMP_H.
2128         (c-dump.o): Likewise.
2129         (c-common.o): Add dependency on tree-iterator.h
2130         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
2131         (gtype-desc.o): Add dependency on TREE_FLOW_H.
2132         (tree.o): Add dependency on tree-iterator.h,
2133         BASIC_BLOCK_H and TREE_FLOW_H.
2134         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
2135         (langhooks.o): Add dependency on TREE_SIMPLE_H.
2136         (tree-alias-type.o, tree-alias-ander.o,
2137         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
2138         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
2139         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
2140         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
2141         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
2142         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
2143         tree-nested.o, tree-iterator.o, tree-dfa.o,
2144         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
2145         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
2146         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
2147         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
2148         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
2149         tree-sra.o, tree-complex.o, tree-profile.o,
2150         rtl-profile.o): New rules.
2151         (function.o): Add dependency on basic-block.h
2152         (expr.o): Add dependency on tree-iterator.h.
2153         (sibcall.o): Remove.
2154         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
2155         (cfg.o): Add dependency on TIMEVAR_H.
2156         (cfghooks.o): Add dependency on TREE_FLOW_H.
2157         (reg-stack.o): Add dependency on basic-block.h.
2158         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
2159         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
2160         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
2161         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
2162         tree-alias-type.h, tree-alias-common.h,
2163         tree-alias-type.c, tree-alias-common.c,
2164         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
2165         rtl-profile.c and tree-nested.c.
2166         (gt-tree-alias-common.h, gt-tree-mudflap.h,
2167         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
2168         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
2169         gt-tree-cfg.h, gt-tree-nested.h): New rules.
2170         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
2171         * basic-block.h: Include predict.h
2172         (struct edge_def): Add GTY marker.
2173         Change field 'insns' to be a union of tree and rtx.
2174         (EDGE_TRUE_VALUE): Define.
2175         (EDGE_FALSE_VALUE): Define.
2176         (EDGE_EXECUTABLE): Define.
2177         (struct bb_ann_d): Forward declare.
2178         (struct basic_block_def): Add GTY marker.
2179         Remove fields head_tree and end_tree.
2180         Add fields stmt_list, rbi and tree_annotations.
2181         (struct reorder_block_def): Define.
2182         (basic_block_info): Add GTY marker.
2183         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
2184         variables instead of macros.
2185         (flow_call_edges_add): Remove declaration.
2186         (make_eh_edge): Remove declaration.
2187         (brief_dump_cfg, find_edge, tree_predicted_by_p,
2188         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
2189         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
2190         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
2191         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
2192         (try_redirect_by_replacing_jump): Modfiy return type to
2193         edge instead of bool.
2194         * bb-reorder.c (copy_bb): Call duplicate_block
2195         instead of cfg_layout_duplicate_bb.
2196         (copy_bb_p): Call can_duplicate_block_p instead of
2197         cfg_layout_can_duplicate_bb_p.
2198         * bitmap.c (bitmap_first_set_bit): Abort if word
2199         wasn't found.
2200         (bitmap_last_set_bit): Likewise.
2201         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
2202         (DEF_FUNCTION_TYPE_3): Add.
2203         * builtins.c (c_strlen): Make extern.
2204         (builtin_save_expr): New.
2205         (expand_builtin_nonlocal_goto): New.
2206         (expand_builtin_constant_p): Remove.
2207         (expand_builtin_mathfn): Call builtin_save_expr instead
2208         of save_expr.
2209         (expand_builtin_mathfn_2): Likewise.
2210         (expand_builtin_strcmp): Likewise.
2211         (expand_builtin_strncmp): Likewise.
2212         (expand_builtin_strcat): Likewise.
2213         (fold_builtin_cabs): Likewise.
2214         (expand_builtin_alloca): Don't trigger if -fmudflap is
2215         given.
2216         (build_string_literal): Set TREE_INVARIANT on new node.
2217         (expand_builtin_profile_fun): New.
2218         (round_trampoline_addr): New.
2219         (expand_builtin_init_trampoline): New.
2220         (expand_builtin_adjust_trampoline): New.
2221         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
2222         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
2223         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
2224         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
2225         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
2226         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
2227         Handle.
2228         (fold_builtin_expect): New.
2229         (fold_builtin_isascii): Don't return non-constant results
2230         in GIMPLE form.
2231         (fold_builtin_isdigit): Likewise.
2232         (fold_builtin_1): New.
2233         (fold_builtin): Call it.
2234         (build_function_call_expr): Update call to build a new
2235         CALL_EXPR.
2236         (purge_builtin_constant_p): Remove.
2237         (simplify_builtin, simplify_builtin_memcmp,
2238         simplify_builtin_strcmp, simplify_builtin_strncmp,
2239         simplify_builtin_strpbrk, simplify_builtin_strstr,
2240         simplify_builtin_strchr, simplify_builtin_strrchr,
2241         simplify_builtin_strcat, simplify_builtin_strncat,
2242         simplify_builtin_strspn, simplify_builtin_strcspn,
2243         simplify_builtin_next_arg, simplify_builtin_va_start,
2244         simplify_builtin_sprintf): New.
2245         * builtins.def (BUILT_IN_STACK_ALLOC,
2246         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
2247         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
2248         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
2249         BUILT_IN_PROFILE_FUNC_EXIT): Define.
2250         * c-common.c: Include tree-iterator.h and hashtab.h.
2251         (lang_statement_code_p): Declare.
2252         (lang_gimplify_stmt): Declare.
2253         (fix_string_type): Set TREE_INVARIANT for value.
2254         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
2255         (c_type_hash): New.
2256         (c_common_get_alias_set): Handle multiple type nodes
2257         referring to "the same" type, currently for C90 only.
2258         (c_add_case_label): Use create_artificial_label.
2259         (finish_label_address_expr): Don't set TREE_CONSTANT on
2260         result.
2261         (c_expand_expr): Don't handle STMT_EXPR.
2262         (handle_alias_attribute): Marke aliased variables to be
2263         TREE_STATIC.
2264         (handle_nonnull_attribute): Initialize arg_num.
2265         (check_function_nonnull): Likewise.
2266         (c_walk_subtrees): New.
2267         (c_estimate_num_insns_1): Don't handle
2268         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
2269         (c_decl_uninit_1): Remove.
2270         (c_decl_uninit): Remove.
2271         (c_warn_unused_result): New.
2272         * c-common.def (ASM_STMT): Change number of operands
2273         to 4.
2274         (FILE_STMT): Remove.
2275         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
2276         Remove.
2277         (lang_gimplify_stmt): Add.
2278         (expand_stmt): Remove.
2279         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2280         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
2281         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
2282         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
2283         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
2284         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2285         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2286         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
2287         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
2288         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
2289         genrtl_compound_stmt, genrtl_asm_stmt,
2290         genrtl_cleanup_stmt, c_decl_uninit): Remove.
2291         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
2292         c_tree_chain_matters_p, c_warn_unused_result,
2293         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
2294         Declare.
2295         * c-convert.c (convert): Make convert work when
2296         converting to compatible types across translation unit.
2297         * c-decl.c: Include langhooks.h, tree-mudflap.h,
2298         tree-simple.h, diagnostic.h and tree-dump.h
2299         (merge_decls): Initialize oldtype to NULL.
2300         (finish_decl): Use DECL_HARD_REGISTER instead of
2301         DECL_C_HARD_REGISTER.
2302         (check_bitfield_type_and_width): Check for null
2303         lang_type_specific when check the precision of an enum.
2304         (grokdeclarator): Immediately layout an ARRAY_TYPE used
2305         in a pointer-to-array declarator.
2306         (finish_struct): Clear allocated struct lang_type.
2307         (finish_enum): Set enum_min and enum_max.  Set
2308         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
2309         not to the enumerators.
2310         (set_decl_nonlocal): New.
2311         (store_parm_decls): Use it via walk_tree.
2312         (c_finalize): New.
2313         (finish_function): When !targetm.have_ctors_dtors,
2314         record static constructors and destructors here...
2315         (c_expand_body_1): ... not here.
2316         (c_expand_decl): Rename from c_expand_decl_stmt.
2317         Handle all C-specific expansion semantics.
2318         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
2319         STMT_LINENO.
2320         * c-format.c (handle_format_arg_attribute): Initialize
2321         format_num.
2322         * c-lang.c: Include tree-inline.h
2323         (LANG_HOOKS_EXPAND_DECL,
2324         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2325         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
2326         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
2327         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2328         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
2329         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
2330         (c_types_compatible_p): New.
2331         * c-mudflap.c: New file.
2332         * c-objc-common.c: Include tree-mudflap.h
2333         (start_cdtor, finish_cdtor): Collapse
2334         together into
2335         (build_cdtor): ...here.  Update to construct a complete tree
2336         for the function.  No need to call push_scope, pop_scope, or
2337         clear_last_expr, or set current_function_cannot_inline.
2338         (c_missing_noreturn_ok_p): Change prototype to return
2339         bool.
2340         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
2341         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
2342         opts.c.
2343         (c_common_post_options): Don't ever use rtl inlining.
2344         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
2345         * c-pragma.c (handle_pragma_redefine_extname): Define
2346         always.
2347         (init_pragma): Activate #pragma redefine_extname for mudflap.
2348         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
2349         (pp_c_initializer): Accept any type CONSTRUCTOR.
2350         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
2351         COMPLEX_TYPE.
2352         (decl_name_str): New local function.
2353         (pp_c_direct_declarator): Call it.
2354         (pp_c_primary_expression): Call it.
2355         (pp_c_id_expression): Call it.
2356         (pp_c_statement): Call it.
2357         (print_c_tree): Create new pp object.
2358         * c-pretty-print.h (pp_c_tree_decl_identifier,
2359         print_c_tree): Declare.
2360         * c-semantics.c: Include langhooks.h
2361         (lang_expand_stmt, lang_expand_decl_stmt,
2362         find_reachable_label_1, find_reachable_label,
2363         expand_unreachable_if_stmt, expand_unreachable_stmt,
2364         genrtl_do_stmt_1): Remove.
2365         (begin_stmt_tree): Don't check for changed filename.
2366         Call annotate_with_locus.
2367         (finish_stmt_tree): Don't set line for end of function.
2368         (build_stmt): Don't check type nodes for
2369         side effects.
2370         (build_stmt): Set TREE_SIDE_EFFECTS.
2371         Set EXPR_LOCUS instead of STMT_LINENO.
2372         (lang_expand_stmt, lang_expand_decl_stmt,
2373         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2374         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2375         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
2376         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
2377         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
2378         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
2379         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
2380         find_reachable_label_1, expand_unreachable_if_stmt,
2381         expand_unreachable_stmt): Remove.
2382         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
2383         * c-simplify.c: New file.
2384         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
2385         (struct lang_type): Add fields enum_min and enum_max.
2386         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
2387         (c_expand_decl, c_missing_noreturn_ok_p,
2388         c_types_compatible_p): Declare.
2389         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
2390         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
2391         (default_function_array_conversion): Rely on build to
2392         set TREE_CONSTANT.
2393         (parser_build_binary_op, pointer_diff): Likewise.
2394         (build_unary_op, build_binary_op): Likewise.
2395         (build_array_ref):
2396         (build_external_ref): Set TREE_INVARIANT.
2397         (build_c_cast, pop_init_level): Likewise.
2398         (process_init_element): Use ASM_VOLATILE_P.
2399         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
2400         (c_finish_case): Call c_do_switch_warnings.
2401         * c.opt (fdump-): Remove.
2402         * calls.c (try_to_integrate): Remove.
2403         (prepare_call_address): Replace fndecl arg with a
2404         precomputed static chain value.
2405         (emit_call_1): New argument for full call expr.
2406         (flags_from_decl_or_type): Call special_function_p.
2407         (initialize_argument_information): Add argument
2408         may_tailcall.
2409         (purge_reg_equiv_notes): New.
2410         (expand_call): Do not try to expand calls inline.
2411         (fixup_tail_calls): New.
2412         * cfg.c: Include timevar.h and ggc.h.
2413         (bb_pool, edge_pool): Remove.
2414         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
2415         (entry_exit_blocks): Remove.
2416         (rbi_pool): Declare.
2417         (init_flow): Do not create pools.
2418         Allocate entry/exit block.
2419         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
2420         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
2421         (unlink_block): Clear b->prev_bb and b->next_bb.
2422         (compact_blocks): Clear all slots of BASIC_BLOCK array.
2423         (dump_flow_info): Work on trees too.
2424         (dump_cfg_bb_info): New.
2425         (brief_dump_cfg): New.
2426         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
2427         (find_edge): New.
2428         * cfgbuild.c (rtl_make_eh_edge): Rename from
2429         make_eh_edge.  Update all users.
2430         (find_basic_blocks): Don't call VARRAY_FREE on
2431         basic_block_info.
2432         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
2433         and newpos2.
2434         (delete_unreachable_blocks): Return changed status.
2435         (merge_seq_blocks): New.
2436         * cfghooks.c: Include tree-flow.h
2437         (tree_register_cfg_hooks, ir_type): New.
2438         (redirect_edge_and_branch): Change return type to edge.
2439         (predict_edge, predicted_by_p, can_duplicate_block_p,
2440         duplicate_block, block_ends_with_call_p,
2441         block_ends_with_condjump_p, flow_call_edges_add): New.
2442         * cfghooks.h (redirect_edge_and_branch): Change return
2443         type to edge.
2444         (predict_edge, predicted_by_p, can_duplicate_block_p,
2445         duplicate_block, block_ends_with_call_p,
2446         block_ends_with_condjump_p, flow_call_edges_add): Declare.
2447         (redirect_edge_and_branch): Change return type to edge.
2448         (struct cfg_hooks): Add fields block_ends_with_call_p,
2449         block_ends_with_condjump_p, flow_call_edges_add,
2450         predict_edge, predicted_by_p, can_duplicate_block_p and
2451         duplicate_block.
2452         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
2453         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
2454         (fixup_reorder_chain): Use initialize_bb_rbi.
2455         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
2456         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
2457         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
2458         (insn_locators_initialize): Use new info about blocks.
2459         * cfglayout.h (typedef struct reorder_block_def): Moved to
2460         basic_block.h.
2461         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
2462         removed.
2463         * cfgloop.c: Include tree.h and tree-flow.h.
2464         * cfgloop.h (create_loop_notes): Declare.
2465         * cfgloopmanip.c (create_loop_notes): New.
2466         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
2467         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
2468         and duplicate_block fields.
2469         (create_basic_block_structure): Don't look at
2470         RTX_INTEGRATED_P.
2471         (rtl_block_ends_with_call_p): New.
2472         (rtl_block_ends_with_condjump_p): New.
2473         (need_fake_edge_p): Moved from cfganal.c.
2474         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
2475         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
2476         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
2477         (cfg_layout_rtl_cfg_hooks): Ditto.
2478         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
2479         functions to be reachable.
2480         * cgraphunit.c (decide_is_function_needed):
2481         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
2482         inline functions don't need to be output.
2483         (cgraph_assemble_pending_functions): Don't do anything
2484         special for nested functions.
2485         (cgraph_mark_functions_to_output): Likewise.
2486         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
2487         (cgraph_analyze_function): Use estimate_num_insns.
2488         (cgraph_mark_functions_to_output): Likewise.
2489         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
2490         (cgraph_expand_function): Allow functions to not be
2491         emitted.
2492         (cgraph_remove_unreachable_nodes):
2493         (cgraph_recursive_inlining_p): Simplify.
2494         (lookup_recursive_calls,
2495         cgraph_decide_recursive_inlining): New.
2496         (cgraph_decide_inlining_*): Update calls of
2497         cgraph_mark_inline.
2498         * combine.c (get_pos_from_mask): Always set *plen.
2499         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
2500         ftree-based-profiling, ftree-ccp, ftree-ch,
2501         ftree-combine-temps, ftree-copyrename, ftree-dce,
2502         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
2503         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
2504         ftree-lrs): Add.
2505         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
2506         Undefine.
2507         * configure.ac: Add --enable-tree-browser option.
2508         Add --with-libbanshee option.
2509         Add GMPLIBS and GMPINC.
2510         * configure: Regenerate.
2511         * coverage.c (tree_ctr_tables): New.
2512         (coverage_counter_alloc): Use it.
2513         (build_ctr_info_value): Ditto.
2514         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
2515         (tree_coverage_counter_ref): New.
2516         * coverage.h (coverage_counter_ref): Remove declaration.
2517         (rtl_coverage_counter_ref): Declare.
2518         (tree_coverage_counter_ref): Declare.
2519         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
2520         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
2521         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
2522         (struct cse_basic_block_data): Rename enum values to not
2523         conflict with profile.h; update all uses.
2524         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
2525         in comments.
2526         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
2527         * diagnostic.h (debug_output_buffer, dump_generic_node,
2528         print_generic_stmt, print_generic_stmt_indented,
2529         print_generic_expr, print_generic_decl,
2530         debug_generic_expr, debug_generic_stmt, debug_c_tree):
2531         Declare.
2532         * dominance.c: Cache immediate dominators.
2533         * domwalk.c: New file.
2534         * domwalk.h: New file.
2535         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
2536         (gen_subprogram_die): Generate a DIE for a named
2537         return value.
2538         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
2539         (add_location_or_const_value_attribute): Likewise.
2540         (add_bound_info): Likewise.
2541         (gen_decl_die): Likewise.
2542         * emit-rtl.c (maybe_set_first_label_num): New.
2543         (copy_most_rtx): Don't copy the integrated flag.
2544         Copy the new return_val flag.
2545         * et-forest.c (MAX_NODES): Define.
2546         (record_path_before_1): Abort if len is greater than
2547         MAX_NODES.
2548         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
2549         gen_eh_region_catch, gen_eh_region_allowed,
2550         gen_eh_region_must_not_throw, get_eh_region_number,
2551         get_eh_region_may_contain_throw, get_eh_region_tree_label,
2552         set_eh_region_tree_label, expand_resx_expr): New.
2553         (expand_eh_region_start, expand_start_catch): Use them.
2554         (expand_end_catch): Tidy.
2555         (note_eh_region_may_contain_throw): Take region argument.
2556         (note_current_region_may_contain_throw): New.
2557         (get_exception_filter): Export.
2558         (collect_eh_region_array): Export.
2559         (remove_unreachable_regions): Check ERT_TRY based on reachability
2560         of catches, not reachability of continue_label.  Never remove
2561         ERT_MUST_NOT_THROW regions.
2562         (collect_rtl_labels_from_trees): New.
2563         (convert_from_eh_region_ranges): Use it.
2564         (connect_post_landing_pads): Handle dying cleanups.
2565         (struct reachable_info): Add callback data.
2566         (add_reachable_handler): Invoke the callback.
2567         (foreach_reachable_handler): New.
2568         (reachable_handlers): Use it.
2569         (arh_to_landing_pad, arh_to_label): New.
2570         (can_throw_internal_1): Split out from can_throw_internal.
2571         (can_throw_external_1): Similarly.
2572         * except.h: Update.
2573         * explow.c (emit_stack_save): Remove savearea mode check.
2574         (update_nonlocal_goto_save_area): New.
2575         (allocate_dynamic_stack_space): Use it.
2576         (probe_stack_range): Never emit loop notes.
2577         * expmed.c (extract_fixed_bit_field): Always propagate the
2578         target for the shift if it is a REG.
2579         * expr.c: Include tree-iterator.h
2580         (is_zeros_p): Remove.
2581         (categorize_ctor_elements_1, categorize_ctor_elements): New.
2582         (count_type_elements): New.
2583         (mostly_zeros_p): Use them.
2584         (expr_wfl_stack): Remove.
2585         (convert_move): Do nothing if to and from are the same.
2586         (emit_block_move_via_loop): Don't emit LOOP notes.
2587         (emit_move_insn): Don't handle CONSTANT_P_RTX.
2588         (emit_move_insn_1): Don't generate inline warnings.
2589         (expand_vars, expand_var): Split from ...
2590         (expand_expr_1): ... here.
2591         (expand_expr_real, expand_expr_real_1):  Use new macros
2592         EXPR_LOCATION and EXPR_HAS_LOCATION.
2593         * expr.h (simplify_builtin_fputs,
2594         simplify_builtin_strcpy, simplify_builtin_strncpy,
2595         expand_var, fixup_tail_calls,
2596         update_nonlocal_goto_save_area): Declare.
2597         (lookup_static_chain, expand_inline_function,
2598         mark_seen_cases): Remove.
2599         (prepare_call_address): Change type of 2nd argument to
2600         rtx.
2601         * final.c (profile_function): Update static chain test.
2602         (final): Don't look at RTX_INTEGRATED_P.
2603         * flags.h (flag_mudflap, flag_mudflap_threads,
2604         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
2605         flag_tree_dce, flag_tree_combine_temps,
2606         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
2607         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
2608         flag_tree_points_to): Declare.
2609         (enum pta_type): Declare.
2610         * flow.c (lang_missing_noreturn_ok_p): Remove.
2611         (check_function_return_warnings): Remove.
2612         (update_life_info): Update comments.
2613         (free_basic_block_vars): Don't call VARRAY_FREE for
2614         basic_block_info.
2615         (regno_uninitialized): Remove.
2616         * fold-const.c (int_const_binop): Make extern.
2617         (non_lvalue): Rely on build to set TREE_CONSTANT.
2618         (operand_equal_p): Replace only_const argument with
2619         flags.  Allow pure functions if OEP_PURE_SAME.
2620         (fold): Use OEP_ONLY_CONST.
2621         (invert_truthvalue) <NOP_EXPR> Break if argument is of
2622         boolean type.
2623         (fold_relational_hi_lo,
2624         nondestructive_fold_binary_to_constant,
2625         nondestructive_fold_unary_to_constant,
2626         fold_read_from_constant_string): New.
2627         * function.c (struct function): Remove calls_constant_p.
2628         (current_function_calls_constant_p): Remove.
2629         (inline_function_decl): Remove.
2630         (put_var_into_stack): Don't use it.
2631         (fix_lexical_addr): Likewise.
2632         (inline_function_decl): Remove extern declaration.
2633         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
2634         (trampolines_created): Move to varasm.c.
2635         (free_after_compilation): Update for removed fields.
2636         (allocate_struct_function): Likewise.
2637         (delete_handlers, lookup_static_chain): Remove.
2638         (fix_lexical_addr): Don't consider non-local variable refs.
2639         (trampoline_address): Remove.
2640         (round_trampoline_addr): Move to builtins.c.
2641         (adjust_trampoline_addr): Remove.
2642         (expand_function_start): Update for changes to static chain
2643         and nonlocal goto handling.
2644         (initial_trampoline): Move to varasm.c.
2645         (expand_function_end): Don't build trampolines or kill
2646         unreferenced nonlocal goto labels.
2647         (free_after_compilation): Don't set it.
2648         (expand_function_end): Likewise.
2649         (setjmp_vars_warning): Rename from
2650         uninitialized_vars_warning, remove uninitialized vars warning.
2651         (uninitialized_vars_warning): Remove old comment
2652         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2653         and do not call the langhook.
2654         (expand_function_start, expand_function_end): Don't do
2655         function instrumentation here.
2656         (clear_block_marks): Rename from reorder_blocks_0, export.
2657         (blocks_nreverse): Export.
2658         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2659         of rtl.
2660         (reset_block_changes, record_block_change, finalize_block_changes,
2661         check_block_change, free_block_changes): New functions.
2662         (assign_parms): Setting of current_function_stdarg
2663         moved ...
2664         (allocate_struct_function): ... here.
2665         * function.h (struct function): Remove x_nonlocal_labels,
2666         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2667         x_context_display, x_trampoline_list, needs_context.
2668         Add static_chain_decl, nonlocal_goto_save_area.
2669         (struct function): Remove x_clobber_return_insn.
2670         Add tail_call_emit field, last_label_uid,
2671         unexpanded_var_list, dont_emit_block_notes,
2672         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2673         (clear_block_marks): Declare.
2674         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2675         (mfwrap_spec, mflib_spec): Declare.
2676         (cpp_unique_options, cc1_options): Ditto.
2677         (default_compilers): Add .F and .f90.
2678         (static_specs): Add mfwrap and mflib.
2679         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2680         CONSTANT_RTX_P.
2681         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2682         Update to match insns field in struct edge_def.
2683         * gdbinit.in (pgs, pge): Define.
2684         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2685         instead of the integrated flag.
2686         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2687         * gengtype-yacc.y (bitfieldlen): Add empty action.
2688         (struct_fields): Accept unnamed bitfields.
2689         (bitfieldlen): Split from ...
2690         (bitfieldopt): ... here.
2691         * gengtype.c (ifiles): Add tree-alias-type.h and
2692         tree-flow.h.
2693         * genrecog.c (validate_pattern): Do not handle
2694         CONSTANT_P_RTX.
2695         * gimple-low.c: New file.
2696         * gimplify.c: New file.
2697         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2698         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2699         * ifcvt.c (dead_or_predicable): Initialize local variable
2700         'earliest'.
2701         * input.h (expr_wfl_stack): Remove.
2702         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2703         (setup_initial_hard_reg_value_integration): Likewise.
2704         (initialize_for_inline): Likewise.
2705         (note_modified_parmregs): Likewise.
2706         (integrate_parm_decls): Likewise.
2707         (process_reg_param): Likewise.
2708         (save_parm_insns): Likewise.
2709         (copy_insn_list): Likewise.
2710         (copy_insn_notes): Likewise.
2711         (compare_blocks): Likewise.
2712         (find_block): Likewise.
2713         (inlining): Likewise.
2714         (function_cannot_inline_p): Likewise.
2715         (parmdecl_map): Likewise.
2716         (in_nonparam_insns): Likewise.
2717         (save_for_inline): Likewise.
2718         (FIXED_BASE_PLUS): Likewise.
2719         (expand_inline_function): Likewise.
2720         (copy_rtx_and_substitute): Don't look at map->integrating,
2721         map->inline_target, and inlining, since we are never copying
2722         for integrating.
2723         Don't abort on RTX_INTEGRATED_P.
2724         (old_fun): Remove.
2725         (output_inline_function): Remove.
2726         * integrate.h (struct inline_map): Remove fields integrating,
2727         block_map, leaf_reg_map, inline_target, and local_return_label.
2728         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2729         copy_loop_headers, never_reached_warning): Removed.
2730         (any_uncondjump_p): Reject nonlocal goto.
2731         * langhooks-def.h (lhd_types_compatible_p,
2732         lhd_expand_decl, lhd_gimplify_expr): Declare.
2733         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2734         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2735         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2736         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2737         LANG_HOOKS_GIMPLIFY_EXPR,
2738         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2739         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2740         LANG_HOOKS_GIMPLIFY_EXPR,
2741         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2742         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2743         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2744         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2745         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2746         LANG_HOOKS_DECL_UNINIT,
2747         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2748         * langhooks.c: Include tree-simple.h.
2749         (lhd_expand_decl): New.
2750         (lhd_types_compatible_p): New.
2751         (lhd_decl_uninit): Remove.
2752         (lhd_gimplify_expr): New.
2753         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2754         Remove.
2755         (struct lang_hooks_for_functions): Add field
2756         missing_noreturn_ok_p.
2757         (struct lang_hooks): Add field expand_decl,
2758         types_compatible_p, gimplify_expr and
2759         gimple_before_inlining.
2760         Remove fields decl_uninit and rtl_expand
2761         * opts.c (decode_options): Set flag_tree_ccp,
2762         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2763         flag_tree_pre, flag_tree_ter,
2764         flag_tree_live_range_split, flag_tree_sra,
2765         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2766         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2767         OPT_fmudflapth, OPT_fmudflapir,
2768         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2769         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2770         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2771         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2772         OPT_ftree_points_to_ and OPT_ftree_pre.
2773         * output.h (regno_uninitialized, find_basic_blocks,
2774         cleanup_cfg, delete_unreachable_blocks,
2775         check_function_return_warnings): Remove.
2776         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2777         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2778         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2779         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2780         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2781         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2782         Define.
2783         * passes.c (rest_of_decl_compilation):
2784         (rest_of_handle_sibling_calls): Remove.
2785         (rest_of_handle_inlining): Remove.
2786         (rest_of_handle_gcse): Do not run
2787         purge_builtin_constant_p.
2788         (rest_of_compilation): Update.
2789         Do not call copy_loop_headers.
2790         Do rtl-based profiling only when
2791         !flag_tree_based_profiling.  Register rtl-based profiling
2792         hooks.
2793         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2794         (predicted_by_p): Rename to ...
2795         (rtl_predicted_by_p): .. this one; make global
2796         (tree_predicted_by_p): New.
2797         (dump_prediction): Add FILE argument.
2798         (predict_edge): Rename to ...
2799         (rtl_predict_edge): .. this one.
2800         (tree_predict_edge): New.
2801         (combine_predictions_for_insn): Update calls of predict_edge.
2802         (predict_loops): Break out from ...
2803         (estimate_probability): ... here; update comments; move updating
2804         of unknown probabilities from ...
2805         (estimate_bb_frequencies): ... here.
2806         (combine_predictions_for_bb): New.
2807         (tree_predict_by_opcode): New.
2808         (tree_estimate_probability): New.
2809         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2810         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2811         * predict.h: Add include guard.
2812         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2813         * pretty-print.c (pp_write_text_to_stream): Make extern.
2814         * pretty-print.h (pp_write_text_to_stream): Declare.
2815         * print-rtl.c (print_rtx): Don't print the integrated flag.
2816         Print the return_val flag.
2817         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2818         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2819         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2820         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2821         * profile.c: Include cfghooks.h, tree-flow.h.
2822         (profile_hooks): New.
2823         (profile_dump_file): New.
2824         (instrument_edges): Use hooks instead of RTL-specific code.
2825         (instrument_values): Ditto.
2826         (get_exec_counts): Ditto.
2827         (compute_branch_probabilities): Ditto.
2828         (compute_value_histograms): Ditto.
2829         (branch_prob): Ditto.
2830         (find_spanning_tree): Ditto.
2831         (end_branch_prob): Ditto.
2832         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2833         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2834         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2835         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2836         (tree_register_profile_hooks): New.
2837         (rtl_register_profile_hooks): New.
2838         * ra-rewrite.c (rewrite_program): Clear variable info.
2839         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2840         * regs.h: Add include guards.
2841         * reload.c (decompose): Clear val using memset.
2842         * rtl.def (CONSTANT_P_RTX): Remove.
2843         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2844         (copy_loop_headers): Remove.
2845         (struct rtx_def): Replace the integrated flag with the
2846         return_val flag.
2847         (maybe_set_first_label_num): Declare.
2848         (init_branch_prob): Move declaration to value-prof.h.
2849         (end_branch_prob): Ditto.
2850         (branch_prob): Ditto.
2851         (never_reached_warning): Don't declare it.
2852         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2853         (hoist_insn_to_edge): Update to match field insns in
2854         struct edge_def.
2855         * sbitmap.c (sbitmap_realloc): New.
2856         * sbitmap.h (sbitmap_realloc): Declare.
2857         * sibcall.c: Remove file.
2858         * simplify-rtx.c (simplify_rtx): Do not handle
2859         CONSTANT_P_RTX.
2860         * stmt.c (parse_output_constraint): Don't warn for read-write
2861         memory operand.
2862         (tail_recursion_args): Use types_compatible_p langhook.
2863         (force_label_rtx): Don't look at inline_function_decl.
2864         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2865         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2866         (declare_nonlocal_label): Remove.
2867         (expand_goto): Don't handle nonlocal gotos.
2868         (expand_nl_handler_label): Remove.
2869         (expand_nl_goto_receivers): Remove.
2870         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2871         update_nonlocal_goto_save_area.
2872         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2873         (warn_if_unused_value): Likewise.
2874         (expand_start_loop, expand_loop_continue_here,
2875         expand_end_loop): Don't create loop notes.
2876         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2877         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2878         (expand_end_case_type): Don't do warn_switch handling.
2879         (pushcase, pushcase_range) Update add_case_node calls.
2880         (add_case_node): Add dont_expand_label argument.
2881         (same_case_target_p): Don't search rtl.
2882         (expand_start_bindings_and_block, expand_end_bindings):
2883         Don't emit block notes when dont_emit_block_notes.
2884         (using_eh_for_cleanups_p): Export.
2885         (expand_return): Allow any typed rhs.
2886         (expand_stack_alloc): New.
2887         (expand_stack_save, expand_stack_restore): New.
2888         (containing_blocks_have_cleanups_or_stack_level): New
2889         function.
2890         (asm_op_is_mem_input): New fn.
2891         (expand_asm_expr): New fn.
2892         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2893         nodes.
2894         * stor-layout.c (layout_type): Just return if type is
2895         error_mark_node.
2896         (update_alignment_for_field): Export.
2897         (variable_size): We don't care about global_bindings_p if
2898         the frontend doesn't want a list of the expressions.
2899         * system.h: Poison INTEGRATE_THRESHOLD.
2900         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2901         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2902         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2903         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2904         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2905         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2906         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2907         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2908         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2909         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2910         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2911         TV_CONTROL_DEPENDENCES): Define.
2912         * toplev.c: Include tree-alias-common.h
2913         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2914         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2915         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2916         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2917         flag_tree_combine_temps, flag_tree_ter,
2918         flag_tree_live_range_split, flag_tree_dom,
2919         flag_tree_copyrename, flag_tree_dse): Declare.
2920         (f_options): Add tree-based-profiling, tree-gvn,
2921         tree-pre, tree-ccp, tree-dce,
2922         tree-dominator-opts, tree-copyrename, tree-dse,
2923         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2924         (wrapup_global_declarations): Don't output nested inlined functions.
2925         (general_init): Call init_tree_optimization_passes.
2926         (process_options): Sorry for -ftree-based-profiling plus
2927         -ftest-coverage or -fprofile-values.
2928         * toplev.h (init_tree_optimization_passes,
2929         flag_tree_based_profiling): Declare.
2930         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2931         * tree-alias-ander.c: New file.
2932         * tree-alias-ander.h: New file.
2933         * tree-alias-common.c: New file.
2934         * tree-alias-common.h: New file.
2935         * tree-alias-type.c: New file.
2936         * tree-alias-type.h: New file.
2937         * tree-browser.c: New file.
2938         * tree-browser.def: New file.
2939         * tree-cfg.c: New file.
2940         * tree-complex.c: New file.
2941         * tree-dfa.c: New file.
2942         * tree-dump.c (dump_enable_all): New.
2943         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2944         (dump_node): Remove const from field suffix and swtch.
2945         (dump_files): Add null entry, .generic, .nested, .vcg,
2946         .xml and a match-all entry.
2947         (extra_dump_files, extra_dump_files_in_use,
2948         extra_dump_files_alloced): Declare
2949         (dump_option_value_info): Add raw, details, stats,
2950         blocks, vops, lineno, uid and all.
2951         (dump_register): New.
2952         (get_dump_file_info): New.
2953         (dump_begin): Call it.
2954         Do nothing for TDI_none.
2955         (dump_begin): Include phase number in dump filename.
2956         (dump_enable_all): New.
2957         (dump_switch_p_1): Split out from dump_switch_p.
2958         (dump_switch_p): Handle extra_dump_files.
2959         Start our scan at TDI_none + 1.
2960         If -fdump-tree-all was given, call dump_enable_all.
2961         * tree-dump.h: Include splay-tree.h.
2962         (dump_function, dump_function_to_file, dump_register):
2963         Declare.
2964         * tree-eh.c: New file.
2965         * tree-flow-inline.h: New file.
2966         * tree-flow.h: New file.
2967         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2968         * tree-inline.h (walk_tree,
2969         walk_tree_without_duplicates): Move to tree.h.
2970         (estimate_num_insns): Declare.
2971         * tree-into-ssa.c: New file.
2972         * tree-iterator.c: New file.
2973         * tree-iterator.h: New file.
2974         * tree-mudflap.c: New file.
2975         * tree-mudflap.h: New file.
2976         * tree-nested.c: New file.
2977         * tree-nomudflap.c: New file.
2978         * tree-nrv.c: New file.
2979         * tree-optimize.c (dump_flags, vars_to_rename,
2980         in_gimple_form, all_passes, pass_gimple,
2981         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2982         (execute_gimple, execute_rebuild_bind,
2983         gate_all_optimizations, execute_del_cfg,
2984         register_one_dump_file, register_dump_files, dup_pass_1,
2985         init_tree_optimization_passes, execute_todo,
2986         execute_one_pass, execute_pass_list): New.
2987         (clear_decl_rtl): Remove.
2988         (tree_rest_of_compilation): Update to use tree
2989         optimizers.
2990         * tree-outof-ssa.c: New file.
2991         * tree-pass.h: New file.
2992         * tree-phinodes.c: New file.
2993         * tree-pretty-print.c: New file.
2994         * tree-profile.c: New file.
2995         * tree-simple.c: New file.
2996         * tree-simple.h: New file.
2997         * tree-sra.c: New file.
2998         * tree-ssa-alias.c: New file.
2999         * tree-ssa-ccp.c: New file.
3000         * tree-ssa-copy.c: New file.
3001         * tree-ssa-copyrename.c: New file.
3002         * tree-ssa-dce.c: New file.
3003         * tree-ssa-dom.c: New file.
3004         * tree-ssa-dse.c: New file.
3005         * tree-ssa-forwprop.c: New file.
3006         * tree-ssa-live.c: New file.
3007         * tree-ssa-live.h: New file.
3008         * tree-ssa-loop.c: New file.
3009         * tree-ssa-operands.c: New file.
3010         * tree-ssa-operands.h: New file.
3011         * tree-ssa-phiopt.c: New file.
3012         * tree-ssa-pre.c: New file.
3013         * tree-ssa.c: New file.
3014         * tree-ssanames.c: New file.
3015         * tree-tailcall.c: New file.
3016         * tree.c: Include tree-iterator.h, basic-block.h and
3017         tree-flow.h.
3018         (tree_node_kind): Add phi_nodes and ssa names.
3019         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3020         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3021         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3022         <'c'> Set TREE_INVARIANT.
3023         (copy_node_stat): Abort if trying to copy a
3024         STATEMENT_LIST.
3025         Clear TREE_VISITED.
3026         Clear annotation field.
3027         (build_constructor): Copy TREE_INVARIANT from vals.
3028         Don't clear TREE_CONSTANT.
3029         (expr_first, expr_last, expr_length): Remove.
3030         (staticp): Pass unknown component references to the language.
3031         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3032         (skip_simple_arithmetic): Likewise.
3033         (stabilize_reference_1): Likewise.
3034         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3035         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3036         STATEMENT_LIST.
3037         (lhd_unsave_expr_now): Remove.
3038         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3039         (recompute_tree_invarant_for_addr_expr): New.
3040         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3041         Call recompute_tree_invarant_for_addr_expr.
3042         Set TREE_INVARIANT accordingly.
3043         (build2_stat): Don't handle CALL_EXPR.
3044         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3045         (build_expr_wfl): Remove.
3046         (annotate_with_file_line, annotate_with_locus): New.
3047         (simple_cst_equal): Call simple_cst_list_equal to compare
3048         CONSTRUCTOR_ELTS pointers.
3049         (iterative_hash_expr): Don't hash types associated
3050         with conversions.  Instead hash on the signedness of the
3051         toplevel object and the operand of the conversion.
3052         (dump_tree_statistics): Call ssanames_print_statistics
3053         and phinodes_print_statistics.
3054         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3055         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3056         needs_to_live_in_memory): New.
3057         (initializer_zerop): Handle VECTOR_CST.  Don't check
3058         AGGREGATE_TYPE_P for CONSTRUCTOR.
3059         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3060         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3061         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3062         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3063         (CALL_EXPR): Add another operand.
3064         (EXPR_WITH_FILE_LOCATION): Remove.
3065         (SWITCH_EXPR): Add another operand.
3066         * tree.h: Update various comments.
3067         (union tree_ann_d): Forward declare.
3068         (struct tree_common): Add fields nowarning_flag,
3069         invariant_flag and visited.
3070         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3071         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3072         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3073         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3074         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3075         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3076         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3077         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3078         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3079         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3080         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3081         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3082         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3083         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3084         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3085         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3086         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3087         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3088         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3089         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3090         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3091         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3092         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3093         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3094         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3095         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3096         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3097         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3098         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3099         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3100         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3101         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3102         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3103         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3104         TDF_UID,): Define.
3105         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3106         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3107         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
3108         EXPR_WFL_SET_LINECOL): Remove.
3109         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
3110         make_phi_node, init_phinodes, fini_phinodes,
3111         release_phi_node, phinodes_print_statistics,
3112         init_ssanames, fini_ssanames, make_ssa_name,
3113         release_ssa_name, ssanames_print_statistics,
3114         annotate_with_file_line, build_empty_stmt,
3115         annotate_with_locus, expr_only, categorize_ctor_elements,
3116         count_type_elements, add_var_to_bind_expr, is_essa_node,
3117         expand_stack_alloc, expand_stack_save,
3118         expand_stack_restore, add_case_node, operand_equal_p,
3119         nondestructive_fold_unary_to_constant,
3120         nondestructive_fold_binary_to_constant,
3121         fold_read_from_constant_string, int_const_binop,
3122         strip_float_extensions, simplify_builtin, c_strlen,
3123         recompute_tree_invarant_for_addr_expr,
3124         needs_to_live_in_memory, make_vector,
3125         setjmp_vars_warning, update_alignment_for_field,
3126         expand_asm_expr, asm_op_is_mem_input,
3127         containing_blocks_have_cleanups_or_stack_level,
3128         create_artificial_label, gimplify_function_tree,
3129         get_name, unshare_expr, walk_tree,
3130         walk_tree_without_duplicates, in_gimple_form): Declare.
3131         (struct tree_exp): Add fields locus and block.
3132         (struct tree_ssa_name, struct edge_def, struct
3133         tree_phi_node, struct tree_eref_common, struct
3134         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
3135         union alias_var_def, struct tree_statement_list_node,
3136         struct tree_statement_list, enum operand_equal_flag): Declare.
3137         (enum tree_node_structure_enum): Add TS_SSA_NAME,
3138         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
3139         TS_STATEMENT_LIST.
3140         (union tree_node): Add fields ssa_name, phi, eref, ephi,
3141         euse and stmt_list.
3142         (function_cannot_inline_p, uninitialized_vars_warning,
3143         save_for_inline, output_inline_function, all_cases_count,
3144         check_for_full_enumeration_handling,
3145         declare_nonlocal_label): Remove.
3146         (enum tree_dump_index): Add TDI_none, TDI_tu,
3147         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
3148         * unroll.c (unroll_loop): Don't clear map->inline_target.
3149         * unwind-sjlj.c (uw_install_context): Make a proper static inline
3150         function.
3151         * value-prof.c (value_prof_hooks): New.
3152         (find_values_to_profile): Rename to rtl_find_values_to_profile.
3153         Move rtl-specific bits in from branch_prob.
3154         (value_profile_transformations): Rename to
3155         rtl_value_profile_transformations.
3156         (struct value_prof_hooks): New.
3157         (rtl_value_prof_hooks): New.
3158         (rtl_register_value_prof_hooks): New.
3159         (tree_find_values_to_profile): New stub.
3160         (tree_value_profile_transformations): New stub.
3161         (tree_value_prof_hooks): New stub.
3162         (tree_register_value_prof_hooks): New stub.
3163         (find_values_to_profile): New.
3164         (value_profile_transformations): New.
3165         * value-prof.h: Add multiple inclusion guard.
3166         (struct histogram_value): Change rtx fields to void *.
3167         (rtl_register_value_prof_hooks): New declaration.
3168         (tree_register_value_prof_hooks): New declaration.
3169         (find_values_to_profile): New declaration.
3170         (free_profiled_values): New declaration.
3171         (value_profile_transformations): New declaration.
3172         (struct profile_hooks): New declaration.
3173         (init_branch_prob): Declaration moved from rtl.h.
3174         (branch_prob): Declaration moved from rtl.h.
3175         (end_branch_prob): Declaration mooved from rtl.h.
3176         (tree_register_profile_hooks): New declaration.
3177         (rtl_register_profile_hooks): New declaration.
3178         (tree_profile_hooks): New declaration.
3179         (rtl_profile_hooks): New declaration.
3180         * varasm.c: Include tree-mudflap.h.
3181         (TRAMPOLINE_ALIGNMENT): Remove.
3182         (make_decl_rtl): Call mudflap_enqueue_decl.
3183         (assemble_static_space):
3184         (assemble_trampoline_template): Set and return
3185         TRAMPOLINE_ALIGNMENT.
3186         * varray.c (element): Add GENERIC_PTR_NOGC entry.
3187         Add entry for 'tree *'.
3188         Add entry for struct edge_def *.
3189         (varray_copy): New.
3190         * varray.h (enum varray_data_enum): Add
3191         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
3192         VARRAY_DATA_TREE_PTR.
3193         (union varray_data_tag): Corresponding changes.
3194         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
3195         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
3196         VARRAY_EDGE, VARRAY_TREE_PTR,
3197         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
3198         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
3199         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
3200
3201         * config/*/*: Various updates for changed macros, tree
3202         codes, etc.  Check ChangeLog.tree-ssa.
3203
3204         * doc/cfg.texi: New file.
3205         * doc/tree-ssa.texi: New file.
3206         * doc/c-tree.texi: Document new codes.
3207         * doc/gccint.texi: Include new files.
3208         * doc/install.texi: Document new features.
3209         * doc/invoke.texi: Document new switches.
3210         * doc/passes.texi: Document new passes.
3211         * doc/rtl.texi: Update changed RTL codes.
3212         * doc/sourcebuild.texi: Update build instructions.
3213         * doc/standards.texi: Document Fortran changes.
3214         * doc/tm.texi: Update.
3215
3216 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
3217
3218         Replace several arrays with a struct of arrays.
3219         * combine.c (struct reg_stat): New.
3220         (init_reg_last_arrays): Renamed to...
3221         (init_reg_last): ...this.  Callers adjusted.
3222         (reg_stat): New.
3223         (combine_instructions): Allocate it and use it.
3224         (reg_last_death, reg_last_set, reg_last_set_value,
3225         reg_last_set_label, reg_last_set_table_tick,
3226         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
3227         reg_last_set_mode, reg_last_set_nonzero_bits,
3228         reg_last_set_sign_bit_copies): Replace throughout
3229         with items of reg_stat.
3230
3231 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3232
3233         PR optimization/15100
3234         * combine.c (distribute_notes): Don't create a dangling
3235         REG_LIBCALL/REG_RETVAL note.
3236
3237 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
3238
3239         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
3240
3241         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
3242         negv2si2.
3243
3244 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
3245
3246         * doc/md.texi (Standard Names): Fix typo in vec_init description.
3247
3248 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
3249
3250         * doc/gty.texi (GTY Options): Clarify example.
3251
3252 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
3253
3254         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
3255         Add const qualifier to altivec vector type if one is needed.
3256
3257 2004-05-11  Paul Brook  <paul@codesourcery.com>
3258
3259         * flags.h (flag_short_enums): Update comment.
3260         * opts.c (decode_options): Set flag_short_enums to 2.
3261         * toplev.c (flag_short_enums): Update comment.
3262         (process_options): Call default_short_enums target hook.
3263
3264 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
3265
3266         PR target/14063
3267         * config/rs6000/altivec.md (altivec_dssall):
3268         Change to unspec_volatile.
3269         (altivec_dss): Likewise.
3270
3271 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
3272
3273         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
3274         vnor.
3275         ("one_cmplv8hi2"): Same.
3276         ("one_cmplv4si2"): Same.
3277
3278 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3279
3280         PR target/15130
3281         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
3282         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
3283         into account.  Compute the correct number of general registers
3284         for the return value.  Generate a special push/pop sequence when
3285         failing to get a temporary register for non SHmedia epilogue.
3286         (sh_expand_epilogue): Add an argument to show whether it's for
3287         sibcall or not.  Set the 3rd argument of output_stack_adjust to
3288         -1 if needed.
3289         (sh_need_epilogue): Call sh_expand_epilogue with 0.
3290         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
3291         with 1.
3292         (epilogue): Call sh_expand_epilogue with 0.
3293
3294 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
3295
3296         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
3297         goto a cleanup label.  After the cleanup, free the allocated memory.
3298
3299 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
3300
3301         * config/rs6000/altivec.h (vec_sld): Add overloads for
3302         argument/return types of 'vector bool int', 'vector bool short'
3303         and 'vector bool char'.
3304
3305 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
3306
3307         * c-decl.c (store_parm_decls_newstyle): Correct test for a
3308         nested function.
3309
3310 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
3311
3312         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
3313         treating missing ones as "".
3314         * config/mips/mips.md: Remove constraints from match_operands and
3315         match_scratches if they appear in define_expands (except reload*),
3316         define_peephole2s, define_splits or attribute specifications.
3317         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
3318         constraint strings.
3319
3320 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3321
3322         * config/rs6000/rs6000.c (function_arg_boundary): Always align
3323         AltiVec vectors.
3324         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
3325         vectors by refererence.  Align the same for TARGET_64BIT to a 16
3326         byte boundary.  Remove useless code.  Add function comment.
3327         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
3328         call to where it belongs.
3329         (function_arg_partial_nregs): Return true for all TARGET_32BIT
3330         -mabi=no-altivec AltiVec vectors.  Fix debug output.
3331         (rs6000_va_arg): Adjust for AltiVec change.
3332
3333 2004-05-10  Paul Brook  <paul@codesourcery.com>
3334
3335         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3336         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3337         (TARGET_DOUBLEWORD_ALIGN): Use it.
3338         (WCHAR_TYPE): Define.
3339         (WCHAR_SIZE_TYPE): Define.
3340         (SIZE_TYPE): Define.
3341
3342 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3343
3344         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
3345         when size is 8 bytes.
3346         (function_arg_advance): Account for stack space used by AltiVec
3347         args when -mabi=altivec.  Simplify alignment calculations.  For
3348         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
3349         (function_arg): Similarly.
3350         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
3351         not AltiVec ABI.
3352         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
3353         Correct alignment, and align before testing reg count.  Remove
3354         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
3355         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
3356         TARGET_FPRS here..
3357         (rs6000_function_value): .. not here before call.
3358
3359 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3360
3361         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
3362
3363 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
3364
3365         PR 15007
3366         * c-decl.c (current_file_decl): Rename to all_translation_units,
3367         adjust comment.
3368         (pop_scope): If popping file_scope, construct a
3369         TRANSLATION_UNIT_DECL and make it the context of all the
3370         symbols in the scope.
3371         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
3372         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
3373         anything to current_file_decl.
3374         (pushdecl_top_level): Likewise.
3375         (store_parm_decls_newstyle): Adjust check for nested function.
3376         (c_write_global_declarations): Update for renamed variable.
3377
3378 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3379
3380         * config/rs6000/rs6000-protos.h
3381         (rs6000_conditional_register_usage): Protoize.
3382
3383         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
3384
3385         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
3386         function.
3387
3388 2004-05-08  Roger Sayle  <roger@eyesopen.com>
3389
3390         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
3391         where op is a comparison operator and C1 and C2 are integer constants
3392         into a range check.
3393         (fold): Call fold_div_compare.
3394
3395 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3396
3397         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
3398         problems with earlier versions of the GNU compiler.
3399
3400 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
3401
3402         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
3403         Declare.
3404
3405         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
3406         (rs6000_hard_regno_mode_ok): New.
3407         (rs6000_init_hard_regno_mode_ok): New.
3408         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
3409
3410         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
3411         result.
3412
3413 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
3414
3415         * config/rs6000/altivec.h (vector, pixel, bool): Do not
3416         define as macros #ifdef __APPLE_ALTIVEC__.
3417
3418 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
3419
3420         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
3421         Generate appropriate parallels for vector arguments
3422         passed to vararg functions. (function_arg): make the call
3423         to rs6000_mixed_function_arg for vector args as needed.
3424
3425 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3426
3427         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
3428         EABI_FLOAT_VARARGS_P.
3429
3430 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3431
3432         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
3433         * config/mips/mips.c (override_options): Disable branch likely
3434         instructions if TUNE_MIPS5500.
3435
3436 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3437
3438         * config/mips/mips.c (override_options): Allow the hi and lo registers
3439         to store any integral mode, not just MODE_INTs.
3440
3441 2004-05-07  Paul Brook  <paul@codesourcery.com>
3442
3443         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3444         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3445         (TARGET_DOUBLEWORD_ALIGN): Use it.
3446         (WCHAR_TYPE): Define.
3447         (WCHAR_SIZE_TYPE): Define.
3448         (SIZE_TYPE): Define.
3449
3450 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3451
3452         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
3453         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
3454
3455 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
3456
3457         * loop-doloop.c (doloop_valid_p): Make sure that body
3458         gets freed.
3459
3460 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
3461
3462         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
3463         declaration.
3464         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
3465         (sparc_skip_caller_unimp): New global variable.
3466         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
3467         Use it instead of SKIP_CALLERS_UNIMP_P.
3468         * config/sparc/sparc.md (call expander): Add sanity check.
3469         (call_address_struct_value_sp32): Re-sync with expander.
3470         (call_symbolic_struct_value_sp32): Likewise.
3471         (return peepholes): Use 'sparc_skip_caller_unimp' instead
3472         of custom predicate.
3473
3474 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3475
3476         PR c++/14962
3477         * c-pragma.c (handle_pragma_redefine_extname): Only change
3478         the assembler name of FUNCTION_DECLs and VAR_DECLs.
3479
3480 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3481
3482         * optabs.h (enum optab_index): Add new OTI_log1p.
3483         (log1p_optab): Define corresponding macro.
3484         * optabs.c (init_optabs): Initialize log1p_optab.
3485         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
3486         patterns.
3487         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
3488         using log1p_optab.
3489         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
3490         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3491
3492         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
3493
3494         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
3495         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
3496         Prototype here.
3497         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
3498         x87's fyl2xp1 instruction.
3499         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
3500         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
3501         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
3502         log1p  and log1pl built-ins as inline x87 intrinsics.
3503
3504 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
3505
3506         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
3507         * config/arm/freebsd.h: Likewise.
3508         * config/ia64/freebsd.h: Likewise.
3509         * config/sparc/freebsd.h: Likewise.
3510
3511 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
3512
3513         PR optimization/15296
3514         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
3515         getting last consecutive label at a branch.
3516         (relax_delay_slots): Similar, near top of loop.
3517
3518 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3519
3520         PR target/15202
3521         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
3522         register to general register.
3523
3524 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
3525
3526         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
3527         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
3528         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
3529         (STACK_BOUNDARY): Delete.
3530
3531 2004-05-06  Stuart Hastings  <stuart@apple.com>
3532
3533         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
3534         mistakenly clobbered by 1.423.
3535
3536 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3537
3538         * doc/invoke.texi: Document -mvr4130-align.
3539         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
3540         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
3541         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
3542         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
3543         * config/mips/mips.md: Include sched-int.h.
3544         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
3545         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
3546         (override_options): Enable -mvr4130-align at -O3 and above.
3547         (mips_sim_insn): New variable.
3548         (mips_sim): New structure.
3549         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
3550         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
3551         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
3552         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
3553         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
3554         (mips_reorg): Call vr4130_align_insns.
3555         (vr4130_last_insn): New variable.
3556         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
3557         (vr4130_swap_insns_p, vr4130_reorder): New functions.
3558         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
3559         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
3560         (mips_use_dfa_pipeline_interface): Return true for the same.
3561         * config/mips/4130.md: New file.
3562         * config/mips/mips.md: Include it.  Add a peephole2 to convert
3563         "mult;mflo" into "mtlo;macc".
3564         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
3565         target of maccs.
3566         (*msac_using_macc): New pattern.
3567
3568 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3569
3570         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
3571         (ir_vr55_hilo): Split into...
3572         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
3573         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
3574         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
3575         Add various multiplication bypasses.
3576         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
3577         multiplication.
3578
3579 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
3580
3581         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
3582         attribute to "XF".
3583
3584 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
3585
3586         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
3587         (fmod_optab, drem_optab): Define corresponding macros.
3588         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
3589         * genopinit.c (optabs): Implement fmod_optab and drem_optab
3590         using fmod?f3 and drem?f3 patterns.
3591         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
3592         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
3593         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
3594         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
3595         flag_unsafe_math_optimizations is set.
3596
3597         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
3598         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
3599
3600         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
3601         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
3602         Prototype here.
3603         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
3604         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
3605         fprem and fprem1 instructions.
3606         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
3607         Rename insn definition to x86_fnstsw_1.
3608         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
3609         x87 instructions.
3610         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
3611         and fmodl built-ins as inline x87 intrinsics.
3612         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
3613         and dreml built-ins as inline x87 intrinsics.
3614
3615 2004-05-05  Roger Sayle  <roger@eyesopen.com>
3616
3617         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
3618
3619 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
3620
3621         PR driver/9822
3622         * doc/invoke.texi (Spec Files): Remove documentation of %c.
3623
3624 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
3625
3626         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
3627         representation.
3628
3629 2004-05-06  Paul Brook  <paul@codesourcery.com>
3630
3631         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
3632         (arm_coproc_mem_operand): ... To this.
3633         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
3634         (arm_legitimate_index_p): Ditto.
3635         (vfp_mem_operand): Rename ...
3636         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3637         (vfp_secondary_reload_class): Use it.
3638         (output_move_double): Use doubleword load/store instructions.
3639         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3640         * config/arm/arm.h (TARGET_LDRD): Define.
3641         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3642         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3643         New splitter for invalid doubleword loads.
3644         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3645         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3646         * doc/md.texi: Document Uy constraint.
3647
3648 2004-05-05  Jan Hubicka  <jh@suse.cz>
3649
3650         PR opt/14980
3651         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3652         inline clones.
3653
3654 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3655
3656         PR target/15290
3657         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3658         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3659
3660 2004-05-05  Mike Stump  <mrs@apple.com>
3661
3662         * config/darwin-c.c (add_framework): Copy the directory name as it
3663         can be freed later.  Also, ensure we always allocate enough room
3664         for the cached framework information.
3665         (find_subframework_header): Keep track of the directory where the
3666         subframework header was found.
3667         (framework_construct_pathname): Speed up by not trying to re-add a
3668         framework.
3669         * cppfiles.c (search_path_exhausted): Arrange for the missing
3670         header callback to be able to set the directory where the header
3671         was found.
3672         (cpp_get_dir): Add.
3673         * cpplib.h (missing_header_cb): Add a parameter.
3674         (cpp_get_dir): Add.
3675
3676 2004-05-03  Mike Stump  <mrs@apple.com>
3677
3678         * doc/invoke.texi (Directory Options): Document -iquote.
3679         * doc/cpp.texi: Likewise.
3680         * doc/cppopts.texi: Likewise.
3681         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3682         (c_common_handle_option): Likewise.
3683         * c.opt (iquote): Add.
3684         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3685         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3686
3687         * c-opts.c (case OPT_I): Deprecate -I- support.
3688         * doc/invoke.texi: Likewise.
3689         * doc/cpp.texi: Likewise.
3690         * doc/cppopts.texi: Likewise.
3691
3692 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3693
3694         * basic-block.h (free_basic_block_vars): Update prototype.
3695         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3696         argument.
3697         (life_analysis): Update call.
3698         * ifcvt.c (if_convert): Likewise.
3699         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3700         * passes.c (rest_of_handle_final): Likewise.
3701         (rest_of_compilation): Likewise.
3702         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3703
3704         * emit-rtl.c (next_real_insn): Use INSN_P.
3705         (prev_real_insn): Likewise.
3706
3707 2004-05-05  Eric Christopher  <echristo@redhat.com>
3708
3709         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3710         representation.
3711
3712 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3713
3714         * config/rs6000/rs6000.c (build_opaque_vector_type):
3715         New function.
3716         (rs6000_init_builtins): Use it.
3717
3718 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3719
3720         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3721         (func_table): Change type from char ** to vms_func_ref.
3722         (write_rtnbeg):  Update to reflect func_table change.  Use
3723         fde->funcdef_number instead of rtnnum in output.
3724         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3725
3726 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3727             Richard Henderson  <rth@redhat.com>
3728
3729         PR target/14899
3730
3731         * c-common.c (vector_types_convertible_p): New function.
3732         * c-typeck.c (comptypes): Recurse on vector types.
3733         (convert_for_assignment): Use vector_types_convertible_p.
3734         (digest_init): Use vector_types_convertible_p to check
3735         validness of constant vector initializers; otherwise treat
3736         them as scalars.
3737         * tree.c (make_or_reuse_type): New.
3738         (build_common_tree_nodes): Use it.
3739         * cp/call.c (standard_conversion): Likewise.
3740         * cp/typeck.c (comptypes): Recurse on vector types.
3741         (convert_for_assignment): Use vector_types_convertible_p.
3742
3743 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3744
3745         * config/mips/mips.c (override_options): Default to no
3746         generation of branch-likely operations when tuning for
3747         CPUs where they tend to have a negative performance impact
3748         (e.g., SB-1).
3749
3750 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3751
3752         * expr.c (store_constructor_field): Don't call store_constructor
3753         if bitsize is not a multiple of a byte.
3754
3755 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3756
3757         * reload1.c (inherit_piecemeal_p): New function.
3758         (emit_reload_insns): When reloading a group of hard registers, use
3759         inherit_piecemeal_p to decide whether the values of individual hard
3760         registers can be inherited.
3761
3762 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3763
3764         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3765         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3766         * config/t-linux (LIB2ADDEHDEP): Likewise.
3767
3768 2004-05-04  Paul Brook  <paul@codesourcery.com>
3769
3770         * config/arm/crti.asm: Push an even number of registers.
3771         * config/arm/crtn.asm: And restore them.  Load via sp.
3772
3773 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3774
3775         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3776         Collect overhead information.
3777         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3778         parameter and pass it through.
3779         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3780         MEM_STAT_DECL parameter and pass it through.
3781         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3782         MEM_STAT_DECL parameter and pass it through.
3783
3784 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3785
3786         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3787
3788         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3789
3790         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3791         rs6000_hard_regno_nregs.
3792
3793 2004-05-03  Eric Christopher  <echristo@redhat.com>
3794
3795         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3796         prologue insn instead of setting up call.
3797         (s390_emit_epilogue): Ditto.
3798         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3799         (define_constants): Add numbers for above patterns.
3800
3801 2004-05-03  Eric Christopher  <echristo@redhat.com>
3802
3803         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3804         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3805         * config/s390/s390-protos.h: Prototype.
3806
3807 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3808
3809         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3810         assignment.
3811
3812 2004-05-03  Eric Christopher  <echristo@redhat.com>
3813
3814         * config/mips/mips.md: Fix branch length attribute definition.
3815
3816 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3817
3818         * config.gcc: Remove --enable-altivec support.
3819
3820         * config/rs6000/altivec-defs.h: Remove.
3821
3822 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3823
3824         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3825         * fixinc/fixincl.x: Regenerate.
3826
3827 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3828
3829         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3830         definition.
3831         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3832         float_truncate insn.
3833         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3834         (logb?f2): Reimplement expanders with float_truncate insn.
3835
3836 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3837
3838         PR 14718
3839         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3840         force_type_die for CONST_DECL.
3841
3842 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3843             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3844
3845         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3846         tm-dwarf2.h to tm_file.
3847         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3848         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3849         (ASM_DEBUG_SPEC): Delete.
3850
3851 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3852
3853         * optabs.h (enum optab_index): Add new OTI_expm1.
3854         (expm1_optab): Define corresponding macro.
3855         * optabs.c (init_optabs): Initialize expm1_optab.
3856         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3857         patterns.
3858         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3859         using expm1_optab.
3860         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3861         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3862
3863         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3864         to implement expm1, expm1f and expm1l built-ins as inline x87
3865         intrinsics.
3866
3867 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3868
3869         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3870         * config/frv/frv.md (*return_true, *return_false): New patterns.
3871
3872 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3873
3874         * rtl.h (PHI_NODE_P): Remove.
3875
3876 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3877
3878         PR middle-end/14988
3879         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3880         when passed -2 as 'align'.
3881         (put_var_into_stack): Use 'bool' as the type for the three local
3882         predicates.  Adjust calls to put_reg_into_stack.
3883         When passed a CONCAT, instruct put_reg_into_stack to use
3884         a consecutive stack slot for the second part.
3885         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3886         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3887         parameters.  Retrieve the register mode from 'reg'.
3888         When consecutive_p is true, instruct assign_stack_local_1 to use
3889         BITS_PER_UNIT alignment.
3890         (put_addressof_into_stack): Use 'bool' as the type for the two
3891         local predicates. Adjust call to put_reg_into_stack.
3892
3893 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3894
3895         * fold-const.c (fold_convert_const, fold): Add missing
3896         FIX_ROUND_EXPR case.
3897
3898 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3899
3900         * configure.ac (FLEX, BISON): Only use tools from the build tree
3901         if build equals host.
3902         * configure: Rebuilt.
3903
3904         * config/frv/frv-protos.h (frv_expand_epilogue,
3905         frv_expand_fdpic_call): Add bool argument.
3906         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3907         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3908         (frv_expand_epilogue): Use new argument to decide whether to emit
3909         return instruction or copy the return address to LR.
3910         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3911         sibcalls.
3912         (sibcall_operand): New.
3913         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3914         PLUS nor LABEL_REF.  Add sibcall_operand.
3915         * config/frv/frv.md (call, call_value): Pass false to
3916         frv_expand_fdpic_call.
3917         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3918         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3919         sibcall_value_internal, sibcall_value_fdpicdi): New.
3920         (return_unsigned_true, return_unsigned_false): New.
3921         (epilogue): Adjust call to frv_expand_epilogue.
3922         (sibcall_epilogue): New.
3923
3924         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3925         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3926         before redefining them.
3927
3928 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3929
3930         * builtins.c (fold_fixed_mathfn): New function.
3931         (fold_builtin_lround, fold_builtin): Use it.
3932
3933 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3934
3935         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3936         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3937
3938 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3939
3940         * config/cris/cris.h: Revert my "fix comment typos" patch.
3941
3942 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3943
3944         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3945
3946 2004-05-01  Falk Hueffner  <falk@debian.org>
3947
3948         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3949         builtin_insll): Disallow 0 as first input operand.
3950
3951 2004-05-01  Falk Hueffner  <falk@debian.org>
3952
3953         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3954
3955 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3956
3957         PR middle-end/15054
3958         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3959         on a TARGET_EXPR temp.
3960         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3961         TARGET_EXPR temp slots.
3962
3963 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3964
3965         * simplify-rtx.c (simplify_ternary_operation): When
3966         converting an IF_THEN_ELSE to a relational op, return
3967         correct mode.
3968
3969 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3970
3971         * builtins.c (fold_builtin_round): Fix comment typo.
3972         (fold_builtin_lround): New function.
3973         (fold_builtin): Use it.
3974
3975 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3976
3977         PR target/11608
3978         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3979         more like the one in config/dbxelf.h.
3980
3981 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3982
3983         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3984         and adjust definition accordingly.
3985         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3986         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
3987         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
3988         VECTOR_TYPE.
3989
3990 2004-04-30  Jason Merrill  <jason@redhat.com>
3991
3992         PR c++/14587
3993         * config/i386/winnt.c (associated_type): Look for attributes on
3994         the TYPE_MAIN_VARIANT of *this.
3995         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
3996         apply the attributes to the variants.
3997
3998 2004-04-30  Paul Brook  <paul@codesourcery.com>
3999
4000         * config.gcc: Simplify arm --with-{cpu,tune} test.
4001         * config/arm/arm-cores.def: Document whitespace restrictions.
4002
4003 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4004
4005         PR other/1963
4006         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4007
4008 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4009             DJ Delorie  <dj@redhat.com>
4010
4011         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4012         (DWARF2_DEBUGGING_INFO): Define to enable.
4013         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4014         DWARF2.
4015         * configure.ac (Target-specific assembler checks)
4016         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4017         relocs.
4018         * configure: Regenerate.
4019         * config.in: Likewise.
4020
4021         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4022         (ASM_OUPUT_DWARF_OFFSET): Define.
4023
4024 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4025
4026         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4027         (s390_emit_call): New function prototype added.
4028         (s390_tls_get_offset): Function removed.
4029         * config/s390/s390.c (s390_function_ok_for_sibcall,
4030         s390_call_saved_register_used_p): New functions.
4031         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4032         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4033         (s390_emit_tls_call_insn): New function.
4034         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4035         emit_call_insn.
4036         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4037         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4038         added.
4039         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4040         register number used to hold the target address for sibcalls.
4041         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4042         New expanders.
4043         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4044         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4045         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4046         Expanders removed.
4047         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4048         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4049         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4050         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4051         new parameter.
4052
4053 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4054
4055         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4056         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4057         reg-stack.c, varasm.c, config/alpha/ev4.md,
4058         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4059         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4060         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4061         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4062         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4063         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4064         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4065         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4066         comment typos.
4067
4068 2004-04-30  Paul Brook  <paul@codesourcery.com>
4069
4070         * config.gcc: Default ep9312 to hard-float.
4071         * config/arm/arm-cores.def: Add ARCH field.
4072         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4073         (arm_arch_cirrus): New variable.
4074         (all_cores): Set and use arch.
4075         (all_architectures): Ditto.
4076         (arm_arch_name): New variable.
4077         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4078         Set and use arm_arch_cirrus.
4079         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4080         (enum processor_type): Update ARM_CORE define.
4081         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4082         (CPP_SPEC): Remove %(cpp_cpu_arch).
4083         (CPP_ARCH_DEFAULT_SPEC): Remove.
4084         (CPP_CPU_ARCH_SPEC): Remove.
4085         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4086         (FPUTYPE_DEFAULT): Don't define here.
4087
4088 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4089
4090         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4091         updates too.
4092
4093 2004-04-30  Paul Brook  <paul@codesourcery.com>
4094
4095         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4096
4097 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4098
4099         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4100         vec_sububs.
4101         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4102         duplicates.
4103
4104 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4105
4106         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4107         atan2?f3 expanders.
4108
4109 2004-04-29  Nick Clifton  <nickc@redhat.com>
4110
4111         Bug 14093
4112         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
4113         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
4114         Delete static from definition.
4115         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
4116
4117 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4118
4119         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
4120         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
4121         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
4122         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
4123
4124 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
4125
4126         * commom.opt (Wfatal-errors): Add it.
4127         * diagnostic.c (flag_fatal_errors): Define it.
4128         (diagnostic_action_after_output): Check for flag_fatal_errors.
4129         * flags.h (flag_fatal_errors): Declare it.
4130         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
4131         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
4132
4133 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
4134
4135         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
4136         blocks which have kill flag set.
4137
4138 2004-04-29  Ben Elliston  <bje@au.ibm.com>
4139
4140         * configure.ac (--with-as): Abort if user-supplied assembler
4141         cannot be executed.
4142         (--with-ld): Likewise for the linker.
4143         * configure: Regenerate.
4144
4145 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4146
4147         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
4148         isn't NULL before using it.
4149
4150 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
4151
4152         PR target/15189
4153         * config/mips/mips.md (load_df_low): Use default length.
4154         (load_df_high, store_df_high): Likewise.
4155
4156 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4157
4158         * config/mips/mips.md, config/mips/sb1.md,
4159         config/rs6000/rs6000.c: Fix comment typos.
4160
4161 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4162
4163         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
4164         Fix comment typos.
4165
4166 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
4167
4168         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
4169         (delete_if_ordinary): Use above macro.
4170         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
4171         Update copyright.
4172         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
4173
4174 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
4175
4176         * c-decl.c (get_parm_info): Use the correct tag keywords when
4177         warning about type declarations in prototypes.
4178
4179 2004-04-29  Paul Brook  <paul@codesourcery.com>
4180
4181         * config.gcc: Pull list of cores from arm-cores.def.
4182
4183 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4184
4185         * combine.c (combine_simplify_rtx): Adjust call to use
4186         simplify_relational_operation.  Do not use SELECT_CC_MODE
4187         when a comparison already has a MODE_CC mode.
4188
4189 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4190
4191         (simplify_set): simplify_relational_operation may now
4192         return another relational expression.
4193         * cse.c (fold_rtx): simplify_relational_operation now
4194         takes of computing the comparison mode.
4195         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
4196         remove dead code.
4197         (do_compare_rtx_and_jump): Likewise.
4198         * integrate.c (subst_constants): simplify_relational_operation
4199         may now return another relational expression.
4200         * simplify-rtx.c (simplify_gen_relational): Move most code to
4201         the new simplify_relational_operation and
4202         simplify_relational_operation_1 functions.
4203         (simplify_relational_operation): Rewritten.
4204         (simplify_relational_operation_1): New function.
4205         (simplify_ternary_operation): simplify_relational_operation
4206         may now return another relational expression.
4207         (simplify_rtx): Remove unnecessary temp variable.
4208
4209 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
4210
4211         * reg-stack.c (swap_to_top): New function.
4212         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
4213         swap_to_top().
4214         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
4215         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
4216         UNSPEC_FSCALE_EXP.
4217
4218         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
4219         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
4220         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
4221         x87's fscale insn.
4222         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
4223         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
4224         patterns.
4225
4226 2004-04-28  Serge Belyshev  <1319@bot.ru>
4227
4228         PR 14944
4229         * coverage.c (read_counts_file): Fix usage of warning () call.
4230         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
4231
4232 2004-04-28  Ben Elliston  <bje@au.ibm.com>
4233
4234         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
4235         options with "-" in the option index.
4236         (SPARC Options): Likewise.
4237         (M32R/D Options): Likewise.
4238
4239 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4240
4241         * convert.c (convert_to_integer): Convert (long)round -> lround,
4242         etc.
4243
4244 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
4245
4246         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
4247         Return false if we do not have fp register.
4248         (addrs_ok_for_quad_peep): Rename to ...
4249         (mems_ok_for_quad_peep): this.
4250         Add check for volatile memory.
4251         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
4252         Rename to ...
4253         (mems_ok_for_quad_peep): this.
4254         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
4255         to peephole2's.
4256         (lfq_power2): New instruction.
4257         (stfq_power2): Likewise.
4258
4259 2004-04-28  Jan Hubicka  <jh@suse.cz>
4260
4261         PR c/15004
4262         * function.c (do_warn_unused_parameter): Break out form ...
4263         (expand_function_end): ... here; warn only when not using cgraphunit.
4264         * function.h (do_warn_unused_parameter): Declare.
4265         * cgraphunit.c: Include function.h.
4266         (cgraph_finalize_function): Do unused parameter warning.
4267         * Makefile.in (cgraphunit.o): Depend on function.h
4268
4269 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4270
4271         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
4272         calling install-info on $(DESTDIR)$(infodir)/dir already being
4273         present.
4274
4275 2004-04-28  Paul Brook  <paul@codesourcery.com>
4276
4277         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
4278
4279 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4280
4281         * gcse.c (find_moveable_store): Do not accept store insns with
4282         REG_EH_REGION note.
4283
4284 2004-04-28  Paul Brook  <paul@codesourcery.com>
4285
4286         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
4287         * function.c (assign_temp): Ditto.
4288         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
4289
4290 2004-04-28  Paul Brook  <paul@codesourcery.com>
4291
4292         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
4293
4294 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
4295
4296         * var-tracking.c (variable_different_p): Add a parameter
4297         compare_current_location, compare current location of variable parts
4298         if it is true.
4299         (dataflow_set_different_1): Pass compare_current_location == false.
4300         (dataflow_set_different_2): Pass compare_current_location == false.
4301         (emit_notes_for_differences_1): Pass compare_current_location == true.
4302
4303 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4304
4305         * config/s390/s390.md ("casesi"): Mark jump table access as
4306         non-trapping and unchanging.
4307
4308 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4309
4310         PR debug/14829
4311         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
4312         callers.
4313         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
4314         number for indexing hard_regno_nregs array.
4315
4316 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
4317
4318         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
4319         * config/darwin-crt2.c: Only have contents on __ppc__.
4320
4321 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
4322
4323         * config/xtensa/xtensa.c (call_insn_operand): Check
4324         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
4325         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
4326         * config/xtensa/xtensa.md (call, call_value): Likewise.
4327
4328 2004-04-27  Wu Yongwei  <adah@sh163.net>
4329
4330         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
4331         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
4332         (__gthread_mutex_init_function): Replace CreateMutex with
4333         initialization of custom mutex using CreateSemaphore.
4334         (__gthread_mutex_lock): Use InterlockedIncrement.
4335         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
4336         (__gthread_mutex_unlock): Use InterlockedDecrement and
4337         ReleaseSemaphore to unlock
4338         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
4339         __gthread_mutex_lock, __gthread_mutex_trylock,
4340         __gthread_mutex_unlock): Adjust to match inline versions in
4341         gthr-win32.h.
4342
4343 2004-04-27  Paul Brook  <paul@codesourcery.com>
4344
4345         * config/arm/arm.c (arm_promote_prototypes): New function.
4346         (TARGET_PROMOTE_PROTOTYPES): Use it.
4347
4348 2004-04-27  Paul Brook  <paul@codesourcery.com>
4349
4350         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
4351
4352 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
4353
4354         * config/alpha.c (alpha_end_function): For OpenVMS gas,
4355         correctly output .pdesc directive before .end.
4356
4357 2004-04-26  James E Wilson  <wilson@specifixinc.com>
4358
4359         Bug 14927
4360         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
4361         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
4362
4363 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
4364
4365         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
4366         * config/pa/pa-hpux10.h: Likewise.
4367         * config/pa/pa-hpux11.h: Likewise.
4368
4369 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
4370
4371         * doc/invoke.texi (Overall Options): Document default for -o
4372         for PCH files.
4373
4374 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4375
4376         * builtins.c (expand_builtin_update_setjmp_buf): New function.
4377         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
4378         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
4379
4380 2004-04-26  Paul Brook  <paul@codesourcery.com>
4381
4382         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
4383
4384 2004-04-26  Paul Brook  <paul@codesourcery.com>
4385
4386         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
4387
4388 2004-04-25  Roger Sayle  <roger@eyesopen.com>
4389
4390         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
4391         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
4392         X % -1 as 0.
4393
4394 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
4395
4396         PR bootstrap/15141
4397         * except.c (connect_post_landing_pads): Delete insns after the
4398         barrier when generating a unwind_resume_libfunc call.
4399
4400 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4401
4402         PR/c++ 15119
4403         * tree.c (substitute_placeholder_in_expr, case 4): New case,
4404         for TARGET_EXPR.
4405
4406 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4407
4408         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4409         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
4410         inhibit_libc is defined.
4411
4412 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
4413
4414         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
4415         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
4416         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
4417         (TARGET_SCHED_VARIABLE_ISSUE): Define.
4418         (mips_adjust_cost): Move later in file, next to other sched hooks.
4419         (mips_macc_chains_last_hilo): New variable.
4420         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
4421         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
4422         * config/mips/mips.md (may_clobber_hilo): New attribute.
4423
4424 2004-04-24  Roger Sayle  <roger@eyesopen.com>
4425             Bruce Korb  <bkorb@gnu.org>
4426
4427         * fixinc/inclhack.def (aix_syswait_2): New fix.
4428         * fixinc/fixincl.x: Regenerate.
4429         * fixinc/tests/base/sys/wait.h: Update for new test.
4430
4431 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
4432
4433         PR target/14960
4434         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
4435         to non_fixed_size, and leave out fixed_size from the sum.
4436         (generate_set_vrsave): Correct clobbers.
4437         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
4438         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
4439         (rs6000_libcall_value): Likewise.
4440         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
4441         (FUNCTION_ARG_REGNO_P): Likewise.
4442
4443 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4444
4445         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
4446         is a CONST_INT.
4447         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
4448         with NARROW_OP1 instead of OP1.
4449
4450 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4451
4452         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
4453         and __s390x__ hosts.
4454
4455 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4456
4457         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
4458         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
4459         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
4460         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
4461         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
4462         * builtins.c (expand_builtin_fork_or_exec): New.
4463         (expand_builtin): Call it.
4464         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
4465         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
4466         * c-common.c (PID_TYPE): New macro.
4467         (c_common_nodes_and_builtins): Initialize pid_type_node.
4468         * calls.c (special_function_p): Do not handle fork and exec.
4469         (expand_call): Do not handle ECF_FORK_OR_EXEC.
4470         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4471         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
4472         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4473         __gcov_execv, __gcov_execvp, __gcov_execve): New.
4474         * tree.h (enum tree_index): Add TI_PID_TYPE.
4475         (pid_type_node): New macro.
4476         (ECF_FORK_OR_EXEC): Removed.
4477
4478 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4479
4480         PR optimization/13985
4481         * cfgloopmanip.c (fix_loop_placements): New prototype.
4482         Call fix_bb_placements on the preheader of loops that have
4483         been reparented.
4484         (remove_path): Adjust call to fix_loop_placements.
4485
4486 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
4487
4488         * config/darwin7.h: New file.
4489         * config.gcc (*-*-darwin*): Add darwin7.h if the
4490         version is greater than 6.
4491         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
4492         (MATH_LIBRARY): Wrap in ifdefs.
4493
4494 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
4495
4496         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
4497         loading iWMMXt registers with a frame pointer.  Use post-increment
4498         without a frame pointer.
4499         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
4500
4501 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
4502
4503         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
4504         mode" rather than "-funit-at-a-time" since -O2 enables it
4505         without requiring -f* options.  Refer to -fprofile-generate and
4506         -fprofile-use correctly.  Move -funit-at-a-time among options
4507         enabled by -O.  Add information about unit-at-a-time caveats.
4508
4509 2004-04-22  Per Bothner  <per@bothner.com>
4510
4511         * line-map.h (struct line_maps):  New field highest_line.
4512         (linemap_position_for_column):  Make non-inline function.
4513         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
4514         * line-map.c (linemap_init):  Clear highest_line field.
4515         (linemap_add):  Set highest_line field.
4516         (linemap_line_start):  Minor optimization - use highest_line field.
4517         Reduce maximum column hint to 10000.  Update highest_line field.
4518         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
4519         * cpphash.h (struct cpp_reader):  Remove line field - instead use
4520         line_table->highest_line.
4521         (saved_line):  Remove unused field.
4522         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
4523         Use  line_table's highest_line field instead of cpp_reader's line.
4524         * cpplib.c (start_directive):  Likewise use highest_line field.
4525         (do_line, do_linemarker):  Likewise just use newest map.
4526         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
4527         * cpperror.c (cpp_error):  Likewise use highest_line field.
4528         * cppfiles.c (open_file_failed:  Likewise.
4529         (cpp_make_system_header):  Likewise use newest map and highest_line.
4530         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
4531         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
4532         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
4533         _cpp_lex_direct):  Likewise use highest_line.
4534         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
4535         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
4536         and use newest map.
4537         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
4538         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
4539         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
4540
4541 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
4542
4543         PR bootstrap/14992
4544         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
4545         * config/linux.h (USE_LD_AS_NEEDED): Define.
4546         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
4547         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
4548         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
4549         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
4550         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
4551         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
4552         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
4553
4554 2004-04-22  Per Bothner  <per@bothner.com>
4555
4556         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
4557         Fixes PR preprocessor/15067.
4558
4559 2004-04-23  Andreas Schwab  <schwab@suse.de>
4560
4561         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
4562         avoid aliasing warning.
4563
4564 2004-04-22  Jan Hubicka  <jh@suse.cz>
4565             Mostafa Hagog <mustafa@il.ibm.com>
4566
4567       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
4568       * cfgloopanal.c (expected_loop_iterations): Change the return value
4569
4570 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
4571
4572         * cselib.h (struct elt_loc_list): Remove canon_loc field.
4573         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
4574         (cselib_invalidate_mem): Remove all canon_loc and canon_x
4575         traces.
4576
4577 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
4578
4579         Revert
4580         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4581
4582                 * var-tracking.c (variable_part_different_p): Variable parts
4583                 differ when the most recent locations differ.
4584
4585 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
4586
4587         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
4588         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
4589         (embedded_pic_offset): Delete.
4590         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
4591         MASK_* constants.
4592         (TARGET_EMBEDDED_PIC): Delete.
4593         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
4594         (ASM_SPEC): Remove -membedded-pic.
4595         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
4596         (ASM_OUTPUT_CASE_LABEL): Likewise.
4597         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
4598         * config/mips/windiss.h (ASM_SPEC): Likewise.
4599         * config/mips/mips.c (struct machine_function): Remove
4600         embedded_pic_fnaddr_rtx.
4601         (TARGET_ENCODE_SECTION_INFO): Remove override.
4602         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
4603         (override_options): Remove -membedded-pic handling.
4604         (print_operand): Remove handling of '%S'.
4605         (mips_select_section: Remove -membedded-pic handling.
4606         (mips_encode_section_info): Delete.
4607         (mips_output_conditional_branch): Remove mention of -membedded-pic.
4608         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
4609         -membedded-pic handling.
4610         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
4611
4612 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
4613
4614         * var-tracking.c (frame_base_decl): Remove useless GTY.
4615
4616 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
4617
4618         * config/rs6000/rs6000.c (rs6000_override_options): Error when
4619         user wants altivec and e500 instructions.
4620
4621 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4622
4623         PR target/14813
4624         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
4625         in .init_array section to ...
4626         * config/ia64/crtbegin.asm: Here.
4627
4628         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
4629         and hidden if HAVE_INITFINI_ARRAY is defined.
4630
4631 2004-04-21  James E Wilson  <wilson@specifixinc.com>
4632
4633         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
4634         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
4635         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4636         (fp_register_operand, lo_operand): New.
4637         (mips_rtx_costs): Add TUNE_SB1 support.
4638         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4639         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4640         (mips_multipass_dfa_lookahead): New.
4641         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4642         TUNE_SB1): New.
4643         (TARGET_SWITCHES): Add -mfp-exceptions support.
4644         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4645         (BRANCH_COST): Fix whitespace.
4646         * config/mips/mips.md: Include sb1.md.
4647         * config/mips/sb1.md: New file.
4648         * doc/invoke.texi: Document -mfp-exceptions.
4649
4650         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4651         comment.
4652         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4653         (fixincl.o-warn): Delete.
4654
4655 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4656
4657         * config/rs6000/rs6000 (print_operand) ['z']:
4658         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4659
4660 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4661
4662         * config.gcc: Support --with-arch=iwmmxt for ARM.
4663
4664 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4665
4666         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4667         in two more places; remove unneeded force_reg
4668
4669 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4670
4671         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4672         for TARGET_MACHO.
4673         (print_operand): For TARGET_MACHO check to see if we need a stub
4674         and output one if we need it.
4675
4676         PR debug/15033
4677         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4678         rtl.
4679
4680 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4681
4682         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4683         (vall_value_gp): Likewise.
4684
4685 2004-04-20  DJ Delorie  <dj@redhat.com>
4686
4687         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4688         variables stored in word registers, then in memory.
4689
4690 2004-04-20  Eric Christopher  <echristo@redhat.com>
4691
4692         * cp/parser.c (cp_parser_declaration): Move translate
4693         up before tokens are lexed.
4694
4695 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4696
4697         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4698         (asin_optab, acos_optab): Define corresponding macros.
4699         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4700         * genopinit.c (optabs): Implement asin_optab and acos_optab
4701         using asin?f2 and acos?f2 patterns.
4702         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4703         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4704         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4705         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4706
4707         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4708         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4709         acos, acosf and acosl built-ins as inline x87 intrinsics.
4710
4711 2004-04-20  Paul Brook  <paul@codesourcery.com>
4712
4713         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4714
4715 2004-04-20  Paul Brook  <paul@codesourcery.com>
4716
4717         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4718
4719 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4720
4721         Revert part of 2004-04-17 change that moved -frename-registers
4722         to -O1.  -frename-registers is buggy.
4723
4724         * toplev.c (flag_rename_registers): Initialize to 0.
4725         * doc/invoke.texi (Optimize options): Move -frename-registers
4726         to "Not triggered by any -O level" section.  Adjust commentary
4727         accordingly.
4728
4729 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4730
4731         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4732
4733 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4734
4735         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4736         for mflo and mfhi instructions.
4737         (mips_output_move): Remove mflo and mfhi handling.
4738         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4739         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4740         Likewise various define_peephole2s.
4741         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4742         alternatives.
4743         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4744         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4745         (mfhilo_di, mfhilo_si): New patterns.
4746
4747 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4748
4749         * function.c (assign_parms): Force
4750         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4751
4752 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4753
4754         * var-tracking.c (variable_part_different_p): Variable parts differ
4755         when the most recent locations differ.
4756
4757 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4758
4759         * rtl.h (reg_set_last): Delete declaration.
4760         * rtlanal.c (reg_set_last): Delete.
4761
4762 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4763
4764         * fold-const.c (fold_convert): Make function extern/public.
4765         * tree.h (fold_convert): Prototype here.
4766         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4767         expand_builtin_strrchr, expand_builtin_strpbrk,
4768         expand_builtin_mempcpy, expand_builtin_bcopy,
4769         expand_builtin_bzero, expand_builtin_memcmp,
4770         expand_builtin_strcmp, expand_builtin_strncmp,
4771         stabilize_va_list, expand_builtin_sprintf,
4772         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4773         fold_builtin_exponent, fold_builtin_mempcpy,
4774         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4775         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4776         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4777
4778 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4779
4780         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4781         (move_from_CR_gt_bit): New.
4782         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4783         E500.
4784         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4785         E500.
4786
4787         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4788         (tstsfeq_gpr): Same.
4789         (cmpsfgt_gpr): Same.
4790         (tstsfgt_gpr): Same.
4791         (cmpsflt_gpr): Same.
4792         (tstsflt_gpr): Same.
4793         (e500_cceq_ior_compare): New.
4794         (e500_flip_gt_bit): New.
4795
4796         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4797         (print_operand): Add 'c' and 'D'.
4798         (rs6000_generate_compare): Rewrite to generate correct rtl.
4799         (rs6000_emit_sCOND): Handle E500.
4800         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4801         (output_e500_flip_gt_bit): New.
4802
4803         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4804         Protoize.
4805
4806 2004-04-19  Eric Christopher  <echristo@redhat.com>
4807
4808         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4809
4810 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4811
4812         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4813         fix information.
4814
4815 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4816
4817         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4818         download URL.
4819
4820 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4821
4822         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4823         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4824
4825 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4826
4827         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4828         (fold_builtin): Update caller to match.
4829
4830         PR bootstrap/15009
4831         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4832
4833         PR bootstrap/14999
4834         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4835
4836 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4837
4838         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4839
4840         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4841         (expand_mult_highpart_optab): Likewise.
4842         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4843
4844 2004-04-19  Paul Brook  <paul@codesourcery.com>
4845
4846         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4847         floatunssisf2, floatunssidf2): New patterns.
4848
4849 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4850
4851         PR other/14918
4852         * doc/invoke.texi (-fprofile-generate): Document requirement to
4853         use -fprofile-generate when linking.
4854
4855         * doc/extend.texi (Strong Using): Warn users against using this
4856         feature.
4857
4858 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4859
4860         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4861         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4862         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4863         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4864         constant.  Propogate change throughout file.
4865         (struct machine_function): Remove insns_len.
4866         (mips_string_length, mips16_strings, string_constants): Delete.
4867         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4868         when generating mips16 code.  Remove special mips16 treatment of
4869         string constants.
4870         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4871         to have the form LABEL+CONSTANT.
4872         (mips_symbolic_address_p): Fix comment.
4873         (m16_usym8_4, m16_usym5_4): Delete.
4874         (mips_output_function_epilogue): Remove mips16 string handling.
4875         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4876         (mips_select_section, mips_encode_section_info): Remove mips16
4877         string handling.
4878         (struct mips16_constant_pool): New.
4879         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4880         sorted into order of ascending mode size.  Keep track of the highest
4881         possible start address, taking padding and the masking of the base PC
4882         value into account.
4883         (dump_constants_1): New function, split out from dump_constants.
4884         Handle vector constants.  Use gen_consttable_{int,float} rather than
4885         separate functions for each mode.
4886         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4887         rather than separate functions for each alignment.
4888         (mips_find_symbol): Delete.
4889         (mips16_insn_length): New function, split out from
4890         mips16_lay_out_constants.
4891         (mips16_rewrite_pool_refs): New function.
4892         (mips16_lay_out_constants): Rework. Remove string handling.
4893         Always create an inline constant pool.
4894         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4895         (UNSPEC_ALIGN): New constants.
4896         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4897         (UNSPEC_ALIGN_[248]): Delete.
4898         (consttable_int, consttable_float, align): New patterns.
4899         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4900
4901 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4902
4903         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4904         __unn_args_eq.
4905
4906 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4907
4908         PR target/14715
4909         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4910         with STARTING_FRAME_OFFSET.
4911
4912 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4913
4914         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4915         * config/mips/mips.c (macc_msac_operand): New function.
4916         * config/mips/mips.md (*msac): Move after *macc.
4917         (*msac2): New.  Generalize macc-related peepholes so that they apply
4918         to msac too.
4919
4920 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4921
4922         * opts.c (decode_options): Do not enable flag_rename_registers
4923         and flag_web at -O3.
4924         * toplev.c (flag_rename_registers): Initialize
4925         flag_rename_registers and flag_web to
4926         AUTODETECT_FLAG_VAR_TRACKING.
4927         (default_debug_hooks): New global.
4928         (process_options): Initialize default_debug_hooks.  Warn if
4929         -fvar-tracking specified but not supported by the current
4930         debug format.  Do not run var tracking at -O0 or if not
4931         supported by the current debug format, even if
4932         -fvar-tracking was given.  If -fno-rename-registers
4933         is not specified, always run register renaming if var
4934         tracking is supported by the default debugging information
4935         format for the target, and we are at -O1 or higher; similarly
4936         for -fweb, but only at -O2 or higher.
4937         * doc/invoke.texi (Optimize Options): Document this.
4938
4939 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4940
4941         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4942         * configure: Regenerate.
4943
4944 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4945
4946         * gcc.c (used_arg): Check whether an option has been removed.
4947
4948 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4949
4950         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4951         debugging on Solaris 7 and up.
4952
4953 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4954
4955         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4956         IRIX 5 port.
4957         Remove -save-temps workaround, handled automatically.
4958         Require GNU binutils 2.15 for debugging.
4959         Remove SGI make warnings since GNU make is now required.
4960         (Specific, mips-sgi-irix6): Some markup fixes.
4961         Describe MIPSpro C problems and workarounds.
4962         Mention working O32 ABI support.
4963         Recommend GNU as 2.15 for O32 with debugging.
4964         Remove description of fixed structure pass/return bug.
4965
4966 2004-04-16  DJ Delorie  <dj@redhat.com>
4967
4968         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4969         TYPE_FIELDS.
4970         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4971
4972 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4973
4974         * pa.md: Remove unnecessary declarations for asm_out_file.
4975
4976         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4977         SAR register.  Fix comment.
4978         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4979         (%cr11).
4980
4981         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4982
4983 2004-04-16  Nick Clifton  <nickc@redhat.com>
4984
4985         * config/arm/arm.c (arm_override_options): Revert previous patch.
4986         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
4987         be safely built.
4988
4989 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
4990
4991         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
4992         bug.
4993         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
4994         TARGET_DEFAULT): Changed. Ditto.
4995         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
4996         TARGET_ENDIAN_DEFAULT): Added. Ditto.
4997         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
4998         (TARGET_ENDIAN_DEFAULT): Added.
4999
5000 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5001
5002         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5003         ATTR_CONST_NOTHROW_LIST.
5004
5005 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5006
5007         PR/middle-end 14915
5008         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5009         BITS_BIG_ENDIAN.
5010
5011 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5012
5013         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5014
5015 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5016
5017         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5018
5019 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5020
5021         * libada-mk.in: New file.
5022         * configure.ac: Create libada-mk from libada-mk.in.
5023         * configure: Regenerate.
5024
5025 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5026
5027         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5028         (logb_optab, ilogb_optab): Define corresponding macros.
5029         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5030         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5031         using logb?f2 and ilogb?i2 patterns.
5032         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5033         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5034         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5035         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5036
5037         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5038         and UNSPEC_XTRACT_EXP.
5039
5040         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5041         patterns to implement fxtract x87 instruction.
5042         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5043         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5044         intrinsics.
5045         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5046         x87's fxtract insn.
5047
5048 2004-04-14  Eric Christopher  <echristo@redhat.com>
5049
5050         * config/mips/t-elf: Enable multilibs by default.
5051
5052 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5053
5054         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5055         previous fix to check HAVE_return at runtime too.
5056
5057 2004-04-14  Nick Clifton  <nickc@redhat.com>
5058
5059         * config/arm/arm.c (arm_override_options): If the user has not
5060         specified an ABI, then default to AAPCS for the iWMMXt processor.
5061         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5062         * config/arm/t-xscale-coff: Likewise.
5063
5064 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5065
5066         * builtins.c (fold_builtin_isdigit): New.
5067         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5068         * defaults.h: Add TARGET_DIGIT0 and sort.
5069         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5070
5071 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5072
5073         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5074         `mathfn_built_in' to determine the new builtin.
5075         * fold-const.c (fold): Likewise.
5076
5077 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5078
5079         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5080         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5081         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5082         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5083         (ASM_SPEC): Update accordingly.
5084         * config/mips/mips.c: Update after above renaming.
5085         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5086         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5087
5088 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5089
5090         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5091         increment errorcount and return false instead of true.
5092
5093 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5094
5095         * optabs.c (expand_twoval_unop): Reorder function arguments.
5096         * builtins.c (expand_builtin_mathfn_3): Update calls to
5097         expand_twoval_unop.
5098
5099         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5100         and UNSPEC_TAN_TAN. Add missing comment.
5101
5102         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5103         patterns to implement fptan x87 instruction.
5104         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5105         and tanl built-ins as inline x87 intrinsics. Define corresponding
5106         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5107         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
5108         x87's fptan insn.
5109
5110 2004-03-13  Richard Henderson  <rth@redhat.com>
5111
5112         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
5113         for LABEL_REFs.
5114
5115         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
5116         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
5117         * doc/invoke.texi: Update to match.
5118
5119         * varasm.c (unlikely_text_section): Use assemble_align instead of
5120         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
5121         correct alignment argument.
5122
5123 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
5124
5125         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
5126         after setting reg_last_reload_reg for optional output reloads.
5127
5128 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
5129
5130         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
5131         Definition of these two macros are corrected by adding
5132         matchine right paren.
5133
5134 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
5135
5136         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
5137
5138 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5139
5140         * config/i386/i386.c (output_387_reg_move): New function.
5141         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
5142         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
5143         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
5144         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
5145         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
5146
5147 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5148
5149         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
5150         TYPE_DECL.
5151         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
5152         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
5153         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
5154         Use skip_simple_arithmetic to find SAVE_EXPR.
5155         (force_type_save_exprs, force_type_save_exprs_1): New functions.
5156         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
5157         Properly chain multiple pointers.
5158         (copy_tree_r): Copy a TYPE_DECL.
5159         * tree.c (variably_modified_type_p): Add some missing tests and
5160         make some other minor changes.
5161         * tree.h (force_type_save_exprs): New declaration.
5162
5163 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5164
5165         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
5166         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
5167         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
5168         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
5169         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
5170         x%-1 into 0 (or x&0 if x has side-effects).
5171
5172 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5173
5174         * config/rs6000/rs6000.md: Document why a pattern is not
5175         available.
5176
5177         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
5178         of floats on the E500.
5179         (branch_positive_comparison_operator): Do not allow NE even on the
5180         E500.
5181
5182 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5183
5184         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
5185         in_text_unlikely_section to in_unlikely_text_section.
5186
5187 2004-04-11  Roger Sayle  <roger@eyesopen.com>
5188
5189         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
5190         calling convention to allow a NULL_TREE to be returned.  Factor
5191         sanity checks from callers, return NULL_TREE when appropriate.
5192         (fold): Handle COMPOUND_EXPR operands of binary expressions
5193         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
5194         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
5195         calls to fold_binary_op_with_conditional_arg.
5196
5197 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5198
5199         * config/mips/iris5.h (current_section_flags):  Add
5200         in_unlikely_executed_text and default case.
5201
5202 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
5203
5204         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
5205         failure on solaris. Place ifdef HAVE_return around gen_ret call.
5206         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
5207         HAVE_return and place it around the place where it is needed.
5208
5209 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5210
5211         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
5212         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
5213         and NORMAL_TEXT_SECTION_NAME.
5214         (unlikely_text_section): Check targetm.have_named_sections
5215         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
5216         instead of SECTION_FORMAT_STRING.
5217         * config/mips/iris5.h (current_section_name): Add
5218         in_unlikely_executed_text case and move the abort into the switch.
5219         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
5220         (NORMAL_TEXT_SECTION_NAME): Remove.
5221         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
5222         (SECTION_FORMAT_STRING): Remove.
5223         * defaults.h (SECTION_FORMAT_STRING): Remove.
5224         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
5225         (SECTION_FORMAT_STRING): Remove.
5226
5227 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5228
5229         * c-typeck.c (common_type): Prefer long long to long when same
5230         precision.
5231
5232 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
5233
5234         PR 14887
5235         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
5236         mode argument.
5237         * config/ia64/ia64.c (ia64_hpux_file_end): Check
5238         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
5239
5240 2004-04-09  Roger Sayle  <roger@eyesopen.com>
5241
5242         * simplify-rtx.c (mode_signbit_p): New function to check whether
5243         an RTX is an immediate constant that represents the most significant
5244         bit of a given machine mode.
5245         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
5246         C is the sign bit.
5247         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
5248         when C2 is the sign bit.
5249         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
5250         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
5251         sign bit.
5252
5253 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5254
5255         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
5256         TYPE_MODE.
5257
5258 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
5259
5260         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
5261         of TREE_READONLY for types.
5262
5263 2004-04-09  Caroline Tice  <ctice@apple.com>
5264
5265         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
5266         (struct basic_block_def):  Add new field, partition.
5267         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
5268         definitions.
5269         (partition_hot_cold_basic_blocks): Add extern function
5270         declaration.
5271         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
5272         include statements.
5273         (N_ROUNDS): Increase the maximum number of rounds by 1.
5274         (branch_threshold): Add array value for new round.
5275         (exec_threshold): Add array value for new round.
5276         (push_to_next_round_p): New function.
5277         (add_unlikely_executed_notes): New function.
5278         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
5279         (mark_bb_for_unlikely_executed_section): New function.
5280         (add_labels_and_missing_jumps): New function.
5281         (add_reg_crossing_jump_notes): New function.
5282         (fix_up_fall_thru_edges): New function.
5283         (find_jump_block): New function.
5284         (fix_crossing_conditional_branches): New function.
5285         (fix_crossing_unconditional_branches): New function.
5286         (fix_edges_for_rarely_executed_code): New function.
5287         (partition_hot_cold_basic_blocks): New function.
5288         (find_traces):  Add an extra round for partitioning hot/cold
5289         basic blocks.
5290         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
5291         and only cold blocks, into the last (extra) round of collecting traces.
5292         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
5293         over crossing edges.
5294         (bb_to_key):  Add code to correctly identify cold blocks when
5295         doing partitioning.
5296         (connect_traces): Modify to connect all the non-cold traces first, then
5297         go back and connect up all the cold traces.
5298         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
5299         * cfg.c (entry_exit_blocks): Add initialization for partition field in
5300         entry and exit blocks.
5301         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
5302         if we are doing hot/cold partitioning.
5303         * cfgcleanup.c (cfglayout.h): Add new include statement.
5304         (try_simplify_condjump): Modify to not attempt on blocks with jumps
5305         that cross section boundaries.
5306         (try_forward_edges): Likewise.
5307         (merge_blocks_move_predecessor_nojumps): Likewise.
5308         (merge_blocks_move_successor_nojumps): Likewise.
5309         (merge_blocks_move): Likewise.
5310         (try_crossjump_to_edge): Modify to not attempt after we have done
5311         the block partitioning.
5312         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
5313         cross section boundaries.
5314         (try_optimize_cfg): Likewise.
5315         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
5316         jumps that cross section boundaries.
5317         * cfglayout.c (flags.h): Add new include statement.
5318         (update_unlikely_executed_notes):  New function.
5319         (fixup_reorder_chain):  Add code so when a new jumping basic block is
5320         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
5321         updated appropriately.
5322         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
5323         introduced by this optimization.
5324         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
5325         extern function declaration.
5326         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
5327         list of notes that can be deleted.
5328         (create_basic_block_structure):  Add initialization for partition field.
5329         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
5330         section boundaries.
5331         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
5332         cross section boundaries.
5333         (commit_one_edge_insertion): Add code so newly created basic block
5334         ends up in correct (hot or cold) section.  Modify to disallow
5335         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5336         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
5337         crosses section boundaries.
5338         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
5339         cross section boundaries.
5340         (force_nonfallthru_and_redirect): Modify to make sure new basic block
5341         ends up in correct section, with correct notes attached.
5342         * common.opt (freorder-blocks-and-partition):  Add new flag for this
5343         optimization.
5344         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
5345         the end of functions are written into the correct (hot or cold)
5346         section.
5347         (dbx_source_file): Add code so writing debug file information
5348         doesn't incorrectly change sections.
5349         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
5350         in partitioning hot/cold basic blocks into separate sections.
5351         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
5352         section partitioning.
5353         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
5354         conditional branches can span all of memory.
5355         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
5356         unconditional branches can span all of memory.
5357         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
5358         (final_scan_insn):  Add code to check for NOTE instruction indicating
5359         whether basic block belongs in hot or cold section, and to make sure
5360         the current basic block is being written to the appropriate section.
5361         Also added code to ensure that jump table basic blocks end up in the
5362         correct section.
5363         * flags.h (flag_reorder_blocks_and_partition):  New flag.
5364         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
5365         one of the branches has a jump that crosses between sections.
5366         (find_if_case_2): Likewise.
5367         (ifcvt): Modify to not attempt to mark loop exit edges after
5368         hot/cold partitioning has occurred.
5369         * opts.c (decode_options): Code to handle new flag,
5370         flag_reorder_blocks_and_partition; also to turn it off if
5371         flag_exceptions is on.
5372         (common_handle_option): Code to handle new flag,
5373         flag_reorder_blocks_and_partition.
5374         * output.h (unlikely_text_section): New extern function declaration.
5375         (in_unlikely_text_section): New extern function declaration.
5376         * passes.c (rest_of_handle_stack_regs):  Add
5377         flag_reorder_blocks_and_partition as an 'or' condition for calling
5378         reorder_basic_blocks.
5379         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
5380         as an 'or' condition for calling reorder_basic_blocks.
5381         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
5382         * print-rtl.c (print_rtx): Add code for handling new note,
5383         NOTE_INSN_UNLIKELY_EXECUTED_CODE
5384         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
5385         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
5386         cross between section boundaries.
5387         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
5388         indicating the basic block containing it belongs in the cold section.
5389         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
5390         between hot and cold sections.
5391         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
5392         initialize this flag, and to tie it to the command-line option
5393         freorder-blocks-and-partition.
5394         * varasm.c (cfglayout.h):  Add new include statement.
5395         (unlikely_section_label_printed):  New global variable, used for
5396         determining when to output section name labels for cold sections.
5397         (in_section):  Add in_unlikely_executed_text to enum data structure.
5398         (text_section):  Modify code to use SECTION_FORMAT_STRING and
5399         NORMAL_TEXT_SECTION_NAME macros.
5400         (unlikely_text_section):  New function.
5401         (in_unlikely_text_section):  New function.
5402         (function_section):  Add code to make sure beginning of function is
5403         written into correct section (hot or cold).
5404         (assemble_start_function):  Add code to make sure stuff is written to
5405         the correct section.
5406         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
5407         to an if statement that was checking 'in_text_section'.
5408         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
5409         condition to an if statement that was checking 'in_text_section'.
5410         (default_section_type_flags_1):  Add check: if in cold section
5411         flags = SECTION_CODE.
5412         * config/darwin.c (darwin_asm_named_section):  Modify to use
5413         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
5414         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
5415         specifically for the i386.
5416         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
5417         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
5418         text string to something more informative.
5419         (NORMAL_TEXT_SECTION_NAME): Add new definition.
5420         (SECTION_FORMAT_STRING):  Add new definition.
5421         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
5422         '!in_unlikely_text_section' as an 'and' condition to an if statement
5423         that was already checking '!in_text_section'.
5424         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
5425         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
5426         sure these are properly defined for linux on ppc.
5427         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
5428         for this new flag.
5429         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
5430         reg_note.
5431         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
5432         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
5433         these new macros.
5434
5435 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5436
5437         * function.c (gen_mem_addressof): When changing the RTX from a REG
5438         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
5439
5440 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5441
5442         PR target/14888
5443         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
5444         truncxfdf2_noop): Provide dummy "fmov" implementations.
5445
5446 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
5447
5448         * gcc.c (default_compilers): Add missing initializers.
5449
5450         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5451         Return 1 if file was successfully mapped.
5452
5453 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
5454
5455         PR pch/13419
5456         PR pch/14137
5457         Radar #: 3315288
5458         * doc/invoke.texi (Precompiled Headers): Suggest -o
5459         to put an output file in a particular place.  Be more detailed
5460         about which options affect PCH validity and which options
5461         might not work.
5462         * c-pch.c (pch_matching): New.
5463         (MATCH_SIZE): New.
5464         (struct c_pch_validity): New field 'match'.
5465         (pch_init): Handle pch_matching.
5466         (c_common_valid_pch): Check pch_matching.
5467
5468         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
5469
5470 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
5471
5472         * doc/invoke.texi (Precompiled Headers): Warn about known
5473         problems.
5474
5475 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5476
5477         PR c++/14808
5478         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
5479         to 1 if ASM_OUTPUT_DEF is defined.
5480         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
5481         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
5482         Set to non-zero iff not a one_only decl.
5483
5484 2004-04-08  Paul Brook  <paul@codesourcery.com>
5485
5486         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
5487
5488 2004-04-08  Paul Brook  <paul@codesourcery.com>
5489
5490         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
5491         PROMOTE_FOR_CALL_ONLY.
5492         * config/arm/arm-protos.h (arm_function_value): Declare.
5493         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
5494         (TARGET_PROMOTE_PROTOTYPES): Return false.
5495         (arm_function_value): New function.
5496         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
5497         (FUNCTION_VALUE): Call arm_function_value.
5498         * config/cris/cris.h (PROMOTE_MODE): Rename ...
5499         (PROMOTE_FUNCTION_MODE): ... to this.
5500         (PROMOTE_FOR_CALL_ONLY): Remove.
5501         * config/mmix/mmix.h: Likewise.
5502         * config/s390/s390.h: Likewise.
5503         * config/sparc/sparc.h: Likewise.
5504         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
5505         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
5506         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
5507         (PROMOTE_FOR_CALL_ONLY): Remove.
5508
5509 2004-04-08  Joel Sherrill <joel@oarcorp.com>
5510
5511         PR ada/14538
5512         * ada/5rosinte.adb: Remove fake mprotect() body.
5513         * ada/5rosinte.ads: Add SA_SIGINFO.
5514         * ada/5rtpopsp.adb: Rewrite to use new interface.
5515         * ada/init.c: Reorder so the simple single OS conditional __rtems__
5516         is tested before more complex ones which mix UNIX and embedded
5517         systems in the conditional.
5518
5519 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
5520
5521         PR ada/14665
5522         * ada/osint.adb (Find_Program_Name): Rework to properly handle
5523         filenames which end in .exe or have versioning suffixes like VMS.
5524
5525 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
5526
5527         PR target/10129
5528         * config/darwin.c (darwin_encode_section_info): When the decl has
5529         a DECL_INITIAL, it is only defined also when it is not a common.
5530
5531 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5532
5533         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
5534         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
5535
5536 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5537
5538         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
5539         global register variables.
5540
5541 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
5542
5543         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
5544         rpc_xdr_lvalue_cast_b): New fixes.
5545         * fixinc/fixincl.x: Regenerate.
5546         * fixinc/tests/base/rpc/xdr.h: Add new tests.
5547
5548 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
5549
5550         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
5551         to power4 and power5 entries.
5552
5553 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
5554
5555         * c-common.h (pending_lang_change): Mark for PCH.
5556
5557 2004-04-07  Caroline Tice  <ctice@apple.com>
5558
5559         * gcc.c (main): Move 'break' in main loops (on an error)
5560         to wait until error processing has occurred.
5561
5562 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
5563
5564         * config.gcc: Stop changing enable_threads midstream.
5565         Replace uses of enable_threads_flag with enable_threads.
5566         * configure.ac: Replace uses of enable_threads_flag with
5567         enable_threads.  Improve autoconf quotation in one place.
5568         * configure: Regenerate.
5569
5570 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
5571
5572         * builtins.c: Implement support for sincos function.
5573         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
5574         BUILT_IN_COS{,F,L}.
5575         (expand_builtin_mathfn_3): New function.
5576         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
5577         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
5578         flag_unsafe_math_optimization is set.
5579
5580         * optabs.h (enum optab_index): Add new OTI_sincos.
5581         (sincos_optab): Define corresponding macro.
5582
5583         * optabs.c (init_optabs): Initialize sincos_optab.
5584         (expand_twoval_unop): New function.
5585
5586         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
5587         patterns.
5588
5589         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
5590         and UNSPEC_SINCOS_SIN.
5591
5592         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
5593         sincosxf3): New patterns to implement sincos, sincosf and sincosl
5594         built-ins as inline x87 intrinsics. Define splits for
5595         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
5596         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
5597         sincos patterns.
5598         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
5599         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
5600
5601         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
5602         x87's fsincos insn.
5603
5604 2004-04-06  Devang Patel  <dpatel@apple.com>
5605
5606         PR 14467
5607         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
5608
5609 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5610
5611         * doc/install.texi: Update HP-UX 11 installation procedure.
5612
5613 2004-04-06  Paul Brook  <paul@codesourcery.com>
5614
5615         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
5616
5617 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5618
5619         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
5620         when the TLS address is generated by a function call.
5621         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
5622         (tls_local_dynamic): Likewise.
5623
5624 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
5625
5626         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
5627         and TYPE_VOLATILE.
5628
5629 2004-04-05  Caroline Tice  <ctice@apple.com>
5630
5631         * gcc.c (combine_flag): New global variable, for new driver option.
5632         (struct compiler): Add two new fields, to be used when
5633         combining multiple input files in a single pass (IMA).
5634         (default_compilers):  Add values for the new fields to all
5635         compiler entries. Modify the "@c" compiler entry for doing IMA
5636         properly with "-save-temps" and the "combine" flag.
5637         (option_map):  Add new driver option, "--combine", to tell driver
5638         to pass multiple input files to compiler at one time.
5639         (have_o_argbuf_index): New global variable.
5640         (store_arg): Modify to assign value to have_o_argbuf_index.
5641         (struct infile):  Add three new fields, to help with IMA.
5642         (display_help): Add help for new "combine" option.
5643         (process_command): Remove local variable have_o; add code to check
5644         for new "combine" option; remove assignment to combine_inputs.
5645         (do_spec_1):  Modify to deal with IMA better.
5646         (main): Make variable 'lang_n_infiles' local to entire function
5647         rather than to a single block.  Use flag combine_flag to
5648         determine whether to do IMA or not; Modify loop initializing
5649         infiles to deal properly with linker files.
5650         Add code for doing preprocessing in presence of
5651         IMA with "-save-temps" flag.  Modify "main" loop to handle
5652         multiple input files, in multiple languages, with or without
5653         preprocessing,  gracefully.
5654         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5655         re-set it to same directory it's previously been set to (avoid
5656         irritating, meaningless warning messages when doing IMA with
5657         save-temps).
5658         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5659         remove documentation about IMA that is no longer accurate; Add
5660         documentation explaining what "-combine" does.
5661         * ada/lang-specs.h: Add initialization values for new fields in
5662         "struct compiler".
5663         * cp/lang-specs.h: Likewise.
5664         * f/lang-specs.h: Likewise.
5665         * java/lang-specs.h: Likewise.
5666         * objc/lang-specs.h: Likewise.
5667         * treelang/lang-specs.h: Likewise.
5668
5669 2004-04-05  David Edelsohn
5670
5671         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5672         symbol handling.
5673
5674 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5675             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5676
5677         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5678         * pa.md: Use replace_equiv_address to retain the attributes of the
5679         memory operands used in the split and peephole2 patterns for optimizing
5680         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5681
5682 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5683
5684         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5685         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5686         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5687         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5688         PARM_DECL.
5689         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5690         for a type.
5691         * print-tree.c (print_node): Properly handle side-effects, readonly,
5692         and constant flags.
5693         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5694         and TREE_CONSTANT if not a type.
5695         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5696         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5697         (NON_TYPE_CHECK): New macro.
5698         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5699
5700 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5701
5702         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5703         to DWARF2_DEBUG unconditionally.
5704         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5705
5706 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5707             Nathanael Nerode  <neroden@gcc.gnu.org>
5708
5709         PR target/14548
5710         * config.host: Set the shell variable host_can_use_collect2.
5711         Set it to yes by default, and to no for alpha*-dec-*vms*,
5712         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5713         * configure.ac: Set and substitute the shell variable collect2.
5714         Give an error if use_collect2 is yes and host_can_use_collect2 is
5715         no.
5716         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5717         uses.  Initialize to @collect2@.
5718         (STAGESTUFF): Remove $(USE_COLLECT2).
5719         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5720         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5721         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5722         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5723         * configure: Regenerate.
5724
5725 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5726
5727         * simplify-rtx.c (simplify_binary_operation): Constant fold
5728         DIV, MOD, UDIV and UMOD using div_and_round_double.
5729
5730 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5731
5732         PR c++/14804
5733         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5734         RECORD_TYPEs.
5735
5736 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5737
5738         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5739         documentation.
5740
5741 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5742
5743         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5744         updating the REG_EQUAL note on an insn's libcall_insn.
5745
5746 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5747
5748         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5749
5750 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5751
5752         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5753         with reorder_operands_p.
5754
5755 2004-04-03  Jan Hubicka  <jh@suse.cz>
5756
5757         * md.texi (vec_set, vec_extract, vec_init): Document.
5758
5759 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5760
5761        * opts.c (decode_options): Do function inlining with very small
5762        max-inline-insns-* parameters when optimizing for size.
5763
5764 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5765
5766         * config/i386/i386.h (TARGET_NOCONA): New macro.
5767         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5768         (processor_type): Add PROCESSOR_NOCONA.
5769
5770         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5771
5772         * config/i386/i386.c (nocona_cost): New variable.
5773         (m_NOCONA): New macro.
5774         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5775         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5776         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5777         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5778         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5779         x86_decompose_lea, x86_arch_always_fancy_math_387,
5780         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5781         x86_ext_80387_constants, x86_four_jump_limit):
5782         (override_options): Add nocona_cost to processor_target_table.
5783         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5784         (incdec_operand): Prevent inc/dec generation for Nocona too.
5785         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5786
5787 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5788
5789         * rtlanal.c (find_reg_note): Manually
5790         unswitch the loop.
5791
5792 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5793
5794         * genemit.c (gen_split): Change prototype of generated code.
5795         * genrecog.c (write_action): Adjust prototype for and calls to
5796         gen_split_*.
5797         * gensupport.c (struct queue_elem): Add split field.
5798         (queue_pattern): Return a value.  Clear the split field.
5799         (process_rtx): Maintain an association between an insn and the
5800         split generated from it for a define_insn_and_split.
5801         (process_one_cond_exec): Generate a new split for a
5802         define_insn_and_split.
5803         * config/arm/arm-protos.h (arm_split_constant): Add insn
5804         parameter.
5805         (emit_constant_insn): New function.
5806         (arm_gen_constant): Use it.
5807         * config/arm/arm.md: Adjust calls to arm_split_constant.
5808
5809 2004-04-02  Jan Hubicka  <jh@suse.cz>
5810
5811         * cgraph.c: Add overall comment.
5812         (cgraph_inline_hash): New global variable.
5813         (cgraph_create_node): Break out from ...
5814         (cgraph_node): ... here.
5815         (cgraph_edge): New function.
5816         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5817         (cgraph_remove_edge): Accept edge, intead of source and destination.
5818         (cgraph_redirect_edge_callee): New.
5819         (cgraph_remove_node): Update all new datastructures.
5820         (cgraph_record_call, cgraph_remove_call): Kill.
5821         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5822         (dump_cgraph): ... here.
5823         (cgraph_function_possibly_inlined_p): Use new hashtable.
5824         (cgraph_clone_edge, cgraph_clone_node): New.
5825         * cgraph.h: Include hashtab.h
5826         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5827         fields, add inlined_to pointer.
5828         (cgraph_node): Add pointer to next_clone.
5829         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5830         (cgraph_remove_call, cgraph_record_call): Kill.
5831         (cgraph_inline_hash): Declare.
5832         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5833         cgraph_redirect_edge_callee): Declare.
5834         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5835         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5836         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5837         * cgraphunit.c: Add overall comment.
5838         (cgraph_optimize_function): Kill.
5839         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5840         (cgraph_finalize_function): Update call of cgraph_remove_node
5841         (record_call_1): Record call sites.
5842         (cgraph_create_edges): Accept node instead of decl argument.
5843         (error_found): New static variable.
5844         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5845         (cgraph_analyze_function): Update for new datastructures.
5846         (cgraph_finalize_compilation_unit): Plug memory leak.
5847         (cgraph_optimize_function): Kill.
5848         (cgraph_expand_function): Do not use cgraph_optimize_function.
5849         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5850         cgraph_inlined_callees): Kill.
5851         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5852         clones.
5853         (estimate_growth): Simplify.
5854         (cgraph_clone_inlined_nodes): New function.
5855         (cgraph_mark_inline_edge): Re-implement.
5856         (cgraph_mark_inline): Likewise.
5857         (cgraph_check_inline_limits): Simplify.
5858         (cgraph_recursive_inlining_p): New.
5859         (update_callee_keys): Break out from ...
5860         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5861         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5862         Likewise.
5863         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5864         list.
5865         (cgraph_preserve_function_body_p): New predicate.
5866         (cgraph_optimize): Verify cgraph.
5867         * function.h (struct function): Add fields saved_tree/saved_args.
5868         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5869         * toplev.c (rest_of_compilation): Do not free cfun.
5870         * tree-inline.c: Include function.h
5871         (struct inline_data): Add saving_p field; replace decl/current_decl by
5872         node/current_node.
5873         (insert_decl_map): New function.
5874         (copy_body_r): Handle saving; update cgraph datastructure.
5875         (copy_body): Handle recursive inlining.
5876         (initialize_inlined_parameters): Likewise.
5877         (expand_call_inline): Propagate node attributes; update cgraph.
5878         (optimize_inline_calls): Verify that datastructure still match.
5879         (save_body): New function.
5880         * tree-inline.h (save_body): New.
5881         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5882         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5883         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5884
5885 2004-04-01  Serge Belyshev  <1319@bot.ru>
5886
5887         PR target/14702
5888         * config/i386/i386.md: fix source operand constraints in
5889         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5890
5891 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5892
5893         * fold-const.c (folda): Preserve types of comparisons.
5894
5895 2004-04-01  Richard Henderson  <rth@redhat.com>
5896
5897         * toplev.c (backend_init): Move init_optimization_passes call ...
5898         (lang_dependent_init): ... here.
5899
5900 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5901             Jakub Jelinek  <jakub@redhat.com>
5902
5903         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5904         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5905         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5906         * configure: Rebuilt.
5907         * config.in: Rebuilt.
5908         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5909         (stage2-start, stage3-start, stage4-start): Likewise.
5910         (stageprofile-start, stagefeedback-start): Likewise.
5911
5912 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5913
5914         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5915         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5916         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5917         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5918         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5919         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5920         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5921         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5922         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5923         * config/sparc/t-linux: Removed.
5924
5925 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5926
5927         PR c++/14755
5928         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5929         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5930
5931 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5932
5933         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5934         * stor-layout.c (layout_decl): Likewise.
5935         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5936         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5937         * print-tree.c (print_node): Handle various used of unsigned_flag.
5938         * tree.def (BIT_FIELD_REF): Update comment.
5939         * tree.h (TREE_UNSIGNED): Deleted.
5940         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5941
5942 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5943
5944         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5945         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5946         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5947         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5948         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5949         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5950         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5951         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5952         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5953         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5954         REAL_TYPE, not INTEGER_TYPE.
5955         (layout_type, case VECTOR_TYPE): Simplify code.
5956         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5957         * tree.h: Update comments.
5958         (STRIP_NOPS): Use TYPE_UNSIGNED.
5959         (TYPE_UNSIGNED): New macro.
5960         (TYPE_TRAP_SIGNED): Remove now redundant check.
5961         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5962
5963 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5964
5965         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5966
5967 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5968
5969         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5970         Add darwin-fpsave.asm, darwin-vecsave.asm,
5971         and darwin-world.asm.
5972         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5973         as the asm files contain altivec instructions.
5974         * config/rs6000/darwin-fpsave.asm: New file.
5975         * config/rs6000/darwin-vecsave.asm: New file.
5976         * config/rs6000/darwin-world.asm: New file.
5977
5978 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5979
5980         * gengtype-yacc.y (option, stringseq): Add missing
5981         terminating semicolon.
5982
5983 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5984
5985         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5986         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
5987         tls_dtprel_ha_32, tls_dtprel_ha_64,
5988         tls_dtprel_lo_32, tls_dtprel_lo_64,
5989         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
5990         tls_tprel_ha_32, tls_tprel_ha_64,
5991         tls_tprel_lo_32, tls_tprel_lo_64,
5992         tls_got_tprel_32, tls_got_tprel_64,
5993         tls_tls_32, tls_tls_64): Replace register_operand with
5994         gpc_reg_operand.
5995
5996 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
5997
5998         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
5999         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6000         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6001         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6002         *ctrdi_internal6): Replace register_operand with
6003         nonimmediate_operand.
6004
6005 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6006
6007         * fold-const.c (fold): Reassociate multiply expression
6008         with an adjacent non-multiply expression to use
6009         architecture's multiply-add instruction.
6010
6011 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6012
6013         * gengtype.c (create_option): New function.
6014         * gengtype.h: Prototype it.
6015         * gengtype-yacc.y (stringseq): New rule.
6016         (option): Use create_option.  Add new bare ID production.  Use
6017         stringseq, not STRING directly.
6018
6019         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6020         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6021         * varray.h, config/alpha/alpha.c:
6022         Use new shorter form of GTY markers.
6023
6024         * doc/gty.texi: Rewrite.
6025
6026 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6027
6028         * config/darwin.c (machopic_function_base_name):
6029         Remove current_name and getting the name of the
6030         current function.
6031
6032 2004-03-30  Nick Clifton  <nickc@redhat.com>
6033
6034         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6035         range, and increase the forward branch range, to allow for
6036         the fact that the PC will be off by 4.
6037
6038 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6039
6040         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6041
6042 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6043
6044         * config/rs6000/rs6000.c (output_vec_const_move):
6045         Find all cases of EASY_VECTOR_15_ADD_SELF.
6046         (easy_vector_constant_add_self): Accept
6047         all vector constant loadable by vsplt* and vadd*.
6048         (easy_vector_same): Use easy_vector_splat_const.
6049         (easy_vector_const): Use easy_vector_splat_const.
6050         (easy_vector_splat_const): New function.
6051         (gen_easy_vector_constant_add_self): New function.
6052
6053         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6054         New prototype.
6055
6056         * config/rs6000/altivec.md (movv4si splitter): Change to
6057         emit move insn with halfed vector constant.
6058         (*movv8hi splitter): Likewise.
6059         (*movv16qi splitter): Likewise.
6060
6061 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6062
6063         PR 11591
6064         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6065         Allow any offset to argument pointer in no-strict case.
6066
6067 2004-03-30  Jan Hubicka  <jh@suse.cz>
6068
6069         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6070         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6071         dump file in non-unit-at-a-time mode.
6072
6073 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6074
6075         * config/cris/cris.h: Correct #ifdef to test for
6076         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6077         HAVE_AS_MUL_BUG_ABORT_OPTION.
6078
6079 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6080
6081         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6082         the address inside the old RTL.
6083
6084 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6085
6086         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6087         (struct c_binding, struct c_scope): Add chain_next
6088         attributes to GTY markers.
6089         (struct lang_identifier, struct lang_tree_node): Define
6090         here...
6091         * c-tree.h: ... not here.  No longer need to declare struct
6092         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6093         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6094         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6095
6096         PR 14734, 11944
6097         * c-decl.c (get_parm_info): If error_mark_node is encountered
6098         in the bindings chain, unbind and discard it; don't abort.
6099
6100 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6101             Dorit Naishlos <dorit@il.ibm.com>
6102
6103         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6104         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
6105
6106 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
6107
6108         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
6109
6110         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
6111         (m68hc11_attribute_table): New attribute "page0" to mark a global
6112         variable as being allocated from within page0 section.
6113         (m68hc11_encode_label): New function.
6114         (m68hc11_strip_name_encoding): New function.
6115         (m68hc11_page0_symbol_p): New function.
6116         (m68hc11_indirect_p): Accept global variables marked in page0.
6117         (m68hc11_encode_section_info): Lookup "page0" attribute.
6118
6119         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
6120         represents access to page0 variables.
6121
6122         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
6123         ("*logicalsi3_silshl16_zext"): Likewise.
6124         ("*ashldi3_const32"): Likewise.
6125         (peephole2 ashift): Likewise.
6126
6127 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6128
6129         * c-tree.h (C_DECL_REGISTER): New.
6130         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
6131         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
6132         (build_array_ref, c_mark_addressable): Set and use it.
6133         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
6134         Allow structures with volatile fields to be declared register.
6135         Don't check TREE_ADDRESSABLE before warning about taking address
6136         of register.
6137         * c-decl.c (finish_decl): Don't allow structures with volatile
6138         fields to be placed in named register.
6139         * doc/trouble.texi: Remove reference to structures with volatile
6140         fields in registers.
6141
6142 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6143
6144         * function.c (thread_prologue_and_epilogue): Move
6145         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
6146         before the epilogue.
6147
6148 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6149
6150         * expr.c (store_constructor): Use gen_int_mode to correctly
6151         sign-extend CONST_INT value.
6152
6153 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6154
6155         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
6156         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
6157         * doc/extend.texi: Likewise.
6158
6159 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
6160
6161         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
6162           with TYPE_ORIG_SIZE_TYPE.
6163
6164 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
6165
6166         PR 14219
6167         * c-typeck.c (build_binary_op): Do not allow comparisons of
6168         vectors.
6169
6170 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
6171
6172         * config.gcc: Remove sparc-tti-*.
6173         * config/sparc/pbd.h: Delete.
6174
6175         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
6176         * config/sparc/aout.h: Likewise.
6177
6178         * config/sparc/sparc.h: Remove if 0'd code.
6179         * config/sparc/sparc.md (call): Remove if 0'd code.
6180         (call_value): Likewise.
6181         (nonlocal_goto): Likewise.
6182         (unimp_insn): Delete.
6183
6184 2004-03-25  Roger Sayle  <roger@eyesopen.com>
6185
6186         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
6187         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
6188
6189 2004-03-25  Richard Henderson  <rth@redhat.com>
6190
6191         PR 11527
6192         * c-typeck.c (pop_init_level): Emit pending init elements earlier
6193         rather than later.
6194
6195 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6196
6197         * builtins.c (fold_builtin): Fix error in last change.
6198
6199 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
6200
6201         * config/mips/mips.h: Formatting fix.
6202
6203 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6204
6205         * builtins.def: Add ctype builtins.
6206         * doc/extend.texi: Likewise.
6207
6208 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6209
6210         * builtins.c (fold_builtin): Add new builtin optimizations for
6211         sqrt and/or cbrt.
6212         * fold-const.c (fold): Likewise.
6213
6214 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
6215
6216         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
6217         (rs6000_sched_groups): New variable.
6218         (processor_target_table): Add power5.
6219         (rs6000_override_options): Set rs6000_sched_insert_nops,
6220         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
6221         from rs6000_sched_groups.
6222         (output_cbranch): Use rs6000_always_hint.
6223         (rs6000_variable_issue): Use rs6000_sched_groups.
6224         (rs6000_adjust_cost): Add CPU_POWER5.
6225         (is_microcoded_insn): Use rs6000_sched_groups.
6226         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
6227         Return 2 for POWER5 cracked instructions.
6228         (is_cracked_insn): Use rs6000_sched_groups.
6229         (is_branch_slot_insn): Use rs6000_sched_groups.
6230         (rs6000_issue_rate): Add CPU_POWER5.
6231         (rs6000_sched_finish): Use rs6000_sched_groups.
6232         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
6233         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
6234         (DEFAULT_SCHED_COSTLY_DEP): Delete.
6235         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
6236         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
6237         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
6238         * config/rs6000/power5.md: New file.
6239         * doc/invoke.texi: Add power5 option.
6240
6241 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
6242
6243         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
6244         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
6245         * doc/invoke.texi: Fix a typo.
6246
6247 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
6248
6249         PR optimization/9707.
6250         * stmt.c (emit_case_nodes): Emit equality comparisons instead
6251         of recursing if both children are single-valued cases with no
6252         children.
6253
6254 2004-03-25  Paul Brook  <paul@codesourcery.com>
6255
6256         * config/arm/arm.c (vfp_print_multi): Remove.
6257         (arm_output_fldmx): New function.
6258         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
6259         (arm_expand_prologue): Update to match.
6260         (arm_get_vfp_saved_size): New Function.
6261         (arm_get_frame_offsets): Use it.
6262         (arm_output_epilogue): Use new functions.
6263
6264 2004-03-24  Richard Henderson  <rth@redhat.com>
6265
6266         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
6267         (reg_known_value, reg_known_value_size): Likewise; make static.
6268         (reg_known_equiv_p): Make static.
6269         (clear_reg_alias_info): Update for new indexing.
6270         (get_reg_known_value, set_reg_known_value): New.
6271         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
6272         (canon_rtx): Use them.
6273         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
6274         Don't play queer offsetting games with reg_known_value and
6275         reg_known_equiv_p.
6276         (end_alias_analysis): Free reg_known_value with gc.
6277         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
6278         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
6279         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
6280         functions instead.
6281
6282 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
6283
6284         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
6285         config/i386/mmintrin.h: Update copyright.
6286
6287 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6288
6289         * configure.ac: Add --enable-werror-always (for top level bootstrap
6290         support).
6291         * configure: Regenerate.
6292
6293 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
6294
6295         * objc/objc-act.c (objc_comptypes): Treat comparisons
6296         between 'Class' and '<class> *' as explicitly invalid.
6297
6298 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
6299
6300         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
6301         (-fprofile-values): Add enabled with profile-{generate,use}.
6302         (-fvpt): Same.
6303         (-ftracer): Add enabled with profile-use.
6304         (-funit-at-a-time): Add enabled at -O2,-O3.
6305         (-funroll-loops): Add enabled with profile-use.
6306         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
6307         (max-gcse-passes): Mention default.
6308         (max-cse-path-length): Mention default.
6309
6310 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6311
6312         * Makefile.in (STRICT2_WARN): Reorder.
6313         * configure.ac: Check for -Wold-style-definition, and use it
6314         in strict1_warn if it's available.
6315         * configure: Regnerate.
6316
6317 2004-03-24  Paul Brook  <paul@nowt.org>
6318
6319         * config.gcc <arm>: Add --with-abi=
6320         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
6321         thumb_far_jump_used): Remove prototypes.
6322         (arm_needs_doubleword_align): Add prototype.
6323         (thumb_compute_initial_elimination_offset): Ditto.
6324         * config/arm/arm.c (arm_get_frame_offsets): New function.
6325         (use_return_insn, output_return_instruction, arm_output_epilogue,
6326         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
6327         arm_expand_prologue, thumb_expand_epilogue): Use it.
6328         (arm_abi, target_abi_name, all_arm_abis): New variables.
6329         (arm_override_options): Set them.  Set structure padding for AAPCS.
6330         (arm_return_in_memory): Update ABI check.
6331         (arm_init_cumulative_args): Initialize can_split.
6332         (arm_needs_doubleword_align): New function.
6333         (arm_function_arg): Don't split args after pushing to stack. Handle
6334         doubleword/even reg alignment.
6335         (arm_va_arg): Handle all doubleword aligned args.
6336         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
6337         on ABI, not CPU.
6338         (arm_compute_save_reg0_reg12_mask): Fix comment.
6339         (thumb_get_frame_size, thumb_get_frame_size): Remove.
6340         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
6341         value for alignment.
6342         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
6343         to match.
6344         (thumb_compute_initial_elimination_offset): New function.
6345         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
6346         unneccessary rounding.
6347         * config/arm/arm.h (target_abi_name): Declare.
6348         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
6349         arm_abi_type, ARM_DEFAULT_ABI): Define.
6350         (ARM_FLAG_ATPCS): Remove.
6351         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
6352         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
6353         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
6354         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
6355         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
6356         Contitionalize on ABI, not CPU.
6357         (struct arm_stack_offsets): Define.
6358         (struct machine_function): Add stack_offsets.  Remove frame_size.
6359         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
6360         pushed.
6361         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
6362         doubleword alignment.
6363         (THUMB_INITIAL_ELIMINATION_OFFSET,
6364         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
6365         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
6366         * config/arm/arm.md (align_8): Enable for all targets.
6367         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
6368         (ARM_DEFAULT_ABI): Define.
6369         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
6370         -mstructure-size-boundary.
6371
6372 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6373
6374         * configure.ac: Check for -Wno-variadic-macros; don't use
6375         -pedantic (in stage 1 or a simple 'make all') unless it's available,
6376         and if it's available, use it.  Also, clean up check for
6377         -Wno-long-long.
6378         * configure: Regenerate.
6379
6380 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6381
6382         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
6383         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
6384         (MULTILIB_DEFAULTS): Use it.
6385         (MIPS_CPU_STRING_DEFAULT): Remove.
6386         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
6387         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
6388         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
6389         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
6390         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
6391         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
6392         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
6393         accordingly.
6394
6395 2004-03-24  DJ Delorie  <dj@redhat.com>
6396             Richard Sandiford  <rsandifo@redhat.com>
6397
6398         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
6399         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
6400         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
6401         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
6402         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
6403         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
6404         if TARGET_FIX_VR4122.
6405         * config/mips/mips.md (define_attr length): Account for nops inserted
6406         after macc and dmult when using -mfix-vr4122-bugs.
6407         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
6408         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
6409         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
6410         * config/mips/vr4122-div.S: New file.
6411         * doc/invoke.texi: Document -mfix-vr4122-bugs.
6412
6413 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6414
6415         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
6416         (TARGET_MIPS4130): New macro.
6417         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
6418         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
6419         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
6420         with PROCESSOR_R4130.
6421         * config/mips/mips.md (define_attr cpu): Add r4130.
6422         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
6423
6424 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6425             Richard Sandiford  <rsandifo@redhat.com>
6426
6427         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
6428
6429 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
6430
6431         PR preprocessor/14438
6432         * cpplib.c (do_pragma): Remove line_change call after pragma
6433         handler.
6434
6435 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
6436
6437         * doc/extend.texi (ARM Built-in Functions): Replace with correct
6438         declarations.
6439
6440 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6441
6442         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
6443         if flag_unsafe_math_optimizations.
6444         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
6445         and TARGET_80387 expand using truncdfsf2_noop pattern.
6446         (truncxfsf2): Likewise using truncxfsf2_noop.
6447         (truncxfdf2): Likewise using truncxfdf2_noop.
6448         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
6449
6450 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
6451
6452         * hooks.c (hook_constcharptr_tree_null): New hook.
6453         * hooks.h (hook_constcharptr_tree_null): New prototype.
6454         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
6455         * target.h (mangle_fundamental_type): New target hook.
6456         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
6457         target hook at rs6000_mangle_fundamental_type.
6458         (rs6000_mangle_fundamental_type): New function.
6459         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
6460
6461 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
6462
6463         PR 12267, 12391, 12560, 13129, 14114, 14133
6464         * c-tree.h: Forward declare struct c_binding.  Declare
6465         c_override_bindings_to_false.  Update prototypes.
6466         (struct lang_identifier): Update comments.  Change fields to be
6467         struct c_binding *.
6468         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
6469         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
6470         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
6471         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
6472         * c-common.h: Update prototypes.
6473         * c-decl.c (struct c_scope): Update commentary.  Remove names,
6474         names_last, parms, parms_last, tags, and shadowed fields.  Add
6475         bindings and depth fields.
6476         (scope_freelist): Move to more appropriate location.
6477         (c_print_identifier): Update for changes to struct lang_identifier.
6478         (objc_mark_locals_volatile): Update for new bindings structures.
6479         (global_bindings_p): Honor c_override_global_bindings_to_false.
6480         (pushlevel): Rename to push_scope; take no arguments; use the
6481         scope_freelist; initialize scope->depth and check for overflow.
6482         (poplevel): Rename to pop_scope; totally rewritten for new bindings
6483         structures.
6484         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
6485         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
6486         Improve some commentary.  Adjust handling of forward parm decls.
6487         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
6488         Preserve C_DECL_IN_EXTERNAL_SCOPE.
6489         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
6490         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
6491         decls.  Rewrite for new bindings structures.  Improve commentary.
6492         Eliminate the copy_node call.
6493         (implicit_decl_warning): Use the "diag" idiom (as seen in
6494         locate_old_decl) to reduce code duplication; call locate_old_decl
6495         if appropriate.  Relocate to remove need for forward declaration.
6496         (implicitly_declare): Adjust for new bindings structures.  Kludge
6497         around Objective-C not-really-builtin functions.
6498         (undeclared_variable): Improve diagnostics.  If current_function_decl
6499         is nonnull but current_function_scope is null, use current_scope.
6500         Use bind.
6501         (lookup_tag): Adjust for new bindings structures.  Kludge around
6502         Objective-C's tag declarations that wind up in the external scope.
6503         (lookup_name): Adjust for new bindings structures.  Kludge around
6504         c-common.c's pseudo-typedefs that wind up in the external scope.
6505         (lookup_name_current_level): Rename lookup_name_in_scope; take a
6506         second argument indicating the scope to examine; rewrite for
6507         new bindings structures.
6508         (c_init_decl_processing): Adjust for renamed functions.  Do not
6509         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
6510         First scope pushed is the external scope, not the global scope.
6511         (builtin_function): Use bind, not pushdecl.  Adjust other bits
6512         for new data structures.  Keep track of builtins that should be
6513         made visible automatically.
6514         (start_decl): Adjust diagnostics.  Remove unnecessary call to
6515         expand_decl.
6516         (grokparms): Return 0 if arg_types is error_mark_node.
6517         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
6518         reversed sense.  Rewrite for new bindings structures.  Do not
6519         leave any decls in the scope, to prevent pop_scope from doing
6520         contradictory things with them.
6521         (finish_struct, finish_enum): Remove redundant diagnostics.
6522         (build_enumerator): Don't cascade diagnostics for error_mark_node.
6523         Mark location where -pedantic changes the meaning of the program.
6524         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
6525         parameter decls into the function's scope structure using bind.
6526         Warn here about function definitions in the wrong style.
6527         Adjust diagnostics.
6528         (store_parm_decls): Correct the determination of whether a
6529         function was defined with a prototype.
6530         (c_write_global_declarations): Operate on all file decls and on
6531         the external scope.  Split body of the loop to...
6532         (c_write_global_declarations_1): ... this new function, to avoid
6533         code duplication.
6534         (truly_local_externals, first_builtin_decl, last_builtin_decl)
6535         (make_scope, pop_scope, in_parm_level_p, set_block)
6536         (any_external_decl, record_external_decl, bind_label, getdecls)
6537         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
6538         (c_reset_state): Delete.
6539         (visible_builtins, c_override_global_bindings_to_false)
6540         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
6541         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
6542         (external_scope, binding_freelist, bind, free_binding_and_advance)
6543         (push_file_scope, pop_file_scope): New.
6544         (pushtag, pushdecl_top_level, lookup_label, declare_label)
6545         (define_label, c_make_fname_decl, finish_decl)
6546         (mark_forward_parm_decls, build_compound_literal)
6547         (grokdeclarator, start_function, check_for_loop_decls)
6548         (identifier_global_value, record_builtin_type): Minor adjustments
6549         for new bindings structures.  Improve diagnostics and commentary.
6550         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
6551         pushlevel/poplevel respectively.
6552         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
6553         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
6554         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
6555         correct loop over multiple translation units; call fatal_error if
6556         requested to compile more than one file at once.  (This disables
6557         IMA temporarily - an up-front error being preferable to a crash.)
6558         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
6559         (all actions): Adjust calls to pushlevel/poplevel.
6560         (parsing_iso_function_signature): Delete.
6561         (extdef_1): Fold into extdef.
6562         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
6563         warn here about function definitions in the wrong style.
6564         (after_tyle_declarator, parm_declarator_starttypename)
6565         (parm_declarator_nostarttypename, notype_declarator): Remove
6566         commented-out productions.
6567         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
6568         an empty TREE_LIST node.  Adjust calls to get_parm_info.
6569         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
6570         to suppress -Wold-style-definition after this error.
6571         (c_parse_file): Don't clear the binding stack or call
6572         finish_fname_decls here.  Correct comment.
6573         * c-typeck.c (same_translation_unit_p): Export.
6574         (common_type): Use c_override_global_bindings_to_false, not
6575         pushlevel/poplevel/declare_parm_level.
6576         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
6577         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
6578         and LANG_HOOKS_GETDECLS with do-nothing stubs.
6579         * objc/objc-lang.c: Likewise.
6580         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
6581         get_parm_info.
6582         (OBJC_VOID_AT_END): Delete; replace all uses
6583         with void_list_node.
6584         (generate_forward_declaration_to_string_table): Delete.
6585         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
6586
6587         * coverage.c (create_coverage): Don't pushdecl anything.
6588         * langhooks.c (lhd_clear_binding_stack): Call
6589         lang_hooks.decls.poplevel, not poplevel.
6590         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
6591         circular list rather than going into an infinite loop.
6592
6593 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
6594
6595         * optabs.c (expand_binop): When synthesizing double word rotates
6596         from single word shifts, use a new register target if the provided
6597         target is not a REG already.
6598
6599 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6600
6601         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
6602         * c-common.c (handle_mode_attribute): Add extra arg to
6603         build_pointer_type_for_mode and build_reference_type_for_mode.
6604         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
6605         for INTEGER_CST.
6606         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
6607         Chain pointers via TYPE_NEXT_PTR_TO.
6608         (build_reference_type_for_mode): Similarly.
6609         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
6610         and build_reference_type_for_mode.
6611         (tree_check4_failed): New function.
6612         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
6613         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
6614         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
6615         Add check.
6616
6617 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6618
6619         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
6620         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
6621         when both A and B are nonnegative.
6622         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
6623         nonzero.
6624
6625 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6626
6627         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
6628         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
6629
6630 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6631
6632         PR optimization/14669
6633         * fold-const.c (fold): Only unwiden integer comparisons for equality
6634         and inequality operators, or when the signedness doesn't change.
6635
6636 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6637
6638         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6639         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6640         * config/sparc/t-linux: New file.
6641
6642 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6643
6644         * gcse.c (can_assign_to_reg_p): New function, split out from...
6645         (want_to_gcse_p): ...here.
6646         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6647         the rhs of a store.
6648
6649 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6650
6651         * c-typeck.c (same_translation_unit_p): Fix pasto.
6652
6653 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6654
6655         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6656         (PARAM_MAX_SCHED_REGION_INSNS): New.
6657         * sched-rgn.c: Include params.h
6658         (MAX_RGN_BLOCKS): Delete.
6659         (MAX_RGN_INSNS): Delete.
6660         (too_large): Return bool.  Convert to PARAM_VALUE.
6661         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6662         * doc/invoke.texi (param): Document max-sched-region-blocks and
6663         max-sched-region-insns.
6664
6665 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6666
6667         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6668         for base types.
6669
6670 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6671
6672         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6673         change.
6674
6675 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6676
6677         PR c/14069
6678         * c-decl.c (finish_struct): Change type of incorrect flexible array
6679         field into error_mark_node.
6680
6681 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6682
6683         PR target/14580
6684         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6685         who are not local for Darwin PIC.
6686
6687 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6688
6689         * regrename.c (regrename_optimize): Set regs_ever_live for all
6690         registers introduced as replacement.
6691
6692 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6693
6694         PR middle-end/14470
6695         * expr.c (mark_queue): New function.
6696         (emit_insns_enqueued_after_mark): New function replacing
6697         emit_queue.  Clear the body of emitted queued insns.
6698         (emit_queue): Call emit_insns_enqueued_after_mark.
6699         (store_expr): Mark the increment queue on entry.  Emit
6700         only the incrementations queued when expanding the source.
6701
6702 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6703
6704         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6705         of top level bootstrap, and consistency).  Reindent.
6706         * configure: Regenerate.
6707
6708 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6709
6710         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6711         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6712         unnecessary casts.
6713
6714 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6715
6716         PR target/14291
6717         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6718         __MINGW32__.
6719
6720 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6721
6722         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6723         to nonimmediate_operand.
6724         ("*doloop_di"): Likewise.
6725
6726 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6727
6728         * real.h (struct real_value): Use the same type for all
6729         bitfields.  Rename exp to uexp.
6730         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6731         Adjust all uses of exp...
6732         * builtins.c: ... here, ...
6733         * emit-rtl.c: ... here, and ...
6734         * real.c: ... and here.
6735
6736 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6737
6738         * pretty-print.c (pp_base_maybe_space): New function.
6739         * pretty-print.h (pp_base_maybe_space): Declare.
6740         (pp_maybe_space): New macro.
6741
6742 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6743
6744         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6745
6746 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6747
6748         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6749         of using register multiplication cost.
6750         (expand_mult): Adapt choose_mult_variant call.
6751         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6752         of MODE; pass appropriate cost bound.  Adjust result when
6753         performing signed multiplication by a negative constant.
6754         Don't use intermediate modes larger than word_mode.
6755
6756 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6757
6758         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6759         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6760         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6761         * explow.c (expr_size): Likewise.
6762         * expr.h (placeholder_list, find_placeholder): Deleted.
6763         * expr.c (store_constructor): Likewise.
6764         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6765         (placeholder_list, find_placeholder): Deleted.
6766         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6767         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6768         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6769         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6770         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6771         Likewise.
6772         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6773         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6774         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6775         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6776         Clean up by using first_rtl_op.
6777         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6778         (substitute_placeholder_in_expr): New function.
6779         * tree.def (WITH_RECORD_EXPR): Deleted.
6780         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6781         (substitute_placeholder_in_expr): New.
6782
6783 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6784
6785         * dojump.c (prefer_and_bit_test): Fix which part of
6786         the and_test is replaced.
6787
6788 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6789
6790         * frontends.texi: Add missing line.
6791
6792 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6793             Chris Devers  <cdevers@pobox.com>
6794             Joseph S. Myers  <jsm@polyomino.org.uk>
6795
6796         * doc/frontends.texi: Rewrite.
6797         * doc/gcc.texi: Update last modification date.
6798
6799 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6800
6801         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6802         message before redirecting the edge.
6803
6804 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6805
6806         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6807         flag.
6808         * explow.c (force_not_mem): Set REG_POINTER flag according to
6809         MEM_POINTER one.
6810         * rtl.h (MEM_POINTER): New macro.
6811         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6812         for MEM_POINTER.
6813
6814 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6815
6816         PR target/13889
6817         * cse.c (fold_rtx): Avoid substituting constants into unary
6818         conversion operations.
6819
6820 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6821
6822         * fold-const.c (fold): Replace "expr" with "t".
6823
6824 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6825
6826         PR c/12373
6827         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6828         DECL_ORIGINAL_TYPE if there isn't one.
6829
6830 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6831
6832         * fold-const.c (fold): Replace "final_type" with "type".
6833         Remove variable "final_type".
6834
6835 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6836
6837         * fold-const.c (fold): Constify "type".
6838         Replace "TREE_TYPE (t)" with "type".
6839
6840 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6841
6842         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6843         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6844         via (*targetm.foo) () with targetm.foo ().
6845
6846 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6847
6848         PR other/14630
6849         * doc/install.texi: Add info directory category and entry.
6850
6851 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6852
6853         * fold-const.c (fold): Replace "t" with "tem" where it is used
6854         as a temporary variable.  Remove "orig_t" and all of its uses.
6855
6856 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6857
6858         * fold-const.c (fold): Remove variable "invert".
6859         Move the handling of relational expressions that can be folded
6860         to a constant ...
6861         (fold_relational_const): ... here.
6862         (tree_expr_nonzero_p): New.
6863
6864 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6865
6866         PR c/14635
6867         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6868         DEF_GCC_BUILTIN.
6869
6870 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6871
6872         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6873         (GTFILES): Add $(srcdir)/dojump.h.
6874         (gt-dojump.h): New dependency.
6875         * dojump.c (and_reg, and_test, shift_test): New static variables.
6876         (prefer_and_bit_test): New function.
6877         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6878
6879 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6880
6881         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6882         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6883         reorg.c, tree.h: Fix comment typos.
6884
6885 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6886
6887         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6888         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6889         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6890         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6891         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6892         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6893         targetm.foo ().
6894
6895 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6896
6897         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6898         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6899         always_inline attribute.
6900         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6901         Treat expansion as completed even if literal argument is
6902         invalid (so that other expansions are not tried in vain).
6903
6904 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6905
6906         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6907         const0_rtx.
6908
6909 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6910
6911         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6912         ...
6913         (fold_abs_const): ... here.
6914
6915 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6916
6917         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6918
6919 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6920
6921         PR target/11520
6922         * config/avr/avr.md ("call_insn"): Handle explicit integer
6923         specially.
6924         (call_value_insn): Likewise.
6925
6926 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6927
6928         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6929
6930 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6931
6932         * fold-const.c (negate_expr): Move the handling of constants
6933         ...
6934         (fold_negate_const): ... here.
6935
6936 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6937
6938         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6939         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6940         * tree.c (debug_no_type_hash): Deleted.
6941         (type_hash_canon): Abort if passed a variant.
6942         Check lang_hooks.types.hash_types.
6943         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6944         (build_array_type): Remove unnecessary allocation of pointer type.
6945         (build_complex_type): Properly qualify resulting type.
6946
6947 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6948
6949         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6950
6951 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6952
6953         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6954         (expand_mult): ...here.
6955         (extract_high_half): New, split out from expand_mult_highpart.
6956         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6957         (expand_highpart): Evaluate the cost of a shift/add sequence,
6958         then see if any of the specialized optabs are cheaper.
6959
6960 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6961
6962         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6963
6964 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6965
6966         * convert.c (convert_to_real): Add more math builtins.
6967
6968 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6969
6970         * convert.c (convert_to_real): Reformat using switch stmt.
6971
6972 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6973
6974         * c-common.c (pointer_int_sum): Do not complain about using
6975         pointers to pointers-to-members.
6976
6977 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6978
6979         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6980         have moved to the target hooks structure".
6981
6982 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6983
6984         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6985         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6986         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
6987         Likewise.
6988         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
6989         Likewise.
6990         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
6991         rm7_fp_quick): Likewise.
6992         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
6993         rm9k_fquick): Likewise.
6994         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
6995         Likewise.
6996         (ir_sr70_icmp): Delete.
6997
6998 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6999
7000         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7001         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7002         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7003         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7004         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7005         Protect with proper check.
7006         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7007         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7008         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7009         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7010         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7011         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7012         not TYPE_FIELDS.
7013         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7014
7015 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7016
7017         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7018         dest is set between beginning and current insn.
7019
7020 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7021
7022         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7023         visible "static" identifiers "extern" in a local scope.
7024         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7025         post-increments/decrements.
7026
7027 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7028
7029         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7030         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7031         (xtensa_va_start): Remove assignment to current_function_arg_words.
7032
7033 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7034
7035         * alias.c (record_set): Detect the case where a register is assigned
7036         a new value that has the same base term as the old one.
7037
7038 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7039
7040         * doloop.c: Removed.
7041         * loop-doloop.c: New file.
7042         * Makefile.in (doloop.o): Remove.
7043         (loop-doloop.o): New.
7044         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7045         * cfgloopanal.c (get_loop_level): New function.
7046         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7047         is leaved immediatelly.
7048         * loop.c (strength_reduce): Do not call doloop optimization.
7049         * loop.h (LOOP_BCT): Removed.
7050         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7051         (rest_of_handle_loop2): Call doloop_optimize_loops.
7052         (rest_of_compilation): Test for optimizations moved to
7053         rest_of_handle_loop2.
7054
7055 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7056
7057         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7058         for mixed mode.
7059         (rs6000_emit_prologue): Ditto.
7060         (rs6000_emit_epilogue): Ditto.
7061         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7062         macro for mixed mode.
7063
7064 2004-03-18  Jan Hubicka  <jh@suse.cz>
7065
7066         * predict.c (propagate_freq): Compute correctly frequency of
7067         EXIT_BLOCK.
7068
7069 2004-03-17  Eric Christopher  <echristo@redhat.com>
7070
7071         * builtins.c (apply_args_size): Use reg_raw_mode.
7072         (apply_result_size): Ditto.
7073
7074 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7075
7076         PR target/14620
7077         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7078
7079 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7080
7081         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7082         32-bit builds when defaulting to 32-bit.
7083
7084 2004-03-17  Jan Hubicka  <jh@suse.cz>
7085
7086         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7087         array.
7088
7089 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7090
7091         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7092         (hazard_nop): Change type to nop.
7093         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7094         Fix all uses.  Change arith to multi if more than one insn emitted.
7095         * config/mips/5400.md (ir_vr54_arith): Likewise.
7096         * config/mips/5500.md (ir_vr55_arith): Likewise.
7097         * config/mips/7000.md (rm7_int_other): Likewise.
7098         * config/mips/9000.md (rm9k_int): Likewise.
7099         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7100
7101 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7102
7103         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7104         to hold the subtype tree instead of recomputing it several times.
7105
7106 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
7107
7108         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
7109         CC_INVERT.
7110         * config/mn10300/mn10300.md (cc): Remove "invert".
7111
7112 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7113
7114         * builtins.c (integer_valued_real_p): Add builtin rint.
7115         (fold_builtin): Likewise.
7116         * convert.c (convert_to_real): Likewise.
7117
7118         * convert.c (convert_to_real): Fix typos in `long double'
7119         builtins.
7120
7121 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
7122
7123         PR c++/14481
7124         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
7125         generated COMPOUND_EXPRs.
7126
7127 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7128
7129         * config/h8300/t-rtems (h8300-*-rtems*): New.
7130
7131 2004-03-16  Eric Christopher  <echristo@redhat.com>
7132
7133         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
7134
7135 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7136
7137         * config/i386/i386-protos.h: Add a prototype for
7138         ix86_reverse_condition.
7139         * config/i386/i386.c (ix86_reverse_condition): New.
7140         * config/i386/i386.h (REVERSE_CONDITION): Use
7141         ix86_reverse_condition.
7142         * config/i386/i386.md: Use ix86_reverse_condition instead of
7143         REVERSE_CONDITION.
7144
7145 2004-03-16  J. Brobecker  <brobecker@gnat.com>
7146
7147         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
7148
7149 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
7150
7151         PR bootstrap/12974
7152         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
7153
7154 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7155
7156         * c-common.c (c_common_type_for_mode): Build vector types on
7157         demand.
7158         (handle_mode_attribute): Deprecate using the mode attribute
7159         to create vector types.  Fix indentation.
7160         (vector_type_node_list): Remove.
7161         (handle_vector_size_attribute): Create vector types on demand.
7162         Strip a NON_LVALUE_EXPR from the attribute if there is one.
7163         * c-typeck.c (comptypes): Make vector types compatible if they
7164         have the same underlying mode.
7165         (convert_for_assignment): Use comptypes to convert between
7166         vector types.
7167         * tree.c (build_common_tree_nodes_2): Do not create vector types.
7168         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
7169         vector types.
7170         * tree.h: Remove vector types.
7171         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
7172         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
7173         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
7174         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
7175         * doc/extend.texi (Vector Types): Document how to use the
7176         vector_size attribute to create vectors, rather than mode.
7177
7178         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
7179         * config/i386/emmintrin.h: Likewise.
7180         * config/i386/mmintrin.h: Likewise.
7181         * config/i386/xmmintrin.h: Likewise.
7182         * config/sh/ushmedia.h: Likewise.
7183
7184 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7185
7186         * config/freebsd-spec.h, config/arc/arc-protos.h,
7187         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
7188         config/arm/linux-gas.h, config/arm/semi.h,
7189         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
7190         config/ia64/freebsd.h, config/mips/7000.md,
7191         config/mips/9000.md, config/ns32k/ns32k-protos.h,
7192         config/sparc/pbd.h: Update copyright.
7193
7194 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7195
7196         PR target/14577
7197         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
7198
7199 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7200
7201         * combine.c (combine_simplify_rtx): Remove the "last"
7202         parameter and its documentation.  Adjust recursive calls.
7203         (simplify_logical): Always perform the only simplification
7204         controlled by "last", if the simplified expression is
7205         actually different.
7206         (try_combine): Do not pass the "last" parameter to
7207         combine_simplify_rtx.
7208
7209 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
7210
7211         PR target/14599
7212         * config/mips/mips.md (UNSPEC_GP): New constant.
7213         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
7214         an UNSPEC instead of (reg $gp).
7215         (mips16_gp_pseudo_reg): Change accordingly.
7216         (print_operand): Print $gp directly when handling CONST_GP_P.
7217
7218 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
7219
7220         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
7221         * longlong.h: Make code 68060 clean when compiling for m68060.
7222
7223 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
7224
7225         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
7226         * doc/md.texi: Clarify description of "i" constraint.
7227
7228 2004-03-15  James E Wilson  <wilson@specifixinc.com>
7229
7230         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
7231         Split store into store, fpstore, fpidxstore.  Fix all uses.
7232         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
7233         Likewise.
7234         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
7235         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
7236         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
7237         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
7238         ir_sr70_fstore): Likewise.
7239
7240 2004-03-15  Richard Henderson  <rth@redhat.com>
7241
7242         PR middle-end/14535
7243         * except.c (collect_one_action_chain): Record action for cleanup
7244         outer of exception spec.
7245
7246 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
7247
7248         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7249         Fix the check for abort and only do the mmap if we can.
7250
7251 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
7252
7253         * config/sparc/sparc.h: Rework comments about the code model
7254         in 64-bit environment and the mode 'Pmode'.
7255         * doc/invoke.texi (SPARC options): Rework description of the
7256         different code models supported in 64-bit environment.
7257
7258 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
7259
7260         * defaults.h (REVERSIBLE_CC_MODE): Define.
7261         * jump.c (reversed_comparison_code_parts): Don't check if
7262         REVERSIBLE_CC_MODE is defined.
7263
7264 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
7265
7266         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
7267         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
7268         hosthooks.h, params.h, ra-colorize.c, web.c,
7269         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
7270         config/avr/avr-protos.h, config/avr/avr.md,
7271         config/fr30/fr30-protos.h, config/fr30/fr30.md,
7272         config/h8300/fixunssfsi.c, config/i386/darwin.h,
7273         config/i386/freebsd.h, config/i386/freebsd64.h,
7274         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
7275         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
7276         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
7277         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
7278         config/pa/pa64-regs.h, config/rs6000/aix41.h,
7279         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
7280         config/sparc/aout.h, config/sparc/freebsd.h,
7281         config/sparc/litecoff.h, config/vax/vax-protos.h,
7282         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
7283         copyright.
7284
7285 2004-03-15  Paul Brook  <paul@codesourcery.com>
7286
7287         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
7288
7289 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7290
7291         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
7292         (pp_c_cv_qualifier): Document.
7293         (pp_c_space_for_pointer_operator): Likewise.
7294         (pp_c_integer_constant): Likewise.
7295         (pp_c_identifier): Likewise.
7296         (pp_c_init_declarator): Don't print function body.
7297
7298 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7299
7300         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
7301         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
7302         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
7303         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
7304         wording and grammar.
7305
7306 2004-03-14  Roger Sayle  <roger@eyesopen.com>
7307
7308         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
7309         with lang_hooks.foo ().
7310         * builtins.c (expand_builtin_va_arg): Likewise.
7311         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
7312         c_common_type_for_mode, c_common_nodes_and_builtins,
7313         handle_mode_attribute, handle_vector_size_attribute): Likewise.
7314         * c-convert.c (convert): Likewise.
7315         * c-format.c (check_format_types): Likewise.
7316         * c-objc-common.c (c_tree_printer): Likewise.
7317         * c-typeck.c (build_unary_op, build_conditional_expr,
7318         build_binary_op): Likewise.
7319         * calls.c (try_to_integrate, expand_call,
7320         emit_library_call_value_1): Likewise.
7321         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
7322         Likewise.
7323         * cgraphunit.c (record_call_1, cgraph_analyze_function,
7324         cgraph_expand_function): Likewise.
7325         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
7326         * coverage.c (build_fn_info_type, build_ctr_info_type,
7327         build_gcov_info, create_coverage): Likewise.
7328         * dbxout.c (dbxout_init): Likewise.
7329         * diagnostic.c (diagnostic_report_current_function): Likewise.
7330         * dojump.c (do_jump): Likewise.
7331         * dwarf2out.c (dwarf2_name): Likewise.
7332         * except.c (init_eh): Likewise.
7333         * explow.c (expr_size, int_expr_size): Likewise.
7334         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
7335         Likewise.
7336         * expr.c (store_expr, store_constructor, safe_from_p,
7337         expand_expr_real, do_store_flag, try_casesi): Likewise.
7338         * function.c (push_function_context_to, pop_function_context_from,
7339         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
7340         put_var_into_stack, allocate_struct_function, current_function_name):
7341         Likewise.
7342         * integrate.c (copy_decl_for_inlining, expand_inline_function):
7343         Likewise.
7344         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
7345         lhd_print_error_function): Likewise.
7346         * opts.c (handle_option, decode_options): Likewise.
7347         * passes.c (open_dump_file): Likewise.
7348         * print-tree.c (print_node): Likewise.
7349         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
7350         expand_decl_cleanup, emit_case_nodes): Likewise.
7351         * stor-layout.c (variable_size): Likewise.
7352         * toplev.c (announce_function, wrapup_global_declarations,
7353         check_global_declarations, compile_file, default_tree_printer,
7354         process_options, lang_dependent_init, finalize): Likewise.
7355         * tree-dump.c (dequeue_and_dump): Likewise.
7356         * tree-inline.c (remap_decl, remap_block, copy_body_r,
7357         initialize_inlined_parameters, declare_return_variable,
7358         inlinable_function_p, expand_call_inline, optimize_inline_calls,
7359         walk_tree, copy_tree_r): Likewise.
7360         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7361         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
7362         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
7363         variably_modified_type_p, dump_tree_statistics): Likewise.
7364         * varasm.c (assemble_variable, compare_constant, copy_constant,
7365         force_const_mem, compute_reloc_for_constant, output_constant,
7366         output_addressed_constants, initializer_constant_valid_p): Likewise.
7367
7368 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
7369
7370         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
7371
7372 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
7373
7374         * doc/install.texi: Reflect autoconf and automake version for
7375         libffi. Update autoconf version to 2.59.
7376
7377 2004-03-13  Roger Sayle  <roger@eyesopen.com>
7378
7379         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
7380         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
7381         make_range, build_range_check, fold_range_test, unextend,
7382         constant_boolean_node, fold_binary_op_with_conditional_arg,
7383         fold_truthop, fold_mathfn_compare, fold_inf_compare,
7384         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
7385         with lang_hooks.foo ().
7386
7387 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
7388
7389         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
7390
7391 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
7392
7393         * doc/install.texi: Note status of -fnew-ra.
7394
7395 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7396
7397         PR middle-end/14470
7398         * expr.c (store_expr): Call emit_queue before generating the move
7399         from the temporary to the original target.  Protect the temporary
7400         from emit_queue.
7401
7402 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
7403
7404         PR target/14533
7405         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
7406         other than UNSPEC_GOTOFF.
7407
7408 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
7409
7410         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
7411         to arm_legitimate_index_p.  Update all callers with SET as default
7412         value.
7413         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
7414         range if OUTER is a sign-extend operation on QImode.  Correctly
7415         reject shift operations on sign-extended QImode addresses.
7416         (bad_signed_byte_operand): Delete.
7417         (arm_extendqisi_mem_op): New function.
7418         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
7419         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
7420         constraints.
7421         (CONSTRAINT_LEN): New.
7422         (EXTRA_CONSTRAINT): Delete.  Replace with...
7423         (EXTRA_CONSTRAINT_STR): ... this.
7424         (PREDICATE_CODES): Remove bad_signed_byte_operand.
7425         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
7426         is now always default.
7427         (define_splits for bad sign-extend loads): Delete.
7428         (arm_extendqisi, arm_extendqisi_v5): Likewise.
7429         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
7430         Rework 'U' constraint to 'Uv'.
7431         * arm-protos.h: Remove bad_signed_byte_operand.  Add
7432         arm_extendqisi_mem_op.
7433         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
7434         Add Uq constraint.
7435
7436 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
7437
7438         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
7439         with targetm version.
7440
7441         PR target/14567
7442         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
7443         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
7444         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
7445         Update all users of RS6000_ARG_SIZE.
7446         (function_arg_advance): Count fregno using mode size.
7447         (function_arg): Handle long double split over regs and memory.
7448         (function_arg_partial_nregs): Likewise.
7449         (rs6000_va_arg): Repackage complex args.
7450
7451 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
7452
7453         PR target/14047
7454         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
7455         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
7456         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
7457
7458 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
7459
7460         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
7461         prototype.
7462         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
7463         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7464
7465 2003-03-12  Andrew Pinski  <apinski@apple.com>
7466
7467         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7468         Use ret instead of result. Use addr instead of base.
7469
7470 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
7471
7472         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
7473         fixes required by libstdc++ and update installation instructions
7474         for libstdc++.a.
7475
7476 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
7477
7478         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
7479         leading '@' on fastcall symbols before stripping suffix.
7480
7481 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7482
7483         * combine.c (unmentioned_reg_p): New function to check whether an
7484         expression is a "specialization" of another, i.e. that there are
7485         no registers or memory references mentioned in the first that don't
7486         appear in the second.
7487         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
7488         (combine_instructions): Also try combining instructions using the
7489         REG_EQUAL note from a preceding log-linked instruction.
7490
7491 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7492
7493         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
7494
7495 2004-03-12  Matt Austern  <austern@apple.com>
7496
7497         * target.h (struct gcc_target): New target hook, unwind_label.
7498         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
7499         * output.h (default_emit_unwind_label): New function.
7500         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
7501         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
7502         (TARGET_SUPPORTS_HIDDEN): New target macro.
7503         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
7504         that corresponds to this FDE.
7505         (FRAME_BEGIN_LABEL): Allow target to override default label.
7506         (output_call_frame_info): If FDEs are linknonce, then use extra
7507         indirection for FDE encoding, output a label for each FDE, and
7508         output an empty label for each function without an FDE.
7509         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
7510         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
7511         decls with DECL_ONE_ONLY set, if that macro is defined.
7512         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
7513         for a SUPPORTS_ONE_ONLY target.
7514         * config/darwin-protos.h (darwin_unique_section): Declare.
7515         (darwin_asm_named_section): Likewise.
7516         (darwin_section_type_flags): Likewise.
7517         (darwin_non_lazy_pcrel): Likewise.
7518         (darwin_emit_unwind_label): Likewise.
7519         (darwin_make_decl_one_only): Likewise.
7520         * config/darwin.c (machopic_finish): Get rid of tweak that
7521         eliminate stubs for symbols that are defined.
7522         (darwin_encode_section_info): Don't treat weak functions as defined.
7523         (darwin_make_decl_one_only): Define.
7524         (darwin_asm_named_section): Likewise.
7525         (darwin_section_type_flags): Likewise.
7526         (darwin_unique_section): Likewise.
7527         (darwin_emit_unwind_label): Likewise.
7528         (darwin_non_lazy_pcrel): Likewise.
7529         (darwin_asm_output_dwarf_delta): Difference between two labels is
7530         local only if both labels are local.
7531         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
7532         (ASM_MAKE_LABEL_LINKONCE): Likewise.
7533         (TARGET_SUPPORTS_HIDDEN): Likewise.
7534         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
7535         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
7536         (FRAME_BEGIN_LABEL): Likewise.
7537         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
7538         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7539         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
7540         (TARGET_ASM_UNIQUE_SECTION): Define.
7541         (EH_FRAME_SECTION_NAME): Define.
7542         (EH_FRAME_SECTION_ATTR): Likewise.
7543         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
7544         (TARGET_ASM_NAMED_SECTION): Likewise.
7545         (TARGET_SECTION_TYPE_FLAGS): Likewise.
7546         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
7547         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
7548         TARGET_ASM_EMIT_UNWIND_LABEL.
7549
7550 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7551
7552         * builtins.c (expand_builtin_mathfn): Add pow10* to the
7553         existing exp10* case.
7554         (expand_builtin): Likewise.
7555
7556 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
7557
7558         * doc/tm.texi (registers) <Values in Registers>: Add
7559         entry for REGMODE_NATURAL_SIZE.
7560
7561 2004-03-12  Richard Henderson  <rth@redhat.com>
7562
7563         PR target/14547
7564         * target.h (struct gcc_target): Move calls substructure before
7565         booleans.  Add split_complex_arg.
7566         * function.c (assign_parms, split_complex_args): Use it.
7567         * calls.c (expand_call): Likewise.
7568         (split_complex_values): Likewise.  Check for splittable types
7569         before allocating memory.
7570         (split_complex_types): Likewise.
7571         * system.h (SPLIT_COMPLEX_ARGS): Poison.
7572         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
7573         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
7574         * config/alpha/alpha.c (alpha_split_complex_arg): New.
7575         (TARGET_SPLIT_COMPLEX_ARG): New.
7576         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
7577         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
7578         (rs6000_override_options): Zap it for non-AIX.
7579         (rs6000_function_value): Use targetm.calls.split_complex_arg.
7580         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
7581         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
7582         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
7583         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
7584         SPLIT_COMPLEX_ARGS entry.
7585
7586 2004-03-11  Richard Henderson  <rth@redhat.com>
7587
7588         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
7589         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
7590         (alpha_emit_xfloating_arith): Update to match.
7591         (alpha_emit_xfloating_compare): Likewise.
7592         (alpha_emit_xfloating_cvt): Likewise.
7593         (alpha_emit_xfloating_libcall): Take already built symbol,
7594         mark call const.
7595         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
7596         op1 in a register.
7597
7598 2004-03-11  Richard Henderson  <rth@redhat.com>
7599
7600         PR target/14539
7601         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
7602
7603         * simplify-rtx.c (simplify_relational_operation): Fix typo.
7604
7605 2004-03-11  Richard Henderson  <rth@redhat.com>
7606
7607         PR middle-end/14477
7608         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
7609
7610 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7611
7612         PR target/14262
7613         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
7614         defined, pass small BLKmode values in registers in the low-order part.
7615
7616 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7617
7618         * combine.c (if_then_else_cond): Check for NULL return value of
7619         simplify_gen_subreg.
7620
7621 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7622
7623         PR target/14496
7624         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
7625         TARGET_SINGLE_FLOAT.
7626
7627 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
7628
7629         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
7630         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
7631         * config/ia64/ia64.c (ia64_init_libfuncs): New.
7632         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
7633
7634 2004-03-11  Roger Sayle  <roger@eyesopen.com>
7635
7636         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7637         -((int)X>>C) where C is an integer constant one bit less than the
7638         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7639         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7640
7641         * simplify-rtx.c (simplify_unary_operation): Also implement the
7642         above transformations at the RTL level.
7643
7644 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7645
7646         * real.c (encode_ibm_extended): Do round low word.
7647
7648 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7649
7650         * config/arm/arm.md (is_xscale): Comment this attribute and move
7651         it a bit further up in the file, closer to related attributes.
7652
7653 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7654
7655         * config/host-solaris.c (sol_gt_pch_use_address): Add
7656         missing terminating marker to comment.
7657
7658 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7659
7660         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7661         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7662         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7663         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7664         move_operand as source predicate in all cases.
7665         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7666         Test reg_or_0_operand.  Use move_operand as source predicate.
7667         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7668         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7669         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7670         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7671         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7672         Use move_operand as source predicate.  Remove 'K' constraint.
7673         (*movqi_internal): Likewise movqi_internal.
7674         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7675         reg_or_0_operand.  Use move_operand as source predicate.
7676         (*movsf_softfloat): Likewise movsf_internal2.
7677         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7678         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7679         (*movdf_softfloat): Likewise movdf_internal2.
7680         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7681         for DImode if !TARGET_64BIT.
7682         (mips_legitimize_move): Simplify accordingly.
7683
7684 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7685
7686         PR/14362
7687         * var-tracking.c (struct variable_def): Added field refcount.
7688         (variable_htab_free): Decrease the refcount and delete variable
7689         only if there are no more references.
7690         (unshare_variable): New function.
7691         (vars_copy_1): Increase refcount instead of copying the variable.
7692         (variable_union): Share the variables where possible, unshare
7693         the variables if needed.
7694         (variable_different_p): Return false if var1 and var2 are
7695         the same structure.
7696         (variable_was_changed): Init the refcount of new variable.
7697         (set_frame_base_location): Unshare variable if needed.
7698         (set_variable_part): Init the refcount of new variable.
7699         Unshare the variables if needed.
7700         (delete_variable_part): Unshare the variables if needed.
7701         (emit_notes_for_differences_1): Init the refcount of new variable.
7702         (vt_add_function_parameters): Do not add function parameters to
7703         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7704         (vt_initialize): Do not add frame_base_decl to IN set of
7705         ENTRY_BLOCK_PTR because it is unused anyway.
7706
7707 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7708
7709         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7710         (vars_copy): Likewise.
7711         (variable_union): Likewise.
7712         (set_variable_part): Likewise.
7713         (delete_variable_part): Likewise.
7714
7715 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7716
7717         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7718         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7719         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7720         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7721         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7722         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7723         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7724         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7725         config/stormy16/stormy16.c: Fix comment typos and formatting.
7726
7727 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7728
7729         * configure: Regenerate, since I forgot to while committing Paolo's
7730         changes.
7731
7732 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7733
7734         PR ada/14131
7735         Move language detection to the top level.
7736         * configure.ac: Remove code to detect languages,
7737         it now lives exclusively in the top level.
7738         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7739         top level, renamed to ACX_PROG_GNAT.
7740
7741 2004-03-10  Richard Henderson  <rth@redhat.com>
7742
7743         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7744         extra arguments.
7745         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7746         and host_xmake_file fragments.
7747         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7748         (gt_pch_restore): Similarly for gt_pch_use_address.
7749         (default_gt_pch_get_address): New.
7750         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7751         (default_gt_pch_use_address): Split out of gt_pch_restore.
7752         (mmap_gt_pch_use_address): Likewise.
7753         * hooks.c (hook_voidp_size_t_null): Remove.
7754         (hook_bool_voidp_size_t_false): Remove.
7755         * hooks.h: Likewise.
7756         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7757         default_ or mmap_ definitions.
7758         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7759         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7760         and gt_pch_use_address.
7761         * config/host-linux.c, config/host-solaris.c: New files.
7762         * config/x-linux, config/x-solaris: New files.
7763         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7764         Update for changed definition.
7765         (darwin_rs6000_gt_pch_use_address): Likewise.
7766         * doc/hostconfig.texi: Update docs.
7767
7768 2004-03-10  Richard Henderson  <rth@redhat.com>
7769
7770         PR c/14517
7771         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7772         except for pedantic c90 mode.
7773
7774 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7775
7776         * configure.ac: Bump AC_PREREQ to 2.59.
7777         * configure: Regenerate.
7778
7779 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7780
7781         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7782         (exp10_optab, exp2_optab): Define corresponding macros.
7783         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7784         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7785         using exp10?f2 and exp2?f2 patterns.
7786         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7787         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7788         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7789         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7790
7791         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7792         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7793         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7794
7795 2004-03-10  Anthony Green  <green@redhat.com>
7796
7797         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7798
7799 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7800
7801         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7802         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7803         __LONGDOUBLE128.
7804         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7805         TARGET_OS_AIX_CPP_BUILTINS.
7806         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7807         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7808         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7809         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7810         previous change.
7811
7812 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7813
7814         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7815
7816 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7817
7818         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7819         __LONGDOUBLE128 on AIX.
7820
7821 2004-03-10  Andrew Haley  <aph@redhat.com>
7822
7823         PR optimization/14381
7824         * function.c (expand_function_end): Emit a blockage insn before
7825         the epilogue when -fnon-call-exceptions is used.
7826
7827         * except.c (expand_start_all_catch): Make comment more accurate.
7828
7829 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7830
7831         PR target/14480
7832         * config/rs6000/t-rtems: Add missing file on branch.
7833
7834 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7835
7836         * dbxout.c (dbxout_symbol_location): Do not output references
7837         to optimized-out constant pool symbols.
7838
7839 2004-03-10  Andreas Schwab  <schwab@suse.de>
7840
7841         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7842         twon34_r.
7843
7844 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7845
7846         * alias.c (alias_sets_might_conflict_p): New.
7847         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7848         * common.opt (Wstrict-aliasing=): New.
7849         * flags.h (warn_strict_aliasing): Change type to int.
7850         * opts.c (warn_strict_aliasing): Change type to int.
7851         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7852         * tree.h (alias_sets_might_conflict_p): Declare it.
7853         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7854
7855 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7856
7857         PR bootstrap/12371
7858         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7859         (CALL_USED_REGISTERS): Likewise.
7860         (REG_CLASS_CONTENTS): Likewise.
7861         (REG_ALLOC_ORDER): New.
7862         (REGNO_REG_CLASS): Use regno_reg_class.
7863         * config/m68k/m68k.c: Add regno_reg_class array.
7864
7865 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7866
7867         * config/ia64/ia64.md (divsi3): Fix algorithm.
7868           (udivsi3): Ditto.
7869           (setf_exp_xf): Remove '*' from name.
7870         * testsuite/gcc.dg/20040309-1.c: New test.
7871
7872 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7873
7874         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7875         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7876         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7877         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7878         (sparc_aout_select_rtx_section): Don't check
7879         SUNOS4_SHARED_LIBRARIES.
7880         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7881
7882 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7883
7884         PR other/14474
7885         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7886         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7887         INTERNALS".
7888
7889 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7890
7891         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7892         (LIBGCC_SPEC): Update to match.
7893
7894 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7895
7896         * c-decl.c (last_function_parms, last_function_parm_tags)
7897         (last_function_parm_others, current_function_parms)
7898         (current_function_parm_tags, current_function_parm_others):
7899         Delete.
7900         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7901         New macros.
7902         (grokdeclarator): For function definitions, save the arg-info
7903         block from the declarator in DECL_ARGUMENTS.
7904         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7905         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7906         contains only PARM_DECLs.  Improve diagnostics.
7907         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7908         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7909         (store_parm_decls_newstyle): Take the function to operate on,
7910         and an arg-info block, as arguments; don't get anything from
7911         current_function_* globals.
7912         (store_parm_decls_oldstyle): Likewise.
7913         (store_parm_decls): Pass fndecl and its arg-info block down to
7914         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7915         argument lists through store_parm_decls_newstyle to reduce
7916         overhead.
7917         (pushdecl): Comment on the problems with the call to copy_node.
7918         Clear DECL_ARGUMENTS of the old node after copying it, if it
7919         is an arg-info block instead of a chain of decls.
7920         (start_function): Do not manipulate current_function_parm* or
7921         last_function_parm*.
7922
7923 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7924             Andrew Pinski  <pinskia@physics.uc.edu>
7925
7926         * ifcvt.c (noce_try_sign_mask): New function to transform
7927         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7928         (noce_process_if_block): Call noce_try_sign_mask.
7929
7930 2004-03-09  Andrew Pinski  <apinski@apple.com>
7931
7932         * c-typeck.c (tagged_types_tu_compatible_p):
7933         Fix typo.
7934
7935 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7936
7937         * simplify-rtx.c (simplify_const_relational_operation): New function
7938         renamed from simplify_relational_operation.
7939         (simplify_relational_operation): Change prototype to accept an
7940         additional mode argument.  Call simplify_const_relational_operation.
7941         (simplify_gen_relational): Update simplify_relational_operation call.
7942         (simplify_ternary_operation): Update simplify_relational_operation
7943         subroutine call to use simplify_const_relational_operation instead.
7944
7945         * rtl.h (simplify_const_relational_operation): Prototype here.
7946         (simplify_relational_operation): Add addtional mode argument.
7947
7948         * combine.c (combine_simplify_rtx): Update calls to
7949         simplify_relational_operation.
7950         (simplify_set): Likewise.
7951         (gen_binary): Likewise.
7952         * cse.c (fold_rtx): Likewise.
7953         * dojump.c (compare_from_rtx): Likewise.
7954         (do_compare_rtx_and_jump): Likewise.
7955         * integrate.c (subst_constants): Likewise.
7956         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7957
7958 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7959
7960         * config/m32r/m32r.md: Remove all define_peephole's.
7961
7962 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7963
7964         * config/rs6000/rs6000.md: Remove trailing whitespace.
7965
7966 2004-03-08  Eric Christopher  <echristo@redhat.com>
7967
7968         * Makefile.in (site.exp): Add libiconv variable definition.
7969
7970 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7971
7972         * configure: Regenerate for config/accross.m4 correction.
7973
7974 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7975
7976         PR target/14480
7977         * config/rs6000/t-rtems: Add missing file on branch.
7978
7979 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7980
7981         PR middle-end/14289
7982         * c-typeck.c (c_mark_addressable): A register variable should
7983         be considered global if its not automatic, i.e. TREE_PUBLIC,
7984         TREE_STATIC or DECL_EXTERNAL.
7985         * function.c (put_var_into_stack): Call abort when placing a
7986         hard register into the stack, if x_parm_reg_stack_loc is NULL.
7987
7988 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
7989
7990         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
7991         ("*extendqisi2_short_displ"): Likewise.
7992
7993 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
7994
7995         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
7996         (comp_operator): Likewise.
7997         * config/pdp11/pdp11-protos.h: Remove corresponding
7998         prototypes.
7999
8000 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8001
8002         * expr.c (highest_pow2_factor_for_type): Rename into
8003         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8004         TYPE_ALIGN when the target is a COMPONENT_REF.
8005         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8006
8007 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8008
8009         * config/rs6000/rs6000.c: Formatting fix.
8010         (legitimate_offset_address_p): Correct offset range check.
8011
8012         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8013         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8014         and MASK_STRING.
8015
8016 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8017
8018         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8019         for little endian.
8020         ("ashrdi3_no_power"): Disable for little endian.
8021         (ashrdi3): Same.
8022
8023 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8024
8025         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8026         builtins.
8027
8028 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8029
8030         PR target/14471
8031         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8032         case, checking for -no-mul-bug-abort option.
8033         * configure, config.in: Regenerate.
8034         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8035         and -mno-mul-bug-workaround.
8036         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8037         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8038         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8039         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8040         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8041         sure mulu.d is not last on cache-line.
8042         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8043         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8044         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8045         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8046         -mno-mul-bug-workaround.
8047         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8048         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8049         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8050         relation to MULT in head comment.
8051         (cris_op_str): Abort for MULT.
8052         (cris_print_operand) <case '!'>: New case.
8053
8054 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8055
8056         PR debug/11983
8057         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8058         dw_val_class_vec.  Replace use throughout file.
8059         (dw_float_const): Delete.
8060         (dw_vec_const): New.
8061         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8062         throughout file.
8063         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8064         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8065         (size_of_die): Adjust dw_val_class_vec sizing.
8066         (output_die): Output dw_val_class_vec.
8067         (insert_int, extract_int, insert_float): New functions.
8068         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8069         Handle CONST_VECTOR.
8070         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8071
8072 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8073
8074         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8075         AltiVec abi cannot co-exist.
8076
8077         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8078
8079 2004-03-07  Jan Hubicka  <jh@suse.cz>
8080
8081         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8082
8083 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8084
8085         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8086         ("*lshrsi3"): Also accept an immediate for 68HC12.
8087         ("*ashrsi3_const"): Likewise.
8088         ("*ashrsi3"): Likewise.
8089         ("*ashlsi3_const"): Likewise.
8090         ("*ashlsi3"): Likewise.
8091         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8092         comparing with a pop; don't use a split for that.
8093         ("cmphi split"): Disable compare split for 68HC12.
8094
8095         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8096         the status operands if they have side effects.
8097
8098 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8099
8100         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8101         definition.
8102         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8103         config/h8300/h8300.h, config/ia64/ia64.h,
8104         config/mcore/mcore.h, config/mmix/mmix.h,
8105         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8106         config/stormy16/stormy16.h, config/v850/v850.h,
8107         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
8108         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
8109         definition.
8110
8111 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8112
8113         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
8114         <XOR_EXPR>: Fold x ^ x as zero.
8115         <AND_EXPR>: Fold x & x as x.
8116
8117 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8118
8119         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
8120         "foo++ == const" into "++foo == const+incr".
8121
8122 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
8123
8124         * config/mips/mips.c (mips_in_small_data_p): Return false if
8125         TARGET_ABICALLS.
8126
8127 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
8128
8129         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
8130         the stack register.
8131         (expand_prologue): Don't make an interrupt or a trap handler a far
8132         symbol.
8133         (m68hc11_initial_elimination_offset): Likewise.
8134
8135 2004-03-06  Richard Henderson  <rth@redhat.com>
8136
8137         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
8138
8139 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8140
8141         * config/ns32k/ns32k-protos.h: Add a prototype for
8142         ns32k_notice_update_cc.
8143         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
8144         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
8145         ns32k_notice_update_cc.
8146
8147 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8148
8149         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
8150         "*load_multiple_si"): Allow only if reload_completed.
8151         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
8152         Likewise.
8153
8154 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8155
8156         * config/vax/vax-protos.h: Add a prototype for
8157         vax_notice_update_cc.
8158         * config/vax/vax.c (vax_notice_update_cc): New.
8159         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
8160         vax_notice_update_cc.
8161
8162 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
8163
8164         * collect2.c (main): Only export initfunc and finifunc if
8165         LD_INIT_SWITCH not defined.
8166         (scan_prog_file): Only export constructors and destructors if
8167         LD_INIT_SWITCH not defined.  Only export symbols not found in
8168         shared objects.
8169
8170 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8171
8172         * pa.md (icacheflush): Reorder operands to make match_scratch operand
8173         last.
8174         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
8175         from calls to gen_icacheflush.
8176
8177 2004-03-06  Richard Henderson  <rth@redhat.com>
8178
8179         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
8180         (TARGET_LONG_DOUBLE_128): New.
8181         (TARGET_SWITCHES): Add long-double-{128,64}.
8182         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
8183         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
8184         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
8185         (WIDEST_HARDWARE_FP_SIZE): New.
8186         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
8187         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
8188         if TARGET_VAX_FLOAT.
8189         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
8190         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
8191
8192 2004-03-06  Richard Henderson  <rth@redhat.com>
8193
8194         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
8195         botched rtx class conversion.
8196
8197 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8198
8199         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
8200         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
8201
8202         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
8203         macros.
8204         * fold-const.c (fold_mathfn_compare, fold): Likewise.
8205
8206 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
8207
8208         PR target/14343
8209         * config/i386/i386.md (movv2di_internal): Conditionalize on
8210         TARGET_SSE, not TARGET_SSE2.
8211
8212 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
8213
8214         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
8215         duplicated line.
8216
8217 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8218
8219         * builtins.c: Consistently use logN not log* in comments.
8220
8221 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8222
8223         * rtl.h (mem_expr_equal_p): Function prototype added.
8224         * cfgcleanup.c (merge_memattrs): New function.
8225         (flow_find_cross_jump): Call merge_memattrs for matching insns.
8226         * emit-rtl.c (mem_expr_equal_p): New function.
8227
8228 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
8229
8230         * objc/objc-act.c (synth_module_prologue): Const-qualify
8231         objc_selector type if using the GNU runtime; fix generated
8232         signatures for objc_msg_lookup and objc_msg_lookup_super
8233         to match what GNU ObjC headers provide; reformat and clean up.
8234         (synth_self_and_ucmd_args): Use previously constructed (and
8235         hence possibly const-qualified) objc_selector type.
8236
8237 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8238
8239         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
8240
8241 2004-03-05  Jason Merrill  <jason@redhat.com>
8242
8243         * tree.h (TYPE_HASH): Use TYPE_UID.
8244         (TREE_HASH): New macro with old definition of TYPE_HASH.
8245         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
8246         (build_array_type, build_function_type): Likewise.
8247         (build_method_type_directly): Likewise.
8248         (build_offset_type, build_complex_type): Likewise.
8249         (type_hash_list, attribute_hash_list): Likewise. Now static.
8250         * except.c: s/TYPE_HASH/TREE_HASH/.
8251
8252 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
8253
8254         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
8255         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
8256         __va_ndx by 2 words when referencing an argument on the stack.
8257         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
8258         words when an arg on the stack is first seen.
8259
8260 2004-03-05  Paul Brook  <paul@codesourcery.com>
8261
8262         * arm.h (ARM_FLAG_VFP): Remove.
8263         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
8264         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
8265
8266 2004-03-05  Paul Brook  <paul@codesourcery.com>
8267
8268         * function.c (assign_parms): Include pretend alignment offset.
8269
8270 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8271
8272         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
8273         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
8274
8275 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
8276
8277         * configure.ac: When passing --enable-languages to subdir
8278         configure when host != build, make sure we don't pass an empty
8279         value.
8280         * configure: Regenerate.
8281
8282 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
8283
8284         PR 13577
8285         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
8286         options.
8287
8288 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8289
8290         * simplify-rtx.c (simplify_relational_operation): If
8291         flag_wrapv is set, do not move terms between the two
8292         side of a relational operator.
8293
8294 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8295
8296         * rtlanal.c: Include target.h and output.h
8297         (rtx_cost, address_cost, default_address_cost): Move from...
8298         * cse.c (rtx_cost, address_cost, default_address_cost):
8299         ... this file.
8300         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
8301         * Makefile.in: Adjust dependencies.
8302
8303 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
8304
8305         * cse.c (cse_end_of_basic_block): Make static.
8306         * local-alloc.c (function_invariant_p): Move to
8307         reload1.c.
8308         * loop.c (libcall_other_reg, record_excess_regs):
8309         Make static.
8310         * reload1.c (function_invariant_p): Moved here
8311         from local-alloc.c, made static.
8312         * rtl.h (cse_end_of_basic_block, function_invariant_p,
8313         libcall_other_reg, record_excess_regs): Remove
8314         declarations.
8315
8316 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8317
8318         * config/m32r/m32r.c (signed_comparison_operator): Add a
8319         missing parenthesis.
8320
8321 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
8322
8323         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
8324         going to call mmap again.  Read the file into the right place.
8325         Give a fatal error if we have to relocate.
8326
8327 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
8328
8329         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
8330         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
8331
8332 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
8333
8334         PR other/14354
8335         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
8336         round the same.  When rounding, clear bits that would cause a
8337         second rounding in pack_d.
8338         (_fpmul_parts): Ditto.  Remove #if 0:d code.
8339
8340 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
8341
8342         PR c++/14425, c++/14426
8343         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
8344         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
8345         Change C++ definitions to accept a 'const int' argument;
8346         the prototypes already do.
8347         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
8348         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
8349         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
8350         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
8351         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
8352         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
8353         end in ..._int; change them to accept an int instead of a char
8354         as the last parameter.
8355
8356 2004-03-04  Phil Edwards  <phil@codesourcery.com>
8357
8358         * genmultilib:  Change '=' to '-' when translating option names
8359         to directory names.
8360
8361 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8362
8363         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
8364         stack slot for temp used for result of BLKmode but in integral mode.
8365
8366 2004-03-04  Jan Hubicka  <jh@suse.cz>
8367
8368         * reload.c (find_reloads): Reorganize if seqeunce to switch.
8369
8370         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
8371         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
8372
8373 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
8374
8375         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
8376         * testsuite/gcc.dg/20040303-1.c: New test.
8377
8378 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8379
8380         * ppro.md: Rewrite as a DFA pipeline description.
8381         * i386.md: Remove all uses of the ppro_uops attribute.
8382         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
8383         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
8384         ix86_sched_reorder, ix86_variable_issue,
8385         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
8386         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
8387         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
8388         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
8389         * athlon.md (athlon_ssecmp_load): Fix comment
8390
8391 2004-03-04  Stuart Hastings  <stuart@apple.com>
8392
8393         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
8394
8395 2004-03-04  Stuart Hastings  <stuart@apple.com>
8396
8397         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
8398         686, tell Darwin assembler to allow prefetch insns, non-empty def
8399         of SUBTARGET_OPTION_TRANSLATE_TABLE.
8400
8401 2004-03-04  DJ Delorie  <dj@redhat.com>
8402
8403         PR optimization/14282
8404         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
8405         between a call and the assignment of its return value.
8406
8407 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8408
8409         * config/h8300/h8300.c: Put a comment for every function.
8410
8411 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8412
8413         * config/h8300/h8300.md: Add comments about peephole2's.
8414
8415 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8416
8417         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
8418
8419 2004-03-04  Jan Hubicka  <jh@suse.cz>
8420
8421         * cfgcleanup.c (thread_jump): Update call of cselib_init.
8422         * cselib.c (cselib_record_memory): New static variable.
8423         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
8424         Give up on memories when asked for.
8425         (cselib_init): Accept new argument.
8426         * cselib.h (cselib_init): Update prototype.
8427         * gcse.c (local_cprop_pass): Update call of cselib_init.
8428         * loop.c (load_mems): Update call of cselib_init.
8429         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
8430         * sched-deps.c (sched_analyze): Update call of cselib_init.
8431
8432 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8433             GP <gp@qnx.com>
8434
8435         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
8436         when compiling PIC.
8437
8438 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
8439
8440         PR/14362
8441         * var-tracking.c (track_expr_p): Do not track variables which
8442         should be ignored for debugging purposes.
8443
8444 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8445
8446         * real.c (encode_ibm_extended): Don't bother rounding low double.
8447         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
8448         when fmt->pnan < fmt->p.
8449
8450 2004-03-04  Eric Christopher  <echristo@redhat.com>
8451
8452         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
8453         only range of valid arg registers and fixed_regs.
8454
8455 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8456
8457         PR target/14406
8458         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
8459         (abstf2, abstf2_internal): New define_expand.
8460
8461 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8462
8463         PR optimization/14235
8464         * expr.c (convert_move): Copy the source to a new pseudo
8465         when converting from a sub-word source to a larger-than-word
8466         register which conflicts with the source.
8467
8468 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
8469
8470         PR 13728
8471         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
8472         parameters with the same name, unless one is a forward decl.
8473         Do not issue a redundant-redeclaration warning for forward
8474         decls of parameters.
8475
8476 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8477
8478         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
8479         configuration.
8480
8481 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
8482
8483         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
8484
8485 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8486
8487         * target-def.h (TARGET_OPTF): Delete.
8488         * c-opts.c (TARGET_OPTF): Define.
8489
8490 2004-03-04  Jan Hubicka  <jh@suse.cz>
8491
8492         * cselib.c (cselib_finish): Fix another miss-application of my previous
8493         patch.
8494
8495 2004-03-03  Mike Stump  <mrs@apple.com>
8496
8497         Add framework support for darwin.
8498
8499         * c-incpath.c: Include target.h and machmode.h.
8500         (add_path): Use a consistent style for cpp_dir.  Initialize
8501         p->construct to 0.
8502         (add_cpp_dir_path): New.
8503         (register_include_chains): Add use of extra_includes callback.
8504         (hook_void_int): Add.
8505         (target_c_incpath): Add.
8506         * c-incpath.h (add_cpp_dir_path): New.
8507         (target_c_incpath_s): Add.
8508         (target_c_incpath): Add.
8509         (C_INCPATH_INIT): Add.
8510         * c-opts.c (c_common_missing_argument,
8511         c_common_handle_option): Add -F argument processing.
8512         * c.opt: Add -F argument processing.
8513         * gcc.c (trad_capable_cpp): Add -F argument processing.
8514         * cppfiles.c (find_file_in_dir): Update to use construct
8515         callback.
8516         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
8517         cpp_get_prev): New.
8518         (_cpp_find_file): Use search_path_exhausted.
8519         (make_cpp_dir): Initialize construct to 0.
8520         * cpplib.h (missing_header_cb
8521         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
8522         (cpp_callbacks): Add missing_header
8523         (cpp_dir): Add construct.
8524         * target-def.h: (TARGET_OPTF): New.
8525         * hooks.c (hook_void_int, hook_void_charptr): Add.
8526         * hooks.h (hook_void_int, hook_void_charptr): Add.
8527         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
8528         $(MACHMODE_H) dependencies.
8529         * doc/invoke.texi (Darwin Options): Document -F.
8530         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
8531         (TARGET_OPTF): Add.
8532         * fix-header.c (target_c_incpath): Add.
8533
8534         * config/darwin-c.c: Add c-incpath.h include.
8535         (using_frameworks, find_subframework_file,
8536         find_subframework_header, add_system_framework_path,
8537         frameworks_in_use, num_frameworks, max_frameworks,
8538         add_framework, find_framework, struct framework_header,
8539         framework_header_dirs, framework_construct_pathname,
8540         find_subframework_file, add_system_framework_path,
8541         add_framework_path, framework_defaults,
8542         darwin_register_frameworks, find_subframework_header): Add.
8543         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
8544         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
8545         (CPP_SPEC): Add __APPLE_CC__ support.
8546         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
8547
8548 2004-03-04  Jan Hubicka  <jh@suse.cz>
8549
8550         * cselib.c (cselib_finish): Fix miss-application of my previous
8551         patch.
8552
8553 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8554
8555         * hooks.c (hook_tree_tree_identity): New.
8556         * hooks.h: Add a prototype for hook_tree_tree_identity.
8557         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
8558         instead of MD_ASM_CLOBBERS.
8559         * system.h (MD_ASM_CLOBBERS): Poison.
8560         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
8561         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
8562         * target.h (gcc_target): Add md_asm_clobbers.
8563         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
8564         (ix86_md_asm_clobbers): New.
8565         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
8566         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
8567         TARGET_MD_ASM_CLOBBERS.
8568
8569 2004-03-03  Stuart Hastings  <stuart@apple.com>
8570
8571         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
8572
8573 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8574
8575         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
8576
8577         * config/sparc/sparc.h (ASM_FLOAT): Delete.
8578         (ASM_DOUBLE): Likewise.
8579         (ASM_LONGDOUBLE): Likewise.
8580         * config/sparc/pbd.h (ASM_INT_OP): Delete.
8581
8582 2003-03-03  Richard Henderson  <rth@redhat.com>
8583
8584         PR opt/13862
8585         * cselib.c (cselib_record_sets): Don't record multiple sets in
8586         asm insns.
8587
8588 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
8589
8590         * common.opt: Add description of the new -fgcse-after-reload flag.
8591
8592         * flags.h (flag_gcse_after_reload): Declaration of global variable.
8593
8594         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
8595         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
8596         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
8597         get_bb_avail_insn, hash_scan_set_after_reload,
8598         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
8599         gcse_after_reload, get_bb_avail_insn): New functions to implement
8600         gcse-after-reload.
8601         (gcse_after_reload_main): New function, the main entry point to
8602         gcse-after-reload.
8603
8604         * rtl.h (gcse_after_reload_main): Declaration of the new function.
8605
8606         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
8607
8608         * toplev.c (flag_gcse_after_reload): Initialization.
8609
8610         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
8611
8612         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8613         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
8614         the gcse after reload optimization.
8615
8616         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8617         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
8618         parameters.
8619
8620         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
8621
8622 2004-03-03  Nicolas Pitre <nico@cam.org>
8623
8624         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
8625         small negative values.
8626
8627 2004-03-03  Jan Hubicka  <jh@suse.cz>
8628
8629         * cselib.c (hash_table):  Remove GTY marker.
8630         (reg_values): Turn into array.
8631         (used_regs): Likewise.
8632         (n_used_regs): New static variable.
8633         (reg_values_old): Kill.
8634         (clear_table): Update uses of arrays.
8635         (cselib_lookup): Likewise.
8636         (cselib_record_set): Likewise.
8637         (cselib_init): Likewise.
8638         (cselib_finish): Likewise.
8639         (cselib_udpate_varray_sizes): Kill.
8640         * cselib.h (cselib_update_varray_sizes): Kill.
8641
8642 2004-03-03  Paul Brook  <paul@codesourcery.com>
8643
8644         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8645
8646 2004-03-03  Jan Hubicka  <jh@suse.cz>
8647
8648         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8649         Rename from ...; make statistics transparent.
8650         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8651         (loc_descriptor): New structure.
8652         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8653         add_statistics):
8654         New static function.
8655         (ggc_record_overhead, dump_statistics): New global function.
8656         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8657         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8658         from ...; accept locations
8659         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8660         ggc_realloc, ggc_alloc_typed):  ... this one.
8661         from ...; accept locations
8662         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8663         ggc_alloc_stat): Rename from ... ; pass locations
8664         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8665         ... this one.
8666         (ggc_alloc_stat): Record overehead.
8667         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8668         ggc_realloc, ggc_alloc_typed):  Turn to macros
8669         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8670         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8671         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8672         * langhooks.h (lhd_make_node): Declare.
8673         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8674         * langhooks.c (lhd_make_node): New.
8675         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8676         locations.
8677         (rtx_alloc, swallow_copy_rtx): ... this one.
8678         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8679         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8680         * toplpev.c (finalize): Dump stats.
8681         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8682         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8683         Rename from ... ; pass locators.
8684         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8685         build?,  build_decl): Declare.
8686         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8687         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8688         Declare.
8689         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8690         build?,  build_decl): New macros.
8691         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8692         * statistics.h: New file.
8693
8694 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8695             Richard Sandiford  <rsandifo@redhat.com>
8696
8697         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8698         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8699         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8700         * config/mips/mips.c (mips_output_division): Fill the branch delay
8701         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8702         TARGET_FIX_R4400.
8703         (mips_output_division): Adjust accordingly.
8704         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8705         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8706
8707 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8708
8709         * alias.c (rtx_equal_for_memref_p): Use predicates
8710         to test rtx classes and new rtx class codes, possibly
8711         splitting conditionals that tested against '<' and 'o'.
8712         * caller-save.c (save_call_clobbered_regs): Likewise.
8713         * combine.c (contains_muldiv, find_split_point, subst,
8714         combine_simplify_rtx, simplify_if_then_else,
8715         simplify_set, simplify_logical, expand_compound_operation,
8716         make_compound_operation, if_then_else_cond, known_cond,
8717         apply_distributive_law, cached_nonzero_bits,
8718         cached_num_sign_bit_copies, simplify_shift_const,
8719         gen_binary, simplify_comparison, update_table_tick,
8720         record_value_for_reg, get_lsat_value_validate): Likewise.
8721         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8722         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8723         Likewise.
8724         * emit-rtl.c (copy_insn_1): Likewise.
8725         * expr.c (force_operand): Likewise.
8726         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8727         * flow.c (notice_stack_pointer_modification_1,
8728         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8729         and_reg_cond, elim_reg_cond): Likewise.
8730         * function.c (update_epilogue_consts): Likewise.
8731         * genattrtab.c (attr_rtx_1): Likewise.
8732         * genopinit.c (gen_insn): Likewise.
8733         * integrate.c (subst_constants): Likewise.
8734         * jump.c (reversed_comparison_code_parts,
8735         reversed_comparison_code, delete_related_insns,
8736         rtx_renumbered_equal_p): Likewise.
8737         * local-alloc.c (block_alloc): Likewise.
8738         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8739         canonicalize_condition): Likewise.
8740         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8741         Likewise.
8742         * optabs.c (add_equal_node, expand_binop): Likewise.
8743         * predict.c (estimate_probability): Likewise.
8744         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8745         * recog.c (validate_replace_rtx_1, comparison_operator,
8746         offsettable_address_p, constrain_operands): Likewise.
8747         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8748         Likewise.
8749         * regclass.c (scan_one_insn): Likewise.
8750         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8751         * regrename.c (kill_autoinc_value): Likewise.
8752         * reload.c (find_reusable_reload, find_reloads,
8753         reg_overlap_mentioned_for_reload_p): Likewise.
8754         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8755         * rtl.c (copy_rtx): Likewise.
8756         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8757         * rtlanal.c (commutative_operand_precedence): Likewise.
8758         * sched-deps.c (conditions_mutex_p): Likewise.
8759         * sched-rgn.c (is_cfg_nonregular): Likewise.
8760         * simplify-rtx.c (simplify_gen_binary,
8761         simplify_gen_relational, simplify_replace_rtx,
8762         simplify_unary_operation, simplify_binary_operation,
8763         simplify_ternary_operation, simplify_rtx): Likewise.
8764         * unroll.c (reg_dead_after_loop): Likewise.
8765         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8766         print_operand): Likewise.
8767         * config/arc/arc.c (proper_comparison_operator): Likewise.
8768         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8769         Likewise.
8770         * config/avr/avr.c (_reg_unused_after): Likewise.
8771         * config/frv/frv.c (frv_ifcvt_modify_tests,
8772         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8773         * config/i386/i386.c (ix86_comparison_operator,
8774         ix86_carry_flag_operator, fcmov_comparison_operator,
8775         arith_or_logical_operator, print_operand,
8776         ix86_expand_binary_operator, ix86_binary_operator_ok):
8777         Likewise.
8778         * config/i386/i386.md: Likewise.
8779         * config/ia64/ia64.c (not_postinc_memory_operand,
8780         ia64_print_operand, update_set_flags, errata_emit_nops):
8781         Likewise.
8782         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8783         CONSTRAINT_OK_FOR_S): Likewise.
8784         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8785         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8786         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8787         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8788         Likewise.
8789         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8790         eqne_comparison_operator, signed_comparison_operator):
8791         Likewise.
8792         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8793         Likewise.
8794         * config/mmix/mmix (mmix_foldable_comparison_operator,
8795         mmix_comparison_operator): Likewise.
8796         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8797         * config/rs6000/rs6000.c (stmw_operation,
8798         branch_comparison_operator, trap_comparison_operator,
8799         ccr_bit): Likewise.
8800         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8801         * config/s390/s390.c (s390_alc_comparison,
8802         s390_slb_comparison):L Likewise.
8803         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8804         Likewise.
8805         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8806         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8807         emit_hard_tfmode_operation, reg_unused_after)
8808         * doc/md.texi, doc/rtl.texi: Likewise.
8809
8810         * ra-debug.c: Add 2004 to list of copyright years.
8811         * unroll.c: Likewise.
8812
8813         * combine.c (simplify_logical): Remove dummy test,
8814         (apply_distributive_law): Fix typo in comment.
8815         GET_CODE (x) == AND so x is a commutative binary op.
8816         * jump.c (delete_related_insns): simplify loop
8817         condition, move testing of RTX codes inside the loop.
8818         (rtx_renumbered_equal_p): do not use RTX_CODE.
8819         * rtl.c (rtx_class): Declare as enum rtx_class.
8820         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8821         Move to RTX_COMM_COMPARE class.
8822         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8823         Move to RTX_CONST_OBJ class.
8824         * rtl.h (enum rtx_class): New declaration,
8825         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8826         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8827         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8828         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8829         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8830         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8831         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8832         OBJECT_P): New macros.
8833         * config/sparc/sparc.c (noov_compare_op): Remove register
8834         from parameter.
8835
8836 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8837
8838         * target.h: Remove texi jargons in comments.
8839
8840 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8841
8842         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8843         threshold to 0x4f.
8844
8845         Revert:
8846         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8847         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8848         as well.
8849         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8850         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8851
8852 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8853
8854         * doc/md.texi (cbranchmode4): New.
8855
8856 2004-03-02  Eric Christopher  <echristo@redhat.com>
8857
8858         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8859         fix_trunc.
8860         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8861         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8862         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8863         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8864
8865 2004-03-02  Richard Henderson  <rth@redhat.com>
8866
8867         PR middle-end/11767
8868         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8869         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8870         before the compare, if flag_non_call_exceptions.
8871
8872 2004-03-02  Richard Henderson  <rth@redhat.com>
8873
8874         PR middle-end/14327
8875         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8876         emitting the label, not after.
8877
8878 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8879
8880         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8881         (m68hc11_mov_addr_mode): Likewise.
8882         (m68hc11_override_options): Initialize them based on target.
8883         (register_indirect_p): Allow a MEM for indirect addressing modes and
8884         use flags to control what is allowed.
8885         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8886         supported addressing modes.
8887         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8888         (go_if_legitimate_address_internal): Likewise.
8889         (m68hc11_indirect_p): Likewise and check the mode.
8890         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8891
8892 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8893
8894         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8895         (expand_builtin_setjmp_setup): Use
8896         targetm.builtin_setjmp_frame_value instead of
8897         BUILTIN_SETJMP_FRAME_VALUE.
8898         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8899         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8900         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8901         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8902         * targhooks.c (default_builtin_setjmp_frame_value): New.
8903         * targhooks.h: Add a prototype for
8904         default_builtin_setjmp_frame_value.
8905         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8906         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8907
8908 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8909
8910         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8911         sequences of moves.
8912         (add peepholes): New peepholes to optimize sequences adding small
8913         constants.
8914         (bset peepholes): New peepholes to transform an OR in a bset form
8915         (bclr peepholes): Likewise for bclr form.
8916         (cmp peepholes): New peepholes to avoid register copies when comparing.
8917
8918 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8919
8920         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8921         to separate push from moves.
8922         ("*pushdf_internal"): Likewise.
8923         ("*pushsf_internal"): Likewise.
8924         ("*pushsi_internal"): Likewise.
8925         ("movdi_internal"): Use define_insn_and_split; non push operand.
8926         ("movdf_internal"): Likewise.
8927         ("movsf_internal"): Likewise.
8928         ("movsi_internal"): Likewise.
8929         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8930         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8931         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8932
8933 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8934
8935         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8936         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8937         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8938         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8939         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8940         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8941         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8942         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8943         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8944         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8945         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8946
8947 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8948
8949         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8950         (SOFT_XY_REGNUM): Define.
8951         (cmp split): Use the above instead of hard coded numbers.
8952         (8-bit op split): No need to check the mode; allow Q_REG.
8953         (ashift split): Adjust the first operand if it uses the SP and we
8954         are pushing the shifted value.
8955         (plus shift split): Fix when a source is in register D+X.
8956         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8957
8958 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8959
8960         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8961         comparing with Z register.
8962
8963 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8964
8965         * cfgloop.h (struct loop_desc): Removed.
8966         (struct loop): Fields simple, desc and has_desc removed.
8967         (simple_loop_p, count_loop_iterations): Declaration removed.
8968         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8969         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8970         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8971         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8972         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8973         simple_condition_p, simple_increment, count_strange_loop_iterations,
8974         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8975         Removed.
8976         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8977
8978 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8979
8980         * genattrtab.c: Don't handle MATCH_INSN.
8981         * genrecog.c: Likewise.
8982         * gensupport.c: Likewise.
8983         * rtl.def (match_insn): Remove.
8984         * doc/md.texi (match_insn, match_insn2): Remove.
8985
8986 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
8987
8988         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
8989         macro results in memory allocation.
8990
8991 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
8992
8993         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
8994         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
8995         %(fbsd_dynamic_linker),
8996         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
8997         config/i386/freebsd.h
8998         * config/arm/freebsd.h: Ditto.
8999         * config/i386/freebsd.h: Ditto.
9000         * config/i386/freebsd64.h: Ditto.
9001         * config/ia64/freebsd.h: Ditto.
9002         * config/rs6000/sysv4.h: Ditto.
9003         * config/sparc/freebsd.h: Ditto.
9004
9005 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9006
9007         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9008
9009 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9010
9011         * rtl.def (define_combine): Remove.
9012
9013 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9014
9015         * config/h8300/h8300.md: Tweak formatting.
9016
9017 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9018
9019         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9020         *cmphi_h8300_znvc.
9021         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9022
9023 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9024
9025         PR bootstrap/14356
9026         * gcc.c (process_command): Remove const-qualification from argv.
9027         (main): Likewise.
9028
9029 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9030
9031         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9032         pushqi1_h8300hs_advanced.  Adjust its caller.
9033         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9034         Adjust its caller.
9035
9036 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9037
9038         * Makefile.in (install-libgcc, install-multilib): Pass
9039         mkinstalldirs var to libgcc.mk.
9040
9041 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9042
9043         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9044         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9045
9046 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9047
9048         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9049         * config/h8300/h8300.md: Split several peephole2's, each into
9050         two.
9051
9052 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9053
9054         * dominance.c (recount_dominator): Handle postdominators.
9055
9056 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9057
9058         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9059         (NUM_SYMBOL_TYPES): Likewise.
9060         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9061         (mips_unspec_address): Declare.
9062         (mips_gotoff_page, mips_gotoff_global): Delete.
9063         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9064         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9065         (mips_symbolic_constant_p, mips_symbolic_address_p)
9066         (mips_symbol_insns): Handle new symbol types.
9067         (general_symbolic_operand): New predicate.
9068         (mips_unspec_address): Make extern.
9069         (mips_gotoff_page, mips_gotoff_global): Delete.
9070         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9071         Handle new symbol types.
9072         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9073         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9074         mips_unspec_address directly.
9075         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9076         the documentation of -mexplicit-relocs.
9077
9078 2004-03-01  Jeff Law  <law@redhat.com>
9079
9080         * fold-const.c (fold): An equality comparison of a non-weak object
9081         against zero has a known result.  Similarly an equality comparison
9082         of the address of two non-weak, unaliased symbols has a known result.
9083
9084         * ggc-page.c (struct page_entry): New field PREV.
9085         (ggc_alloc): Update PREV field appropriately.
9086         (sweep_pages): Likewise.
9087         (ggc_free): Likewise.  Use PREV field rather than loop to
9088         improve ggc_free performance.
9089
9090 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9091
9092         * config/mips/mips.c (mips_output_division): Use the division
9093         instruction to fill the delay slot of a zero check.
9094         (mips_idiv_insns): Adjust accordingly.
9095
9096 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9097
9098         * config.gcc: Create a default tmake_file for linux, and use
9099         it in all but two linux clauses.  Comment those two.
9100
9101 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9102
9103         * combine.c (try_combine):  Do not refer to is_replaced.
9104         (gen_lowpart_for_combine):  Perverse subregs now have a
9105         more politically correct name.
9106         * cse.c (cse_insn): Likewise.
9107         * jump.c: Fix bogus reference to delete_insn.
9108
9109 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
9110
9111         PR debug/14328
9112         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
9113         constants as signed values.
9114
9115         PR middle-end/13448
9116         * c-tree.h (readonly_warning): Rename to ...
9117         (readonly_error): ... this.
9118         * c-typeck.c (build_unary_op): Adjust accordingly.
9119         (readonly_warning): Rename to ...
9120         (readonly_error): ... this and issue errors, not warnings.
9121         (build_modify_expr): Call readonly_error, not readonly_warning.
9122         (c_expand_asm_operands): Likewise.
9123         * tree-inline.c (optimize_inline_calls): Do not inline functions
9124         after errors have occurred.
9125
9126 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9127
9128         * configure.ac: Rearrange some threading code for clarity;
9129         add section comment.
9130         * configure: Regenerate.
9131
9132 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9133
9134         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
9135         typos.
9136         * doc/cppopts.texi: Fix a typo.
9137
9138 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9139
9140         * config/i386/i386.md: Fix formatting.
9141
9142 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9143
9144         * configure.ac: Add some comments delineating sections of code.
9145
9146         * doc/install.texi: Note that libada uses autoconf 2.57 also.
9147
9148         * doc/install.texi: Fix idiot typo in previous commit.
9149
9150         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
9151
9152 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9153
9154         * config/h8300/h8300.md: Add comments about peephole2's.
9155
9156 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9157
9158         * config/h8300/h8300.md: Tweak operand numbers of some
9159         peephole2's.
9160
9161 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9162
9163         * config/h8300/h8300.md: Tweak comments about peephole2's.
9164
9165 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9166
9167         PR middle-end/14203
9168         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
9169         instead of testing whether DECL_RTL is not NULL.
9170
9171 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9172
9173         * config/sh/sh.c: Fix formatting.
9174
9175 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9176
9177         * config/sh/sh.c: Convert to ISO-C.
9178
9179 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
9180
9181         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
9182         my previous patch.
9183
9184         * config/darwin.h (machopic_finish): Output stub even if the
9185         symbol is already defined.
9186
9187 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9188
9189         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
9190
9191 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9192
9193         * genattr.c (main): Don't define
9194         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
9195         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
9196         (DFA_PIPELINE_INTERFACE): Likewise.
9197         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
9198         (DFA_PIPELINE_INTERFACE): Likewise.
9199
9200 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
9201
9202         * config/mips/mips.md (tstsi, tstdi): Delete.
9203
9204 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9205
9206         * config/mips/mips.c (override_options): Remove an obsolete
9207         duplicate definition of the "e" constraint.
9208         * config/mips/mips.h: Update a comment accordingly.
9209
9210 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9211
9212         * config/mips/mips.md: Complete the unfinished R4000
9213         multiply/shift errata workaround.  Improve documentation.
9214         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
9215         has a hilo hazard.
9216         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
9217         (muldi3, muldi3_internal): Likewise.
9218         (muldi3_internal2): Remove, replacing with...
9219         (muldi3_mult3, muldi3_r4000): ...these new patterns.
9220         (mulsidi3): Take the errata into account.
9221         (mulsidi3_32bit): Remove, replacing with...
9222         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
9223         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
9224         (umulsidi3): Take the errata into account.
9225         (umulsidi3_32bit): Remove, replacing with..
9226         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
9227         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
9228         TARGET_FIX_R4000.
9229         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
9230         (smuldi3_highpart, umuldi3_highpart): Likewise.
9231         * doc/invoke.texi: Document the errata workaround.
9232
9233 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9234
9235         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
9236         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9237         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
9238         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
9239         * config/mips/mips.c (mips_idiv_insns): New function.
9240         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
9241         (mips_output_division): Add a workaround for the R4000 divide/shift
9242         errata.
9243         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
9244         the length of an "idiv" instruction.
9245         * doc/invoke.texi: Document the new switches.
9246
9247 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9248
9249         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
9250         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
9251
9252 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9253
9254         PR optimization/14229
9255         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
9256
9257 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
9258
9259         * fold-const.c (fold): Strip NOPs that change the signedness
9260         for RSHIFT too.  Expand comment.
9261
9262 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
9263
9264         PR optimization/7871
9265         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
9266         from or to call insns.
9267
9268 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9269
9270         PR optimization/7871
9271         * flow.c (propagate_one_insn): Interpret calls as setting global
9272         registers, not merely clobbering them.
9273
9274 2004-02-27  Dale Johannesen  <dalej@apple.com>
9275
9276         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
9277         config/darwin-protos.h:  Ditto.
9278         config/darwin.h:  Remove call to it.
9279         * combine.c (distribute_notes): Do not place a REG_DEAD note
9280         when value is both set and used.
9281
9282 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9283
9284         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9285         as well.
9286         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9287         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9288
9289 2004-02-27  Andrew Pinski  <apinski@apple.com>
9290
9291         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
9292         Speedup common case of the type values being in the same order.
9293
9294 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
9295
9296         * config/ia64/ia64.h (no-inline-float-divide): New option.
9297         * config/ia64/ia64.h (no-inline-int-divide): New option.
9298         * config/ia64/ia64.h (no-inline-sqrt): New option.
9299         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
9300         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
9301         * config/ia64/ia64.c (ia64_override_options): Modify error
9302         checking for inlined division/sqrt.
9303
9304 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9305
9306         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
9307         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
9308         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
9309         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
9310         copyright.
9311
9312 2004-02-27  Paul Brook  <paul@codesourcery.com>
9313
9314         * function.c (assign_parms): Don't count pretend args for alignment.
9315
9316 2004-02-27  Richard Henderson  <rth@redhat.com>
9317
9318         * passes.c: New file.
9319         * Makefile.in (OBJS-common): Add it.
9320         * diagnostic.c (rtl_dump_and_exit): Move decl ...
9321         * flags.h (rtl_dump_and_exit): ... here.
9322         * output.h (size_directive_output, last_assemble_variable_decl):
9323         Move from toplev.c.
9324         * rtl.h (reg_alloc): Move from toplev.c.
9325         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
9326         struct dump_file_info, enum dump_file_index, dump_file_tbl,
9327         open_dump_file, close_dump_file, rest_of_decl_compilation,
9328         rest_of_type_compilation, rest_of_handle_final,
9329         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
9330         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
9331         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
9332         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
9333         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
9334         rest_of_handle_tracer, rest_of_handle_if_conversion,
9335         rest_of_handle_if_after_combine, rest_of_handle_web,
9336         rest_of_handle_branch_prob,
9337         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
9338         rest_of_handle_addressof, rest_of_handle_sibling_calls,
9339         rest_of_handle_jump_bypass, rest_of_handle_inlining,
9340         rest_of_handle_null_pointer, rest_of_handle_combine,
9341         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9342         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9343         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
9344         (decode_d_option): Use enable_rtl_dump_file.
9345         (compile_file, finalize, do_compile): Move profile+combine+graph
9346         cleanup to finish_optimization_passes.
9347         * toplev.h (init_optimization_passes, finish_optimization_passes,
9348         enable_rtl_dump_file): Declare.
9349
9350 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
9351             Roger Sayle  <roger@eyesopen.com>
9352
9353         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
9354         operands to build a tree with swapped operands.
9355         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
9356         'unsignedp' predicate to specify the signedness.
9357
9358 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9359
9360         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
9361         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
9362         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
9363         comment typos and formatting.  Follow spelling conventions.
9364
9365 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
9366
9367         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
9368         fix_truncsfsi2.
9369
9370         * config/rs6000/spe.md: Delete spe_efsctuiz.
9371         Add spe_fixuns_truncsfsi2.
9372         Add spe_fix_truncsfsi2.
9373
9374 2004-02-26  Eric Christopher  <echristo@redhat.com>
9375
9376         * c-lex.c (c_lex_string_translate): New variable.
9377         (lex_string): Use to determine string translation.
9378         * c-pragma.h: Prototype.
9379         * c-parse.in (start_string_translation): New. Set above.
9380         (stop_string_translation): Ditto.
9381         (attribute, attribute_list, asm_def, asm_stmt,
9382         asm_operand): Use above functions.
9383         * cp/parser.c (cp_parser_declaration): Translate strings
9384         unless token is RID_EXTERN. Set c_lex_string_translate
9385         for recursive use.
9386         (cp_parser_asm_definition): Only translate argument strings
9387         to asms.
9388         (cp_parser_asm_operand_list): Ditto.
9389         (cp_parser_attribute_list): Do not translate attribute strings.
9390
9391 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9392
9393         * stmt.c (expand_start_case_dummy): Remove.
9394         * tree.h: Remove the corresponding prototype.
9395
9396 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9397
9398         * builtins.c (apply_args_register_offset): Remove.
9399         * tree.h: Remove the corresponding prototype.
9400
9401 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9402
9403         * stor-layout.c (is_pending_size): Remove.
9404         * tree.h: Remove the corresponding prototype.
9405
9406 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9407
9408         * recog.c (validate_replace_src): Remove.
9409         * recog.h: Remove the corresponding prototype.
9410
9411 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9412
9413         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
9414         MAYBE_REG_PARM_STACK_SPACE.
9415         * function.c: Likewise.
9416         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
9417         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9418         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
9419         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9420
9421 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9422
9423         * c-decl.c (c_expand_deferred_function): Remove.
9424         * c-tree.h: Remove the corresponding prototype.
9425
9426 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9427
9428         * postreload.c (reload_cse_move2add): Generate just a PLUS
9429         instead of an entire SET.
9430
9431 2004-02-26  Jan Hubicka  <jh@suse.cz>
9432
9433         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
9434         /pentium4m.
9435         * i386.c (override_options): Add support for new CPUs.
9436         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
9437         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
9438         constants.
9439         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
9440
9441 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
9442
9443         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
9444
9445 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
9446
9447         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
9448         (sparc_emit_fixunsdi): New prototype.
9449         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
9450         (sparc_emit_fixunsdi): New function.
9451         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
9452         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
9453         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
9454         to sparc_emit_floatunsdi.
9455         (fixuns_truncsfdi2): New expander.
9456         (fixuns_truncdfdi2): Likewise.
9457
9458 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
9459
9460         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
9461         unless HAVE_cc0.
9462
9463 2004-02-25  Richard Henderson  <rth@redhat.com>
9464
9465         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
9466         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
9467         use (op0-op1) == 0 if op0 is a pointer.
9468         * config/alpha/alpha.md (cmpdi): Use some_operand.
9469         (three comparison combine splits): Remove.
9470
9471 2004-02-25  Richard Henderson  <rth@redhat.com>
9472
9473         PR c/12794
9474         * c-common.c (handle_alias_attribute): Reject the attribute if
9475         current_function_decl is set.
9476
9477 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9478
9479         * config.gcc: Add comment describing extra_gcc_objs.
9480         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
9481         * configure.ac (extra_gcc_objs): New substitution variable.
9482         (host_extra_gcc_objs): Don't substitute.
9483         * configure: Regenerate.
9484         * Makefile.in: Use extra_gcc_objs.
9485
9486 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9487
9488         * doc/contrib.texi: Add an entry for myself.
9489
9490 2004-02-25  Jan Hubicka  <jh@suse.cz>
9491
9492         * basic-block.h (make_eh_edge, break_superblocks): Declare.
9493         * cfgbuild.c (make_eh_edge):  Make global.
9494         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
9495         * except.c (build_post_landing_pads, connect_post_landing_pads,
9496         dw2_build_landing_pads, sjlj_emit_function_enter,
9497         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9498         sjlj_build_landing_pads): Update CFG.
9499         (emit_to_new_bb_before): New function.
9500         (finish_eh_generation): Do not rebuild the CFG.
9501
9502 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9503
9504         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
9505         target_cpu_default defines.
9506         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
9507         * pa.h (TARGET_DEFAULT): Likewise.
9508
9509 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9510
9511         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
9512         comparisons with regard to signedness.
9513
9514 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9515
9516         * arm.c (thumb_legitimize_address): New function.
9517         * arm-protos.h: Prototype it.
9518         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
9519         (LEGITIMIZE_ADDRESS): Use it.
9520
9521 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
9522
9523         * reload1.c (reload): Only spill eliminable register with multiple
9524         adjacent elimination alternatives if all alternatives fail.
9525
9526 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9527
9528         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
9529         is -4095...+4095 inclusive.
9530
9531 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
9532
9533         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
9534         the bootstrap failure with Sun CC 5.4 and 5.5.
9535
9536 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9537
9538         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
9539         which modifies NEWREG.
9540         (cse_condition_code_reg): Update the mode of CC_REG in
9541         CC_SRC_INSN on our own.
9542
9543 2004-02-24  Michael Matz  <matz@suse.de>
9544
9545         * config/i386/i386.c (ix86_comp_type_attributes): Check for
9546         regparm attributes.
9547
9548 2004-02-24  Richard Henderson  <rth@redhat.com>
9549
9550         * toplev.c (dump_file_tbl): Rename from dump_file.
9551         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
9552         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
9553         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
9554         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
9555         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
9556         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
9557         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
9558         s/rtl_dump_file/dump_file/g.
9559
9560 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
9561
9562         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
9563         (spe_fixuns_truncsfsi2): Delete.
9564
9565         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
9566         (fixuns_truncsfsi2): Delete.
9567
9568 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
9569
9570         PR/14240
9571         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
9572
9573 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
9574
9575         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
9576
9577 2004-02-24  Jason Merrill  <jason@redhat.com>
9578
9579         * tree.c (check_qualified_type): New fn.
9580         (get_qualified_type): Use it.  If type already has the desired
9581         quals, just return it.
9582         * tree.h: Declare it.
9583
9584 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
9585
9586         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
9587         TARGET_SCHED_FINISH_GLOBAL): New macros.
9588
9589         * target.h (md_init_global, md_finish_global): Function
9590         declarations corresponding to new target macros.
9591
9592         * haifa-sched.c (sched_init, sched_finish): Allow target to
9593         call the new schedular hooks.
9594
9595         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
9596         call to update_life_info.
9597
9598         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
9599         flag_schedule_insns for SH4.
9600
9601         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
9602         find_set_regmode_weight, find_insn_regmode_weight,
9603         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
9604         sh_variable_issue, high_pressure, ready_reorder,
9605         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
9606         functions used to throttle the insn movement in first
9607         scheduling pass for SH.
9608
9609         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
9610         TARGET_SCHED_FINISH_GLOBAL.
9611
9612 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
9613
9614         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
9615         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
9616         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
9617         symbols in sections named by the user.
9618         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
9619         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
9620         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
9621         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
9622         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
9623         the above.
9624         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
9625         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
9626         one more pseudo to further improve code generation.
9627         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
9628         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
9629         inside UNSPEC.
9630         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
9631         * config/frv/frv.c (frv_legitimate_address_p): Added
9632         allow_double_reg_p argument.  Adjust all callers.  Use it to
9633         decide whether to enable double-register indirect addressing.
9634         (frv_funcdesc_alias_set): Remove.
9635         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9636         register.  Emit movdi_ldd.
9637         (ldd_address_operand): New.
9638         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9639         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9640         (PREDICATE_CODES): Add ldd_address_operand.
9641         * config/frv/frv.md (movdi_ldd): New.
9642         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9643         intermediate computations if possible.
9644         (symGOTOFF2reg_i): Fix harmless typo.
9645         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9646         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9647         relocated p_vaddr to vaddr type.
9648         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9649         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9650         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9651         MEM, or use a funcdesc alias set.  Use regular move instead of
9652         ldd.
9653         (dbl_memory_one_insn_operand): Recognize function descriptors by
9654         type or by alias set, and don't split them.
9655         * config/frv/frv.md (call, call_value): Never use call_internal
9656         for fdpic.
9657         (call_internal, call_value_internal): Never match for FDPIC.
9658         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9659         call_value_fdpicsi): Require FDPIC.
9660         (ldd): Removed.
9661         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9662         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9663         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9664         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9665         FDPIC.  Compute data base address.
9666         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9667         before the other self-specs are processed.
9668         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9669         Build with -fPIC.
9670         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9671         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9672         inhibit_libc is defined.
9673         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9674         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9675         __FRV_FDPIC__.
9676         (__RELOC_POINTER): Define.
9677         (_Unwind_IteratePhdrCallback): Use it.
9678         * config/frv/frv.h (Twrite): Define.
9679         (TRANSFER_FROM_TRAMPOLINE): Use it.
9680         * config/frv/linux.h (INVOKE__main): Undefine.
9681         (Twrite): Override.
9682         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9683         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9684         (-mlibrary-pic): Emphasize that this option generates EABI code.
9685         (-mcpu): Add fr550.
9686         (-mpack): Remove.
9687         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9688         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9689         and CONSTs in FDPIC mode.
9690         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9691         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9692         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9693         constants.
9694         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9695         rather than 'i' constraint for the 2-instruction alternative.
9696         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9697         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9698         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9699         EXTRA_CONSTRAINT_FOR_Y.
9700         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9701         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9702         (addsi3): Change 'Y' constraint to 'Q'.
9703         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9704         * reload.c (CONST_POOL_OK_P): New macro.
9705         (find_reloads): Use it to decide whether a constant can be forced
9706         into memory.
9707         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9708         constant satisfies got12_operand.
9709         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9710         (frv_legitimate_address_p): Check for valid unspec offsets using
9711         got12_operand rather than frv_legitimate_fdpic_operand_p.
9712         (frv_legitimate_fdpic_operand_p): Delete.
9713         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9714         or after reload.
9715         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9716         TARGET_FDPIC.
9717         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9718         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9719         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9720         (frv_fdpic_fptr_operand): Don't declare here.
9721         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9722         rather than fdpic_got12_operand.
9723         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9724         got12_operand and const_unspec_operand.
9725         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9726         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9727         (symbolic_operand): Remove.
9728         (const_unspec_operand): New predicate.
9729         * config/frv/frv.md (*movsi_got): Use got12_operand.
9730         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9731         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9732         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9733         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9734         * config/frv/frv.c (frv_unspec): New structure.
9735         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9736         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9737         validate CONST indices.  Use frv_output_const_unspec to print them.
9738         (frv_print_operand): Update call to unspec_got_name.  Use
9739         frv_output_const_unspec to print constant unspecs.
9740         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9741         Reject UNSPECs otherwise.
9742         (unspec_got_name): Take the relocation number as argument, not an
9743         rtx containing it.
9744         (frv_output_addr_const_extra): Remove, replacing with...
9745         (frv_output_const_unspec): ...this new function.
9746         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9747         (gpr_or_int12_operand): Use fdpic_got12_operand.
9748         (dbl_memory_one_insn_operand): Likewise.
9749         (fdpic_got12_operand): Use frv_const_unspec_p.
9750         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9751         are already legitimate.  Use frv_small_data_reloc_p when deciding
9752         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9753         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9754         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9755         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9756         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9757         label, for real this time.
9758         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9759         representation of visibility.
9760         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9761         such.
9762         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9763         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9764         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9765         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9766         it was explicitly disabled.
9767         (frv_stack_info): There is no need to save the link register in every
9768         frame unless TARGET_LINKED_FP is true.
9769         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9770         frame pointer if the stack pointer might change value.
9771         (frv_return_addr_rtx): Check and process "count" argument.
9772         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9773         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9774         (frv_find_base_term): Declare.
9775         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9776         (FIND_BASE_TERM): Define.
9777         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9778         small_data_register_operand, small_data_symbolic_operand.  Add
9779         symbolic_operand.
9780         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9781         (frv_print_operand_memory_reference, output_move_single): Remove
9782         special handling for unlegitimized sdata addresses.
9783         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9784         and symbolic addresses.
9785         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9786         (frv_find_base_term): New function.
9787         (int_2word_operand): Check specifically for symbolic address constants.
9788         (pic_register_operand, pic_symbolic_operand): Delete.
9789         (small_data_register_operand, small_data_symbolic_operand): Delete.
9790         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9791         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9792         (move_source_operand): Only accept CONSTs if they're a two-insn
9793         symbolic constant.
9794         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9795         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9796         using gen_symGOTOFF2reg*.
9797         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9798         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9799         themselves a cost of 3 insns.
9800         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9801         Change predicate to symbolic_operand.
9802         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9803         (*movsi_lda_sdata): Delete.
9804         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9805         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9806         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9807         frv-*-*linux*.
9808         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9809         label.
9810         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9811         -multilib-library-pic.
9812         (LINK_SPEC): Add -z text for -mfdpic.
9813         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9814         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9815         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9816         Override.
9817         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9818         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9819         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9820         crtstuff-generated files.
9821         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9822         * config.gcc: Add frv-*-*linux*.
9823         * config/frv/linux.h, config/frv/t-linux: New.
9824         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9825         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9826         when -mfdpic even if a linker script is explicitly listed.
9827         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9828         * config/frv/frv.c (frv_override_options): Clear asm_out
9829         unaligned_op for SImode on FDPIC.
9830         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9831         argument passed to decl_readonly_section.
9832         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9833         whole block run with FDPIC even with -fno-PIC.
9834         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9835         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9836         symbol or label plus offset to memory.
9837         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9838         GOTOFF and GPREL for LABEL_REF.
9839         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9840         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9841         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9842         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9843         * doc/invoke.texi: Document them.
9844         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9845         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9846         (frv_splittable_got_operand): Removed.
9847         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9848         LO_SUM.  Add comments.
9849         (frv_override_options): Moved enabling of FDPIC to
9850         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9851         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9852         (frv_legitimize_fdpic_address): Don't duplicate logic in
9853         frv_emit_movsi.
9854         (frv_gen_GPsym2reg): New.
9855         (unspec_got_name): Added gprel.
9856         (frv_expand_fdpic_call): Add support for inlining PLTs.
9857         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9858         (gpr_or_int12_operand): Added GPREL12.
9859         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9860         (small_data_symbolic_operand): Fail if FDPIC.
9861         (fdpic_splittable_got_operand): Removed.
9862         (fdpic_got12_operand): Added GPREL12.
9863         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9864         when appropriate.  Fix sdata GOTOFF.
9865         (frv_legitimate_constant_p): Require legitimate PIC operand for
9866         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9867         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9868         flag_pic case.
9869         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9870         frv_assemble_integer fails.
9871         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9872         (SUBTARGET_DRIVER_SELF_SPECS): New.
9873         (ASM_SPEC): Don't pass -mno-fdpic.
9874         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9875         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9876         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9877         -multilib-library-pic.
9878         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9879         condexec_si_media_operator, condexec_sf_add_operator and
9880         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9881         and condexec_sf_unary_operator.
9882         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9883         New.
9884         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9885         movsi_internal.  Give them internal names.  movsi_got has type
9886         int.
9887         (fdpic got splitters): Remove.
9888         (symGPREL2reg, symGPREL2reg_hilo): New.
9889         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9890         to -mlibrary-pic.  Map -multilib-library-pic to it.
9891         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9892         Document.
9893         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9894         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9895         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9896         (frv_cannot_force_const_mem): New function.
9897         (const_small_data_p, plus_small_data_p): Update comments on sdata
9898         on FDPIC.
9899         (frv_override_options): Set flag_pie for FDPIC too.
9900         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9901         call-saved registers on FDPIC.
9902         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9903         don't force LR to be preserved.
9904         (frv_expand_prologue): Likewise.
9905         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9906         (frv_frame_pointer_required): Don't force it just because the
9907         FDPIC register is used.
9908         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9909         operand only if !condexec_p.
9910         (frv_legitimize_address): Return the FDPIC-legitimized address.
9911         Don't match small data here on FDPIC.
9912         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9913         symbols.  Use TRUE/FALSE instead of 1/0.
9914         (frv_local_funcdesc_p): New.
9915         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9916         immediates when possible.
9917         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9918         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9919         an UNSPEC_GOT.
9920         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9921         12-bit immediates when possible.
9922         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9923         are not legitimate pic operands.
9924         (frv_in_small_data_p): Re-enable for FDPIC.
9925         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9926         (FRV_GLOBAL_P): Removed.
9927         * config/frv/frv.md: Add modes to CONSTs.
9928         (movsi_got): New.
9929         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9930         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9931         (fdpic splittable operations): Match on flag_pic != 1.
9932         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9933         * config/frv/frv.c (frv_asm_out_constructor,
9934         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9935         bytes, not bits.
9936         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9937         * config/frv/frv.c (frv_assemble_integer): Reject complex
9938         expressions referencing function SYMBOL_REFs.
9939         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9940         (move_source_operand): Reject CONSTs that reference function
9941         SYMBOL_REFs on FDPIC.
9942         (frv_emit_movsi): If we get such a CONST, break it up.
9943         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9944         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9945         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9946         MEM.
9947         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9948         (frv_trampoline_size): Increase for FDPIC.
9949         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9950         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9951         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9952         Disable use of GOTOFF for now.
9953         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9954         Disable use of small data in FDPIC for now.
9955         (frv_asm_output_mi_thunk): Implement for FDPIC.
9956         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9957         * config/frv/frv.c (frv_asm_out_constructor): Use
9958         frv_assemble_integer for FDPIC pointers.
9959         (frv_asm_out_destructor): Likewise.
9960         * config/frv/frv.md (ldd): Fix order of operands.  Use
9961         address_operand for input.
9962         2003-09-18  DJ Delorie  <dj@redhat.com>
9963         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9964         (unspec_got_name): Correct typo.
9965         (frv_emit_movsi): Pre-expand splittable GOTs.
9966         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9967         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9968         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9969         * config/frv/t-frv: Add -mfdpic multilibs.
9970         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9971         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9972         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9973         flag_pic, default to 32-bit pics, require DWORD ops.
9974         (frv_override_options): Add W and Z constraints.
9975         (frv_expand_prologue): No pic prologue for -mfdpic.
9976         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9977         (frv_print_operand_memory_reference): Handle GOT constants.
9978         (frv_legitimate_address_p): Allow GOT constants.
9979         (frv_legitimize_address): Handle GOT addresses too.
9980         (frv_legitimate_fdpic_operand_p): New.
9981         (frv_legitimize_fdpic_address): New.
9982         (unspec_got_name): New.
9983         (frv_output_addr_const_extra): New.
9984         (frv_expand_fdpic_call): New.
9985         (frv_fdpic_fptr_operand): New.
9986         (gpr_or_int12_operand): Handle GOT operands.
9987         (int_2word_operand): Handle GOT operands.
9988         (fdpic_operand): New.
9989         (fdpic_splittable_got_operand): New.
9990         (fdpic_got12_operand): New.
9991         (frv_emit_movsi): Handle GOT operands.
9992         (frv_assemble_integer): -mfdpic doesn't use rofixups.
9993         (frv_print_operand): Support 'g' code for GOT operands.
9994         * config/frv/frv-protos.h: Add prototypes as needed.
9995         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
9996         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
9997         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
9998         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
9999         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10000         R_FRV_GOTOFFLO): New.
10001         (movsi_high_got, movsi_lo_sum_got): New.
10002         (*movsi_pic): Don't use this splitter for -mfdpic.
10003         (addsi3): Allow GOT references also.
10004         (call, call_value): Handle -mfdpic separately.
10005         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10006         call_value_fdpicsi): New.
10007         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10008         symGOTOFF2reg_i): New.
10009         * config/frv/frv.h (MASK_FDPIC): New.
10010         (TARGET_FDPIC): New.
10011         (TARGET_SWITCHES): Add -mfdpic.
10012         (FDPIC_FPTR_REGNO): New.
10013         (FDPIC_REGNO): New.
10014         (OUR_FDPIC_REG): New.
10015         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10016         FDPIC_CALL_REGS.
10017         (REG_CLASS_NAMES): Likewise.
10018         (REG_CLASS_CONTENTS): Likewise.
10019         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10020         (EXTRA_CONSTRAINT): Add it here.
10021         (FRV_GLOBAL_P): New.
10022         (OUTPUT_ADDR_CONST_EXTRA): New.
10023
10024 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10025
10026         * config/sparc/sparc.h: Remove commented-out definitions of
10027         TARGET_EDOM and GEN_ERRNO_RTX.
10028
10029 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10030
10031         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10032         df_analyse with df_analyze.
10033
10034 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10035
10036         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10037         beginning of block.
10038
10039 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10040
10041         * calls.c (precompute_arguments): Update comment.
10042
10043 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10044
10045         * et-forest.c: Replace et_occurences with et_occurrences.
10046
10047 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10048
10049         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10050         with iv_analyze.
10051
10052 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10053
10054         * config/i386/i386.c: Rename pni to sse3.
10055         * config/i386/i386.h: Likewise.
10056         * config/i386/i386.md: Likewise.
10057         * config/i386/pmmintrin.h: Likewise.
10058         * doc/extend.texi: Likewise.
10059         * doc/invoke.texi: Likewise.
10060
10061 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10062             Kazu Hirata  <kazu@cs.umass.edu>
10063
10064         Remove -fwritable-strings.
10065         * c-common.c (fix_string_type): Don't check
10066         flag_writable_strings.
10067         (fix_string_type): Likewise.
10068         * c-opts.c (set_std_c89): Don't initialize
10069         flag_writable_strings.
10070         (set_std_c99): Likewise.
10071         * common.opt (fwritable-strings): Remove.
10072         * flags.h: Remove the external declaration of
10073         flag_writable_strings.
10074         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10075         Remove.
10076         * toplev.c (flag_writable_strings): Remove.
10077         (f_options): Remove an entry for writable-strings.
10078         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10079         flag_writable_strings.
10080         (compare_constant) <STRING_CST>: Likewise.
10081         (build_constant_desc): Likewise.
10082         * config/darwin.c (machopic_select_section): Likewise.
10083         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10084         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10085         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10086         * config/mips/mips.c (mips_select_section): Likewise.
10087         (mips_encode_section_info): Likewise.
10088         * config/pa/pa.c (pa_select_section): Likewise.
10089         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10090         * config/v850/v850.c (v850_select_section): Likewise.
10091         * doc/invoke.texi (-fwritable-strings): Remove.
10092         (-fno-const-strings): Don't mention -fwritable-strings.
10093         * doc/trouble.texi: Don't mention -fwritable-strings.
10094
10095 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10096
10097         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10098
10099 2004-02-23  Dale Johannesen  <dalej@apple.com>
10100
10101         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10102         (movdf_hardfloat64):  Ditto.
10103         (movdf_softfloat64):  Ditto.
10104
10105 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
10106         * config/rs6000/rs6000.c (function_arg): call to
10107         rs6000_mixed_function_arg for DFmode moved to allow
10108         normal DFmode incoming register assignment.
10109
10110 2004-02-23  Dale Johannesen  <dalej@apple.com>
10111
10112         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
10113         (movdf_hardfloat64):  Ditto.
10114
10115 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10116
10117         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
10118         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
10119         copyright.
10120
10121 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
10122
10123         PR c/14156
10124         * c-typeck.c (c_expand_return): Change check for VAR_DECL
10125         to use DECL_P instead.
10126
10127         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
10128         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
10129
10130 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10131
10132         * Makefile.in (opts.o): Depend on target.h.
10133         * opts.c (decode_options): Use targetm.default_short_enums
10134         instead of DEFAULT_SHORT_ENUMS.
10135         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10136         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
10137         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
10138         * target.h (gcc_target): Add default_short_enums.
10139         * config/cris/cris.h: Remove a comment about
10140         DEFAULT_SHORT_ENUMS.
10141         * config/ip2k/ip2k.h: Likewise.
10142         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
10143         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
10144
10145 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10146             Falk Hueffner  <falk@debian.org>
10147
10148         PR c/14188
10149         * builtins.c (expand_builtin_va_arg): Emit an informative message
10150         if a trap is generated.
10151         * c-typeck.c (build_function_call): Likewise.
10152
10153 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10154
10155         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
10156         fopen.
10157         * libgcov.c: Include sys/stat.h.
10158         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
10159         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
10160         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
10161         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
10162
10163 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
10164
10165         * reorg.c: Remove comments about dead ports.
10166
10167 2004-02-22  Christopher Faylor  <cgf@redhat.com>
10168
10169         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
10170         extra host object file when targetting cygwin rather than generic
10171         object files.
10172
10173 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
10174
10175         Merge from tree-ssa:
10176         2003-11-20  Richard Henderson  <rth@redhat.com>
10177
10178                 * tree-inline.c (insert_decl_map): New.
10179                 (remap_decl, remap_type, remap_block, copy_body_r,
10180                 initialize_inlined_parameters, declare_return_variable,
10181                 remap_save_expr): Use it.
10182
10183         * function.c (copy_body_r): Add mapping from id->ret_label to
10184         id->ret_label.  Revert test for ret_label.
10185
10186 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10187
10188         * genoutput.c (process_template): Strip trailing whitespace in @
10189         templates and issue a warning if there was any.
10190
10191 2004-02-21  Christopher Faylor  <cgf@redhat.com>
10192
10193         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
10194         object file when targetting cygwin.
10195         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
10196         overridden by top-level Makefile.
10197
10198 2004-02-21  Roger Sayle  <roger@eyesopen.com>
10199
10200         * config/i386/i386.c (standard_80387_constant_p): Also prefer
10201         the x87's load constant instructions when optimizing for size.
10202
10203 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
10204
10205         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
10206         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
10207         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
10208         * fold-const.c: Likewise.
10209         * simplify-rtx.c: Likewise.
10210
10211 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
10212
10213         * combine.c (can_combine_p): Don't ignore SETs marked with
10214         REG_EH_REGION notes.
10215         (try_combine): When attemting to fix unrecognized insns, don't
10216         split a PARALLEL that contains the original i2.
10217
10218 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
10219
10220         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
10221         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
10222         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
10223         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
10224         (vector, pixel, bool): #define to __vector, __pixel and __bool.
10225         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
10226         portion of header.
10227         (__altivec_link_error_invalid_argument): Remove prototype; will use
10228         __builtin_altivec_compiletime_error("vec_*") instead.
10229         (vec_*): Fix/complete set of available operation overloads given the
10230         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
10231         cv-correctness of pointer arguments; in C, always check for correct
10232         argument types before macro expansion.
10233         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
10234         defining Darwin/PowerPC-specific '-f[no-]altivec' and
10235         '-W[no-]altivec-long-deprecated' switches.
10236         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
10237         '__vector', '__pixel' and '__bool' macros using
10238         '__attribute__((altivec(...)))' types.
10239         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
10240         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
10241         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
10242         New type nodes.
10243         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
10244         handling '-W[no-]altivec-long-deprecated'.
10245         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
10246         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
10247         altivec_expand_dst_builtin): Remove casts from integer literals.
10248         (altivec_expand_builtin): Likewise; handle expansion of new
10249         '__builtin_altivec_compiletime_error' function.
10250         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
10251         types, and make them distinct from other vector types; register
10252         '__builtin_altivec_compiletime_error' function.
10253         (print_operand): For 'P', print a full target register name instead of
10254         merely its number.
10255         (rs6000_attribute_table): Add "altivec" attribute.
10256         (rs6000_handle_altivec_attribute): New function.
10257         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
10258         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
10259         maps to).
10260         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
10261         declare.
10262         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
10263
10264 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10265
10266         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
10267         check.
10268         (shift_mix4left+2): Delete redundant pattern.
10269
10270 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10271
10272         * alias.c (OUTGOING_REGNO): Don't define the default.
10273         * builtins.c (OUTGOING_REGNO): Likewise.
10274         (INCOMING_REGNO): Likewise.
10275         (apply_args_register_offset): Always use OUTGOING_REGNO.
10276         * combine.c (OUTGOING_REGNO): Likewise.
10277         * sibcall.c (OUTGOING_REGNO): Likewise.
10278         * defaults.h (INCOMING_REGNO): Provide the default.
10279         (OUTGOING_REGNO): Likewise.
10280
10281 2004-02-21  Jan Hubicka  <jh@suse.cz>
10282
10283         * params.def (max-peeled-insns, max-completely-peeled-insns,
10284         max-once-peeled-insns): Set to 400.
10285
10286 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10287
10288         PR c++/12007
10289         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
10290         are set for parameters before outputing debugging information.
10291
10292 2004-02-20  Falk Hueffner  <falk@debian.org>
10293
10294         PR target/14201
10295         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
10296         numbers.
10297
10298 2004-02-20  Per Bothner  <per@bothner.com>
10299
10300         * input.h:  Don't #include line-map.h.  It may cause link problems
10301         with undefined linemap_line_start when line-map.h is included but
10302         line-map.o is not linked, as currently happens with gengtype on
10303         compilers that don't support inline.
10304         * toplev.c:  So we do have to explicitly #include line-map.h here.
10305
10306 2004-02-20  Richard Henderson  <rth@redhat.com>
10307
10308         * doc/invoke.texi: Add -Wvariadic-macros.
10309
10310 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10311
10312         * haifa-sched.c (sched_emit_insn): Remove.
10313         * sched-int.h: Remove the corresponding prototype.
10314
10315 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10316
10317         Revert:
10318         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10319         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10320         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10321         * config/cris/cris.h: Remove a comment about
10322         DEFAULT_SHORT_ENUMS.
10323         * config/ip2k/ip2k.h: Likewise.
10324         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10325
10326 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
10327             Tom Tromey  <tromey@redhat.com>
10328
10329         * doc/install.texi: Moved --disable-libgcj and
10330         --with-system-zlib documentation to new section for
10331         Java-specific options.
10332         Added explicit Cross-Compiler-Specific Options subheading.
10333         Added section for Java-specific options.
10334
10335 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
10336
10337         * doc/install.texi (Building the Ada compiler): Remove
10338         example.
10339
10340 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10341
10342         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
10343
10344 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10345
10346         * gcc.c (process_command): Allow translation of the copyright
10347         symbol but not the rest of the copyright message.
10348         * gcov.c (print_version): Likewise.  Allow translation of the
10349         message about warranty.
10350
10351 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
10352
10353         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
10354         predicate.
10355         ("*andsi_clear"): Tweak constraints to not match postincrement.
10356         Adjust the predicate to exclude a volatile memory reference.
10357         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
10358         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
10359
10360 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
10361
10362         * move-if-change: Remove.
10363         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
10364         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
10365         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
10366         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
10367         (s-gtyp-gen, s-iov): Use the top level move-if-change.
10368         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
10369
10370 2004-02-19  James E Wilson  <wilson@specifixinc.com>
10371
10372         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
10373         for operand2.  Add condition that requires register_operand operand2
10374         before reload.
10375
10376 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
10377             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10378
10379         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
10380         * config/mips/mips.md: Expand comment above unaligned loads and stores.
10381
10382 2004-02-19  Richard Henderson  <rth@redhat.com>
10383
10384         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
10385         * tree.c (build0, build1, build2, build3, build4): Split out from...
10386         (build): ... here.  Call them.
10387         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
10388
10389         * convert.c (convert_to_integer): Remove extra build argument.
10390         * tree-inline.c (expand_call_inline): Likewise.
10391
10392 2004-02-19  Richard Henderson  <rth@redhat.com>
10393
10394         * c-opts.c (warn_variadic_macros): New.
10395         (c_common_handle_option): Set it.
10396         (sanitize_cpp_opts): Copy it to cpp_opts.
10397         * c.opt (Wvariadic-macros): New.
10398         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
10399         * cppinit.c (cpp_create_reader): Initialize it.
10400         * cppmacro.c (parse_params): Check it.
10401
10402 2004-02-19  David Daney <ddaney@avtrex.com>
10403
10404         PR preprocessor/14198
10405         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
10406         builtin_assert ("machine=mips")
10407
10408 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10409
10410         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10411         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10412         * config/cris/cris.h: Remove a comment about
10413         DEFAULT_SHORT_ENUMS.
10414         * config/ip2k/ip2k.h: Likewise.
10415         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10416
10417 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10418
10419         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
10420         when passing single SFmode quantities in general registers,
10421         put them in the high half.
10422
10423 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10424
10425         * doc/md.texi (Standard Names): Document additional dependency on
10426         fix pattern.
10427
10428         * optabs.c (ftruncify): Remove.
10429         (expand_fix): Manually inline ftruncify above.
10430         (can_fix_p): Add FIXME note.
10431
10432 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10433
10434         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
10435         spe_fixuns_truncsfsi2.
10436
10437         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
10438         fixuns_truncsfsi2.
10439
10440 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
10441
10442         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10443         * testsuite/gcc.dg/20040219-1.c: New test.
10444
10445 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
10446
10447         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
10448         "*subsf3_cconly"): Subtraction is not commutative.
10449
10450 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10451
10452         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
10453         (sdbout_symbol): If called before sdbout_init, queue DECL for
10454         later and return.
10455         (sdbout_init): Set sdbout_initialized true, process decls
10456         queued earlier by sdbout_symbol.
10457         (sdbout_finish): Use size_t for index variable.
10458
10459 2004-02-19  Jeff Law  <law@redhat.com>
10460
10461         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
10462         for unordered comparison codes.
10463
10464 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
10465
10466         * reload1.c (reload): Correct comment.
10467         (scan_paradoxical_subregs): Remove #if 0 and old comment.
10468         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
10469         register variables are not used by reload.
10470
10471 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
10472
10473         PR target/14209
10474         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
10475         constraints to not match postincrement.  Adjust the predicate to
10476         exclude a volatile memory reference.
10477
10478 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10479
10480         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
10481
10482 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10483
10484         * hooks.c (hook_void_tree_int): Remove.
10485         (hook_void_constcharptr): Likewise.
10486         (hook_int_void_0): Likewise.
10487         * hooks.h: Remove the prototypes for the above three
10488         functions.
10489         * targhooks.c (hook_bool_machine_mode_true): Remove.
10490         * targhooks.h: Remove the prototype for
10491         hook_bool_machine_mode_true.
10492
10493 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10494
10495         * emit-rtl.c (subreg_realpart_p): Remove.
10496         (reorder_insns_with_line_notes): Likewise.
10497         (end_full_sequence): Likewise.
10498         * rtl.h: Remove the prototype for the above functions.
10499
10500 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10501
10502         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
10503         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10504         config/iq2000/iq2000.h, config/m32r/m32r.h,
10505         config/pdp11/pdp11.h, config/sparc/sparc.h,
10506         config/xtensa/xtensa.h: Remove commented-out or useless
10507         definitions of CASE_VECTOR_PC_RELATIVE.
10508
10509 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10510
10511         * loop.c (all_sets_invariant_p): Remove.
10512
10513 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10514
10515         PR target/12916
10516         * config/sparc/sparc.h (NPARM_REGS): Delete.
10517         (BASE_RETURN_VALUE_REG): Likewise.
10518         (BASE_OUTGOING_VALUE_REG): Likewise.
10519         (BASE_PASSING_ARG_REG): Likewise.
10520         (BASE_INCOMING_ARG_REG): Likewise.
10521         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
10522         TARGET_ARCH64, not TARGET_V9.
10523         (function_arg_slotno): Dispatch based on the mode class.
10524         Handle vector modes like floating-point modes.
10525         (function_arg_record_value_1): Handle vector types like
10526         floating-point types.
10527         (function_arg_record_value_2): Likewise.
10528         Calculate regno after mode transformation.
10529         (function_arg): Handle vector modes like floating-point modes.
10530         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
10531         If ARCH64, do not recheck alignment.
10532         (function_arg_pass_by_reference): Reorder the conditions.
10533         (sparc_return_in_memory): Move after function_arg_padding.
10534         Implement calling conventions for vector modes.
10535         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
10536         (function_value): Move scope of 'regbase'.
10537         Implement calling conventions for vector modes.
10538         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
10539         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
10540         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
10541         the argument is passed by reference.
10542         (sparc_type_code): Handle vector types.
10543
10544 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
10545
10546         * function.c (assign_parms): When building decl_rtl for
10547         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
10548
10549 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
10550
10551         * expr.c (is_aligning_offset): Check if we are aligning the
10552         expressions's address over BIGGEST_ALIGNMENT in bytes, not
10553         in bits.
10554
10555 2003-02-18  Matt Austern  <austern@apple.com>
10556
10557         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
10558         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
10559         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
10560         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
10561         spec string.
10562         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
10563
10564 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
10565
10566         * dwarf2out.c (loclabel_num): Move outside #ifdef
10567         DWARF2_DEBUGGING_INFO and mark with GTY(()).
10568         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
10569         Mark with GTY(()).
10570         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
10571         Allocate memory with ggc_alloc.  No need to copy anything.
10572         (ia64_hpux_file_end): Update to match.
10573
10574 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10575
10576         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
10577         by default.
10578
10579 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10580
10581         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
10582         ("divmodtisi3"): Likewise.
10583         ("udivmoddi4", "udivmodtidi3"): Likewise.
10584         ("divmodsi4", "divmoddisi3"): Likewise.
10585         ("udivmodsi4", "udivmoddisi3"): Likewise.
10586         ("udivsi3", "umodsi3"): Likewise.
10587
10588 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10589
10590         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
10591         placeholder insn when chunkifying the pool.
10592
10593 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10594
10595         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
10596         generating PIC code.
10597
10598 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10599
10600         * config/h8300/h8300-protos.h: Add a prototype for
10601         h8300_expand_branch.
10602         * config/h8300/h8300.c (h8300_expand_branch): New.
10603         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
10604         bgtu, beq, bne): Call h8300_expand_branch().
10605
10606 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10607
10608         * config/h8300/h8300-protos.h: Add prototypes for
10609         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
10610         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
10611         (h8300_hard_regno_mode_ok): Likewise.
10612         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
10613         h8300_hard_regno_nregs().
10614         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
10615
10616 2004-02-18  Per Bothner  <per@bothner.com>
10617
10618         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
10619         partly reverts my 2003-10-01 change, because we're back to logically
10620         including <command line> inside the main line.
10621         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
10622         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
10623         Fixes PR preprocessor/14103.
10624
10625         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
10626         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
10627         (cpp_push_include):  Don't need to increment pfile's line field.
10628         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
10629
10630         * c-ppoutput.c (print struct):  New first_time field.
10631         (init_pp_output):  Set print.first_time.
10632         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
10633         which is set also for (say) <command line>.  Clear print.first_time.
10634
10635         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10636         does not match the code, so fix both.
10637         (should_stack_file):  Inline include_pch_p function.
10638         (include_pch_p):  Remove pointless function.
10639
10640         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10641
10642 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10643
10644         * config/h8300/h8300.md (four define_peephole2's): Use
10645         h8300_regs_ok_for_stm().
10646
10647 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10648
10649         * config/h8300/h8300-protos.h: Update the prototype for
10650         expand_a_rotate().
10651         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10652         argument.
10653         * config/h8300/h8300.md: Update all callers.
10654
10655 2004-02-18  Jan Hubicka  <jh@suse.cz>
10656
10657         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10658         floats.
10659         (simplify_binary_operation): Deal with logicals on floats.
10660
10661         * i386.md (SSE fabs splitters): Emit new patterns.
10662         (SSE cmov splitters): Likewise.
10663         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10664         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10665         subregs.
10666         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10667         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10668
10669 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10670
10671         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10672         by hand.
10673         (output_a_rotate): Tweak a comment.
10674         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10675         (*rotlhi3_1): Change to rotlhi3_1.
10676         (*rotlsi3_1): Change to rotlsi3_1.
10677
10678 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10679
10680         PR target/13866
10681         * arm.c (load_multiple_operation): Don't insist that the source reg
10682         of a post-increment component is the same as the destination.
10683         (store_multiple_operation): Likewise.
10684
10685 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10686
10687         * config/h8300/h8300.md: Move movsf patterns into one section
10688         of the file.
10689
10690 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10691
10692         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10693         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10694         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10695         config/mips/linux64.h, config/pa/pa-64.h,
10696         config/rs6000/aix51.h, config/rs6000/aix52.h,
10697         config/rs6000/spe.md, config/sparc/linux.h,
10698         config/sparc/linux64.h: Update copyright.
10699
10700 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10701
10702         * config/h8300/h8300.md: Move push patterns into one
10703         section of the file.
10704
10705 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10706
10707         PR c++/11326
10708         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10709         fntype.
10710
10711 2004-02-18  Paul Brook  <paul@codesourcery.com>
10712
10713         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10714
10715 2004-02-18  Paul Brook  <paul@codesourcery.com>
10716
10717         PR debug/12934
10718         * dwarf2out.c (loc_descriptor_from_tree): Handle
10719         EXPR_WITH_FILE_LOCATION.
10720
10721 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10722
10723         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10724         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10725         trailing whitespace from instructions.
10726
10727 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10728
10729         * configure.ac: When generating auto-build.h, pass
10730         --enable-languages to the sub-configure.
10731         Put quotes around ${program_transform_name} when generating
10732         name of as, ld, nm, objdump.
10733         * configure: Regenerate.
10734
10735 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10736
10737         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10738         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10739         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10740         (s-preds, s-iov): Do not depend on move-if-change.
10741
10742 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10743
10744         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10745         (insert_save): Likewise.
10746
10747 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10748
10749         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10750         warning.
10751
10752 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10753
10754         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10755         *one_cmplsi2_h8300.
10756         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10757
10758 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10759
10760         * config/h8300/h8300-protos.h: Update the prototype of
10761         fix_bit_operand().
10762         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10763         argument "what".
10764         * config/h8300/h8300.md: Update all callers.
10765
10766 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10767
10768         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10769         the last argument to "code" from "type".
10770
10771 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10772
10773         * config/h8300/h8300.c: Remove an extern declaration of
10774         rtx_equal_function_value_matters.
10775
10776 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10777
10778         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10779         by hand.
10780         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10781         (*iorqi3_1): Change to iorqi3_1.
10782         (*xorqi3_1): Change to xorqi3_1.
10783
10784 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10785
10786         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10787         typos.
10788
10789 2004-02-17  Jan Hubicka  <jh@suse.cz>
10790
10791         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10792
10793 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10794
10795         PR optimization/14119
10796         * combine.c (try_combine): When attemting to fix unrecognized insns,
10797         don't delete SETs marked with REG_EH_REGION notes.
10798
10799 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10800
10801         * combine.c (simplify_if_then_else): Do not replace
10802         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10803         modes differ.
10804
10805 2004-02017  Steven Bosscher  <stevenb@suse.de>
10806
10807         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10808         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10809         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10810         * ada/utils.c: Likewise.
10811         * cp/decl.c: Likewise.
10812         * f/com.c: Likewise.
10813         * java/class.c: Likewise.
10814
10815 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10816
10817         * config/h8300/h8300.md: Fix comment typos.
10818
10819 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10820
10821         * config/mips/t-iris6gld: Renamed to ...
10822         * config/mips/t-irix-gld: ... this.
10823         * config.gcc (mips-sgi-irix6*): Reflect this
10824         (mips-sgi-irix5*): Use it with GNU ld.
10825
10826         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10827         to ...
10828         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10829         * config/mips/t-irix-gld: Reflect this.
10830         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10831
10832         * config/mips/iris5gld.h: New file.
10833         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10834         Only use collect2 without gas.
10835
10836         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10837         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10838         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10839         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10840
10841         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10842         * config/mips/iris5.h: ... here.
10843
10844         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10845         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10846         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10847
10848         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10849         using irix_startfile_spec, irix_endfile_spec.
10850
10851 2004-02-16  Gunther Nikl  <gni@gecko.de>
10852
10853         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10854
10855 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10856
10857         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10858         insns by hand.
10859
10860 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10861
10862         * cfghooks.c (split_edge): Speed up updating of dominators.
10863
10864 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10865
10866         PR c++/11326
10867         * c-common.c (flag_abi_version): Remove.
10868         * c-common.h (flag_abi_version): Likewise.
10869         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10870         * c.opt (fabi-version): Remove.
10871         * calls.c (expand_call): Always pass a function type to
10872         struct_value_rtx.  Use convert_memory_address.
10873         * common.opt (fabi-version): Add it.
10874         * flags.h (flag_abi_version): Likewise.
10875         (abi_version_at_least): New macro.
10876         * opts.c (common_handle_option): Add OPT_fabi_version.
10877         * toplev.c (flag_abi_version): Define it.
10878         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10879         New function.
10880         (ia64_output_mi_thunk): Use it.
10881         (ia64_struct_value_rtx): Likewise.
10882
10883 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10884
10885         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10886         Don't generate insns by hand.
10887
10888 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10889
10890         PR c++/14178
10891         * doc/invoke.texi (fabi-version): The default is 2 now.
10892
10893 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10894
10895         * loop-iv.c: New file.
10896         * Makefile.in (loop-iv.o): New.
10897         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10898         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10899         num_loop_branches): New functions.
10900         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10901         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10902         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10903         get_simple_loop_desc, free_simple_loop_desc): Declare.
10904         (simple_loop_desc): New inline function.
10905         (struct rtx_iv, struct niter_desc): New.
10906         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10907         * expr.c (force_operand): Handle subregs of expressions created by
10908         loop unroller.
10909         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10910         parts of the initialization to toplev.c
10911         * loop-unroll.c (loop_exit_at_end_p): New.
10912         (unroll_and_peel_loops): Call iv_analysis_done.
10913         (decide_peel_once_rolling, decide_peel_completely,
10914         decide_unroll_stupid, decide_unroll_constant_iterations,
10915         decide_unroll_runtime_iterations, decide_peel_simple,
10916         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10917         unroll_loop_runtime_iterations): Use new simple loop analysis.
10918         * loop-unswitch.c (compare_and_jump_seq): New.
10919         (may_unswitch_on_p): Renamed to ...
10920         (may_unswitch_on): Use new iv analysis.
10921         (reversed_condition): Export.
10922         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10923         * predict.c (estimate_probability): Use new simple loop analysis.
10924         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10925         canon_condition, simplify_using_condition): Declare.
10926         * stor-layout.c (get_mode_bounds): New.
10927         * toplev.c (rest_of_handle_loop2): Some parts of
10928         initialization/finalization moved here from loop-init.c.
10929
10930 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10931
10932         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10933         pointer.
10934         (CALL_USED_REGISTERS): Likewise.
10935         (REG_ALLOC_ORDER): Likewise.
10936         (REG_CLASS) <GENERAL_REGS>: Likewise.
10937
10938 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10939
10940         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10941         in associative operators.
10942         * rtlanal.c (commutative_operand_precedence): Create some new
10943         variables.  Prefer a commutative operand on the left, then
10944         binary expressions, then NEG and NOT.
10945
10946 2004-02-16  Matthias Klose  <doko@debian.org>
10947
10948         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10949         in terms of SHLIB_SOVERSION.
10950         * config/m68k/t-slibgcc-elf-ver: New file.
10951         * config/pa/t-slibgcc-elf-ver: New file.
10952         * config.gcc (m68k-linux, parisc-linux): Use them when not
10953         sjlj exceptions are not configured.
10954
10955 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10956
10957         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10958
10959 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10960
10961         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10962
10963 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10964
10965         * doc/sourcebuild.texi: Mention backends.html.
10966
10967 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10968
10969         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10970         line-map.c, line-map.h, var-tracking.c: Fix comment
10971         formatting.
10972
10973 2004-02-16  Richard Henderson  <rth@redhat.com>
10974
10975         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10976
10977         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10978
10979 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10980
10981         * config/h8300/h8300.md: Remove unnecessary parallels from
10982         all define_insn and define_split patterns.
10983
10984 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10985
10986         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
10987         "clobber").
10988
10989 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
10990
10991         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
10992         '%#'.
10993
10994 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10995
10996         * config/ia64/ia64.c, config/mips/mips.c,
10997         config/mmix/mmix-modes.def: Fix comment typos.
10998
10999 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11000
11001         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11002         (get_directive_line): Remove unused function prototype.
11003
11004 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11005
11006         * tree-inline.c (copy_body_r): Do not replace ret_label.
11007
11008 2004-02-14  Jan Hubicka  <jh@suse.cz>
11009
11010         * i386.c (x86_four_jump_limit): New variable.
11011         (k8_avoid_jump_misspredicts): Rename to ...
11012         (ix86_avoid_jump_misspredicts): .. this one.
11013         (ix86_pad_returns): Break out from ...
11014         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11015         to.
11016         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11017
11018 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11019
11020         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11021         PARALLEL is NULL.
11022
11023 2004-02-14  Per Bothner  <per@bothner.com>
11024
11025         * fix-header.c (line_table):  Move local variable in main to global.
11026         * scan.h (line_table):  Use it.
11027         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11028         line (recently renamed to src_loc) before calling recognized_function.
11029
11030 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11031
11032         * Makefile.in: Fix comment typos.
11033
11034 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11035
11036         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11037         for start_value when it is directly moved into reg, and factorize
11038         the retrieval of GET_MODE (reg).
11039
11040 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11041
11042         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11043         (mips_load_got_global): Delete.
11044         (mips_gotoff_page): Declare.
11045         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11046         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11047         UNSPEC_LOAD_GOT pattern rather than a MEM.
11048         (*load_got[sd]i): New patterns.
11049         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11050         (mips_load_got_page, mips_load_got_global): Delete.
11051         (mips_gotoff_page): New function.
11052         (override_options): Don't initialize mips_got_alias_set.
11053
11054 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11055
11056         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11057         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11058         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11059         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11060         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11061         * config/mips/mips.c: Fix some overly-long lines.
11062         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11063         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11064
11065 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11066
11067         * configure.ac: Search for as, ld below libexec/gcc.
11068         * configure: Regenerate.
11069
11070 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11071
11072         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11073         __builtin_arm_setwcx ().
11074         * config/arm/arm.c (arm_expand_builtin): Generate operands
11075         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11076
11077 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11078
11079         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11080         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11081         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11082         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11083         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11084         (_mm_mulhi_pu16): Likewise.
11085
11086 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11087
11088         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11089         DECL_NAME != 0 before dereferencing.
11090
11091 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11092
11093         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11094         (s390_output_addr_const_extra): Declare.
11095         (s390_output_pool_entry): Remove FILE * argument.
11096         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11097         (s390_output_addr_const_extra): New function.
11098         (print_operand_address): Call output_addr_const instead of
11099         s390_output_symbolic_const.
11100         (print_operand): Likewise.
11101         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11102         Remove FILE * argument.
11103         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11104         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11105         call.
11106
11107 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11108
11109         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
11110         (struct edge, struct vertex, struct graph): New.
11111         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
11112         free_graph): New functions.
11113
11114 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
11115
11116         * config/mips/mips.md (casesi_internal, casesi_internal_di):
11117         Use ".set macro" to avoid warnings about multi-instruction
11118         macros, since they're intentional.
11119
11120 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
11121
11122         * config/darwin.h: Add include guards.  Remove old, now incorrect,
11123         comment about STANDARD_EXEC_PREFIX.
11124
11125         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
11126         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
11127         for installing .1 manpages.  Add rules for installing cpp
11128         and gcov manpages under their installed names.
11129
11130 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
11131
11132         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
11133         host, but try LD_FOR_TARGET first.
11134         * configure: Rebuilt.
11135
11136 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11137
11138         * dbxout.c: Move declaration of dbxout_type_decl outside
11139         #ifdef DBX_DEBUGGING_INFO.
11140         * c-parse.in: Don't give the asmdef production a type.
11141
11142 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11143
11144         * debug.h (struct gcc_debug_hooks): Add type_decl field.
11145         (debug_nothing_tree_int): Prototype.
11146         (dwarf_debug_hooks): Delete, unused.
11147         * debug.c (do_nothing_debug_hooks): Update.
11148         (debug_nothing_tree_int): New function.
11149         * langhooks.h (struct lang_hooks_for_decls):
11150         Remove builtin_type_decls field.
11151         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
11152         (LANG_HOOKS_DECLS): Update.
11153         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
11154         Use debug_hooks->type_decl.
11155         * dbxout.c (preinit_symbols): New static.
11156         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11157         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
11158         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
11159         for symbols to output.
11160         (dbxout_type_decl): New function.
11161         (dbxout_symbol): If called before dbxout_init has run, queue
11162         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
11163         to TYPE_DECLs before emitting them.
11164         * xcoffout.c (assign_type_number): Delete.
11165         (xcoff_type_numbers): New static table.
11166         (xcoff_assign_fundamental_type_number): New function.
11167         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
11168         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
11169         * sdbout.c: Include varray.h.
11170         (deferred_global_decls): New static.
11171         (sdb_debug_hooks): Update.
11172         (sdbout_global_decl): If we can't emit something right now,
11173         remember it in deferred_global_decls.
11174         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
11175         (sdbout_init): Initialize deferred_global_decls.
11176         * Makefile.in: Update dependencies of sdbout.o.
11177         * dwarf2out.c (dwarf2out_type_decl): New function.
11178         (dwarf2_debug_hooks): Update.
11179         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
11180         * c-decl.c (getdecls): Just return 0.
11181         (check_for_loop_decls): Don't use getdecls.
11182         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
11183         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
11184
11185 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
11186
11187         * config/s390/s390.c (s390_sched_reorder2): Remove.
11188         (TARGET_SCHED_REORDER2): Do not redefine.
11189
11190 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11191
11192         * c-parse.in (maybe_type_qual): Delete.
11193         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
11194         (asm_argument): New grammar rules.
11195         (extdef_1): Use asmdef.
11196         (maybeasm): Move down with other asm rules; use simple_asm_expr.
11197         (xexpr): Move up with other expression rules.
11198         (stmt): Use asm_stmt.
11199
11200         * c-typeck.c (build_asm_expr): New function - body mostly
11201         pulled from build_asm_stmt.
11202         (build_asm_stmt): Just handle tacking on the volatile qualifier.
11203         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
11204
11205 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
11206
11207         PR bootstrap/13617
11208         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
11209         (mips_declare_object): Make variadic.
11210         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
11211         mips_output_aligned_decl_common.
11212         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
11213         (mips_declare_object): Make variadic.
11214
11215 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11216
11217         * function.c (update_epilogue_consts): Teach about binary operations.
11218
11219         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
11220         previous MEM_VOLATILE in REF.
11221         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
11222         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
11223
11224 2004-02-12  Gunther Nikl  <gni@gecko.de>
11225
11226         * config.gcc: Restore support for m68k-openbsd.
11227
11228 2004-02-12  Jan Hubicka  <jh@suse.cz>
11229
11230         * tree-optimize.c (tree_rest_of_compilation): Do not release
11231         DECL_ARGUMENTS.
11232
11233 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
11234
11235         * doc/install.texi: Fix the spelling of "explicitly".
11236
11237 2004-02-11  Eric Christopher  <echristo@redhat.com>
11238
11239         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
11240         duplicate argument structure of cpp_interpret_string.
11241         * cpphash.h: Move prototype...
11242         * cpplib.h: Here.
11243         * cpplib.c: Fix calls to match new function signature.
11244
11245 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11246
11247         PR c/456
11248         * cppexp.c (num_binary_op): Don't allow comma operators in #if
11249         constant expressions at all outside C99 mode if pedantic.
11250
11251 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
11252
11253         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
11254         (log10_optab, log2_optab): Define corresponding macros.
11255         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
11256         * genopinit.c (optabs): Implement log10_optab and log2_optab
11257         using log10?f2 and log2?f2 patterns.
11258         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
11259         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
11260         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
11261         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11262
11263         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
11264         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
11265         log2, log2f and log2l built-ins as inline x87 intrinsics.
11266
11267 2004-02-11  Richard Henderson  <rth@redhat.com>
11268
11269         PR target/1532
11270         * flow.c (insn_dead_p): A clobber of a dead hard register is a
11271         dead insn after reload.
11272
11273 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
11274
11275         * tree.h (frame_base_decl): Add GTY marker.
11276         * var-tracking.c (frame_base_decl): Likewise.
11277
11278 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
11279
11280         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
11281         incorrect, hunk.
11282         (add_location_or_const_value_attribute): Use text_section_label,
11283         not TEXT_SECTION_NAME.
11284
11285 2004-02-11  Per Bothner  <per@bothner.com>
11286
11287         Represent column numbers using line-map's source_location.
11288         The "next available source_location" is now managed internally by
11289         line-maps.c rather than by clients.
11290         * line-map.h (struct line_map):  New field column_bits.
11291         <from_line>:  Rename field to start_location.
11292         (struct line_maps):  New fields highest_location and max_column_hint.
11293         (linemap_check_files_exited):  New declaration.
11294         (linemap_line_start):  New declaration.
11295         (linemap_add):  Remove from_line parameter; use highest_location field.
11296         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
11297         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
11298         (CURRENT_LINE_MAP):  Remove macro.
11299         (linemap_position_for_column):  New inline function.
11300         * line-map.c (linemap_init):  Clear new fields.
11301         (linemap_check_files_exited):  New function, extracted from ...
11302         (linemap_free):  Use linemap_check_files_exited.
11303         (linemap_add):  Remove from_line parameter.  Various updates.
11304         (linemap_line_start):  New function.
11305         (linemap_lookeup):  Update for new field names.
11306         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
11307         linemap_position_for_column may unpredictably change the current map,
11308         it is cleaner and simpler for us to not cache it in cpp_reader.
11309         (struct cpp_buffer):  New sysp field.
11310         Changed warned_cplusplus_comments and from_stage3 to bitfields.
11311         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
11312         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
11313         current map using linemap_lookup.
11314         (do_linemarker):  Also set buffer's sysp field.
11315         (destringize_and_run):  No longer need to decrement current line.
11316         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
11317         (search_path_head, open_file_failed):  Use buffer's sysp.
11318         (cpp_make_system_header):  Get current map using linemap_lookup.
11319         Also set buffer's sysp flag.
11320         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
11321         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
11322         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
11323         (struct cpp_reader):  ... and adding saved_line_base field.
11324         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
11325         Update accordingly.  Don't adjust line.
11326         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
11327         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
11328         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
11329         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
11330         * cpplex.c (_cpp_lex_direct):  Likewise.
11331         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
11332         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
11333         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
11334         Remove col field as it is now subsumed by src_loc.
11335         * cpperror.c:  Update various field, parameter, and macro names.
11336         (print_location):  If col==0, try SOURCE_COLUMN of line.
11337         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
11338         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
11339         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
11340         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
11341         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
11342         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
11343         (_cpp_lex_direct):  Use linemap_position_for_column.
11344         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
11345         parameter.  Instead get it from the line_table global.  Adjust callers.
11346         (print):  Remove map field.  Replace line field to src_line.
11347         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
11348         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
11349         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
11350         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
11351         * cpptrad.c (copy_comment):  Rename variable.
11352         * c-lex.c (map):  Remove static variable, for same reason we removed
11353         cpp_reader's map field.
11354         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
11355         to call linemap_lookup.
11356         (cb_line_change):  Token's line field replaced by src_loc.
11357         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
11358         Don't save new_map.
11359
11360         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
11361         source_location.
11362
11363 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11364
11365         * config/rs6000/altivec.md (*movv4si_internal): At least one
11366         operand must be register_operand.
11367         (*movv8hi_internal1): Likewise.
11368         (*movv16qi_internal1): Likewise.
11369         (*movv4sf_internal1): Likewise.
11370
11371 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
11372
11373         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
11374         operand.
11375         (movv4hi_internal): Same.
11376         (movv2sf_internal): Same.
11377         (movv1di_internal): Same.
11378
11379 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
11380
11381         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
11382         TARGET_OLDABI consistently.
11383         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
11384         mips_va_arg,override_options,compute_frame_size,
11385         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
11386         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
11387         and TARGET_OLDABI consistently.
11388         * config/mips/mips.md (exception_receiver): Likewise.
11389         * config/mips/linux64.h: Likewise.
11390
11391 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11392
11393         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
11394         Set AltiVec ABI and vrsave as default for ppc64 linux.
11395         (init_cumulative_args): Post error, if try to return
11396         value in AltiVec register without enable AltiVec.
11397         (function_arg_advance): Ditto for passing arguments.
11398
11399 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
11400
11401         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
11402         a label before updating its usage count.
11403
11404 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
11405
11406         * doc/install.texi: Remove extra cd.
11407
11408 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
11409
11410         * c-common.c (vector_size_helper): Remove; call
11411         reconstruct_complex_type() instead.
11412         * tree.c (reconstruct_complex_type): New function
11413         (formerly vector_size_helper() in c-common.c).
11414         (make_vector): Make externally visible.
11415         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
11416
11417 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11418
11419         * config/h8300/h8300-protos.h: Add a prototype for
11420         h8300_regs_ok_for_stm.
11421         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
11422         * config/h8300/h8300.md (stm_h8300s_2_advanced,
11423         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
11424         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
11425         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
11426         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
11427         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
11428         ldm_h8300s_4_normal, ldm_h8300s_4): Use
11429         h8300_regs_ok_for_stm().
11430
11431 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11432
11433         PR c/14088
11434         * real.c (real_from_string): Look for 'X' as well as 'x' in
11435         hexfloat strings.
11436
11437 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11438
11439         * config/h8300/h8300.md: Remove an incorrect comment about
11440         peephole2.  Add comments.
11441
11442 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
11443
11444         PR/14058
11445         * emit-rtl.c (set_decl_incoming_rtl): New.
11446         * tree.h (set_decl_incoming_rtl): New.
11447         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
11448         DECL_INCOMING_RTL.
11449         * ada/misc.c (adjust_decl_rtl): Likewise.
11450
11451 2004-02-10  Per Bothner  <per@bothner.com>
11452
11453         * c-opts.c (c_common_post_options):   Don't emit working directory
11454         in cpp output if -P was specified.
11455
11456 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11457
11458         PR c/14092
11459         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
11460         negate_expr back to the original type.
11461
11462 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
11463
11464         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
11465         bump retaddr here.
11466
11467 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11468
11469         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
11470         gen_lowpart_SUBREG): Move under the file in which they
11471         are actually declared.
11472
11473 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
11474
11475         * doc/sourcebuild.texi: Add libada documentation.
11476
11477         * doc/install.texi: Update documentation on Ada build, now
11478         that the GNAT lib and tools are built automatically.
11479
11480 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
11481
11482         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
11483         && TARGET_IRIX.
11484
11485 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
11486
11487         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
11488         boundaries outside build_component_ref() call (a macro in ObjC++).
11489
11490 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
11491
11492         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
11493         (init_cumulative_args): Likewise.
11494         (a7_overlap_mentioned_p): Delete prototype.
11495         * config/xtensa/xtensa.c (struct machine_function): Replace
11496         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
11497         Add set_frame_ptr_insn field.
11498         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
11499         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
11500         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
11501         at the function entry and replace the operand with the pseudo.
11502         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
11503         argument and record this flag in CUMULATIVE_ARGS.
11504         (function_arg): Remove result_mode and special-case code to handle
11505         arguments in a7.  Instead, set need_a7_copy flag when there is an
11506         incoming argument in a7.
11507         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
11508         and use the value recorded in cfun->machine->set_frame_ptr_insn.
11509         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
11510         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
11511         special-case code.
11512         (a7_overlap_mentioned_p): Delete.
11513         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
11514         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
11515         arguments to init_cumulative_args and pass "incoming" flag instead.
11516         (BLOCK_REG_PADDING): Delete.
11517         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
11518         checks for reload_in_progress and reload_completed.  Update calls to
11519         xtensa_copy_incoming_a7.
11520         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
11521         to call xtensa_copy_incoming_a7.
11522
11523 2004-02-09  DJ Delorie  <dj@redhat.com>
11524
11525         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
11526         longer modify standard_exec_prefix, standard_bindir_prefix, or
11527         standard_startfile_prefix.
11528
11529 2004-02-09  James E Wilson  <wilson@specifixinc.com>
11530
11531         PR c++/11295
11532         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
11533         to expand_expr_real call, and pass in alt_rtl as last argument.
11534
11535         PR libstdc++/5625
11536         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
11537         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
11538         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
11539         * except.c (expand_builtin_extend_pointer): New.
11540         * except.h (expand_builtin_extend_pointer): Declare.
11541
11542 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
11543
11544         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
11545         unaligned loads and stores.
11546
11547 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11548
11549         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
11550         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
11551
11552         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
11553         * config/mips/iris5.h: ... here.
11554         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
11555
11556         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
11557         * config/mips/iris5.h: ... here.
11558
11559 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11560
11561         * configure.ac: Remove default executable files before AC_PROG_CC.
11562         * configure: Regenerate.
11563
11564 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
11565
11566         PR target/13721
11567         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
11568         print a operand other than a register.
11569
11570 2004-02-09  Roger Sayle  <roger@eyesopen.com>
11571
11572         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
11573         tree code rather than call fold_convert, which doesn't specify a
11574         default floating point to integer conversion.
11575
11576 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
11577
11578         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
11579         code to support SGS assembler.  Reformat adjacent code where possible.
11580         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
11581         definition.
11582         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
11583         for '%#'.
11584         * config/m68k/linux.h, config/m68k/m68k.c,
11585         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
11586         macros and asm_printf() format strings.
11587         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
11588         * config/m68k/linux.h: Update copyright.
11589         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
11590
11591 2004-02-08  Andreas Schwab  <schwab@suse.de>
11592             Bernardo Innocenti  <bernie@develer.com>
11593
11594         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
11595         REGISTER_PREFIX.
11596         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
11597         frame pointer register, overridable by OS targets.
11598         * (M68K_REGNAME): Macro to obtain register name for asm output,
11599         eventually replacing %a6 with M68K_FP_REG_NAME.
11600         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
11601         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
11602         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
11603         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
11604         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
11605
11606 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11607
11608         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
11609         hook_rtx_tree_int_null.
11610         * targhooks.c (default_struct_value_rtx): Remove.
11611         * targhooks.h: Remove the prototype for
11612         default_struct_value_rtx.
11613         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11614         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
11615         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11616         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
11617         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
11618         config/rs6000/rs6000.c, config/s390/s390.c,
11619         config/stormy16/stormy16.c, config/v850/v850.c,
11620         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
11621         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
11622
11623 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11624
11625         * README.Portability: Change "ISO C89" to "ISO C90".
11626         * c-parse.in (primary, initelt): Likewise.
11627
11628 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
11629
11630         * real.c (encode_ibm_extended): Normalize the input value before
11631         converting it to a double.  Handle the case where a normal value
11632         rounds to infinity.
11633
11634 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11635
11636         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11637         warning.
11638         * cse.c (preferrable): Change to preferable. Update all of its
11639         callers.
11640         * genautomata.c (ainsn): Change
11641         first_ainsn_with_given_equialence_num to
11642         first_ainsn_with_given_equivalence_num.  Update all of its
11643         references.
11644
11645 2004-02-08  Jan Hubicka  <jh@suse.cz>
11646
11647         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11648
11649 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11650
11651         * function.c (assign_parms): Fix formatting.
11652
11653 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11654
11655         * default.h (PROMOTE_PROTOTYPES): Remove.
11656         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11657         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11658         EXPAND_BUILTIN_SAVEREGS): Poison.
11659         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11660         hook_bool_tree_false.
11661         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11662         * target.h: Replace SETUP_INCOMING_VARARGS with
11663         targetm.calls.setup_incoming_varargs().
11664         * targhooks.c (default_promote_function_return): Remove.
11665         (default_promote_prototypes): Likewise.
11666         (default_struct_value_rtx): Always abort().
11667         (default_expand_builtin_saveregs): Always print an error
11668         message.
11669         (default_setup_incoming_varargs): Do nothing.
11670         (default_pretend_outgoing_varargs_named): Don't depend on
11671         SETUP_INCOMING_VARARGS.
11672         * targhooks.h: Remove the prototype for
11673         default_promote_function_return and
11674         default_promote_prototypes.
11675
11676 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11677
11678         * system.h (SHARED_SECTION_ASM_OP): Poison.
11679         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11680         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11681
11682 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11683
11684         Bug 13856
11685         * c-decl.c (diagnose_mismatched_decls): Only give special
11686         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11687         is also true.
11688         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11689         DECL_FUNCTION_CODE when defining a built-in function.
11690         Don't update DECL_ESTIMATED_INSNS.
11691         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11692         FUNCTION_DECLs.
11693         * tree.h: Delete DECL_ESTIMATED_INSNS.
11694         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11695         (expand_call_inline, optimize_inline_calls): Don't update
11696         DECL_ESTIMATED_INSNS nor inlined_insns.
11697         * cgraphunit.c (cgraph_analyze_function): Don't update
11698         DECL_ESTIMATED_INSNS.
11699
11700 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11701
11702         * c-common.c (shadow_warning): Delete.
11703         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11704         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11705         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11706         * c-parse.in (free_parser_stacks): Delete.
11707
11708 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11709
11710         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11711         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11712         Use the top level mkinstalldirs, not the one in the gcc subdir.
11713         * mkinstalldirs: Remove (from the gcc subdir).
11714
11715 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11716
11717         PR middle-end/13696
11718         * fold-const.c (fold_convert): New function to provide type
11719         conversion to the middle-end without using convert.
11720         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11721         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11722         invert_truthvalue, optimize_bit_field_compare, range_binop,
11723         decode_field_reference, make_range, build_range_check, unextend,
11724         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11725         fold_binary_op_with_conditional_arg, fold_inf_compare,
11726         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11727         convert with calls to fold_convert.
11728
11729 2004-02-07  Jan Hubicka  <jh@suse.cz>
11730
11731         * genrecog.c (find_operand): add extra argument stop.
11732         (validate_pattern): Verify that mach_dup is duplicating operand
11733         defined lexically earlier.
11734
11735 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11736
11737         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11738         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11739         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11740         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11741         config/ia64/ia64.h, config/ip2k/ip2k.h,
11742         config/iq2000/iq2000.h, config/mips/iris5.h,
11743         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11744         config/rs6000/aix51.h, config/rs6000/aix52.h,
11745         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11746         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11747         config/sparc/linux.h, config/sparc/linux64.h,
11748         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11749         config/xtensa/xtensa.h: Remove the definitions of
11750         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11751         MAX_WCHAR_TYPE_SIZE.
11752         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11753         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11754
11755 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11756
11757         PR bootstrap/13990
11758         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11759         gen_rtx_NE.
11760
11761 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11762
11763         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11764         #ifdef ENABLE_CHECKING and #endif.
11765
11766 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11767
11768         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11769         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11770         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11771         integer types and floating point with unsafe_math_optimizations.
11772         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11773         Optimize A - B as A + (-B), if B is easily negated.
11774
11775 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11776
11777         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11778         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11779         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11780         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11781         Update copyright.
11782
11783 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11784
11785         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11786
11787 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11788
11789         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11790         glibc 2.3 or better.
11791
11792 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11793
11794         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11795         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11796
11797 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11798
11799         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11800         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11801         (SHLIB_MKMAP_OPTS): Delete.
11802         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11803         (bispecs): Add rule.
11804         * config/rs6000/libgcc-ppc64.ver: New file.
11805         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11806         (__floatdidf, __floatdisf): Optimize multiply.
11807         (__fixunstfdi): New function.
11808         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11809         real and imag parts larger than one register.
11810         (function_arg): Correct type of reg used when fp arg split partially
11811         to stack.
11812         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11813         and __MACH__ or __powerpc64__.
11814
11815 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11816             Ulrich Weigand  <uweigand@de.ibm.com>
11817
11818         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11819         of gen_highpart or gen_lowpart when the floating point format is
11820         wider than the result mode.
11821
11822 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11823
11824         * dwarf2out.c (loclabel_num): Move into #ifdef
11825         DWARF2_DEBUGGING_INFO.
11826
11827 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11828
11829         * objc/objc-act.c (build_super_template) the 'class' field of
11830         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11831         (get_super_receiver): Likewise.
11832
11833 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11834
11835         * reload1.c (check_eliminable_occurrences): Optimize the reset
11836         of can_eliminate.
11837         (eliminate_regs_in_insn): Likewise.
11838
11839 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11840             Josef Zlomek  <zlomekj@suse.cz>
11841
11842         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11843         at the beginning of function, call dwarf2out_var_location for
11844         NOTE_INSN_VAR_LOCATION note.
11845         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11846         decl_loc_table): New.
11847         (lookup_decl_loc): New function.
11848         (add_var_loc_to_decl): New function.
11849         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11850         only if can_use_fbreg.
11851         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11852         functions.
11853         (loc_descriptor): Likewise. Process VAR_LOCATION.
11854         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11855         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11856         can_use_fbreg == true.
11857         (add_location_or_const_value_attribute): Added parameter enum
11858         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11859         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11860         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11861         with attr == DW_AT_location.
11862         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11863         if frame_base_decl is defined and has a location list.
11864         (gen_variable_die): Call add_location_or_const_value_attribute with
11865         attr == DW_AT_location.
11866         (dwarf2out_var_location): New function.
11867         (dwarf2out_begin_function): New function.
11868         (dwarf2out_init): Create decl_loc_table.
11869
11870 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11871
11872         * loop.c (force_movables): Transitively increase the priorities of
11873         all insns forces by an insn, not just the first one.
11874
11875 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11876             Daniel Berlin <dberlin@dberlin.org>
11877
11878         Josef Zlomek  <zlomekj@suse.cz>
11879         * Makefile.in (var-tracking.o): New.
11880         * common.opt (fvar-tracking): New.
11881         * flags.h (flag_var_tracking): New.
11882         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11883         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11884         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11885         * rtl.c (note_insn_name): Likewise.
11886         * rtl.def (VAR_LOCATION): New.
11887         * rtl.h (NOTE_VAR_LOCATION): New.
11888         (NOTE_VAR_LOCATION_DECL): New.
11889         (NOTE_VAR_LOCATION_LOC): New.
11890         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11891         (variable_tracking_main): New exported function.
11892         * timevar.def (TV_VAR_TRACKING): New.
11893         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11894         (dump_file): "vartrack" was added (-dV).
11895         (flag_var_tracking): New.
11896         (f_options): "var-tracking" was added.
11897         (rest_of_handle_variable_tracking): New function.
11898         (rest_of_compilation): Run variable tracking.
11899         (process_options): If user has not specified flag_var_tracking set it
11900         according to optimize, debug_info_level and debug_hooks.
11901         * tree.h (frame_base_decl): New.
11902         * var-tracking.c: New file.
11903         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11904         (ia64_override_options): Set flags to run variable tracking in machine
11905         dependent reorg instead of toplev.c.
11906         (ia64_reorg): Run variable tracking if wanted.
11907         * doc/invoke.texi: Mention variable tracking in -dV,
11908         add and -fvar-tracking.
11909         * doc/passes.texi: Added variable tracking pass.
11910
11911         Daniel Berlin <dberlin@dberlin.org>
11912         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11913         * dbxout.c (dbx_debug_hooks): Likewise.
11914         (xcoff_debug): Likewise.
11915         * debug.c (do_nothing_debug_hooks): Likewise.
11916         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11917         * dwarfout.c (dwarf_debug_hooks): Likewise.
11918         * sdbout.c (sdb_debug_hooks): Likewise.
11919         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11920         * final.c (final_scan_insn): Call var_location debug hook for each
11921         NOTE_INSN_VAR_LOCATION.
11922
11923 2004-02-06  Jan Hubicka  <jh@suse.cz>
11924
11925         * flow.c (update_life_info): Allocate reg_deaths when called from
11926         scheudler.
11927         (attempt_auto_inc):  Update life ranges accordingly.
11928
11929 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11930
11931         PR debug/11816
11932         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11933
11934 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11935
11936         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11937
11938 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11939
11940         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11941         a separate line info table in use.
11942         Use the correct size for terminators.
11943         (output_die): Use offset, not delta.
11944
11945 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11946
11947         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11948
11949 2004-02-06  Jan Hubicka  <jh@suse.cz>
11950
11951         * recog.c (split_all_insns): Do not update reg info.
11952         * regrename.c (regrename_optimize): Likewise.
11953         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11954         * flow.c (struct propagate_block_info): Add insn_num field.
11955         (reg_deaths): New array.
11956         (life_analysis): Free reg_deaths info.
11957         (allocate_reg_life_data): Allocate reg_deaths array.
11958         (propagate_one_insn): Use new array.
11959         (init_propagate_block): Initialize it.
11960         (free_propagate_block_info): Finish compuation of
11961         REG_LIVE_LENGTH
11962         (attempt_auto_inc): Sanity check that REG_INFO is not
11963         computed at same time.
11964         (mark_used_regs): Update new array.
11965
11966         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11967         substitution.
11968
11969 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11970
11971         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11972         *extendqisi2_short_displ.
11973
11974 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11975
11976         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11977         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11978         (emit_library_call_value_1): Likewise pass nargs.
11979         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11980         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11981         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11982         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11983         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11984         prototype.
11985         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11986         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
11987         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
11988         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
11989         INIT_CUMULATIVE_ARGS.
11990         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
11991         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
11992         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
11993         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
11994         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11995         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
11996         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
11997         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
11998         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
11999         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12000         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12001         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12002
12003 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12004
12005         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12006         possible.
12007
12008 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12009
12010         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12011         note containing (plus (reg) (const_int)), where reg is an
12012         eliminable reg, then perform the register elimination without
12013         depending on eliminate_regs().
12014
12015 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12016
12017         * config/arc/arc.c (arc_return_in_memory): Check the return
12018         value of int_size_in_bytes against -1.  Don't check
12019         TREE_ADDRESSABLE.
12020         * config/avr/avr.c (avr_return_in_memory): Check the return
12021         value of int_size_in_bytes against -1.
12022         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12023         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12024         Likewise.
12025         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12026         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12027         Likewise.
12028
12029 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12030
12031         * config/frv/frv-protos.h: Remove the prototype for
12032         frv_setup_incoming_varargs.
12033         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12034         (frv_setup_incoming_varargs): Make it static.
12035         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12036
12037 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12038
12039         * config/fr30/fr30-protos.h: Remove the prototype for
12040         fr30_setup_incoming_varargs.
12041         Update the prototypes for fr30_num_arg_regs and
12042         fr30_function_arg_partial_nregs.
12043         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12044         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12045         (fr30_setup_incoming_varargs): Make it static.
12046         Add argument second_time.  Don't do anything when second_time
12047         is nonzero.
12048         (fr30_num_arg_regs): Change the type of the first argument to
12049         enum machine_mode.
12050         (fr30_function_arg_partial_nregs): Change the type of the
12051         second argument to enum machine_mode.
12052         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12053         (SETUP_INCOMING_VARARGS): Remove.
12054
12055 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12056
12057         * config/arc/arc-protos.h: Remove the prototype for
12058         arc_setup_incoming_varargs.
12059         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12060         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12061         (arc_setup_incoming_varargs): Make it static.
12062         (arc_external_libcall): Likewise.
12063         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12064         Remove the commented-out definition of
12065         ASM_OUTPUT_EXTERNAL_LIBCALL.
12066
12067 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12068
12069         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12070         to $$(slibdir) in the installation commands.
12071
12072 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12073
12074         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12075         with inner_regno, not regno.
12076         * rtlanal.c (refers_to_regno_p): Same.
12077
12078 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12079
12080         * config.gcc: Remove i370 support.
12081
12082 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12083
12084         * doc/install.texi:  Update automake and autoconf version
12085         requirements.  Note where to find gcj automake version.
12086
12087 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12088
12089         * Makefile.in (generate-manpages): Move dependencies to ...
12090         (man): here.
12091         * doc/makefile.texi: Document new targets.
12092         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12093
12094 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12095
12096         PR/13485
12097         Makefile.in (srcextra):  Add a level of indirection to ...
12098         (gcc.srcextra): ... here.
12099         (po-generated): Delete.
12100         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12101         options.c.
12102         (start.encap): Remove superfluous lang.srcextra dependency.
12103         objc/Make-lang.in (po-generated):  Delete.
12104
12105 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12106
12107         * config/ia64/ia64.c (REG_GP): Remove.
12108
12109 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12110
12111         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12112
12113 2004-02-05  Devang Patel  <dpatel@apple.com>
12114
12115         * dwarf2out.c (force_type_die): Look up input type itself
12116         instead of root_type() of type.
12117
12118 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12119
12120         * config/s390/s390.md ("*tmqidi_ext"): New insn.
12121         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
12122         pre-reload splitters are transformed to post-reload
12123         define_insn_and_split patterns.
12124         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
12125
12126 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12127
12128         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
12129         TARGET_PROMOTE_PROTOTYPES.
12130
12131 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12132
12133         PR middle-end/13750
12134         Revert:
12135         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12136         PR pch/13361
12137         * c-typeck.c (constructor_asmspec): Delete.
12138         (struct initializer_stack): Delete field 'asmspec'.
12139         (start_init): Delete saving of asmspec.
12140         (finish_init): Don't update constructor_asmspec.
12141         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12142         * stmt.c (expand_asm): Duplicate strings from tree.
12143         (expand_asm_operands): Likewise.
12144         * tree.c (tree_size): Update computation of size of STRING_CST.
12145         (make_node): Don't make STRING_CST nodes.
12146         (build_string): Allocate string with tree node.
12147         * tree.def (STRING_CST): Update comment.
12148         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12149         (tree_string): Place contents of string in tree node.
12150         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12151         from tree.
12152
12153 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12154
12155         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
12156         msgid.
12157
12158 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
12159
12160         * config/rs6000/altivec.md (*movv4si_internal): At least one
12161         operand must be altivec_register_operand.
12162         (*movv8hi_internal1): Likewise.
12163         (*movv16qi_internal1): Likewise.
12164         (*movv4sf_internal1): Likewise.
12165
12166 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12167
12168         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
12169         * configure: Regenerate.
12170
12171 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
12172
12173         * doc/install.texi: Update description of --gxx-include-dir to
12174         give correct default value.
12175
12176 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12177
12178         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
12179         8 with MAC_REG.
12180
12181 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12182
12183         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
12184         gen_rtx_PARALLEL.
12185
12186 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12187
12188         * emit-rtl.c: Update the comment about the file.
12189
12190 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12191
12192         * sourcebuild.texi (Test Idioms): Update testcase naming
12193         conventions.
12194
12195 2004-02-04  Per Bothner  <per@bothner.com>
12196
12197         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
12198         * c-ppoutput.c (pp_dir_change):  New function.
12199         * c-common.h (pp_dir_change):  New declaration.
12200         * cpplib.h (struct cpp_options):  Remove working_directory field.
12201         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
12202         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
12203         Don't handle -fworking_directory here, but in c_common_post_options.
12204         (read_original_directory): Don't back up when done.
12205         Don't clear no-longer used working_directory flag.
12206         * cpplib.h:  Update declarations to match.
12207         * c-lex.c (cb_dir_change):  Move to c-opts.c.
12208         (init_c_lex):  Don't set dir_change callback here, since we want
12209         to set it even if flag_preprocess_only.
12210         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
12211         (c_common_post_options):  Set dir_change callback.
12212         Call pp_dir_change if approporiate.
12213         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
12214         unneeded parameter and result. Do LC_RENAME for <built-in>.
12215         (c_common_post_options):  Call cpp_read_main_file here instead.
12216         (c_common_init):  Update accordingly.
12217         (push_command_line_include):  Don't cpp_push_main_file.
12218         Do LC_RENAME rather than LC_LEASE to get back to main file.
12219         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
12220         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
12221         files, but call finish_options for all files.
12222         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
12223         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
12224         cpp_find_main_file + cpp_push_main_file.
12225         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
12226         * opts.c (handle_options):  Only set main_input_filename first time.
12227
12228 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
12229
12230         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
12231
12232 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
12233
12234         * reload.c (find_equiv_reg): When checking for register overlap,
12235         don't index hard_regno_nregs with a pseudo-reg.
12236
12237 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12238
12239         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
12240
12241 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
12242
12243         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
12244         against FIRST_PSEUDO_REGISTER.
12245
12246 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12247
12248         * Makefile.in: Move target, host overrides after per-language
12249         fragments.
12250
12251         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
12252         (GNATLIBCFLAGS): Remove -g.
12253
12254 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12255
12256         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12257         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12258         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12259         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
12260         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
12261         config/sparc/sparc.c, config/vax/vax.c: Revert the
12262         replacements of "FALLTHRU" with "Fall through" done in the
12263         previous patch.
12264
12265 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12266
12267         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
12268         config/arm/arm.c, config/arm/arm.md,
12269         config/cris/cris-protos.h, config/fr30/fr30.c,
12270         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
12271         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
12272         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
12273         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
12274         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
12275         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
12276         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
12277         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
12278         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
12279         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
12280         config/s390/s390.md, config/sparc/netbsd-elf.h,
12281         config/sparc/openbsd.h, config/sparc/sparc.c,
12282         config/xtensa/lib2funcs.S: Fix comment formatting.
12283
12284 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12285
12286         * config/alpha/alpha.c, config/arc/arc.c,
12287         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
12288         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
12289         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
12290         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
12291         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12292         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12293         config/iq2000/iq2000.c, config/m32r/m32r.c,
12294         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
12295         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
12296         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
12297         config/rs6000/rs6000.h, config/sparc/sparc.c,
12298         config/vax/vax.c: Fix comment typos.  Follow spelling
12299         conventions.
12300
12301 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12302
12303         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
12304         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
12305         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
12306         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
12307         config/arm/fpa.md, config/arm/iwmmxt.md,
12308         config/arm/netbsd-elf.h, config/arm/netbsd.h,
12309         config/m68hc11/m68hc11.md, config/mips/iris5.h,
12310         config/mn10300/mn10300.md, config/rs6000/altivec.md,
12311         config/sparc/netbsd-elf.h: Update copyright.
12312
12313 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12314
12315         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12316         for all modes whose size is greater than 8 bytes if ARCH32.
12317         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
12318         by reference if ARCH32.
12319
12320 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
12321
12322         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
12323
12324 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12325
12326         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
12327         to before adddi3 insn patterns.
12328         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
12329         "reload_insi"): Move to before addsi3 insn patterns.
12330
12331 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
12332
12333         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
12334         parameter.  Use it instead of current_function_is_thunk.
12335         * function.h (struct function): Update documentation for is_thunk.
12336         * tree.h (CALL_FROM_THUNK_P): New macro.
12337         * config/alpha/alpha.c (alpha_sa_mask): Do not check
12338         no_new_pseudos when testing current_function_is_thunk.
12339         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
12340
12341 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12342
12343         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
12344         TARGET_SETUP_INCOMING_VARARGS.
12345
12346 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12347
12348         * emit-rtl.c (gen_rtx): Remove.
12349         * genattrtab.c: Don't mention gen_rtx in a comment.
12350         * rtl.h: Remove the prototype for gen_rtx.
12351         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
12352
12353 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12354
12355         * config/arc/arc.h, config/fr30/fr30.h
12356         (SETUP_INCOMING_VARARGS): Remove the target-independent
12357         comments.
12358         * doc/tm.texi: Don't mention deprecated target macros.
12359
12360 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12361
12362         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
12363         target-independent comment.
12364
12365 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12366
12367         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
12368         mention deprecated target macros.
12369
12370 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12371
12372         * config.gcc: Remove obsolete ports and configurations.
12373         * config/linux-aout.h, config/netware.h,
12374         config/t-linux-gnulibc1, config/d30v/abi,
12375         config/d30v/d30v-protos.h, config/d30v/d30v.c,
12376         config/d30v/d30v.h, config/d30v/d30v.md,
12377         config/d30v/libgcc1.asm, config/d30v/t-d30v,
12378         config/dsp16xx/dsp16xx-modes.def,
12379         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
12380         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
12381         config/i370/README, config/i370/i370-c.c,
12382         config/i370/i370-protos.h, config/i370/i370.c,
12383         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
12384         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
12385         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
12386         config/i386/moss.h, config/i386/netware.h,
12387         config/i386/svr3.ifile, config/i386/svr3dbx.h,
12388         config/i386/svr3gas.h, config/i386/svr3z.ifile,
12389         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
12390         config/i960/i960-c.c, config/i960/i960-coff.h,
12391         config/i960/i960-modes.def, config/i960/i960-protos.h,
12392         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
12393         config/i960/rtems.h, config/i960/t-960bare,
12394         config/m68k/hp310.h, config/m68k/hp320.h,
12395         config/m68k/hp320base.h, config/m68k/m68kv4.h,
12396         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
12397         Remove.
12398         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
12399         doc/md.texi: Remove mentions of obsolete ports.
12400
12401 2004-02-04  Jan Hubicka  <jh@suse.cz>
12402
12403         * alias.c (find_base_term, get_addr):  Do not dereference NULL
12404         pointer when all VALUE's locations has been invalidated.
12405         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
12406
12407 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
12408
12409         * doc/invoke.texi (x86 options): Fix spelling/wording.
12410
12411 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
12412
12413         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
12414         put the original string in a comment.
12415         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
12416         * config/mips/mips.c (mips_output_ascii): Likewise.
12417         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
12418
12419 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12420
12421         * system.h (GIV_SORT_CRITERION): Poison.
12422         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
12423         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
12424
12425 2004-02-03  Roger Sayle  <roger@eyesopen.com>
12426
12427         PR target/9348
12428         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
12429         multiplies with a multiplication of the wrong signedness, its the
12430         signedness of the multiplication that we've performed that needs to
12431         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
12432         if expand_mult_highpart_adjust places the result in target.
12433
12434 2004-02-03  Richard Henderson  <rth@redhat.com>
12435
12436         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
12437
12438 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
12439
12440         * config.gcc (sh[234]l): Use little endian fragments.
12441
12442 2004-02-03  Paul Koning  <pkoning@equallogic.com>
12443
12444         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
12445         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
12446         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
12447         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
12448         floating point format.
12449         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
12450         the above functions.
12451         (output_move_quad): Output float values in correct target format.
12452         (legitimate_const_double_p): New function.
12453         * config/pdp11/pdp11.h: Fix typos.
12454         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
12455         (TARGET_FLOAT_FORMAT): Ditto.
12456         (pdp11_f_format, pdp11_d_format): Add external declarations.
12457         (MAX_REGS_PER_ADDRESS): Corrected.
12458         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
12459         (PRINT_OPERAND): Output float literals in target format.
12460
12461 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
12462
12463         PR c++/13975
12464         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
12465         TI_PRIVATE.
12466         (access_public_node): Redefine.
12467         (access_protected_node): Likewise.
12468         (access_private_node): Likewise.
12469         * tree.c (build_common_tree_nodes): Create access_public_node,
12470         access_protected_node, and access_private_node.
12471
12472 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
12473
12474         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
12475         (MASK_INLINE_INT_DIV_THR): Ditto.
12476         (MASK_INLINE_SQRT_LAT): Ditto.
12477         (MASK_INLINE_SQRT_THR): Ditto.
12478         (MASK_DWARF2_ASM): Ditto.
12479         (MASK_EARLY_STOP_BITS): Ditto.
12480
12481 2004-02-02  Paul Brook  <paul@codesourcery.com>
12482
12483         Merge from csl-arm-branch.
12484
12485         2004-01-30  Paul Brook  <paul@codesourcery.com>
12486
12487         * aof.h (REGISTER_NAMES): Add vfp reg names
12488         (ADDITIONAL_REGISTER_NAMES): Ditto.
12489         * aout.h (REGISTER_NAMES): Ditto.
12490         (ADDITIONAL_REGISTER_NAMES): Ditto.
12491         * arm-protos.h: Update/Add Prototypes.
12492         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
12493         Only allow 0.0 for VFP.
12494         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
12495         (values_fp): Rename from values_fpa.  Update Users.
12496         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
12497         Update users.  Only check valid constants for this hardware.
12498         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
12499         Only allow consts for FPA.
12500         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
12501         Only allow consts for FPA.
12502         (use_return_insn): Check for saved VFP regs.
12503         (arm_legitimate_address_p): Handle VFP DFmode addressing.
12504         (arm_legitimize_address): Ditto.
12505         (arm_general_register_operand): New function.
12506         (vfp_mem_operand): New function.
12507         (vfp_compare_operand): New function.
12508         (vfp_secondary_reload_class): New function.
12509         (arm_float_compare_operand): New function.
12510         (vfp_print_multi): New function.
12511         (vfp_output_fstmx): New function.
12512         (vfp_emit_fstm): New function.
12513         (arm_output_epilogue): Output VPF reg restore code.
12514         (arm_expand_prologue): Output VFP reg save code.
12515         (arm_print_operand): Add 'P'.
12516         (arm_hard_regno_mode_ok): Return modes for VFP regs.
12517         (arm_regno_class): Return classes for VFP regs.
12518         (arm_compute_initial_elimination_offset): Include space for VFP regs.
12519         (arm_get_frame_size): Ditto.
12520         * arm.h (FIXED_REGISTERS): Add VFP regs.
12521         (CALL_USED_REGISTERS): Ditto.
12522         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
12523         (FIRST_VFP_REGNUM): Define.
12524         (LAST_VFP_REGNUM): Define.
12525         (IS_VFP_REGNUM): Define.
12526         (FIRST_PSEUDO_REGISTER): Include VFP regs.
12527         (HARD_REGNO_NREGS): Handle VFP regs.
12528         (REG_ALLOC_ORDER): Add VFP regs.
12529         (enum reg_class): Add VFP_REGS.
12530         (REG_CLASS_NAMES): Ditto.
12531         (REG_CLASS_CONTENTS): Ditto.
12532         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
12533         (REG_CLASS_FROM_LETTER): Add 'w'.
12534         (EXTRA_CONSTRAINT_ARM): Add 'U'.
12535         (EXTRA_MEMORY_CONSTRAINT): Define.
12536         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
12537         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12538         (REGISTER_MOVE_COST): Ditto.
12539         (PREDICATE_CODES): Add arm_general_register_operand,
12540         arm_float_compare_operand and vfp_compare_operand.
12541         * arm.md (various): Rename as above.
12542         (divsf3): Enable when TARGET_VFP.
12543         (divdf3): Ditto.
12544         (movdfcc): Ditto.
12545         (sqrtsf2): Ditto.
12546         (sqrtdf2): Ditto.
12547         (arm_movdi): Disable when TARGET_VFP.
12548         (arm_movsi_insn): Ditto.
12549         (movsi): Only split with general regs.
12550         (cmpsf): Use arm_float_compare_operand.
12551         (push_fp_multi): Restrict to TARGET_FPA.
12552         (vfp.md): Include.
12553         * vfp.md: New file.
12554         * fpa.md (various): Rename as above.
12555         * doc/md.texi: Document ARM w and U constraints.
12556
12557         2004-01-15  Paul Brook  <paul@codesourcery.com>
12558
12559         * config.gcc: Add with_fpu.  Allow with-float=softfp.
12560         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
12561         Break out of loop when we find a float-abi.  Fix typo.
12562         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
12563         Set -mfloat-abi=.
12564         * doc/install.texi: Document --with-fpu.
12565
12566         2003-01-14  Paul Brook  <paul@codesourcery.com>
12567
12568         * config.gcc (with_arch): Add armv6.
12569         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
12570         * config/arm/arm.c (arm_overrride_options): Ditto.
12571
12572         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
12573
12574         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
12575         (FL_ARCH6): Renamed from FL_ARCH6J.
12576         (arm_arch3m): Renamed from arm_fast_multiply.
12577         (arm_arch6): Renamed from arm_arch6j.
12578         * arm.h: Update all uses of above.
12579         * arm-cores.def: Likewise.
12580         * arm.md: Likewise.
12581
12582         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
12583         not arm6j.  Add entry for arch armv6.
12584
12585         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
12586
12587         * arm.c (arm_emit_extendsi): Delete.
12588         * arm-protos.h (arm_emit_extendsi): Delete.
12589         * arm.md (zero_extendhisi2): Also handle zero-extension of
12590         non-subregs.
12591         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
12592         (thumb_zero_extendhisi2): Only match if not v6.
12593         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
12594         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
12595         (thumb_extendqisi2): Likewise.
12596         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
12597         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
12598         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
12599         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
12600         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
12601         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
12602         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
12603         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
12604         (arm_extendqisi2addsi): Likewise.
12605
12606         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
12607
12608         Revert this change:
12609         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12610         + REG addressing modes.
12611
12612         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12613         + REG addressing modes.
12614
12615         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
12616
12617         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
12618         CONSTANT_P_RTX.
12619
12620         2003-30-12  Paul Brook  <paul@codesourcery.com>
12621
12622         * longlong.h: protect arm inlines with !defined (__thumb__)
12623
12624         2003-30-12  Paul Brook  <paul@codesourcery.com>
12625
12626         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
12627
12628         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
12629
12630         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
12631         change.
12632
12633         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12634
12635         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12636         to the virtual incoming args pointer for downward stacks.
12637
12638         2003-12-29  Paul Brook  <paul@codesourcery.com>
12639
12640         * config/arm/arm-cores.def: Add cost function.
12641         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12642         (arm_rtx_costs): Remove
12643         (struct processors): Add rtx_costs field.
12644         (all_cores, all_architectures): Ditto.
12645         (arm_override_options): Set targetm.rtx_costs.
12646         (thumb_rtx_costs): New function.
12647         (arm_rtx_costs_1): Remove cases handled elsewhere.
12648         * config/arm/arm.h (processor_type): Add COSTS parameter.
12649
12650         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12651
12652         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12653         (arm926ejs.md): Include it.
12654         * config/arm/arm926ejs.md: New pipeline description.
12655
12656         2003-12-24  Paul Brook  <paul@codesourcery.com>
12657
12658         * config/arm/arm.c (arm_arch6j): New variable.
12659         (arm_override_options): Set it.
12660         (arm_emit_extendsi): New function.
12661         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12662         * config/arm/arm.h (arm_arch6j): Declare.
12663         * config/arm/arm.md: Add sign/zero extend insns.
12664
12665         2003-12-23  Paul Brook  <paul@codesourcery.com>
12666
12667         * config/arm/arm.c (all_architectures): Add armv6.
12668         * doc/invoke.texi: Document it.
12669
12670         2003-12-19  Paul Brook  <paul@codesourcery.com>
12671
12672         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12673         insn patterns to match.
12674         * config/arm/arm-generic.md: Ditto.
12675         * config/arm/cirrus.md: Ditto.
12676         * config/arm/fpa.md: Ditto.
12677         * config/amm/iwmmxt.md: Ditto.
12678         * config/arm/arm1026ejs.md: Ditto.
12679         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12680         for 11_loadb.
12681
12682         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12683
12684         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12685         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12686         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12687         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12688         arm_no_early_mul_dep): Correctly deal with conditional execution,
12689         parallels and single shift operations.
12690         (arm_no_early_alu_shift_value_dep): Define.
12691         * arm.md (attr type): Replace 'normal' with 'alu',
12692         'alu_shift' and 'alu_shift_reg'.
12693         (attr core_cycles): Adjust.
12694         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12695         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12696         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12697         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12698         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12699         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12700         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12701         attribute appropriately.
12702         * config/arm/arm1026ejs.md (alu_op): Adjust.
12703         (alu_shift_op, alu_shift_reg_op): New.
12704         * config/arm/arm1136.md: Add better bypasses for early
12705         registers. Remove load[234] and store[234] bypasses.
12706         (11_alu_op): Adjust.
12707         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12708
12709         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12710
12711         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12712         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12713         * config/arm/arm.c (arm_no_early_store_addr_dep,
12714         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12715         * config/arm/arm1026ejs.md: Add load-store bypass.
12716         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12717         Add bypasses between instructions.
12718
12719         2003-12-10  Paul Brook  <paul@codesourcery.com>
12720
12721         * config/arm/arm.c (arm_fpu_model): New variable.
12722         (arm_fload_abi): New variable.
12723         (target_fpe_name): Rename from target_fp_name.
12724         (target_fpu_name): New variable.
12725         (arm_is_cirrus): Remove.
12726         (fpu_desc): New struct.
12727         (all_fpus): Define.
12728         (pf_model_for_fpu): Define.
12729         (all_loat_abis): Define.
12730         (arm_override_options): Set fp arch flags based on -mfpu=
12731         and -float-abi=.
12732         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12733         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12734         (*): Use new TARGET_* flags.
12735         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12736         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12737         (TARGET_SOFT_FLOAT): Ditto.
12738         (TARGET_SOFT_FLOAT_ABI): New.
12739         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12740         TARGET_HARD_FLOAT.
12741         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12742         (TARGET_OPTIONS): Add -mfpu=.
12743         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12744         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12745         (arm_pf_model): Define.
12746         (arm_float_abi_type): Define.
12747         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12748         * config/arm/arm.md: Use new TARGET_* flags.
12749         * config/arm/cirrus.md: Ditto.
12750         * config/arm/fpa.md: Ditto.
12751         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12752         * config/arm/semi.h (ASM_SPEC): Ditto.
12753         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12754         (FPUTYPE_DEFAULT): Set to VFP.
12755         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12756
12757         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12758
12759         PR target/12476
12760         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12761         'bx' instead of 'b' to avoid branch range restrictions.  Output
12762         the thunk immediately before the thunked-to function.
12763         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12764         .thumb_func if a thunk is being generated.  Emit .code 16 along
12765         with .thumb_func if a thunk is not being generated.
12766
12767         2003-11-15  Nicolas Pitre <nico@cam.org>
12768
12769         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12770         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12771         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12772         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12773         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12774
12775         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12776             Ian Lance Taylor  <ian@wasabisystems.com>
12777
12778         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12779         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12780
12781         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12782
12783         * config/arm/arm.md (insn):  Add new V6 instruction names.
12784         (generic_sched):  New attr.
12785         * config/arm/arm-generic.md:  Use generic_sched here.
12786         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12787         stages of pipeline.  Adjust latency counts accordingly.
12788         * config/arm/arm1136jfs.md:  New file.
12789
12790         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12791
12792         * config/arm/arm.h (processor_type): New enumeration type.
12793         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12794         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12795         (CPP_CPU_ARCH_SPEC): Likewise.
12796         * config/arm/arm.c (arm_tune): New variable.
12797         (all_cores): Use cores.def.
12798         (all_architectures): Add representative processor.
12799         (arm_override_options): Restructure way in which tuning
12800         information is deduced.
12801         * arm.md: Update "insn" and "type" attributes throughout.
12802         (insn): New attribute.
12803         (type): Compute "mult" from "insn" attribute.  Add load2,
12804         load3, load4 alternatives.
12805         (arm automaton): Move to arm-generic.md.
12806         * config/arm/arm-cores.def: New file.
12807         * config/arm/arm-generic.md: Likewise.
12808         * config/arm/arm1026ejs.md: Likewise.
12809
12810 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12811
12812         * doc/invoke.texi (SPARC options): Remove -mflat and
12813         all -mxxx (xxx:chip) options.
12814         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12815         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12816         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12817         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12818         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12819         * config/sparc/sparc.c: Likewise.
12820         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12821         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12822         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12823         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12824         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12825         (sparc_flat_must_save_register_p): Likewise.
12826         (sparc_flat_compute_frame_size): Likewise.
12827         (sparc_flat_save_restore): Likewise.
12828         (sparc_flat_function_prologue): Likewise.
12829         (sparc_flat_function_epilogue): Likewise.
12830         (sparc_flat_epilogue_delay_slots): Likewise.
12831         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12832         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12833         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12834         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12835         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12836         (CONDITIONAL_REGISTER_USAGE): Likewise.
12837         (FRAME_POINTER_REQUIRED): Likewise.
12838         (INITIAL_ELIMINATION_OFFSET): Likewise.
12839         (BASE_RETURN_VALUE_REG): Likewise.
12840         (BASE_OUTGOING_VALUE_REG): Likewise.
12841         (BASE_PASSING_ARG_REG): Likewise.
12842         (BASE_INCOMING_ARG_REG): Likewise.
12843         (INCOMING_REGNO): Likewise.
12844         (OUTGOING_REGNO): Likewise.
12845         (LOCAL_REGNO): Likewise.
12846         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12847         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12848         (EPILOGUE_USES): Likewise.
12849         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12850         ("flat" attribute): Delete.
12851         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12852         handling.
12853         (call followed by jump define_peephole's): Delete.
12854         (exception_receiver): Likewise.
12855         (builtin_setjmp_receiver): Likewise.
12856         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12857
12858 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12859
12860         PR c/11658
12861         PR c/13994
12862         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12863         on langhooks.h.
12864         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12865         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12866         Include langhooks.h.  Replace c_common_truthvalue_conversion
12867         with the truthvalue_conversion language hook throughout.
12868         (expr_no_commas): Call default_conversion before save_expr
12869         for the first term of the production 'x ? : y'.
12870         * c-common.c (c_common_truthvalue_conversion): Remove
12871         obsolete block.  Invoke recursively the hook instead
12872         of this function.
12873         * c-convert.c (convert): handle ERROR_MARK_NODE.
12874         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12875         returned by the truthvalue_conversion language hook.
12876         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12877         c_objc_common_truthvalue_conversion.
12878         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12879         New function.
12880         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12881         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12882         c_objc_common_truthvalue_conversion.
12883
12884 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12885
12886         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12887         of gen_rtx.
12888         (LIBCALL_VALUE): Likewise.
12889         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12890         gen_rtx_CC0 instead of gen_rtx.
12891         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12892         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12893         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12894         gen_rtx.
12895         (m68hc11_emit_logical): Likewise.
12896
12897 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12898
12899         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12900         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12901         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12902         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12903         config/mips/mips.md, config/mmix/mmix.c,
12904         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12905         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12906         config/rs6000/altivec.md, config/s390/s390.c,
12907         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12908         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12909         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12910         constants that are readily available.
12911
12912 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12913
12914         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12915         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12916         instead of GEN_INT (0).  Do the same for other constants that
12917         are readily available.
12918
12919 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12920
12921         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12922         gen_rtx.
12923         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12924         instead of gen_rtx.
12925         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12926         gen_rtx.
12927         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12928         gen_rtx_ASHIFT instead of gen_rtx.
12929         (udivmodqi4): Likewise.
12930
12931 2004-02-02  Richard Henderson  <rth@redhat.com>
12932
12933         PR target/13789
12934         * expr.c (store_expr): Use force_operand before emit_move_insn.
12935
12936 2004-02-02  Jeff Law  <law@redhat.com>
12937             Roger Sayle  <roger@eyesopen.com>
12938
12939         * tree.c (commutative_tree_code, associative_tree_code): New
12940         functions.
12941         (iterative_hash_expr): Use commutative_tree_code.
12942         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12943         * fold-const.c (operand_equal_p): Use commutative_tree_code
12944         rather than inlining the commutativity check.
12945         (fold): Likewise.
12946
12947 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12948
12949         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12950         * config/frv/frv-protos.h: Remove the prototype for
12951         frv_function_arg_keep_as_reference.
12952         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12953         Remove.
12954         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12955         * config/stormy16/stormy16.h: Remove the commented-out
12956         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12957
12958 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12959
12960         PR target/13914
12961         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12962         for retaddr_column.
12963
12964 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12965
12966         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12967         gen_rtx.
12968
12969 2004-02-02  Eric Christopher  <echristo@redhat.com>
12970             Zack Weinberg  <zack@codesourcery.com>
12971
12972         * c-opts.c (c_common_handle_option): Add -finput-charset.
12973         * c.opt: Ditto.
12974         * cppcharset.c (one_iso88591_to_utf8): Remove.
12975         (convert_iso88591_utf8): Ditto.
12976         (conversion_tab): Remove 8859-1 converter.
12977         (_cpp_input_to_utf8): Remove.
12978         (_cpp_init_iconv_buffer): Ditto.
12979         (_cpp_close_iconv_buffer): Ditto.
12980         (_cpp_convert_input): New function.
12981         (_cpp_default_encoding): Ditto.
12982         * cpphash.h: Add/remove prototypes for above.
12983         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12984         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12985         for narrow execution and input character sets.
12986         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
12987         * doc/cppopts.texi: Document -finput-charset.
12988
12989 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
12990
12991         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
12992         against FIRST_PSEUDO_REGISTER.
12993
12994 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
12995
12996         * doc/invoke.texi (SPARC options): Further improve.
12997
12998 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12999
13000         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13001         config/h8300/h8300.c, config/ip2k/ip2k.md,
13002         config/iq2000/iq2000.c, config/mips/mips.c,
13003         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13004         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13005         config/v850/v850.md: Fix indentation.
13006
13007 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13008
13009         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13010         arguments on a 16-byte boundary in the parameter array if ARCH64.
13011         Split handling of TFmode.
13012
13013 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13014
13015         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13016         Don't test CONSTANT_P (x).
13017         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13018         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13019         Fix misindentation.
13020
13021 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13022
13023         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13024
13025 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13026
13027         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13028         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13029         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13030         config/iq2000/iq2000.c, config/m32r/m32r.c,
13031         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13032         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13033         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13034         config/stormy16/stormy16.c, config/v850/v850.md,
13035         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13036
13037 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13038
13039         * config/mcore/mcore.c (block_move_sequence): Replace
13040         gen_rtx_CONST_INT with GEN_INT.
13041
13042 2004-02-02  Jan Hubicka  <jh@suse.cz>
13043
13044         * alias.c (record_set): Use hard_regno_nregs.
13045         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13046         * builtins.c (apply_args_size): Likewise.
13047         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13048         mark_set_regs, add_stored_regs, mark_referenced_regs,
13049         insert_restore, insert_save, insert_one_insn): Likewise.
13050         * cfgcleanup.c: Include regs.h
13051         (mark_effect, mentions_nonequal_regs): Likewise.
13052         * cfgrtl.c (mark_killed_regs): Likewise
13053         * combine.c (update_table_tick, record_value_for_reg,
13054         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13055         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13056         reg_bitfield_target_p, distribute_notes): Likewise.
13057         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13058         exp_equiv_p, cse_insn): Likewise.
13059         * cselib.c (cselib_lookup): Likewise.
13060         (cselib_invalidate_regno, cselib_record_set): Likewise.
13061         * df.c (df_ref_record): Likewise.
13062         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13063         Likewise.
13064         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13065         count_or_remove_death_notes_bb): Likewise.
13066         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13067         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13068         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13069         * integrate.c (mark_stores): Likewise.
13070         * jump.c (delete_prior_computation): Likewise.
13071         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13072         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13073         * loop.c (LOOP_REGNO_NREGS): Likewise.
13074         * postreload.c (reload_combine, reload_combine_note_store,
13075         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13076         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13077         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13078         try_recolor_web, insert_coalesced_conflicts, check_colors,
13079         break_precolored_alias): Likewise.
13080         * ra-debug.c: Include regs.h
13081         (ra_print_rtx_object): Likewise.
13082         * ra-rewrite (choose_spill_colors): Likewise.
13083         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13084         * ra.c (init_ra): Likewise.
13085         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13086         peep2_find_free_register): Likewise.
13087         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13088         * regclass.c (hard_regno_nregs): New array.
13089         (init_reg_modes_once): Initialize it.
13090         (choose_hard_reg_mode): Use it.
13091         (record_reg_classes): Likewise.
13092         * regmove.c (mark_flags_life_zones): Likewise.
13093         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13094         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13095         copy_value, maybe_mode_change, find_oldest_value_reg,
13096         copyprop_hardreg_forward_1):
13097         * regs.h (hard_regno_nregs): Declare.
13098         * realod.c (reload_inner_reg_of_subreg): Use it.
13099         (push_reload, combine_reloads, find_dummy_reload,
13100         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13101         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13102         reload_adjust_reg_for_mode): Likewise.
13103         * reload1.c (compute_use_by_pseudos, count_pseudo,
13104         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13105         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13106         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13107         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
13108         delete_output_reload): Likewise.
13109         * resource.c (update_live_status, mark_referenced_resources,
13110         mark_set_resources, mark_target_live_regs): Likewise.
13111         * rtlanal.c:  Include regs.h
13112         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
13113         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
13114         subreg_regno_offset, subreg_offset_representable_p,
13115         hoist_test_store): Likewise.
13116         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13117         * sched-rgn.c (check_live_1, update_live_1): Likewise.
13118         * stmt.c: Include regs.h
13119         (decl_conflicts_with_clobbers_p): Likewise.
13120         * varasm.c (make_decl_rtl): Likewise.
13121         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
13122
13123 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13124
13125         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
13126         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
13127         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
13128         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
13129         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
13130         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13131         config/iq2000/iq2000.h, config/m32r/m32r.c,
13132         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
13133         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
13134         config/mcore/mcore.c, config/mcore/mcore.h,
13135         config/mcore/mcore.md, config/mips/mips.c,
13136         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
13137         config/rs6000/rs6000.c, config/s390/s390.c,
13138         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
13139         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
13140         "gen_rtx (FOO, " with "gen_rtx_FOO (".
13141
13142 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13143
13144         * config/h8300/h8300.md (two peephole2's): New.
13145
13146 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
13147
13148         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
13149         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
13150         (ASM_CPU_SPEC): Likewise
13151         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
13152         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
13153
13154 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13155
13156         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
13157         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
13158         (expand_builtin): Always call expand_builtin_pow.
13159
13160 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13161
13162         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
13163         BUILT_IN_SIGNBITL): New GCC builtins.
13164         * builtins.c (expand_builtin_signbit): New function to RTL expand
13165         calls to signbit, signbitf and signbitl as inline intrinsics.
13166         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
13167         (fold_builtin_signbit): New function to perform constant folding
13168         of signbit, signbitf and signbitl.
13169         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
13170
13171         * doc/extend.texi: Document new signbit{,f,l} builtins.
13172
13173 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
13174
13175         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
13176
13177 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
13178
13179         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
13180         "mips_const_double_ok" and "simple_memory_operand", which were
13181         removed from the MIPS port with the mips-3_4-rewrite branch merge.
13182         * config/mips/mips.c (mips16_lay_out_constants): Update comment
13183         for removal of simple_memory_operand.
13184
13185 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13186
13187         * config/c4x/c4x.md: Use GEN_INT instead of
13188         gen_rtx (CONST_INT, ...).
13189
13190 2004-01-31  Richard Henderson  <rth@redhat.com>
13191
13192         * varasm.c (output_constant_pool): Don't zap the pool.
13193
13194 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13195
13196         * genrecog.c (decision_type): Add DT_const_int.
13197         (write_cond) [DT_const_int]: Print a comparison against small
13198         constant.
13199         (write_node): Simplify comparisons against small constants
13200         before printing tests.
13201
13202 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13203
13204         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
13205         instead of gen_rtx_CONST_INT.
13206
13207 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13208
13209         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
13210         instead of gen_rtx_CONST_INT.
13211
13212 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13213
13214         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
13215         hook_bool_CUMULATIVE_ARGS_false.
13216         * targhooks.c (default_strict_argument_naming): Rename to
13217         hook_bool_CUMULATIVE_ARGS_false.
13218         * targhooks.h: Update the prototype for
13219         default_strict_argument_naming.
13220
13221 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13222
13223         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13224         * config/sh/sh.h: Likewise.
13225         * config/sh/sh.md: Likewise.
13226
13227 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
13228
13229         * doc/invoke.texi (SPARC options): Restructure and update.
13230
13231 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13232
13233         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
13234         STRICT_ARGUMENT_NAMING): Poison.
13235         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
13236         hook_bool_tree_false.
13237         * targhooks.c (default_promote_function_args): Remove.
13238         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
13239         Don't check incoming.
13240         (default_strict_argument_naming): Don't use
13241         STRICT_ARGUMENT_NAMING.
13242         * targhooks.h: Remove the prototype for
13243         default_promote_function_args.
13244
13245 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13246
13247         * config/i386/i386-protos.h: Remove the prototype for
13248         ix86_setup_incoming_varargs.
13249         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
13250         (ix86_setup_incoming_varargs): Make it static.
13251         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
13252
13253 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13254
13255         * alloc-pool.c: Fix comment typos.
13256         * builtin-types.def: Likewise.
13257         * builtins.def: Likewise.
13258         * c-pretty-print.c: Likewise.
13259         * df.h: Likewise.
13260         * reload1.c: Likewise.
13261
13262 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13263
13264         * doc/invoke.texi: Follow spelling conventions.
13265         * doc/tm.texi: Likewise.
13266
13267 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13268
13269         * doc/install.texi: Fix typos.
13270         * doc/invoke.texi: Likewise.
13271
13272 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
13273
13274         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
13275         registers as pointers.
13276         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
13277
13278 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
13279
13280         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
13281         and restore it to gen_lowpart_general on exit.
13282         (gen_lowpart_for_combine): Adjust all callers to go through
13283         gen_lowpart.
13284         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
13285         and restore it to gen_lowpart_general on exit.
13286         (gen_lowpart_if_possible): Adjust all callers to go through
13287         gen_lowpart.
13288         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
13289         (gen_lowpart): Declare as pointer to function, initialized to
13290         gen_lowpart_general.
13291         * rtl.h (gen_lowpart): Declare as pointer to function.
13292
13293 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13294
13295         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13296         * calls.c: Likewise.
13297         * emit-rtl.c: Likewise.
13298         * function.c: Likewise.
13299         * reload1.c: Likewise.
13300         * config/i386/cygming.h: Likewise.
13301         * config/i386/i386.c: Likewise.
13302         * config/i386/winnt.c: Likewise.
13303
13304 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
13305
13306         PR bootstrap/9249
13307         * doc/install.texi: document --enable-__cxa_atexit option.
13308         * configure.ac: Disable __cxa_atexit if not supported.
13309         * configure: Regenerate.
13310
13311 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
13312
13313         * ggc-zone.c (ggc_free): New function.
13314
13315 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13316
13317         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
13318         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
13319         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
13320         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
13321         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
13322         config/alpha/alpha.c, config/alpha/alpha.h,
13323         config/alpha/alpha.md, config/alpha/unicosmk.h,
13324         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
13325         config/c4x/c4x-protos.h, config/c4x/c4x.md,
13326         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
13327         config/frv/frvend.c, config/i386/cygming.h,
13328         config/i386/djgpp.h, config/i386/emmintrin.h,
13329         config/i386/gthr-win32.c, config/i386/i386-interix.h,
13330         config/i386/i386-protos.h, config/i386/openbsd.h,
13331         config/i386/winnt.c, config/i386/xm-mingw32.h,
13332         config/i386/xmmintrin.h, config/ia64/ia64.md,
13333         config/iq2000/iq2000.md, config/m32r/m32r.md,
13334         config/m68k/m68k.md, config/mcore/mcore-elf.h,
13335         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
13336         config/mips/iris5gas.h, config/mips/iris6.h,
13337         config/mips/iris6gas.h, config/mips/linux.h,
13338         config/mips/mips.md, config/mips/netbsd.h,
13339         config/mips/openbsd.h, config/mips/windiss.h,
13340         config/pa/fptr.c, config/rs6000/aix.h,
13341         config/rs6000/altivec.h, config/rs6000/darwin.h,
13342         config/rs6000/xcoff.h, config/s390/s390-protos.h,
13343         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
13344         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
13345         config/sparc/sol2.h: Update copyright.
13346
13347 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
13348
13349         * Makefile.in (abs_docdir, abs_srcdir): Define.
13350         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
13351
13352 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13353
13354         * genconfig.c (main): Have CC0_P check its operand even on a
13355         target without cc0.
13356
13357 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13358
13359         * config/alpha/alpha.c: Remove mentions of deprecates macros
13360         in comments, remove some target-independent comments about target
13361         macros, and/or add minimal function comments for target hook
13362         implementations.
13363         * config/avr/avr.c: Likewise.
13364         * config/ia64/ia64.h: Likewise.
13365         * config/ip2k/ip2k.c: Likewise.
13366         * config/iq2000/iq2000.c: Likewise.
13367         * config/m32r/m32r.h: Likewise.
13368         * config/m68hc11/m68hc11.c: Likewise.
13369         * config/mcore/mcore.c: Likewise.
13370         * config/mmix/mmix.c: Likewise.
13371         * config/mn10300/mn10300.c: Likewise.
13372         * config/pa/pa.c: Likewise.
13373         * config/pdp11/pdp11.c: Likewise.
13374         * config/rs6000/rs6000.h: Likewise.
13375         * config/sh/sh.c: Likewise.
13376         * config/sh/sh.h: Likewise.
13377         * config/sparc/sparc.c: Likewise.
13378         * config/sparc/sparc.h: Likewise.
13379         * config/stormy16/stormy16.c: Likewise.
13380         * config/xtensa/xtensa.c: Likewise.
13381
13382 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13383
13384         PR optimization/12147
13385         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
13386         RELOAD_FOR_OPADDR_ADDR.
13387         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
13388         might be reused as RELOAD_FOR_OPADDR_ADDR register.
13389
13390 2004-01-30  Jan Hubicka  <jh@suse.cz>
13391
13392         * reload.c (get_secondary_mem): Fix updating of
13393         secondary_memlocs_elim_used.
13394
13395 2004-01-30  Richard Henderson  <rth@redhat.com>
13396
13397         * varasm.c (struct rtx_const, struct pool_constant): Remove.
13398         (MAX_RTX_HASH_TABLE): Remove.
13399         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
13400         (first_pool, last_pool, pool_offset): Remove.
13401         (struct rtx_constant_pool): Split out from ...
13402         (struct varasm_status): ... here.  Reference one via pointer.
13403         (struct constant_descriptor_rtx): Merge struct pool_constant.
13404         (SYMHASH): Remove.
13405         (decode_rtx_const): Remove.
13406         (const_hash_rtx, compare_constant_rtx): Remove.
13407         (record_constant_rtx): Remove.
13408         (const_desc_rtx_hash, const_desc_rtx_eq): New.
13409         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
13410         (const_rtx_hash_1, const_rtx_hash): New.
13411         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
13412         (simplify_subtraction): Use simplify_rtx.
13413         (force_const_mem): Rewrite to use new data structures.
13414         (find_pool_constant): Likewise.
13415         (get_pool_constant, get_pool_constant_mark,
13416         get_pool_constant_for_function, get_pool_mode,
13417         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
13418         (output_constant_pool_2): Split out from output_constant_pool.
13419         (output_constant_pool_1): Likewise.  Use new pool datastructures.
13420         (output_constant_pool): Zap entire pool datastructure.
13421         (mark_constant): Use new pool datastructures.
13422         (mark_constants): Use for_each_rtx.
13423         (mark_constant_pool): Use new pool datastructures.
13424
13425 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
13426
13427         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
13428         Copy operands[1] to pseudo for simplify_gen_subreg.
13429
13430 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13431
13432         * gcse.c (bypass_block): Fix a typo in the previous check-in
13433         to the file.
13434
13435 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
13436
13437         * toplev.c: Include alloc-pool.h.
13438         * Makefile.in (toplev.c): Update dependencies.
13439
13440 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13441
13442         * combine.c (simplify_shift_const, case XOR): Be careful when
13443         commuting XOR with ASHIFTRT.
13444
13445 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13446             Eric Botcazou  <ebotcazou@libertysurf.fr>
13447
13448         * config/sparc/sparc-protos.h: Remove the prototype for
13449         sparc_builtin_saveregs.
13450         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13451         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13452         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13453         (TARGET_STRUCT_VALUE_RTX): Likewise.
13454         (TARGET_RETURN_IN_MEMORY): Likewise.
13455         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13456         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13457         (sparc_builtin_saveregs): Make it static.
13458         (sparc_promote_prototypes): New.
13459         (sparc_struct_value_rtx): Likewise.
13460         (sparc_return_in_memory): Likewise.
13461         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
13462         (PROMOTE_FUNCTION_RETURN): Likewise.
13463         (RETURN_IN_MEMORY): Likewise.
13464         (STRUCT_VALUE): Likewise.
13465         (STRUCT_VALUE_INCOMING): Likewise.
13466         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13467         (STRICT_ARGUMENT_NAMING): Likewise.
13468         (PROMOTE_PROTOTYPES): Likewise.
13469
13470         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
13471
13472 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13473
13474         PR c/12818
13475         * varasm.c (const_hash_1) <STRING_CST>: Use the
13476         address to compute the hash value if flag_writable_strings.
13477         (compare_constant) <STRING_CST>: Compare the addresses
13478         if flag_writable_strings.
13479         (build_constant_desc): Do not copy the expression for a
13480         STRING_CST if flag_writable_strings.
13481
13482 2004-01-30  Jan Hubicka  <jh@suse.cz>
13483
13484         * alloc-pool.c: Include hashtab.h
13485         (alloc_pool_descriptor): New structure
13486         (alloc_pool_hash): New global variable.
13487         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
13488         (create_alloc_pool): Update statistics.
13489         (free_alloc_pool): Likewise.
13490         (pool_alloc): Likewise.
13491         (output_info): New structure
13492         (print_statistics, dump_alloc_pool_statistics): New function.
13493         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
13494         (dump_alloc_pool_statistics): Declare.
13495         * toplev.c (finalize):  Dump statistics.
13496
13497         * reload.c (secondary_memlocs_elim_used): New static variable.
13498         (get_secondary_mem): Update it.
13499         (find_reloads): Use it.
13500
13501 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
13502
13503         * toplev.c: Fix broken checkin of 2003-12-30, again.
13504
13505 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13506
13507         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
13508         s390*-*-* targets by specifying a 'nop' insn.
13509         * configure: Regenerate.
13510
13511 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13512
13513         PR target/11475
13514         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
13515
13516 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13517
13518         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
13519         of addr when creating MEM copy.
13520
13521 2004-01-29  Devang Patel  <dpatel@apple.com>
13522
13523         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
13524
13525 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13526
13527         PR inline-asm/6162
13528         * reload.c (find_reloads): Only support one pair of commutative
13529         operands.
13530
13531 2004-01-29  Roger Sayle  <roger@eyesopen.com>
13532
13533         PR java/13824
13534         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
13535         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
13536         recursion.
13537
13538 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13539
13540         * config/frv/frv.c: Don't mention deprecated macros in
13541         comments.  Remove some target-independent comments about
13542         target macros.
13543         * config/frv/frv.h: Likewise.
13544
13545 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13546
13547         * cfghooks.c (split_block): Set probability and count of the
13548         new edge.
13549
13550 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
13551
13552         * dwarf2out.c (struct die_struct): Added field decl_id.
13553         (decl_die_table): Changed to hash table.
13554         (decl_die_table_allocated): Deleted.
13555         (decl_die_table_in_use): Deleted.
13556         (DECL_DIE_TABLE_INCREMENT): Deleted.
13557         (decl_die_table_hash): New function.
13558         (decl_die_table_eq): New function.
13559         (lookup_decl_die): Lookup in a hash table.
13560         (equate_decl_number_to_die): Insert into a hash table.
13561         (dwarf2out_init): Init hash table decl_die_table.
13562
13563 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13564
13565         PR optimization/13424
13566         * expr.c (store_constructor): Revert 2003-12-03 change.
13567
13568         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
13569         expected before returning early.  Avoid sharing RTL if they
13570         need to be changed.
13571
13572         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
13573         handling so that memory attributes are preserved.  Don't call
13574         ix86_set_move_mem_attrs.
13575         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
13576         (ix86_expand_clrstr): Rename src argument to
13577         dst.  Rework rep_stos and strset handling so that memory attributes
13578         are preserved.
13579         (ix86_expand_strlen): Pass src argument to
13580         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
13581         memory attributes are preserved.
13582         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
13583         change_address instead of gen_rtx_MEM.
13584         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
13585         expanders.
13586         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
13587         strmovqi, strmovqi_rex64): Remove.
13588         (rep_mov*, strmov*): Prefix insn names with *.
13589         (strset, strset_singleop, rep_stos): New expanders.
13590         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
13591         strsetqi, strsetqi_rex64): Remove.
13592         (rep_stos*, strset*): Prefix insn names with *.
13593         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
13594         to SImode.
13595         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
13596         are preserved.
13597         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
13598         Prefix insn names with *.
13599         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
13600         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
13601         (strlenqi_1): New expander.
13602         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
13603
13604 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13605
13606         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
13607         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
13608         verify_flow_info): Declaration removed.
13609         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
13610         (debug_bb, debug_bb_n): Add argument to dump_bb call.
13611         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
13612         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
13613         instead of delete_block.
13614         * cfghooks.c: Include timevar.h and toplev.h.
13615         (cfg_hooks): Define here.
13616         (verify_flow_info, dump_bb): Moved from cfg.c.
13617         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13618         split_block, split_block_after_labels, move_block_after,
13619         delete_basic_block, split_edge, create_basic_block,
13620         create_empty_bb, can_merge_blocks_p, merge_blocks,
13621         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13622         New functions.
13623         * cfghooks.h (struct cfg_hooks): Added fields name,
13624         make_forwarder_block, tidy_fallthru_edge and
13625         move_block_after. Changed type of verify_flow_info, dump_bb,
13626         split_block fields. Renamed cfgh_split_edge and delete_block
13627         fields.
13628         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13629         split_block, delete_block, split_edge, create_basic_block,
13630         can_merge_blocks_p, merge_blocks): Macros removed.
13631         (cfg_hooks): Do not export.
13632         (verify_flow_info, dump_bb, redirect_edge_and_branch,
13633         redirect_edge_and_branch_force, split_block, split_block_after_labels,
13634         move_block_after, delete_basic_block, split_edge, create_basic_block,
13635         create_empty_bb, can_merge_blocks_p, merge_blocks,
13636         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13637         Declare.
13638         (cfg_layout_rtl_cfg_hooks): Declare.
13639         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13640         New functions.
13641         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13642         (redirect_edge_with_latch_update): Removed.
13643         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13644         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13645         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13646         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13647         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13648         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13649         cfghooks.c.
13650         (rtl_create_basic_block): Coding style fix.
13651         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13652         rtl_make_forwarder_block): New functions.
13653         (update_cfg_after_block_merging): Removed.
13654         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13655         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13656         to dump_bb.
13657         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13658         find_if_case_2): Don't update dominators.
13659         * timevar.def (TV_CFG_VERIFY): New.
13660         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13661         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13662         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13663         (remove_bbs): Don't call remove_bbs.
13664         (create_preheader): Use make_forwarder_block.
13665         (mfb_keep_just, mfb_update_loops): New static functions.
13666
13667 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13668
13669         * config/avr/avr.h: Remove target-independent comments about
13670         target macros.
13671
13672 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13673
13674         * timevar.c (timevar_print): Mention when checking is enabled.
13675
13676 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13677
13678         * c-lex.c (c_lex): Rename to...
13679         (c_lex_with_flags): Add new parameter to get CPP flags.
13680         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13681         * c-pragma.h (c_lex_with_flags): Declare.
13682
13683 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13684
13685         * config/mcore/mcore.c (mcore_external_libcall): Add a
13686         comment.
13687         (mcore_return_in_memory): Likewise.
13688
13689 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13690
13691         * config/mcore/mcore-protos.h: Remove the prototype for
13692         mcore_setup_incoming_varargs.
13693         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13694         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13695         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13696         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13697         (TARGET_STRUCT_VALUE_RTX): Likewise.
13698         (TARGET_RETURN_IN_MEMORY): Likewise.
13699         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13700         (mcore_setup_incoming_varargs): Make it static.  Receive the
13701         first argument by reference.  Add argument second_time.
13702         (mcore_external_libcall): New.
13703         (mcore_return_in_memory): Likewise.
13704         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13705         (PROMOTE_FUNCTION_RETURN): Likewise.
13706         (STRUCT_VALUE): Likewise.
13707         (RETURN_IN_MEMORY): Likewise.
13708         (SETUP_INCOMING_VARARGS): Likewise.
13709         (PROMOTE_PROTOTYPES): Likewise.
13710         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13711
13712 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13713
13714         * config/m32r/m32r-protos.h: Remove the prototype for
13715         m32r_setup_incoming_varargs.
13716         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13717         (TARGET_STRUCT_VALUE_RTX): Likewise.
13718         (TARGET_RETURN_IN_MEMORY): Likewise.
13719         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13720         (m32r_return_in_memory): New.
13721         (m32r_setup_incoming_varargs): Make it static.
13722         * config/m32r/m32r.h: Remove #undef of
13723         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13724         definitions of PROMOTE_FUNCTION_ARGS and
13725         PROMOTE_FUNCTION_RETURN.
13726         (PROMOTE_PROTOTYPES): Remove.
13727         (RETURN_IN_MEMORY): Likewise.
13728         (STRUCT_VALUE): Likewise.
13729
13730 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13731
13732         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13733         (TARGET_STRUCT_VALUE_RTX): Likewise.
13734         (m68k_struct_value_rtx): Likewise.
13735         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13736         STRUCT_VALUE_REGNUM.
13737         (PROMOTE_PROTOTYPES): Remove.
13738         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13739         STRUCT_VALUE_REGNUM.
13740         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13741         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13742
13743 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13744
13745         * config/stormy16/stormy16.c
13746         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13747         TARGET_BUILD_BUILTIN_VA_LIST.
13748
13749 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13750
13751         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13752         (TARGET_STRUCT_VALUE_RTX): Likewise.
13753         (TARGET_RETURN_IN_MEMORY): Likewise.
13754         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13755         (v850_return_in_memory): Likewise.
13756         (v850_setup_incoming_varargs): Likewise.
13757         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13758         (SETUP_INCOMING_VARARGS): Likewise.
13759         (RETURN_IN_MEMORY): Likewise.
13760         (STRUCT_VALUE): Likewise.
13761
13762 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13763
13764         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13765         (fr30_setup_incoming_varargs): Don't use
13766         STRICT_ARGUMENT_NAMING.
13767         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13768         (STRICT_ARGUMENT_NAMING): Likewise.
13769
13770 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13771
13772         * config/frv/frv-protos.h: Remove the prototype for
13773         frv_expand_builtin_saveregs.
13774         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13775         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13776         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13777         STRUCT_VALUE_REGNUM.
13778         (frv_expand_builtin_saveregs): Make it static.
13779         (frv_struct_value_rtx): New.
13780         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13781
13782 2004-01-29  Jan Hubicka  <jh@suse.cz>
13783
13784         PR c++/12850
13785         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13786         initial pointers.
13787         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13788         for functions that will be only inlined.
13789         (cgraph_mark_function_to_output): Likewise.
13790         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13791         do not clear function body.
13792         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13793         (tree_rest_of_compilation): Reorganize the logic releasing function
13794         body to use callgraph datastructure.
13795
13796 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13797
13798         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13799         to register_operand.
13800
13801 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13802
13803         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13804         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13805         match_operand expressions so that all match_dups appear
13806         lexically after their corresponding match_operands.
13807
13808 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13809
13810         * config/h8300/h8300.c (WORD_REG_USED): Use
13811         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13812         (compute_saved_regs): Likewise.
13813         (h8300_expand_prologue): Likewise.  Allocate locals after
13814         saving registers.
13815         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13816         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13817         registers.
13818         (h8300_initial_elimination_offset): Adjust for the new frame
13819         layout, which swaps flips the order of locals and saved
13820         registers.
13821         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13822         (HARD_FRAME_POINTER_REGNUM): New.
13823         (ELIMINABLE_REGS): Add an elimination rule from
13824         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13825         (REGISTER_NAMES): Add fp.
13826         * config/h8300/h8300.md (FP_REG): Change to 11.
13827         (HFP_REG): New.
13828
13829 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13830
13831         * genrecog.c (write_node): Remove a useless local variable.
13832
13833 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13834
13835         * Makefile.in (options.c options.h): Use stamp file s-options to
13836         avoid unnecessary rebuilds.
13837         (options.o): New target listing dependencies.
13838         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13839         (STAGESTUFF): Add s-gtyp-gen.
13840
13841 2004-01-28  Richard Henderson  <rth@redhat.com>
13842
13843         * ggc.h (ggc_free): Declare.
13844         * ggc-common.c (ggc_realloc): Use it.
13845         * ggc-page.c: Remove lots of inline markers.
13846         (globals): Add free_object_list.
13847         (ggc_alloc): Tidy.
13848         (ggc_free, validate_free_objects): New.
13849         (poison_pages): Provide default.
13850         (ggc_collect): Call validate_free_objects; emit markers to
13851         the debug file.
13852
13853 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13854             Jim Wilson  <wilson@specifixinc.com>
13855
13856         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13857         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13858         scratch pointer.
13859         (ia64_secondary_reload_class): Delete case GR_REGS.
13860         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13861         Do not allocate a scratch register.
13862         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13863
13864 2004-01-28  Jan Hubicka  <jh@suse.cz>
13865
13866         * gcse.c (bypass_block): Prevent edges to be unified when we are
13867         about to emit compenstation code.
13868
13869 2004-01-28  Nick Clifton  <nickc@redhat.com>
13870
13871         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13872         the setcwx insn into a register.
13873
13874 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13875
13876         * config/fp-bit.c (pack_d): When using paired doubles to implement
13877         a long double, round the high part separately.
13878         (unpack_d): Fix the case in which the high part is a power of two
13879         and the low part is a nonzero value of the opposite sign.
13880
13881 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13882
13883         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13884         (TARGET_STRUCT_VALUE_RTX): Likewise.
13885         (c4x_external_libcall): Likewise.
13886         (c4x_struct_value_rtx): Likewise.
13887         * config/c4x/c4x.h: Remove.
13888         (STRUCT_VALUE_REGNUM): Likewise.
13889         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13890
13891 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13892
13893         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13894         (TARGET_STRUCT_VALUE_RTX): Likewise.
13895         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13896         (STRUCT_VALUE): Likewise.
13897         (PROMOTE_PROTOTYPES): Likewise.
13898
13899 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13900
13901         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13902         CONST_INT before using INTVAL.
13903
13904 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13905
13906         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13907         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13908         frame if !TARGET_BACKCHAIN.
13909         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13910         TARGET_BACKCHAIN.
13911         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13912
13913 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13914
13915         * ia64.c (ia64_function_arg): When placing HFAs in integer
13916         registers, do not special case the mode used for complex
13917         types.  Do not advance int_regs until the current register
13918         is full.
13919
13920 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13921
13922         PR target/7297
13923         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13924
13925 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13926
13927         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13928         slow, unaligned loads and stores while debugging.  Fix formatting.
13929
13930 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13931
13932         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13933         of computing wmode.
13934         (restore_stack_nonlocal): Same.
13935
13936 2004-01-27  Devang Patel <dpatel@apple.com>
13937
13938         * Makefile.in (dwarf2out.o): Depend on input.h
13939         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13940         imported_module_or_decl.
13941         (xcoff_debug_hooks): Same.
13942         * sdbout.c (sdb_debug_hooks): Same.
13943         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13944         * debug.c (do_nothing_debug_hooks): Same.
13945         (debug_nothing_tree_tree): New function.
13946         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13947         * dwarf2out.c: Include input.h.
13948         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13949         (remove_child_TAG): New function.
13950         (dwarf_tag_name): Handle DW_TAG_imported_module.
13951         (gen_subprogram_die): Equate decl number to declaration die. Do not
13952         remove all children dies while reusing declaration die for definition.
13953         Instead, selectively remove only formal parameters.
13954         (gen_variable_die): Equate variable decl to declaration die.
13955         (gen_field_die): Equate field decl to line number.
13956         (force_namespace_die): Replace it with ...
13957         (force_decl_die): ... this.
13958         (force_type_die): New function.
13959         (setup_namespace_context): Replace use of force_namespace_die() with
13960         force_decl_die().
13961         (gen_namespace_die): Same.
13962         (dwarf2out_imported_module_or_decl): New function.
13963
13964 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13965
13966         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13967         on CQImode and CHImode incoming arguments in register a7.
13968         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13969         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13970         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13971         xtensa_copy_incoming_a7 before reload.
13972
13973 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13974
13975         * coverage.c (get_coverage_counts): Give a different message
13976         if flag_guess_branch_prob is set.
13977         * predict.c (counts_to_freqs): Return an int.
13978         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13979         calculate estimates.
13980
13981 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13982
13983         * config/iq2000/iq2000-protos.h: Remove the prototype for
13984         iq2000_setup_incoming_varargs.
13985         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13986         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13987         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13988         (TARGET_STRUCT_VALUE_RTX): Likewise.
13989         (TARGET_RETURN_IN_MEMORY): Likewise.
13990         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13991         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13992         (iq2000_return_in_memory): Likewise.
13993         (iq2000_setup_incoming_varargs): Make it static.  Receive the
13994         first argument by reference.
13995         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
13996         (PROMOTE_FUNCTION_RETURN): Likewise.
13997         (PROMOTE_PROTOTYPES): Likewise.
13998         (RETURN_IN_MEMORY): Likewise.
13999         (STRUCT_VALUE): Likewise.
14000         (SETUP_INCOMING_VARARGS): Likewise.
14001         (STRICT_ARGUMENT_NAMING): Likewise.
14002
14003 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14004
14005         * fixinc/fixinc.c (test_test): Initialize res.
14006         (start_flexer): Initialize pz_cmd_save.
14007
14008 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14009
14010         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14011         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14012
14013 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14014
14015         PR 7198
14016         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14017         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14018         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14019         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14020         Possibly rename pattern for consistency.
14021         Remove ??? comments suggesting that this be done.
14022         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14023         New patterns.
14024         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14025         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14026         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14027         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14028         Update to match.
14029
14030 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14031
14032         * config/arm/arm.c (output_return_instruction): Only restore IP
14033         into SP if frame_pointer_needed.
14034
14035 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14036
14037         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14038         for SCmode and DCmode if ARCH32.
14039         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14040         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14041         if ARCH32.
14042         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14043         if ARCH32.
14044         (BASE_OUTGOING_VALUE_REG): Likewise.
14045
14046 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14047
14048         PR target/10904
14049         PR target/13058
14050         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14051         Forbid mode changes from SImode for lower FP regs if ARCH64.
14052
14053 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14054
14055         * Makefile.in (bt-load.o): Depend on except.h.
14056         * bt-load.c (except.h): #include.
14057         (compute_defs_uses_and_gen): If insn at end of BB can throw
14058         within this function, consider registers used by it unavailable for
14059         btr migration.
14060         (move_btr_def): If insn at end of BB can throw, insert before rather
14061         than after.
14062
14063         * flags.h (flag_btr_bb_exclusive): Declare.
14064         * toplev.c (flag_btr_bb_exclusive): New variable.
14065         (f_options): Add btr-bb-exclusive.
14066         * bt-load.c (augment_live_range): Restore old behaviour if
14067         flag_btr_bb_exclusive is set.
14068         * common.opt: Add entry for -fbtr-bb-exclusive.
14069         * opts.c (common_handle_options): Same.
14070         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14071
14072         * bt-load.c (btrs_live_at_end): New variable.
14073         (compute_defs_uses_and_gen): Compute its pointed-to array.
14074         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14075         (augment_live_range): When augmenting with a new dominator,
14076         use only its btrs_live_at_end set, but also add in the full set
14077         of the old dominator.
14078         (btr_def_live_range): Use btrs_live_at_end.
14079         (move_btr_def): Set other_btr_uses_before_def, and move new set
14080         to the end of the basic block, if appropriate.
14081         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14082
14083         * bt-load.c (basic_block_freq): Remove outdated comment.
14084
14085 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14086
14087         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14088         (PREDICATE_CODES): Remove duplicate.
14089         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14090         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14091         (MASK_PROFILE_KERNEL): Adjust define.
14092
14093 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14094
14095         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14096         of long string literals from 32 bytes to sizeof (void *) when !-Os
14097         and to 1 with -Os.
14098
14099 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14100
14101         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14102         constant addresses in the normal mode.
14103
14104 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14105
14106         * system.h (CHAR_BITFIELD): Delete.
14107         (BOOL_BITFIELD): New.
14108         * c-decl.c (c_scope): Use BOOL_BITFIELD.
14109         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
14110
14111 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14112
14113         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14114         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14115         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14116         (TARGET_STRUCT_VALUE_RTX): Likewise.
14117         (TARGET_RETURN_IN_MEMORY): Likewise.
14118         (arc_return_in_memory): Likewise.
14119         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
14120         (PROMOTE_FUNCTION_RETURN): Likewise.
14121         (RETURN_IN_MEMORY): Likewise.
14122         (STRUCT_VALUE): Likewise.
14123
14124 2004-01-26  Richard Henderson  <rth@redhat.com>
14125
14126         * c-parse.in (extension): Use itype.
14127         (SAVE_EXT_FLAGS): Don't allocate a tree.
14128         (RESTORE_EXT_FLAGS): Don't read a tree.
14129
14130 2004-01-26  Jan Hubicka  <jh@suse.cz>
14131
14132         * cselib.c (discard_useless_values):  Clear out value pointer pointing
14133         to datastructure to be recycled.
14134
14135 2004-01-25  Jan Hubicka  <jh@suse.cz>
14136
14137         * genextract.c (main): Do not output the memset when not checking.
14138
14139 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14140
14141         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
14142         switch statement instead of a chain of if statements.
14143
14144 2004-01-26  Jeff Law  <law@redhat.com>
14145
14146         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
14147         acute accents for Petur Runolfsson's entry.
14148
14149 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14150
14151         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
14152         (TARGET_RETURN_IN_MEMORY): Likewise.
14153         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
14154         (RETURN_IN_MEMORY): Likewise.
14155
14156 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14157
14158          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
14159          unaligned load/store into smaller loads and stores.
14160
14161 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14162
14163         * function.c (assign_parms): Do not assign
14164         long long argument to memory in prologue if
14165         is it loaded into register.
14166
14167 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14168
14169          PR middle-end/13779
14170          * expr.c (emit_group_load): split constant
14171          correctly into register components of PARALLEL insn.
14172
14173 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14174
14175         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
14176         Use adjust_address_nv directly with appropriate mode.
14177         (restore_stack_nonlocal): Ditto.
14178
14179 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14180
14181         * config/xtensa/xtensa-protos.h: Remove the prototype for
14182         xtensa_builtin_saveregs.
14183         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14184         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14185         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14186         (TARGET_STRUCT_VALUE_RTX): Likewise.
14187         (TARGET_RETURN_IN_MEMORY): Likewise.
14188         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14189         (xtensa_builtin_saveregs): Make it static.
14190         (xtensa_return_in_memory): New.
14191         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
14192         (PROMOTE_FUNCTION_RETURN): Likewise.
14193         (PROMOTE_PROTOTYPES): Likewise.
14194         (STRUCT_VALUE): Likewise.
14195         (RETURN_IN_MEMORY): Likewise.
14196         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14197
14198 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14199
14200         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
14201         (arm_setup_incoming_varargs): Likewise.
14202         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
14203
14204 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14205
14206         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
14207         (cris_setup_incoming_varargs): Likewise.
14208         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
14209
14210 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14211
14212         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
14213         (ns32k_struct_value_rtx): Likewise.
14214         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
14215         NS32K_STRUCT_VALUE_REGNUM.
14216
14217 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14218
14219         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14220         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14221         (TARGET_STRUCT_VALUE_RTX): Likewise.
14222         (arm_struct_value_rtx): Likewise.
14223         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
14224         (STRUCT_VALUE): Likewise.
14225         (STRUCT_VALUE_REGNUM): Likewise.
14226         (PROMOTE_PROTOTYPES): Likewise.
14227
14228 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14229
14230         * config/ia64/ia64-protos.h: Remove the prototype for
14231         ia64_setup_incoming_varargs and ia64_return_in_memory.
14232         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
14233         (TARGET_RETURN_IN_MEMORY): Likewise.
14234         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14235         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14236         (ia64_setup_incoming_varargs): Adjust the arguments to meet
14237         the requirement of TARGET_SETUP_INCOMING_VARARGS.
14238         (ia64_return_in_memory): Make it static.  Change the return
14239         type to bool from int.  Add an argument.
14240         (ia64_struct_value_rtx): New.
14241         * config/ia64/ia64.h: Remove commented-out definitions of
14242         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
14243         PROMOTE_PROTOTYPES.
14244         (RETURN_IN_MEMORY): Remove.
14245         (STRUCT_VALUE_REGNUM): Likewise.
14246         (STRICT_ARGUMENT_NAMING): Likewise.
14247
14248 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
14249
14250         PR target/13666
14251         * config/sparc/sparc.c (function_arg_union_value): New function.
14252         (function_arg): Use it to deal with unions.
14253         (function_value): Likewise.  Define 'regbase' only for ARCH64.
14254         Replace a conditional statement by a simpler one.
14255
14256 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
14257
14258         * config/mips/mips.c (mips16_optimize_gp): Delete.
14259         (mips_reorg): Don't call it.
14260
14261 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14262
14263         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
14264         (floatunsqihf2): Remove operand 6.
14265         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
14266         fix patterns.
14267         (ldi_conditional, ldf_conditional): Validate operands.
14268
14269 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14270
14271         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
14272         (HAVE_GAS_HIDDEN): Undefine as interim measure.
14273
14274 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14275
14276         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
14277         memory references if TARGET_EXPOSE_LDP nonzero.
14278
14279 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14280
14281         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
14282
14283 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14284
14285         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
14286         invalid operand combinations.
14287
14288 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14289
14290         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
14291         c4x_legitimate_address_p.  Fix post_modify check.
14292
14293         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
14294         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
14295
14296 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14297
14298         * config/pa/pa-protos.h: Remove the prototype for
14299         hppa_builtin_saveregs.  Add a prototype for
14300         pa_return_in_memory.
14301         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
14302         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14303         (TARGET_STRUCT_VALUE_RTX): Likewise.
14304         (TARGET_RETURN_IN_MEMORY): Likewise.
14305         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14306         (pa_struct_value_rtx): Likewise.
14307         (pa_return_in_memory): Likewise.
14308         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
14309         PA_STRUCT_VALUE_REGNUM.
14310         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
14311         (EXPAND_BUILTIN_SAVEREGS): Remove.
14312         (PROMOTE_PROTOTYPES): Likewise.
14313         (PROMOTE_FUNCTION_RETURN): Likewise.
14314
14315 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14316
14317         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
14318         (TARGET_STRUCT_VALUE_RTX): Likewise.
14319         (vax_struct_value_rtx): Likewise.
14320         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
14321         VAX_STRUCT_VALUE_REGNUM.
14322         (PROMOTE_PROTOTYPES): Remove.
14323
14324 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14325
14326         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
14327
14328 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
14329
14330         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
14331         and MIPS64 have HI/LO interlocks.  Update comment.
14332
14333 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14334
14335         * config/stormy16/stormy16-protos.h: Remove the prototype for
14336         xstormy16_setup_incoming_varargs.
14337         * config/stormy16/stormy16.c
14338         (xstormy16_setup_incoming_varargs): Remove.
14339         (xstormy16_return_in_memory): New.
14340         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14341         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14342         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14343         (TARGET_STRUCT_VALUE_RTX): Likewise.
14344         (TARGET_RETURN_IN_MEMORY): Likewise.
14345         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
14346         (PROMOTE_FUNCTION_RETURN): Likewise
14347         (PROMOTE_PROTOTYPES): Likewise
14348         (RETURN_IN_MEMORY): Likewise
14349         (STRUCT_VALUE): Likewise
14350         (SETUP_INCOMING_VARARGS): Likewise
14351
14352 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14353
14354         * config/mips/mips.c (mips_offset_within_object_p): New function.
14355         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
14356         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
14357         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
14358
14359 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14360
14361         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
14362         (PROMOTE_FUNCTION_RETURN): Likewise.
14363
14364 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14365
14366         * config/mn10300/mn10300-protos.h: Remove the prototype for
14367         mn10300_builtin_saveregs.
14368         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
14369         (TARGET_STRUCT_VALUE_RTX): Likewise.
14370         (TARGET_RETURN_IN_MEMORY): Likewise.
14371         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14372         (mn10300_return_in_memory): Likewise.
14373         (mn10300_builtin_saveregs): Make it static.
14374         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
14375         (RETURN_IN_MEMORY): Likewise.
14376         (STRUCT_VALUE): Likewise.
14377         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14378
14379 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
14380
14381         PR bootstrap/13853
14382         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
14383
14384 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14385
14386         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
14387         using ccr.
14388
14389 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14390
14391         * config/i860/i860-protos.h: Remove the prototype for
14392         i860_saveregs.
14393         * config/i860/i860.c (i860_saveregs): Make it static.
14394         (i860_struct_value_rtx): New.
14395         (TARGET_STRUCT_VALUE_RTX): Likewise.
14396         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14397         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
14398         I860_STRUCT_VALUE_REGNUM.
14399         (EXPAND_BUILTIN_SAVEREGS): Remove.
14400
14401 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14402
14403         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
14404         (TARGET_RETURN_IN_MEMORY): Likewise.
14405         (m68hc11_struct_value_rtx): Likewise.
14406         (m68hc11_return_in_memory): Likewise.
14407         * config/m68hc11/m68hc11.h: Remove a commented-out definition
14408         of PROMOTE_PROTOTYPES.
14409         (RETURN_IN_MEMORY): Remove.
14410         (STRUCT_VALUE_REGNUM): Likewise.
14411
14412 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14413
14414         * config/mmix/mmix-protos.h: Remove the prototype for
14415         mmix_setup_incoming_varargs.
14416         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14417         (TARGET_STRUCT_VALUE_RTX): Likewise.
14418         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14419         (mmix_setup_incoming_varargs): Make it static.
14420         (mmix_struct_value_rtx): New.
14421         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
14422         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
14423         (STRUCT_VALUE_REGNUM): Remove.
14424         (SETUP_INCOMING_VARARGS): Likewise.
14425
14426 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14427
14428         * config/mips/mips-protos.h: Remove the prototypes for
14429         mips_setup_incoming_varargs and mips_return_in_memory.
14430         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14431         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14432         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14433         (TARGET_STRUCT_VALUE_RTX): Likewise.
14434         (TARGET_RETURN_IN_MEMORY): Likewise.
14435         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14436         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14437         (mips_setup_incoming_varargs): Match the prototype for
14438         TARGET_SETUP_INCOMING_VARARGS.
14439         (mips_return_in_memory): Make it static.  Add argument fntype.
14440         (mips_strict_argument_naming): New.
14441         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
14442         (PROMOTE_FUNCTION_ARGS): Likewise.
14443         (PROMOTE_FUNCTION_RETURN): Likewise.
14444         (STRUCT_VALUE): Likewise.
14445         (RETURN_IN_MEMORY): Likewise.
14446         (SETUP_INCOMING_VARARGS): Likewise.
14447         (STRICT_ARGUMENT_NAMING): Likewise.
14448
14449 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14450
14451         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
14452         (TARGET_RETURN_IN_MEMORY): Likewise.
14453         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14454         (ip2k_return_in_memory): Likewise.
14455         (ip2k_setup_incoming_varargs): Likewise.
14456         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
14457         (STRUCT_VALUE): Likewise.
14458         (STRUCT_VALUE_INCOMING): Likewise.
14459         (SETUP_INCOMING_VARARGS): Likewise.
14460
14461 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14462
14463         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
14464         (TARGET_RETURN_IN_MEMORY): Likewise.
14465         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14466         (avr_return_in_memory): Remove.
14467         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
14468         (STRUCT_VALUE): Likewise.
14469         (STRUCT_VALUE_INCOMING): Likewise.
14470         (STRICT_ARGUMENT_NAMING): Likewise.
14471
14472 2004-01-25  Jan Hubicka  <jh@suse.cz>
14473
14474         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
14475
14476 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14477
14478         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
14479         (mips_regno_mode_ok_for_base_p): Declare.
14480         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
14481         (FRAME_POINTER_REGNUM): Renumber to 78.
14482         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
14483         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
14484         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
14485         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
14486         (REG_MODE_OK_FOR_BASE_P): Likewise.
14487         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
14488         entry for 77 to "$arg" and entry for 78 to "$frame".
14489         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
14490         (mips_reg_mode_ok_for_base_p): Remove.
14491         (mips_regno_mode_ok_for_base_p): New function, derived from old
14492         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
14493         restrictions unless we're being strict.
14494         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
14495
14496 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14497
14498         * c-common.h: Fix comment typos.
14499         * c-decl.c: Likewise.
14500         * cgraphunit.c: Likewise.
14501         * combine.c: Likewise.
14502         * et-forest.c: Likewise.
14503         * flow.c: Likewise.
14504         * function.c: Likewise.
14505         * ifcvt.c: Likewise.
14506         * integrate.c: Likewise.
14507         * jump.c: Likewise.
14508         * postreload.c: Likewise.
14509         * varray.c: Likewise.
14510
14511 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14512
14513         * doc/frontends.texi: Update copyright.
14514         * doc/gcov.texi: Likewise.
14515         * doc/gty.texi: Likewise.
14516         * doc/sourcebuild.texi: Likewise.
14517         * doc/standards.texi: Likewise.
14518
14519 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
14520
14521         PR target/12978
14522         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
14523         Remove movstrqi_small because it conflicts with movstrqi_large.
14524
14525 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14526
14527         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14528         (TARGET_STRUCT_VALUE_RTX): Likewise.
14529         (cris_struct_value_rtx): Likewise.
14530         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
14531         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
14532         STRUCT_VALUE_REGNUM.
14533         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
14534
14535 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
14536
14537         PR bootstrap/13848
14538         * cse.c (cse_cc_succs): Change the mode of the source expression
14539         as soon as decide we need a new mode.  Don't permit changing modes
14540         if we found a match in a successor block.
14541         (cse_condition_code_reg): Save original mode of source expression
14542         so that we know whether we have to change the mode in other
14543         insns.
14544
14545 2004-01-24  Jan Hubicka  <jh@suse.cz>
14546
14547         * emit-rtl.c (change_address, adjust_address_1, offset_address,
14548         widen_memory_access):  Return early when there is nothing to change.
14549
14550 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
14551
14552         * simplify-rtx.c (simplify_relational_operation): Don't
14553         simplify address == constant into address + -constant == 0.
14554
14555 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14556
14557         * gcc.c (process_command): Don't internationalize the
14558         Copyright message.
14559         * mips-tfile.c (main): Likewise.
14560
14561 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
14562
14563         * cse.c: (cse_cc_succs) Fix comparison warning.
14564
14565 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14566
14567         * config/h8300/h8300.md: Remove extraneous USE in expanders.
14568
14569 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14570
14571         * config/h8300/h8300-protos.h: Provide prototypes for
14572         h8300_legitimate_constant_p and h8300_legitimate_address_p.
14573         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
14574         (h8300_rtx_ok_for_base_p): Likewise.
14575         (h8300_legitimate_address_p): Likewise.
14576         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
14577         h8300_legitimate_constant_p.
14578         (RTX_OK_FOR_BASE_P): Remove.
14579         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
14580
14581 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14582
14583         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
14584         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
14585         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
14586         (REG_OK_FOR_BASE_STRICT_P): Likewise.
14587         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
14588         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
14589         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
14590         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
14591
14592 2004-01-24  Jan Hubicka  <jh@suse.cz>
14593
14594         * cselib.c (remove_useless_values):  Do not access discarded values.
14595
14596 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
14597
14598         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
14599         arrays.
14600
14601 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14602
14603         * recog.c: Fix a typo in copyright.
14604
14605 2004-01-23  Andrew Pinski  <apinski@apple.com>
14606
14607         * config/rs6000/rs6000.md (call): Fix misappiled patch.
14608         (call_value): Likewise.
14609
14610 2004-01-23  Richard Henderson  <rth@redhat.com>
14611
14612         PR opt/12941
14613         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
14614         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
14615         if SHIFT_COUNT_TRUNCATED is set.
14616
14617 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
14618
14619         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
14620         separate real and imaginary parts.
14621         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
14622
14623 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
14624
14625         PR target/13674
14626         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
14627         loading into GPR.
14628
14629 2004-01-23  Jan Hubicka  <jh@suse.cz>
14630
14631         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
14632         change.
14633
14634         * alloc-pool.c (align_four): Kill.
14635         (create_alloc_pool): Align size to eight.
14636         (free_alloc_pool, free_pool): Invalidate deallocated data.
14637
14638 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14639
14640         PR gcc/1532
14641         * cse.c (cse_change_cc_mode): New static function.
14642         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14643         (cse_condition_code_reg): New function.
14644         * rtl.h (cse_condition_code_reg): Declare.
14645         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14646         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14647         cc_modes_compatible.
14648         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14649         (TARGET_CC_MODES_COMPATIBLE): Define.
14650         (TARGET_INITIALIZER): Add new initializers.
14651         * targhooks.c (default_cc_modes_compatible): New function.
14652         * targhooks.c (default_cc_modes_compatible): Declare.
14653         * hooks.c (hook_bool_intp_intp_false): New function.
14654         * hooks.h (hook_bool_intp_intp_false): Declare.
14655         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14656         (TARGET_CC_MODES_COMPATIBLE): Define.
14657         (ix86_fixed_condition_code_regs): New static function.
14658         (ix86_cc_modes_compatible): Likewise.
14659         * doc/tm.texi (Condition Code): Document new hooks.
14660
14661 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14662
14663         * fixinc/inclhack.def (bad_lval): Renamed to ...
14664         (alpha_bad_lval): ... this.
14665         Removed file list.
14666         Restrict to alpha*-dec-osf*.
14667         * fixinc/fixincl.x: Regenerate.
14668         * fixinc/tests/base/dirent.h: Remove, moving test ...
14669         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14670
14671 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14672
14673         PR c/13814
14674         * c-decl.c (diagnose_mismatched_decls): Also discard a
14675         built-in if we encounter an old-style definition with the
14676         same name.
14677
14678 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14679
14680         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14681         set to default{32,64}.
14682
14683 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14684
14685         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14686         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14687
14688 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14689             Olivier Hainque  <hainque@act-europe.fr>
14690
14691         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14692         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14693
14694 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14695
14696         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14697         size for minipool references.
14698
14699 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14700
14701         * real.c (real_floor, real_ceil): Tweak to allow input and output
14702         arguments to overlap.
14703         (real_round): New function to implement round(3m) semantics.
14704         * real.h (real_round): Prototype here.
14705         * builtins.c (fold_builtin_round): New function to constant fold
14706         round, roundf and roundl.
14707         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14708
14709 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14710
14711         PR optimization/13819
14712         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14713         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14714         (sh_handle_sp_switch_attribute): Remove warning.
14715
14716 2003-11-30  Jan Hubicka  <jh@suse.cz>
14717
14718         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14719
14720 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14721
14722         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14723         may or may not return non-NIL.
14724         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14725         check CANNOT_CHANGE_MODE_CLASS
14726
14727 2004-01-23  Jan Hubicka  <jh@suse.cz>
14728
14729         * basic-block.h (PROP_POSTRELOAD): New macro.
14730         (CLEANUP_LOG_LINKS): New.
14731         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14732         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14733
14734         * cselib.c (value_pool): New.
14735         (new_cselib_val): Use pool.
14736         (cselib_init): Initialize value_pool
14737         (cselib_finish): Free pool.
14738
14739 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14740
14741         * config/sparc/sparc.c (scan_record_type): New function.
14742         (function_arg_slotno): Use it to determine which kinds of
14743         registers the record can be passed in.
14744
14745 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14746
14747         * config/pa/fptr.c: Fix old-style definition.
14748
14749 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14750
14751         PR optimization/13724
14752         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14753         represents the zero bits produced by a ZERO_EXTEND operation.
14754
14755 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14756
14757         PR optimization/13821
14758         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14759         correctly calculate the lowpart offset of the contracted subreg.
14760
14761 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14762
14763         * doc/invoke.texi (Optimize Options): Note that --param arguments
14764         are subject to change without notice.
14765
14766 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14767
14768         * config.gcc (mips-sgi-irix6*o32): Removed.
14769         * config/mips/iris6-o32-as.h: Likewise.
14770         * config/mips/iris6-o32-gas.h: Likewise.
14771         * config/mips/iris6-o32.h: Likewise.
14772
14773 2004-01-22  Jan Hubicka  <jh@suse.cz>
14774
14775         * cfgcleanup.c (first_pass): New static variable.
14776         (try_forward_edges):  Add work limiting check for threading.
14777         (try_crossjump_bb):  Add work limiting check for crossjumping.
14778         (try_optimize_cfg):  Maintain first pass variable.
14779
14780 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14781
14782         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14783         handles complex and vector modes.
14784
14785 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14786
14787         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14788         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14789         (STRICT): Likewise.
14790
14791 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14792
14793         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14794         (genrtl_for_stmt): Remove emit_nop calls.
14795
14796 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14797
14798         PR target/13713
14799         PR target/13324
14800         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14801         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14802         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14803
14804 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14805
14806         * config/arm/arm.c: Include "debug.h".
14807         (thumb_pushpop): Take two new arguments.  Add some commentary.
14808         Output frame information when pushing.
14809         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14810         thumb_pushpop.
14811         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14812         offset, and pass it to thumb_pushpop.  Output CFI information.
14813         (thumb_expand_prologue): Add some frame-related markers and notes.
14814
14815 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14816
14817         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14818         for TARGET_64BIT.
14819         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14820         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14821
14822 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14823             Paolo Bonzini  <bonzini@gnu.org>
14824
14825         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14826         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14827         * rtl.h (subreg_lsb_1): Prototype here.
14828         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14829         sign extensions.
14830
14831 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14832
14833         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14834         macro need not be defined if jump-tables should contain
14835         relative addresses only when -fPIC or -fPIC is in effect.
14836
14837 2004-01-22  Jan Hubicka  <jh@suse.cz>
14838
14839         * alias.c (reg_base_value): Turn into varray.
14840         (reg_base_value_size): Kill.
14841         (old_reg_base_value): New deletable varray.
14842         (alias_invariant_size): New variable.
14843         (REG_BASE_VALUE): Update to use varray.
14844         (find_base_value): Likewise.
14845         (record_set): Likewise.
14846         (record_base_value): Likewise.
14847         (memrefs_conflict_p): Likewise.
14848         (record_set): Likewise
14849         (record_base_value): Likewise.
14850         (memrefs_conflict_p): Use alias_invariant_size.
14851         (init_alias_analysis): Use varray; set alias_invariant_size;
14852         rescale other arrays to be sized by maxreg.
14853         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14854
14855 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14856
14857         * config/sparc/sparc.c (function_arg_slotno): Use
14858         FLOAT_TYPE_P to detect FP fields in structures.
14859         (function_arg_record_value_1): Likewise.
14860         (function_arg_record_value_2): Likewise.
14861
14862 2004-01-22  Jan Hubicka  <jh@suse.cz>
14863
14864         * function.c (allocate_struct_function): Do not initialize expr, emit
14865         and varasm.
14866         (prepare_function_start): Do it here.
14867         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14868
14869 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14870
14871         PR target/13559
14872         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14873         to 'word_mode' once the first slot has been filled.
14874
14875 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14876
14877         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14878         computation of the number of integer registers required.
14879
14880 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14881
14882         * config/i386/i386.md: Simplify certain comparisons of
14883         const_int.
14884
14885 2004-01-21  Andrew Pinski  <apinski@apple.com>
14886
14887         PR target/13785
14888         * config/rs6000/rs6000.md (call_value): Force operand
14889         1 not operand 0 into a register.
14890
14891 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14892
14893         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14894         unwind-dw2-fde.h: Update copyright.
14895
14896 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14897
14898         * pa-protos.h: Update copyright.
14899         * pa.h: Likewise.
14900         * pa.md: Likewise.
14901
14902 2004-01-21  Caroline Tice  <ctice@apple.com>
14903
14904         PR target/12308
14905         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14906         flags register.
14907         (fix_truncdfdi2): Likewise.
14908         (fix_truncsfdi2): Likewise.
14909         (*fix_truncdi_1): Likewise.
14910         (fix_truncxfsi2): Likewise.
14911         (fix_truncdfsi2): Likewise.
14912         (fix_truncsfsi2): Likewise.
14913         (*fix_truncsi_1): Likewise.
14914         (fix_truncxfhi2): Likewise.
14915         (fix_truncdfhi2): Likewise.
14916         (fix_truncsfhi2): Likewise.
14917         (*fix_trunchi_1): Likewise.
14918
14919 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14920
14921         * alias.c, basic-block.h, c-common.c, c-common.h,
14922         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14923         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14924         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14925         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14926         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14927         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14928         genautomata.c, genconditions.c, genemit.c, genflags.c,
14929         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14930         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14931         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14932         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14933         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14934         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14935         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14936         unwind.h, varray.c, varray.h: Update copyright.
14937
14938 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14939
14940         * config/h8300/coff.h: Update copyright.
14941         * config/h8300/elf.h: Likewise.
14942         * config/h8300/h8300-protos.h: Likewise.
14943         * config/h8300/h8300.c: Likewise.
14944         * config/h8300/h8300.h: Likewise.
14945         * config/h8300/h8300.md: Likewise.
14946
14947 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14948
14949         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14950         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14951         ultrix_unistd): New hacks.
14952         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14953         ULTRIX_CONST2_CHECK): Add checks.
14954         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14955         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14956         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14957         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14958         * fixinc/tests/base/locale.h: New file.
14959         * fixinc/fixincl.x: Rebuilt.
14960
14961 2004-01-21  Andreas Jaeger  <aj@suse.de>
14962             Michael Matz  <matz@suse.de>
14963
14964         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14965
14966 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14967
14968         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14969         _Jv_RegisterClasses through a function pointer.
14970
14971 2004-01-21  Falk Hueffner  <falk@debian.org>
14972
14973         PR target/12898
14974         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14975         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14976         which need multiple instructions to emit.
14977
14978 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14979
14980         * config/m32r/m32r.h (CPP_SPEC): Define.
14981
14982 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14983
14984         * c-decl.c (merge_decls): Kill different_binding_level and
14985         different_tu arguments; simplify throughout.
14986         (duplicate_decls): Likewise.
14987         (pushdecl, merge_translation_unit_decls): Update calls to
14988         duplicate_decls.
14989
14990 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14991
14992         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
14993         $(SYSTEM_H).
14994         (print-rtl1.o): Depend on $(SYSTEM_H).
14995
14996 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
14997
14998         PR bootstrap/12730
14999         * configure.ac: Delete definition and subsitution of docdir.
15000         Add info, man, srcman and srcinfo to target hooks. Create doc/
15001         directory.
15002         * configure: Regenerate.
15003         * Makefile.in: Don't substitute docdir and delete all references
15004         throughout.
15005         (MAKEINFOFLAGS): Define.
15006         (stmp-docobjdir): Delete.
15007         (INFOFILES, MANFILES): Define.
15008         (info): Call lang.info, srcinfo and lang.srcinfo.
15009         (generated-manpages): Call lang.man, srcman and lang.srcman.
15010         (srcinfo, srcman): New rules to copy back files to source directory.
15011         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15012         (install-man): Revamp rule.
15013         (clean): Update dvi directory.
15014         (distclean): Delete TAGS from front end directorys.
15015         (maintainer-clean): Delete all document files in source directory.
15016
15017         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15018         (objc.srcman, objc.srcinfo): Likewise.
15019
15020 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15021
15022         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15023         (matherr_decl): rename & relocate as exception_structure.
15024         This fix must precede the math_exception fix.
15025
15026 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15027
15028         * fold-const.c (fold_convert): Rename to fold_convert_const.
15029         (fold_convert_const): Change arguments to take a tree_code,
15030         a type and the operand/expression to be converted.  Return
15031         NULL_TREE if no simplification is possible.  Add support for
15032         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15033         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15034         Adjust call to fold_convert to match new fold_convert_const.
15035         Avoid modifying the tree passed to fold in-place.
15036
15037 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15038
15039         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15040         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15041         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15042
15043 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15044
15045         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15046         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15047         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15048         (emit_move_sequence): Check scratch_reg first in various if statements.
15049         Extend source simplification to handle all 64-bit CONST_INTs.
15050         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15051         frame size.
15052         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15053         frame offset calculations.
15054         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15055         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15056         LEGITIMATE_64BIT_CONST_INT_P): Define.
15057         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15058         any CONST_INT as legitimate during and after reload.
15059         (VAL_32_BITS_P, INT_32_BITS): Define.
15060         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15061
15062 2004-01-20  Jan Hubicka  <jh@suse.cz>
15063
15064         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15065         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15066         containing hard regs are shared.
15067         (gen_hard_reg_clobber): New function.
15068         (hard_reg_clobbers): New array.
15069         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15070         (copy_rtx): Do not copy clobbers containing hard regs.
15071         * rtl.h (gen_hard_reg_clobber): Declare.
15072
15073 2004-01-20  Jan Hubicka  <jh@suse.cz>
15074
15075         * varray.c:  Include hashtab.h
15076         (varray_descriptor): New structure.
15077         (hash_descriptor, eq_descriptor, varray_descriptor,
15078         print_statistics): New static functions
15079         (varray_init, varray_grow): Update statistics
15080         (dump_varray_statistics): New function.
15081         * varray.h (dump_varray_statistics): Declare.
15082         * toplev.c (finalize): Call it.
15083         * Makefile.in (varray.o): Add dependency.
15084
15085 2004-01-20  Jan Hubicka  <jh@suse.cz>
15086
15087         * cselib.c: Include alloc-pool.h
15088         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15089         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15090         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15091         unchain_one_elt_loc_list_pool, unchain_one_value,
15092         new_cselib_val): Simplify using allocpool.
15093         (cselib_init): Initialize allocpools.
15094         (cselib_finish): Finish allocpools.
15095         * Makefile.in (cselib.o): Depend on alloc-pool.h
15096
15097 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15098
15099         * config/mips/mips.c (mips_load_call_address): Make the call insn
15100         use $gp if it could be calling a lazy binding stub.
15101
15102 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15103
15104         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15105         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15106         (TARGET_STRUCT_VALUE_RTX): Likewise.
15107         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
15108         (PROMOTE_FUNCTION_RETURN): Remove.
15109         (STRUCT_VALUE): Remove.
15110
15111 2004-01-20  Denis Chertykov  <denisc@overta.ru>
15112
15113         PR bootstrap/13735
15114         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
15115         register as pointer after reload.
15116
15117 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15118
15119         PR optimization/12440
15120         * loop.c: Include ggc.h.
15121         (loop_optimize): Run garbage collector between optimization of loops.
15122         * Makefile.in (loop.o): Add GGC_H dependency.
15123
15124 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
15125
15126         * gcc/config/rs6000/rs6000.c (function_arg) Handle
15127         vector register special in function without prototype.
15128         (function_arg_advance): Vector parameters get always
15129         GPRs allocated for the linux64 target.
15130
15131 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15132
15133         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
15134         not TARGET_M32RX_MASK.
15135
15136 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
15137
15138         PR target/13557
15139         * config/sparc/sparc.c (function_arg): Reorder the cases.
15140
15141 2004-01-19  Per Bothner  <per@bothner.com>
15142
15143         Move cpp_reader's line_maps field to a shared global.
15144         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
15145         and change the type to a pointer rather than a struct.
15146         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
15147         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
15148         Likewise.
15149         * cppfiles.c (validate_pch):  Likewise.
15150         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
15151         Likewise.
15152         * cpperror.c (print_location):  Likewise.
15153         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
15154         * cppinit.c (cpp_create_reader):  Handle new parameter.
15155         (cpp_destroy):  Don't free line_maps - that's no longer our job.
15156         * input.h (line_table):  New variable.
15157         * toplev.c (line_table):  Declare variable.
15158         (general_init):  Initialize line_table.
15159         * c-opts.c (c_common_init_options):  Pass line_table to
15160         cpp_create_reader.
15161         * fix-header.c (read_scan_file):  New local variable line_table.
15162         Initialize, and pass it to cpp_create_reader.
15163         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
15164         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
15165
15166 2004-01-19  Per Bothner  <per@bothner.com>
15167
15168         Implement a cache for linemap_lookup.
15169         * line-map.h (struct_line_maps):  Add cache field.
15170         * line-map.c (linemap_init):  Zero cache field.
15171         (linemap_add):  Set cache field to offset of newly allocated map.
15172         (linemap_lookup):  Use and set cache field.
15173
15174 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15175
15176         PR optimization/13567
15177         * cse.c (cse_basic_block): Call cse_insn with a non-null
15178         libcall_insn for the last SET insn of a no-confilict block.
15179
15180 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15181
15182         * Makefile.in (target_noncanonical, program_transform_name): Use
15183         immediate define instead of deferred.
15184         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
15185         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
15186         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
15187         deferred backquote.
15188
15189 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
15190
15191         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
15192         true unconditionally.
15193         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
15194         Remove.
15195         (build_unary_op, build_modify_expr): Don't handle extended
15196         lvalues.
15197         (build_component_ref, build_conditional_expr): Call non_lvalue
15198         instead of pedantic_non_lvalue.
15199         (build_c_cast): Don't condition use of non_lvalue on pedantic.
15200         * fold-const.c (fold): Don't check pedantic directly for
15201         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
15202         passed to pedantic_non_lvalue.
15203         * doc/extend.texi: Remove documentation of extended lvalues.
15204
15205 2004-01-19  Roger Sayle  <roger@eyesopen.com>
15206
15207         PR optimization/5263
15208         * simplify-rtx.c (associative_constant_p): Delete.
15209         (simplify_associative_operation): Rewrite to linearize terms, and
15210         attempt to simplify new term against both left and right subterms.
15211         (simplify_binary_operation): Call swap_commutative_operands_p on
15212         op0 and op1, not trueop0 and trueop1.  Move the initialization of
15213         trueop0 and trueop1 down to where first needed.
15214         (simplify_relational_operation): Likewise.
15215         * rtlanal.c (commutative_operand_precedence): Also order constant
15216         operands using avoid_constant_pool_reference.
15217
15218 2004-01-19  Richard Henderson  <rth@redhat.com>
15219
15220         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
15221         don't check memory mode.
15222         (unaligned_memory_operand): Likewise.
15223         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
15224         abort for op0 not MEM.
15225
15226         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
15227         is not a reg, copy to a scratch first.
15228         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
15229         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
15230         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
15231         (reload_inqi, reload_inhi): Fix mode of op0.
15232         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
15233         reload_outhi_help): Likewise.  Use define_insn_and_split.
15234
15235         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
15236         as well as $29 dead.
15237
15238 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
15239
15240         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
15241         "tls_object" for thread-local objects.
15242         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
15243         "#tls" for thread-local sections.
15244         * configure.ac (thread-local checks): Specify --fatal-warnings in
15245         every binutils-specific checks.  For sparc*-*-*, test whether the
15246         OS is Solaris and the tools are native and act accordingly.
15247         * configure: Rebuild.
15248
15249 2004-01-19  Jeff Law  <law@redhat.com>
15250
15251         * contrib.texi: Update Paolo Carlini's entry.  New entries for
15252         Jerry Quinn and Petur Runolfsson.
15253
15254 2004-01-19  Roger Sayle  <roger@eyesopen.com>
15255
15256         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
15257         size, don't use the larger zero-extending loads.
15258
15259 2004-01-19  Richard Henderson  <rth@redhat.com>
15260
15261         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
15262         * alpha.md (UNSPEC_NT_LDA): Remove.
15263         (UNSPEC_CVTLQ, cvtlq): New.
15264         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
15265         (extendsidi2_fix): Remove.
15266         (extendsidi2 splitter): Use cvtlq.
15267         (extendsidi2 fp peepholes): Remove.
15268         (cvtql): Use SFmode instead of SImode.
15269         (fix_trunc?fsi): Update to match.
15270         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
15271         (movsi): Rename from movsi_nofix, remove f alternatives.
15272         (movsi_nt_vms): Similarly.
15273         (movsi_fix, movsi_nt_vms_fix): Remove.
15274         (nt_lda): Remove.
15275         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
15276
15277 2004-01-19  Jan Hubicka  <jh@suse.cz>
15278
15279         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
15280         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
15281         list.
15282         (cgraph_remove_unreachable_nodes): New function
15283         (cgraph_decide_inlining_of_small_function): Fix pasto.
15284         (cgraph_decide_inlining_incrementally): Fix pasto.
15285         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
15286
15287 2004-01-19  Steven Bosscher  <stevenb@suse.de>
15288
15289         * gengtype.c (header_file): Make it static.
15290         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
15291         * gengtype.h (header_file): No longer extern.
15292
15293 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15294
15295         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
15296         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
15297         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
15298
15299 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15300
15301         * stmt.c (HAVE_casesi): Define it not already defined.
15302         (HAVE_tablejump): Likewise.
15303         (expand_end_case_type): Resort to the binary tree method if
15304         neither casesi or tablejump is available.
15305
15306 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
15307
15308         * final.c (final_scan_insn): Make non-static again.
15309         * output.h (final_scan_insn): Re-add prototype.
15310         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
15311         to final_scan_insn call.
15312         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
15313         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
15314         * config/pa/pa.c (output_lbranch, output_call): Likewise.
15315         * config/sh/sh.c (print_slot): Likewise.
15316         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
15317         (output_sibcall, sparc_flat_function_epilogue): Likewise.
15318
15319 2004-01-18  Jan Hubicka  <jh@suse.cz>
15320
15321         * basic-block.h (try_redirect_by_replacing_jump): Declare.
15322         * cfgcleanup.c (try_optimize_cfg): Use it.
15323         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
15324         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
15325         Kill hack.
15326         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
15327
15328         Revert:
15329         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15330
15331                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15332                 even after reload, just don't remove the actual jump tables.
15333
15334 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15335
15336         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
15337
15338 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15339
15340         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
15341         the size of a pointer in bytes.
15342
15343 2004-01-18  Roger Sayle  <roger@eyesopen.com>
15344
15345         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
15346         live "next" variable, which could lead to an infinite loop.
15347
15348 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
15349
15350         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
15351         block.
15352
15353         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15354         Check for NULL in the chain and remove repeated code.
15355
15356 2004-01-18  Jan Hubicka  <jh@suse.cz>
15357
15358         * coverage.c (checksum_string): Rename to ...
15359         (coverage_checksum_string): ... this one, Use crc32_string; recognize
15360         names containing random number and zero the number out in order to get
15361         match.
15362
15363 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15364
15365         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
15366
15367 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15368
15369         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
15370         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
15371         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
15372         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
15373         doc/trouble.texi: Remove trailing whitespace.
15374
15375 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15376
15377         PR target/7618
15378         * config/mips/mips.c: Include cfglayout.h.
15379         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15380         (mips_unspec_offset_high): Add temporary register argument.
15381         (mips_load_call_address): New function, split out from...
15382         (mips_expand_call): ...here.
15383         (mips_output_cplocal): New function.
15384         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
15385         (mips_emit_loadgp): New function, split out from...
15386         (mips_expand_prologue): ...here.
15387         (mips_output_mi_thunk): New function.
15388
15389 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
15390
15391         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
15392         mcpu32): Remove redundant checks for implied target predefines.
15393
15394 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
15395
15396         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15397         Return type is unsigned int not int.
15398         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15399         Likewise.
15400
15401 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15402
15403         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
15404         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
15405         "GNU/Linux" and "Microsoft Windows" terminology.
15406
15407 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15408
15409         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
15410         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
15411         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
15412         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
15413         @smallexample instead of @example.
15414
15415 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
15416
15417         * objc/objc-act.c (build_objc_method_call): Use target
15418         hooks instead of macros to determine if ..._stret
15419         dispatchers should be used (NeXT runtime only).
15420
15421 2004-01-17  Roger Sayle  <roger@eyesopen.com>
15422
15423         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
15424         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
15425
15426 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15427
15428         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
15429         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
15430         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
15431         macros.
15432         * reload1.c (emit_reload_insns): Use them.
15433         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
15434         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
15435         for NULL PATTERN.
15436
15437 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15438
15439         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
15440         (final_scan_insn): Update to take an additional SEEN argument.  Emit
15441         a line note after the prologue.  Make static.
15442         (line_note_exists): Remove.
15443         (final): Don't initialize line_note_exists.  Update call to
15444         final_scan_insn.
15445         * output.h (final_scan_insn): Remove prologue.
15446         * function.c (set_insn_locators): Update comment.
15447         (thread_prologue_and_epilogue_insns): Add a comment.
15448
15449 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
15450
15451         PR target/10781
15452         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15453         Prototype.
15454         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15455         New function.
15456         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
15457         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
15458         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
15459
15460 2004-01-17  Jan Hubicka  <jh@suse.cz>
15461
15462         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
15463         commit.
15464
15465         * toplev.c (HAVE_conditional_execution): Provide default.
15466         (rest_of_handle_reorder_blocks): For conditional_execution target
15467         update liveness once after all transformations
15468         (rest_of_compilation): Do crossjumping before ce3.
15469
15470 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
15471
15472         * alias.c (new_alias_set): Mark last_alias_set for PCH.
15473         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
15474         for PCH.
15475         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
15476         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
15477         (get_TOC_alias_set): Mark 'set' for PCH.
15478
15479 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15480
15481         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15482         even after reload, just don't remove the actual jump tables.
15483
15484 2004-01-17  J. Brobecker  <brobecker@gnat.com>
15485
15486         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
15487         Remove checks for is_ada() and TREE_UNSIGNED.
15488         (subrange_type_die): Emit a byte_size attribute if the subrange
15489         type size is different from the base type size.
15490         (modified_type_die): Replace call to is_ada_subrange_type() by
15491         call to is_subrange_type().
15492
15493 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
15494
15495         * config/sh/sh.c: Include ggc.h.
15496
15497 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15498
15499         * Makefile.in (MD5_H): New.
15500         (fold-const.o): Depend on md5.h.
15501         (dwarf2out.o): Likewise.
15502         (cppfiles.o): Likewise.
15503         * cppfiles.c: Include md5.h.
15504         (should_stack_file): Check against list read from PCH file.
15505         (struct pchf_data): New.
15506         (pchf): New variable.
15507         (struct pchf_adder_info): New.
15508         (pchf_adder): New.
15509         (pchf_save_compare): New.
15510         (_cpp_save_file_entries): New.
15511         (_cpp_read_file_entries): New.
15512         (struct pchf_compare_data): New.
15513         (pchf_compare): New.
15514         (check_file_against_entries): New.
15515         * cpphash.h (_cpp_save_file_entries): Prototype.
15516         (_cpp_read_file_entries): Prototype.
15517         * cpppch.c (cpp_write_pch_state): Write the list of headers.
15518         (cpp_read_state): Read the list of headers.
15519
15520 2004-01-17  Jan Hubicka  <jh@suse.cz>
15521
15522         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
15523         builtin_expect specially.
15524         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
15525         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
15526         * invoke.texi (max-inline-insns-single): Set to 100.
15527         (large-function-insns): Set to 3000.
15528
15529 2004-01-16  Eric Christopher  <echristo@redhat.com>
15530             Chandrakala Chavva <cchavva@redhat.com>
15531
15532         * cppcharset.c (one_iso88591_to_utf8): New function.
15533         (convert_iso88591_utf8): Ditto. Use.
15534         (conversion_tab): Use.
15535         (_cpp_input_to_utf8): New function.
15536         (_cpp_init_iconv_buffer): Ditto.
15537         (_cpp_close_iconv_buffer): Ditto.
15538         * cpphash.h: Prototype new functions.
15539         (cpp_buffer): Add input_cset_desc.
15540         * cppinit.c: Add input_charset default.
15541         * cpplib.c (cpp_push_buffer): Support init and
15542         close of iconv.
15543         * cpplib.h (cpp_options): Add input_charset.
15544
15545 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15546
15547         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
15548         * config/alpha/unicosmk.h: Remove a commented-out definition
15549         of ASM_OUTPUT_SECTION_NAME.
15550         * config/stormy16/stormy16.h: Likewise.
15551
15552 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15553
15554         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
15555         (alpha___extern_prefix_sys_stat): ... this.
15556         Apply to <sys/mount.h>, too.
15557         Tweak to match more variations.
15558         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
15559
15560         * fixinc/inclhack.def (alpha___extern_prefix,
15561         alpha___extern_prefix_standards): New hacks to obey
15562         __PRAGMA_EXTERN_PREFIX.
15563         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
15564         test.
15565         * fixinc/tests/base/standards.h: Likewise.
15566
15567         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
15568         variations.
15569         New testcase.
15570         * fixinc/tests/base/pthread.h: Handle it.
15571
15572         * fixincl/inclhack.def (bad_lval): Sort file list.
15573         Add many missing files up to Tru64 UNIX V5.1B.
15574         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
15575         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
15576         order.
15577
15578         * fixinc/fixincl.x: Regenerate.
15579
15580 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
15581
15582         * version.c (version_string): Change to 3.5.0.
15583         * doc/include/gcc-common.texi (version-GCC): Likewise.
15584
15585 2004-01-16  Jan Hubicka  <jh@suse.cz>
15586
15587         * i386.md (load_tp_di): Fix pasto.
15588
15589         PR opt/13608
15590         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
15591
15592         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
15593         pp_c_character_constant, pp_c_floating_constant,
15594         pp_c_additive_expression, pp_c_shift_expression,
15595         pp_c_equality_expression, pp_c_and_expression,
15596         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
15597         pp_c_logical_and_expression): Remove inline modifier.
15598         * dwarf2out.c (get_AT): Likewise.
15599         * et-forest.c (et_splay): Likewise.
15600         * ra.h (ra_alloc, ra_calloc): Likewise
15601
15602 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15603
15604         * config/frv/frv-protos.h: Fix comment formatting.
15605         * config/frv/frv.c: Likewise.
15606         * config/frv/frv.h: Likewise.
15607         * config/frv/frv.md: Likewise.
15608         * config/frv/frvbegin.c: Likewise.
15609         * config/frv/frvend.c: Likewise.
15610
15611 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15612
15613         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
15614         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
15615         LINKER_DOES_NOT_WORK_WITH_DWARF2.
15616         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
15617
15618 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
15619
15620         PR 11864
15621         * postreload.c (reload_cse_simplify_operands): Don't remove
15622         implicit extension from LOAD_EXTEND_OP.
15623
15624 2004-01-16  Jan Hubicka  <jh@suse.cz>
15625
15626         PR opt/11350
15627         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
15628         after reload.
15629         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
15630         rtl_try_redirect_by_replacing_branch): Likewise.
15631
15632 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15633
15634         PR pch/13689
15635         * alias.c (struct alias_set_entry): Mark for GC.
15636         (alias_sets): Make static, mark for GC.
15637         (record_alias_subset): Use GC to allocate alias structures.
15638         * varray.c (element): Make generic varrays GCed.
15639
15640         PR pch/13361
15641         * c-typeck.c (constructor_asmspec): Delete.
15642         (struct initializer_stack): Delete field 'asmspec'.
15643         (start_init): Delete saving of asmspec.
15644         (finish_init): Don't update constructor_asmspec.
15645         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15646         * stmt.c (expand_asm): Duplicate strings from tree.
15647         (expand_asm_operands): Likewise.
15648         * tree.c (tree_size): Update computation of size of STRING_CST.
15649         (make_node): Don't make STRING_CST nodes.
15650         (build_string): Allocate string with tree node.
15651         * tree.def (STRING_CST): Update comment.
15652         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15653         (tree_string): Place contents of string in tree node.
15654         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15655         from tree.
15656
15657         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15658         altivec operands.
15659
15660 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15661
15662         * c-common.h: Fix comment formatting.
15663         * c-cppbuiltin.c: Likewise.
15664         * c-pragma.c: Likewise.
15665         * calls.c: Likewise.
15666         * collect2.c: Likewise.
15667         * cppcharset.c: Likewise.
15668         * cpptrad.c: Likewise.
15669         * dbxout.c: Likewise.
15670         * defaults.h: Likewise.
15671         * dwarf2out.c: Likewise.
15672         * fold-const.c: Likewise.
15673         * genautomata.c: Likewise.
15674         * genconditions.c: Likewise.
15675         * genflags.c: Likewise.
15676         * gengtype.c: Likewise.
15677         * integrate.c: Likewise.
15678         * loop.c: Likewise.
15679         * predict.c: Likewise.
15680         * sdbout.c: Likewise.
15681
15682 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15683
15684         * config/ia64/ia64.md (*movti_internal): C output template
15685         extracted to ia64.c.
15686         (*movti_internal_reg): Delete.
15687         (reload_inti, reload_outti): Use the correct mode on operand 2
15688         in the first place, don't fix it up in the output template.
15689         (movtf, reload_ointf, reload_outtf): New expanders.
15690         (*movtf_internal): New define_insn_and_split.
15691         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15692         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15693         (ia64_split_tmode_move): New function, body mostly pulled
15694         from ia64.md:*movti_internal.
15695         (ia64_function_arg_words): New function, extracted common
15696         logic from ia64_function_arg et seq.
15697         (ia64_function_arg_offset): Likewise.  Handle correctly the
15698         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15699         (ia64_function_arg, ia64_function_arg_partial_nregs)
15700         (ia64_function_arg_advance): Use ia64_function_arg_words and
15701         ia64_function_arg_offset.
15702         (ia64_function_value): TCmode does not go in float regs.
15703         (ia64_secondary_reload_class): Also handle TFmode.
15704         * config/ia64/ia64-protos.h: Remove prototype for
15705         ia64_split_timode; add prototype for ia64_split_tmode_move.
15706
15707 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15708
15709         * Makefile.in (MAINT): Make it an immediate assignment.
15710
15711 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15712
15713         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15714
15715 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15716
15717         * config/h8300/coff.h: Replace Hitachi with Renesas.
15718         * config/h8300/elf.h: Likewise.
15719         * config/h8300/h8300-protos.h: Likewise.
15720         * config/h8300/h8300.c: Likewise.
15721         * config/h8300/h8300.h: Likewise.
15722         * config/h8300/h8300.md: Likewise.
15723         * config/h8300/lib1funcs.asm: Likewise.
15724
15725 2004-01-15  Andrew Pinski  <apinski@apple.com>
15726
15727         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15728         around it.
15729
15730 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15731
15732         * config/h8300/h8300.c (h8300_return_in_memory): New.
15733         (TARGET_STRUCT_VALUE_RTX): Likewise.
15734         (TARGET_RETURN_IN_MEMORY): Likewise.
15735         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15736         (RETURN_IN_MEMORY): Likewise.
15737
15738 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15739
15740         PR optimization/13375
15741         * gcse.c (handle_avail_expr): Just return if the source is not a
15742         single set.
15743
15744 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15745             Daniel Jacobowitz  <drow@mvista.com>
15746
15747         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15748         (EQUIV): Define.
15749         (ARM_FUNC_ALIAS): New macro.
15750         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15751         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15752
15753 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15754
15755         PR optimization/12372
15756         * calls.c (expand_call): Add call_fusage data for stack arguments in
15757         constant calls.
15758
15759 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15760
15761         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15762         (rs6000_elf_declare_function_name): Formatting.
15763         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15764
15765 2004-01-15  Jan Hubicka  <jh@suse.cz>
15766
15767         PR bootstrap/13692
15768         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15769         previous patch.
15770
15771 2004-01-15  Richard Henderson  <rth@redhat.com>
15772
15773         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15774         integer regs of the same call-savedness.
15775
15776 2004-01-15  Andreas Schwab  <schwab@suse.de>
15777
15778         PR bootstrap/13562
15779         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15780         status for NOTB/NOTW/NEGW methods.
15781
15782 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15783
15784         * doc/invoke.texi: Update dump file names.  Fix a typo.
15785
15786 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15787
15788         * builtins.c (expand_builtin_va_end): Don't use
15789         EXPAND_BUILTIN_VA_END.
15790         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15791         * config/d30v/d30v.h: Remove a commented-out definition of
15792         EXPAND_BUILTIN_VA_END.
15793         * config/stormy16/stormy16.h: Likewise.
15794
15795 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15796
15797         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15798         * targhooks.c (default_struct_value_rtx): Don't use
15799         STRUCT_VALUE_INCOMING_REGNUM.
15800
15801 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15802
15803         PR bootstrap/12744
15804         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15805         GENINSRC and not parsedir.  Define srcextra as a langhook.
15806         * configure: Regenerate.
15807         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15808         parsedir and delete all references throughout.  Conditionally define
15809         rule for srcextra dependent on GENINSRC.
15810         (stmp-docobjdir): Delete.
15811         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15812         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15813         and gengtype-yacc.h back to source directory.
15814         (maintainer-clean): Delete all parse files in source directory.
15815         (distclean): Delete generated files.
15816
15817         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15818         (objc-parse.c, objc-parse.y): Don't use parsedir.
15819         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15820         directory if requested.
15821         (po-generated): Don't use parsedir.
15822         (objc.maintainer-clean): Delete above files from source directory.
15823
15824 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15825
15826         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15827
15828 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15829
15830         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15831         TARGET_RETURN_IN_MEMORY.
15832
15833 2004-01-15  Jan Hubicka  <jh@suse.cz>
15834
15835         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15836         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15837         functions accepting SSE arguments
15838         (function_arg): Warn only when asked to warn.
15839         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15840
15841 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15842
15843         * c-parse.in (stmts_and_decls): Make label at end of compound
15844         statement a hard error.
15845
15846 2004-01-14  Jan Hubicka  <jh@suse.cz>
15847
15848         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15849         * cgraph.h (cgraph_local_info): Sort fields by size; add
15850         redefined_extern_inline
15851         (cgraph_global_info): Sort fields by size.
15852         (cgraph_node): Likewise.
15853         * cgraphunit.c (cgraph_finalize_function): Se
15854         local.redefined_extern_inline on redefinition.
15855         (cgraph_analyze_function): Use it; fix formating.
15856
15857 2004-01-14  Jan Hubicka  <jh@suse.cz>
15858
15859         PR c++/10776
15860         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15861         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15862         bitmaps
15863         (cache_size): New variable
15864         (add_dependence): Update use; canonize early memory locations
15865         (sched_analyze_1): Likewise.
15866         (sched_analyze_2): Likewise.
15867         (init_dependency_caches): Initialize bitmaps.
15868         (free_dependency_caches): Free bitmaps
15869
15870 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15871
15872         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15873         targetm.calls.strict_argument_naming().
15874         * target.h: Likewise.
15875
15876 2004-01-14  Richard Henderson  <rth@redhat.com>
15877
15878         PR debug/13231
15879         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15880         instructions.
15881
15882 2004-01-14  Richard Henderson  <rth@redhat.com>
15883
15884         PR c++/12491
15885         * except.c (struct eh_region): Add u.fixup.resolved.
15886         (resolve_one_fixup_region): Split out from ...
15887         (resolve_fixup_regions): ... here.
15888
15889 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15890
15891         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15892
15893 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15894
15895         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15896         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15897         (STRUCT_VALUE): Remove.
15898
15899 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15900
15901         * system.h: Poison PROMOTED_MODE
15902         * integrate.c (expand_inline_function): Don't mention the
15903         PROMOTED_MODE.
15904         * loop.c (update_giv_derive): Same.
15905         * tree.h (DECL_RTL): Same.
15906
15907 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15908
15909         PR target/9365
15910         * sh.c (gen_block_redirect): Add special handling of RETURN.
15911         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15912         far branch target (i.e. it's a return).
15913
15914 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15915
15916         * regrename.c (find_oldest_value_reg): Fix a warning.
15917
15918 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15919
15920         PR bootstrap/12527
15921         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15922         Move linux-gas.h and linux-elf.h before aout.h.
15923         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15924         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15925
15926 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15927
15928         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15929         (CONST_INT, VOIDmode, ...).
15930
15931 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15932
15933         * regrename.c (find_oldest_value_reg): If the replacement uses
15934         multiple hard registers, check that all of them are in CLASS.
15935
15936 2004-01-14  Jan Hubicka  <jh@suse.cz>
15937
15938         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15939         impossible.
15940
15941 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15942
15943         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15944
15945 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15946
15947         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15948         Calculate always vrsave_mask if TARGET_ALTIVEC.
15949         (rs6000_emit_prologue): Emit code for vrsave
15950         only if TARGET_ALTIVEC_VRSAVE.
15951         (rs6000_emit_epilogue): Likewise.
15952
15953 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15954
15955         * config/sparc/sparc.md (tie_add32): Fix pasto.
15956         (tie_add64): Likewise.
15957
15958 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15959
15960         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15961
15962 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15963
15964         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15965         * config/iq2000/iq2000.c: Likewise.
15966         * config/iq2000/iq2000.md: Likewise.
15967
15968 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15969
15970         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15971         (subrange_type_die): Add handle for nameless subrange types.
15972
15973 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15974
15975         * config/h8300/h8300-protos.h: Replace do_movsi with
15976         h8300_expand_movsi.
15977         * config/h8300/h8300.c (do_movsi): Change to
15978         h8300_expand_movsi.
15979         * config/h8300/h8300.md (movsi): Replace do_movsi with
15980         h8300_expand_movsi.
15981         (movsf): Likewise.
15982
15983 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15984
15985         * config/h8300/h8300.c (dosize): Change to
15986         h8300_emit_stack_adjustment.  Update callers.
15987
15988 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15989
15990         * config/h8300/h8300.md (movstrictqi): Add an alternative with
15991         the source being post_inc.  Tighten the predicate for the
15992         destination to register_operand.
15993         (movstricthi): Likewise.
15994
15995 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15996
15997         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
15998         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
15999         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16000
16001 2004-01-14  Jan Hubicka  <jh@suse.cz>
16002
16003         Partial fix PR c++/12850
16004         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16005         at zero nest level.
16006
16007 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16008
16009         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16010         pseudo-register.
16011
16012 2004-01-13  Devang Patel <dpatel@apple.com
16013
16014         PR debug/7078
16015         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16016         NAMESPACE_DECL memebers.
16017
16018 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16019
16020         PR c++/12709
16021         * c-common.c (finish_fname_decls): Use the chain only if the
16022         tree is an expr_stmt.
16023
16024 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16025
16026         * rtl.def: Add comment about new option in automata_option.
16027
16028         * genautomata.c (PROGRESS_OPTION): New macro.
16029         (progress_flag): New global variable.
16030         (gen_automata_option): Process `progress'.
16031         (transform_insn_regexps, check_unit_distributions_to_automata,
16032         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16033         expand_automata, write_automata): Print about the progress only if
16034         progress_flag.  Remove fflush.
16035         (initiate_automaton_gen): Process command line flag `-progress'.
16036
16037         * doc/md.texi: Describe the new option.
16038
16039 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16040
16041         * cfg.c (dump_bb): Dump entry edges.
16042
16043 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16044
16045         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16046         references from SImode.
16047         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16048
16049 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16050
16051         * system.h (TEXT_SECTION): Poison.
16052         * varasm.c (text_section): Don't use TEXT_SECTION.
16053         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16054         * doc/tm.texi (TEXT_SECTION): Remove.
16055
16056 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16057
16058         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16059
16060 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16061
16062         * unwind-libunwind.c: Delete.
16063
16064 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16065
16066         PR 13656
16067         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16068         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16069         them at the very end.
16070         (validate_proto_after_old_defn): Restructure for comprehensibility;
16071         make error messages clearer.
16072
16073 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16074
16075         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16076         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16077         * varray.c: No need to prototype error.
16078         (varray_check_failed): Wrap long string onto two lines.
16079         (varray_underflow): New function.
16080
16081 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16082
16083         PR c++/13376
16084         * function.h (struct function): Kill `name' field.
16085         (current_function_name): Make it an extern function.
16086         * function.c (current_function_name): New function.
16087         * graph.c: Update all uses of current_function_name.
16088         * gcse.c: Likewise.
16089         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16090         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16091         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16092         instead of a strcmp with "main".
16093
16094 2004-01-13  Jan Hubicka  <jh@suse.cz>
16095
16096         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16097
16098         * cgraphunit.c (cgraph_optimize_function):  Always do
16099         optimize_inline_calls when there is always_inline callee.
16100         (cgraph_decide_inlining): Fix formating.
16101         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16102         functions.
16103         (expand_call_inline): Likewise.
16104         * toplev.h (sorry): Fix prototype.
16105
16106 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16107
16108         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
16109         conditional jumps that drop through to unconditional jumps or the
16110         end of the sequence.
16111
16112 2004-01-13  Jan Hubicka  <jh@suse.cz>
16113
16114         * alias.c (new_alias_set): Construct the alias_set varray.
16115         (init_alias_once): Don't do it here.
16116
16117 2004-01-12  Marc Espie <espie@openbsd.org>
16118
16119         * system.h: handle YYBYACC like YYBISON.
16120
16121 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
16122
16123         PR target/10847
16124         * config.gcc: No longer includes conflicting header sparc/sol2.h when
16125         building on sparc64-*-openbsd*.
16126
16127 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
16128
16129         PR debug/13539
16130         * dbxout.c (dbxout_type): Protected inheritance is not
16131         private but protected.
16132
16133 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16134
16135         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
16136
16137 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
16138
16139         PR optimization/12508.
16140         * combine.c (try_combine): Remove a dead set in a parallel
16141         even if its destination is a subreg.
16142
16143         Revert:
16144         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
16145         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
16146         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
16147
16148 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
16149
16150         * real.c: Update copyright date.
16151         * emit-rtl.c: Likewise.
16152         * rtl.h: Likewise.
16153         * dwarf2out.c: Likewise.
16154         * config/rs6000/darwin-ldouble.c: Likewise.
16155         * config/rs6000/rs6000.md: Likewise.
16156
16157 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16158
16159         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
16160         TFmode to SImode libfuncs.
16161
16162 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16163
16164         PR middle-end/11397
16165         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
16166
16167 2004-01-12  Jan Hubicka  <jh@suse.cz>
16168
16169         PR opt/12826
16170         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
16171         stored.
16172
16173         PR opt/12863
16174         * cfgcleanup.c (label_is_jump_target_p): Move to...
16175         * rtlanal.c (label_is_jump_target_p): ... here.
16176         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
16177         edges unified with branch edges.
16178
16179 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
16180
16181         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
16182         high word of an integral CONST_DOUBLE.
16183
16184 2004-01-12  Paul Brook  <paul@codesourcery.com>
16185
16186         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
16187
16188 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
16189
16190         PR target/13585
16191         * sh-protos.h (check_use_sfunc_addr): Declare.
16192         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
16193         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
16194
16195 2004-01-12  Jan Hubicka  <jh@suse.cz>
16196
16197         * alias.c:  Invlude varray.h
16198         (alias_sets): Turn into varray.
16199         (get_alias_set_entry): Use VARRAY; mark inline.
16200         (mems_in_disjoint_alias_sets_p): Mark inline.
16201         (record_alias_subset): Use varray.
16202         (init_alias_once): Initialize varray.
16203         (new_alias_set): Grow array.
16204         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
16205
16206 2004-01-12  Jan Hubicka  <jh@suse.cz>
16207
16208         Partial fix for PR opt/10776 II
16209         * cselib.c: Include params.h
16210         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
16211         locations.
16212         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
16213         * Makefile.in (cselib.o): Depend on params.h
16214
16215 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16216
16217         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
16218         simplify_unary_operation if the operand has a known mode.
16219
16220 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
16221
16222         PR target/13534
16223         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
16224         predicate to handle 'ld' conform addresses.
16225         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
16226         contraint.
16227         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
16228         are memory contraints.
16229         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
16230         New prototype.
16231         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
16232         Change 'o' to 'Y' constraint.
16233         (*movdf_softfloat64): Ditto.
16234
16235 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
16236
16237         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
16238         brace-enclosed syntax in all C output statements.
16239
16240 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16241
16242         PR target/13401
16243         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
16244         Objective-C language type value is 14.
16245
16246 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
16247
16248         PR c/12148
16249         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
16250         `int' in a number of places to make sure we always have a SImode
16251         and not a HImode.  Add a 'L' suffix to a number of constants.
16252
16253 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16254
16255         * pa.c: Don't include obstack.h.
16256
16257         * pa.md: Correct constraint in pattern for loading PIC label address.
16258
16259 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16260
16261         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
16262          before defining.
16263
16264 2004-01-11  Steven Bosscher  <stevenb@suse.de>
16265
16266         PR fortran/9972
16267         * toplev.c (rest_of_handle_inline): Also consider functions
16268         for deferral if the language is GNU F77.
16269
16270 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
16271
16272         * c-decl.c (diagnose_arglist_conflict): Add missing space to
16273         diagnostic messages.
16274
16275 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
16276
16277         PR middle-end/13392
16278         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
16279         to drop through label.  Don't fall back to SCC even when conditional
16280         jump has not been found.
16281
16282 2004-01-11  Jan Hubicka  <jh@suse.cz>
16283
16284         * invoke.texi: Fix syntax error in previous patch.
16285
16286         Partial fix for PR opt/10776
16287         * Makefile.in (reload.o): Include param.h
16288         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
16289         * reload.c: Include params.h.
16290         (find_equiv_reg): Work limiting check.
16291         * invoke.texi: Document.
16292
16293 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16294
16295         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
16296         out-of-bounds accesses to string constants.  Simplify mips16
16297         case accordingly.
16298
16299 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16300
16301         PR optimization/13469
16302         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
16303         reload_cse_regs (-fnon-call-exceptions only).
16304
16305 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
16306
16307         * config/mcore/lib1.asm: Fix comment formatting.
16308         * config/mcore/mcore-elf.h: Likewise.
16309         * config/mcore/mcore.c: Likewise.
16310         * config/mcore/mcore.h: Likewise.
16311         * config/mcore/mcore.md: Likewise.
16312
16313 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16314
16315         * c-decl.c (duplicate_decls): Break apart into...
16316         (diagnose_arglist_conflict, validate_proto_after_old_defn)
16317         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
16318         ... these new functions.  Restructure for comprehensibility.
16319         Remove various archaic special cases.  Always report the
16320         location of the previous declaration when a diagnostic is issued.
16321         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
16322         (match_builtin_function_types): Delete unnecessary forward declaration.
16323
16324 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16325
16326         * genautomata.c (make_automaton, NDFA_to_DFA):
16327         Print progress bars with '.' characters instead of '*'.
16328         (build_automaton): Change notes to match.
16329
16330 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16331
16332         * config/m32r/m32r.md: Use define_constants for unspec and
16333         unspec_volatile.
16334
16335 2004-01-10  Jan Hubicka  <jh@suse.cz>
16336
16337         PR opt/11635
16338         * expr.c (expand_expr_real):  More curefully expand union casts.
16339
16340 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16341
16342         * config/m32r/m32r.md (flush_icache): Use 1 for
16343         unspec_volatile.
16344
16345 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
16346             James E Wilson  <wilson@specifixinc.com>
16347
16348         PR debug/12860
16349         * dbxout.c (dbxout_symbol): Remove initialization of
16350         current_sym_code, current_sym_value, and current_sym_addr.
16351         (dbxout_symbol_location): Same.
16352         (dbxout_prepare_symbol): Zero current_sym_code,
16353         current_sym_value, and current_sym_addr.
16354
16355 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
16356
16357         * tree.c (get_unwidened): Reorder conditions so that the null pointer
16358         check is done first.
16359
16360 2004-01-09  Eric Christopher  <echristo@redhat.com>
16361
16362         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
16363         if we're running mark_constant_function.
16364
16365 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
16366
16367         PR target/12561
16368         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
16369
16370 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
16371
16372         PR debug/11231
16373         * dbxout.c (dbxout_type_fields): Return if any item is
16374         error_mark_node or the type is error_mark_node.
16375
16376 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
16377
16378         * config/rs6000/darwin-ldouble.c: Add big comment explaining
16379         exactly what is expected as a 'long double'.
16380         (_xlqadd): When a value to be returned is representable as a
16381         'double', just return it directly, do not construct it using a union.
16382         Also, correct final fixup.
16383         (_xlqmul): Likewise.
16384         (_xlqdiv): Likewise.
16385         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
16386
16387         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
16388
16389 2004-01-09  Richard Henderson  <rth@redhat.com>
16390
16391         * recog.c (constrain_operands): Validate mem operands.
16392
16393 2004-01-09   James E Wilson  <wilson@specifixinc.com>
16394
16395         * gcc.c (init_spec): Remove -lunwind from shared case.
16396         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
16397
16398 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
16399
16400         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
16401         * configure: Regenerate
16402
16403 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
16404
16405         PR c/11234
16406         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
16407         between function and object pointers.
16408         (digest_init): When comparing a pointer to function type to the
16409         target type, only apply TREE_TYPE once to the pointer to function
16410         type.
16411         * except.c (for_each_eh_label_1): Treat data as a pointer to a
16412         function pointer rather than casting it to a function pointer.
16413         (for_each_eh_label): Update caller.
16414         * recog.h (struct insn_data): Use a struct or union for output.
16415         * genoutput.c (output_insn_data): Update.
16416         * final.c (get_insn_template): Update.
16417
16418 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
16419
16420         * expr.h (expand_expr): Make it a macro, not a function.
16421         (expand_expr_real): New function.
16422         * expr.c (store_expr): Adjust logic for deciding whether or not to
16423         copy the value returned by expand_expr.
16424         (expand_expr): Rename to ...
16425         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
16426         calls to language hooks.
16427         * c-common.h (c_expand_expr): Adjust prototype.
16428         * c-common.c (c_expand_expr): Add alt_rtl parameter.
16429         * langhooks-def.h (lhd_expand_expr): Change prototype.
16430         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
16431         * langhooks.h (lang_hooks): Change type of expand_expr.
16432         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
16433         (last_expr_alt_rtl): Likewise.
16434         (expand_expr_stmt_value): Set last_expr_alt_rtl.
16435         (clear_last_expr): Clear it.
16436         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
16437         (expand_end_bindings): Save and restor last_expr_alt_rtl.
16438         * tree.def (RTL_EXPR): Give it an additional operand.
16439         * tree.h (RTL_EXPR_ALT_RTL): New macro.
16440
16441 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16442
16443         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
16444         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
16445
16446 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16447
16448         PR target/13380.
16449         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
16450         or (ne:SI (reg:CC 17) (const_int 0)).
16451         Be specific about modes wherever possible.
16452
16453 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16454
16455         * config/m32r/m32r.c (m32r_expand_block_move): Call
16456         gen_movestrsi_internal with two more arguments.
16457         (m32r_output_block_move): Adjust operand numbers.
16458         Properly update the source and destination pointers.
16459         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
16460         'r+'.  Change the set detinations to match_operand.
16461
16462 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16463
16464         * final.c (FIRST_INSN_ADDRESS): Remove.
16465         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
16466         * system.h (FIRST_INSN_ADDRESS): Poison.
16467         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
16468         * config/m32r/m32r-protos.h: Remove the prototype for
16469         m32r_first_insn_address.
16470         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
16471         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
16472         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
16473
16474 2004-01-09  J. Brobecker  <brobecker@gnat.com>
16475
16476         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
16477         we just created.
16478         (is_ada_subrange_type): DIEs for enumeration subtypes should be
16479         emitted as subrange types too.
16480         (subrange_type_die): Add handling of enumeration subtypes.
16481
16482 2004-01-08  Richard Henderson  <rth@redhat.com>
16483
16484         PR opt/12441
16485         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
16486         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
16487         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
16488         (ix86_address_cost): Be prepared for SUBREGed registers.
16489         (legitimate_address_p): Accept SUBREGed registers.
16490
16491 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
16492
16493         * Makefile.in: Rename configure.in to configure.ac
16494         * doc/sourcebuild.texi: Likewise.
16495         * configure: Regenerate.
16496         * config.in: Regenerate.
16497
16498 2004-01-08  Stuart Hastings  <stuart@apple.com>
16499
16500         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
16501
16502 2004-01-08  Jan Hubicka  <jh@suse.cz>
16503
16504         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
16505
16506 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
16507
16508         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
16509         (UNSPEC_FIX_TRUNC_TF): New constant.
16510         (movtf_internal): Make splitter active only when insn is active.
16511         (extenddftf2): Rewrite to properly load zero into low part.
16512         (extenddftf2_internal): New.
16513         (extendsftf2): Rewrite.
16514         (truncdftf2): Correct length.
16515         (floatditf2): Delete.
16516         (fix_trunc_helper): New.
16517         (fix_trunctfdi2): Use fix_trunc_helper.
16518         (fix_trunctfsi2): Likewise.fix_trunc
16519         (fix_trunctfsi2_internal): New.
16520
16521         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
16522         addresses are legitimate on Darwin even when flag_pic.
16523         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
16524         non-offsettable addresses for loads of TFmode constants.
16525
16526 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16527
16528         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
16529         variables in the appropriate bss section.
16530
16531 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
16532
16533         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
16534         target_flags has MASK_POWERPC64 when -m64.
16535         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
16536         to 620, 630, power3, power4 and rs64a entries.
16537         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
16538
16539 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
16540
16541         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
16542         floating-point constants.
16543
16544 2004-01-08  J. Brobecker  <brobecker@gnat.com>
16545
16546         * dwarf2out.c (subrange_type_die): Add context_die parameter.
16547         Create the subrange_type DIE using the given context DIE.
16548         (modified_type_die): Update call to subrange_type_die.
16549
16550 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
16551
16552         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
16553         Add multiple-include guard.
16554
16555 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
16556
16557         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
16558         all vector constant loadable by vsplt*.
16559         (output_vec_const_move): Likewise.
16560
16561 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16562
16563         PR c/6024
16564         * c-typeck.c (comptypes): Only treat enumerated types in the same
16565         translation unit as compatible with each other when they are the
16566         same type.
16567         * doc/extend.texi: Update.
16568
16569 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16570
16571         PR c/12165
16572         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
16573         array type from the array element type.
16574
16575 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
16576
16577         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
16578         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
16579         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
16580         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
16581         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
16582
16583 2004-01-06  Eric Christopher  <echristo@redhat.com>
16584
16585         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
16586         (DWARF2_DEBUGGING_INFO): Define.
16587         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
16588         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
16589         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
16590         for irix as.
16591         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
16592         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
16593         * config/mips/iris5gas.h: Ditto.
16594         (DBX_DEBUGGING_INFO): Remove.
16595         (DWARF2_DEBUGGING_INFO): Ditto.
16596         (MIPS_DEBUGGING_INFO): Ditto.
16597         (PREFERRED_DEBUGGING_TYPE): Ditto.
16598         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
16599         (PREFERRED_DEBUGGING_TYPE): Ditto.
16600         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
16601         * config/mips/elf64.h: Ditto.
16602
16603 2004-01-06  Jan Hubicka  <jh@suse.cz>
16604
16605         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
16606         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
16607
16608 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
16609
16610         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
16611         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
16612         * config/rs6000/darwin-ldouble.c: New.
16613
16614         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
16615         for constants.
16616         (constant_subword): Delete.
16617         * rtl.h (constant_subword): Delete prototype.
16618         (immed_double_const): Is not in varasm.c.
16619         * simplify-rtx.c (simplify_immed_subreg): New.
16620         (simplify_subreg): Use simplify_immed_subreg.
16621
16622         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
16623         than trying to generate RTL directly.
16624         (fix_trunctfsi2): Use expand_fix rather than trying to generate
16625         RTL directly.
16626
16627         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
16628
16629 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
16630
16631         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
16632         function into a separate macro.
16633         (read_only_data_section): Add void argument.
16634         (private_data_section): Same.
16635         (read_only_private_data_section): Same.
16636         (toc_section): Same.
16637
16638 2004-01-06  Jan Hubicka  <jh@suse.cz>
16639
16640         * invoke.texi:  Remove typo in last change.
16641
16642         PR target/10301
16643         * config.gcc: Accept opteron and athlon-64 as variants
16644         of k8.
16645         * i386.c (override_options): Likewise.
16646         * invoke.texi (i386 -mtune): Expand documentation.
16647
16648 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16649
16650         * alias.c: Fix comment typos.
16651         * builtins.c: Likewise.
16652         * cfg.c: Likewise.
16653         * df.c: Likewise.
16654         * dominance.c: Likewise.
16655         * dwarf2out.c: Likewise.
16656         * emit-rtl.c: Likewise.
16657         * expr.c: Likewise.
16658         * final.c: Likewise.
16659         * fold-const.c: Likewise.
16660         * gcse.c: Likewise.
16661         * genattrtab.c: Likewise.
16662         * genrecog.c: Likewise.
16663         * gensupport.c: Likewise.
16664         * ggc-zone.c: Likewise.
16665         * integrate.c: Likewise.
16666         * local-alloc.c: Likewise.
16667         * loop.c: Likewise.
16668         * recog.c: Likewise.
16669         * regmove.c: Likewise.
16670         * reg-stack.c: Likewise.
16671         * reorg.c: Likewise.
16672         * rtlanal.c: Likewise.
16673         * rtl.h: Likewise.
16674         * sched-ebb.c: Likewise.
16675         * simplify-rtx.c: Likewise.
16676         * toplev.c: Likewise.
16677         * varasm.c: Likewise.
16678
16679 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16680
16681         * doc/install.texi: Fix typos.
16682         * doc/invoke.texi: Likewise.
16683         * doc/md.texi: Likewise.
16684
16685 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16686
16687         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16688
16689 2004-01-06  Jan Hubicka  <jh@suse.cz>
16690
16691         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16692         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16693         of MMX_REGPARM.
16694         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16695         add MMX_REGPARM.
16696         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16697         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16698         (MMX_REGPARM_MAX): Similarly for -mmmx.
16699
16700 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16701
16702         * config/sh/linux.h: Fix comment formatting.
16703         * config/sh/netbsd-elf.h: Likewise.
16704         * config/sh/sh.c: Likewise.
16705         * config/sh/sh.h: Likewise.
16706         * config/sh/vxworks.h: Likewise.
16707
16708 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16709
16710         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16711         * toplev.c (output_file_directive): Don't use
16712         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16713
16714 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16715
16716         * toplev.c: Fix broken checkin of 2003-12-30.
16717
16718 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16719
16720         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16721         (USING_MMAP): We don't support non-mmap.
16722         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16723         large objects.
16724         (struct page_entry): Remove bytes_free.
16725         (struct page_table_chain): Remove.
16726         (struct globals): Remove page_table member.
16727         (loookup_page_table_entry): Function deleted.
16728         (set_page_table_entry): Ditto.
16729         (ggc_allocated_p): No longer need page table lookups.
16730         (ggc_marked_p): Ditto.
16731         (alloc_small_page): Don't care about bytes_free anymore.
16732         (alloc_large_page): Round up size.
16733         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16734         their size the new way.
16735         Remove page table lookups and setting.
16736         (ggc_get_size): Calculate large object size the new way.
16737         (sweep_pages): Redo to account for fact that we no longer have
16738         bytes_free.
16739         (ggc_collect): No longer need to reincrement bytes_free.
16740         (ggc_pch_alloc_object): Handle new large objects properly.
16741         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16742
16743 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16744
16745         * doc/invoke.texi: Remove a page break.
16746
16747 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16748
16749         * config/avr/avr.c (avr_output_function_prologue): Remove an
16750         extra pair of curly braces.
16751
16752 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16753
16754         * config/mn10300/mn10300.c: Fix comment formatting.
16755         * config/mn10300/mn10300.h: Likewise.
16756
16757 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16758
16759         * tree.h: Update documentation on nothrow_flag.
16760         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16761         types.
16762
16763 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16764
16765         * doc/invoke.texi: Remove traces of dead ports.
16766
16767 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16768
16769         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16770         option.
16771
16772 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16773
16774         PR target/12945
16775         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16776         counter labels.
16777         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16778         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16779         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16780         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16781         (mips_symbol_insns): Don't trust the local/global classification.
16782         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16783         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16784         -mno-explicit-relocs.
16785         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16786         between local and global symbols.
16787
16788 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16789
16790         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16791         (mips_preferred_reload_class): Declare.
16792         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16793         (EXTRA_CONSTRAINT): Update accordingly.
16794         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16795         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16796         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16797         mips_dangerous_for_la25_p.
16798         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16799         if mips_dangerous_for_la25_p.
16800
16801 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16802
16803         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16804         warning.
16805
16806 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16807
16808         * configure.ac: Use AC_PROG_CPP_WERROR.
16809         * configure: Regenerate.
16810
16811 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16812
16813         * .cvsignore: Add autom4te.cache.
16814
16815 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16816
16817         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16818         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16819         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16820         then architecture options, then ABI options.  General rewording.
16821
16822 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16823
16824         PR c/3414
16825         * doc/extend.texi: Clarify definition of malloc attribute.
16826
16827 2004-01-04  Jan Hubicka  <jh@suse.cz>
16828
16829         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16830         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16831         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16832         (cgraph_inline_p): Add extra argument reason.
16833         * cgraphunit.c: Minor formating fixes.
16834         cgraph_first_inlined_callee): New functions.
16835         (record_call_1): Record builtins too.
16836         (cgraph_analyze_function): Update inline_failed messages.
16837         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16838         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16839         (cgraph_check_inline_limits): Likewise; Add argument reason.
16840         (cgraph_set_inline_failed): New static function.
16841         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16842         reasons.
16843         (cgraph_inline_p): Add new argument reason.
16844         * tree-inline.c (expand_call_inline):  Update warning.
16845
16846 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16847
16848         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16849         with modern equivalents.
16850         * configure: Regenerate.
16851
16852         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16853         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16854         * configure: Regenerate.
16855
16856         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16857
16858         * configure.in: Rename to configure.ac.
16859         * configure.ac: Renamed from configure.in; make minimum necessary
16860         changes for autoconf 2.5x.
16861         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16862         * configure: Regenerate with autoconf 2.57.
16863
16864 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16865
16866         * config/mips/linux.h: Fix comment formatting.
16867         * config/mips/mips.c: Likewise.
16868         * config/mips/mips.h: Likewise.
16869         * config/mips/mips.md: Likewise.
16870         * config/mips/netbsd.h: Likewise.
16871         * config/mips/windiss.h: Likewise.
16872
16873 2004-01-02  Richard Henderson  <rth@redhat.com>
16874
16875         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16876         for sse and 387; add suppression for mmx.
16877
16878 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16879
16880         * loop.c (loop_optimize): Free all loops_info's mems.
16881
16882         * c-typeck.c (finish_init): Free spelling_base before
16883         setting it again.
16884
16885         * cfgloop.c (flow_loops_find): Always free the sbitmap
16886         headers.
16887
16888         * predict.c (estimate_probability): Free bbs after being
16889         done with it.
16890
16891 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16892
16893         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16894         const_8bit_operand and call_address_operand.
16895
16896 2004-01-02  Jan Hubicka  <jh@suse.cz>
16897
16898         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16899         when there is nothing to inline but warnings are requested.
16900         (cgraph_decide_inlining):  Fix memory leak.
16901
16902 2004-01-02  Jan Hubicka  <jh@suse.cz>
16903
16904         * expr.c (store_constructor):  Fix pasto in previous patch.
16905
16906 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16907
16908         * config/i386/cygming.h: Fix comment formatting.
16909         * config/i386/djgpp.h: Likewise.
16910         * config/i386/gthr-win32.c: Likewise.
16911         * config/i386/i386-interix.h: Likewise.
16912         * config/i386/i386.c: Likewise.
16913         * config/i386/i386.h: Likewise.
16914         * config/i386/openbsd.h: Likewise.
16915         * config/i386/winnt.c: Likewise.
16916         * config/i386/xm-mingw32.h: Likewise.
16917
16918 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16919
16920         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16921         copyright and last modification dates.
16922
16923 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16924
16925         * doc/install.texi (Specific): Mention x86_64.
16926
16927 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16928
16929         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16930         Call force_operand on plus_constant result.
16931
16932 2004-01-01  Jan Hubicka  <jh@suse.cz>
16933
16934         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16935         * expr.c (store_constructor): Use vec_init pattern.
16936         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16937         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16938         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16939         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16940         New patterns.
16941         (sse2_unpc?pd): Fix pattern.
16942         (sse2_movlpd): Kill.
16943         (sse2_movsd): Deal with movlpd too.
16944         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16945         (ix86_expand_vector_init): New.
16946         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16947         * md.texi (vec_set, vec_extract): Document
16948
16949 2003-12-31  Jan Hubicka  <jh@suse.cz>
16950
16951         PR opt/13473
16952         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16953         ASM input operands
16954
16955         PR opt/12617
16956         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16957         (dump_file): Likewise.
16958         (rest_of_compilation): Likewise.
16959
16960         PR debug/13367
16961         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16962         flag_really_no_inline we inline always_inline functions.
16963         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16964         for non-always_inline functions when there is flag_really_no_inline.
16965         (cgraph_decide_inlining): Limit work done when not inlining.
16966         (cgraph_decide_inlining_incrementally): Likewise.
16967         (cgraph_optimize_function): Check whether something got inlined.
16968         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16969         extern inline functions when not inlining.
16970
16971         * opts.c (decode_options):  Disable crossjumping at -O1
16972         * invoke.texi (-O1): Document change.
16973
16974 See ChangeLog.10 for earlier changes.