OSDN Git Service

* doc/contrib.texi: Add entries for Stefan Olsson and
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-08  Jeff Law  <law@redhat.com>
2
3         * doc/contrib.texi: Add entries for Stefan Olsson and
4         Ola Ronnerup.
5
6 2004-06-08  DJ Delorie  <dj@redhat.com>
7
8         * toplev.c (floor_log2_wide): Replace loop with faster bit
9         operations.
10         (exact_log2_wide): Define in terms of the above.
11         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
12         available.
13
14 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
15
16         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
17         Make sure that we are in INDIRECT mode when getting the
18         stub name.
19
20 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
21
22         * h8300.md (extendqisi2_h8300): Add constraints.
23         (ldm_h8300s_4_normal): Fix typo.
24
25 2004-06-08  Richard Henderson  <rth@redhat.com>
26
27         * gimple-low.c (struct lower_data): Replace the_return_label and
28         one_return_stmt with return_statements.
29         (lower_function_body): Process the entire list of return_statements.
30         (lower_return_expr): Check source value before unifying return_exprs.   
31         * gimplify.c (gimplify_return_expr): Force the use of a temporary
32         for !aggregate_value_p.
33         * tree-gimple.c: Update RETURN_EXPR grammer.
34
35 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
36
37         PR target/15598
38         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
39
40 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
41
42         PR rtl-optimization/15717
43         * config/i386/i386.c (legitimate_constant_p): Do not allow
44         x - symbol_ref.
45
46 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
47
48         * gimplify.c (copy_if_shared_r): Revert:
49         2004-05-21  Richard Henderson  <rth@redhat.com>
50         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
51
52 2004-06-07  Roger Sayle  <roger@eyesopen.com>
53
54         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
55         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
56         (init_expmed): Initialize these cost arrays as appropriate.
57         (store_bit_field, extract_bit_field): Correct whitespace.
58         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
59         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
60         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
61         word_mode or compute_mode as appropriate.
62
63 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
64
65         PR target/15783
66         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
67         parameter.  Enumerate the registers inside the PARALLEL.
68         (function_arg): Adjust call to function_arg_union_value.
69         (function_value): Likewise.
70
71         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
72
73 2004-06-07  Roger Sayle  <roger@eyesopen.com>
74
75         * real.c (real_copysign): New function to implement libm's copysign.
76         * real.h (real_copysign): Prototype here.
77         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
78         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
79         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
80         fold_builtin_isdigit): Add function prototypes.
81         (fold_builtin_copysign): New function to fold copysign, copysignf
82         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
83         constant arguments at compile-time using real_copysign.  Fold
84         copysign(X,Y) as fabs(X) if Y is always non-negative.
85         (fold_builtin_1): Correct minor whitespace/style issues.  Call
86         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
87
88 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
89
90         * tree.c (iterative_hash_expr): Use real_hash.
91
92 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
93
94         PR c/14765
95         * c-parse.in (compstmt_primary_start): Set last_expr_type to
96         NULL_TREE.
97
98 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
99
100         PR c++/15815
101         * doc/extend.texi: Deprecate #pragma interface and #pragma
102         implementation.
103
104 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
105
106         PR middle-end/15666
107         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
108         builtin decl as well.
109
110 2004-06-07  Roger Sayle  <roger@eyesopen.com>
111
112         PR c/14649
113         * c-typeck.c (require_constant_value, require_constant_elements):
114         Move declarations to the top of the file.
115         (build_function_call): If we require a constant value, fold with
116         fold_initializer.  If the result is a constant, and the function
117         wasn't called using __builtin_foo, issue a pedantic warning.
118         (build_unary_op): If we require a constant value, fold tree with
119         fold_initializer.
120         (build_binary_op): Use require_constant_value to determine whether
121         to call fold or fold_initializer.
122
123 2004-06-07  Richard Henderson  <rth@redhat.com>
124
125         * gimple-low.c (struct lower_data): Add the_return_label and
126         one_return_stmt.
127         (lower_function_body): Initialize and use them.
128         (lower_return_expr): New.
129         (lower_stmt): Call it.
130         * gimplify.c (gimplify_return_expr): Force the argument to be either
131         null or a result_decl.
132         * tree-gimple.c: Update gimple grammer to match.
133         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
134         coalescing of result_decls.
135
136 2004-06-07  Richard Henderson  <rth@redhat.com>
137
138         PR rtl-opt/15193
139         * expmed.c (extract_bit_field): Fix vector_extract return.
140
141         * config/i386/i386.md (negv4sf2): New pattern.
142
143 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
144
145         PR c++/15337
146         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
147         message.
148
149 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
150
151         * config.in: Regenerate.
152
153 2004-06-06  Steven Bosscher  <stevenb@suse.de>
154
155         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
156         SWITCH_LABELS are always sorted.
157
158 2004-06-06  Steven Bosscher  <stevenb@suse.de>
159
160         * hooks.c (hook_int_void_1): New generic hook.
161         * hooks.h (hook_int_void_1): Add prototype.
162         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
163         Define to hook_int_void_1.
164         * config/c4x/c4x.md: Replace dummies for the old pipeline model
165         with dummies for the new one.
166
167 2004-06-06  Roger Sayle  <roger@eyesopen.com>
168
169         * tree.h (lvalue_or_else): Delete function prototype.
170         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
171
172 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
173
174         PR target/14542
175         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
176         a live change of a register after peephole replacement.
177
178 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
179
180         PR c/13519
181         * c-typeck.c (composite_type, common_pointer_type): New functions.
182         (common_type): Split parts into composite_type and
183         common_pointer_type.  Ensure that arithmetic operations return
184         unqualified types without attributes.  Don't make composite type
185         of signed enum and compatible integer be unsigned.
186         (build_conditional_expr, build_binary_op): Use
187         common_pointer_type.
188         * c-decl.c (merge_decls): Use composite_type.
189         * c-tree.h (composite_type): Declare.
190
191 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
192
193         PR target/14457
194         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
195         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
196         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
197         (inhibit_libc): Must define.
198         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
199         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
200         ("xorhi3"): Likewise.
201
202 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
203
204         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
205         always_inline pass.
206
207 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
208
209         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
210         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
211
212 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
213
214         * regclass.c (init_reg_sets): Check for missing registers in target
215         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
216
217 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
218
219         * Makefile.in (MKDEPS_H): New shorthand.
220         (c-opts.o): Update dependencies.
221         * c-opts.c: Include mkdeps.h.
222         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
223         not cpp_add_dependency_target.
224
225 2004-06-05  Steven Bosscher  <stevenb@suse.de>
226
227         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
228         * config/v850/v850.md: Convert to DFA scheduler description.
229
230 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
231
232         PR fortran/15478
233         * doc/install.texi: Document GMP as prerequisite. Document
234         --with-gmp and --with-gmp-dir configure options.
235         * fortran/gfortran.texi: Remove section "Compiling and testing",
236         remove TOC reference to it.
237
238 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
239
240         * combine.c(simplify_shift_const): Check shift amount is a
241         CONST_INT.
242
243 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
244
245         * toplev.c (init_asm_output): Add explicit 'b' to mode when
246         opening asm_out_file.
247         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
248         reading asm_out_file. Replace fflush after reading asm_out_file
249         with fseek.
250         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
251         default and add to HOST_HOOKS_INITIALIZER.
252         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
253         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
254         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
255         to set mmi.offset padding.
256          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
257         $(srcdir)/config/i386/winnt.c.
258         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
259         (i[34567]86-*-uwin*): Likewise.
260         *i[34567]86-*-interix3*): Likewise.
261         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
262         * config/i386/host-mingw32.c: New file.
263         * config/i386/x-mingw32: Add rule for host-mingw32.o.
264         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
265         (extern_head): Likewise.
266         (struct export_list) Likewise.
267         (export_head): Likewise.
268         (i386_pe_record_external_function): Use ggc_alloc.
269         (i386_pe_record_exported_symbol): Likewise.
270         Include "gt-winnt.h" at end.
271         * doc/hostconfig.texi: Document
272         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
273
274 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
275
276         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
277         Rename 68000 and 68k to m68k for consistency in comments.  Remove
278         trailing whitespace before EOLs and before TABs.
279         (MAX_CODE_ALIGN): Remove unused macro.
280         (CALL_USED_REGISTERS): Reformat and add comments.
281
282 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
283
284         * gcc.c (MFLIB_SPEC): Remove library references, to require users
285         to enumerate -lmudflap* and dependencies when linking.
286
287 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
288
289         PR target/15822
290         * dojump.c (do_jump): Fix uninitialized variable tcode1.
291
292 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
293
294         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
295         * genconditions.c (write_header): Back out removal of reload.h.
296
297 2004-06-04  Jan Hubicka  <jh@suse.cz>
298
299         Re-apply hopefully fixed patch:
300         * i386.md (UNSPECV_EH_RETURN): Kill.
301         (eh_return): Use jump_insn.
302         (eh_return_si, eh_return_di): Change pattern to jump instruction.
303
304 2004-06-04  Jeff Law  <law@redhat.com>
305
306         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
307
308 2004-06-04  Steven Bosscher  <stevenb@suse.de>
309
310         * except.c (for_each_eh_region): New function.
311         * except.h (for_each_eh_region): Add a prototype for it.
312         * tree-cfg.c (update_eh_labels): New function, callback for
313         for_each_eh_region.
314         (label_for_bb): Make global static, unfortunately.
315         (cleanup_dead_labels): Also update label references for
316         exception regions.
317
318 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
319
320         * config/mips/mips.c (struct irix_section_align_entry): Fix
321         GTY marker.
322
323 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
324
325         * toplev.c (check_global_declarations): Don't ask for
326         DECL_ASSEMBLER_NAME unless the function really is declared
327         static and not defined.
328
329 2004-06-03  Matt Austern  <austern@apple.com>
330
331         PR c++/15428
332         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
333         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
334         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
335         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
336         documentation to reflect the new macro name and to clarify its
337         meaning.
338
339 2004-06-03  Steven Bosscher  <stevenb@suse.de>
340
341         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
342
343 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
344
345         * config/darwin.c (machopic_indirect_data_reference): Copy
346         the SYMBOL_REF_DECL from the original RTX for the new
347         non-lazy pointer RTX.
348
349 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
350
351         * tree.h: Remove include of version.h
352         * c-cppbuiltin.c: Include version.h
353         * diagnostic.c: Include version.h
354         * dwarf2out.c: Include version.h
355         * toplev.c: Include version.h
356         * vmsdbgout.c: Include version.h
357         * Makefile.in: Remove dependency on version.h from TREE_H, and
358         add dependencies to required .o targets
359
360 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
361
362         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
363         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
364         (TARGET_H): Add insn-modes.h.
365         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
366         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
367         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
368         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
369         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
370         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
371         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
372         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
373         CFGLAYOUT_H.
374         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
375         Replace ra.h with RA_H.
376         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
377         insn-recog.o): Replace resource.h with RESOURCE_H.
378         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
379         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
380         with SCHED_INT_H.
381         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
382         ra-rewrite.o): Replace df.h with DF_H.
383         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
384         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
385         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
386         (insn-conditions.o): Remove unused reload.h.
387         * cfglayout.h: Add include guard.  Include basic-block.h.
388         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
389         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
390         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
391         basic-block.h.
392         * genconditions.c:  Remove reload.h.
393         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
394         hard-reg-set.h, insn-modes.h.
395         * resource.h: Add include guard.  Include hard-reg-set.h.
396         * sched-int.h:  Add include guard.  Include insn-attr.h,
397         basic-block.h, rtl.h.
398         * target.h: Add include guard.  Include insn-modes.h.
399         * tree-ssa-live.h: Include partition.h.
400
401 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
402                 Kenneth Zadeck <zadeck@naturalbridge.com>
403
404         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
405         (add_var_to_ssa_edges_worklist): Add value argument.
406         Update callers.
407         Use new worklist.
408         (process_ssa_edge_worklist): New function.
409         (tree_ssa_ccp): Move worklist processing core to
410         process_ssa_edge_worklist, and just call that for the two worklists.
411
412 2004-06-03  Steven Bosscher  <stevenb@suse.de>
413
414         * basic-block.c (tail_recursion_label_list): Don't declare.
415         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
416         accordingly.
417         * cfgbuild.c (find_label_refs): Remove.
418         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
419         * cfgcleanup.c (tail_recursion_label_p): Remove.
420         (merge_blocks_move): Do not check for tail recursion.
421         (try_optimize_cfg): Likewise.
422         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
423         * cfgrtl.c (tail_recursion_label_list): Remove.
424         * except.c (remove_unreachable_regions): Don't handle
425         CALL_PLACEHOLDER insns.
426         (convert_from_eh_region_ranges_1, can_throw_internal,
427         can_throw_external): Likewise.
428         * function.c (free_after_compilation): Don't clear
429         x_tail_recursion_label.
430         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
431         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
432         (reorder_blocks_1): Likewise.
433         * function.h (struct function): Remove x_tail_recursion_label
434         member.  Don't define tail_recursion_label.
435         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
436         * print-rtl.c (print_rtx): Likewise.
437         * rtl.def (CALL_PLACEHOLDER): Remove.
438         * rtl.h (sibcall_use_t): Remove enum.
439         (optimize_sibling_and_tail_recursive_calls,
440         replace_call_placeholder): Remove function prototypes.
441         * stmt.c (tail_recursion_args): Remove.
442         (optimize_tail_recursion): Remove.
443         (expand_return): Don't check for possible tail recursion.
444         * tree.h (optimize_tail_recursion): Remove prototype.
445
446 2004-06-02  Jan Hubicka  <jh@suse.cz>
447
448         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
449         return_stmt.
450
451 2004-06-02  Jason Merrill  <jason@redhat.com>
452
453         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
454         Do include c-parse.in.
455
456 2004-06-02  Eric Christopher  <echristo@redhat.com>
457
458         * c-typeck.c (common_type): Don't lose type qualifiers
459         when creating new variants.
460
461 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
462
463         PR tree-optimization/14042
464         PR tree-optimization/14729
465         PR tree-optimization/14736
466         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
467         Check the type which the pointer points to
468         instead of the pointer types.
469
470 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
471
472         PR tree-optimization/15738.
473         * builtins.c (fold_builtin_strchr): Transform
474         strrchr (s, '\0') to strchr (s, '\0').
475
476 2004-06-02  Steven Bosscher  <stevenb@suse.de>
477
478         * i386.c (ix86_adjust_cost): Don't increase the cost for
479         load+operation for PROCESSOR_PENTIUMPRO, it is already
480         modelled in the DFA description
481
482 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
483
484         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
485         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
486         (ALIAS_H, EMIT_RTL_H): New.
487         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
488         (cfgcleanup.o): Add EMIT_RTL_H.
489         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
490         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
491         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
492         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
493         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
494         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
495         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
496         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
497         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
498         set_mem_size): Move to emit-rtl.h.
499         * emit-rtl.h: New.
500         * alias.h: New.
501
502 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
503
504         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
505         Call fixup_memory_subreg only if the MEM is equal to 'var'.
506         Adjust recursive calls to self.
507         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
508
509 2004-06-01  Richard Henderson  <rth@redhat.com>
510             Andrew Pinski  <pinskia@physics.uc.edu>
511
512         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
513         (primary): Handle offsetof.  Add error productions for faux functions.
514         Move component_ref objc checking to build_component_ref.
515         (reswords): Add offsetof.
516         (rid_to_yy): Add offsetof.
517         * c-tree.h (build_offsetof): Declare.
518         * c-common.h (objc_is_public): Declare.
519         * c-typeck.c (build_component_ref): Check objc_is_public.
520         (build_offsetof): New.
521         * stub-objc.c (objc_is_public): New.
522         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
523         from is_public.
524         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
525         * doc/extend.texi (Offsetof): Move from C++ section to C section
526         and rewrite for __builtin_offsetof.
527
528 2004-06-01  Peter Barada  <peter@the-baradas.com>
529             Peter Jakubek  <peter@laseranimation.com>
530
531         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
532         a scratch to perform an add to memory.
533
534 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
535
536         PR target/14018
537         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
538         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
539         m68k_align_funcs): Remove.
540         (override_options): Remove code to handle -malign-* options.
541         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
542         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
543         (m68k_align_loops_string, m68k_align_jumps_string,
544         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
545         m68k_align_funcs): Remove definitions.
546
547 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
548
549         PR target/15626
550         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
551         by the Sun linker in conjunction with the Sun assembler.
552         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
553
554 2004-06-01  Jeff Law  <law@redhat.com>
555
556         * stmt.c (expand_decl): Be more selective about calling
557         mark_reg_pointer.
558
559 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
560
561         PR objc/7993
562         * objc-act.c (is_private): Do not emit the 'instance variable %s
563         is declared private' error.
564         (is_public): Emit the error after calling is_private.
565         (lookup_objc_ivar): If the instance variable is private, return 0
566         - the instance variable is invisible here.
567
568 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
569
570         * doc/invoke.texi (-static-libgcc): Explicitly mention
571         non-GNU linkers.
572
573 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
574
575         PR target/12968
576         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
577
578 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
579
580         PR c/15749
581         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
582         misuses of structures with flexible array members if
583         in_system_header.
584
585 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
586
587         PR target/15693
588         * config/sparc/sparc.c (compare_operand): New predicate.
589         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
590         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
591         operand is a ZERO_EXTRACT and the second operand is not zero,
592         force the former to a register.
593         (cmpdi expander): Likewise.
594
595 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
596
597         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
598         looks at.
599         * alias.c (alias_invariant_size): Make alias_invariant_size
600         static, fix GTY marker.
601
602 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
603
604         PR tree-optimization/15743.
605         * builtins.c (fold_builtin_1): Fold index() and rindex().
606
607 2004-05-31  Roger Sayle  <roger@eyesopen.com>
608
609         PR middle-end/15069
610         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
611         into "X < 0" (where C is the signbit) if X's type is a full mode.
612
613 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
614
615         * pa.md: Disable the peephole2 patterns that generate indexed
616         floating-point stores when indexing is disabled.
617
618 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
619
620         * c-pretty-print.c (pp_c_left_bracket): Make a function.
621         (pp_c_right_bracket): Likewise.
622         (pp_c_star): Likewise.
623         (pp_c_ampersand): Define.
624         * c-pretty-print.h (pp_c_left_bracket): Declare.
625         (pp_c_right_bracket): Likewise.
626         (pp_c_star): Likewise.
627         (pp_c_ampersand): Likewise.
628
629 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
630
631         * config/sol2.h (__enable_execute_stack): ANSIfy function
632         definition.
633
634 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
635
636         * c-incpath.c (add_path): Canonicalize paths to use '/' if
637         HAVE_DOS_BASED_FILESYSTEM.
638
639 2004-05-31  Steven Bosscher  <stevenb@suse.de>
640
641         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
642         Only look at case labels if the immediate dominator is also
643         the only predecessor.  Don't look for more case labels if the
644         first seen is a case range.
645
646 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
647
648         * builtins.c: Add a prototype for fold_builtin_strchr().
649
650 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
651
652         Revert this patch:
653         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
654
655         * combine.c (gen_binary): Remove.
656         (known_cond, simplify_shift_const
657         find_split_point, combine_simplify_rtx,
658         simplify_if_then_else, simplify_set,
659         simplify_logical, expand_field_assignment,
660         extract_left_shift, force_to_mode,
661         if_then_else_cond, apply_distributive_law,
662         simplify_and_const_int, simplify_shift_const,
663         gen_lowpart_for_combine, simplify_comparison,
664         reversed_comparison): Replace with
665         simplify_gen_binary, simplify_gen_relational or
666         distribute_and_simplify_rtx.
667         (distribute_and_simplify_rtx): New function.
668
669 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
670
671         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
672         when generating PIC code.
673
674 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
675
676         * c-decl.c (c_expand_body_1): Remove and fold back into ...
677         (c_expand_body): here.
678         (c_expand_decl): Move to ...
679         * c-common.c (c_expand_decl): Here and remove check for nested
680         functions.
681         * c-common.h (c_expand_decl): Add prototype.
682         * c-tree.h (c_expand_decl): Remove.
683
684 2004-05-30  Roger Sayle  <roger@eyesopen.com>
685
686         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
687         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
688         fold_mathfn_compare, fold_inf_compare, fold,
689         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
690         Use constant_boolean_node where appropriate.  Don't bother using
691         fold_convert on the second argument to omit_one_operand.
692
693 2004-05-30  Roger Sayle  <roger@eyesopen.com>
694
695         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
696         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
697         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
698         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
699         Add missing (but documented) tree nodes to the index.
700
701 2004-05-30  Steven Bosscher  <stevenb@suse.de>
702
703         PR tree-optimization/14819
704         * builtins.c (fold_builtin_strchr): New.
705         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
706         with fold_builtin_strchr().
707
708 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
709
710         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
711         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
712         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
713         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
714         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
715         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
716         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
717         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
718         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
719         formatting.
720
721 2004-05-30  Steven Bosscher  <stevenb@suse.de>
722
723         * gimplify.c (sort_case_labels): New.  Split out from...
724         (gimplify_switch_expr): ...here.  Use it.
725         * tree-eh.c (lower_try_finally_switch): Sort the labels of
726         the SWITCH_EXPR created here before leaving the function.
727         * tree.c (sort_case_labels): Add prototype.
728
729 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
730
731         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
732         of BOOLEAN_TYPE.
733
734 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
735
736         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
737         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
738         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
739         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
740         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
741         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
742         comment typos.  Follow spelling conventions.
743
744 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
745
746         * gengtype-yacc.y: Add NESTED_PTR token.
747         (option): Record `nested_ptr' option.
748         * gengtype-lex.l: Handle `nested_ptr' keyword.
749         * gengtype.c (walk_type): Process `nested_ptr' option.
750         * gengtype.h (struct nested_ptr_data): New.
751         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
752         * stringpool.c (struct string_pool_data): Make 'entries' point to
753         ht_identifier instead of tree.
754         (gt_pch_save_stringpool): Don't adjust pointers.
755         (gt_pch_restore_stringpool): Call ht_load.
756
757 2004-05-29  Jason Merrill  <jason@redhat.com>
758
759         * gimplify.c (gimplify_expr): Don't build a statement list
760         if no gimplification was necessary.
761
762 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
763
764         * pretty-print.c (pp_base_format_text): Support %< instead of %`
765         and %> as well as %'.
766         * c-format.c: Use %< and %>.
767         (gcc_diag_char_table, gcc_cdiag_char_table,
768         gcc_cxxdiag_char_table): Update.
769
770 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
771
772         * c-typeck.c (common_type): Correct comment.
773
774 2004-05-29  Peter Barada  <peter@the-baradas.com>
775
776         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
777         * config/m68k/m68k.c (const_method): Likewise.
778         * config/m68k/m68k.c (const_int_cost): Likewise.
779         * config/m68k/m68k.c (const_int_cost): Likewise.
780         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
781
782 2004-05-29  Peter Barada  <peter@the-baradas.com>
783
784         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
785         addressing.
786         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
787         movsi,movhi,movqi insn patterns.
788
789 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
790
791         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
792
793         PR target/15720
794         * config/darwin.c (machopic_indirect_call_target): Copy
795         the SYMBOL_REF_DECL from the original RTX for the new
796         stub RTX.
797
798 2004-05-28  DJ Delorie  <dj@redhat.com>
799
800         * stor-layout.c (place_field): Revert erroneous commit.
801
802 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
803
804         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
805         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
806         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
807         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
808         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
809         vec_ste): Remove type checks for integral parameters and literals
810         from '..._args_eq' macros.
811
812 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
813
814         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
815
816 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
817
818         * testsuite/g++.dg/charset/function.cc: New.
819
820         * testsuite/gcc.dg/charset/function.c: New.
821
822         * c-decl.c (c_make_fname_decl): Free return value from
823         fname_as_string.
824
825         * cp/decl.c (cp_make_fname_decl): Free return value from
826         fname_as_string.
827
828         * c-common.c (fname_as_string): Translate if necessary.
829
830 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
831
832         * stringpool.c: Add comments to PCH saving/restoring routines.
833
834 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
835
836         * c-common.c (c_estimate_num_insns_1): Kill.
837         (c_estimate_num_insns): Kill.
838         * c-common.h (c_estimate_num_insns): Kill.
839
840         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
841         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
842         Remove comment about not checking for
843         _POSIX_PRIORITY_SCHEDULING.
844         * gthr-posix.c: Likewise.
845
846 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
847             Roger Sayle  <roger@eyesopen.com>
848
849         PR rtl-optimization/15649
850         Add LTGT_EXPR and improve pretty-printing of unordered
851         comparisons.
852         * c-common.c (c_common_truthvalue_conversion):
853         Handle LTGT_EXPR.
854         * c-typeck.c (build_binary_op): Likewise.
855         * dojump.c (do_jump): Likewise.
856         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
857         * predict.c (tree_predict_by_opcode): Likewise.
858         * real.c (real_compare): Likewise.
859         * tree-cfg.c (verify_expr): Likewise.
860         * tree-inline.c (estimate_num_insns_1): Likewise.
861         * tree-pretty-print.c (dump_generic_node): Likewise.
862         Handle ORDERED_EXPR, UNORDERED_EXPR.
863         (op_symbol): Print unordered comparisons differently
864         than ordered ones.
865         * tree.def (LTGT_EXPR): New '<' tree code.
866         * doc/c-tree.texi (Expressions): Document floating-point
867         comparison nodes.
868
869         Fold comparisons between floating point values.
870         * fold-const.c (enum comparison_code): New, from
871         #define'd constants.  Define compcodes for unordered
872         comparisons and for invalid transformations.
873         (invert_tree_comparison): Add "honor_nans" parameter.
874         (fold_truthop): Revamp to work on floating-point types too.
875         (comparison_to_compcode): Support unordered comparisons.
876         Use new enum comparison_code.
877         (compcode_to_comparison): Likewise.
878         (combine_compcodes): New function.
879         (invert_truthvalue): Let invert_tree_comparison decide
880         whether it is valid to fold the comparison.  Fold ORDERED
881         and UNORDERED even if flag_unsafe_math_optimizations is off,
882         and the remaining even if flag_unsafe_math_optimizations
883         is off but we are under -fno-trapping-math.
884         (fold_relational_const): Integer modes do not honor NaNs.
885
886 2004-05-28  Paul Brook  <paul@codesourcery.com>
887
888         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
889
890 2004-05-28  Paul Brook  <paul@codesourcery.com>
891
892         * config/arm/arm.c (thumb_force_lr_save): New function.
893         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
894         thumb_output_function_prologue): Use it.
895         (thumb_expand_prologue): Set lr_save_eliminated.
896
897 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
898
899         * config/mips/mips.md (extendsidi2): Tie the source and destination
900         of the register alternative.  Split it into nothing.
901
902 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
903
904         * rtl.h (skip_consecutive_labels): Declare.
905         * emit-rtl.c (skip_consecutive_labels): New function.
906         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
907         * jump.c (follow_jumps): Say what null return values mean.
908
909 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
910
911         PR target/13250
912         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
913
914 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
915
916         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
917         libgcc-std.ver.
918         * config/sh/libgcc-std.ver: New file.
919
920 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
921
922         * except.c: Revert change of 2004-05-26.
923         * config/i386/i386.md: Revert change of 2004-05-27.
924
925 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
926
927         * configure.ac: Remove --enable-tree-browser option.
928         Define TREEBROWSER when ac_tree_checking is defined.
929         * configure: Rebuilt.
930
931 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
932
933         * expr.c (store_constructor): Restore sanity check on
934         the size of the type before clearing.
935
936 2004-05-27  Jan Hubicka  <jh@suse.cz>
937
938         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
939
940 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
941
942         * combine.c (gen_binary): Remove.
943         (known_cond, simplify_shift_const
944         find_split_point, combine_simplify_rtx,
945         simplify_if_then_else, simplify_set,
946         simplify_logical, expand_field_assignment,
947         extract_left_shift, force_to_mode,
948         if_then_else_cond, apply_distributive_law,
949         simplify_and_const_int, simplify_shift_const,
950         gen_lowpart_for_combine, simplify_comparison,
951         reversed_comparison): Replace with
952         simplify_gen_binary, simplify_gen_relational or
953         distribute_and_simplify_rtx.
954         (distribute_and_simplify_rtx): New function.
955         * simplify-rtx.c (simplify_binary_operation):
956         Use nonzero_bits to simplify ANDs where we are
957         turning off bits already known to be off in OP0.
958
959 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
960
961         PR target/14478
962         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
963
964 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
965
966         PR middle-end/14084
967         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
968         to size of decl.
969
970 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
971
972         PR/14924
973         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
974
975 2004-05-26  Roger Sayle  <roger@eyesopen.com>
976
977         * tree.h: Fix comment typo.
978
979 2004-05-27  Steven Bosscher  <stevenb@suse.de>
980
981         * gimplify.c (compare_case_labels): New function.
982         (gimplify_switch_expr): Sort case labels, and make sure the
983         last label in the label vector is the default case.
984         * tree-cfg.c (group_case_labels): New function.
985         (build_tree_cfg): Cleanup redundant labels and group case labels
986         before creating edges.
987         (cleanup_dead_labels): Handle GOTO_EXPRs.
988         (find_case_label_for_value): Use a binary search to find the
989         case label for the given value.
990         * tree-gimple.c: Mention that labels are sorted, and that the
991         last label must be the default.
992
993 2004-05-27  Jan Hubicka  <jh@suse.cz>
994
995         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
996
997 2004-05-27  Jan Hubicka  <jh@suse.cz>
998
999         * i386.md (UNSPECV_EH_RETURN): Kill.
1000         (eh_return): Use jump_insn.
1001         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1002
1003 2004-05-26  Jan Hubicka  <jh@suse.cz>
1004
1005         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1006         not loop optimizing.
1007
1008 2004-05-26  Jan Hubicka  <jh@suse.cz>
1009
1010         * except.c (can_throw_internal):  Notice RESX instructions.
1011
1012 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1013
1014         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1015         of the two sizes to assemble_integer.
1016
1017 2004-05-25  Paul Brook  <paul@codesourcery.com>
1018
1019         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1020         pointless #ifdef.
1021
1022 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1023
1024         * Makefile.in (top_builddir): Define to .
1025
1026 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1027
1028         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1029         top-level detects, except when in-tree ld is being cross-built.
1030         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1031         then AS only if target is host.
1032         * configure: Rebuilt.
1033
1034 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1035
1036         * global.c (global_alloc): Call make_accurate_live_analysis.
1037         (record_one_conflict): Remove dead code.
1038         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1039         (bb_info): New structure.
1040         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1041         (allocate_bb_info, free_bb_info, mark_reg_change,
1042         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1043         modify_bb_reg_pav, calculate_reg_pav,
1044         make_accurate_live_analysis): New functions.
1045
1046 2004-05-25  Devang Patel  <dpatel@apple.com>
1047
1048         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1049         xrealloc.
1050         (end_alias_analysis): Use ggc_free instead fo free.
1051
1052 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1053
1054         PR target/15546
1055         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1056         as needed to be outputted.
1057
1058 2004-05-25  Jan Hubicka  <jh@suse.cz>
1059
1060         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1061
1062 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1063         Mostafa Hagog  <mustafa@il.ibm.com>
1064
1065         * Makefile.in (modulo-sched.o, ddg.o): New.
1066         * ddg.h, ddg.c, modulo-sched.c: New files.
1067         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1068         internals to "dupicate_insn".
1069         (duplicate_insn): New function.
1070         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1071         declarations.
1072         * common.opt (fmodulo-sched): New flag.
1073         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1074         Remove static and forward declaration.
1075         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1076         functions.
1077         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1078         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1079         declarations.
1080         * flags.h (flag_modulo_sched): New flag.
1081         * opts.c (common_handle_option): Handle modulo-sched flag.
1082         * params.def (max-sms-loop-number, sms-max-ii-factor,
1083         sms-dfa-history, sms-loop-average-count-threshold): New
1084         parameters.
1085         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1086         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1087         parameters.
1088         * passes.c ("sms", "sms-vcg"): New dumps.
1089         (rest_of_handle_sched): Call sms_schedule.
1090         * rtl.h (sms_schedule): New declaration.
1091         * timevar.def (TV_SMS): New.
1092         * toplev.c (flag_modulo_sched): Initialize.
1093         (f_options): Handle -fmodulo-sched option.
1094         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1095         * docs/passes.texi: Document new SMS pass.
1096
1097 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1098
1099         * Makefile.in (OBJS): Add rtlhooks.o.
1100         (rtlanal.o): Depend on function.h.
1101         (cse.o): Depend on rtlhooks-def.h.
1102         (combine.o): Depend on rtlhooks-def.h.
1103         (rtlhooks.o): New rule.
1104         * combine.c: Include rtlhooks-def.h.
1105         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1106         num_sign_bit_copies, cached_num_sign_bit_copies,
1107         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1108         (reg_nonzero_bits_for_combine,
1109         reg_num_sign_bit_copies_for_combine): New functions holding
1110         the remnants of the above.
1111         (combine_rtl_hooks): New.
1112         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1113         * cse.c: Include rtlhooks-def.h.
1114         (cse_rtl_hooks): New.
1115         (cse_main): Set rtl_hooks instead of gen_lowpart.
1116         * emit-rtl.c (gen_lowpart): Remove.
1117         (gen_lowpart_general): Move to rtlhooks.c.
1118         * rtl.h (nonzero_bits, num_sign_bit_copies,
1119         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
1120         (gen_lowpart_general): Remove.
1121         (gen_lowpart): Temporarily redefine as a macro.
1122         * rtlanal.c: Include function.h.
1123         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1124         num_sign_bit_copies, cached_num_sign_bit_copies,
1125         num_sign_bit_copies1): New, from combine.c.
1126         * rtlhooks.c: New file.
1127
1128 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
1129
1130         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
1131         to support 32-bit -mint8 mode.
1132
1133         * doc/invoke.texi (-mint8): Added documentation for the -mint8
1134         option in the AVR architecture.
1135
1136 2004-05-24  Mike Stump  <mrs@apple.com>
1137
1138         * doc/install.texi: Document that dejagnu 1.4.4 is required.
1139
1140 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
1141
1142         * intl.h (open_quote, close_quote): New.
1143         * intl.c (open_quote, close_quote): New.
1144         (gcc_init_libintl): Set them.
1145         * pretty-print.c: Include "intl.h".
1146         (pp_base_format_text): Support 'q' format flag and %` and %'
1147         formats.  Use ' instead of ` in comments.
1148         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
1149         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
1150         foramt_types_orig): Describe these new formats.
1151         (decode_format_attr, check_function_format,
1152         check_format_info_main): Use these new formats.
1153         (status_warning): Use ATTRIBUTE_GCC_DIAG.
1154         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
1155         check these formats to 3.5.
1156
1157 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1158
1159         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
1160         (BACKEND): Reflect this.
1161         (LIBDEPS): Move CPPLIB before LIBIBERTY.
1162         (LIBS): Likewise.
1163
1164 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
1165
1166         PR tree-optimization/14197
1167         * builtins.c: Include "tree-gimple.h"
1168         (readonly_data_expr): Use get_base_address.  Make sure to call
1169         decl_readonly_section only on trees it can handle.
1170         * tree-gimple.c (get_base_address): Accept STRING_CST and
1171         CONSTRUCTOR expressions.
1172         * Makefile.in: Update dependencies.
1173
1174 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
1175
1176         Move libcpp to the toplevel.
1177         * Makefile.in: Remove references to libcpp files,
1178         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
1179         and change hashtable.h to that.
1180         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
1181         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
1182         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
1183         * configure: Regenerate.
1184         * config.in: Regenerate.
1185         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
1186         * cppcharset.c: Removed.
1187         * cpperror.c: Removed.
1188         * cppexp.c: Removed.
1189         * cppfiles.c: Removed.
1190         * cpphash.c: Removed.
1191         * cpphash.h: Removed.
1192         * cppinit.c: Removed.
1193         * cpplex.c: Removed.
1194         * cpplib.c: Removed.
1195         * cpplib.h: Removed.
1196         * cppmacro.c: Removed.
1197         * cpppch.c: Removed.
1198         * cpptrad.c: Removed.
1199         * cppucnid.h: Removed.
1200         * cppucnid.pl: Removed.
1201         * cppucnid.tab: Removed.
1202         * hashtable.c: Removed.
1203         * hashtable.h: Removed.
1204         * line-map.c: Removed.
1205         * line-map.h: Removed.
1206         * mkdeps.c: Removed.
1207         * mkdeps.h: Removed.
1208         * stringpool.h: Include symtab.h instead of hashtable.h.
1209         * tree.h: Include symtab.h instead of hashtable.h.
1210         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
1211
1212 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
1213
1214         * gcc.c (struct prefix_list): Add forward declaration.
1215         (do_spec_path): New function, extracted from...
1216         (do_spec_1) <'D'>: ... here.  Drop support for
1217         SPACE_AFTER_L_OPTION.
1218         (do_spec_1) <'I'>: Use do_spec_path.
1219         (process_command): Do not store the 'include' suffix
1220         in include_prefixes.
1221         * system.h: Poison SPACE_AFTER_L_OPTION.
1222
1223 2002-05-23  Roger Sayle  <roger@eyesopen.com>
1224
1225         * fold-const.c (non_lvalue): Explicitly list the tree codes that
1226         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
1227
1228 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
1229
1230         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
1231         Update based on printed manual.  Enable setting of offsets for
1232         FSFPRINT and move it to gcc-common.texi.
1233         * doc/gcc.texi: Update FSF printing details.
1234         * doc/gccint.texi: Remove FSF printing details.
1235
1236 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
1237
1238         * config/rs6000/t-rs6000: Remove the disabling -Werror.
1239
1240 2004-05-22  Roger Sayle  <roger@eyesopen.com>
1241
1242         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
1243         expand_builtin_strrchr, expand_builtin_strpbrk,
1244         expand_builtin_mempcpy, expand_builtin_memcmp,
1245         expand_builtin_strcmp, expand_builtin_strncmp,
1246         expand_builtin_strcat, std_expand_builtin_va_start,
1247         std_expand_builtin_va_arg, expand_builtin_va_copy,
1248         expand_builtin_signbit, fold_builtin_cabs,
1249         fold_builtin_logarithm, fold_builtin_mempcpy,
1250         fold_builtin_signbit, fold_builtin_isascii,
1251         fold_builtin_toascii, fold_builtin_isdigit,
1252         fold_builtin_1, build_function_call_expr,
1253         simplify_builtin_strchr, simplify_builtin_strrchr,
1254         simplify_builtin_strpbrk, simplify_builtin_strncpy,
1255         simplify_builtin_memcmp, simplify_builtin_strcmp,
1256         simplify_builtin_strncmp, simplify_builtin_strncat,
1257         simplify_builtin_strspn, simplify_builtin_strcspn,
1258         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
1259         to build with calls to build2, build3 or omit_one_operand.
1260
1261 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1262
1263         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
1264         section when generating EABI code.
1265
1266 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
1267
1268         PR 15546
1269         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
1270         Call mark_decl_referenced on the SYMBOL_REF_DECL.
1271
1272 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
1273
1274         * c-common.c (c_common_truthvalue_conversion): Handle
1275         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
1276         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
1277         i.e. set the type to truthvalue_type_node and return.
1278
1279 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
1280
1281        * tree.h (struct tree_decl): Add possibly_inlined bit.
1282         (DECL_POSSIBLY_INLINED): New accessor macro.
1283         * cgraph.h: Remove declaration of cgraph_inline_hash.
1284         * cgraph.c: Remove definition of cgraph_inline_hash.
1285         (hash_node): Revert to hashing DECL_UID.
1286         (eq_node): Take two pointers to cgraph_node structures.
1287         Compare DECL_UIDs.
1288         (cgraph_remove_node): Pass the node directly to htab_find_slot.
1289         (cgraph_varpool_hash_node): Rename hash_varpool_node;
1290         hash on DECL_UID.
1291         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
1292         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
1293         (cgraph_node): Allocate a temporary node on the stack, fill in
1294         its DECL field, and pass that to htab_find_slot.
1295         (cgraph_varpool_node): Likewise.
1296         (cgraph_function_possibly_inlined_p): If global info is ready,
1297         return the DECL_POSSIBLY_INLINED bit.
1298         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
1299         instead of mucking with cgraph_inline_hash.
1300
1301 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
1302
1303         * doc/contrib.texi: Add g77 contributors.
1304
1305 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
1306
1307         * calls.c (initialize_argument_information): Forbid sibcalls if a
1308         callee-copied argument is stored in the current function's frame.
1309
1310 2004-05-22  Eric Christopher  <echristo@redhat.com>
1311
1312         * fix-header.c (read_scan_file): Update for add_path change.
1313
1314 2004-05-22  Ben Elliston  <bje@au.ibm.com>
1315
1316         * c.opt (Wmissing-include-dirs): New.
1317         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
1318         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
1319         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
1320         * c-incpath.h (add_path): Add fourth (bool) argument.
1321         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
1322         (add_standard_paths): Likewise.
1323         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
1324         is used and the directory was user-supplied via -I.
1325         (add_path): Set p->user_supplied_p.  Remove duplicated code by
1326         using add_cpp_dir_path ().
1327         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
1328         (struct cpp_dir): Add user_supplied_p.
1329         * doc/invoke.texi (Warning Options): Document new option.
1330
1331 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
1332
1333         * fold-const.c (fold_read_from_constant_string): Convert result to
1334         requested type.
1335
1336 2004-05-21  Richard Henderson  <rth@redhat.com>
1337
1338         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
1339         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
1340         Don't mark VA_ARG_EXPRs volatile here.
1341         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
1342
1343 2004-05-21  Richard Henderson  <rth@redhat.com>
1344
1345         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
1346         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
1347
1348 2004-05-21  Roger Sayle  <roger@eyesopen.com>
1349
1350         * fold-const.c (fold, fold_relational_hi_lo,
1351         nondestructive_fold_binary_to_constant,
1352         fold_read_from_constant_string): Use fold_convert instead of convert.
1353         * builtins.c (simplify_builtin, simplify_builtin_strstr,
1354         simplify_builtin_strchr, simplify_builtin_strrchr,
1355         simplify_builtin_strpbrk): Use fold_convert instead of convert.
1356
1357 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
1358
1359         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
1360         is NULL.
1361
1362 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1363
1364         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
1365         override sparc.h definition.
1366
1367 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1368
1369         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
1370         get_unwidened, get_narrower): Replace build with build2.
1371         * fold-const.c (negate_expr, associate_trees, size_binop,
1372         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
1373         pedantic_omit_one_operand, distribute_bit_expr,
1374         make_bit_field_ref, optimize_bit_field_compare,
1375         decode_field_reference, range_binop, make_range,
1376         build_range_check, fold_range_test, fold_truthop,
1377         optimize_minmax_comparison, extract_muldiv_1,
1378         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
1379         fold_inf_compare, fold_single_bit_test, fold,
1380         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1381         Likewise replace build with either build2 or build3.
1382
1383 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
1384
1385         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
1386         * calls.c (prepare_call_address): Don't test
1387         NO_RECURSIVE_FUNCTION_CSE.
1388         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
1389         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1390         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1391         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1392         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1393         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1394         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1395         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1396         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1397         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1398         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1399         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
1400         Likewise.
1401         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
1402         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
1403         * doc/tm.texi (Costs): Remove documentation for
1404         NO_RECURSIVE_FUNCTION_CSE.
1405
1406 2004-05-20  Paul Brook  <paul@codesourcery.com>
1407
1408         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
1409         * unwind-dw2.c (extract_cie_info): Ditto.
1410         (_Unwind_FrameState): Change retaddr_column to word type.
1411
1412 2004-05-20  Roger Sayle  <roger@eyesopen.com>
1413
1414         PR middle-end/3074
1415         * fold-const.c (strip_compound_expr): Delete function.
1416         (count_cond): Delete function.
1417         (fold_binary_op_with_conditional_arg): Only perform transformations
1418         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
1419         when a is constant.  This greatly simplifies this routine.
1420
1421         * tree.c (saved_expr_p): Delete function.
1422         * tree.h (saved_expr_p): Delete function prototype.
1423
1424 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1425
1426         * common.opt (ftree-loop-optimize): Remove.
1427
1428 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
1429
1430         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
1431         (NM_FOR_TARGET): Use := and $(shell).
1432         (mainversion): Remove unused variable.
1433
1434 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1435
1436         * reorg.c (delete_from_delay_slot): If we have a barrier after the
1437         sequence containing the insn to be deleted, always reemit it.
1438
1439 2004-05-20  Richard Henderson  <rth@redhat.com>
1440
1441         PR 15454
1442         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
1443         * function.c (expand_function_start): Expand static_chain_decl by hand.
1444         * gimplify.c (create_tmp_var_name): Export.
1445         * tree-gimple.h (create_tmp_var_name): Declare.
1446
1447 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
1448
1449         * rs6000.c (print_operand) <case 'z'>: Call
1450         mark_decl_referenced before assemble_name.
1451
1452 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
1453
1454         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1455         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1456         (cgraph_varpool_node): Hash on the pointer to the decl, not
1457         the DECL_UID.  Fixes 64-bit bootstrap failure.
1458
1459 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
1460
1461         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
1462         we don't earlyclobber operands used in the second insn.
1463
1464 2004-05-20  Steven Bosscher  <stevenb@suse.de>
1465
1466         * tree-mudflap.c: Formatting fixes.
1467
1468 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
1469
1470         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
1471         * gengtype.c (open_base_files): Include reload.h in ifiles.
1472         * reload.h (reg_equiv_memory_loc_varray): Declare.
1473         * reload1.c (reg_equiv_memory_loc_varray): New variable.
1474         (init_reload): Initialize it.
1475         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
1476         reg_equiv_memory_loc_varray to size 0.
1477         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
1478         growing reg_equiv_memory_loc_varray to the desired size.
1479         * passes.c (rest_of_handle_old_regalloc): Likewise.
1480         * reload.c: Amend comment on calling init_reload.
1481
1482 2004-05-20  Nick Clifton  <nickc@redhat.com>
1483
1484         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
1485         with 'TRAMP' in the body of the macro definition.
1486
1487 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
1488
1489         PR target/15383
1490         * config/ia64/ia64.c (ia64_expand_compare): Don't check
1491         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
1492         cmptf_libfunc isn't set.
1493         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
1494         conventions.
1495         (ia64_sysv4_init_libfuncs): New.
1496
1497         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
1498         ia64_sysv4_init_libfuncs.
1499
1500 2004-05-20  Falk Hueffner  <falk@debian.org>
1501
1502         PR other/15526
1503         * libgcc2.c (__mulvsi3): Fix overflow test.
1504
1505 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
1506
1507         PR c/14171
1508         * reg-stack.c (nan): Rename to ...
1509         (not_a_num): Here.
1510         (reg_to_stack): Rename nan to not_a_num.
1511         (subst_stack_regs_pat): Likewise.
1512         (convert_regs_entry): Likewise.
1513         (convert_regs_1): Likewise.
1514
1515         * tree-cfg.c (find_case_label_for_value): Replace call to
1516         simple_cst_equal with tree_int_cst_equal.
1517
1518 2004-05-19  Jeff Law <law@redhat.com>
1519
1520         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
1521         If the operand is for a use, then strip away the SSA_NAME, do not
1522         strip away the SSA_NAME for a set.  Never call release_ssa_name.
1523         (mark_def_sites): Appropriately pass additional argument to
1524         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
1525         then set the VDEF_RESULT to the VDEF_OP.
1526         (set_def_block): Strip away any SSA_NAME to get to the real
1527         underlying variable.
1528
1529         * tree-ssa-phiopt.c (value_replacement): Handle the case where
1530         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
1531         BB directly.
1532
1533 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1534
1535         PR c++/15463
1536         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
1537         result of inverse.
1538
1539         PR rtl-optimization/15274
1540         * loop-iv.c (determine_max_iter, shorten_into_mode,
1541         iv_number_of_iterations): Handle constants correctly.
1542         * rtl.h (get_mode_bounds): Declaration changed.
1543         * stor-layout.c (get_mode_bounds): Return a constant suitable for
1544         the target mode.
1545
1546         PR rtl-optimization/14692
1547         * loop-unswitch.c (may_unswitch_on): Try folding the result.
1548         (unswitch_single_loop): Work correctly when may_unswitch_on
1549         returns a folded constant.
1550
1551         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
1552         * simplify-rtx.c (simplify_const_relational_operation): Optimize
1553         comparisons with mode bounds.
1554
1555         * function.c (struct temp_slot): Add new field prev.
1556         (free_after_compilation, init_temp_slots): Free new fields.
1557         (cut_slot_from_list, insert_slot_to_list,
1558         temp_slots_at_level, max_slot_level, move_slot_to_level,
1559         make_slot_available): New functions.
1560         (assign_stack_temp_for_type, combine_temp_slots,
1561         find_temp_slot_from_address, preserve_temp_slots,
1562         preserve_rtl_expr_result, free_temp_slots,
1563         free_temps_for_rtl_expr, pop_temp_slots): Work with
1564         the new structure of lists.
1565         (mark_all_temps_used): Removed.
1566         * function.h (struct function): Field x_temp_slots
1567         replaced by x_used_temp_slots and x_avail_temp_slots.
1568         (temp_slots): Replaced by ...
1569         (used_temp_slots, avail_temp_slots): New.
1570         * tree.h (mark_all_temps_used): Declaration removed.
1571
1572         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
1573         simplify_using_assignment): Take the expression out of
1574         the expr_list wrapper.
1575
1576         * loop-iv.c (iv_number_of_iterations): Improve clasification of
1577         infinite loops.
1578
1579 2004-05-19  Roger Sayle  <roger@eyesopen.com>
1580
1581         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
1582         costs should be based on code size when optimizing for size.
1583
1584 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
1585
1586         * fold-const.c: Remove non-printable character 160.
1587
1588 2004-05-19  Nick Clifton  <nickc@redhat.com>
1589
1590         * doc/invoke.texi (ARM Options): Fix typo.
1591         Remove descrption of -mshort-load-bytes and
1592         -mno-short-load-bytes.
1593
1594         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
1595         missing parenthesis.
1596         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
1597         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
1598
1599 2004-05-19  Steven Bosscher  <stevenb@suse.de>
1600
1601         * expr.c (store_constructor): Build loop start and end by hand
1602         instead of via loop functions from stmt.c.
1603         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
1604         Remove the code to expand them.
1605
1606         * stmt.c (loop_stack): Remove this and everything related.
1607         (struct nesting, enum nesting_desc): Update.
1608         (expand_fixup): Likewise.
1609         (expand_loop_start, expand_start_loop_continue_elsewhere,
1610         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
1611         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
1612         expand_exit_loop_if_false, expand_exit_loop_top_cond,
1613         expand_exit_something): Remove.
1614         * tree.h: Remove prototypes.
1615
1616 2004-05-18  Mike Stump  <mrs@apple.com>
1617             Devang Patel  <dpatel@apple.com>
1618
1619         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
1620         if this label is for eh.
1621         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
1622         * config/darwin.c (darwin_emit_unwind_label): Likewise.
1623         * dwarf2out.c (output_call_frame_info): Likewise.
1624         * output.h (default_emit_unwind_label): Likewise.
1625         * target.h (unwind_label): Likewise.
1626         * varasm.c (default_emit_unwind_label): Likewise.
1627
1628         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
1629         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
1630         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
1631         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
1632         DEBUG_RANGES_SECTION): Define.
1633
1634 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
1635
1636         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
1637         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
1638         (cgraph_varpool_node):
1639         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
1640         (cgraph_function_possibly_inlined_p): Use the decl itself for
1641         the key, not DECL_ASSEMBLER_NAME.
1642         (change_decl_assembler_name): No need to muck with the hash tables.
1643         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
1644         Delete.
1645         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
1646         for the key, not DECL_ASSEMBLER_NAME.
1647         * cgraph.h: Remove prototypes of deleted functions.
1648         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
1649         (mark_decl_referenced): New function.
1650         * tree.h: Prototype mark_decl_referenced.
1651         * final.c (output_addr_const) <case SYMBOL_REF>: Call
1652         mark_decl_referenced before assemble_name.
1653         * c-decl.c (finish_decl): Use mark_decl_referenced.
1654
1655 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
1656             Jeff Law <law@redhat.com>
1657
1658         * tree-ssa-phiopt.c (abs_replacement): New function.
1659         (empty_block_p): New function extracted from...
1660         (candidate_bb_for_phi_optimization): Break out empty block test.
1661         (conditional_replacement): Use empty_block_p.
1662         (value_replacement): Similarly.
1663
1664         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
1665         * tree-ssa-phiopt.c: Include flags.h.
1666         (conditional_replacement): Remove argument names from prototype.
1667         Minor formatting and comment fixes.
1668         (tree_ssa_phiopt): If conditional_replacement returns false, then
1669         call value_replacement.
1670         (value_replacement): New function.
1671
1672 2004-05-18  Jeff Law  <law@redhat.com>
1673
1674         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
1675         from conditional_replacement.
1676         (candidate_bb_for_phi_optimization): Similarly.
1677         (conditional_replacement): Use replace_phi_with_stmt and
1678         candidate_bb_for_phi_optimization.
1679
1680         * tree-ssa-phiopt.c: Fix various formatting issues.
1681
1682 2004-05-18  Steven Bosscher  <stevenb@suse.de>
1683
1684         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1685         s390_expand_cmpmem): Do not use expand_start_loop and
1686         expand_end_loop, instead build the loop manually.
1687
1688 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
1689
1690         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
1691         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
1692
1693 2004-05-17  Jeff Law  <law@redhat.com>
1694
1695         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
1696         * flags.h (flag_delete_null_pointer_checks): Here.
1697         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
1698         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
1699         (add_phi_arg, remove_phi_arg_num): Similarly.
1700         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
1701         property into PHI nodes.
1702         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
1703         (record_equivalences_from_phis): If all PHI arguments are known to be
1704         nonzero, then the result must be nonzero as well.
1705         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
1706         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
1707         appropriately.  Walk the USE-DEF chains and propagate nonzero property
1708         as appropriate.
1709         * tree.h (PHI_ARG_NONZERO): Define.
1710         (phi_arg_d): Add nonzero flag.
1711
1712 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
1713
1714         * f: Entire directory removed
1715
1716         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
1717         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
1718         (g77_integer_type_node, g77_uinteger_type_node)
1719         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
1720         * c-common.c (c_common_nodes_and_builtins): Do not initialize
1721         the above set of variables.
1722
1723         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
1724         * doc/invoke.texi, doc/standards.texi: Remove cross-references
1725         to g77 manual.
1726
1727 2004-05-17  Steven Bosscher  <stevenb@suse.de>
1728
1729         PR tree-optimization/15438
1730         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
1731         attributed functions as pure or const.
1732
1733 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
1734
1735         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
1736         from source code with errors.
1737
1738 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
1739
1740         Enable tree browser for all front ends.
1741         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
1742         (BACKEND): ...to here.
1743
1744 2004-05-17  Jan Hubicka  <jh@suse.cz>
1745
1746         * i386.c (construct_container): Do not produce BLKmode registers.
1747         (classify_argument): Properly compute alignment of complex types.
1748
1749 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
1750
1751         PR target/15084
1752         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
1753         and renamed to movdi_insv_1_rex64.
1754         (insv): Support SImode for 32bit and DImode for 64bit.
1755
1756 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1757
1758         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
1759         (TARGET_SWITCHES): Remove debugg.
1760         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
1761         TARGET_64BIT.
1762         (subdi3): Replace the define_expand with a define_insn, the latter
1763         renamed from subdi3_internal_3.
1764         (negdi2): Likewise negdi2_internal_2.
1765         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
1766         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
1767         and associated define_splits.
1768         (adddi3_internal): Renamed from adddi3_internal_3.
1769         (ashldi3_internal): Likewise ashldi3_internal4.
1770         (ashrdi3_internal): Likewise ashrdi3_internal4.
1771         (lshrdi3_internal): Likewise lshrdi3_internal4.
1772
1773 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
1774
1775         * optabs.c (expand_unop): Try implementing negation using subtraction
1776         from zero.
1777
1778 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1779
1780         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
1781         SAR register.
1782
1783 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
1784
1785         PR target/10982
1786         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
1787         (ne_zeroextractsi_shifted): New pattern.
1788         (ite_ne_zeroextractsi): New pattern.
1789         (ite_ne_zeroextractsi_shifted): New pattern.
1790
1791 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1792
1793         * c-gimplify.c (c_genericize):
1794         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
1795         * c-parse.in <expr_no_commas>: Likewise.
1796         <if_prefix>: Likewise.
1797         <select_or_iter_stmt>: Likewise.
1798         * expr.c (expand_var, expand_expr_real_1): Likewise.
1799         * expr.h (expand_expr): Make it a static inline function.
1800         Move prototype for expand_expr_real up before this.
1801         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
1802         Likewise.
1803         * gimplify.c (gimple_boolify, gimplify_addr_expr,
1804         gimplify_asm_expr, gimplify_expr): Likewise.
1805         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
1806         dump_function_to_file): Likewise.
1807         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
1808         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
1809         * tree-into-ssa.c (dump_tree_ssa): Likewise.
1810         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
1811         Likewise.
1812         * tree-optimize.c (execute_one_pass): Likewise.
1813         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
1814         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
1815
1816         * objc/objc-act.c (objc_build_try_enter_fragment,
1817         objc_build_try_epilogue, objc_build_catch_stmt,
1818         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
1819         with lang_hooks.foo ().
1820
1821 2004-05-15  Roger Sayle  <roger@eyesopen.com>
1822
1823         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
1824         that simplify_builtin doesn't destructively modify its argument.
1825
1826 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1827
1828         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
1829         implementations for ARM and Thumb.
1830         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
1831
1832 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
1833
1834         * prefix.c (update_path): Replace PREFIX with KEY only
1835         when it matches a full directory name in PATH.
1836
1837 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
1838
1839         * arm.h (TARGET_APCS_32): Delete.
1840         (TARGET_MMU_TRAPS): Delete.
1841         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
1842         define __APCS_26__.
1843         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
1844         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
1845         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
1846         (prog_mode_type): Delete.
1847         (PROMOTE_MODE): Always promote unsigned for HImode.
1848         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
1849         (MASK_RETURN_ADDR): Simplify.
1850         * arm.c (arm_prgmode): Delete.
1851         (arm_override_options, arm_gen_rotated_half_load): Simplify.
1852         (print_multi_reg, output_return_instruction): Simplify.
1853         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
1854         (arm_return_addr): Simplify.
1855         * arm.md (prog_mode): Delete.
1856         (conds): Simplify.
1857         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
1858         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
1859         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
1860         (loadhi_shiftpredec): Delete.
1861         (peephole for post-increment on HImode load): Delete.
1862         * arm/crtn.asm: (FUNC_END): Simplify.
1863         * arm/lib1funcs.asm: Remove APCS-26 return macros.
1864         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
1865         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
1866         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
1867         MULTILIB_DEFAULTS as required.
1868         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
1869         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
1870         variables as required.
1871         * doc/invoke.texi (ARM Options): Remove obsolete flags.
1872
1873 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
1874
1875         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
1876         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
1877         count to 8 to handle n_reg > 2.
1878
1879 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1880
1881         * doc/extend.texi: Update WG14 URL.
1882
1883 2004-05-15  Steven Bosscher  <stevenb@suse.de>
1884
1885         * basic-block.h (life_analysis, delete_noop_moves):
1886         Update prototypes.
1887         * bt-load.c (branch_target_load_optimize): Don't take the
1888         insns stream as an argument.  Update the life_analysis calls.
1889         * combine.c (combine_instructions): Update delete_noop_moves
1890         calls.
1891         * flow.c (notice_stack_pointer_modification): Don't take the
1892         insns stream as an argument.  Work on the flow graph.
1893         (life_analysis): Likewise.
1894         (delete_noop_moves): Likewise.
1895         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
1896         (rest_of_handle_life): Update life_analysis call.
1897         (rest_of_compilation): Likewise, and also update
1898         branch_target_load_optimize call.
1899         * ra.c (reg_alloc): Update life_analysis call.
1900         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
1901         the insns stream as an argument.
1902         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
1903         call.
1904         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
1905         prototypes.
1906         * value-profile.c (branch_prob): Update life_analysis call.
1907         * web.c (web_main): Work on the CFG, not on the insns stream.
1908
1909         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
1910         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
1911         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
1912
1913 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
1914
1915         PR c/15444
1916         * c-format.c (avoid_dollar_number): New function.
1917         (check_format_info_main): Call avoid_dollar_number when operand
1918         numbers might occur but has_operand_number == 0.
1919
1920 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
1921
1922         * arm.md (all peephole2 patterns): Use predicates that validate
1923         register classes as appropriate.
1924
1925 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1926
1927         PR opt/14472
1928         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
1929         ignore type conversions that do not inhibit tail calling.
1930         (find_tail_calls): Likewise.
1931
1932 2004-05-14  Jeff Law  <law@redhat.com>
1933
1934         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
1935         bother marking bypassed virtuals for out-of-ssa.  Instead merge
1936         bypassed virtuals into vars_to_rename just before into-ssa pass.
1937
1938         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
1939         so that it picks up more opportunities to eliminate ABS expressions
1940         or turn them into negations.
1941
1942 2004-05-14  Steven Bosscher  <stevenb@suse.de>
1943
1944         * passes.c (rest_of_handle_null_pointer): Remove.
1945         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
1946         (rest_of_compilation): Likewise.
1947         * rtl.h (delete_null_pointer_checks): Remove prototype.
1948         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
1949         Remove declarations.
1950         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
1951         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
1952         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
1953         expr_reaches_here_p, computing_insn, def_reaches_here_p,
1954         can_disregard_other_sets, handle_avail_expr, classic_gcse,
1955         one_classic_gcse_pass, invalidate_nonnull_info,
1956         delete_null_pointer_checks_1, delete_null_pointer_checks,
1957         expr_reached_here_p_work): Remove.
1958         (gcse_main): Do not perform classic GCSE when optimizing for size.
1959         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
1960         are never used.
1961
1962 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
1963
1964         PR optimization/14466
1965         * tree-complex.c (make_temp): Remove.
1966         (gimplify_val): Replace make_temp with make_rename_temp
1967         and add NULL as the second argument.
1968         (expand_complex_div_wide): Likewise.
1969         * tree-dfa.c (make_rename_temp): New function.
1970         * tree-flow.h (make_rename_temp): Declare.
1971         * tree-sra.c (make_temp): Remove.
1972         (lookup_scalar): Replace make_temp with make_rename_temp.
1973         (create_scalar_copies): Likewise.
1974         * tree-ssa-phiopt.c (conditional_replacement): When we
1975         get non gimple create a temporary variable to hold the
1976         casted expression.
1977
1978 2004-05-14  Paul Brook  <paul@codesourcery.com>
1979
1980         * stor-layout.c (update_alignment_for_field): Use
1981         targetm.align_anon_bitfield.
1982         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
1983         (TARGET_INITIALIZER): Use it.
1984         * target.h (struct gcc_target): Add align_anon_bitfield.
1985         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
1986         (TARGET_ALIGN_ANON_BITFIELD): Define.
1987         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
1988
1989 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
1990
1991         * tree.def (documentation): Remove mention of class 'b'.
1992         (BLOCK): Now in class 'x'.
1993         * c-common.c (verify_tree): Remove case 'b'.
1994         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
1995         * calls.c (calls_function_1): Control cannot get past the switch
1996         when exp is a BLOCK.
1997         * print-tree.c (print_node): Move code for class 'b' to the class
1998         'c'/'x' switch, as case BLOCK.
1999         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2000         (unsafe_for_reeval, substitute_placeholder_in_expr)
2001         (stabilize_reference_1): Remove case 'b'.
2002         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2003         of something being 'b' to tests for TREE_CODE of something being
2004         BLOCK.
2005         * tree-ssa-operands.c (get_expr_operands): Likewise.
2006
2007 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2008
2009         * tree-gimple.c: Rename from tree-simple.c.
2010         * tree-gimple.h: Rename from tree-simple.h.
2011         * c-gimplify.c: Rename from c-simplify.c
2012         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2013         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2014         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2015         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2016         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2017         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2018         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2019         Update.
2020
2021 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2022
2023         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2024
2025 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2026
2027         * tree-ssa.c (delete_tree_ssa): XFREE
2028         bitmaps allocated with BITMAP_XMALLOC.
2029
2030         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2031         idfs_cache at the end of the function.
2032
2033         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2034         at the end of the function.
2035
2036         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2037         el at the end of the function.
2038
2039         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2040         bitmaps allocated with BITMAP_XMALLOC.
2041
2042         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2043         the end.
2044
2045         * final.c (shorten_branches): Free uid_shuid before
2046         reallocating it.
2047
2048         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2049
2050 2004-05-13  Jeff Law  <law@redhat.com>
2051
2052         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2053         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2054         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2055
2056         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2057         rather than iterating through the blocks testing each bit in
2058         livein to initialize the worklist.
2059         (mark_def_sites): Remove useless checks of KILLS for virtual
2060         operands.
2061
2062         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2063         new parameters for the statement and variable worklist as well
2064         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2065         worklist recording interesting variables in the variable worklist
2066         and bitmap.  Handle casts between integral and boolean types.
2067         (substitute_single_use_vars): Accept new parameters for the statement
2068         and variable worklist.  When a substitution is made add a new
2069         entry to the statement worklist.  Handle casts between integral
2070         and boolean types.
2071         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2072         worklists to children.  Iterate until the statement worklist
2073         is empty.
2074
2075 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2076
2077         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2078         the end of the block.
2079
2080         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2081         with BITMAP_XMALLOC.
2082
2083         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2084         with BITMAP_XMALLOC.
2085
2086         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2087         Free nonzero_vars at the end of the function.
2088
2089         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2090         need to generate code instead of a NOP_EXPR.
2091
2092 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2093
2094         * gcc.c (default_compilers): Fill out initializers for new Fortran
2095         entries.
2096
2097 2004-05-13  Paul Brook  <paul@codesourcery.com>
2098
2099         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2100
2101 2004-05-13  Paul Brook  <paul@codesourcery.com>
2102
2103         * config/arm/arm.c (arm_default_short_enums): New function.
2104         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2105
2106 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2107
2108         Merge from tree-ssa-20020619-branch.
2109
2110         * Makefile.in (reload1.o-warn): Add.
2111         (tree-alias-ander.o-warn): Add.
2112         (GMPLIBS): Define.
2113         (GMPINC): Define.
2114         (BANSHEELIB): Define.
2115         (BANSHEEINC): Define.
2116         (TREE_DUMP_H): Define.
2117         (TREE_SIMPLE_H): Define.
2118         (TREE_FLOW_H): Define.
2119         (LIBDEPS): Add BANSHEELIB.
2120         (INCLUDES): Add BANSHEEINC and GMPINC.
2121         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
2122         c-mudflap.o and c-pretty-print.o.
2123         (C_OBJS): Remove c-pretty-print.o.
2124         (OBJS-common): Remove sibcall.o.
2125         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
2126         tree-ssa.o, tree-optimize.o, tree-simple.o,
2127         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
2128         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
2129         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
2130         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
2131         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
2132         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
2133         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
2134         tree-tailcall.o, gimple-low.o, tree-iterator.o,
2135         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
2136         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
2137         tree-profile.o.
2138         (OBJC-archive): Add tree-nomudflap.o.
2139         (cc1): Add dependency on @TREEBROWSER@.
2140         (c-decl.o): Add dependency on TREE_DUMP_H.
2141         (c-dump.o): Likewise.
2142         (c-common.o): Add dependency on tree-iterator.h
2143         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
2144         (gtype-desc.o): Add dependency on TREE_FLOW_H.
2145         (tree.o): Add dependency on tree-iterator.h,
2146         BASIC_BLOCK_H and TREE_FLOW_H.
2147         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
2148         (langhooks.o): Add dependency on TREE_SIMPLE_H.
2149         (tree-alias-type.o, tree-alias-ander.o,
2150         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
2151         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
2152         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
2153         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
2154         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
2155         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
2156         tree-nested.o, tree-iterator.o, tree-dfa.o,
2157         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
2158         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
2159         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
2160         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
2161         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
2162         tree-sra.o, tree-complex.o, tree-profile.o,
2163         rtl-profile.o): New rules.
2164         (function.o): Add dependency on basic-block.h
2165         (expr.o): Add dependency on tree-iterator.h.
2166         (sibcall.o): Remove.
2167         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
2168         (cfg.o): Add dependency on TIMEVAR_H.
2169         (cfghooks.o): Add dependency on TREE_FLOW_H.
2170         (reg-stack.o): Add dependency on basic-block.h.
2171         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
2172         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
2173         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
2174         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
2175         tree-alias-type.h, tree-alias-common.h,
2176         tree-alias-type.c, tree-alias-common.c,
2177         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
2178         rtl-profile.c and tree-nested.c.
2179         (gt-tree-alias-common.h, gt-tree-mudflap.h,
2180         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
2181         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
2182         gt-tree-cfg.h, gt-tree-nested.h): New rules.
2183         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
2184         * basic-block.h: Include predict.h
2185         (struct edge_def): Add GTY marker.
2186         Change field 'insns' to be a union of tree and rtx.
2187         (EDGE_TRUE_VALUE): Define.
2188         (EDGE_FALSE_VALUE): Define.
2189         (EDGE_EXECUTABLE): Define.
2190         (struct bb_ann_d): Forward declare.
2191         (struct basic_block_def): Add GTY marker.
2192         Remove fields head_tree and end_tree.
2193         Add fields stmt_list, rbi and tree_annotations.
2194         (struct reorder_block_def): Define.
2195         (basic_block_info): Add GTY marker.
2196         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
2197         variables instead of macros.
2198         (flow_call_edges_add): Remove declaration.
2199         (make_eh_edge): Remove declaration.
2200         (brief_dump_cfg, find_edge, tree_predicted_by_p,
2201         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
2202         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
2203         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
2204         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
2205         (try_redirect_by_replacing_jump): Modfiy return type to
2206         edge instead of bool.
2207         * bb-reorder.c (copy_bb): Call duplicate_block
2208         instead of cfg_layout_duplicate_bb.
2209         (copy_bb_p): Call can_duplicate_block_p instead of
2210         cfg_layout_can_duplicate_bb_p.
2211         * bitmap.c (bitmap_first_set_bit): Abort if word
2212         wasn't found.
2213         (bitmap_last_set_bit): Likewise.
2214         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
2215         (DEF_FUNCTION_TYPE_3): Add.
2216         * builtins.c (c_strlen): Make extern.
2217         (builtin_save_expr): New.
2218         (expand_builtin_nonlocal_goto): New.
2219         (expand_builtin_constant_p): Remove.
2220         (expand_builtin_mathfn): Call builtin_save_expr instead
2221         of save_expr.
2222         (expand_builtin_mathfn_2): Likewise.
2223         (expand_builtin_strcmp): Likewise.
2224         (expand_builtin_strncmp): Likewise.
2225         (expand_builtin_strcat): Likewise.
2226         (fold_builtin_cabs): Likewise.
2227         (expand_builtin_alloca): Don't trigger if -fmudflap is
2228         given.
2229         (build_string_literal): Set TREE_INVARIANT on new node.
2230         (expand_builtin_profile_fun): New.
2231         (round_trampoline_addr): New.
2232         (expand_builtin_init_trampoline): New.
2233         (expand_builtin_adjust_trampoline): New.
2234         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
2235         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
2236         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
2237         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
2238         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
2239         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
2240         Handle.
2241         (fold_builtin_expect): New.
2242         (fold_builtin_isascii): Don't return non-constant results
2243         in GIMPLE form.
2244         (fold_builtin_isdigit): Likewise.
2245         (fold_builtin_1): New.
2246         (fold_builtin): Call it.
2247         (build_function_call_expr): Update call to build a new
2248         CALL_EXPR.
2249         (purge_builtin_constant_p): Remove.
2250         (simplify_builtin, simplify_builtin_memcmp,
2251         simplify_builtin_strcmp, simplify_builtin_strncmp,
2252         simplify_builtin_strpbrk, simplify_builtin_strstr,
2253         simplify_builtin_strchr, simplify_builtin_strrchr,
2254         simplify_builtin_strcat, simplify_builtin_strncat,
2255         simplify_builtin_strspn, simplify_builtin_strcspn,
2256         simplify_builtin_next_arg, simplify_builtin_va_start,
2257         simplify_builtin_sprintf): New.
2258         * builtins.def (BUILT_IN_STACK_ALLOC,
2259         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
2260         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
2261         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
2262         BUILT_IN_PROFILE_FUNC_EXIT): Define.
2263         * c-common.c: Include tree-iterator.h and hashtab.h.
2264         (lang_statement_code_p): Declare.
2265         (lang_gimplify_stmt): Declare.
2266         (fix_string_type): Set TREE_INVARIANT for value.
2267         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
2268         (c_type_hash): New.
2269         (c_common_get_alias_set): Handle multiple type nodes
2270         referring to "the same" type, currently for C90 only.
2271         (c_add_case_label): Use create_artificial_label.
2272         (finish_label_address_expr): Don't set TREE_CONSTANT on
2273         result.
2274         (c_expand_expr): Don't handle STMT_EXPR.
2275         (handle_alias_attribute): Marke aliased variables to be
2276         TREE_STATIC.
2277         (handle_nonnull_attribute): Initialize arg_num.
2278         (check_function_nonnull): Likewise.
2279         (c_walk_subtrees): New.
2280         (c_estimate_num_insns_1): Don't handle
2281         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
2282         (c_decl_uninit_1): Remove.
2283         (c_decl_uninit): Remove.
2284         (c_warn_unused_result): New.
2285         * c-common.def (ASM_STMT): Change number of operands
2286         to 4.
2287         (FILE_STMT): Remove.
2288         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
2289         Remove.
2290         (lang_gimplify_stmt): Add.
2291         (expand_stmt): Remove.
2292         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2293         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
2294         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
2295         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
2296         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
2297         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2298         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2299         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
2300         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
2301         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
2302         genrtl_compound_stmt, genrtl_asm_stmt,
2303         genrtl_cleanup_stmt, c_decl_uninit): Remove.
2304         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
2305         c_tree_chain_matters_p, c_warn_unused_result,
2306         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
2307         Declare.
2308         * c-convert.c (convert): Make convert work when
2309         converting to compatible types across translation unit.
2310         * c-decl.c: Include langhooks.h, tree-mudflap.h,
2311         tree-simple.h, diagnostic.h and tree-dump.h
2312         (merge_decls): Initialize oldtype to NULL.
2313         (finish_decl): Use DECL_HARD_REGISTER instead of
2314         DECL_C_HARD_REGISTER.
2315         (check_bitfield_type_and_width): Check for null
2316         lang_type_specific when check the precision of an enum.
2317         (grokdeclarator): Immediately layout an ARRAY_TYPE used
2318         in a pointer-to-array declarator.
2319         (finish_struct): Clear allocated struct lang_type.
2320         (finish_enum): Set enum_min and enum_max.  Set
2321         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
2322         not to the enumerators.
2323         (set_decl_nonlocal): New.
2324         (store_parm_decls): Use it via walk_tree.
2325         (c_finalize): New.
2326         (finish_function): When !targetm.have_ctors_dtors,
2327         record static constructors and destructors here...
2328         (c_expand_body_1): ... not here.
2329         (c_expand_decl): Rename from c_expand_decl_stmt.
2330         Handle all C-specific expansion semantics.
2331         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
2332         STMT_LINENO.
2333         * c-format.c (handle_format_arg_attribute): Initialize
2334         format_num.
2335         * c-lang.c: Include tree-inline.h
2336         (LANG_HOOKS_EXPAND_DECL,
2337         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2338         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
2339         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
2340         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
2341         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
2342         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
2343         (c_types_compatible_p): New.
2344         * c-mudflap.c: New file.
2345         * c-objc-common.c: Include tree-mudflap.h
2346         (start_cdtor, finish_cdtor): Collapse
2347         together into
2348         (build_cdtor): ...here.  Update to construct a complete tree
2349         for the function.  No need to call push_scope, pop_scope, or
2350         clear_last_expr, or set current_function_cannot_inline.
2351         (c_missing_noreturn_ok_p): Change prototype to return
2352         bool.
2353         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
2354         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
2355         opts.c.
2356         (c_common_post_options): Don't ever use rtl inlining.
2357         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
2358         * c-pragma.c (handle_pragma_redefine_extname): Define
2359         always.
2360         (init_pragma): Activate #pragma redefine_extname for mudflap.
2361         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
2362         (pp_c_initializer): Accept any type CONSTRUCTOR.
2363         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
2364         COMPLEX_TYPE.
2365         (decl_name_str): New local function.
2366         (pp_c_direct_declarator): Call it.
2367         (pp_c_primary_expression): Call it.
2368         (pp_c_id_expression): Call it.
2369         (pp_c_statement): Call it.
2370         (print_c_tree): Create new pp object.
2371         * c-pretty-print.h (pp_c_tree_decl_identifier,
2372         print_c_tree): Declare.
2373         * c-semantics.c: Include langhooks.h
2374         (lang_expand_stmt, lang_expand_decl_stmt,
2375         find_reachable_label_1, find_reachable_label,
2376         expand_unreachable_if_stmt, expand_unreachable_stmt,
2377         genrtl_do_stmt_1): Remove.
2378         (begin_stmt_tree): Don't check for changed filename.
2379         Call annotate_with_locus.
2380         (finish_stmt_tree): Don't set line for end of function.
2381         (build_stmt): Don't check type nodes for
2382         side effects.
2383         (build_stmt): Set TREE_SIDE_EFFECTS.
2384         Set EXPR_LOCUS instead of STMT_LINENO.
2385         (lang_expand_stmt, lang_expand_decl_stmt,
2386         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
2387         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
2388         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
2389         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
2390         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
2391         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
2392         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
2393         find_reachable_label_1, expand_unreachable_if_stmt,
2394         expand_unreachable_stmt): Remove.
2395         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
2396         * c-simplify.c: New file.
2397         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
2398         (struct lang_type): Add fields enum_min and enum_max.
2399         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
2400         (c_expand_decl, c_missing_noreturn_ok_p,
2401         c_types_compatible_p): Declare.
2402         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
2403         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
2404         (default_function_array_conversion): Rely on build to
2405         set TREE_CONSTANT.
2406         (parser_build_binary_op, pointer_diff): Likewise.
2407         (build_unary_op, build_binary_op): Likewise.
2408         (build_array_ref):
2409         (build_external_ref): Set TREE_INVARIANT.
2410         (build_c_cast, pop_init_level): Likewise.
2411         (process_init_element): Use ASM_VOLATILE_P.
2412         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
2413         (c_finish_case): Call c_do_switch_warnings.
2414         * c.opt (fdump-): Remove.
2415         * calls.c (try_to_integrate): Remove.
2416         (prepare_call_address): Replace fndecl arg with a
2417         precomputed static chain value.
2418         (emit_call_1): New argument for full call expr.
2419         (flags_from_decl_or_type): Call special_function_p.
2420         (initialize_argument_information): Add argument
2421         may_tailcall.
2422         (purge_reg_equiv_notes): New.
2423         (expand_call): Do not try to expand calls inline.
2424         (fixup_tail_calls): New.
2425         * cfg.c: Include timevar.h and ggc.h.
2426         (bb_pool, edge_pool): Remove.
2427         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
2428         (entry_exit_blocks): Remove.
2429         (rbi_pool): Declare.
2430         (init_flow): Do not create pools.
2431         Allocate entry/exit block.
2432         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
2433         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
2434         (unlink_block): Clear b->prev_bb and b->next_bb.
2435         (compact_blocks): Clear all slots of BASIC_BLOCK array.
2436         (dump_flow_info): Work on trees too.
2437         (dump_cfg_bb_info): New.
2438         (brief_dump_cfg): New.
2439         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
2440         (find_edge): New.
2441         * cfgbuild.c (rtl_make_eh_edge): Rename from
2442         make_eh_edge.  Update all users.
2443         (find_basic_blocks): Don't call VARRAY_FREE on
2444         basic_block_info.
2445         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
2446         and newpos2.
2447         (delete_unreachable_blocks): Return changed status.
2448         (merge_seq_blocks): New.
2449         * cfghooks.c: Include tree-flow.h
2450         (tree_register_cfg_hooks, ir_type): New.
2451         (redirect_edge_and_branch): Change return type to edge.
2452         (predict_edge, predicted_by_p, can_duplicate_block_p,
2453         duplicate_block, block_ends_with_call_p,
2454         block_ends_with_condjump_p, flow_call_edges_add): New.
2455         * cfghooks.h (redirect_edge_and_branch): Change return
2456         type to edge.
2457         (predict_edge, predicted_by_p, can_duplicate_block_p,
2458         duplicate_block, block_ends_with_call_p,
2459         block_ends_with_condjump_p, flow_call_edges_add): Declare.
2460         (redirect_edge_and_branch): Change return type to edge.
2461         (struct cfg_hooks): Add fields block_ends_with_call_p,
2462         block_ends_with_condjump_p, flow_call_edges_add,
2463         predict_edge, predicted_by_p, can_duplicate_block_p and
2464         duplicate_block.
2465         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
2466         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
2467         (fixup_reorder_chain): Use initialize_bb_rbi.
2468         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
2469         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
2470         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
2471         (insn_locators_initialize): Use new info about blocks.
2472         * cfglayout.h (typedef struct reorder_block_def): Moved to
2473         basic_block.h.
2474         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
2475         removed.
2476         * cfgloop.c: Include tree.h and tree-flow.h.
2477         * cfgloop.h (create_loop_notes): Declare.
2478         * cfgloopmanip.c (create_loop_notes): New.
2479         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
2480         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
2481         and duplicate_block fields.
2482         (create_basic_block_structure): Don't look at
2483         RTX_INTEGRATED_P.
2484         (rtl_block_ends_with_call_p): New.
2485         (rtl_block_ends_with_condjump_p): New.
2486         (need_fake_edge_p): Moved from cfganal.c.
2487         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
2488         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
2489         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
2490         (cfg_layout_rtl_cfg_hooks): Ditto.
2491         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
2492         functions to be reachable.
2493         * cgraphunit.c (decide_is_function_needed):
2494         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
2495         inline functions don't need to be output.
2496         (cgraph_assemble_pending_functions): Don't do anything
2497         special for nested functions.
2498         (cgraph_mark_functions_to_output): Likewise.
2499         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
2500         (cgraph_analyze_function): Use estimate_num_insns.
2501         (cgraph_mark_functions_to_output): Likewise.
2502         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
2503         (cgraph_expand_function): Allow functions to not be
2504         emitted.
2505         (cgraph_remove_unreachable_nodes):
2506         (cgraph_recursive_inlining_p): Simplify.
2507         (lookup_recursive_calls,
2508         cgraph_decide_recursive_inlining): New.
2509         (cgraph_decide_inlining_*): Update calls of
2510         cgraph_mark_inline.
2511         * combine.c (get_pos_from_mask): Always set *plen.
2512         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
2513         ftree-based-profiling, ftree-ccp, ftree-ch,
2514         ftree-combine-temps, ftree-copyrename, ftree-dce,
2515         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
2516         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
2517         ftree-lrs): Add.
2518         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
2519         Undefine.
2520         * configure.ac: Add --enable-tree-browser option.
2521         Add --with-libbanshee option.
2522         Add GMPLIBS and GMPINC.
2523         * configure: Regenerate.
2524         * coverage.c (tree_ctr_tables): New.
2525         (coverage_counter_alloc): Use it.
2526         (build_ctr_info_value): Ditto.
2527         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
2528         (tree_coverage_counter_ref): New.
2529         * coverage.h (coverage_counter_ref): Remove declaration.
2530         (rtl_coverage_counter_ref): Declare.
2531         (tree_coverage_counter_ref): Declare.
2532         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
2533         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
2534         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
2535         (struct cse_basic_block_data): Rename enum values to not
2536         conflict with profile.h; update all uses.
2537         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
2538         in comments.
2539         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
2540         * diagnostic.h (debug_output_buffer, dump_generic_node,
2541         print_generic_stmt, print_generic_stmt_indented,
2542         print_generic_expr, print_generic_decl,
2543         debug_generic_expr, debug_generic_stmt, debug_c_tree):
2544         Declare.
2545         * dominance.c: Cache immediate dominators.
2546         * domwalk.c: New file.
2547         * domwalk.h: New file.
2548         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
2549         (gen_subprogram_die): Generate a DIE for a named
2550         return value.
2551         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
2552         (add_location_or_const_value_attribute): Likewise.
2553         (add_bound_info): Likewise.
2554         (gen_decl_die): Likewise.
2555         * emit-rtl.c (maybe_set_first_label_num): New.
2556         (copy_most_rtx): Don't copy the integrated flag.
2557         Copy the new return_val flag.
2558         * et-forest.c (MAX_NODES): Define.
2559         (record_path_before_1): Abort if len is greater than
2560         MAX_NODES.
2561         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
2562         gen_eh_region_catch, gen_eh_region_allowed,
2563         gen_eh_region_must_not_throw, get_eh_region_number,
2564         get_eh_region_may_contain_throw, get_eh_region_tree_label,
2565         set_eh_region_tree_label, expand_resx_expr): New.
2566         (expand_eh_region_start, expand_start_catch): Use them.
2567         (expand_end_catch): Tidy.
2568         (note_eh_region_may_contain_throw): Take region argument.
2569         (note_current_region_may_contain_throw): New.
2570         (get_exception_filter): Export.
2571         (collect_eh_region_array): Export.
2572         (remove_unreachable_regions): Check ERT_TRY based on reachability
2573         of catches, not reachability of continue_label.  Never remove
2574         ERT_MUST_NOT_THROW regions.
2575         (collect_rtl_labels_from_trees): New.
2576         (convert_from_eh_region_ranges): Use it.
2577         (connect_post_landing_pads): Handle dying cleanups.
2578         (struct reachable_info): Add callback data.
2579         (add_reachable_handler): Invoke the callback.
2580         (foreach_reachable_handler): New.
2581         (reachable_handlers): Use it.
2582         (arh_to_landing_pad, arh_to_label): New.
2583         (can_throw_internal_1): Split out from can_throw_internal.
2584         (can_throw_external_1): Similarly.
2585         * except.h: Update.
2586         * explow.c (emit_stack_save): Remove savearea mode check.
2587         (update_nonlocal_goto_save_area): New.
2588         (allocate_dynamic_stack_space): Use it.
2589         (probe_stack_range): Never emit loop notes.
2590         * expmed.c (extract_fixed_bit_field): Always propagate the
2591         target for the shift if it is a REG.
2592         * expr.c: Include tree-iterator.h
2593         (is_zeros_p): Remove.
2594         (categorize_ctor_elements_1, categorize_ctor_elements): New.
2595         (count_type_elements): New.
2596         (mostly_zeros_p): Use them.
2597         (expr_wfl_stack): Remove.
2598         (convert_move): Do nothing if to and from are the same.
2599         (emit_block_move_via_loop): Don't emit LOOP notes.
2600         (emit_move_insn): Don't handle CONSTANT_P_RTX.
2601         (emit_move_insn_1): Don't generate inline warnings.
2602         (expand_vars, expand_var): Split from ...
2603         (expand_expr_1): ... here.
2604         (expand_expr_real, expand_expr_real_1):  Use new macros
2605         EXPR_LOCATION and EXPR_HAS_LOCATION.
2606         * expr.h (simplify_builtin_fputs,
2607         simplify_builtin_strcpy, simplify_builtin_strncpy,
2608         expand_var, fixup_tail_calls,
2609         update_nonlocal_goto_save_area): Declare.
2610         (lookup_static_chain, expand_inline_function,
2611         mark_seen_cases): Remove.
2612         (prepare_call_address): Change type of 2nd argument to
2613         rtx.
2614         * final.c (profile_function): Update static chain test.
2615         (final): Don't look at RTX_INTEGRATED_P.
2616         * flags.h (flag_mudflap, flag_mudflap_threads,
2617         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
2618         flag_tree_dce, flag_tree_combine_temps,
2619         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
2620         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
2621         flag_tree_points_to): Declare.
2622         (enum pta_type): Declare.
2623         * flow.c (lang_missing_noreturn_ok_p): Remove.
2624         (check_function_return_warnings): Remove.
2625         (update_life_info): Update comments.
2626         (free_basic_block_vars): Don't call VARRAY_FREE for
2627         basic_block_info.
2628         (regno_uninitialized): Remove.
2629         * fold-const.c (int_const_binop): Make extern.
2630         (non_lvalue): Rely on build to set TREE_CONSTANT.
2631         (operand_equal_p): Replace only_const argument with
2632         flags.  Allow pure functions if OEP_PURE_SAME.
2633         (fold): Use OEP_ONLY_CONST.
2634         (invert_truthvalue) <NOP_EXPR> Break if argument is of
2635         boolean type.
2636         (fold_relational_hi_lo,
2637         nondestructive_fold_binary_to_constant,
2638         nondestructive_fold_unary_to_constant,
2639         fold_read_from_constant_string): New.
2640         * function.c (struct function): Remove calls_constant_p.
2641         (current_function_calls_constant_p): Remove.
2642         (inline_function_decl): Remove.
2643         (put_var_into_stack): Don't use it.
2644         (fix_lexical_addr): Likewise.
2645         (inline_function_decl): Remove extern declaration.
2646         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
2647         (trampolines_created): Move to varasm.c.
2648         (free_after_compilation): Update for removed fields.
2649         (allocate_struct_function): Likewise.
2650         (delete_handlers, lookup_static_chain): Remove.
2651         (fix_lexical_addr): Don't consider non-local variable refs.
2652         (trampoline_address): Remove.
2653         (round_trampoline_addr): Move to builtins.c.
2654         (adjust_trampoline_addr): Remove.
2655         (expand_function_start): Update for changes to static chain
2656         and nonlocal goto handling.
2657         (initial_trampoline): Move to varasm.c.
2658         (expand_function_end): Don't build trampolines or kill
2659         unreferenced nonlocal goto labels.
2660         (free_after_compilation): Don't set it.
2661         (expand_function_end): Likewise.
2662         (setjmp_vars_warning): Rename from
2663         uninitialized_vars_warning, remove uninitialized vars warning.
2664         (uninitialized_vars_warning): Remove old comment
2665         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
2666         and do not call the langhook.
2667         (expand_function_start, expand_function_end): Don't do
2668         function instrumentation here.
2669         (clear_block_marks): Rename from reorder_blocks_0, export.
2670         (blocks_nreverse): Export.
2671         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
2672         of rtl.
2673         (reset_block_changes, record_block_change, finalize_block_changes,
2674         check_block_change, free_block_changes): New functions.
2675         (assign_parms): Setting of current_function_stdarg
2676         moved ...
2677         (allocate_struct_function): ... here.
2678         * function.h (struct function): Remove x_nonlocal_labels,
2679         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
2680         x_context_display, x_trampoline_list, needs_context.
2681         Add static_chain_decl, nonlocal_goto_save_area.
2682         (struct function): Remove x_clobber_return_insn.
2683         Add tail_call_emit field, last_label_uid,
2684         unexpanded_var_list, dont_emit_block_notes,
2685         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
2686         (clear_block_marks): Declare.
2687         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
2688         (mfwrap_spec, mflib_spec): Declare.
2689         (cpp_unique_options, cc1_options): Ditto.
2690         (default_compilers): Add .F and .f90.
2691         (static_specs): Add mfwrap and mflib.
2692         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
2693         CONSTANT_RTX_P.
2694         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
2695         Update to match insns field in struct edge_def.
2696         * gdbinit.in (pgs, pge): Define.
2697         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
2698         instead of the integrated flag.
2699         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
2700         * gengtype-yacc.y (bitfieldlen): Add empty action.
2701         (struct_fields): Accept unnamed bitfields.
2702         (bitfieldlen): Split from ...
2703         (bitfieldopt): ... here.
2704         * gengtype.c (ifiles): Add tree-alias-type.h and
2705         tree-flow.h.
2706         * genrecog.c (validate_pattern): Do not handle
2707         CONSTANT_P_RTX.
2708         * gimple-low.c: New file.
2709         * gimplify.c: New file.
2710         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
2711         (restore_line_notes): Do not set RTX_INTEGRATED_P.
2712         * ifcvt.c (dead_or_predicable): Initialize local variable
2713         'earliest'.
2714         * input.h (expr_wfl_stack): Remove.
2715         * integrate.c (INTEGRATE_THRESHOLD): Remove.
2716         (setup_initial_hard_reg_value_integration): Likewise.
2717         (initialize_for_inline): Likewise.
2718         (note_modified_parmregs): Likewise.
2719         (integrate_parm_decls): Likewise.
2720         (process_reg_param): Likewise.
2721         (save_parm_insns): Likewise.
2722         (copy_insn_list): Likewise.
2723         (copy_insn_notes): Likewise.
2724         (compare_blocks): Likewise.
2725         (find_block): Likewise.
2726         (inlining): Likewise.
2727         (function_cannot_inline_p): Likewise.
2728         (parmdecl_map): Likewise.
2729         (in_nonparam_insns): Likewise.
2730         (save_for_inline): Likewise.
2731         (FIXED_BASE_PLUS): Likewise.
2732         (expand_inline_function): Likewise.
2733         (copy_rtx_and_substitute): Don't look at map->integrating,
2734         map->inline_target, and inlining, since we are never copying
2735         for integrating.
2736         Don't abort on RTX_INTEGRATED_P.
2737         (old_fun): Remove.
2738         (output_inline_function): Remove.
2739         * integrate.h (struct inline_map): Remove fields integrating,
2740         block_map, leaf_reg_map, inline_target, and local_return_label.
2741         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
2742         copy_loop_headers, never_reached_warning): Removed.
2743         (any_uncondjump_p): Reject nonlocal goto.
2744         * langhooks-def.h (lhd_types_compatible_p,
2745         lhd_expand_decl, lhd_gimplify_expr): Declare.
2746         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2747         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2748         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2749         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
2750         LANG_HOOKS_GIMPLIFY_EXPR,
2751         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
2752         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
2753         LANG_HOOKS_GIMPLIFY_EXPR,
2754         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
2755         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
2756         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
2757         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
2758         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
2759         LANG_HOOKS_DECL_UNINIT,
2760         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
2761         * langhooks.c: Include tree-simple.h.
2762         (lhd_expand_decl): New.
2763         (lhd_types_compatible_p): New.
2764         (lhd_decl_uninit): Remove.
2765         (lhd_gimplify_expr): New.
2766         * langhooks.h (struct lang_hooks_for_rtl_expansion):
2767         Remove.
2768         (struct lang_hooks_for_functions): Add field
2769         missing_noreturn_ok_p.
2770         (struct lang_hooks): Add field expand_decl,
2771         types_compatible_p, gimplify_expr and
2772         gimple_before_inlining.
2773         Remove fields decl_uninit and rtl_expand
2774         * opts.c (decode_options): Set flag_tree_ccp,
2775         flag_tree_dce, flag_tree_dom, flag_tree_dse,
2776         flag_tree_pre, flag_tree_ter,
2777         flag_tree_live_range_split, flag_tree_sra,
2778         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
2779         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
2780         OPT_fmudflapth, OPT_fmudflapir,
2781         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
2782         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
2783         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
2784         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
2785         OPT_ftree_points_to_ and OPT_ftree_pre.
2786         * output.h (regno_uninitialized, find_basic_blocks,
2787         cleanup_cfg, delete_unreachable_blocks,
2788         check_function_return_warnings): Remove.
2789         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
2790         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
2791         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
2792         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
2793         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
2794         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
2795         Define.
2796         * passes.c (rest_of_decl_compilation):
2797         (rest_of_handle_sibling_calls): Remove.
2798         (rest_of_handle_inlining): Remove.
2799         (rest_of_handle_gcse): Do not run
2800         purge_builtin_constant_p.
2801         (rest_of_compilation): Update.
2802         Do not call copy_loop_headers.
2803         Do rtl-based profiling only when
2804         !flag_tree_based_profiling.  Register rtl-based profiling
2805         hooks.
2806         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
2807         (predicted_by_p): Rename to ...
2808         (rtl_predicted_by_p): .. this one; make global
2809         (tree_predicted_by_p): New.
2810         (dump_prediction): Add FILE argument.
2811         (predict_edge): Rename to ...
2812         (rtl_predict_edge): .. this one.
2813         (tree_predict_edge): New.
2814         (combine_predictions_for_insn): Update calls of predict_edge.
2815         (predict_loops): Break out from ...
2816         (estimate_probability): ... here; update comments; move updating
2817         of unknown probabilities from ...
2818         (estimate_bb_frequencies): ... here.
2819         (combine_predictions_for_bb): New.
2820         (tree_predict_by_opcode): New.
2821         (tree_estimate_probability): New.
2822         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
2823         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
2824         * predict.h: Add include guard.
2825         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
2826         * pretty-print.c (pp_write_text_to_stream): Make extern.
2827         * pretty-print.h (pp_write_text_to_stream): Declare.
2828         * print-rtl.c (print_rtx): Don't print the integrated flag.
2829         Print the return_val flag.
2830         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
2831         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
2832         Remove support for EXPR_WITH_FILE_LOCATION nodes.
2833         (print_node): Print TREE_INVARIANT and TREE_VISITED.
2834         * profile.c: Include cfghooks.h, tree-flow.h.
2835         (profile_hooks): New.
2836         (profile_dump_file): New.
2837         (instrument_edges): Use hooks instead of RTL-specific code.
2838         (instrument_values): Ditto.
2839         (get_exec_counts): Ditto.
2840         (compute_branch_probabilities): Ditto.
2841         (compute_value_histograms): Ditto.
2842         (branch_prob): Ditto.
2843         (find_spanning_tree): Ditto.
2844         (end_branch_prob): Ditto.
2845         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
2846         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
2847         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
2848         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
2849         (tree_register_profile_hooks): New.
2850         (rtl_register_profile_hooks): New.
2851         * ra-rewrite.c (rewrite_program): Clear variable info.
2852         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
2853         * regs.h: Add include guards.
2854         * reload.c (decompose): Clear val using memset.
2855         * rtl.def (CONSTANT_P_RTX): Remove.
2856         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
2857         (copy_loop_headers): Remove.
2858         (struct rtx_def): Replace the integrated flag with the
2859         return_val flag.
2860         (maybe_set_first_label_num): Declare.
2861         (init_branch_prob): Move declaration to value-prof.h.
2862         (end_branch_prob): Ditto.
2863         (branch_prob): Ditto.
2864         (never_reached_warning): Don't declare it.
2865         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
2866         (hoist_insn_to_edge): Update to match field insns in
2867         struct edge_def.
2868         * sbitmap.c (sbitmap_realloc): New.
2869         * sbitmap.h (sbitmap_realloc): Declare.
2870         * sibcall.c: Remove file.
2871         * simplify-rtx.c (simplify_rtx): Do not handle
2872         CONSTANT_P_RTX.
2873         * stmt.c (parse_output_constraint): Don't warn for read-write
2874         memory operand.
2875         (tail_recursion_args): Use types_compatible_p langhook.
2876         (force_label_rtx): Don't look at inline_function_decl.
2877         (label_rtx): Set LABEL_PRESERVE_P appropriately.
2878         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
2879         (declare_nonlocal_label): Remove.
2880         (expand_goto): Don't handle nonlocal gotos.
2881         (expand_nl_handler_label): Remove.
2882         (expand_nl_goto_receivers): Remove.
2883         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
2884         update_nonlocal_goto_save_area.
2885         (expand_expr_stmt_value): Check TREE_NO_WARNING.
2886         (warn_if_unused_value): Likewise.
2887         (expand_start_loop, expand_loop_continue_here,
2888         expand_end_loop): Don't create loop notes.
2889         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
2890         mark_seen_cases, check_for_full_enumeration_handling): Remove.
2891         (expand_end_case_type): Don't do warn_switch handling.
2892         (pushcase, pushcase_range) Update add_case_node calls.
2893         (add_case_node): Add dont_expand_label argument.
2894         (same_case_target_p): Don't search rtl.
2895         (expand_start_bindings_and_block, expand_end_bindings):
2896         Don't emit block notes when dont_emit_block_notes.
2897         (using_eh_for_cleanups_p): Export.
2898         (expand_return): Allow any typed rhs.
2899         (expand_stack_alloc): New.
2900         (expand_stack_save, expand_stack_restore): New.
2901         (containing_blocks_have_cleanups_or_stack_level): New
2902         function.
2903         (asm_op_is_mem_input): New fn.
2904         (expand_asm_expr): New fn.
2905         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
2906         nodes.
2907         * stor-layout.c (layout_type): Just return if type is
2908         error_mark_node.
2909         (update_alignment_for_field): Export.
2910         (variable_size): We don't care about global_bindings_p if
2911         the frontend doesn't want a list of the expressions.
2912         * system.h: Poison INTEGRATE_THRESHOLD.
2913         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
2914         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
2915         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
2916         TV_TREE_SSA_OTHER, TV_TREE_OPS,
2917         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
2918         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
2919         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
2920         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
2921         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
2922         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
2923         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
2924         TV_CONTROL_DEPENDENCES): Define.
2925         * toplev.c: Include tree-alias-common.h
2926         (current_file_decl, flag_mudflap, flag_mudflap_threads,
2927         flag_mudflap_ignore_reads, flag_tree_based_profiling,
2928         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
2929         flag_tree_dce, flag_tree_ch, flag_tree_sra,
2930         flag_tree_combine_temps, flag_tree_ter,
2931         flag_tree_live_range_split, flag_tree_dom,
2932         flag_tree_copyrename, flag_tree_dse): Declare.
2933         (f_options): Add tree-based-profiling, tree-gvn,
2934         tree-pre, tree-ccp, tree-dce,
2935         tree-dominator-opts, tree-copyrename, tree-dse,
2936         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
2937         (wrapup_global_declarations): Don't output nested inlined functions.
2938         (general_init): Call init_tree_optimization_passes.
2939         (process_options): Sorry for -ftree-based-profiling plus
2940         -ftest-coverage or -fprofile-values.
2941         * toplev.h (init_tree_optimization_passes,
2942         flag_tree_based_profiling): Declare.
2943         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
2944         * tree-alias-ander.c: New file.
2945         * tree-alias-ander.h: New file.
2946         * tree-alias-common.c: New file.
2947         * tree-alias-common.h: New file.
2948         * tree-alias-type.c: New file.
2949         * tree-alias-type.h: New file.
2950         * tree-browser.c: New file.
2951         * tree-browser.def: New file.
2952         * tree-cfg.c: New file.
2953         * tree-complex.c: New file.
2954         * tree-dfa.c: New file.
2955         * tree-dump.c (dump_enable_all): New.
2956         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
2957         (dump_node): Remove const from field suffix and swtch.
2958         (dump_files): Add null entry, .generic, .nested, .vcg,
2959         .xml and a match-all entry.
2960         (extra_dump_files, extra_dump_files_in_use,
2961         extra_dump_files_alloced): Declare
2962         (dump_option_value_info): Add raw, details, stats,
2963         blocks, vops, lineno, uid and all.
2964         (dump_register): New.
2965         (get_dump_file_info): New.
2966         (dump_begin): Call it.
2967         Do nothing for TDI_none.
2968         (dump_begin): Include phase number in dump filename.
2969         (dump_enable_all): New.
2970         (dump_switch_p_1): Split out from dump_switch_p.
2971         (dump_switch_p): Handle extra_dump_files.
2972         Start our scan at TDI_none + 1.
2973         If -fdump-tree-all was given, call dump_enable_all.
2974         * tree-dump.h: Include splay-tree.h.
2975         (dump_function, dump_function_to_file, dump_register):
2976         Declare.
2977         * tree-eh.c: New file.
2978         * tree-flow-inline.h: New file.
2979         * tree-flow.h: New file.
2980         * tree-inline.c: Re-write to handle inlining on GIMPLE.
2981         * tree-inline.h (walk_tree,
2982         walk_tree_without_duplicates): Move to tree.h.
2983         (estimate_num_insns): Declare.
2984         * tree-into-ssa.c: New file.
2985         * tree-iterator.c: New file.
2986         * tree-iterator.h: New file.
2987         * tree-mudflap.c: New file.
2988         * tree-mudflap.h: New file.
2989         * tree-nested.c: New file.
2990         * tree-nomudflap.c: New file.
2991         * tree-nrv.c: New file.
2992         * tree-optimize.c (dump_flags, vars_to_rename,
2993         in_gimple_form, all_passes, pass_gimple,
2994         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
2995         (execute_gimple, execute_rebuild_bind,
2996         gate_all_optimizations, execute_del_cfg,
2997         register_one_dump_file, register_dump_files, dup_pass_1,
2998         init_tree_optimization_passes, execute_todo,
2999         execute_one_pass, execute_pass_list): New.
3000         (clear_decl_rtl): Remove.
3001         (tree_rest_of_compilation): Update to use tree
3002         optimizers.
3003         * tree-outof-ssa.c: New file.
3004         * tree-pass.h: New file.
3005         * tree-phinodes.c: New file.
3006         * tree-pretty-print.c: New file.
3007         * tree-profile.c: New file.
3008         * tree-simple.c: New file.
3009         * tree-simple.h: New file.
3010         * tree-sra.c: New file.
3011         * tree-ssa-alias.c: New file.
3012         * tree-ssa-ccp.c: New file.
3013         * tree-ssa-copy.c: New file.
3014         * tree-ssa-copyrename.c: New file.
3015         * tree-ssa-dce.c: New file.
3016         * tree-ssa-dom.c: New file.
3017         * tree-ssa-dse.c: New file.
3018         * tree-ssa-forwprop.c: New file.
3019         * tree-ssa-live.c: New file.
3020         * tree-ssa-live.h: New file.
3021         * tree-ssa-loop.c: New file.
3022         * tree-ssa-operands.c: New file.
3023         * tree-ssa-operands.h: New file.
3024         * tree-ssa-phiopt.c: New file.
3025         * tree-ssa-pre.c: New file.
3026         * tree-ssa.c: New file.
3027         * tree-ssanames.c: New file.
3028         * tree-tailcall.c: New file.
3029         * tree.c: Include tree-iterator.h, basic-block.h and
3030         tree-flow.h.
3031         (tree_node_kind): Add phi_nodes and ssa names.
3032         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3033         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3034         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3035         <'c'> Set TREE_INVARIANT.
3036         (copy_node_stat): Abort if trying to copy a
3037         STATEMENT_LIST.
3038         Clear TREE_VISITED.
3039         Clear annotation field.
3040         (build_constructor): Copy TREE_INVARIANT from vals.
3041         Don't clear TREE_CONSTANT.
3042         (expr_first, expr_last, expr_length): Remove.
3043         (staticp): Pass unknown component references to the language.
3044         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3045         (skip_simple_arithmetic): Likewise.
3046         (stabilize_reference_1): Likewise.
3047         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3048         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3049         STATEMENT_LIST.
3050         (lhd_unsave_expr_now): Remove.
3051         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3052         (recompute_tree_invarant_for_addr_expr): New.
3053         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3054         Call recompute_tree_invarant_for_addr_expr.
3055         Set TREE_INVARIANT accordingly.
3056         (build2_stat): Don't handle CALL_EXPR.
3057         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3058         (build_expr_wfl): Remove.
3059         (annotate_with_file_line, annotate_with_locus): New.
3060         (simple_cst_equal): Call simple_cst_list_equal to compare
3061         CONSTRUCTOR_ELTS pointers.
3062         (iterative_hash_expr): Don't hash types associated
3063         with conversions.  Instead hash on the signedness of the
3064         toplevel object and the operand of the conversion.
3065         (dump_tree_statistics): Call ssanames_print_statistics
3066         and phinodes_print_statistics.
3067         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3068         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3069         needs_to_live_in_memory): New.
3070         (initializer_zerop): Handle VECTOR_CST.  Don't check
3071         AGGREGATE_TYPE_P for CONSTRUCTOR.
3072         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3073         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3074         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3075         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3076         (CALL_EXPR): Add another operand.
3077         (EXPR_WITH_FILE_LOCATION): Remove.
3078         (SWITCH_EXPR): Add another operand.
3079         * tree.h: Update various comments.
3080         (union tree_ann_d): Forward declare.
3081         (struct tree_common): Add fields nowarning_flag,
3082         invariant_flag and visited.
3083         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3084         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3085         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3086         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3087         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3088         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3089         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3090         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3091         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3092         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3093         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3094         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3095         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3096         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3097         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3098         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3099         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3100         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3101         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3102         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3103         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3104         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3105         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3106         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3107         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3108         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3109         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3110         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3111         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3112         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3113         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3114         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3115         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3116         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
3117         TDF_UID,): Define.
3118         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
3119         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
3120         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
3121         EXPR_WFL_SET_LINECOL): Remove.
3122         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
3123         make_phi_node, init_phinodes, fini_phinodes,
3124         release_phi_node, phinodes_print_statistics,
3125         init_ssanames, fini_ssanames, make_ssa_name,
3126         release_ssa_name, ssanames_print_statistics,
3127         annotate_with_file_line, build_empty_stmt,
3128         annotate_with_locus, expr_only, categorize_ctor_elements,
3129         count_type_elements, add_var_to_bind_expr, is_essa_node,
3130         expand_stack_alloc, expand_stack_save,
3131         expand_stack_restore, add_case_node, operand_equal_p,
3132         nondestructive_fold_unary_to_constant,
3133         nondestructive_fold_binary_to_constant,
3134         fold_read_from_constant_string, int_const_binop,
3135         strip_float_extensions, simplify_builtin, c_strlen,
3136         recompute_tree_invarant_for_addr_expr,
3137         needs_to_live_in_memory, make_vector,
3138         setjmp_vars_warning, update_alignment_for_field,
3139         expand_asm_expr, asm_op_is_mem_input,
3140         containing_blocks_have_cleanups_or_stack_level,
3141         create_artificial_label, gimplify_function_tree,
3142         get_name, unshare_expr, walk_tree,
3143         walk_tree_without_duplicates, in_gimple_form): Declare.
3144         (struct tree_exp): Add fields locus and block.
3145         (struct tree_ssa_name, struct edge_def, struct
3146         tree_phi_node, struct tree_eref_common, struct
3147         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
3148         union alias_var_def, struct tree_statement_list_node,
3149         struct tree_statement_list, enum operand_equal_flag): Declare.
3150         (enum tree_node_structure_enum): Add TS_SSA_NAME,
3151         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
3152         TS_STATEMENT_LIST.
3153         (union tree_node): Add fields ssa_name, phi, eref, ephi,
3154         euse and stmt_list.
3155         (function_cannot_inline_p, uninitialized_vars_warning,
3156         save_for_inline, output_inline_function, all_cases_count,
3157         check_for_full_enumeration_handling,
3158         declare_nonlocal_label): Remove.
3159         (enum tree_dump_index): Add TDI_none, TDI_tu,
3160         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
3161         * unroll.c (unroll_loop): Don't clear map->inline_target.
3162         * unwind-sjlj.c (uw_install_context): Make a proper static inline
3163         function.
3164         * value-prof.c (value_prof_hooks): New.
3165         (find_values_to_profile): Rename to rtl_find_values_to_profile.
3166         Move rtl-specific bits in from branch_prob.
3167         (value_profile_transformations): Rename to
3168         rtl_value_profile_transformations.
3169         (struct value_prof_hooks): New.
3170         (rtl_value_prof_hooks): New.
3171         (rtl_register_value_prof_hooks): New.
3172         (tree_find_values_to_profile): New stub.
3173         (tree_value_profile_transformations): New stub.
3174         (tree_value_prof_hooks): New stub.
3175         (tree_register_value_prof_hooks): New stub.
3176         (find_values_to_profile): New.
3177         (value_profile_transformations): New.
3178         * value-prof.h: Add multiple inclusion guard.
3179         (struct histogram_value): Change rtx fields to void *.
3180         (rtl_register_value_prof_hooks): New declaration.
3181         (tree_register_value_prof_hooks): New declaration.
3182         (find_values_to_profile): New declaration.
3183         (free_profiled_values): New declaration.
3184         (value_profile_transformations): New declaration.
3185         (struct profile_hooks): New declaration.
3186         (init_branch_prob): Declaration moved from rtl.h.
3187         (branch_prob): Declaration moved from rtl.h.
3188         (end_branch_prob): Declaration mooved from rtl.h.
3189         (tree_register_profile_hooks): New declaration.
3190         (rtl_register_profile_hooks): New declaration.
3191         (tree_profile_hooks): New declaration.
3192         (rtl_profile_hooks): New declaration.
3193         * varasm.c: Include tree-mudflap.h.
3194         (TRAMPOLINE_ALIGNMENT): Remove.
3195         (make_decl_rtl): Call mudflap_enqueue_decl.
3196         (assemble_static_space):
3197         (assemble_trampoline_template): Set and return
3198         TRAMPOLINE_ALIGNMENT.
3199         * varray.c (element): Add GENERIC_PTR_NOGC entry.
3200         Add entry for 'tree *'.
3201         Add entry for struct edge_def *.
3202         (varray_copy): New.
3203         * varray.h (enum varray_data_enum): Add
3204         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
3205         VARRAY_DATA_TREE_PTR.
3206         (union varray_data_tag): Corresponding changes.
3207         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
3208         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
3209         VARRAY_EDGE, VARRAY_TREE_PTR,
3210         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
3211         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
3212         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
3213
3214         * config/*/*: Various updates for changed macros, tree
3215         codes, etc.  Check ChangeLog.tree-ssa.
3216
3217         * doc/cfg.texi: New file.
3218         * doc/tree-ssa.texi: New file.
3219         * doc/c-tree.texi: Document new codes.
3220         * doc/gccint.texi: Include new files.
3221         * doc/install.texi: Document new features.
3222         * doc/invoke.texi: Document new switches.
3223         * doc/passes.texi: Document new passes.
3224         * doc/rtl.texi: Update changed RTL codes.
3225         * doc/sourcebuild.texi: Update build instructions.
3226         * doc/standards.texi: Document Fortran changes.
3227         * doc/tm.texi: Update.
3228
3229 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
3230
3231         Replace several arrays with a struct of arrays.
3232         * combine.c (struct reg_stat): New.
3233         (init_reg_last_arrays): Renamed to...
3234         (init_reg_last): ...this.  Callers adjusted.
3235         (reg_stat): New.
3236         (combine_instructions): Allocate it and use it.
3237         (reg_last_death, reg_last_set, reg_last_set_value,
3238         reg_last_set_label, reg_last_set_table_tick,
3239         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
3240         reg_last_set_mode, reg_last_set_nonzero_bits,
3241         reg_last_set_sign_bit_copies): Replace throughout
3242         with items of reg_stat.
3243
3244 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3245
3246         PR optimization/15100
3247         * combine.c (distribute_notes): Don't create a dangling
3248         REG_LIBCALL/REG_RETVAL note.
3249
3250 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
3251
3252         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
3253
3254         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
3255         negv2si2.
3256
3257 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
3258
3259         * doc/md.texi (Standard Names): Fix typo in vec_init description.
3260
3261 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
3262
3263         * doc/gty.texi (GTY Options): Clarify example.
3264
3265 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
3266
3267         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
3268         Add const qualifier to altivec vector type if one is needed.
3269
3270 2004-05-11  Paul Brook  <paul@codesourcery.com>
3271
3272         * flags.h (flag_short_enums): Update comment.
3273         * opts.c (decode_options): Set flag_short_enums to 2.
3274         * toplev.c (flag_short_enums): Update comment.
3275         (process_options): Call default_short_enums target hook.
3276
3277 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
3278
3279         PR target/14063
3280         * config/rs6000/altivec.md (altivec_dssall):
3281         Change to unspec_volatile.
3282         (altivec_dss): Likewise.
3283
3284 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
3285
3286         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
3287         vnor.
3288         ("one_cmplv8hi2"): Same.
3289         ("one_cmplv4si2"): Same.
3290
3291 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
3292
3293         PR target/15130
3294         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
3295         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
3296         into account.  Compute the correct number of general registers
3297         for the return value.  Generate a special push/pop sequence when
3298         failing to get a temporary register for non SHmedia epilogue.
3299         (sh_expand_epilogue): Add an argument to show whether it's for
3300         sibcall or not.  Set the 3rd argument of output_stack_adjust to
3301         -1 if needed.
3302         (sh_need_epilogue): Call sh_expand_epilogue with 0.
3303         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
3304         with 1.
3305         (epilogue): Call sh_expand_epilogue with 0.
3306
3307 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
3308
3309         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
3310         goto a cleanup label.  After the cleanup, free the allocated memory.
3311
3312 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
3313
3314         * config/rs6000/altivec.h (vec_sld): Add overloads for
3315         argument/return types of 'vector bool int', 'vector bool short'
3316         and 'vector bool char'.
3317
3318 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
3319
3320         * c-decl.c (store_parm_decls_newstyle): Correct test for a
3321         nested function.
3322
3323 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
3324
3325         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
3326         treating missing ones as "".
3327         * config/mips/mips.md: Remove constraints from match_operands and
3328         match_scratches if they appear in define_expands (except reload*),
3329         define_peephole2s, define_splits or attribute specifications.
3330         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
3331         constraint strings.
3332
3333 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3334
3335         * config/rs6000/rs6000.c (function_arg_boundary): Always align
3336         AltiVec vectors.
3337         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
3338         vectors by refererence.  Align the same for TARGET_64BIT to a 16
3339         byte boundary.  Remove useless code.  Add function comment.
3340         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
3341         call to where it belongs.
3342         (function_arg_partial_nregs): Return true for all TARGET_32BIT
3343         -mabi=no-altivec AltiVec vectors.  Fix debug output.
3344         (rs6000_va_arg): Adjust for AltiVec change.
3345
3346 2004-05-10  Paul Brook  <paul@codesourcery.com>
3347
3348         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3349         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3350         (TARGET_DOUBLEWORD_ALIGN): Use it.
3351         (WCHAR_TYPE): Define.
3352         (WCHAR_SIZE_TYPE): Define.
3353         (SIZE_TYPE): Define.
3354
3355 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
3356
3357         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
3358         when size is 8 bytes.
3359         (function_arg_advance): Account for stack space used by AltiVec
3360         args when -mabi=altivec.  Simplify alignment calculations.  For
3361         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
3362         (function_arg): Similarly.
3363         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
3364         not AltiVec ABI.
3365         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
3366         Correct alignment, and align before testing reg count.  Remove
3367         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
3368         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
3369         TARGET_FPRS here..
3370         (rs6000_function_value): .. not here before call.
3371
3372 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3373
3374         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
3375
3376 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
3377
3378         PR 15007
3379         * c-decl.c (current_file_decl): Rename to all_translation_units,
3380         adjust comment.
3381         (pop_scope): If popping file_scope, construct a
3382         TRANSLATION_UNIT_DECL and make it the context of all the
3383         symbols in the scope.
3384         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
3385         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
3386         anything to current_file_decl.
3387         (pushdecl_top_level): Likewise.
3388         (store_parm_decls_newstyle): Adjust check for nested function.
3389         (c_write_global_declarations): Update for renamed variable.
3390
3391 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
3392
3393         * config/rs6000/rs6000-protos.h
3394         (rs6000_conditional_register_usage): Protoize.
3395
3396         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
3397
3398         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
3399         function.
3400
3401 2004-05-08  Roger Sayle  <roger@eyesopen.com>
3402
3403         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
3404         where op is a comparison operator and C1 and C2 are integer constants
3405         into a range check.
3406         (fold): Call fold_div_compare.
3407
3408 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3409
3410         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
3411         problems with earlier versions of the GNU compiler.
3412
3413 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
3414
3415         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
3416         Declare.
3417
3418         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
3419         (rs6000_hard_regno_mode_ok): New.
3420         (rs6000_init_hard_regno_mode_ok): New.
3421         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
3422
3423         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
3424         result.
3425
3426 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
3427
3428         * config/rs6000/altivec.h (vector, pixel, bool): Do not
3429         define as macros #ifdef __APPLE_ALTIVEC__.
3430
3431 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
3432
3433         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
3434         Generate appropriate parallels for vector arguments
3435         passed to vararg functions. (function_arg): make the call
3436         to rs6000_mixed_function_arg for vector args as needed.
3437
3438 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3439
3440         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
3441         EABI_FLOAT_VARARGS_P.
3442
3443 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3444
3445         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
3446         * config/mips/mips.c (override_options): Disable branch likely
3447         instructions if TUNE_MIPS5500.
3448
3449 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
3450
3451         * config/mips/mips.c (override_options): Allow the hi and lo registers
3452         to store any integral mode, not just MODE_INTs.
3453
3454 2004-05-07  Paul Brook  <paul@codesourcery.com>
3455
3456         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
3457         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
3458         (TARGET_DOUBLEWORD_ALIGN): Use it.
3459         (WCHAR_TYPE): Define.
3460         (WCHAR_SIZE_TYPE): Define.
3461         (SIZE_TYPE): Define.
3462
3463 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3464
3465         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
3466         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
3467
3468 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
3469
3470         * loop-doloop.c (doloop_valid_p): Make sure that body
3471         gets freed.
3472
3473 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
3474
3475         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
3476         declaration.
3477         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
3478         (sparc_skip_caller_unimp): New global variable.
3479         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
3480         Use it instead of SKIP_CALLERS_UNIMP_P.
3481         * config/sparc/sparc.md (call expander): Add sanity check.
3482         (call_address_struct_value_sp32): Re-sync with expander.
3483         (call_symbolic_struct_value_sp32): Likewise.
3484         (return peepholes): Use 'sparc_skip_caller_unimp' instead
3485         of custom predicate.
3486
3487 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3488
3489         PR c++/14962
3490         * c-pragma.c (handle_pragma_redefine_extname): Only change
3491         the assembler name of FUNCTION_DECLs and VAR_DECLs.
3492
3493 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
3494
3495         * optabs.h (enum optab_index): Add new OTI_log1p.
3496         (log1p_optab): Define corresponding macro.
3497         * optabs.c (init_optabs): Initialize log1p_optab.
3498         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
3499         patterns.
3500         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
3501         using log1p_optab.
3502         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
3503         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3504
3505         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
3506
3507         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
3508         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
3509         Prototype here.
3510         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
3511         x87's fyl2xp1 instruction.
3512         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
3513         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
3514         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
3515         log1p  and log1pl built-ins as inline x87 intrinsics.
3516
3517 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
3518
3519         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
3520         * config/arm/freebsd.h: Likewise.
3521         * config/ia64/freebsd.h: Likewise.
3522         * config/sparc/freebsd.h: Likewise.
3523
3524 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
3525
3526         PR optimization/15296
3527         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
3528         getting last consecutive label at a branch.
3529         (relax_delay_slots): Similar, near top of loop.
3530
3531 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3532
3533         PR target/15202
3534         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
3535         register to general register.
3536
3537 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
3538
3539         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
3540         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
3541         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
3542         (STACK_BOUNDARY): Delete.
3543
3544 2004-05-06  Stuart Hastings  <stuart@apple.com>
3545
3546         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
3547         mistakenly clobbered by 1.423.
3548
3549 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3550
3551         * doc/invoke.texi: Document -mvr4130-align.
3552         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
3553         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
3554         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
3555         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
3556         * config/mips/mips.md: Include sched-int.h.
3557         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
3558         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
3559         (override_options): Enable -mvr4130-align at -O3 and above.
3560         (mips_sim_insn): New variable.
3561         (mips_sim): New structure.
3562         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
3563         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
3564         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
3565         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
3566         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
3567         (mips_reorg): Call vr4130_align_insns.
3568         (vr4130_last_insn): New variable.
3569         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
3570         (vr4130_swap_insns_p, vr4130_reorder): New functions.
3571         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
3572         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
3573         (mips_use_dfa_pipeline_interface): Return true for the same.
3574         * config/mips/4130.md: New file.
3575         * config/mips/mips.md: Include it.  Add a peephole2 to convert
3576         "mult;mflo" into "mtlo;macc".
3577         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
3578         target of maccs.
3579         (*msac_using_macc): New pattern.
3580
3581 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
3582
3583         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
3584         (ir_vr55_hilo): Split into...
3585         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
3586         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
3587         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
3588         Add various multiplication bypasses.
3589         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
3590         multiplication.
3591
3592 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
3593
3594         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
3595         attribute to "XF".
3596
3597 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
3598
3599         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
3600         (fmod_optab, drem_optab): Define corresponding macros.
3601         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
3602         * genopinit.c (optabs): Implement fmod_optab and drem_optab
3603         using fmod?f3 and drem?f3 patterns.
3604         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
3605         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
3606         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
3607         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
3608         flag_unsafe_math_optimizations is set.
3609
3610         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
3611         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
3612
3613         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
3614         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
3615         Prototype here.
3616         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
3617         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
3618         fprem and fprem1 instructions.
3619         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
3620         Rename insn definition to x86_fnstsw_1.
3621         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
3622         x87 instructions.
3623         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
3624         and fmodl built-ins as inline x87 intrinsics.
3625         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
3626         and dreml built-ins as inline x87 intrinsics.
3627
3628 2004-05-05  Roger Sayle  <roger@eyesopen.com>
3629
3630         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
3631
3632 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
3633
3634         PR driver/9822
3635         * doc/invoke.texi (Spec Files): Remove documentation of %c.
3636
3637 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
3638
3639         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
3640         representation.
3641
3642 2004-05-06  Paul Brook  <paul@codesourcery.com>
3643
3644         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
3645         (arm_coproc_mem_operand): ... To this.
3646         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
3647         (arm_legitimate_index_p): Ditto.
3648         (vfp_mem_operand): Rename ...
3649         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
3650         (vfp_secondary_reload_class): Use it.
3651         (output_move_double): Use doubleword load/store instructions.
3652         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
3653         * config/arm/arm.h (TARGET_LDRD): Define.
3654         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
3655         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
3656         New splitter for invalid doubleword loads.
3657         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
3658         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
3659         * doc/md.texi: Document Uy constraint.
3660
3661 2004-05-05  Jan Hubicka  <jh@suse.cz>
3662
3663         PR opt/14980
3664         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
3665         inline clones.
3666
3667 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
3668
3669         PR target/15290
3670         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
3671         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
3672
3673 2004-05-05  Mike Stump  <mrs@apple.com>
3674
3675         * config/darwin-c.c (add_framework): Copy the directory name as it
3676         can be freed later.  Also, ensure we always allocate enough room
3677         for the cached framework information.
3678         (find_subframework_header): Keep track of the directory where the
3679         subframework header was found.
3680         (framework_construct_pathname): Speed up by not trying to re-add a
3681         framework.
3682         * cppfiles.c (search_path_exhausted): Arrange for the missing
3683         header callback to be able to set the directory where the header
3684         was found.
3685         (cpp_get_dir): Add.
3686         * cpplib.h (missing_header_cb): Add a parameter.
3687         (cpp_get_dir): Add.
3688
3689 2004-05-03  Mike Stump  <mrs@apple.com>
3690
3691         * doc/invoke.texi (Directory Options): Document -iquote.
3692         * doc/cpp.texi: Likewise.
3693         * doc/cppopts.texi: Likewise.
3694         * c-opts.c (c_common_missing_argument): Add -iquote processing.
3695         (c_common_handle_option): Likewise.
3696         * c.opt (iquote): Add.
3697         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
3698         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
3699
3700         * c-opts.c (case OPT_I): Deprecate -I- support.
3701         * doc/invoke.texi: Likewise.
3702         * doc/cpp.texi: Likewise.
3703         * doc/cppopts.texi: Likewise.
3704
3705 2004-05-05  Steven Bosscher  <stevenb@suse.de>
3706
3707         * basic-block.h (free_basic_block_vars): Update prototype.
3708         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
3709         argument.
3710         (life_analysis): Update call.
3711         * ifcvt.c (if_convert): Likewise.
3712         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
3713         * passes.c (rest_of_handle_final): Likewise.
3714         (rest_of_compilation): Likewise.
3715         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3716
3717         * emit-rtl.c (next_real_insn): Use INSN_P.
3718         (prev_real_insn): Likewise.
3719
3720 2004-05-05  Eric Christopher  <echristo@redhat.com>
3721
3722         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
3723         representation.
3724
3725 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
3726
3727         * config/rs6000/rs6000.c (build_opaque_vector_type):
3728         New function.
3729         (rs6000_init_builtins): Use it.
3730
3731 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
3732
3733         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
3734         (func_table): Change type from char ** to vms_func_ref.
3735         (write_rtnbeg):  Update to reflect func_table change.  Use
3736         fde->funcdef_number instead of rtnnum in output.
3737         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
3738
3739 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3740             Richard Henderson  <rth@redhat.com>
3741
3742         PR target/14899
3743
3744         * c-common.c (vector_types_convertible_p): New function.
3745         * c-typeck.c (comptypes): Recurse on vector types.
3746         (convert_for_assignment): Use vector_types_convertible_p.
3747         (digest_init): Use vector_types_convertible_p to check
3748         validness of constant vector initializers; otherwise treat
3749         them as scalars.
3750         * tree.c (make_or_reuse_type): New.
3751         (build_common_tree_nodes): Use it.
3752         * cp/call.c (standard_conversion): Likewise.
3753         * cp/typeck.c (comptypes): Recurse on vector types.
3754         (convert_for_assignment): Use vector_types_convertible_p.
3755
3756 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
3757
3758         * config/mips/mips.c (override_options): Default to no
3759         generation of branch-likely operations when tuning for
3760         CPUs where they tend to have a negative performance impact
3761         (e.g., SB-1).
3762
3763 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3764
3765         * expr.c (store_constructor_field): Don't call store_constructor
3766         if bitsize is not a multiple of a byte.
3767
3768 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
3769
3770         * reload1.c (inherit_piecemeal_p): New function.
3771         (emit_reload_insns): When reloading a group of hard registers, use
3772         inherit_piecemeal_p to decide whether the values of individual hard
3773         registers can be inherited.
3774
3775 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
3776
3777         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
3778         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
3779         * config/t-linux (LIB2ADDEHDEP): Likewise.
3780
3781 2004-05-04  Paul Brook  <paul@codesourcery.com>
3782
3783         * config/arm/crti.asm: Push an even number of registers.
3784         * config/arm/crtn.asm: And restore them.  Load via sp.
3785
3786 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
3787
3788         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
3789         Collect overhead information.
3790         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
3791         parameter and pass it through.
3792         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
3793         MEM_STAT_DECL parameter and pass it through.
3794         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
3795         MEM_STAT_DECL parameter and pass it through.
3796
3797 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3798
3799         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
3800
3801         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
3802
3803         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
3804         rs6000_hard_regno_nregs.
3805
3806 2004-05-03  Eric Christopher  <echristo@redhat.com>
3807
3808         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
3809         prologue insn instead of setting up call.
3810         (s390_emit_epilogue): Ditto.
3811         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
3812         (define_constants): Add numbers for above patterns.
3813
3814 2004-05-03  Eric Christopher  <echristo@redhat.com>
3815
3816         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
3817         * config/s390/s390.c (s390_conditional_register_usage): ...here.
3818         * config/s390/s390-protos.h: Prototype.
3819
3820 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
3821
3822         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
3823         assignment.
3824
3825 2004-05-03  Eric Christopher  <echristo@redhat.com>
3826
3827         * config/mips/mips.md: Fix branch length attribute definition.
3828
3829 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
3830
3831         * config.gcc: Remove --enable-altivec support.
3832
3833         * config/rs6000/altivec-defs.h: Remove.
3834
3835 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3836
3837         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
3838         * fixinc/fixincl.x: Regenerate.
3839
3840 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3841
3842         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
3843         definition.
3844         (log?f2, log10?f2, log2?f2): Reimplement expanders with
3845         float_truncate insn.
3846         (*fxtractsf3, *fxtractdf3): Remove insn definition.
3847         (logb?f2): Reimplement expanders with float_truncate insn.
3848
3849 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
3850
3851         PR 14718
3852         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
3853         force_type_die for CONST_DECL.
3854
3855 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3856             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3857
3858         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
3859         tm-dwarf2.h to tm_file.
3860         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
3861         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
3862         (ASM_DEBUG_SPEC): Delete.
3863
3864 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
3865
3866         * optabs.h (enum optab_index): Add new OTI_expm1.
3867         (expm1_optab): Define corresponding macro.
3868         * optabs.c (init_optabs): Initialize expm1_optab.
3869         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
3870         patterns.
3871         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
3872         using expm1_optab.
3873         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
3874         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3875
3876         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
3877         to implement expm1, expm1f and expm1l built-ins as inline x87
3878         intrinsics.
3879
3880 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3881
3882         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
3883         * config/frv/frv.md (*return_true, *return_false): New patterns.
3884
3885 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
3886
3887         * rtl.h (PHI_NODE_P): Remove.
3888
3889 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
3890
3891         PR middle-end/14988
3892         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
3893         when passed -2 as 'align'.
3894         (put_var_into_stack): Use 'bool' as the type for the three local
3895         predicates.  Adjust calls to put_reg_into_stack.
3896         When passed a CONCAT, instruct put_reg_into_stack to use
3897         a consecutive stack slot for the second part.
3898         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
3899         'consecutive_p' parameter.  Turn the three predicates into 'bool'
3900         parameters.  Retrieve the register mode from 'reg'.
3901         When consecutive_p is true, instruct assign_stack_local_1 to use
3902         BITS_PER_UNIT alignment.
3903         (put_addressof_into_stack): Use 'bool' as the type for the two
3904         local predicates. Adjust call to put_reg_into_stack.
3905
3906 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3907
3908         * fold-const.c (fold_convert_const, fold): Add missing
3909         FIX_ROUND_EXPR case.
3910
3911 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
3912
3913         * configure.ac (FLEX, BISON): Only use tools from the build tree
3914         if build equals host.
3915         * configure: Rebuilt.
3916
3917         * config/frv/frv-protos.h (frv_expand_epilogue,
3918         frv_expand_fdpic_call): Add bool argument.
3919         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
3920         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
3921         (frv_expand_epilogue): Use new argument to decide whether to emit
3922         return instruction or copy the return address to LR.
3923         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
3924         sibcalls.
3925         (sibcall_operand): New.
3926         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
3927         PLUS nor LABEL_REF.  Add sibcall_operand.
3928         * config/frv/frv.md (call, call_value): Pass false to
3929         frv_expand_fdpic_call.
3930         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
3931         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
3932         sibcall_value_internal, sibcall_value_fdpicdi): New.
3933         (return_unsigned_true, return_unsigned_false): New.
3934         (epilogue): Adjust call to frv_expand_epilogue.
3935         (sibcall_epilogue): New.
3936
3937         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
3938         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
3939         before redefining them.
3940
3941 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3942
3943         * builtins.c (fold_fixed_mathfn): New function.
3944         (fold_builtin_lround, fold_builtin): Use it.
3945
3946 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
3947
3948         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
3949         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
3950
3951 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
3952
3953         * config/cris/cris.h: Revert my "fix comment typos" patch.
3954
3955 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
3956
3957         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
3958
3959 2004-05-01  Falk Hueffner  <falk@debian.org>
3960
3961         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
3962         builtin_insll): Disallow 0 as first input operand.
3963
3964 2004-05-01  Falk Hueffner  <falk@debian.org>
3965
3966         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
3967
3968 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
3969
3970         PR middle-end/15054
3971         * expr.c (expand_expr_real): Do not call preserve_temp_slots
3972         on a TARGET_EXPR temp.
3973         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
3974         TARGET_EXPR temp slots.
3975
3976 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
3977
3978         * simplify-rtx.c (simplify_ternary_operation): When
3979         converting an IF_THEN_ELSE to a relational op, return
3980         correct mode.
3981
3982 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3983
3984         * builtins.c (fold_builtin_round): Fix comment typo.
3985         (fold_builtin_lround): New function.
3986         (fold_builtin): Use it.
3987
3988 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
3989
3990         PR target/11608
3991         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
3992         more like the one in config/dbxelf.h.
3993
3994 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
3995
3996         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
3997         and adjust definition accordingly.
3998         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
3999         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4000         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4001         VECTOR_TYPE.
4002
4003 2004-04-30  Jason Merrill  <jason@redhat.com>
4004
4005         PR c++/14587
4006         * config/i386/winnt.c (associated_type): Look for attributes on
4007         the TYPE_MAIN_VARIANT of *this.
4008         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4009         apply the attributes to the variants.
4010
4011 2004-04-30  Paul Brook  <paul@codesourcery.com>
4012
4013         * config.gcc: Simplify arm --with-{cpu,tune} test.
4014         * config/arm/arm-cores.def: Document whitespace restrictions.
4015
4016 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4017
4018         PR other/1963
4019         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4020
4021 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4022             DJ Delorie  <dj@redhat.com>
4023
4024         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4025         (DWARF2_DEBUGGING_INFO): Define to enable.
4026         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4027         DWARF2.
4028         * configure.ac (Target-specific assembler checks)
4029         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4030         relocs.
4031         * configure: Regenerate.
4032         * config.in: Likewise.
4033
4034         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4035         (ASM_OUPUT_DWARF_OFFSET): Define.
4036
4037 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4038
4039         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4040         (s390_emit_call): New function prototype added.
4041         (s390_tls_get_offset): Function removed.
4042         * config/s390/s390.c (s390_function_ok_for_sibcall,
4043         s390_call_saved_register_used_p): New functions.
4044         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4045         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4046         (s390_emit_tls_call_insn): New function.
4047         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4048         emit_call_insn.
4049         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4050         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4051         added.
4052         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4053         register number used to hold the target address for sibcalls.
4054         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4055         New expanders.
4056         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4057         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4058         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4059         Expanders removed.
4060         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4061         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4062         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4063         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4064         new parameter.
4065
4066 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4067
4068         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4069         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4070         reg-stack.c, varasm.c, config/alpha/ev4.md,
4071         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4072         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4073         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4074         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4075         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4076         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4077         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4078         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4079         comment typos.
4080
4081 2004-04-30  Paul Brook  <paul@codesourcery.com>
4082
4083         * config.gcc: Default ep9312 to hard-float.
4084         * config/arm/arm-cores.def: Add ARCH field.
4085         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4086         (arm_arch_cirrus): New variable.
4087         (all_cores): Set and use arch.
4088         (all_architectures): Ditto.
4089         (arm_arch_name): New variable.
4090         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4091         Set and use arm_arch_cirrus.
4092         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4093         (enum processor_type): Update ARM_CORE define.
4094         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4095         (CPP_SPEC): Remove %(cpp_cpu_arch).
4096         (CPP_ARCH_DEFAULT_SPEC): Remove.
4097         (CPP_CPU_ARCH_SPEC): Remove.
4098         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4099         (FPUTYPE_DEFAULT): Don't define here.
4100
4101 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4102
4103         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4104         updates too.
4105
4106 2004-04-30  Paul Brook  <paul@codesourcery.com>
4107
4108         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4109
4110 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4111
4112         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4113         vec_sububs.
4114         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4115         duplicates.
4116
4117 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4118
4119         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
4120         atan2?f3 expanders.
4121
4122 2004-04-29  Nick Clifton  <nickc@redhat.com>
4123
4124         Bug 14093
4125         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
4126         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
4127         Delete static from definition.
4128         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
4129
4130 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
4131
4132         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
4133         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
4134         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
4135         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
4136
4137 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
4138
4139         * commom.opt (Wfatal-errors): Add it.
4140         * diagnostic.c (flag_fatal_errors): Define it.
4141         (diagnostic_action_after_output): Check for flag_fatal_errors.
4142         * flags.h (flag_fatal_errors): Declare it.
4143         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
4144         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
4145
4146 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
4147
4148         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
4149         blocks which have kill flag set.
4150
4151 2004-04-29  Ben Elliston  <bje@au.ibm.com>
4152
4153         * configure.ac (--with-as): Abort if user-supplied assembler
4154         cannot be executed.
4155         (--with-ld): Likewise for the linker.
4156         * configure: Regenerate.
4157
4158 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4159
4160         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
4161         isn't NULL before using it.
4162
4163 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
4164
4165         PR target/15189
4166         * config/mips/mips.md (load_df_low): Use default length.
4167         (load_df_high, store_df_high): Likewise.
4168
4169 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4170
4171         * config/mips/mips.md, config/mips/sb1.md,
4172         config/rs6000/rs6000.c: Fix comment typos.
4173
4174 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
4175
4176         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
4177         Fix comment typos.
4178
4179 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
4180
4181         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
4182         (delete_if_ordinary): Use above macro.
4183         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
4184         Update copyright.
4185         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
4186
4187 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
4188
4189         * c-decl.c (get_parm_info): Use the correct tag keywords when
4190         warning about type declarations in prototypes.
4191
4192 2004-04-29  Paul Brook  <paul@codesourcery.com>
4193
4194         * config.gcc: Pull list of cores from arm-cores.def.
4195
4196 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4197
4198         * combine.c (combine_simplify_rtx): Adjust call to use
4199         simplify_relational_operation.  Do not use SELECT_CC_MODE
4200         when a comparison already has a MODE_CC mode.
4201
4202 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
4203
4204         (simplify_set): simplify_relational_operation may now
4205         return another relational expression.
4206         * cse.c (fold_rtx): simplify_relational_operation now
4207         takes of computing the comparison mode.
4208         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
4209         remove dead code.
4210         (do_compare_rtx_and_jump): Likewise.
4211         * integrate.c (subst_constants): simplify_relational_operation
4212         may now return another relational expression.
4213         * simplify-rtx.c (simplify_gen_relational): Move most code to
4214         the new simplify_relational_operation and
4215         simplify_relational_operation_1 functions.
4216         (simplify_relational_operation): Rewritten.
4217         (simplify_relational_operation_1): New function.
4218         (simplify_ternary_operation): simplify_relational_operation
4219         may now return another relational expression.
4220         (simplify_rtx): Remove unnecessary temp variable.
4221
4222 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
4223
4224         * reg-stack.c (swap_to_top): New function.
4225         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
4226         swap_to_top().
4227         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
4228         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
4229         UNSPEC_FSCALE_EXP.
4230
4231         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
4232         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
4233         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
4234         x87's fscale insn.
4235         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
4236         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
4237         patterns.
4238
4239 2004-04-28  Serge Belyshev  <1319@bot.ru>
4240
4241         PR 14944
4242         * coverage.c (read_counts_file): Fix usage of warning () call.
4243         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
4244
4245 2004-04-28  Ben Elliston  <bje@au.ibm.com>
4246
4247         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
4248         options with "-" in the option index.
4249         (SPARC Options): Likewise.
4250         (M32R/D Options): Likewise.
4251
4252 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4253
4254         * convert.c (convert_to_integer): Convert (long)round -> lround,
4255         etc.
4256
4257 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
4258
4259         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
4260         Return false if we do not have fp register.
4261         (addrs_ok_for_quad_peep): Rename to ...
4262         (mems_ok_for_quad_peep): this.
4263         Add check for volatile memory.
4264         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
4265         Rename to ...
4266         (mems_ok_for_quad_peep): this.
4267         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
4268         to peephole2's.
4269         (lfq_power2): New instruction.
4270         (stfq_power2): Likewise.
4271
4272 2004-04-28  Jan Hubicka  <jh@suse.cz>
4273
4274         PR c/15004
4275         * function.c (do_warn_unused_parameter): Break out form ...
4276         (expand_function_end): ... here; warn only when not using cgraphunit.
4277         * function.h (do_warn_unused_parameter): Declare.
4278         * cgraphunit.c: Include function.h.
4279         (cgraph_finalize_function): Do unused parameter warning.
4280         * Makefile.in (cgraphunit.o): Depend on function.h
4281
4282 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
4283
4284         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
4285         calling install-info on $(DESTDIR)$(infodir)/dir already being
4286         present.
4287
4288 2004-04-28  Paul Brook  <paul@codesourcery.com>
4289
4290         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
4291
4292 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4293
4294         * gcse.c (find_moveable_store): Do not accept store insns with
4295         REG_EH_REGION note.
4296
4297 2004-04-28  Paul Brook  <paul@codesourcery.com>
4298
4299         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
4300         * function.c (assign_temp): Ditto.
4301         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
4302
4303 2004-04-28  Paul Brook  <paul@codesourcery.com>
4304
4305         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
4306
4307 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
4308
4309         * var-tracking.c (variable_different_p): Add a parameter
4310         compare_current_location, compare current location of variable parts
4311         if it is true.
4312         (dataflow_set_different_1): Pass compare_current_location == false.
4313         (dataflow_set_different_2): Pass compare_current_location == false.
4314         (emit_notes_for_differences_1): Pass compare_current_location == true.
4315
4316 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
4317
4318         * config/s390/s390.md ("casesi"): Mark jump table access as
4319         non-trapping and unchanging.
4320
4321 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4322
4323         PR debug/14829
4324         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
4325         callers.
4326         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
4327         number for indexing hard_regno_nregs array.
4328
4329 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
4330
4331         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
4332         * config/darwin-crt2.c: Only have contents on __ppc__.
4333
4334 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
4335
4336         * config/xtensa/xtensa.c (call_insn_operand): Check
4337         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
4338         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
4339         * config/xtensa/xtensa.md (call, call_value): Likewise.
4340
4341 2004-04-27  Wu Yongwei  <adah@sh163.net>
4342
4343         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
4344         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
4345         (__gthread_mutex_init_function): Replace CreateMutex with
4346         initialization of custom mutex using CreateSemaphore.
4347         (__gthread_mutex_lock): Use InterlockedIncrement.
4348         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
4349         (__gthread_mutex_unlock): Use InterlockedDecrement and
4350         ReleaseSemaphore to unlock
4351         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
4352         __gthread_mutex_lock, __gthread_mutex_trylock,
4353         __gthread_mutex_unlock): Adjust to match inline versions in
4354         gthr-win32.h.
4355
4356 2004-04-27  Paul Brook  <paul@codesourcery.com>
4357
4358         * config/arm/arm.c (arm_promote_prototypes): New function.
4359         (TARGET_PROMOTE_PROTOTYPES): Use it.
4360
4361 2004-04-27  Paul Brook  <paul@codesourcery.com>
4362
4363         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
4364
4365 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
4366
4367         * config/alpha.c (alpha_end_function): For OpenVMS gas,
4368         correctly output .pdesc directive before .end.
4369
4370 2004-04-26  James E Wilson  <wilson@specifixinc.com>
4371
4372         Bug 14927
4373         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
4374         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
4375
4376 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
4377
4378         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
4379         * config/pa/pa-hpux10.h: Likewise.
4380         * config/pa/pa-hpux11.h: Likewise.
4381
4382 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
4383
4384         * doc/invoke.texi (Overall Options): Document default for -o
4385         for PCH files.
4386
4387 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4388
4389         * builtins.c (expand_builtin_update_setjmp_buf): New function.
4390         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
4391         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
4392
4393 2004-04-26  Paul Brook  <paul@codesourcery.com>
4394
4395         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
4396
4397 2004-04-26  Paul Brook  <paul@codesourcery.com>
4398
4399         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
4400
4401 2004-04-25  Roger Sayle  <roger@eyesopen.com>
4402
4403         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
4404         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
4405         X % -1 as 0.
4406
4407 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
4408
4409         PR bootstrap/15141
4410         * except.c (connect_post_landing_pads): Delete insns after the
4411         barrier when generating a unwind_resume_libfunc call.
4412
4413 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4414
4415         PR/c++ 15119
4416         * tree.c (substitute_placeholder_in_expr, case 4): New case,
4417         for TARGET_EXPR.
4418
4419 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4420
4421         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4422         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
4423         inhibit_libc is defined.
4424
4425 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
4426
4427         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
4428         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
4429         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
4430         (TARGET_SCHED_VARIABLE_ISSUE): Define.
4431         (mips_adjust_cost): Move later in file, next to other sched hooks.
4432         (mips_macc_chains_last_hilo): New variable.
4433         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
4434         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
4435         * config/mips/mips.md (may_clobber_hilo): New attribute.
4436
4437 2004-04-24  Roger Sayle  <roger@eyesopen.com>
4438             Bruce Korb  <bkorb@gnu.org>
4439
4440         * fixinc/inclhack.def (aix_syswait_2): New fix.
4441         * fixinc/fixincl.x: Regenerate.
4442         * fixinc/tests/base/sys/wait.h: Update for new test.
4443
4444 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
4445
4446         PR target/14960
4447         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
4448         to non_fixed_size, and leave out fixed_size from the sum.
4449         (generate_set_vrsave): Correct clobbers.
4450         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
4451         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
4452         (rs6000_libcall_value): Likewise.
4453         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
4454         (FUNCTION_ARG_REGNO_P): Likewise.
4455
4456 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4457
4458         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
4459         is a CONST_INT.
4460         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
4461         with NARROW_OP1 instead of OP1.
4462
4463 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
4464
4465         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
4466         and __s390x__ hosts.
4467
4468 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4469
4470         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
4471         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
4472         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
4473         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
4474         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
4475         * builtins.c (expand_builtin_fork_or_exec): New.
4476         (expand_builtin): Call it.
4477         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
4478         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
4479         * c-common.c (PID_TYPE): New macro.
4480         (c_common_nodes_and_builtins): Initialize pid_type_node.
4481         * calls.c (special_function_p): Do not handle fork and exec.
4482         (expand_call): Do not handle ECF_FORK_OR_EXEC.
4483         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4484         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
4485         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
4486         __gcov_execv, __gcov_execvp, __gcov_execve): New.
4487         * tree.h (enum tree_index): Add TI_PID_TYPE.
4488         (pid_type_node): New macro.
4489         (ECF_FORK_OR_EXEC): Removed.
4490
4491 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4492
4493         PR optimization/13985
4494         * cfgloopmanip.c (fix_loop_placements): New prototype.
4495         Call fix_bb_placements on the preheader of loops that have
4496         been reparented.
4497         (remove_path): Adjust call to fix_loop_placements.
4498
4499 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
4500
4501         * config/darwin7.h: New file.
4502         * config.gcc (*-*-darwin*): Add darwin7.h if the
4503         version is greater than 6.
4504         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
4505         (MATH_LIBRARY): Wrap in ifdefs.
4506
4507 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
4508
4509         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
4510         loading iWMMXt registers with a frame pointer.  Use post-increment
4511         without a frame pointer.
4512         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
4513
4514 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
4515
4516         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
4517         mode" rather than "-funit-at-a-time" since -O2 enables it
4518         without requiring -f* options.  Refer to -fprofile-generate and
4519         -fprofile-use correctly.  Move -funit-at-a-time among options
4520         enabled by -O.  Add information about unit-at-a-time caveats.
4521
4522 2004-04-22  Per Bothner  <per@bothner.com>
4523
4524         * line-map.h (struct line_maps):  New field highest_line.
4525         (linemap_position_for_column):  Make non-inline function.
4526         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
4527         * line-map.c (linemap_init):  Clear highest_line field.
4528         (linemap_add):  Set highest_line field.
4529         (linemap_line_start):  Minor optimization - use highest_line field.
4530         Reduce maximum column hint to 10000.  Update highest_line field.
4531         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
4532         * cpphash.h (struct cpp_reader):  Remove line field - instead use
4533         line_table->highest_line.
4534         (saved_line):  Remove unused field.
4535         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
4536         Use  line_table's highest_line field instead of cpp_reader's line.
4537         * cpplib.c (start_directive):  Likewise use highest_line field.
4538         (do_line, do_linemarker):  Likewise just use newest map.
4539         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
4540         * cpperror.c (cpp_error):  Likewise use highest_line field.
4541         * cppfiles.c (open_file_failed:  Likewise.
4542         (cpp_make_system_header):  Likewise use newest map and highest_line.
4543         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
4544         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
4545         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
4546         _cpp_lex_direct):  Likewise use highest_line.
4547         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
4548         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
4549         and use newest map.
4550         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
4551         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
4552         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
4553
4554 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
4555
4556         PR bootstrap/14992
4557         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
4558         * config/linux.h (USE_LD_AS_NEEDED): Define.
4559         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
4560         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
4561         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
4562         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
4563         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
4564         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
4565         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
4566
4567 2004-04-22  Per Bothner  <per@bothner.com>
4568
4569         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
4570         Fixes PR preprocessor/15067.
4571
4572 2004-04-23  Andreas Schwab  <schwab@suse.de>
4573
4574         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
4575         avoid aliasing warning.
4576
4577 2004-04-22  Jan Hubicka  <jh@suse.cz>
4578             Mostafa Hagog <mustafa@il.ibm.com>
4579
4580       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
4581       * cfgloopanal.c (expected_loop_iterations): Change the return value
4582
4583 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
4584
4585         * cselib.h (struct elt_loc_list): Remove canon_loc field.
4586         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
4587         (cselib_invalidate_mem): Remove all canon_loc and canon_x
4588         traces.
4589
4590 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
4591
4592         Revert
4593         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4594
4595                 * var-tracking.c (variable_part_different_p): Variable parts
4596                 differ when the most recent locations differ.
4597
4598 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
4599
4600         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
4601         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
4602         (embedded_pic_offset): Delete.
4603         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
4604         MASK_* constants.
4605         (TARGET_EMBEDDED_PIC): Delete.
4606         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
4607         (ASM_SPEC): Remove -membedded-pic.
4608         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
4609         (ASM_OUTPUT_CASE_LABEL): Likewise.
4610         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
4611         * config/mips/windiss.h (ASM_SPEC): Likewise.
4612         * config/mips/mips.c (struct machine_function): Remove
4613         embedded_pic_fnaddr_rtx.
4614         (TARGET_ENCODE_SECTION_INFO): Remove override.
4615         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
4616         (override_options): Remove -membedded-pic handling.
4617         (print_operand): Remove handling of '%S'.
4618         (mips_select_section: Remove -membedded-pic handling.
4619         (mips_encode_section_info): Delete.
4620         (mips_output_conditional_branch): Remove mention of -membedded-pic.
4621         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
4622         -membedded-pic handling.
4623         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
4624
4625 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
4626
4627         * var-tracking.c (frame_base_decl): Remove useless GTY.
4628
4629 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
4630
4631         * config/rs6000/rs6000.c (rs6000_override_options): Error when
4632         user wants altivec and e500 instructions.
4633
4634 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
4635
4636         PR target/14813
4637         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
4638         in .init_array section to ...
4639         * config/ia64/crtbegin.asm: Here.
4640
4641         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
4642         and hidden if HAVE_INITFINI_ARRAY is defined.
4643
4644 2004-04-21  James E Wilson  <wilson@specifixinc.com>
4645
4646         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
4647         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
4648         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
4649         (fp_register_operand, lo_operand): New.
4650         (mips_rtx_costs): Add TUNE_SB1 support.
4651         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
4652         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
4653         (mips_multipass_dfa_lookahead): New.
4654         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
4655         TUNE_SB1): New.
4656         (TARGET_SWITCHES): Add -mfp-exceptions support.
4657         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
4658         (BRANCH_COST): Fix whitespace.
4659         * config/mips/mips.md: Include sb1.md.
4660         * config/mips/sb1.md: New file.
4661         * doc/invoke.texi: Document -mfp-exceptions.
4662
4663         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
4664         comment.
4665         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
4666         (fixincl.o-warn): Delete.
4667
4668 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4669
4670         * config/rs6000/rs6000 (print_operand) ['z']:
4671         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
4672
4673 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
4674
4675         * config.gcc: Support --with-arch=iwmmxt for ARM.
4676
4677 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4678
4679         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
4680         in two more places; remove unneeded force_reg
4681
4682 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
4683
4684         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
4685         for TARGET_MACHO.
4686         (print_operand): For TARGET_MACHO check to see if we need a stub
4687         and output one if we need it.
4688
4689         PR debug/15033
4690         * dwarf2out.c (rtl_for_decl_location): Check for NULL
4691         rtl.
4692
4693 2004-04-20  James E Wilson  <wilson@specifixinc.com>
4694
4695         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
4696         (vall_value_gp): Likewise.
4697
4698 2004-04-20  DJ Delorie  <dj@redhat.com>
4699
4700         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
4701         variables stored in word registers, then in memory.
4702
4703 2004-04-20  Eric Christopher  <echristo@redhat.com>
4704
4705         * cp/parser.c (cp_parser_declaration): Move translate
4706         up before tokens are lexed.
4707
4708 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
4709
4710         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
4711         (asin_optab, acos_optab): Define corresponding macros.
4712         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
4713         * genopinit.c (optabs): Implement asin_optab and acos_optab
4714         using asin?f2 and acos?f2 patterns.
4715         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
4716         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
4717         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
4718         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4719
4720         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
4721         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
4722         acos, acosf and acosl built-ins as inline x87 intrinsics.
4723
4724 2004-04-20  Paul Brook  <paul@codesourcery.com>
4725
4726         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
4727
4728 2004-04-20  Paul Brook  <paul@codesourcery.com>
4729
4730         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
4731
4732 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
4733
4734         Revert part of 2004-04-17 change that moved -frename-registers
4735         to -O1.  -frename-registers is buggy.
4736
4737         * toplev.c (flag_rename_registers): Initialize to 0.
4738         * doc/invoke.texi (Optimize options): Move -frename-registers
4739         to "Not triggered by any -O level" section.  Adjust commentary
4740         accordingly.
4741
4742 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
4743
4744         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
4745
4746 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
4747
4748         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
4749         for mflo and mfhi instructions.
4750         (mips_output_move): Remove mflo and mfhi handling.
4751         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
4752         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
4753         Likewise various define_peephole2s.
4754         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
4755         alternatives.
4756         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
4757         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
4758         (mfhilo_di, mfhilo_si): New patterns.
4759
4760 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4761
4762         * function.c (assign_parms): Force
4763         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
4764
4765 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
4766
4767         * var-tracking.c (variable_part_different_p): Variable parts differ
4768         when the most recent locations differ.
4769
4770 2004-04-19  James E Wilson  <wilson@specifixinc.com>
4771
4772         * rtl.h (reg_set_last): Delete declaration.
4773         * rtlanal.c (reg_set_last): Delete.
4774
4775 2004-04-19  Roger Sayle  <roger@eyesopen.com>
4776
4777         * fold-const.c (fold_convert): Make function extern/public.
4778         * tree.h (fold_convert): Prototype here.
4779         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
4780         expand_builtin_strrchr, expand_builtin_strpbrk,
4781         expand_builtin_mempcpy, expand_builtin_bcopy,
4782         expand_builtin_bzero, expand_builtin_memcmp,
4783         expand_builtin_strcmp, expand_builtin_strncmp,
4784         stabilize_va_list, expand_builtin_sprintf,
4785         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
4786         fold_builtin_exponent, fold_builtin_mempcpy,
4787         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
4788         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
4789         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
4790
4791 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
4792
4793         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
4794         (move_from_CR_gt_bit): New.
4795         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
4796         E500.
4797         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
4798         E500.
4799
4800         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
4801         (tstsfeq_gpr): Same.
4802         (cmpsfgt_gpr): Same.
4803         (tstsfgt_gpr): Same.
4804         (cmpsflt_gpr): Same.
4805         (tstsflt_gpr): Same.
4806         (e500_cceq_ior_compare): New.
4807         (e500_flip_gt_bit): New.
4808
4809         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
4810         (print_operand): Add 'c' and 'D'.
4811         (rs6000_generate_compare): Rewrite to generate correct rtl.
4812         (rs6000_emit_sCOND): Handle E500.
4813         (output_cbranch): Adjust for changes in rs6000_generate_compare.
4814         (output_e500_flip_gt_bit): New.
4815
4816         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
4817         Protoize.
4818
4819 2004-04-19  Eric Christopher  <echristo@redhat.com>
4820
4821         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
4822
4823 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
4824
4825         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
4826         fix information.
4827
4828 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4829
4830         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
4831         download URL.
4832
4833 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
4834
4835         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
4836         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
4837
4838 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
4839
4840         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
4841         (fold_builtin): Update caller to match.
4842
4843         PR bootstrap/15009
4844         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
4845
4846         PR bootstrap/14999
4847         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
4848
4849 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4850
4851         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
4852
4853         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
4854         (expand_mult_highpart_optab): Likewise.
4855         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
4856
4857 2004-04-19  Paul Brook  <paul@codesourcery.com>
4858
4859         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
4860         floatunssisf2, floatunssidf2): New patterns.
4861
4862 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
4863
4864         PR other/14918
4865         * doc/invoke.texi (-fprofile-generate): Document requirement to
4866         use -fprofile-generate when linking.
4867
4868         * doc/extend.texi (Strong Using): Warn users against using this
4869         feature.
4870
4871 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
4872
4873         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
4874         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
4875         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
4876         * config/mips/mips.c (struct mips16_constant): Renamed from struct
4877         constant.  Propogate change throughout file.
4878         (struct machine_function): Remove insns_len.
4879         (mips_string_length, mips16_strings, string_constants): Delete.
4880         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
4881         when generating mips16 code.  Remove special mips16 treatment of
4882         string constants.
4883         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
4884         to have the form LABEL+CONSTANT.
4885         (mips_symbolic_address_p): Fix comment.
4886         (m16_usym8_4, m16_usym5_4): Delete.
4887         (mips_output_function_epilogue): Remove mips16 string handling.
4888         (mips_output_mi_thunk): Call mips16_lay_out_constants.
4889         (mips_select_section, mips_encode_section_info): Remove mips16
4890         string handling.
4891         (struct mips16_constant_pool): New.
4892         (add_constant): Take a mips16_constant_pool structure.  Keep pool
4893         sorted into order of ascending mode size.  Keep track of the highest
4894         possible start address, taking padding and the masking of the base PC
4895         value into account.
4896         (dump_constants_1): New function, split out from dump_constants.
4897         Handle vector constants.  Use gen_consttable_{int,float} rather than
4898         separate functions for each mode.
4899         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
4900         rather than separate functions for each alignment.
4901         (mips_find_symbol): Delete.
4902         (mips16_insn_length): New function, split out from
4903         mips16_lay_out_constants.
4904         (mips16_rewrite_pool_refs): New function.
4905         (mips16_lay_out_constants): Rework. Remove string handling.
4906         Always create an inline constant pool.
4907         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
4908         (UNSPEC_ALIGN): New constants.
4909         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
4910         (UNSPEC_ALIGN_[248]): Delete.
4911         (consttable_int, consttable_float, align): New patterns.
4912         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
4913
4914 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
4915
4916         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
4917         __unn_args_eq.
4918
4919 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
4920
4921         PR target/14715
4922         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
4923         with STARTING_FRAME_OFFSET.
4924
4925 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4926
4927         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
4928         * config/mips/mips.c (macc_msac_operand): New function.
4929         * config/mips/mips.md (*msac): Move after *macc.
4930         (*msac2): New.  Generalize macc-related peepholes so that they apply
4931         to msac too.
4932
4933 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
4934
4935         * opts.c (decode_options): Do not enable flag_rename_registers
4936         and flag_web at -O3.
4937         * toplev.c (flag_rename_registers): Initialize
4938         flag_rename_registers and flag_web to
4939         AUTODETECT_FLAG_VAR_TRACKING.
4940         (default_debug_hooks): New global.
4941         (process_options): Initialize default_debug_hooks.  Warn if
4942         -fvar-tracking specified but not supported by the current
4943         debug format.  Do not run var tracking at -O0 or if not
4944         supported by the current debug format, even if
4945         -fvar-tracking was given.  If -fno-rename-registers
4946         is not specified, always run register renaming if var
4947         tracking is supported by the default debugging information
4948         format for the target, and we are at -O1 or higher; similarly
4949         for -fweb, but only at -O2 or higher.
4950         * doc/invoke.texi (Optimize Options): Document this.
4951
4952 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4953
4954         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
4955         * configure: Regenerate.
4956
4957 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
4958
4959         * gcc.c (used_arg): Check whether an option has been removed.
4960
4961 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4962
4963         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
4964         debugging on Solaris 7 and up.
4965
4966 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4967
4968         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
4969         IRIX 5 port.
4970         Remove -save-temps workaround, handled automatically.
4971         Require GNU binutils 2.15 for debugging.
4972         Remove SGI make warnings since GNU make is now required.
4973         (Specific, mips-sgi-irix6): Some markup fixes.
4974         Describe MIPSpro C problems and workarounds.
4975         Mention working O32 ABI support.
4976         Recommend GNU as 2.15 for O32 with debugging.
4977         Remove description of fixed structure pass/return bug.
4978
4979 2004-04-16  DJ Delorie  <dj@redhat.com>
4980
4981         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
4982         TYPE_FIELDS.
4983         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
4984
4985 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4986
4987         * pa.md: Remove unnecessary declarations for asm_out_file.
4988
4989         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
4990         SAR register.  Fix comment.
4991         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
4992         (%cr11).
4993
4994         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
4995
4996 2004-04-16  Nick Clifton  <nickc@redhat.com>
4997
4998         * config/arm/arm.c (arm_override_options): Revert previous patch.
4999         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5000         be safely built.
5001
5002 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5003
5004         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5005         bug.
5006         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5007         TARGET_DEFAULT): Changed. Ditto.
5008         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5009         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5010         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5011         (TARGET_ENDIAN_DEFAULT): Added.
5012
5013 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5014
5015         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5016         ATTR_CONST_NOTHROW_LIST.
5017
5018 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5019
5020         PR/middle-end 14915
5021         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5022         BITS_BIG_ENDIAN.
5023
5024 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5025
5026         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5027
5028 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5029
5030         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5031
5032 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5033
5034         * libada-mk.in: New file.
5035         * configure.ac: Create libada-mk from libada-mk.in.
5036         * configure: Regenerate.
5037
5038 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5039
5040         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5041         (logb_optab, ilogb_optab): Define corresponding macros.
5042         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5043         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5044         using logb?f2 and ilogb?i2 patterns.
5045         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5046         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5047         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5048         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5049
5050         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5051         and UNSPEC_XTRACT_EXP.
5052
5053         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5054         patterns to implement fxtract x87 instruction.
5055         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5056         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5057         intrinsics.
5058         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5059         x87's fxtract insn.
5060
5061 2004-04-14  Eric Christopher  <echristo@redhat.com>
5062
5063         * config/mips/t-elf: Enable multilibs by default.
5064
5065 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5066
5067         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5068         previous fix to check HAVE_return at runtime too.
5069
5070 2004-04-14  Nick Clifton  <nickc@redhat.com>
5071
5072         * config/arm/arm.c (arm_override_options): If the user has not
5073         specified an ABI, then default to AAPCS for the iWMMXt processor.
5074         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5075         * config/arm/t-xscale-coff: Likewise.
5076
5077 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5078
5079         * builtins.c (fold_builtin_isdigit): New.
5080         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5081         * defaults.h: Add TARGET_DIGIT0 and sort.
5082         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5083
5084 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5085
5086         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5087         `mathfn_built_in' to determine the new builtin.
5088         * fold-const.c (fold): Likewise.
5089
5090 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5091
5092         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5093         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5094         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5095         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5096         (ASM_SPEC): Update accordingly.
5097         * config/mips/mips.c: Update after above renaming.
5098         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5099         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5100
5101 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5102
5103         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5104         increment errorcount and return false instead of true.
5105
5106 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5107
5108         * optabs.c (expand_twoval_unop): Reorder function arguments.
5109         * builtins.c (expand_builtin_mathfn_3): Update calls to
5110         expand_twoval_unop.
5111
5112         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5113         and UNSPEC_TAN_TAN. Add missing comment.
5114
5115         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5116         patterns to implement fptan x87 instruction.
5117         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
5118         and tanl built-ins as inline x87 intrinsics. Define corresponding
5119         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
5120         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
5121         x87's fptan insn.
5122
5123 2004-03-13  Richard Henderson  <rth@redhat.com>
5124
5125         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
5126         for LABEL_REFs.
5127
5128         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
5129         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
5130         * doc/invoke.texi: Update to match.
5131
5132         * varasm.c (unlikely_text_section): Use assemble_align instead of
5133         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
5134         correct alignment argument.
5135
5136 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
5137
5138         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
5139         after setting reg_last_reload_reg for optional output reloads.
5140
5141 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
5142
5143         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
5144         Definition of these two macros are corrected by adding
5145         matchine right paren.
5146
5147 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
5148
5149         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
5150
5151 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5152
5153         * config/i386/i386.c (output_387_reg_move): New function.
5154         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
5155         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
5156         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
5157         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
5158         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
5159
5160 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5161
5162         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
5163         TYPE_DECL.
5164         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
5165         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
5166         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
5167         Use skip_simple_arithmetic to find SAVE_EXPR.
5168         (force_type_save_exprs, force_type_save_exprs_1): New functions.
5169         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
5170         Properly chain multiple pointers.
5171         (copy_tree_r): Copy a TYPE_DECL.
5172         * tree.c (variably_modified_type_p): Add some missing tests and
5173         make some other minor changes.
5174         * tree.h (force_type_save_exprs): New declaration.
5175
5176 2004-04-12  Roger Sayle  <roger@eyesopen.com>
5177
5178         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
5179         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
5180         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
5181         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
5182         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
5183         x%-1 into 0 (or x&0 if x has side-effects).
5184
5185 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5186
5187         * config/rs6000/rs6000.md: Document why a pattern is not
5188         available.
5189
5190         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
5191         of floats on the E500.
5192         (branch_positive_comparison_operator): Do not allow NE even on the
5193         E500.
5194
5195 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
5196
5197         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
5198         in_text_unlikely_section to in_unlikely_text_section.
5199
5200 2004-04-11  Roger Sayle  <roger@eyesopen.com>
5201
5202         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
5203         calling convention to allow a NULL_TREE to be returned.  Factor
5204         sanity checks from callers, return NULL_TREE when appropriate.
5205         (fold): Handle COMPOUND_EXPR operands of binary expressions
5206         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
5207         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
5208         calls to fold_binary_op_with_conditional_arg.
5209
5210 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5211
5212         * config/mips/iris5.h (current_section_flags):  Add
5213         in_unlikely_executed_text and default case.
5214
5215 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
5216
5217         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
5218         failure on solaris. Place ifdef HAVE_return around gen_ret call.
5219         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
5220         HAVE_return and place it around the place where it is needed.
5221
5222 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
5223
5224         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
5225         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
5226         and NORMAL_TEXT_SECTION_NAME.
5227         (unlikely_text_section): Check targetm.have_named_sections
5228         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
5229         instead of SECTION_FORMAT_STRING.
5230         * config/mips/iris5.h (current_section_name): Add
5231         in_unlikely_executed_text case and move the abort into the switch.
5232         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
5233         (NORMAL_TEXT_SECTION_NAME): Remove.
5234         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
5235         (SECTION_FORMAT_STRING): Remove.
5236         * defaults.h (SECTION_FORMAT_STRING): Remove.
5237         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
5238         (SECTION_FORMAT_STRING): Remove.
5239
5240 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
5241
5242         * c-typeck.c (common_type): Prefer long long to long when same
5243         precision.
5244
5245 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
5246
5247         PR 14887
5248         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
5249         mode argument.
5250         * config/ia64/ia64.c (ia64_hpux_file_end): Check
5251         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
5252
5253 2004-04-09  Roger Sayle  <roger@eyesopen.com>
5254
5255         * simplify-rtx.c (mode_signbit_p): New function to check whether
5256         an RTX is an immediate constant that represents the most significant
5257         bit of a given machine mode.
5258         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
5259         C is the sign bit.
5260         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
5261         when C2 is the sign bit.
5262         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
5263         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
5264         sign bit.
5265
5266 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5267
5268         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
5269         TYPE_MODE.
5270
5271 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
5272
5273         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
5274         of TREE_READONLY for types.
5275
5276 2004-04-09  Caroline Tice  <ctice@apple.com>
5277
5278         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
5279         (struct basic_block_def):  Add new field, partition.
5280         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
5281         definitions.
5282         (partition_hot_cold_basic_blocks): Add extern function
5283         declaration.
5284         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
5285         include statements.
5286         (N_ROUNDS): Increase the maximum number of rounds by 1.
5287         (branch_threshold): Add array value for new round.
5288         (exec_threshold): Add array value for new round.
5289         (push_to_next_round_p): New function.
5290         (add_unlikely_executed_notes): New function.
5291         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
5292         (mark_bb_for_unlikely_executed_section): New function.
5293         (add_labels_and_missing_jumps): New function.
5294         (add_reg_crossing_jump_notes): New function.
5295         (fix_up_fall_thru_edges): New function.
5296         (find_jump_block): New function.
5297         (fix_crossing_conditional_branches): New function.
5298         (fix_crossing_unconditional_branches): New function.
5299         (fix_edges_for_rarely_executed_code): New function.
5300         (partition_hot_cold_basic_blocks): New function.
5301         (find_traces):  Add an extra round for partitioning hot/cold
5302         basic blocks.
5303         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
5304         and only cold blocks, into the last (extra) round of collecting traces.
5305         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
5306         over crossing edges.
5307         (bb_to_key):  Add code to correctly identify cold blocks when
5308         doing partitioning.
5309         (connect_traces): Modify to connect all the non-cold traces first, then
5310         go back and connect up all the cold traces.
5311         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
5312         * cfg.c (entry_exit_blocks): Add initialization for partition field in
5313         entry and exit blocks.
5314         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
5315         if we are doing hot/cold partitioning.
5316         * cfgcleanup.c (cfglayout.h): Add new include statement.
5317         (try_simplify_condjump): Modify to not attempt on blocks with jumps
5318         that cross section boundaries.
5319         (try_forward_edges): Likewise.
5320         (merge_blocks_move_predecessor_nojumps): Likewise.
5321         (merge_blocks_move_successor_nojumps): Likewise.
5322         (merge_blocks_move): Likewise.
5323         (try_crossjump_to_edge): Modify to not attempt after we have done
5324         the block partitioning.
5325         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
5326         cross section boundaries.
5327         (try_optimize_cfg): Likewise.
5328         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
5329         jumps that cross section boundaries.
5330         * cfglayout.c (flags.h): Add new include statement.
5331         (update_unlikely_executed_notes):  New function.
5332         (fixup_reorder_chain):  Add code so when a new jumping basic block is
5333         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
5334         updated appropriately.
5335         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
5336         introduced by this optimization.
5337         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
5338         extern function declaration.
5339         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
5340         list of notes that can be deleted.
5341         (create_basic_block_structure):  Add initialization for partition field.
5342         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
5343         section boundaries.
5344         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
5345         cross section boundaries.
5346         (commit_one_edge_insertion): Add code so newly created basic block
5347         ends up in correct (hot or cold) section.  Modify to disallow
5348         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
5349         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
5350         crosses section boundaries.
5351         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
5352         cross section boundaries.
5353         (force_nonfallthru_and_redirect): Modify to make sure new basic block
5354         ends up in correct section, with correct notes attached.
5355         * common.opt (freorder-blocks-and-partition):  Add new flag for this
5356         optimization.
5357         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
5358         the end of functions are written into the correct (hot or cold)
5359         section.
5360         (dbx_source_file): Add code so writing debug file information
5361         doesn't incorrectly change sections.
5362         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
5363         in partitioning hot/cold basic blocks into separate sections.
5364         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
5365         section partitioning.
5366         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
5367         conditional branches can span all of memory.
5368         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
5369         unconditional branches can span all of memory.
5370         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
5371         (final_scan_insn):  Add code to check for NOTE instruction indicating
5372         whether basic block belongs in hot or cold section, and to make sure
5373         the current basic block is being written to the appropriate section.
5374         Also added code to ensure that jump table basic blocks end up in the
5375         correct section.
5376         * flags.h (flag_reorder_blocks_and_partition):  New flag.
5377         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
5378         one of the branches has a jump that crosses between sections.
5379         (find_if_case_2): Likewise.
5380         (ifcvt): Modify to not attempt to mark loop exit edges after
5381         hot/cold partitioning has occurred.
5382         * opts.c (decode_options): Code to handle new flag,
5383         flag_reorder_blocks_and_partition; also to turn it off if
5384         flag_exceptions is on.
5385         (common_handle_option): Code to handle new flag,
5386         flag_reorder_blocks_and_partition.
5387         * output.h (unlikely_text_section): New extern function declaration.
5388         (in_unlikely_text_section): New extern function declaration.
5389         * passes.c (rest_of_handle_stack_regs):  Add
5390         flag_reorder_blocks_and_partition as an 'or' condition for calling
5391         reorder_basic_blocks.
5392         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
5393         as an 'or' condition for calling reorder_basic_blocks.
5394         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
5395         * print-rtl.c (print_rtx): Add code for handling new note,
5396         NOTE_INSN_UNLIKELY_EXECUTED_CODE
5397         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
5398         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
5399         cross between section boundaries.
5400         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
5401         indicating the basic block containing it belongs in the cold section.
5402         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
5403         between hot and cold sections.
5404         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
5405         initialize this flag, and to tie it to the command-line option
5406         freorder-blocks-and-partition.
5407         * varasm.c (cfglayout.h):  Add new include statement.
5408         (unlikely_section_label_printed):  New global variable, used for
5409         determining when to output section name labels for cold sections.
5410         (in_section):  Add in_unlikely_executed_text to enum data structure.
5411         (text_section):  Modify code to use SECTION_FORMAT_STRING and
5412         NORMAL_TEXT_SECTION_NAME macros.
5413         (unlikely_text_section):  New function.
5414         (in_unlikely_text_section):  New function.
5415         (function_section):  Add code to make sure beginning of function is
5416         written into correct section (hot or cold).
5417         (assemble_start_function):  Add code to make sure stuff is written to
5418         the correct section.
5419         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
5420         to an if statement that was checking 'in_text_section'.
5421         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
5422         condition to an if statement that was checking 'in_text_section'.
5423         (default_section_type_flags_1):  Add check: if in cold section
5424         flags = SECTION_CODE.
5425         * config/darwin.c (darwin_asm_named_section):  Modify to use
5426         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
5427         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
5428         specifically for the i386.
5429         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
5430         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
5431         text string to something more informative.
5432         (NORMAL_TEXT_SECTION_NAME): Add new definition.
5433         (SECTION_FORMAT_STRING):  Add new definition.
5434         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
5435         '!in_unlikely_text_section' as an 'and' condition to an if statement
5436         that was already checking '!in_text_section'.
5437         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
5438         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
5439         sure these are properly defined for linux on ppc.
5440         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
5441         for this new flag.
5442         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
5443         reg_note.
5444         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
5445         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
5446         these new macros.
5447
5448 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5449
5450         * function.c (gen_mem_addressof): When changing the RTX from a REG
5451         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
5452
5453 2004-04-08  Roger Sayle  <roger@eyesopen.com>
5454
5455         PR target/14888
5456         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
5457         truncxfdf2_noop): Provide dummy "fmov" implementations.
5458
5459 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
5460
5461         * gcc.c (default_compilers): Add missing initializers.
5462
5463         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
5464         Return 1 if file was successfully mapped.
5465
5466 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
5467
5468         PR pch/13419
5469         PR pch/14137
5470         Radar #: 3315288
5471         * doc/invoke.texi (Precompiled Headers): Suggest -o
5472         to put an output file in a particular place.  Be more detailed
5473         about which options affect PCH validity and which options
5474         might not work.
5475         * c-pch.c (pch_matching): New.
5476         (MATCH_SIZE): New.
5477         (struct c_pch_validity): New field 'match'.
5478         (pch_init): Handle pch_matching.
5479         (c_common_valid_pch): Check pch_matching.
5480
5481         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
5482
5483 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
5484
5485         * doc/invoke.texi (Precompiled Headers): Warn about known
5486         problems.
5487
5488 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
5489
5490         PR c++/14808
5491         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
5492         to 1 if ASM_OUTPUT_DEF is defined.
5493         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
5494         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
5495         Set to non-zero iff not a one_only decl.
5496
5497 2004-04-08  Paul Brook  <paul@codesourcery.com>
5498
5499         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
5500
5501 2004-04-08  Paul Brook  <paul@codesourcery.com>
5502
5503         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
5504         PROMOTE_FOR_CALL_ONLY.
5505         * config/arm/arm-protos.h (arm_function_value): Declare.
5506         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
5507         (TARGET_PROMOTE_PROTOTYPES): Return false.
5508         (arm_function_value): New function.
5509         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
5510         (FUNCTION_VALUE): Call arm_function_value.
5511         * config/cris/cris.h (PROMOTE_MODE): Rename ...
5512         (PROMOTE_FUNCTION_MODE): ... to this.
5513         (PROMOTE_FOR_CALL_ONLY): Remove.
5514         * config/mmix/mmix.h: Likewise.
5515         * config/s390/s390.h: Likewise.
5516         * config/sparc/sparc.h: Likewise.
5517         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
5518         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
5519         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
5520         (PROMOTE_FOR_CALL_ONLY): Remove.
5521
5522 2004-04-08  Joel Sherrill <joel@oarcorp.com>
5523
5524         PR ada/14538
5525         * ada/5rosinte.adb: Remove fake mprotect() body.
5526         * ada/5rosinte.ads: Add SA_SIGINFO.
5527         * ada/5rtpopsp.adb: Rewrite to use new interface.
5528         * ada/init.c: Reorder so the simple single OS conditional __rtems__
5529         is tested before more complex ones which mix UNIX and embedded
5530         systems in the conditional.
5531
5532 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
5533
5534         PR ada/14665
5535         * ada/osint.adb (Find_Program_Name): Rework to properly handle
5536         filenames which end in .exe or have versioning suffixes like VMS.
5537
5538 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
5539
5540         PR target/10129
5541         * config/darwin.c (darwin_encode_section_info): When the decl has
5542         a DECL_INITIAL, it is only defined also when it is not a common.
5543
5544 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5545
5546         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
5547         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
5548
5549 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
5550
5551         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
5552         global register variables.
5553
5554 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
5555
5556         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
5557         rpc_xdr_lvalue_cast_b): New fixes.
5558         * fixinc/fixincl.x: Regenerate.
5559         * fixinc/tests/base/rpc/xdr.h: Add new tests.
5560
5561 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
5562
5563         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
5564         to power4 and power5 entries.
5565
5566 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
5567
5568         * c-common.h (pending_lang_change): Mark for PCH.
5569
5570 2004-04-07  Caroline Tice  <ctice@apple.com>
5571
5572         * gcc.c (main): Move 'break' in main loops (on an error)
5573         to wait until error processing has occurred.
5574
5575 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
5576
5577         * config.gcc: Stop changing enable_threads midstream.
5578         Replace uses of enable_threads_flag with enable_threads.
5579         * configure.ac: Replace uses of enable_threads_flag with
5580         enable_threads.  Improve autoconf quotation in one place.
5581         * configure: Regenerate.
5582
5583 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
5584
5585         * builtins.c: Implement support for sincos function.
5586         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
5587         BUILT_IN_COS{,F,L}.
5588         (expand_builtin_mathfn_3): New function.
5589         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
5590         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
5591         flag_unsafe_math_optimization is set.
5592
5593         * optabs.h (enum optab_index): Add new OTI_sincos.
5594         (sincos_optab): Define corresponding macro.
5595
5596         * optabs.c (init_optabs): Initialize sincos_optab.
5597         (expand_twoval_unop): New function.
5598
5599         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
5600         patterns.
5601
5602         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
5603         and UNSPEC_SINCOS_SIN.
5604
5605         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
5606         sincosxf3): New patterns to implement sincos, sincosf and sincosl
5607         built-ins as inline x87 intrinsics. Define splits for
5608         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
5609         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
5610         sincos patterns.
5611         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
5612         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
5613
5614         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
5615         x87's fsincos insn.
5616
5617 2004-04-06  Devang Patel  <dpatel@apple.com>
5618
5619         PR 14467
5620         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
5621
5622 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5623
5624         * doc/install.texi: Update HP-UX 11 installation procedure.
5625
5626 2004-04-06  Paul Brook  <paul@codesourcery.com>
5627
5628         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
5629
5630 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
5631
5632         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
5633         when the TLS address is generated by a function call.
5634         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
5635         (tls_local_dynamic): Likewise.
5636
5637 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
5638
5639         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
5640         and TYPE_VOLATILE.
5641
5642 2004-04-05  Caroline Tice  <ctice@apple.com>
5643
5644         * gcc.c (combine_flag): New global variable, for new driver option.
5645         (struct compiler): Add two new fields, to be used when
5646         combining multiple input files in a single pass (IMA).
5647         (default_compilers):  Add values for the new fields to all
5648         compiler entries. Modify the "@c" compiler entry for doing IMA
5649         properly with "-save-temps" and the "combine" flag.
5650         (option_map):  Add new driver option, "--combine", to tell driver
5651         to pass multiple input files to compiler at one time.
5652         (have_o_argbuf_index): New global variable.
5653         (store_arg): Modify to assign value to have_o_argbuf_index.
5654         (struct infile):  Add three new fields, to help with IMA.
5655         (display_help): Add help for new "combine" option.
5656         (process_command): Remove local variable have_o; add code to check
5657         for new "combine" option; remove assignment to combine_inputs.
5658         (do_spec_1):  Modify to deal with IMA better.
5659         (main): Make variable 'lang_n_infiles' local to entire function
5660         rather than to a single block.  Use flag combine_flag to
5661         determine whether to do IMA or not; Modify loop initializing
5662         infiles to deal properly with linker files.
5663         Add code for doing preprocessing in presence of
5664         IMA with "-save-temps" flag.  Modify "main" loop to handle
5665         multiple input files, in multiple languages, with or without
5666         preprocessing,  gracefully.
5667         * toplev.c (set_src_pwd): Modify to not complain if attempting to
5668         re-set it to same directory it's previously been set to (avoid
5669         irritating, meaningless warning messages when doing IMA with
5670         save-temps).
5671         * doc/invoke.texi: Add "-combine" to list of Overall Options;
5672         remove documentation about IMA that is no longer accurate; Add
5673         documentation explaining what "-combine" does.
5674         * ada/lang-specs.h: Add initialization values for new fields in
5675         "struct compiler".
5676         * cp/lang-specs.h: Likewise.
5677         * f/lang-specs.h: Likewise.
5678         * java/lang-specs.h: Likewise.
5679         * objc/lang-specs.h: Likewise.
5680         * treelang/lang-specs.h: Likewise.
5681
5682 2004-04-05  David Edelsohn
5683
5684         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
5685         symbol handling.
5686
5687 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
5688             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5689
5690         PR optimization/13424 (hppa), bootstrap/14462, c/14828
5691         * pa.md: Use replace_equiv_address to retain the attributes of the
5692         memory operands used in the split and peephole2 patterns for optimizing
5693         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
5694
5695 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5696
5697         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
5698         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
5699         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
5700         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
5701         PARM_DECL.
5702         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
5703         for a type.
5704         * print-tree.c (print_node): Properly handle side-effects, readonly,
5705         and constant flags.
5706         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
5707         and TREE_CONSTANT if not a type.
5708         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
5709         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
5710         (NON_TYPE_CHECK): New macro.
5711         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
5712
5713 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
5714
5715         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
5716         to DWARF2_DEBUG unconditionally.
5717         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
5718
5719 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
5720             Nathanael Nerode  <neroden@gcc.gnu.org>
5721
5722         PR target/14548
5723         * config.host: Set the shell variable host_can_use_collect2.
5724         Set it to yes by default, and to no for alpha*-dec-*vms*,
5725         i[34567]86-*-mingw32*, and powerpc-*-beos*.
5726         * configure.ac: Set and substitute the shell variable collect2.
5727         Give an error if use_collect2 is yes and host_can_use_collect2 is
5728         no.
5729         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
5730         uses.  Initialize to @collect2@.
5731         (STAGESTUFF): Remove $(USE_COLLECT2).
5732         * config/alpha/x-vms (USE_COLLECT2): Don't set.
5733         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
5734         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
5735         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
5736         * configure: Regenerate.
5737
5738 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5739
5740         * simplify-rtx.c (simplify_binary_operation): Constant fold
5741         DIV, MOD, UDIV and UMOD using div_and_round_double.
5742
5743 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5744
5745         PR c++/14804
5746         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
5747         RECORD_TYPEs.
5748
5749 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
5750
5751         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
5752         documentation.
5753
5754 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5755
5756         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
5757         updating the REG_EQUAL note on an insn's libcall_insn.
5758
5759 2004-04-04  Roger Sayle  <roger@eyesopen.com>
5760
5761         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
5762
5763 2004-04-03  Roger Sayle  <roger@eyesopen.com>
5764
5765         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
5766         with reorder_operands_p.
5767
5768 2004-04-03  Jan Hubicka  <jh@suse.cz>
5769
5770         * md.texi (vec_set, vec_extract, vec_init): Document.
5771
5772 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
5773
5774        * opts.c (decode_options): Do function inlining with very small
5775        max-inline-insns-* parameters when optimizing for size.
5776
5777 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
5778
5779         * config/i386/i386.h (TARGET_NOCONA): New macro.
5780         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
5781         (processor_type): Add PROCESSOR_NOCONA.
5782
5783         * config/i386/i386.md (cpu): Add nocona to the attribute values.
5784
5785         * config/i386/i386.c (nocona_cost): New variable.
5786         (m_NOCONA): New macro.
5787         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
5788         x86_branch_hints, x86_use_sahf, x86_single_stringop,
5789         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
5790         x86_integer_DFmode_moves, x86_partial_reg_dependency,
5791         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
5792         x86_decompose_lea, x86_arch_always_fancy_math_387,
5793         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
5794         x86_ext_80387_constants, x86_four_jump_limit):
5795         (override_options): Add nocona_cost to processor_target_table.
5796         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
5797         (incdec_operand): Prevent inc/dec generation for Nocona too.
5798         (ix86_issue_rate): Add PROCESSOR_NOCONA.
5799
5800 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
5801
5802         * rtlanal.c (find_reg_note): Manually
5803         unswitch the loop.
5804
5805 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
5806
5807         * genemit.c (gen_split): Change prototype of generated code.
5808         * genrecog.c (write_action): Adjust prototype for and calls to
5809         gen_split_*.
5810         * gensupport.c (struct queue_elem): Add split field.
5811         (queue_pattern): Return a value.  Clear the split field.
5812         (process_rtx): Maintain an association between an insn and the
5813         split generated from it for a define_insn_and_split.
5814         (process_one_cond_exec): Generate a new split for a
5815         define_insn_and_split.
5816         * config/arm/arm-protos.h (arm_split_constant): Add insn
5817         parameter.
5818         (emit_constant_insn): New function.
5819         (arm_gen_constant): Use it.
5820         * config/arm/arm.md: Adjust calls to arm_split_constant.
5821
5822 2004-04-02  Jan Hubicka  <jh@suse.cz>
5823
5824         * cgraph.c: Add overall comment.
5825         (cgraph_inline_hash): New global variable.
5826         (cgraph_create_node): Break out from ...
5827         (cgraph_node): ... here.
5828         (cgraph_edge): New function.
5829         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
5830         (cgraph_remove_edge): Accept edge, intead of source and destination.
5831         (cgraph_redirect_edge_callee): New.
5832         (cgraph_remove_node): Update all new datastructures.
5833         (cgraph_record_call, cgraph_remove_call): Kill.
5834         (dump_cgraph_node): Break out from ... ; dump new datastructures.
5835         (dump_cgraph): ... here.
5836         (cgraph_function_possibly_inlined_p): Use new hashtable.
5837         (cgraph_clone_edge, cgraph_clone_node): New.
5838         * cgraph.h: Include hashtab.h
5839         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
5840         fields, add inlined_to pointer.
5841         (cgraph_node): Add pointer to next_clone.
5842         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
5843         (cgraph_remove_call, cgraph_record_call): Kill.
5844         (cgraph_inline_hash): Declare.
5845         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
5846         cgraph_redirect_edge_callee): Declare.
5847         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
5848         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
5849         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
5850         * cgraphunit.c: Add overall comment.
5851         (cgraph_optimize_function): Kill.
5852         (cgraph_assemble_pending_functions): Do not assemble inline clones.
5853         (cgraph_finalize_function): Update call of cgraph_remove_node
5854         (record_call_1): Record call sites.
5855         (cgraph_create_edges): Accept node instead of decl argument.
5856         (error_found): New static variable.
5857         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
5858         (cgraph_analyze_function): Update for new datastructures.
5859         (cgraph_finalize_compilation_unit): Plug memory leak.
5860         (cgraph_optimize_function): Kill.
5861         (cgraph_expand_function): Do not use cgraph_optimize_function.
5862         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
5863         cgraph_inlined_callees): Kill.
5864         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
5865         clones.
5866         (estimate_growth): Simplify.
5867         (cgraph_clone_inlined_nodes): New function.
5868         (cgraph_mark_inline_edge): Re-implement.
5869         (cgraph_mark_inline): Likewise.
5870         (cgraph_check_inline_limits): Simplify.
5871         (cgraph_recursive_inlining_p): New.
5872         (update_callee_keys): Break out from ...
5873         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
5874         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
5875         Likewise.
5876         (cgraph_expand_all_functions):  Remove inline clones from the ordered
5877         list.
5878         (cgraph_preserve_function_body_p): New predicate.
5879         (cgraph_optimize): Verify cgraph.
5880         * function.h (struct function): Add fields saved_tree/saved_args.
5881         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
5882         * toplev.c (rest_of_compilation): Do not free cfun.
5883         * tree-inline.c: Include function.h
5884         (struct inline_data): Add saving_p field; replace decl/current_decl by
5885         node/current_node.
5886         (insert_decl_map): New function.
5887         (copy_body_r): Handle saving; update cgraph datastructure.
5888         (copy_body): Handle recursive inlining.
5889         (initialize_inlined_parameters): Likewise.
5890         (expand_call_inline): Propagate node attributes; update cgraph.
5891         (optimize_inline_calls): Verify that datastructure still match.
5892         (save_body): New function.
5893         * tree-inline.h (save_body): New.
5894         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
5895         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
5896         * langhooks.c (lang_hooks): Add update_decl_after_saving.
5897
5898 2004-04-01  Serge Belyshev  <1319@bot.ru>
5899
5900         PR target/14702
5901         * config/i386/i386.md: fix source operand constraints in
5902         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
5903
5904 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5905
5906         * fold-const.c (folda): Preserve types of comparisons.
5907
5908 2004-04-01  Richard Henderson  <rth@redhat.com>
5909
5910         * toplev.c (backend_init): Move init_optimization_passes call ...
5911         (lang_dependent_init): ... here.
5912
5913 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
5914             Jakub Jelinek  <jakub@redhat.com>
5915
5916         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
5917         -lgcc --as-needed -lgcc_s --no-as-needed by default.
5918         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
5919         * configure: Rebuilt.
5920         * config.in: Rebuilt.
5921         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
5922         (stage2-start, stage3-start, stage4-start): Likewise.
5923         (stageprofile-start, stagefeedback-start): Likewise.
5924
5925 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5926
5927         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
5928         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5929         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5930         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
5931         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
5932         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
5933         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
5934         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
5935         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
5936         * config/sparc/t-linux: Removed.
5937
5938 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
5939
5940         PR c++/14755
5941         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
5942         "bitfld++ == const" to "++bitfld == const + incr" transformations.
5943
5944 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5945
5946         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
5947         * stor-layout.c (layout_decl): Likewise.
5948         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
5949         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
5950         * print-tree.c (print_node): Handle various used of unsigned_flag.
5951         * tree.def (BIT_FIELD_REF): Update comment.
5952         * tree.h (TREE_UNSIGNED): Deleted.
5953         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
5954
5955 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5956
5957         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
5958         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
5959         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
5960         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
5961         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
5962         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
5963         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
5964         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
5965         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
5966         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
5967         REAL_TYPE, not INTEGER_TYPE.
5968         (layout_type, case VECTOR_TYPE): Simplify code.
5969         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
5970         * tree.h: Update comments.
5971         (STRIP_NOPS): Use TYPE_UNSIGNED.
5972         (TYPE_UNSIGNED): New macro.
5973         (TYPE_TRAP_SIGNED): Remove now redundant check.
5974         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
5975
5976 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5977
5978         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
5979
5980 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
5981
5982         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
5983         Add darwin-fpsave.asm, darwin-vecsave.asm,
5984         and darwin-world.asm.
5985         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
5986         as the asm files contain altivec instructions.
5987         * config/rs6000/darwin-fpsave.asm: New file.
5988         * config/rs6000/darwin-vecsave.asm: New file.
5989         * config/rs6000/darwin-world.asm: New file.
5990
5991 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
5992
5993         * gengtype-yacc.y (option, stringseq): Add missing
5994         terminating semicolon.
5995
5996 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
5997
5998         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
5999         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6000         tls_dtprel_ha_32, tls_dtprel_ha_64,
6001         tls_dtprel_lo_32, tls_dtprel_lo_64,
6002         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6003         tls_tprel_ha_32, tls_tprel_ha_64,
6004         tls_tprel_lo_32, tls_tprel_lo_64,
6005         tls_got_tprel_32, tls_got_tprel_64,
6006         tls_tls_32, tls_tls_64): Replace register_operand with
6007         gpc_reg_operand.
6008
6009 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6010
6011         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6012         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6013         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6014         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6015         *ctrdi_internal6): Replace register_operand with
6016         nonimmediate_operand.
6017
6018 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6019
6020         * fold-const.c (fold): Reassociate multiply expression
6021         with an adjacent non-multiply expression to use
6022         architecture's multiply-add instruction.
6023
6024 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6025
6026         * gengtype.c (create_option): New function.
6027         * gengtype.h: Prototype it.
6028         * gengtype-yacc.y (stringseq): New rule.
6029         (option): Use create_option.  Add new bare ID production.  Use
6030         stringseq, not STRING directly.
6031
6032         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6033         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6034         * varray.h, config/alpha/alpha.c:
6035         Use new shorter form of GTY markers.
6036
6037         * doc/gty.texi: Rewrite.
6038
6039 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6040
6041         * config/darwin.c (machopic_function_base_name):
6042         Remove current_name and getting the name of the
6043         current function.
6044
6045 2004-03-30  Nick Clifton  <nickc@redhat.com>
6046
6047         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6048         range, and increase the forward branch range, to allow for
6049         the fact that the PC will be off by 4.
6050
6051 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6052
6053         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6054
6055 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6056
6057         * config/rs6000/rs6000.c (output_vec_const_move):
6058         Find all cases of EASY_VECTOR_15_ADD_SELF.
6059         (easy_vector_constant_add_self): Accept
6060         all vector constant loadable by vsplt* and vadd*.
6061         (easy_vector_same): Use easy_vector_splat_const.
6062         (easy_vector_const): Use easy_vector_splat_const.
6063         (easy_vector_splat_const): New function.
6064         (gen_easy_vector_constant_add_self): New function.
6065
6066         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6067         New prototype.
6068
6069         * config/rs6000/altivec.md (movv4si splitter): Change to
6070         emit move insn with halfed vector constant.
6071         (*movv8hi splitter): Likewise.
6072         (*movv16qi splitter): Likewise.
6073
6074 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6075
6076         PR 11591
6077         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6078         Allow any offset to argument pointer in no-strict case.
6079
6080 2004-03-30  Jan Hubicka  <jh@suse.cz>
6081
6082         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6083         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6084         dump file in non-unit-at-a-time mode.
6085
6086 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6087
6088         * config/cris/cris.h: Correct #ifdef to test for
6089         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6090         HAVE_AS_MUL_BUG_ABORT_OPTION.
6091
6092 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6093
6094         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6095         the address inside the old RTL.
6096
6097 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6098
6099         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6100         (struct c_binding, struct c_scope): Add chain_next
6101         attributes to GTY markers.
6102         (struct lang_identifier, struct lang_tree_node): Define
6103         here...
6104         * c-tree.h: ... not here.  No longer need to declare struct
6105         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6106         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6107         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6108
6109         PR 14734, 11944
6110         * c-decl.c (get_parm_info): If error_mark_node is encountered
6111         in the bindings chain, unbind and discard it; don't abort.
6112
6113 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6114             Dorit Naishlos <dorit@il.ibm.com>
6115
6116         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
6117         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
6118
6119 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
6120
6121         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
6122
6123         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
6124         (m68hc11_attribute_table): New attribute "page0" to mark a global
6125         variable as being allocated from within page0 section.
6126         (m68hc11_encode_label): New function.
6127         (m68hc11_strip_name_encoding): New function.
6128         (m68hc11_page0_symbol_p): New function.
6129         (m68hc11_indirect_p): Accept global variables marked in page0.
6130         (m68hc11_encode_section_info): Lookup "page0" attribute.
6131
6132         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
6133         represents access to page0 variables.
6134
6135         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
6136         ("*logicalsi3_silshl16_zext"): Likewise.
6137         ("*ashldi3_const32"): Likewise.
6138         (peephole2 ashift): Likewise.
6139
6140 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
6141
6142         * c-tree.h (C_DECL_REGISTER): New.
6143         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
6144         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
6145         (build_array_ref, c_mark_addressable): Set and use it.
6146         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
6147         Allow structures with volatile fields to be declared register.
6148         Don't check TREE_ADDRESSABLE before warning about taking address
6149         of register.
6150         * c-decl.c (finish_decl): Don't allow structures with volatile
6151         fields to be placed in named register.
6152         * doc/trouble.texi: Remove reference to structures with volatile
6153         fields in registers.
6154
6155 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6156
6157         * function.c (thread_prologue_and_epilogue): Move
6158         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
6159         before the epilogue.
6160
6161 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
6162
6163         * expr.c (store_constructor): Use gen_int_mode to correctly
6164         sign-extend CONST_INT value.
6165
6166 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6167
6168         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
6169         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
6170         * doc/extend.texi: Likewise.
6171
6172 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
6173
6174         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
6175           with TYPE_ORIG_SIZE_TYPE.
6176
6177 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
6178
6179         PR 14219
6180         * c-typeck.c (build_binary_op): Do not allow comparisons of
6181         vectors.
6182
6183 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
6184
6185         * config.gcc: Remove sparc-tti-*.
6186         * config/sparc/pbd.h: Delete.
6187
6188         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
6189         * config/sparc/aout.h: Likewise.
6190
6191         * config/sparc/sparc.h: Remove if 0'd code.
6192         * config/sparc/sparc.md (call): Remove if 0'd code.
6193         (call_value): Likewise.
6194         (nonlocal_goto): Likewise.
6195         (unimp_insn): Delete.
6196
6197 2004-03-25  Roger Sayle  <roger@eyesopen.com>
6198
6199         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
6200         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
6201
6202 2004-03-25  Richard Henderson  <rth@redhat.com>
6203
6204         PR 11527
6205         * c-typeck.c (pop_init_level): Emit pending init elements earlier
6206         rather than later.
6207
6208 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6209
6210         * builtins.c (fold_builtin): Fix error in last change.
6211
6212 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
6213
6214         * config/mips/mips.h: Formatting fix.
6215
6216 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6217
6218         * builtins.def: Add ctype builtins.
6219         * doc/extend.texi: Likewise.
6220
6221 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6222
6223         * builtins.c (fold_builtin): Add new builtin optimizations for
6224         sqrt and/or cbrt.
6225         * fold-const.c (fold): Likewise.
6226
6227 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
6228
6229         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
6230         (rs6000_sched_groups): New variable.
6231         (processor_target_table): Add power5.
6232         (rs6000_override_options): Set rs6000_sched_insert_nops,
6233         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
6234         from rs6000_sched_groups.
6235         (output_cbranch): Use rs6000_always_hint.
6236         (rs6000_variable_issue): Use rs6000_sched_groups.
6237         (rs6000_adjust_cost): Add CPU_POWER5.
6238         (is_microcoded_insn): Use rs6000_sched_groups.
6239         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
6240         Return 2 for POWER5 cracked instructions.
6241         (is_cracked_insn): Use rs6000_sched_groups.
6242         (is_branch_slot_insn): Use rs6000_sched_groups.
6243         (rs6000_issue_rate): Add CPU_POWER5.
6244         (rs6000_sched_finish): Use rs6000_sched_groups.
6245         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
6246         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
6247         (DEFAULT_SCHED_COSTLY_DEP): Delete.
6248         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
6249         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
6250         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
6251         * config/rs6000/power5.md: New file.
6252         * doc/invoke.texi: Add power5 option.
6253
6254 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
6255
6256         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
6257         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
6258         * doc/invoke.texi: Fix a typo.
6259
6260 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
6261
6262         PR optimization/9707.
6263         * stmt.c (emit_case_nodes): Emit equality comparisons instead
6264         of recursing if both children are single-valued cases with no
6265         children.
6266
6267 2004-03-25  Paul Brook  <paul@codesourcery.com>
6268
6269         * config/arm/arm.c (vfp_print_multi): Remove.
6270         (arm_output_fldmx): New function.
6271         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
6272         (arm_expand_prologue): Update to match.
6273         (arm_get_vfp_saved_size): New Function.
6274         (arm_get_frame_offsets): Use it.
6275         (arm_output_epilogue): Use new functions.
6276
6277 2004-03-24  Richard Henderson  <rth@redhat.com>
6278
6279         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
6280         (reg_known_value, reg_known_value_size): Likewise; make static.
6281         (reg_known_equiv_p): Make static.
6282         (clear_reg_alias_info): Update for new indexing.
6283         (get_reg_known_value, set_reg_known_value): New.
6284         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
6285         (canon_rtx): Use them.
6286         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
6287         Don't play queer offsetting games with reg_known_value and
6288         reg_known_equiv_p.
6289         (end_alias_analysis): Free reg_known_value with gc.
6290         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
6291         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
6292         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
6293         functions instead.
6294
6295 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
6296
6297         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
6298         config/i386/mmintrin.h: Update copyright.
6299
6300 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6301
6302         * configure.ac: Add --enable-werror-always (for top level bootstrap
6303         support).
6304         * configure: Regenerate.
6305
6306 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
6307
6308         * objc/objc-act.c (objc_comptypes): Treat comparisons
6309         between 'Class' and '<class> *' as explicitly invalid.
6310
6311 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
6312
6313         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
6314         (-fprofile-values): Add enabled with profile-{generate,use}.
6315         (-fvpt): Same.
6316         (-ftracer): Add enabled with profile-use.
6317         (-funit-at-a-time): Add enabled at -O2,-O3.
6318         (-funroll-loops): Add enabled with profile-use.
6319         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
6320         (max-gcse-passes): Mention default.
6321         (max-cse-path-length): Mention default.
6322
6323 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6324
6325         * Makefile.in (STRICT2_WARN): Reorder.
6326         * configure.ac: Check for -Wold-style-definition, and use it
6327         in strict1_warn if it's available.
6328         * configure: Regnerate.
6329
6330 2004-03-24  Paul Brook  <paul@nowt.org>
6331
6332         * config.gcc <arm>: Add --with-abi=
6333         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
6334         thumb_far_jump_used): Remove prototypes.
6335         (arm_needs_doubleword_align): Add prototype.
6336         (thumb_compute_initial_elimination_offset): Ditto.
6337         * config/arm/arm.c (arm_get_frame_offsets): New function.
6338         (use_return_insn, output_return_instruction, arm_output_epilogue,
6339         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
6340         arm_expand_prologue, thumb_expand_epilogue): Use it.
6341         (arm_abi, target_abi_name, all_arm_abis): New variables.
6342         (arm_override_options): Set them.  Set structure padding for AAPCS.
6343         (arm_return_in_memory): Update ABI check.
6344         (arm_init_cumulative_args): Initialize can_split.
6345         (arm_needs_doubleword_align): New function.
6346         (arm_function_arg): Don't split args after pushing to stack. Handle
6347         doubleword/even reg alignment.
6348         (arm_va_arg): Handle all doubleword aligned args.
6349         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
6350         on ABI, not CPU.
6351         (arm_compute_save_reg0_reg12_mask): Fix comment.
6352         (thumb_get_frame_size, thumb_get_frame_size): Remove.
6353         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
6354         value for alignment.
6355         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
6356         to match.
6357         (thumb_compute_initial_elimination_offset): New function.
6358         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
6359         unneccessary rounding.
6360         * config/arm/arm.h (target_abi_name): Declare.
6361         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
6362         arm_abi_type, ARM_DEFAULT_ABI): Define.
6363         (ARM_FLAG_ATPCS): Remove.
6364         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
6365         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
6366         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
6367         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
6368         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
6369         Contitionalize on ABI, not CPU.
6370         (struct arm_stack_offsets): Define.
6371         (struct machine_function): Add stack_offsets.  Remove frame_size.
6372         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
6373         pushed.
6374         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
6375         doubleword alignment.
6376         (THUMB_INITIAL_ELIMINATION_OFFSET,
6377         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
6378         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
6379         * config/arm/arm.md (align_8): Enable for all targets.
6380         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
6381         (ARM_DEFAULT_ABI): Define.
6382         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
6383         -mstructure-size-boundary.
6384
6385 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
6386
6387         * configure.ac: Check for -Wno-variadic-macros; don't use
6388         -pedantic (in stage 1 or a simple 'make all') unless it's available,
6389         and if it's available, use it.  Also, clean up check for
6390         -Wno-long-long.
6391         * configure: Regenerate.
6392
6393 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6394
6395         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
6396         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
6397         (MULTILIB_DEFAULTS): Use it.
6398         (MIPS_CPU_STRING_DEFAULT): Remove.
6399         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
6400         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
6401         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
6402         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
6403         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
6404         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
6405         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
6406         accordingly.
6407
6408 2004-03-24  DJ Delorie  <dj@redhat.com>
6409             Richard Sandiford  <rsandifo@redhat.com>
6410
6411         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
6412         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
6413         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
6414         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
6415         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
6416         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
6417         if TARGET_FIX_VR4122.
6418         * config/mips/mips.md (define_attr length): Account for nops inserted
6419         after macc and dmult when using -mfix-vr4122-bugs.
6420         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
6421         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
6422         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
6423         * config/mips/vr4122-div.S: New file.
6424         * doc/invoke.texi: Document -mfix-vr4122-bugs.
6425
6426 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
6427
6428         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
6429         (TARGET_MIPS4130): New macro.
6430         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
6431         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
6432         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
6433         with PROCESSOR_R4130.
6434         * config/mips/mips.md (define_attr cpu): Add r4130.
6435         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
6436
6437 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6438             Richard Sandiford  <rsandifo@redhat.com>
6439
6440         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
6441
6442 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
6443
6444         PR preprocessor/14438
6445         * cpplib.c (do_pragma): Remove line_change call after pragma
6446         handler.
6447
6448 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
6449
6450         * doc/extend.texi (ARM Built-in Functions): Replace with correct
6451         declarations.
6452
6453 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6454
6455         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
6456         if flag_unsafe_math_optimizations.
6457         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
6458         and TARGET_80387 expand using truncdfsf2_noop pattern.
6459         (truncxfsf2): Likewise using truncxfsf2_noop.
6460         (truncxfdf2): Likewise using truncxfdf2_noop.
6461         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
6462
6463 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
6464
6465         * hooks.c (hook_constcharptr_tree_null): New hook.
6466         * hooks.h (hook_constcharptr_tree_null): New prototype.
6467         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
6468         * target.h (mangle_fundamental_type): New target hook.
6469         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
6470         target hook at rs6000_mangle_fundamental_type.
6471         (rs6000_mangle_fundamental_type): New function.
6472         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
6473
6474 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
6475
6476         PR 12267, 12391, 12560, 13129, 14114, 14133
6477         * c-tree.h: Forward declare struct c_binding.  Declare
6478         c_override_bindings_to_false.  Update prototypes.
6479         (struct lang_identifier): Update comments.  Change fields to be
6480         struct c_binding *.
6481         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
6482         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
6483         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
6484         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
6485         * c-common.h: Update prototypes.
6486         * c-decl.c (struct c_scope): Update commentary.  Remove names,
6487         names_last, parms, parms_last, tags, and shadowed fields.  Add
6488         bindings and depth fields.
6489         (scope_freelist): Move to more appropriate location.
6490         (c_print_identifier): Update for changes to struct lang_identifier.
6491         (objc_mark_locals_volatile): Update for new bindings structures.
6492         (global_bindings_p): Honor c_override_global_bindings_to_false.
6493         (pushlevel): Rename to push_scope; take no arguments; use the
6494         scope_freelist; initialize scope->depth and check for overflow.
6495         (poplevel): Rename to pop_scope; totally rewritten for new bindings
6496         structures.
6497         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
6498         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
6499         Improve some commentary.  Adjust handling of forward parm decls.
6500         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
6501         Preserve C_DECL_IN_EXTERNAL_SCOPE.
6502         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
6503         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
6504         decls.  Rewrite for new bindings structures.  Improve commentary.
6505         Eliminate the copy_node call.
6506         (implicit_decl_warning): Use the "diag" idiom (as seen in
6507         locate_old_decl) to reduce code duplication; call locate_old_decl
6508         if appropriate.  Relocate to remove need for forward declaration.
6509         (implicitly_declare): Adjust for new bindings structures.  Kludge
6510         around Objective-C not-really-builtin functions.
6511         (undeclared_variable): Improve diagnostics.  If current_function_decl
6512         is nonnull but current_function_scope is null, use current_scope.
6513         Use bind.
6514         (lookup_tag): Adjust for new bindings structures.  Kludge around
6515         Objective-C's tag declarations that wind up in the external scope.
6516         (lookup_name): Adjust for new bindings structures.  Kludge around
6517         c-common.c's pseudo-typedefs that wind up in the external scope.
6518         (lookup_name_current_level): Rename lookup_name_in_scope; take a
6519         second argument indicating the scope to examine; rewrite for
6520         new bindings structures.
6521         (c_init_decl_processing): Adjust for renamed functions.  Do not
6522         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
6523         First scope pushed is the external scope, not the global scope.
6524         (builtin_function): Use bind, not pushdecl.  Adjust other bits
6525         for new data structures.  Keep track of builtins that should be
6526         made visible automatically.
6527         (start_decl): Adjust diagnostics.  Remove unnecessary call to
6528         expand_decl.
6529         (grokparms): Return 0 if arg_types is error_mark_node.
6530         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
6531         reversed sense.  Rewrite for new bindings structures.  Do not
6532         leave any decls in the scope, to prevent pop_scope from doing
6533         contradictory things with them.
6534         (finish_struct, finish_enum): Remove redundant diagnostics.
6535         (build_enumerator): Don't cascade diagnostics for error_mark_node.
6536         Mark location where -pedantic changes the meaning of the program.
6537         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
6538         parameter decls into the function's scope structure using bind.
6539         Warn here about function definitions in the wrong style.
6540         Adjust diagnostics.
6541         (store_parm_decls): Correct the determination of whether a
6542         function was defined with a prototype.
6543         (c_write_global_declarations): Operate on all file decls and on
6544         the external scope.  Split body of the loop to...
6545         (c_write_global_declarations_1): ... this new function, to avoid
6546         code duplication.
6547         (truly_local_externals, first_builtin_decl, last_builtin_decl)
6548         (make_scope, pop_scope, in_parm_level_p, set_block)
6549         (any_external_decl, record_external_decl, bind_label, getdecls)
6550         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
6551         (c_reset_state): Delete.
6552         (visible_builtins, c_override_global_bindings_to_false)
6553         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
6554         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
6555         (external_scope, binding_freelist, bind, free_binding_and_advance)
6556         (push_file_scope, pop_file_scope): New.
6557         (pushtag, pushdecl_top_level, lookup_label, declare_label)
6558         (define_label, c_make_fname_decl, finish_decl)
6559         (mark_forward_parm_decls, build_compound_literal)
6560         (grokdeclarator, start_function, check_for_loop_decls)
6561         (identifier_global_value, record_builtin_type): Minor adjustments
6562         for new bindings structures.  Improve diagnostics and commentary.
6563         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
6564         pushlevel/poplevel respectively.
6565         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
6566         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
6567         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
6568         correct loop over multiple translation units; call fatal_error if
6569         requested to compile more than one file at once.  (This disables
6570         IMA temporarily - an up-front error being preferable to a crash.)
6571         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
6572         (all actions): Adjust calls to pushlevel/poplevel.
6573         (parsing_iso_function_signature): Delete.
6574         (extdef_1): Fold into extdef.
6575         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
6576         warn here about function definitions in the wrong style.
6577         (after_tyle_declarator, parm_declarator_starttypename)
6578         (parm_declarator_nostarttypename, notype_declarator): Remove
6579         commented-out productions.
6580         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
6581         an empty TREE_LIST node.  Adjust calls to get_parm_info.
6582         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
6583         to suppress -Wold-style-definition after this error.
6584         (c_parse_file): Don't clear the binding stack or call
6585         finish_fname_decls here.  Correct comment.
6586         * c-typeck.c (same_translation_unit_p): Export.
6587         (common_type): Use c_override_global_bindings_to_false, not
6588         pushlevel/poplevel/declare_parm_level.
6589         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
6590         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
6591         and LANG_HOOKS_GETDECLS with do-nothing stubs.
6592         * objc/objc-lang.c: Likewise.
6593         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
6594         get_parm_info.
6595         (OBJC_VOID_AT_END): Delete; replace all uses
6596         with void_list_node.
6597         (generate_forward_declaration_to_string_table): Delete.
6598         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
6599
6600         * coverage.c (create_coverage): Don't pushdecl anything.
6601         * langhooks.c (lhd_clear_binding_stack): Call
6602         lang_hooks.decls.poplevel, not poplevel.
6603         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
6604         circular list rather than going into an infinite loop.
6605
6606 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
6607
6608         * optabs.c (expand_binop): When synthesizing double word rotates
6609         from single word shifts, use a new register target if the provided
6610         target is not a REG already.
6611
6612 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6613
6614         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
6615         * c-common.c (handle_mode_attribute): Add extra arg to
6616         build_pointer_type_for_mode and build_reference_type_for_mode.
6617         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
6618         for INTEGER_CST.
6619         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
6620         Chain pointers via TYPE_NEXT_PTR_TO.
6621         (build_reference_type_for_mode): Similarly.
6622         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
6623         and build_reference_type_for_mode.
6624         (tree_check4_failed): New function.
6625         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
6626         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
6627         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
6628         Add check.
6629
6630 2004-03-23  Roger Sayle  <roger@eyesopen.com>
6631
6632         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
6633         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
6634         when both A and B are nonnegative.
6635         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
6636         nonzero.
6637
6638 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6639
6640         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
6641         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
6642
6643 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
6644
6645         PR optimization/14669
6646         * fold-const.c (fold): Only unwiden integer comparisons for equality
6647         and inequality operators, or when the signedness doesn't change.
6648
6649 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
6650
6651         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
6652         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
6653         * config/sparc/t-linux: New file.
6654
6655 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
6656
6657         * gcse.c (can_assign_to_reg_p): New function, split out from...
6658         (want_to_gcse_p): ...here.
6659         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
6660         the rhs of a store.
6661
6662 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
6663
6664         * c-typeck.c (same_translation_unit_p): Fix pasto.
6665
6666 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
6667
6668         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
6669         (PARAM_MAX_SCHED_REGION_INSNS): New.
6670         * sched-rgn.c: Include params.h
6671         (MAX_RGN_BLOCKS): Delete.
6672         (MAX_RGN_INSNS): Delete.
6673         (too_large): Return bool.  Convert to PARAM_VALUE.
6674         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
6675         * doc/invoke.texi (param): Document max-sched-region-blocks and
6676         max-sched-region-insns.
6677
6678 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6679
6680         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
6681         for base types.
6682
6683 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
6684
6685         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
6686         change.
6687
6688 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
6689
6690         PR c/14069
6691         * c-decl.c (finish_struct): Change type of incorrect flexible array
6692         field into error_mark_node.
6693
6694 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
6695
6696         PR target/14580
6697         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
6698         who are not local for Darwin PIC.
6699
6700 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
6701
6702         * regrename.c (regrename_optimize): Set regs_ever_live for all
6703         registers introduced as replacement.
6704
6705 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
6706
6707         PR middle-end/14470
6708         * expr.c (mark_queue): New function.
6709         (emit_insns_enqueued_after_mark): New function replacing
6710         emit_queue.  Clear the body of emitted queued insns.
6711         (emit_queue): Call emit_insns_enqueued_after_mark.
6712         (store_expr): Mark the increment queue on entry.  Emit
6713         only the incrementations queued when expanding the source.
6714
6715 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
6716
6717         * configure.ac: Allow --disable-coverage-flags (for the future benefit
6718         of top level bootstrap, and consistency).  Reindent.
6719         * configure: Regenerate.
6720
6721 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
6722
6723         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
6724         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
6725         unnecessary casts.
6726
6727 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
6728
6729         PR target/14291
6730         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
6731         __MINGW32__.
6732
6733 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6734
6735         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
6736         to nonimmediate_operand.
6737         ("*doloop_di"): Likewise.
6738
6739 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
6740
6741         * real.h (struct real_value): Use the same type for all
6742         bitfields.  Rename exp to uexp.
6743         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
6744         Adjust all uses of exp...
6745         * builtins.c: ... here, ...
6746         * emit-rtl.c: ... here, and ...
6747         * real.c: ... and here.
6748
6749 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
6750
6751         * pretty-print.c (pp_base_maybe_space): New function.
6752         * pretty-print.h (pp_base_maybe_space): Declare.
6753         (pp_maybe_space): New macro.
6754
6755 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6756
6757         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
6758
6759 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
6760
6761         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
6762         of using register multiplication cost.
6763         (expand_mult): Adapt choose_mult_variant call.
6764         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
6765         of MODE; pass appropriate cost bound.  Adjust result when
6766         performing signed multiplication by a negative constant.
6767         Don't use intermediate modes larger than word_mode.
6768
6769 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6770
6771         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
6772         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
6773         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
6774         * explow.c (expr_size): Likewise.
6775         * expr.h (placeholder_list, find_placeholder): Deleted.
6776         * expr.c (store_constructor): Likewise.
6777         (get_inner_reference): Likewise.  Also don't call find_placeholder.
6778         (placeholder_list, find_placeholder): Deleted.
6779         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
6780         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
6781         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
6782         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
6783         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
6784         Likewise.
6785         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
6786         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
6787         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
6788         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
6789         Clean up by using first_rtl_op.
6790         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
6791         (substitute_placeholder_in_expr): New function.
6792         * tree.def (WITH_RECORD_EXPR): Deleted.
6793         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
6794         (substitute_placeholder_in_expr): New.
6795
6796 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
6797
6798         * dojump.c (prefer_and_bit_test): Fix which part of
6799         the and_test is replaced.
6800
6801 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
6802
6803         * frontends.texi: Add missing line.
6804
6805 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
6806             Chris Devers  <cdevers@pobox.com>
6807             Joseph S. Myers  <jsm@polyomino.org.uk>
6808
6809         * doc/frontends.texi: Rewrite.
6810         * doc/gcc.texi: Update last modification date.
6811
6812 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
6813
6814         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
6815         message before redirecting the edge.
6816
6817 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6818
6819         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
6820         flag.
6821         * explow.c (force_not_mem): Set REG_POINTER flag according to
6822         MEM_POINTER one.
6823         * rtl.h (MEM_POINTER): New macro.
6824         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
6825         for MEM_POINTER.
6826
6827 2004-03-20  Roger Sayle  <roger@eyesopen.com>
6828
6829         PR target/13889
6830         * cse.c (fold_rtx): Avoid substituting constants into unary
6831         conversion operations.
6832
6833 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6834
6835         * fold-const.c (fold): Replace "expr" with "t".
6836
6837 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
6838
6839         PR c/12373
6840         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
6841         DECL_ORIGINAL_TYPE if there isn't one.
6842
6843 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6844
6845         * fold-const.c (fold): Replace "final_type" with "type".
6846         Remove variable "final_type".
6847
6848 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6849
6850         * fold-const.c (fold): Constify "type".
6851         Replace "TREE_TYPE (t)" with "type".
6852
6853 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6854
6855         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
6856         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
6857         via (*targetm.foo) () with targetm.foo ().
6858
6859 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6860
6861         PR other/14630
6862         * doc/install.texi: Add info directory category and entry.
6863
6864 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6865
6866         * fold-const.c (fold): Replace "t" with "tem" where it is used
6867         as a temporary variable.  Remove "orig_t" and all of its uses.
6868
6869 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6870
6871         * fold-const.c (fold): Remove variable "invert".
6872         Move the handling of relational expressions that can be folded
6873         to a constant ...
6874         (fold_relational_const): ... here.
6875         (tree_expr_nonzero_p): New.
6876
6877 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
6878
6879         PR c/14635
6880         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
6881         DEF_GCC_BUILTIN.
6882
6883 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
6884
6885         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
6886         (GTFILES): Add $(srcdir)/dojump.h.
6887         (gt-dojump.h): New dependency.
6888         * dojump.c (and_reg, and_test, shift_test): New static variables.
6889         (prefer_and_bit_test): New function.
6890         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
6891
6892 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
6893
6894         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
6895         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
6896         reorg.c, tree.h: Fix comment typos.
6897
6898 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6899
6900         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
6901         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
6902         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
6903         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
6904         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
6905         vmsdbgout.c: Replace calls via (*targetm.foo) () with
6906         targetm.foo ().
6907
6908 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
6909
6910         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
6911         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
6912         always_inline attribute.
6913         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
6914         Treat expansion as completed even if literal argument is
6915         invalid (so that other expansions are not tried in vain).
6916
6917 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6918
6919         * loop-doloop.c (add_test): Replace GEN_INT (0) with
6920         const0_rtx.
6921
6922 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6923
6924         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
6925         ...
6926         (fold_abs_const): ... here.
6927
6928 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6929
6930         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
6931
6932 2004-03-19  Denis Chertykov  <denisc@overta.ru>
6933
6934         PR target/11520
6935         * config/avr/avr.md ("call_insn"): Handle explicit integer
6936         specially.
6937         (call_value_insn): Likewise.
6938
6939 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6940
6941         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
6942
6943 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
6944
6945         * fold-const.c (negate_expr): Move the handling of constants
6946         ...
6947         (fold_negate_const): ... here.
6948
6949 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6950
6951         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
6952         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
6953         * tree.c (debug_no_type_hash): Deleted.
6954         (type_hash_canon): Abort if passed a variant.
6955         Check lang_hooks.types.hash_types.
6956         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
6957         (build_array_type): Remove unnecessary allocation of pointer type.
6958         (build_complex_type): Properly qualify resulting type.
6959
6960 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
6961
6962         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
6963
6964 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
6965
6966         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
6967         (expand_mult): ...here.
6968         (extract_high_half): New, split out from expand_mult_highpart.
6969         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
6970         (expand_highpart): Evaluate the cost of a shift/add sequence,
6971         then see if any of the specialized optabs are cheaper.
6972
6973 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
6974
6975         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
6976
6977 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6978
6979         * convert.c (convert_to_real): Add more math builtins.
6980
6981 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6982
6983         * convert.c (convert_to_real): Reformat using switch stmt.
6984
6985 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
6986
6987         * c-common.c (pointer_int_sum): Do not complain about using
6988         pointers to pointers-to-members.
6989
6990 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
6991
6992         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
6993         have moved to the target hooks structure".
6994
6995 2004-03-18  James E Wilson  <wilson@specifixinc.com>
6996
6997         * config/mips/mips.md (type): Split move into arith and fmove.  Split
6998         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
6999         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7000         Likewise.
7001         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7002         Likewise.
7003         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7004         rm7_fp_quick): Likewise.
7005         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7006         rm9k_fquick): Likewise.
7007         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7008         Likewise.
7009         (ir_sr70_icmp): Delete.
7010
7011 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7012
7013         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7014         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7015         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7016         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7017         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7018         Protect with proper check.
7019         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7020         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7021         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7022         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7023         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7024         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7025         not TYPE_FIELDS.
7026         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7027
7028 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7029
7030         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7031         dest is set between beginning and current insn.
7032
7033 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7034
7035         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7036         visible "static" identifiers "extern" in a local scope.
7037         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7038         post-increments/decrements.
7039
7040 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7041
7042         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7043         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7044         (xtensa_va_start): Remove assignment to current_function_arg_words.
7045
7046 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7047
7048         * alias.c (record_set): Detect the case where a register is assigned
7049         a new value that has the same base term as the old one.
7050
7051 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7052
7053         * doloop.c: Removed.
7054         * loop-doloop.c: New file.
7055         * Makefile.in (doloop.o): Remove.
7056         (loop-doloop.o): New.
7057         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7058         * cfgloopanal.c (get_loop_level): New function.
7059         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7060         is leaved immediatelly.
7061         * loop.c (strength_reduce): Do not call doloop optimization.
7062         * loop.h (LOOP_BCT): Removed.
7063         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7064         (rest_of_handle_loop2): Call doloop_optimize_loops.
7065         (rest_of_compilation): Test for optimizations moved to
7066         rest_of_handle_loop2.
7067
7068 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7069
7070         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7071         for mixed mode.
7072         (rs6000_emit_prologue): Ditto.
7073         (rs6000_emit_epilogue): Ditto.
7074         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7075         macro for mixed mode.
7076
7077 2004-03-18  Jan Hubicka  <jh@suse.cz>
7078
7079         * predict.c (propagate_freq): Compute correctly frequency of
7080         EXIT_BLOCK.
7081
7082 2004-03-17  Eric Christopher  <echristo@redhat.com>
7083
7084         * builtins.c (apply_args_size): Use reg_raw_mode.
7085         (apply_result_size): Ditto.
7086
7087 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7088
7089         PR target/14620
7090         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7091
7092 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7093
7094         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7095         32-bit builds when defaulting to 32-bit.
7096
7097 2004-03-17  Jan Hubicka  <jh@suse.cz>
7098
7099         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7100         array.
7101
7102 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7103
7104         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7105         (hazard_nop): Change type to nop.
7106         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7107         Fix all uses.  Change arith to multi if more than one insn emitted.
7108         * config/mips/5400.md (ir_vr54_arith): Likewise.
7109         * config/mips/5500.md (ir_vr55_arith): Likewise.
7110         * config/mips/7000.md (rm7_int_other): Likewise.
7111         * config/mips/9000.md (rm9k_int): Likewise.
7112         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7113
7114 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7115
7116         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
7117         to hold the subtype tree instead of recomputing it several times.
7118
7119 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
7120
7121         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
7122         CC_INVERT.
7123         * config/mn10300/mn10300.md (cc): Remove "invert".
7124
7125 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7126
7127         * builtins.c (integer_valued_real_p): Add builtin rint.
7128         (fold_builtin): Likewise.
7129         * convert.c (convert_to_real): Likewise.
7130
7131         * convert.c (convert_to_real): Fix typos in `long double'
7132         builtins.
7133
7134 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
7135
7136         PR c++/14481
7137         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
7138         generated COMPOUND_EXPRs.
7139
7140 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7141
7142         * config/h8300/t-rtems (h8300-*-rtems*): New.
7143
7144 2004-03-16  Eric Christopher  <echristo@redhat.com>
7145
7146         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
7147
7148 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7149
7150         * config/i386/i386-protos.h: Add a prototype for
7151         ix86_reverse_condition.
7152         * config/i386/i386.c (ix86_reverse_condition): New.
7153         * config/i386/i386.h (REVERSE_CONDITION): Use
7154         ix86_reverse_condition.
7155         * config/i386/i386.md: Use ix86_reverse_condition instead of
7156         REVERSE_CONDITION.
7157
7158 2004-03-16  J. Brobecker  <brobecker@gnat.com>
7159
7160         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
7161
7162 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
7163
7164         PR bootstrap/12974
7165         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
7166
7167 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7168
7169         * c-common.c (c_common_type_for_mode): Build vector types on
7170         demand.
7171         (handle_mode_attribute): Deprecate using the mode attribute
7172         to create vector types.  Fix indentation.
7173         (vector_type_node_list): Remove.
7174         (handle_vector_size_attribute): Create vector types on demand.
7175         Strip a NON_LVALUE_EXPR from the attribute if there is one.
7176         * c-typeck.c (comptypes): Make vector types compatible if they
7177         have the same underlying mode.
7178         (convert_for_assignment): Use comptypes to convert between
7179         vector types.
7180         * tree.c (build_common_tree_nodes_2): Do not create vector types.
7181         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
7182         vector types.
7183         * tree.h: Remove vector types.
7184         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
7185         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
7186         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
7187         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
7188         * doc/extend.texi (Vector Types): Document how to use the
7189         vector_size attribute to create vectors, rather than mode.
7190
7191         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
7192         * config/i386/emmintrin.h: Likewise.
7193         * config/i386/mmintrin.h: Likewise.
7194         * config/i386/xmmintrin.h: Likewise.
7195         * config/sh/ushmedia.h: Likewise.
7196
7197 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
7198
7199         * config/freebsd-spec.h, config/arc/arc-protos.h,
7200         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
7201         config/arm/linux-gas.h, config/arm/semi.h,
7202         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
7203         config/ia64/freebsd.h, config/mips/7000.md,
7204         config/mips/9000.md, config/ns32k/ns32k-protos.h,
7205         config/sparc/pbd.h: Update copyright.
7206
7207 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7208
7209         PR target/14577
7210         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
7211
7212 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
7213
7214         * combine.c (combine_simplify_rtx): Remove the "last"
7215         parameter and its documentation.  Adjust recursive calls.
7216         (simplify_logical): Always perform the only simplification
7217         controlled by "last", if the simplified expression is
7218         actually different.
7219         (try_combine): Do not pass the "last" parameter to
7220         combine_simplify_rtx.
7221
7222 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
7223
7224         PR target/14599
7225         * config/mips/mips.md (UNSPEC_GP): New constant.
7226         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
7227         an UNSPEC instead of (reg $gp).
7228         (mips16_gp_pseudo_reg): Change accordingly.
7229         (print_operand): Print $gp directly when handling CONST_GP_P.
7230
7231 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
7232
7233         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
7234         * longlong.h: Make code 68060 clean when compiling for m68060.
7235
7236 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
7237
7238         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
7239         * doc/md.texi: Clarify description of "i" constraint.
7240
7241 2004-03-15  James E Wilson  <wilson@specifixinc.com>
7242
7243         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
7244         Split store into store, fpstore, fpidxstore.  Fix all uses.
7245         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
7246         Likewise.
7247         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
7248         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
7249         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
7250         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
7251         ir_sr70_fstore): Likewise.
7252
7253 2004-03-15  Richard Henderson  <rth@redhat.com>
7254
7255         PR middle-end/14535
7256         * except.c (collect_one_action_chain): Record action for cleanup
7257         outer of exception spec.
7258
7259 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
7260
7261         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7262         Fix the check for abort and only do the mmap if we can.
7263
7264 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
7265
7266         * config/sparc/sparc.h: Rework comments about the code model
7267         in 64-bit environment and the mode 'Pmode'.
7268         * doc/invoke.texi (SPARC options): Rework description of the
7269         different code models supported in 64-bit environment.
7270
7271 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
7272
7273         * defaults.h (REVERSIBLE_CC_MODE): Define.
7274         * jump.c (reversed_comparison_code_parts): Don't check if
7275         REVERSIBLE_CC_MODE is defined.
7276
7277 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
7278
7279         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
7280         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
7281         hosthooks.h, params.h, ra-colorize.c, web.c,
7282         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
7283         config/avr/avr-protos.h, config/avr/avr.md,
7284         config/fr30/fr30-protos.h, config/fr30/fr30.md,
7285         config/h8300/fixunssfsi.c, config/i386/darwin.h,
7286         config/i386/freebsd.h, config/i386/freebsd64.h,
7287         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
7288         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
7289         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
7290         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
7291         config/pa/pa64-regs.h, config/rs6000/aix41.h,
7292         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
7293         config/sparc/aout.h, config/sparc/freebsd.h,
7294         config/sparc/litecoff.h, config/vax/vax-protos.h,
7295         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
7296         copyright.
7297
7298 2004-03-15  Paul Brook  <paul@codesourcery.com>
7299
7300         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
7301
7302 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7303
7304         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
7305         (pp_c_cv_qualifier): Document.
7306         (pp_c_space_for_pointer_operator): Likewise.
7307         (pp_c_integer_constant): Likewise.
7308         (pp_c_identifier): Likewise.
7309         (pp_c_init_declarator): Don't print function body.
7310
7311 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
7312
7313         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
7314         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
7315         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
7316         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
7317         wording and grammar.
7318
7319 2004-03-14  Roger Sayle  <roger@eyesopen.com>
7320
7321         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
7322         with lang_hooks.foo ().
7323         * builtins.c (expand_builtin_va_arg): Likewise.
7324         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
7325         c_common_type_for_mode, c_common_nodes_and_builtins,
7326         handle_mode_attribute, handle_vector_size_attribute): Likewise.
7327         * c-convert.c (convert): Likewise.
7328         * c-format.c (check_format_types): Likewise.
7329         * c-objc-common.c (c_tree_printer): Likewise.
7330         * c-typeck.c (build_unary_op, build_conditional_expr,
7331         build_binary_op): Likewise.
7332         * calls.c (try_to_integrate, expand_call,
7333         emit_library_call_value_1): Likewise.
7334         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
7335         Likewise.
7336         * cgraphunit.c (record_call_1, cgraph_analyze_function,
7337         cgraph_expand_function): Likewise.
7338         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
7339         * coverage.c (build_fn_info_type, build_ctr_info_type,
7340         build_gcov_info, create_coverage): Likewise.
7341         * dbxout.c (dbxout_init): Likewise.
7342         * diagnostic.c (diagnostic_report_current_function): Likewise.
7343         * dojump.c (do_jump): Likewise.
7344         * dwarf2out.c (dwarf2_name): Likewise.
7345         * except.c (init_eh): Likewise.
7346         * explow.c (expr_size, int_expr_size): Likewise.
7347         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
7348         Likewise.
7349         * expr.c (store_expr, store_constructor, safe_from_p,
7350         expand_expr_real, do_store_flag, try_casesi): Likewise.
7351         * function.c (push_function_context_to, pop_function_context_from,
7352         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
7353         put_var_into_stack, allocate_struct_function, current_function_name):
7354         Likewise.
7355         * integrate.c (copy_decl_for_inlining, expand_inline_function):
7356         Likewise.
7357         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
7358         lhd_print_error_function): Likewise.
7359         * opts.c (handle_option, decode_options): Likewise.
7360         * passes.c (open_dump_file): Likewise.
7361         * print-tree.c (print_node): Likewise.
7362         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
7363         expand_decl_cleanup, emit_case_nodes): Likewise.
7364         * stor-layout.c (variable_size): Likewise.
7365         * toplev.c (announce_function, wrapup_global_declarations,
7366         check_global_declarations, compile_file, default_tree_printer,
7367         process_options, lang_dependent_init, finalize): Likewise.
7368         * tree-dump.c (dequeue_and_dump): Likewise.
7369         * tree-inline.c (remap_decl, remap_block, copy_body_r,
7370         initialize_inlined_parameters, declare_return_variable,
7371         inlinable_function_p, expand_call_inline, optimize_inline_calls,
7372         walk_tree, copy_tree_r): Likewise.
7373         * tree-optimize.c (tree_rest_of_compilation): Likewise.
7374         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
7375         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
7376         variably_modified_type_p, dump_tree_statistics): Likewise.
7377         * varasm.c (assemble_variable, compare_constant, copy_constant,
7378         force_const_mem, compute_reloc_for_constant, output_constant,
7379         output_addressed_constants, initializer_constant_valid_p): Likewise.
7380
7381 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
7382
7383         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
7384
7385 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
7386
7387         * doc/install.texi: Reflect autoconf and automake version for
7388         libffi. Update autoconf version to 2.59.
7389
7390 2004-03-13  Roger Sayle  <roger@eyesopen.com>
7391
7392         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
7393         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
7394         make_range, build_range_check, fold_range_test, unextend,
7395         constant_boolean_node, fold_binary_op_with_conditional_arg,
7396         fold_truthop, fold_mathfn_compare, fold_inf_compare,
7397         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
7398         with lang_hooks.foo ().
7399
7400 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
7401
7402         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
7403
7404 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
7405
7406         * doc/install.texi: Note status of -fnew-ra.
7407
7408 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
7409
7410         PR middle-end/14470
7411         * expr.c (store_expr): Call emit_queue before generating the move
7412         from the temporary to the original target.  Protect the temporary
7413         from emit_queue.
7414
7415 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
7416
7417         PR target/14533
7418         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
7419         other than UNSPEC_GOTOFF.
7420
7421 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
7422
7423         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
7424         to arm_legitimate_index_p.  Update all callers with SET as default
7425         value.
7426         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
7427         range if OUTER is a sign-extend operation on QImode.  Correctly
7428         reject shift operations on sign-extended QImode addresses.
7429         (bad_signed_byte_operand): Delete.
7430         (arm_extendqisi_mem_op): New function.
7431         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
7432         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
7433         constraints.
7434         (CONSTRAINT_LEN): New.
7435         (EXTRA_CONSTRAINT): Delete.  Replace with...
7436         (EXTRA_CONSTRAINT_STR): ... this.
7437         (PREDICATE_CODES): Remove bad_signed_byte_operand.
7438         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
7439         is now always default.
7440         (define_splits for bad sign-extend loads): Delete.
7441         (arm_extendqisi, arm_extendqisi_v5): Likewise.
7442         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
7443         Rework 'U' constraint to 'Uv'.
7444         * arm-protos.h: Remove bad_signed_byte_operand.  Add
7445         arm_extendqisi_mem_op.
7446         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
7447         Add Uq constraint.
7448
7449 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
7450
7451         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
7452         with targetm version.
7453
7454         PR target/14567
7455         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
7456         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
7457         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
7458         Update all users of RS6000_ARG_SIZE.
7459         (function_arg_advance): Count fregno using mode size.
7460         (function_arg): Handle long double split over regs and memory.
7461         (function_arg_partial_nregs): Likewise.
7462         (rs6000_va_arg): Repackage complex args.
7463
7464 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
7465
7466         PR target/14047
7467         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
7468         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
7469         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
7470
7471 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
7472
7473         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
7474         prototype.
7475         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
7476         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7477
7478 2003-03-12  Andrew Pinski  <apinski@apple.com>
7479
7480         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
7481         Use ret instead of result. Use addr instead of base.
7482
7483 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
7484
7485         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
7486         fixes required by libstdc++ and update installation instructions
7487         for libstdc++.a.
7488
7489 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
7490
7491         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
7492         leading '@' on fastcall symbols before stripping suffix.
7493
7494 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7495
7496         * combine.c (unmentioned_reg_p): New function to check whether an
7497         expression is a "specialization" of another, i.e. that there are
7498         no registers or memory references mentioned in the first that don't
7499         appear in the second.
7500         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
7501         (combine_instructions): Also try combining instructions using the
7502         REG_EQUAL note from a preceding log-linked instruction.
7503
7504 2004-03-12  Roger Sayle  <roger@eyesopen.com>
7505
7506         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
7507
7508 2004-03-12  Matt Austern  <austern@apple.com>
7509
7510         * target.h (struct gcc_target): New target hook, unwind_label.
7511         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
7512         * output.h (default_emit_unwind_label): New function.
7513         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
7514         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
7515         (TARGET_SUPPORTS_HIDDEN): New target macro.
7516         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
7517         that corresponds to this FDE.
7518         (FRAME_BEGIN_LABEL): Allow target to override default label.
7519         (output_call_frame_info): If FDEs are linknonce, then use extra
7520         indirection for FDE encoding, output a label for each FDE, and
7521         output an empty label for each function without an FDE.
7522         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
7523         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
7524         decls with DECL_ONE_ONLY set, if that macro is defined.
7525         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
7526         for a SUPPORTS_ONE_ONLY target.
7527         * config/darwin-protos.h (darwin_unique_section): Declare.
7528         (darwin_asm_named_section): Likewise.
7529         (darwin_section_type_flags): Likewise.
7530         (darwin_non_lazy_pcrel): Likewise.
7531         (darwin_emit_unwind_label): Likewise.
7532         (darwin_make_decl_one_only): Likewise.
7533         * config/darwin.c (machopic_finish): Get rid of tweak that
7534         eliminate stubs for symbols that are defined.
7535         (darwin_encode_section_info): Don't treat weak functions as defined.
7536         (darwin_make_decl_one_only): Define.
7537         (darwin_asm_named_section): Likewise.
7538         (darwin_section_type_flags): Likewise.
7539         (darwin_unique_section): Likewise.
7540         (darwin_emit_unwind_label): Likewise.
7541         (darwin_non_lazy_pcrel): Likewise.
7542         (darwin_asm_output_dwarf_delta): Difference between two labels is
7543         local only if both labels are local.
7544         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
7545         (ASM_MAKE_LABEL_LINKONCE): Likewise.
7546         (TARGET_SUPPORTS_HIDDEN): Likewise.
7547         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
7548         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
7549         (FRAME_BEGIN_LABEL): Likewise.
7550         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
7551         (ASM_DECLARE_FUNCTION_NAME): Likewise.
7552         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
7553         (TARGET_ASM_UNIQUE_SECTION): Define.
7554         (EH_FRAME_SECTION_NAME): Define.
7555         (EH_FRAME_SECTION_ATTR): Likewise.
7556         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
7557         (TARGET_ASM_NAMED_SECTION): Likewise.
7558         (TARGET_SECTION_TYPE_FLAGS): Likewise.
7559         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
7560         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
7561         TARGET_ASM_EMIT_UNWIND_LABEL.
7562
7563 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7564
7565         * builtins.c (expand_builtin_mathfn): Add pow10* to the
7566         existing exp10* case.
7567         (expand_builtin): Likewise.
7568
7569 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
7570
7571         * doc/tm.texi (registers) <Values in Registers>: Add
7572         entry for REGMODE_NATURAL_SIZE.
7573
7574 2004-03-12  Richard Henderson  <rth@redhat.com>
7575
7576         PR target/14547
7577         * target.h (struct gcc_target): Move calls substructure before
7578         booleans.  Add split_complex_arg.
7579         * function.c (assign_parms, split_complex_args): Use it.
7580         * calls.c (expand_call): Likewise.
7581         (split_complex_values): Likewise.  Check for splittable types
7582         before allocating memory.
7583         (split_complex_types): Likewise.
7584         * system.h (SPLIT_COMPLEX_ARGS): Poison.
7585         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
7586         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
7587         * config/alpha/alpha.c (alpha_split_complex_arg): New.
7588         (TARGET_SPLIT_COMPLEX_ARG): New.
7589         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
7590         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
7591         (rs6000_override_options): Zap it for non-AIX.
7592         (rs6000_function_value): Use targetm.calls.split_complex_arg.
7593         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
7594         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
7595         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
7596         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
7597         SPLIT_COMPLEX_ARGS entry.
7598
7599 2004-03-11  Richard Henderson  <rth@redhat.com>
7600
7601         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
7602         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
7603         (alpha_emit_xfloating_arith): Update to match.
7604         (alpha_emit_xfloating_compare): Likewise.
7605         (alpha_emit_xfloating_cvt): Likewise.
7606         (alpha_emit_xfloating_libcall): Take already built symbol,
7607         mark call const.
7608         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
7609         op1 in a register.
7610
7611 2004-03-11  Richard Henderson  <rth@redhat.com>
7612
7613         PR target/14539
7614         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
7615
7616         * simplify-rtx.c (simplify_relational_operation): Fix typo.
7617
7618 2004-03-11  Richard Henderson  <rth@redhat.com>
7619
7620         PR middle-end/14477
7621         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
7622
7623 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7624
7625         PR target/14262
7626         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
7627         defined, pass small BLKmode values in registers in the low-order part.
7628
7629 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
7630
7631         * combine.c (if_then_else_cond): Check for NULL return value of
7632         simplify_gen_subreg.
7633
7634 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7635
7636         PR target/14496
7637         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
7638         TARGET_SINGLE_FLOAT.
7639
7640 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
7641
7642         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
7643         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
7644         * config/ia64/ia64.c (ia64_init_libfuncs): New.
7645         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
7646
7647 2004-03-11  Roger Sayle  <roger@eyesopen.com>
7648
7649         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
7650         -((int)X>>C) where C is an integer constant one bit less than the
7651         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
7652         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
7653
7654         * simplify-rtx.c (simplify_unary_operation): Also implement the
7655         above transformations at the RTL level.
7656
7657 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
7658
7659         * real.c (encode_ibm_extended): Do round low word.
7660
7661 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
7662
7663         * config/arm/arm.md (is_xscale): Comment this attribute and move
7664         it a bit further up in the file, closer to related attributes.
7665
7666 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
7667
7668         * config/host-solaris.c (sol_gt_pch_use_address): Add
7669         missing terminating marker to comment.
7670
7671 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
7672
7673         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
7674         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
7675         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
7676         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
7677         move_operand as source predicate in all cases.
7678         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
7679         Test reg_or_0_operand.  Use move_operand as source predicate.
7680         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
7681         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
7682         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
7683         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
7684         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
7685         Use move_operand as source predicate.  Remove 'K' constraint.
7686         (*movqi_internal): Likewise movqi_internal.
7687         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
7688         reg_or_0_operand.  Use move_operand as source predicate.
7689         (*movsf_softfloat): Likewise movsf_internal2.
7690         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
7691         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
7692         (*movdf_softfloat): Likewise movdf_internal2.
7693         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
7694         for DImode if !TARGET_64BIT.
7695         (mips_legitimize_move): Simplify accordingly.
7696
7697 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7698
7699         PR/14362
7700         * var-tracking.c (struct variable_def): Added field refcount.
7701         (variable_htab_free): Decrease the refcount and delete variable
7702         only if there are no more references.
7703         (unshare_variable): New function.
7704         (vars_copy_1): Increase refcount instead of copying the variable.
7705         (variable_union): Share the variables where possible, unshare
7706         the variables if needed.
7707         (variable_different_p): Return false if var1 and var2 are
7708         the same structure.
7709         (variable_was_changed): Init the refcount of new variable.
7710         (set_frame_base_location): Unshare variable if needed.
7711         (set_variable_part): Init the refcount of new variable.
7712         Unshare the variables if needed.
7713         (delete_variable_part): Unshare the variables if needed.
7714         (emit_notes_for_differences_1): Init the refcount of new variable.
7715         (vt_add_function_parameters): Do not add function parameters to
7716         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
7717         (vt_initialize): Do not add frame_base_decl to IN set of
7718         ENTRY_BLOCK_PTR because it is unused anyway.
7719
7720 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
7721
7722         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
7723         (vars_copy): Likewise.
7724         (variable_union): Likewise.
7725         (set_variable_part): Likewise.
7726         (delete_variable_part): Likewise.
7727
7728 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
7729
7730         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
7731         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
7732         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
7733         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
7734         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
7735         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
7736         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
7737         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
7738         config/stormy16/stormy16.c: Fix comment typos and formatting.
7739
7740 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
7741
7742         * configure: Regenerate, since I forgot to while committing Paolo's
7743         changes.
7744
7745 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
7746
7747         PR ada/14131
7748         Move language detection to the top level.
7749         * configure.ac: Remove code to detect languages,
7750         it now lives exclusively in the top level.
7751         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
7752         top level, renamed to ACX_PROG_GNAT.
7753
7754 2004-03-10  Richard Henderson  <rth@redhat.com>
7755
7756         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
7757         extra arguments.
7758         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
7759         and host_xmake_file fragments.
7760         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
7761         (gt_pch_restore): Similarly for gt_pch_use_address.
7762         (default_gt_pch_get_address): New.
7763         (mmap_gt_pch_get_address): Split out of gt_pch_save.
7764         (default_gt_pch_use_address): Split out of gt_pch_restore.
7765         (mmap_gt_pch_use_address): Likewise.
7766         * hooks.c (hook_voidp_size_t_null): Remove.
7767         (hook_bool_voidp_size_t_false): Remove.
7768         * hooks.h: Likewise.
7769         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
7770         default_ or mmap_ definitions.
7771         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
7772         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
7773         and gt_pch_use_address.
7774         * config/host-linux.c, config/host-solaris.c: New files.
7775         * config/x-linux, config/x-solaris: New files.
7776         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
7777         Update for changed definition.
7778         (darwin_rs6000_gt_pch_use_address): Likewise.
7779         * doc/hostconfig.texi: Update docs.
7780
7781 2004-03-10  Richard Henderson  <rth@redhat.com>
7782
7783         PR c/14517
7784         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
7785         except for pedantic c90 mode.
7786
7787 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
7788
7789         * configure.ac: Bump AC_PREREQ to 2.59.
7790         * configure: Regenerate.
7791
7792 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
7793
7794         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
7795         (exp10_optab, exp2_optab): Define corresponding macros.
7796         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
7797         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
7798         using exp10?f2 and exp2?f2 patterns.
7799         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
7800         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
7801         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
7802         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7803
7804         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
7805         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
7806         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
7807
7808 2004-03-10  Anthony Green  <green@redhat.com>
7809
7810         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
7811
7812 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7813
7814         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
7815         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
7816         __LONGDOUBLE128.
7817         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
7818         TARGET_OS_AIX_CPP_BUILTINS.
7819         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
7820         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
7821         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
7822         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
7823         previous change.
7824
7825 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7826
7827         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
7828
7829 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
7830
7831         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
7832         __LONGDOUBLE128 on AIX.
7833
7834 2004-03-10  Andrew Haley  <aph@redhat.com>
7835
7836         PR optimization/14381
7837         * function.c (expand_function_end): Emit a blockage insn before
7838         the epilogue when -fnon-call-exceptions is used.
7839
7840         * except.c (expand_start_all_catch): Make comment more accurate.
7841
7842 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7843
7844         PR target/14480
7845         * config/rs6000/t-rtems: Add missing file on branch.
7846
7847 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
7848
7849         * dbxout.c (dbxout_symbol_location): Do not output references
7850         to optimized-out constant pool symbols.
7851
7852 2004-03-10  Andreas Schwab  <schwab@suse.de>
7853
7854         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
7855         twon34_r.
7856
7857 2004-03-09  James E Wilson  <wilson@specifixinc.com>
7858
7859         * alias.c (alias_sets_might_conflict_p): New.
7860         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
7861         * common.opt (Wstrict-aliasing=): New.
7862         * flags.h (warn_strict_aliasing): Change type to int.
7863         * opts.c (warn_strict_aliasing): Change type to int.
7864         (common_handle_option): Handle OPT_Wstrict_aliasing_.
7865         * tree.h (alias_sets_might_conflict_p): Declare it.
7866         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
7867
7868 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
7869
7870         PR bootstrap/12371
7871         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
7872         (CALL_USED_REGISTERS): Likewise.
7873         (REG_CLASS_CONTENTS): Likewise.
7874         (REG_ALLOC_ORDER): New.
7875         (REGNO_REG_CLASS): Use regno_reg_class.
7876         * config/m68k/m68k.c: Add regno_reg_class array.
7877
7878 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
7879
7880         * config/ia64/ia64.md (divsi3): Fix algorithm.
7881           (udivsi3): Ditto.
7882           (setf_exp_xf): Remove '*' from name.
7883         * testsuite/gcc.dg/20040309-1.c: New test.
7884
7885 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
7886
7887         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
7888         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
7889         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
7890         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
7891         (sparc_aout_select_rtx_section): Don't check
7892         SUNOS4_SHARED_LIBRARIES.
7893         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
7894
7895 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
7896
7897         PR other/14474
7898         * doc/md.texi (Pattern Ordering, Dependent Patterns)
7899         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
7900         INTERNALS".
7901
7902 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7903
7904         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
7905         (LIBGCC_SPEC): Update to match.
7906
7907 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
7908
7909         * c-decl.c (last_function_parms, last_function_parm_tags)
7910         (last_function_parm_others, current_function_parms)
7911         (current_function_parm_tags, current_function_parm_others):
7912         Delete.
7913         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
7914         New macros.
7915         (grokdeclarator): For function definitions, save the arg-info
7916         block from the declarator in DECL_ARGUMENTS.
7917         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
7918         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
7919         contains only PARM_DECLs.  Improve diagnostics.
7920         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
7921         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
7922         (store_parm_decls_newstyle): Take the function to operate on,
7923         and an arg-info block, as arguments; don't get anything from
7924         current_function_* globals.
7925         (store_parm_decls_oldstyle): Likewise.
7926         (store_parm_decls): Pass fndecl and its arg-info block down to
7927         store_parm_decls_newstyle/oldstyle.  Send functions with empty
7928         argument lists through store_parm_decls_newstyle to reduce
7929         overhead.
7930         (pushdecl): Comment on the problems with the call to copy_node.
7931         Clear DECL_ARGUMENTS of the old node after copying it, if it
7932         is an arg-info block instead of a chain of decls.
7933         (start_function): Do not manipulate current_function_parm* or
7934         last_function_parm*.
7935
7936 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7937             Andrew Pinski  <pinskia@physics.uc.edu>
7938
7939         * ifcvt.c (noce_try_sign_mask): New function to transform
7940         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
7941         (noce_process_if_block): Call noce_try_sign_mask.
7942
7943 2004-03-09  Andrew Pinski  <apinski@apple.com>
7944
7945         * c-typeck.c (tagged_types_tu_compatible_p):
7946         Fix typo.
7947
7948 2004-03-09  Roger Sayle  <roger@eyesopen.com>
7949
7950         * simplify-rtx.c (simplify_const_relational_operation): New function
7951         renamed from simplify_relational_operation.
7952         (simplify_relational_operation): Change prototype to accept an
7953         additional mode argument.  Call simplify_const_relational_operation.
7954         (simplify_gen_relational): Update simplify_relational_operation call.
7955         (simplify_ternary_operation): Update simplify_relational_operation
7956         subroutine call to use simplify_const_relational_operation instead.
7957
7958         * rtl.h (simplify_const_relational_operation): Prototype here.
7959         (simplify_relational_operation): Add addtional mode argument.
7960
7961         * combine.c (combine_simplify_rtx): Update calls to
7962         simplify_relational_operation.
7963         (simplify_set): Likewise.
7964         (gen_binary): Likewise.
7965         * cse.c (fold_rtx): Likewise.
7966         * dojump.c (compare_from_rtx): Likewise.
7967         (do_compare_rtx_and_jump): Likewise.
7968         * integrate.c (subst_constants): Likewise.
7969         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
7970
7971 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
7972
7973         * config/m32r/m32r.md: Remove all define_peephole's.
7974
7975 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
7976
7977         * config/rs6000/rs6000.md: Remove trailing whitespace.
7978
7979 2004-03-08  Eric Christopher  <echristo@redhat.com>
7980
7981         * Makefile.in (site.exp): Add libiconv variable definition.
7982
7983 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
7984
7985         * configure: Regenerate for config/accross.m4 correction.
7986
7987 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
7988
7989         PR target/14480
7990         * config/rs6000/t-rtems: Add missing file on branch.
7991
7992 2004-03-08  Roger Sayle  <roger@eyesopen.com>
7993
7994         PR middle-end/14289
7995         * c-typeck.c (c_mark_addressable): A register variable should
7996         be considered global if its not automatic, i.e. TREE_PUBLIC,
7997         TREE_STATIC or DECL_EXTERNAL.
7998         * function.c (put_var_into_stack): Call abort when placing a
7999         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8000
8001 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8002
8003         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8004         ("*extendqisi2_short_displ"): Likewise.
8005
8006 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8007
8008         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8009         (comp_operator): Likewise.
8010         * config/pdp11/pdp11-protos.h: Remove corresponding
8011         prototypes.
8012
8013 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8014
8015         * expr.c (highest_pow2_factor_for_type): Rename into
8016         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8017         TYPE_ALIGN when the target is a COMPONENT_REF.
8018         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8019
8020 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8021
8022         * config/rs6000/rs6000.c: Formatting fix.
8023         (legitimate_offset_address_p): Correct offset range check.
8024
8025         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8026         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8027         and MASK_STRING.
8028
8029 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8030
8031         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8032         for little endian.
8033         ("ashrdi3_no_power"): Disable for little endian.
8034         (ashrdi3): Same.
8035
8036 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8037
8038         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8039         builtins.
8040
8041 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8042
8043         PR target/14471
8044         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8045         case, checking for -no-mul-bug-abort option.
8046         * configure, config.in: Regenerate.
8047         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8048         and -mno-mul-bug-workaround.
8049         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8050         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8051         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8052         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8053         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8054         sure mulu.d is not last on cache-line.
8055         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8056         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8057         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8058         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8059         -mno-mul-bug-workaround.
8060         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8061         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8062         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8063         relation to MULT in head comment.
8064         (cris_op_str): Abort for MULT.
8065         (cris_print_operand) <case '!'>: New case.
8066
8067 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8068
8069         PR debug/11983
8070         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8071         dw_val_class_vec.  Replace use throughout file.
8072         (dw_float_const): Delete.
8073         (dw_vec_const): New.
8074         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8075         throughout file.
8076         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8077         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8078         (size_of_die): Adjust dw_val_class_vec sizing.
8079         (output_die): Output dw_val_class_vec.
8080         (insert_int, extract_int, insert_float): New functions.
8081         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8082         Handle CONST_VECTOR.
8083         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8084
8085 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8086
8087         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8088         AltiVec abi cannot co-exist.
8089
8090         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8091
8092 2004-03-07  Jan Hubicka  <jh@suse.cz>
8093
8094         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8095
8096 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8097
8098         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8099         ("*lshrsi3"): Also accept an immediate for 68HC12.
8100         ("*ashrsi3_const"): Likewise.
8101         ("*ashrsi3"): Likewise.
8102         ("*ashlsi3_const"): Likewise.
8103         ("*ashlsi3"): Likewise.
8104         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8105         comparing with a pop; don't use a split for that.
8106         ("cmphi split"): Disable compare split for 68HC12.
8107
8108         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8109         the status operands if they have side effects.
8110
8111 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8112
8113         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8114         definition.
8115         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8116         config/h8300/h8300.h, config/ia64/ia64.h,
8117         config/mcore/mcore.h, config/mmix/mmix.h,
8118         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8119         config/stormy16/stormy16.h, config/v850/v850.h,
8120         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
8121         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
8122         definition.
8123
8124 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8125
8126         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
8127         <XOR_EXPR>: Fold x ^ x as zero.
8128         <AND_EXPR>: Fold x & x as x.
8129
8130 2004-03-07  Roger Sayle  <roger@eyesopen.com>
8131
8132         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
8133         "foo++ == const" into "++foo == const+incr".
8134
8135 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
8136
8137         * config/mips/mips.c (mips_in_small_data_p): Return false if
8138         TARGET_ABICALLS.
8139
8140 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
8141
8142         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
8143         the stack register.
8144         (expand_prologue): Don't make an interrupt or a trap handler a far
8145         symbol.
8146         (m68hc11_initial_elimination_offset): Likewise.
8147
8148 2004-03-06  Richard Henderson  <rth@redhat.com>
8149
8150         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
8151
8152 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8153
8154         * config/ns32k/ns32k-protos.h: Add a prototype for
8155         ns32k_notice_update_cc.
8156         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
8157         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
8158         ns32k_notice_update_cc.
8159
8160 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
8161
8162         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
8163         "*load_multiple_si"): Allow only if reload_completed.
8164         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
8165         Likewise.
8166
8167 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
8168
8169         * config/vax/vax-protos.h: Add a prototype for
8170         vax_notice_update_cc.
8171         * config/vax/vax.c (vax_notice_update_cc): New.
8172         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
8173         vax_notice_update_cc.
8174
8175 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
8176
8177         * collect2.c (main): Only export initfunc and finifunc if
8178         LD_INIT_SWITCH not defined.
8179         (scan_prog_file): Only export constructors and destructors if
8180         LD_INIT_SWITCH not defined.  Only export symbols not found in
8181         shared objects.
8182
8183 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8184
8185         * pa.md (icacheflush): Reorder operands to make match_scratch operand
8186         last.
8187         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
8188         from calls to gen_icacheflush.
8189
8190 2004-03-06  Richard Henderson  <rth@redhat.com>
8191
8192         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
8193         (TARGET_LONG_DOUBLE_128): New.
8194         (TARGET_SWITCHES): Add long-double-{128,64}.
8195         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
8196         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
8197         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
8198         (WIDEST_HARDWARE_FP_SIZE): New.
8199         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
8200         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
8201         if TARGET_VAX_FLOAT.
8202         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
8203         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
8204
8205 2004-03-06  Richard Henderson  <rth@redhat.com>
8206
8207         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
8208         botched rtx class conversion.
8209
8210 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8211
8212         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
8213         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
8214
8215         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
8216         macros.
8217         * fold-const.c (fold_mathfn_compare, fold): Likewise.
8218
8219 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
8220
8221         PR target/14343
8222         * config/i386/i386.md (movv2di_internal): Conditionalize on
8223         TARGET_SSE, not TARGET_SSE2.
8224
8225 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
8226
8227         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
8228         duplicated line.
8229
8230 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8231
8232         * builtins.c: Consistently use logN not log* in comments.
8233
8234 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
8235
8236         * rtl.h (mem_expr_equal_p): Function prototype added.
8237         * cfgcleanup.c (merge_memattrs): New function.
8238         (flow_find_cross_jump): Call merge_memattrs for matching insns.
8239         * emit-rtl.c (mem_expr_equal_p): New function.
8240
8241 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
8242
8243         * objc/objc-act.c (synth_module_prologue): Const-qualify
8244         objc_selector type if using the GNU runtime; fix generated
8245         signatures for objc_msg_lookup and objc_msg_lookup_super
8246         to match what GNU ObjC headers provide; reformat and clean up.
8247         (synth_self_and_ucmd_args): Use previously constructed (and
8248         hence possibly const-qualified) objc_selector type.
8249
8250 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8251
8252         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
8253
8254 2004-03-05  Jason Merrill  <jason@redhat.com>
8255
8256         * tree.h (TYPE_HASH): Use TYPE_UID.
8257         (TREE_HASH): New macro with old definition of TYPE_HASH.
8258         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
8259         (build_array_type, build_function_type): Likewise.
8260         (build_method_type_directly): Likewise.
8261         (build_offset_type, build_complex_type): Likewise.
8262         (type_hash_list, attribute_hash_list): Likewise. Now static.
8263         * except.c: s/TYPE_HASH/TREE_HASH/.
8264
8265 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
8266
8267         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
8268         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
8269         __va_ndx by 2 words when referencing an argument on the stack.
8270         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
8271         words when an arg on the stack is first seen.
8272
8273 2004-03-05  Paul Brook  <paul@codesourcery.com>
8274
8275         * arm.h (ARM_FLAG_VFP): Remove.
8276         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
8277         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
8278
8279 2004-03-05  Paul Brook  <paul@codesourcery.com>
8280
8281         * function.c (assign_parms): Include pretend alignment offset.
8282
8283 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8284
8285         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
8286         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
8287
8288 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
8289
8290         * configure.ac: When passing --enable-languages to subdir
8291         configure when host != build, make sure we don't pass an empty
8292         value.
8293         * configure: Regenerate.
8294
8295 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
8296
8297         PR 13577
8298         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
8299         options.
8300
8301 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8302
8303         * simplify-rtx.c (simplify_relational_operation): If
8304         flag_wrapv is set, do not move terms between the two
8305         side of a relational operator.
8306
8307 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
8308
8309         * rtlanal.c: Include target.h and output.h
8310         (rtx_cost, address_cost, default_address_cost): Move from...
8311         * cse.c (rtx_cost, address_cost, default_address_cost):
8312         ... this file.
8313         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
8314         * Makefile.in: Adjust dependencies.
8315
8316 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
8317
8318         * cse.c (cse_end_of_basic_block): Make static.
8319         * local-alloc.c (function_invariant_p): Move to
8320         reload1.c.
8321         * loop.c (libcall_other_reg, record_excess_regs):
8322         Make static.
8323         * reload1.c (function_invariant_p): Moved here
8324         from local-alloc.c, made static.
8325         * rtl.h (cse_end_of_basic_block, function_invariant_p,
8326         libcall_other_reg, record_excess_regs): Remove
8327         declarations.
8328
8329 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
8330
8331         * config/m32r/m32r.c (signed_comparison_operator): Add a
8332         missing parenthesis.
8333
8334 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
8335
8336         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
8337         going to call mmap again.  Read the file into the right place.
8338         Give a fatal error if we have to relocate.
8339
8340 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
8341
8342         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
8343         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
8344
8345 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
8346
8347         PR other/14354
8348         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
8349         round the same.  When rounding, clear bits that would cause a
8350         second rounding in pack_d.
8351         (_fpmul_parts): Ditto.  Remove #if 0:d code.
8352
8353 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
8354
8355         PR c++/14425, c++/14426
8356         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
8357         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
8358         Change C++ definitions to accept a 'const int' argument;
8359         the prototypes already do.
8360         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
8361         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
8362         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
8363         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
8364         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
8365         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
8366         end in ..._int; change them to accept an int instead of a char
8367         as the last parameter.
8368
8369 2004-03-04  Phil Edwards  <phil@codesourcery.com>
8370
8371         * genmultilib:  Change '=' to '-' when translating option names
8372         to directory names.
8373
8374 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8375
8376         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
8377         stack slot for temp used for result of BLKmode but in integral mode.
8378
8379 2004-03-04  Jan Hubicka  <jh@suse.cz>
8380
8381         * reload.c (find_reloads): Reorganize if seqeunce to switch.
8382
8383         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
8384         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
8385
8386 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
8387
8388         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
8389         * testsuite/gcc.dg/20040303-1.c: New test.
8390
8391 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8392
8393         * ppro.md: Rewrite as a DFA pipeline description.
8394         * i386.md: Remove all uses of the ppro_uops attribute.
8395         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
8396         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
8397         ix86_sched_reorder, ix86_variable_issue,
8398         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
8399         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
8400         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
8401         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
8402         * athlon.md (athlon_ssecmp_load): Fix comment
8403
8404 2004-03-04  Stuart Hastings  <stuart@apple.com>
8405
8406         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
8407
8408 2004-03-04  Stuart Hastings  <stuart@apple.com>
8409
8410         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
8411         686, tell Darwin assembler to allow prefetch insns, non-empty def
8412         of SUBTARGET_OPTION_TRANSLATE_TABLE.
8413
8414 2004-03-04  DJ Delorie  <dj@redhat.com>
8415
8416         PR optimization/14282
8417         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
8418         between a call and the assignment of its return value.
8419
8420 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8421
8422         * config/h8300/h8300.c: Put a comment for every function.
8423
8424 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
8425
8426         * config/h8300/h8300.md: Add comments about peephole2's.
8427
8428 2004-03-04  Steven Bosscher  <stevenb@suse.de>
8429
8430         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
8431
8432 2004-03-04  Jan Hubicka  <jh@suse.cz>
8433
8434         * cfgcleanup.c (thread_jump): Update call of cselib_init.
8435         * cselib.c (cselib_record_memory): New static variable.
8436         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
8437         Give up on memories when asked for.
8438         (cselib_init): Accept new argument.
8439         * cselib.h (cselib_init): Update prototype.
8440         * gcse.c (local_cprop_pass): Update call of cselib_init.
8441         * loop.c (load_mems): Update call of cselib_init.
8442         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
8443         * sched-deps.c (sched_analyze): Update call of cselib_init.
8444
8445 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8446             GP <gp@qnx.com>
8447
8448         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
8449         when compiling PIC.
8450
8451 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
8452
8453         PR/14362
8454         * var-tracking.c (track_expr_p): Do not track variables which
8455         should be ignored for debugging purposes.
8456
8457 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8458
8459         * real.c (encode_ibm_extended): Don't bother rounding low double.
8460         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
8461         when fmt->pnan < fmt->p.
8462
8463 2004-03-04  Eric Christopher  <echristo@redhat.com>
8464
8465         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
8466         only range of valid arg registers and fixed_regs.
8467
8468 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8469
8470         PR target/14406
8471         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
8472         (abstf2, abstf2_internal): New define_expand.
8473
8474 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8475
8476         PR optimization/14235
8477         * expr.c (convert_move): Copy the source to a new pseudo
8478         when converting from a sub-word source to a larger-than-word
8479         register which conflicts with the source.
8480
8481 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
8482
8483         PR 13728
8484         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
8485         parameters with the same name, unless one is a forward decl.
8486         Do not issue a redundant-redeclaration warning for forward
8487         decls of parameters.
8488
8489 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
8490
8491         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
8492         configuration.
8493
8494 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
8495
8496         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
8497
8498 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
8499
8500         * target-def.h (TARGET_OPTF): Delete.
8501         * c-opts.c (TARGET_OPTF): Define.
8502
8503 2004-03-04  Jan Hubicka  <jh@suse.cz>
8504
8505         * cselib.c (cselib_finish): Fix another miss-application of my previous
8506         patch.
8507
8508 2004-03-03  Mike Stump  <mrs@apple.com>
8509
8510         Add framework support for darwin.
8511
8512         * c-incpath.c: Include target.h and machmode.h.
8513         (add_path): Use a consistent style for cpp_dir.  Initialize
8514         p->construct to 0.
8515         (add_cpp_dir_path): New.
8516         (register_include_chains): Add use of extra_includes callback.
8517         (hook_void_int): Add.
8518         (target_c_incpath): Add.
8519         * c-incpath.h (add_cpp_dir_path): New.
8520         (target_c_incpath_s): Add.
8521         (target_c_incpath): Add.
8522         (C_INCPATH_INIT): Add.
8523         * c-opts.c (c_common_missing_argument,
8524         c_common_handle_option): Add -F argument processing.
8525         * c.opt: Add -F argument processing.
8526         * gcc.c (trad_capable_cpp): Add -F argument processing.
8527         * cppfiles.c (find_file_in_dir): Update to use construct
8528         callback.
8529         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
8530         cpp_get_prev): New.
8531         (_cpp_find_file): Use search_path_exhausted.
8532         (make_cpp_dir): Initialize construct to 0.
8533         * cpplib.h (missing_header_cb
8534         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
8535         (cpp_callbacks): Add missing_header
8536         (cpp_dir): Add construct.
8537         * target-def.h: (TARGET_OPTF): New.
8538         * hooks.c (hook_void_int, hook_void_charptr): Add.
8539         * hooks.h (hook_void_int, hook_void_charptr): Add.
8540         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
8541         $(MACHMODE_H) dependencies.
8542         * doc/invoke.texi (Darwin Options): Document -F.
8543         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
8544         (TARGET_OPTF): Add.
8545         * fix-header.c (target_c_incpath): Add.
8546
8547         * config/darwin-c.c: Add c-incpath.h include.
8548         (using_frameworks, find_subframework_file,
8549         find_subframework_header, add_system_framework_path,
8550         frameworks_in_use, num_frameworks, max_frameworks,
8551         add_framework, find_framework, struct framework_header,
8552         framework_header_dirs, framework_construct_pathname,
8553         find_subframework_file, add_system_framework_path,
8554         add_framework_path, framework_defaults,
8555         darwin_register_frameworks, find_subframework_header): Add.
8556         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
8557         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
8558         (CPP_SPEC): Add __APPLE_CC__ support.
8559         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
8560
8561 2004-03-04  Jan Hubicka  <jh@suse.cz>
8562
8563         * cselib.c (cselib_finish): Fix miss-application of my previous
8564         patch.
8565
8566 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8567
8568         * hooks.c (hook_tree_tree_identity): New.
8569         * hooks.h: Add a prototype for hook_tree_tree_identity.
8570         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
8571         instead of MD_ASM_CLOBBERS.
8572         * system.h (MD_ASM_CLOBBERS): Poison.
8573         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
8574         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
8575         * target.h (gcc_target): Add md_asm_clobbers.
8576         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
8577         (ix86_md_asm_clobbers): New.
8578         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
8579         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
8580         TARGET_MD_ASM_CLOBBERS.
8581
8582 2004-03-03  Stuart Hastings  <stuart@apple.com>
8583
8584         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
8585
8586 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8587
8588         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
8589
8590         * config/sparc/sparc.h (ASM_FLOAT): Delete.
8591         (ASM_DOUBLE): Likewise.
8592         (ASM_LONGDOUBLE): Likewise.
8593         * config/sparc/pbd.h (ASM_INT_OP): Delete.
8594
8595 2003-03-03  Richard Henderson  <rth@redhat.com>
8596
8597         PR opt/13862
8598         * cselib.c (cselib_record_sets): Don't record multiple sets in
8599         asm insns.
8600
8601 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
8602
8603         * common.opt: Add description of the new -fgcse-after-reload flag.
8604
8605         * flags.h (flag_gcse_after_reload): Declaration of global variable.
8606
8607         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
8608         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
8609         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
8610         get_bb_avail_insn, hash_scan_set_after_reload,
8611         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
8612         gcse_after_reload, get_bb_avail_insn): New functions to implement
8613         gcse-after-reload.
8614         (gcse_after_reload_main): New function, the main entry point to
8615         gcse-after-reload.
8616
8617         * rtl.h (gcse_after_reload_main): Declaration of the new function.
8618
8619         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
8620
8621         * toplev.c (flag_gcse_after_reload): Initialization.
8622
8623         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
8624
8625         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8626         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
8627         the gcse after reload optimization.
8628
8629         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
8630         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
8631         parameters.
8632
8633         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
8634
8635 2004-03-03  Nicolas Pitre <nico@cam.org>
8636
8637         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
8638         small negative values.
8639
8640 2004-03-03  Jan Hubicka  <jh@suse.cz>
8641
8642         * cselib.c (hash_table):  Remove GTY marker.
8643         (reg_values): Turn into array.
8644         (used_regs): Likewise.
8645         (n_used_regs): New static variable.
8646         (reg_values_old): Kill.
8647         (clear_table): Update uses of arrays.
8648         (cselib_lookup): Likewise.
8649         (cselib_record_set): Likewise.
8650         (cselib_init): Likewise.
8651         (cselib_finish): Likewise.
8652         (cselib_udpate_varray_sizes): Kill.
8653         * cselib.h (cselib_update_varray_sizes): Kill.
8654
8655 2004-03-03  Paul Brook  <paul@codesourcery.com>
8656
8657         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
8658
8659 2004-03-03  Jan Hubicka  <jh@suse.cz>
8660
8661         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
8662         Rename from ...; make statistics transparent.
8663         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
8664         (loc_descriptor): New structure.
8665         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
8666         add_statistics):
8667         New static function.
8668         (ggc_record_overhead, dump_statistics): New global function.
8669         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8670         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
8671         from ...; accept locations
8672         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8673         ggc_realloc, ggc_alloc_typed):  ... this one.
8674         from ...; accept locations
8675         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
8676         ggc_alloc_stat): Rename from ... ; pass locations
8677         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
8678         ... this one.
8679         (ggc_alloc_stat): Record overehead.
8680         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
8681         ggc_realloc, ggc_alloc_typed):  Turn to macros
8682         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
8683         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
8684         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
8685         * langhooks.h (lhd_make_node): Declare.
8686         (LANG_HOOKS_MAKE_TYPE): Default to new function,
8687         * langhooks.c (lhd_make_node): New.
8688         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
8689         locations.
8690         (rtx_alloc, swallow_copy_rtx): ... this one.
8691         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
8692         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
8693         * toplpev.c (finalize): Dump stats.
8694         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
8695         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8696         Rename from ... ; pass locators.
8697         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8698         build?,  build_decl): Declare.
8699         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
8700         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
8701         Declare.
8702         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
8703         build?,  build_decl): New macros.
8704         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
8705         * statistics.h: New file.
8706
8707 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
8708             Richard Sandiford  <rsandifo@redhat.com>
8709
8710         * config/mips/mips.h (MASK_FIX_SB1): Bump.
8711         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
8712         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
8713         * config/mips/mips.c (mips_output_division): Fill the branch delay
8714         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
8715         TARGET_FIX_R4400.
8716         (mips_output_division): Adjust accordingly.
8717         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
8718         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
8719
8720 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
8721
8722         * alias.c (rtx_equal_for_memref_p): Use predicates
8723         to test rtx classes and new rtx class codes, possibly
8724         splitting conditionals that tested against '<' and 'o'.
8725         * caller-save.c (save_call_clobbered_regs): Likewise.
8726         * combine.c (contains_muldiv, find_split_point, subst,
8727         combine_simplify_rtx, simplify_if_then_else,
8728         simplify_set, simplify_logical, expand_compound_operation,
8729         make_compound_operation, if_then_else_cond, known_cond,
8730         apply_distributive_law, cached_nonzero_bits,
8731         cached_num_sign_bit_copies, simplify_shift_const,
8732         gen_binary, simplify_comparison, update_table_tick,
8733         record_value_for_reg, get_lsat_value_validate): Likewise.
8734         * cse.c (mention_regs, find_best_addr, find_comparison_args,
8735         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
8736         Likewise.
8737         * emit-rtl.c (copy_insn_1): Likewise.
8738         * expr.c (force_operand): Likewise.
8739         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
8740         * flow.c (notice_stack_pointer_modification_1,
8741         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
8742         and_reg_cond, elim_reg_cond): Likewise.
8743         * function.c (update_epilogue_consts): Likewise.
8744         * genattrtab.c (attr_rtx_1): Likewise.
8745         * genopinit.c (gen_insn): Likewise.
8746         * integrate.c (subst_constants): Likewise.
8747         * jump.c (reversed_comparison_code_parts,
8748         reversed_comparison_code, delete_related_insns,
8749         rtx_renumbered_equal_p): Likewise.
8750         * local-alloc.c (block_alloc): Likewise.
8751         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
8752         canonicalize_condition): Likewise.
8753         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
8754         Likewise.
8755         * optabs.c (add_equal_node, expand_binop): Likewise.
8756         * predict.c (estimate_probability): Likewise.
8757         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
8758         * recog.c (validate_replace_rtx_1, comparison_operator,
8759         offsettable_address_p, constrain_operands): Likewise.
8760         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
8761         Likewise.
8762         * regclass.c (scan_one_insn): Likewise.
8763         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
8764         * regrename.c (kill_autoinc_value): Likewise.
8765         * reload.c (find_reusable_reload, find_reloads,
8766         reg_overlap_mentioned_for_reload_p): Likewise.
8767         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
8768         * rtl.c (copy_rtx): Likewise.
8769         * rtl.h (CONSTANT_P, INSN_P): Likewise.
8770         * rtlanal.c (commutative_operand_precedence): Likewise.
8771         * sched-deps.c (conditions_mutex_p): Likewise.
8772         * sched-rgn.c (is_cfg_nonregular): Likewise.
8773         * simplify-rtx.c (simplify_gen_binary,
8774         simplify_gen_relational, simplify_replace_rtx,
8775         simplify_unary_operation, simplify_binary_operation,
8776         simplify_ternary_operation, simplify_rtx): Likewise.
8777         * unroll.c (reg_dead_after_loop): Likewise.
8778         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
8779         print_operand): Likewise.
8780         * config/arc/arc.c (proper_comparison_operator): Likewise.
8781         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
8782         Likewise.
8783         * config/avr/avr.c (_reg_unused_after): Likewise.
8784         * config/frv/frv.c (frv_ifcvt_modify_tests,
8785         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
8786         * config/i386/i386.c (ix86_comparison_operator,
8787         ix86_carry_flag_operator, fcmov_comparison_operator,
8788         arith_or_logical_operator, print_operand,
8789         ix86_expand_binary_operator, ix86_binary_operator_ok):
8790         Likewise.
8791         * config/i386/i386.md: Likewise.
8792         * config/ia64/ia64.c (not_postinc_memory_operand,
8793         ia64_print_operand, update_set_flags, errata_emit_nops):
8794         Likewise.
8795         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
8796         CONSTRAINT_OK_FOR_S): Likewise.
8797         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
8798         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
8799         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
8800         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
8801         Likewise.
8802         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
8803         eqne_comparison_operator, signed_comparison_operator):
8804         Likewise.
8805         * config/mips/mips.c (cmp_op, symbolic_expression_p):
8806         Likewise.
8807         * config/mmix/mmix (mmix_foldable_comparison_operator,
8808         mmix_comparison_operator): Likewise.
8809         * config/pa/pa.c (hppa_legitimize_address): Likewise.
8810         * config/rs6000/rs6000.c (stmw_operation,
8811         branch_comparison_operator, trap_comparison_operator,
8812         ccr_bit): Likewise.
8813         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
8814         * config/s390/s390.c (s390_alc_comparison,
8815         s390_slb_comparison):L Likewise.
8816         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
8817         Likewise.
8818         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
8819         noov_compare_op, noov_compare64_op, v9_regcmp_op,
8820         emit_hard_tfmode_operation, reg_unused_after)
8821         * doc/md.texi, doc/rtl.texi: Likewise.
8822
8823         * ra-debug.c: Add 2004 to list of copyright years.
8824         * unroll.c: Likewise.
8825
8826         * combine.c (simplify_logical): Remove dummy test,
8827         (apply_distributive_law): Fix typo in comment.
8828         GET_CODE (x) == AND so x is a commutative binary op.
8829         * jump.c (delete_related_insns): simplify loop
8830         condition, move testing of RTX codes inside the loop.
8831         (rtx_renumbered_equal_p): do not use RTX_CODE.
8832         * rtl.c (rtx_class): Declare as enum rtx_class.
8833         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
8834         Move to RTX_COMM_COMPARE class.
8835         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
8836         Move to RTX_CONST_OBJ class.
8837         * rtl.h (enum rtx_class): New declaration,
8838         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
8839         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
8840         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
8841         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
8842         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
8843         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
8844         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
8845         OBJECT_P): New macros.
8846         * config/sparc/sparc.c (noov_compare_op): Remove register
8847         from parameter.
8848
8849 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
8850
8851         * target.h: Remove texi jargons in comments.
8852
8853 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8854
8855         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
8856         threshold to 0x4f.
8857
8858         Revert:
8859         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
8860         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
8861         as well.
8862         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
8863         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
8864
8865 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8866
8867         * doc/md.texi (cbranchmode4): New.
8868
8869 2004-03-02  Eric Christopher  <echristo@redhat.com>
8870
8871         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
8872         fix_trunc.
8873         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
8874         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
8875         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
8876         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
8877
8878 2004-03-02  Richard Henderson  <rth@redhat.com>
8879
8880         PR middle-end/11767
8881         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
8882         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
8883         before the compare, if flag_non_call_exceptions.
8884
8885 2004-03-02  Richard Henderson  <rth@redhat.com>
8886
8887         PR middle-end/14327
8888         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
8889         emitting the label, not after.
8890
8891 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8892
8893         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
8894         (m68hc11_mov_addr_mode): Likewise.
8895         (m68hc11_override_options): Initialize them based on target.
8896         (register_indirect_p): Allow a MEM for indirect addressing modes and
8897         use flags to control what is allowed.
8898         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
8899         supported addressing modes.
8900         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
8901         (go_if_legitimate_address_internal): Likewise.
8902         (m68hc11_indirect_p): Likewise and check the mode.
8903         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
8904
8905 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8906
8907         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
8908         (expand_builtin_setjmp_setup): Use
8909         targetm.builtin_setjmp_frame_value instead of
8910         BUILTIN_SETJMP_FRAME_VALUE.
8911         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
8912         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
8913         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8914         * target.h (gcc_target): Add builtin_setjmp_frame_value.
8915         * targhooks.c (default_builtin_setjmp_frame_value): New.
8916         * targhooks.h: Add a prototype for
8917         default_builtin_setjmp_frame_value.
8918         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
8919         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
8920
8921 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8922
8923         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
8924         sequences of moves.
8925         (add peepholes): New peepholes to optimize sequences adding small
8926         constants.
8927         (bset peepholes): New peepholes to transform an OR in a bset form
8928         (bclr peepholes): Likewise for bclr form.
8929         (cmp peepholes): New peepholes to avoid register copies when comparing.
8930
8931 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8932
8933         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
8934         to separate push from moves.
8935         ("*pushdf_internal"): Likewise.
8936         ("*pushsf_internal"): Likewise.
8937         ("*pushsi_internal"): Likewise.
8938         ("movdi_internal"): Use define_insn_and_split; non push operand.
8939         ("movdf_internal"): Likewise.
8940         ("movsf_internal"): Likewise.
8941         ("movsi_internal"): Likewise.
8942         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
8943         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
8944         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
8945
8946 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8947
8948         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
8949         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
8950         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
8951         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
8952         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
8953         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
8954         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
8955         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
8956         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
8957         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
8958         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
8959
8960 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8961
8962         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
8963         (SOFT_XY_REGNUM): Define.
8964         (cmp split): Use the above instead of hard coded numbers.
8965         (8-bit op split): No need to check the mode; allow Q_REG.
8966         (ashift split): Adjust the first operand if it uses the SP and we
8967         are pushing the shifted value.
8968         (plus shift split): Fix when a source is in register D+X.
8969         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
8970
8971 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
8972
8973         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
8974         comparing with Z register.
8975
8976 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8977
8978         * cfgloop.h (struct loop_desc): Removed.
8979         (struct loop): Fields simple, desc and has_desc removed.
8980         (simple_loop_p, count_loop_iterations): Declaration removed.
8981         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
8982         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
8983         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
8984         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
8985         simple_loop_exit_p, variable_initial_value, variable_initial_values,
8986         simple_condition_p, simple_increment, count_strange_loop_iterations,
8987         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
8988         Removed.
8989         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
8990
8991 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
8992
8993         * genattrtab.c: Don't handle MATCH_INSN.
8994         * genrecog.c: Likewise.
8995         * gensupport.c: Likewise.
8996         * rtl.def (match_insn): Remove.
8997         * doc/md.texi (match_insn, match_insn2): Remove.
8998
8999 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9000
9001         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9002         macro results in memory allocation.
9003
9004 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9005
9006         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9007         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9008         %(fbsd_dynamic_linker),
9009         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9010         config/i386/freebsd.h
9011         * config/arm/freebsd.h: Ditto.
9012         * config/i386/freebsd.h: Ditto.
9013         * config/i386/freebsd64.h: Ditto.
9014         * config/ia64/freebsd.h: Ditto.
9015         * config/rs6000/sysv4.h: Ditto.
9016         * config/sparc/freebsd.h: Ditto.
9017
9018 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9019
9020         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9021
9022 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9023
9024         * rtl.def (define_combine): Remove.
9025
9026 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9027
9028         * config/h8300/h8300.md: Tweak formatting.
9029
9030 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9031
9032         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9033         *cmphi_h8300_znvc.
9034         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9035
9036 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9037
9038         PR bootstrap/14356
9039         * gcc.c (process_command): Remove const-qualification from argv.
9040         (main): Likewise.
9041
9042 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9043
9044         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9045         pushqi1_h8300hs_advanced.  Adjust its caller.
9046         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9047         Adjust its caller.
9048
9049 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9050
9051         * Makefile.in (install-libgcc, install-multilib): Pass
9052         mkinstalldirs var to libgcc.mk.
9053
9054 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9055
9056         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9057         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9058
9059 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9060
9061         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9062         * config/h8300/h8300.md: Split several peephole2's, each into
9063         two.
9064
9065 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9066
9067         * dominance.c (recount_dominator): Handle postdominators.
9068
9069 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9070
9071         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9072         (NUM_SYMBOL_TYPES): Likewise.
9073         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9074         (mips_unspec_address): Declare.
9075         (mips_gotoff_page, mips_gotoff_global): Delete.
9076         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9077         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9078         (mips_symbolic_constant_p, mips_symbolic_address_p)
9079         (mips_symbol_insns): Handle new symbol types.
9080         (general_symbolic_operand): New predicate.
9081         (mips_unspec_address): Make extern.
9082         (mips_gotoff_page, mips_gotoff_global): Delete.
9083         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9084         Handle new symbol types.
9085         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9086         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9087         mips_unspec_address directly.
9088         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9089         the documentation of -mexplicit-relocs.
9090
9091 2004-03-01  Jeff Law  <law@redhat.com>
9092
9093         * fold-const.c (fold): An equality comparison of a non-weak object
9094         against zero has a known result.  Similarly an equality comparison
9095         of the address of two non-weak, unaliased symbols has a known result.
9096
9097         * ggc-page.c (struct page_entry): New field PREV.
9098         (ggc_alloc): Update PREV field appropriately.
9099         (sweep_pages): Likewise.
9100         (ggc_free): Likewise.  Use PREV field rather than loop to
9101         improve ggc_free performance.
9102
9103 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9104
9105         * config/mips/mips.c (mips_output_division): Use the division
9106         instruction to fill the delay slot of a zero check.
9107         (mips_idiv_insns): Adjust accordingly.
9108
9109 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9110
9111         * config.gcc: Create a default tmake_file for linux, and use
9112         it in all but two linux clauses.  Comment those two.
9113
9114 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9115
9116         * combine.c (try_combine):  Do not refer to is_replaced.
9117         (gen_lowpart_for_combine):  Perverse subregs now have a
9118         more politically correct name.
9119         * cse.c (cse_insn): Likewise.
9120         * jump.c: Fix bogus reference to delete_insn.
9121
9122 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
9123
9124         PR debug/14328
9125         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
9126         constants as signed values.
9127
9128         PR middle-end/13448
9129         * c-tree.h (readonly_warning): Rename to ...
9130         (readonly_error): ... this.
9131         * c-typeck.c (build_unary_op): Adjust accordingly.
9132         (readonly_warning): Rename to ...
9133         (readonly_error): ... this and issue errors, not warnings.
9134         (build_modify_expr): Call readonly_error, not readonly_warning.
9135         (c_expand_asm_operands): Likewise.
9136         * tree-inline.c (optimize_inline_calls): Do not inline functions
9137         after errors have occurred.
9138
9139 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9140
9141         * configure.ac: Rearrange some threading code for clarity;
9142         add section comment.
9143         * configure: Regenerate.
9144
9145 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9146
9147         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
9148         typos.
9149         * doc/cppopts.texi: Fix a typo.
9150
9151 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9152
9153         * config/i386/i386.md: Fix formatting.
9154
9155 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
9156
9157         * configure.ac: Add some comments delineating sections of code.
9158
9159         * doc/install.texi: Note that libada uses autoconf 2.57 also.
9160
9161         * doc/install.texi: Fix idiot typo in previous commit.
9162
9163         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
9164
9165 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9166
9167         * config/h8300/h8300.md: Add comments about peephole2's.
9168
9169 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9170
9171         * config/h8300/h8300.md: Tweak operand numbers of some
9172         peephole2's.
9173
9174 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
9175
9176         * config/h8300/h8300.md: Tweak comments about peephole2's.
9177
9178 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
9179
9180         PR middle-end/14203
9181         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
9182         instead of testing whether DECL_RTL is not NULL.
9183
9184 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9185
9186         * config/sh/sh.c: Fix formatting.
9187
9188 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9189
9190         * config/sh/sh.c: Convert to ISO-C.
9191
9192 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
9193
9194         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
9195         my previous patch.
9196
9197         * config/darwin.h (machopic_finish): Output stub even if the
9198         symbol is already defined.
9199
9200 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9201
9202         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
9203
9204 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9205
9206         * genattr.c (main): Don't define
9207         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
9208         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
9209         (DFA_PIPELINE_INTERFACE): Likewise.
9210         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
9211         (DFA_PIPELINE_INTERFACE): Likewise.
9212
9213 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
9214
9215         * config/mips/mips.md (tstsi, tstdi): Delete.
9216
9217 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9218
9219         * config/mips/mips.c (override_options): Remove an obsolete
9220         duplicate definition of the "e" constraint.
9221         * config/mips/mips.h: Update a comment accordingly.
9222
9223 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9224
9225         * config/mips/mips.md: Complete the unfinished R4000
9226         multiply/shift errata workaround.  Improve documentation.
9227         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
9228         has a hilo hazard.
9229         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
9230         (muldi3, muldi3_internal): Likewise.
9231         (muldi3_internal2): Remove, replacing with...
9232         (muldi3_mult3, muldi3_r4000): ...these new patterns.
9233         (mulsidi3): Take the errata into account.
9234         (mulsidi3_32bit): Remove, replacing with...
9235         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
9236         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
9237         (umulsidi3): Take the errata into account.
9238         (umulsidi3_32bit): Remove, replacing with..
9239         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
9240         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
9241         TARGET_FIX_R4000.
9242         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
9243         (smuldi3_highpart, umuldi3_highpart): Likewise.
9244         * doc/invoke.texi: Document the errata workaround.
9245
9246 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9247
9248         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
9249         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9250         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
9251         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
9252         * config/mips/mips.c (mips_idiv_insns): New function.
9253         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
9254         (mips_output_division): Add a workaround for the R4000 divide/shift
9255         errata.
9256         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
9257         the length of an "idiv" instruction.
9258         * doc/invoke.texi: Document the new switches.
9259
9260 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
9261
9262         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
9263         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
9264
9265 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9266
9267         PR optimization/14229
9268         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
9269
9270 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
9271
9272         * fold-const.c (fold): Strip NOPs that change the signedness
9273         for RSHIFT too.  Expand comment.
9274
9275 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
9276
9277         PR optimization/7871
9278         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
9279         from or to call insns.
9280
9281 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9282
9283         PR optimization/7871
9284         * flow.c (propagate_one_insn): Interpret calls as setting global
9285         registers, not merely clobbering them.
9286
9287 2004-02-27  Dale Johannesen  <dalej@apple.com>
9288
9289         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
9290         config/darwin-protos.h:  Ditto.
9291         config/darwin.h:  Remove call to it.
9292         * combine.c (distribute_notes): Do not place a REG_DEAD note
9293         when value is both set and used.
9294
9295 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9296
9297         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9298         as well.
9299         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9300         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9301
9302 2004-02-27  Andrew Pinski  <apinski@apple.com>
9303
9304         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
9305         Speedup common case of the type values being in the same order.
9306
9307 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
9308
9309         * config/ia64/ia64.h (no-inline-float-divide): New option.
9310         * config/ia64/ia64.h (no-inline-int-divide): New option.
9311         * config/ia64/ia64.h (no-inline-sqrt): New option.
9312         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
9313         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
9314         * config/ia64/ia64.c (ia64_override_options): Modify error
9315         checking for inlined division/sqrt.
9316
9317 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9318
9319         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
9320         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
9321         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
9322         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
9323         copyright.
9324
9325 2004-02-27  Paul Brook  <paul@codesourcery.com>
9326
9327         * function.c (assign_parms): Don't count pretend args for alignment.
9328
9329 2004-02-27  Richard Henderson  <rth@redhat.com>
9330
9331         * passes.c: New file.
9332         * Makefile.in (OBJS-common): Add it.
9333         * diagnostic.c (rtl_dump_and_exit): Move decl ...
9334         * flags.h (rtl_dump_and_exit): ... here.
9335         * output.h (size_directive_output, last_assemble_variable_decl):
9336         Move from toplev.c.
9337         * rtl.h (reg_alloc): Move from toplev.c.
9338         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
9339         struct dump_file_info, enum dump_file_index, dump_file_tbl,
9340         open_dump_file, close_dump_file, rest_of_decl_compilation,
9341         rest_of_type_compilation, rest_of_handle_final,
9342         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
9343         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
9344         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
9345         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
9346         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
9347         rest_of_handle_tracer, rest_of_handle_if_conversion,
9348         rest_of_handle_if_after_combine, rest_of_handle_web,
9349         rest_of_handle_branch_prob,
9350         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
9351         rest_of_handle_addressof, rest_of_handle_sibling_calls,
9352         rest_of_handle_jump_bypass, rest_of_handle_inlining,
9353         rest_of_handle_null_pointer, rest_of_handle_combine,
9354         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
9355         rest_of_handle_gcse, rest_of_handle_loop_optimize,
9356         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
9357         (decode_d_option): Use enable_rtl_dump_file.
9358         (compile_file, finalize, do_compile): Move profile+combine+graph
9359         cleanup to finish_optimization_passes.
9360         * toplev.h (init_optimization_passes, finish_optimization_passes,
9361         enable_rtl_dump_file): Declare.
9362
9363 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
9364             Roger Sayle  <roger@eyesopen.com>
9365
9366         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
9367         operands to build a tree with swapped operands.
9368         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
9369         'unsignedp' predicate to specify the signedness.
9370
9371 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9372
9373         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
9374         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
9375         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
9376         comment typos and formatting.  Follow spelling conventions.
9377
9378 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
9379
9380         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
9381         fix_truncsfsi2.
9382
9383         * config/rs6000/spe.md: Delete spe_efsctuiz.
9384         Add spe_fixuns_truncsfsi2.
9385         Add spe_fix_truncsfsi2.
9386
9387 2004-02-26  Eric Christopher  <echristo@redhat.com>
9388
9389         * c-lex.c (c_lex_string_translate): New variable.
9390         (lex_string): Use to determine string translation.
9391         * c-pragma.h: Prototype.
9392         * c-parse.in (start_string_translation): New. Set above.
9393         (stop_string_translation): Ditto.
9394         (attribute, attribute_list, asm_def, asm_stmt,
9395         asm_operand): Use above functions.
9396         * cp/parser.c (cp_parser_declaration): Translate strings
9397         unless token is RID_EXTERN. Set c_lex_string_translate
9398         for recursive use.
9399         (cp_parser_asm_definition): Only translate argument strings
9400         to asms.
9401         (cp_parser_asm_operand_list): Ditto.
9402         (cp_parser_attribute_list): Do not translate attribute strings.
9403
9404 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9405
9406         * stmt.c (expand_start_case_dummy): Remove.
9407         * tree.h: Remove the corresponding prototype.
9408
9409 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9410
9411         * builtins.c (apply_args_register_offset): Remove.
9412         * tree.h: Remove the corresponding prototype.
9413
9414 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9415
9416         * stor-layout.c (is_pending_size): Remove.
9417         * tree.h: Remove the corresponding prototype.
9418
9419 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9420
9421         * recog.c (validate_replace_src): Remove.
9422         * recog.h: Remove the corresponding prototype.
9423
9424 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9425
9426         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
9427         MAYBE_REG_PARM_STACK_SPACE.
9428         * function.c: Likewise.
9429         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
9430         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9431         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
9432         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
9433
9434 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9435
9436         * c-decl.c (c_expand_deferred_function): Remove.
9437         * c-tree.h: Remove the corresponding prototype.
9438
9439 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
9440
9441         * postreload.c (reload_cse_move2add): Generate just a PLUS
9442         instead of an entire SET.
9443
9444 2004-02-26  Jan Hubicka  <jh@suse.cz>
9445
9446         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
9447         /pentium4m.
9448         * i386.c (override_options): Add support for new CPUs.
9449         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
9450         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
9451         constants.
9452         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
9453
9454 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
9455
9456         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
9457
9458 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
9459
9460         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
9461         (sparc_emit_fixunsdi): New prototype.
9462         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
9463         (sparc_emit_fixunsdi): New function.
9464         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
9465         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
9466         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
9467         to sparc_emit_floatunsdi.
9468         (fixuns_truncsfdi2): New expander.
9469         (fixuns_truncdfdi2): Likewise.
9470
9471 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
9472
9473         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
9474         unless HAVE_cc0.
9475
9476 2004-02-25  Richard Henderson  <rth@redhat.com>
9477
9478         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
9479         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
9480         use (op0-op1) == 0 if op0 is a pointer.
9481         * config/alpha/alpha.md (cmpdi): Use some_operand.
9482         (three comparison combine splits): Remove.
9483
9484 2004-02-25  Richard Henderson  <rth@redhat.com>
9485
9486         PR c/12794
9487         * c-common.c (handle_alias_attribute): Reject the attribute if
9488         current_function_decl is set.
9489
9490 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9491
9492         * config.gcc: Add comment describing extra_gcc_objs.
9493         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
9494         * configure.ac (extra_gcc_objs): New substitution variable.
9495         (host_extra_gcc_objs): Don't substitute.
9496         * configure: Regenerate.
9497         * Makefile.in: Use extra_gcc_objs.
9498
9499 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
9500
9501         * doc/contrib.texi: Add an entry for myself.
9502
9503 2004-02-25  Jan Hubicka  <jh@suse.cz>
9504
9505         * basic-block.h (make_eh_edge, break_superblocks): Declare.
9506         * cfgbuild.c (make_eh_edge):  Make global.
9507         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
9508         * except.c (build_post_landing_pads, connect_post_landing_pads,
9509         dw2_build_landing_pads, sjlj_emit_function_enter,
9510         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
9511         sjlj_build_landing_pads): Update CFG.
9512         (emit_to_new_bb_before): New function.
9513         (finish_eh_generation): Do not rebuild the CFG.
9514
9515 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9516
9517         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
9518         target_cpu_default defines.
9519         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
9520         * pa.h (TARGET_DEFAULT): Likewise.
9521
9522 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9523
9524         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
9525         comparisons with regard to signedness.
9526
9527 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9528
9529         * arm.c (thumb_legitimize_address): New function.
9530         * arm-protos.h: Prototype it.
9531         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
9532         (LEGITIMIZE_ADDRESS): Use it.
9533
9534 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
9535
9536         * reload1.c (reload): Only spill eliminable register with multiple
9537         adjacent elimination alternatives if all alternatives fail.
9538
9539 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
9540
9541         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
9542         is -4095...+4095 inclusive.
9543
9544 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
9545
9546         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
9547         the bootstrap failure with Sun CC 5.4 and 5.5.
9548
9549 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
9550
9551         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
9552         which modifies NEWREG.
9553         (cse_condition_code_reg): Update the mode of CC_REG in
9554         CC_SRC_INSN on our own.
9555
9556 2004-02-24  Michael Matz  <matz@suse.de>
9557
9558         * config/i386/i386.c (ix86_comp_type_attributes): Check for
9559         regparm attributes.
9560
9561 2004-02-24  Richard Henderson  <rth@redhat.com>
9562
9563         * toplev.c (dump_file_tbl): Rename from dump_file.
9564         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
9565         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
9566         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
9567         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
9568         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
9569         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
9570         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
9571         s/rtl_dump_file/dump_file/g.
9572
9573 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
9574
9575         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
9576         (spe_fixuns_truncsfsi2): Delete.
9577
9578         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
9579         (fixuns_truncsfsi2): Delete.
9580
9581 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
9582
9583         PR/14240
9584         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
9585
9586 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
9587
9588         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
9589
9590 2004-02-24  Jason Merrill  <jason@redhat.com>
9591
9592         * tree.c (check_qualified_type): New fn.
9593         (get_qualified_type): Use it.  If type already has the desired
9594         quals, just return it.
9595         * tree.h: Declare it.
9596
9597 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
9598
9599         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
9600         TARGET_SCHED_FINISH_GLOBAL): New macros.
9601
9602         * target.h (md_init_global, md_finish_global): Function
9603         declarations corresponding to new target macros.
9604
9605         * haifa-sched.c (sched_init, sched_finish): Allow target to
9606         call the new schedular hooks.
9607
9608         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
9609         call to update_life_info.
9610
9611         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
9612         flag_schedule_insns for SH4.
9613
9614         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
9615         find_set_regmode_weight, find_insn_regmode_weight,
9616         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
9617         sh_variable_issue, high_pressure, ready_reorder,
9618         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
9619         functions used to throttle the insn movement in first
9620         scheduling pass for SH.
9621
9622         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
9623         TARGET_SCHED_FINISH_GLOBAL.
9624
9625 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
9626
9627         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
9628         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
9629         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
9630         symbols in sections named by the user.
9631         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
9632         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
9633         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
9634         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
9635         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
9636         the above.
9637         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
9638         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
9639         one more pseudo to further improve code generation.
9640         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
9641         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
9642         inside UNSPEC.
9643         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
9644         * config/frv/frv.c (frv_legitimate_address_p): Added
9645         allow_double_reg_p argument.  Adjust all callers.  Use it to
9646         decide whether to enable double-register indirect addressing.
9647         (frv_funcdesc_alias_set): Remove.
9648         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
9649         register.  Emit movdi_ldd.
9650         (ldd_address_operand): New.
9651         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
9652         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
9653         (PREDICATE_CODES): Add ldd_address_operand.
9654         * config/frv/frv.md (movdi_ldd): New.
9655         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
9656         intermediate computations if possible.
9657         (symGOTOFF2reg_i): Fix harmless typo.
9658         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
9659         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
9660         relocated p_vaddr to vaddr type.
9661         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
9662         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
9663         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
9664         MEM, or use a funcdesc alias set.  Use regular move instead of
9665         ldd.
9666         (dbl_memory_one_insn_operand): Recognize function descriptors by
9667         type or by alias set, and don't split them.
9668         * config/frv/frv.md (call, call_value): Never use call_internal
9669         for fdpic.
9670         (call_internal, call_value_internal): Never match for FDPIC.
9671         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
9672         call_value_fdpicsi): Require FDPIC.
9673         (ldd): Removed.
9674         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
9675         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
9676         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
9677         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
9678         FDPIC.  Compute data base address.
9679         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
9680         before the other self-specs are processed.
9681         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
9682         Build with -fPIC.
9683         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
9684         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
9685         inhibit_libc is defined.
9686         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
9687         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
9688         __FRV_FDPIC__.
9689         (__RELOC_POINTER): Define.
9690         (_Unwind_IteratePhdrCallback): Use it.
9691         * config/frv/frv.h (Twrite): Define.
9692         (TRANSFER_FROM_TRAMPOLINE): Use it.
9693         * config/frv/linux.h (INVOKE__main): Undefine.
9694         (Twrite): Override.
9695         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
9696         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
9697         (-mlibrary-pic): Emphasize that this option generates EABI code.
9698         (-mcpu): Add fr550.
9699         (-mpack): Remove.
9700         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
9701         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
9702         and CONSTs in FDPIC mode.
9703         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
9704         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9705         * config/frv/frv.c (move_source_operand): Don't accept symbolic
9706         constants.
9707         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
9708         rather than 'i' constraint for the 2-instruction alternative.
9709         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
9710         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
9711         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
9712         EXTRA_CONSTRAINT_FOR_Y.
9713         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
9714         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
9715         (addsi3): Change 'Y' constraint to 'Q'.
9716         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
9717         * reload.c (CONST_POOL_OK_P): New macro.
9718         (find_reloads): Use it to decide whether a constant can be forced
9719         into memory.
9720         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
9721         constant satisfies got12_operand.
9722         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
9723         (frv_legitimate_address_p): Check for valid unspec offsets using
9724         got12_operand rather than frv_legitimate_fdpic_operand_p.
9725         (frv_legitimate_fdpic_operand_p): Delete.
9726         (frv_emit_movsi): Abort if we try to use the FDPIC register during
9727         or after reload.
9728         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
9729         TARGET_FDPIC.
9730         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
9731         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
9732         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
9733         (frv_fdpic_fptr_operand): Don't declare here.
9734         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
9735         rather than fdpic_got12_operand.
9736         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
9737         got12_operand and const_unspec_operand.
9738         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
9739         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
9740         (symbolic_operand): Remove.
9741         (const_unspec_operand): New predicate.
9742         * config/frv/frv.md (*movsi_got): Use got12_operand.
9743         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
9744         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
9745         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
9746         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
9747         * config/frv/frv.c (frv_unspec): New structure.
9748         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
9749         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
9750         validate CONST indices.  Use frv_output_const_unspec to print them.
9751         (frv_print_operand): Update call to unspec_got_name.  Use
9752         frv_output_const_unspec to print constant unspecs.
9753         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
9754         Reject UNSPECs otherwise.
9755         (unspec_got_name): Take the relocation number as argument, not an
9756         rtx containing it.
9757         (frv_output_addr_const_extra): Remove, replacing with...
9758         (frv_output_const_unspec): ...this new function.
9759         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
9760         (gpr_or_int12_operand): Use fdpic_got12_operand.
9761         (dbl_memory_one_insn_operand): Likewise.
9762         (fdpic_got12_operand): Use frv_const_unspec_p.
9763         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
9764         are already legitimate.  Use frv_small_data_reloc_p when deciding
9765         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
9766         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
9767         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
9768         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
9769         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9770         label, for real this time.
9771         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
9772         representation of visibility.
9773         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
9774         such.
9775         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
9776         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
9777         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
9778         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
9779         it was explicitly disabled.
9780         (frv_stack_info): There is no need to save the link register in every
9781         frame unless TARGET_LINKED_FP is true.
9782         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
9783         frame pointer if the stack pointer might change value.
9784         (frv_return_addr_rtx): Check and process "count" argument.
9785         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
9786         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
9787         (frv_find_base_term): Declare.
9788         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
9789         (FIND_BASE_TERM): Define.
9790         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
9791         small_data_register_operand, small_data_symbolic_operand.  Add
9792         symbolic_operand.
9793         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
9794         (frv_print_operand_memory_reference, output_move_single): Remove
9795         special handling for unlegitimized sdata addresses.
9796         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
9797         and symbolic addresses.
9798         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
9799         (frv_find_base_term): New function.
9800         (int_2word_operand): Check specifically for symbolic address constants.
9801         (pic_register_operand, pic_symbolic_operand): Delete.
9802         (small_data_register_operand, small_data_symbolic_operand): Delete.
9803         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
9804         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
9805         (move_source_operand): Only accept CONSTs if they're a two-insn
9806         symbolic constant.
9807         (fdpic_got12_operand): Don't require TARGET_FDPIC.
9808         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
9809         using gen_symGOTOFF2reg*.
9810         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
9811         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
9812         themselves a cost of 3 insns.
9813         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
9814         Change predicate to symbolic_operand.
9815         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
9816         (*movsi_lda_sdata): Delete.
9817         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
9818         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
9819         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
9820         frv-*-*linux*.
9821         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
9822         label.
9823         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
9824         -multilib-library-pic.
9825         (LINK_SPEC): Add -z text for -mfdpic.
9826         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
9827         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
9828         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
9829         Override.
9830         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
9831         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
9832         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
9833         crtstuff-generated files.
9834         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
9835         * config.gcc: Add frv-*-*linux*.
9836         * config/frv/linux.h, config/frv/t-linux: New.
9837         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
9838         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
9839         when -mfdpic even if a linker script is explicitly listed.
9840         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9841         * config/frv/frv.c (frv_override_options): Clear asm_out
9842         unaligned_op for SImode on FDPIC.
9843         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
9844         argument passed to decl_readonly_section.
9845         (frv_assemble_integer): Revert 2003-09-30's change, but make the
9846         whole block run with FDPIC even with -fno-PIC.
9847         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
9848         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
9849         symbol or label plus offset to memory.
9850         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
9851         GOTOFF and GPREL for LABEL_REF.
9852         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
9853         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
9854         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
9855         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
9856         * doc/invoke.texi: Document them.
9857         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
9858         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
9859         (frv_splittable_got_operand): Removed.
9860         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
9861         LO_SUM.  Add comments.
9862         (frv_override_options): Moved enabling of FDPIC to
9863         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
9864         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
9865         (frv_legitimize_fdpic_address): Don't duplicate logic in
9866         frv_emit_movsi.
9867         (frv_gen_GPsym2reg): New.
9868         (unspec_got_name): Added gprel.
9869         (frv_expand_fdpic_call): Add support for inlining PLTs.
9870         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
9871         (gpr_or_int12_operand): Added GPREL12.
9872         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
9873         (small_data_symbolic_operand): Fail if FDPIC.
9874         (fdpic_splittable_got_operand): Removed.
9875         (fdpic_got12_operand): Added GPREL12.
9876         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
9877         when appropriate.  Fix sdata GOTOFF.
9878         (frv_legitimate_constant_p): Require legitimate PIC operand for
9879         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
9880         (frv_assemble_integer): Move FDPIC funcdesc handling out of
9881         flag_pic case.
9882         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
9883         frv_assemble_integer fails.
9884         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
9885         (SUBTARGET_DRIVER_SELF_SPECS): New.
9886         (ASM_SPEC): Don't pass -mno-fdpic.
9887         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
9888         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
9889         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
9890         -multilib-library-pic.
9891         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
9892         condexec_si_media_operator, condexec_sf_add_operator and
9893         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
9894         and condexec_sf_unary_operator.
9895         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
9896         New.
9897         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
9898         movsi_internal.  Give them internal names.  movsi_got has type
9899         int.
9900         (fdpic got splitters): Remove.
9901         (symGPREL2reg, symGPREL2reg_hilo): New.
9902         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
9903         to -mlibrary-pic.  Map -multilib-library-pic to it.
9904         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
9905         Document.
9906         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
9907         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
9908         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
9909         (frv_cannot_force_const_mem): New function.
9910         (const_small_data_p, plus_small_data_p): Update comments on sdata
9911         on FDPIC.
9912         (frv_override_options): Set flag_pie for FDPIC too.
9913         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
9914         call-saved registers on FDPIC.
9915         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
9916         don't force LR to be preserved.
9917         (frv_expand_prologue): Likewise.
9918         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
9919         (frv_frame_pointer_required): Don't force it just because the
9920         FDPIC register is used.
9921         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
9922         operand only if !condexec_p.
9923         (frv_legitimize_address): Return the FDPIC-legitimized address.
9924         Don't match small data here on FDPIC.
9925         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
9926         symbols.  Use TRUE/FALSE instead of 1/0.
9927         (frv_local_funcdesc_p): New.
9928         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
9929         immediates when possible.
9930         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
9931         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
9932         an UNSPEC_GOT.
9933         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
9934         12-bit immediates when possible.
9935         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
9936         are not legitimate pic operands.
9937         (frv_in_small_data_p): Re-enable for FDPIC.
9938         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
9939         (FRV_GLOBAL_P): Removed.
9940         * config/frv/frv.md: Add modes to CONSTs.
9941         (movsi_got): New.
9942         (movsi_lo_sum_got): Use separate matches instead of match_dup.
9943         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
9944         (fdpic splittable operations): Match on flag_pic != 1.
9945         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
9946         * config/frv/frv.c (frv_asm_out_constructor,
9947         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
9948         bytes, not bits.
9949         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
9950         * config/frv/frv.c (frv_assemble_integer): Reject complex
9951         expressions referencing function SYMBOL_REFs.
9952         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
9953         (move_source_operand): Reject CONSTs that reference function
9954         SYMBOL_REFs on FDPIC.
9955         (frv_emit_movsi): If we get such a CONST, break it up.
9956         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
9957         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
9958         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
9959         MEM.
9960         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
9961         (frv_trampoline_size): Increase for FDPIC.
9962         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
9963         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
9964         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
9965         Disable use of GOTOFF for now.
9966         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
9967         Disable use of small data in FDPIC for now.
9968         (frv_asm_output_mi_thunk): Implement for FDPIC.
9969         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
9970         * config/frv/frv.c (frv_asm_out_constructor): Use
9971         frv_assemble_integer for FDPIC pointers.
9972         (frv_asm_out_destructor): Likewise.
9973         * config/frv/frv.md (ldd): Fix order of operands.  Use
9974         address_operand for input.
9975         2003-09-18  DJ Delorie  <dj@redhat.com>
9976         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
9977         (unspec_got_name): Correct typo.
9978         (frv_emit_movsi): Pre-expand splittable GOTs.
9979         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
9980         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
9981         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
9982         * config/frv/t-frv: Add -mfdpic multilibs.
9983         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
9984         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
9985         * config/frv/frv.c (frv_override_options): -mfdpic assumes
9986         flag_pic, default to 32-bit pics, require DWORD ops.
9987         (frv_override_options): Add W and Z constraints.
9988         (frv_expand_prologue): No pic prologue for -mfdpic.
9989         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
9990         (frv_print_operand_memory_reference): Handle GOT constants.
9991         (frv_legitimate_address_p): Allow GOT constants.
9992         (frv_legitimize_address): Handle GOT addresses too.
9993         (frv_legitimate_fdpic_operand_p): New.
9994         (frv_legitimize_fdpic_address): New.
9995         (unspec_got_name): New.
9996         (frv_output_addr_const_extra): New.
9997         (frv_expand_fdpic_call): New.
9998         (frv_fdpic_fptr_operand): New.
9999         (gpr_or_int12_operand): Handle GOT operands.
10000         (int_2word_operand): Handle GOT operands.
10001         (fdpic_operand): New.
10002         (fdpic_splittable_got_operand): New.
10003         (fdpic_got12_operand): New.
10004         (frv_emit_movsi): Handle GOT operands.
10005         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10006         (frv_print_operand): Support 'g' code for GOT operands.
10007         * config/frv/frv-protos.h: Add prototypes as needed.
10008         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10009         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10010         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10011         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10012         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10013         R_FRV_GOTOFFLO): New.
10014         (movsi_high_got, movsi_lo_sum_got): New.
10015         (*movsi_pic): Don't use this splitter for -mfdpic.
10016         (addsi3): Allow GOT references also.
10017         (call, call_value): Handle -mfdpic separately.
10018         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10019         call_value_fdpicsi): New.
10020         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10021         symGOTOFF2reg_i): New.
10022         * config/frv/frv.h (MASK_FDPIC): New.
10023         (TARGET_FDPIC): New.
10024         (TARGET_SWITCHES): Add -mfdpic.
10025         (FDPIC_FPTR_REGNO): New.
10026         (FDPIC_REGNO): New.
10027         (OUR_FDPIC_REG): New.
10028         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10029         FDPIC_CALL_REGS.
10030         (REG_CLASS_NAMES): Likewise.
10031         (REG_CLASS_CONTENTS): Likewise.
10032         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10033         (EXTRA_CONSTRAINT): Add it here.
10034         (FRV_GLOBAL_P): New.
10035         (OUTPUT_ADDR_CONST_EXTRA): New.
10036
10037 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10038
10039         * config/sparc/sparc.h: Remove commented-out definitions of
10040         TARGET_EDOM and GEN_ERRNO_RTX.
10041
10042 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10043
10044         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10045         df_analyse with df_analyze.
10046
10047 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10048
10049         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10050         beginning of block.
10051
10052 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10053
10054         * calls.c (precompute_arguments): Update comment.
10055
10056 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10057
10058         * et-forest.c: Replace et_occurences with et_occurrences.
10059
10060 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10061
10062         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10063         with iv_analyze.
10064
10065 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10066
10067         * config/i386/i386.c: Rename pni to sse3.
10068         * config/i386/i386.h: Likewise.
10069         * config/i386/i386.md: Likewise.
10070         * config/i386/pmmintrin.h: Likewise.
10071         * doc/extend.texi: Likewise.
10072         * doc/invoke.texi: Likewise.
10073
10074 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10075             Kazu Hirata  <kazu@cs.umass.edu>
10076
10077         Remove -fwritable-strings.
10078         * c-common.c (fix_string_type): Don't check
10079         flag_writable_strings.
10080         (fix_string_type): Likewise.
10081         * c-opts.c (set_std_c89): Don't initialize
10082         flag_writable_strings.
10083         (set_std_c99): Likewise.
10084         * common.opt (fwritable-strings): Remove.
10085         * flags.h: Remove the external declaration of
10086         flag_writable_strings.
10087         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10088         Remove.
10089         * toplev.c (flag_writable_strings): Remove.
10090         (f_options): Remove an entry for writable-strings.
10091         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10092         flag_writable_strings.
10093         (compare_constant) <STRING_CST>: Likewise.
10094         (build_constant_desc): Likewise.
10095         * config/darwin.c (machopic_select_section): Likewise.
10096         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10097         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10098         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10099         * config/mips/mips.c (mips_select_section): Likewise.
10100         (mips_encode_section_info): Likewise.
10101         * config/pa/pa.c (pa_select_section): Likewise.
10102         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10103         * config/v850/v850.c (v850_select_section): Likewise.
10104         * doc/invoke.texi (-fwritable-strings): Remove.
10105         (-fno-const-strings): Don't mention -fwritable-strings.
10106         * doc/trouble.texi: Don't mention -fwritable-strings.
10107
10108 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10109
10110         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10111
10112 2004-02-23  Dale Johannesen  <dalej@apple.com>
10113
10114         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10115         (movdf_hardfloat64):  Ditto.
10116         (movdf_softfloat64):  Ditto.
10117
10118 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
10119         * config/rs6000/rs6000.c (function_arg): call to
10120         rs6000_mixed_function_arg for DFmode moved to allow
10121         normal DFmode incoming register assignment.
10122
10123 2004-02-23  Dale Johannesen  <dalej@apple.com>
10124
10125         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
10126         (movdf_hardfloat64):  Ditto.
10127
10128 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10129
10130         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
10131         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
10132         copyright.
10133
10134 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
10135
10136         PR c/14156
10137         * c-typeck.c (c_expand_return): Change check for VAR_DECL
10138         to use DECL_P instead.
10139
10140         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
10141         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
10142
10143 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10144
10145         * Makefile.in (opts.o): Depend on target.h.
10146         * opts.c (decode_options): Use targetm.default_short_enums
10147         instead of DEFAULT_SHORT_ENUMS.
10148         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10149         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
10150         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
10151         * target.h (gcc_target): Add default_short_enums.
10152         * config/cris/cris.h: Remove a comment about
10153         DEFAULT_SHORT_ENUMS.
10154         * config/ip2k/ip2k.h: Likewise.
10155         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
10156         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
10157
10158 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10159             Falk Hueffner  <falk@debian.org>
10160
10161         PR c/14188
10162         * builtins.c (expand_builtin_va_arg): Emit an informative message
10163         if a trap is generated.
10164         * c-typeck.c (build_function_call): Likewise.
10165
10166 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10167
10168         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
10169         fopen.
10170         * libgcov.c: Include sys/stat.h.
10171         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
10172         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
10173         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
10174         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
10175
10176 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
10177
10178         * reorg.c: Remove comments about dead ports.
10179
10180 2004-02-22  Christopher Faylor  <cgf@redhat.com>
10181
10182         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
10183         extra host object file when targetting cygwin rather than generic
10184         object files.
10185
10186 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
10187
10188         Merge from tree-ssa:
10189         2003-11-20  Richard Henderson  <rth@redhat.com>
10190
10191                 * tree-inline.c (insert_decl_map): New.
10192                 (remap_decl, remap_type, remap_block, copy_body_r,
10193                 initialize_inlined_parameters, declare_return_variable,
10194                 remap_save_expr): Use it.
10195
10196         * function.c (copy_body_r): Add mapping from id->ret_label to
10197         id->ret_label.  Revert test for ret_label.
10198
10199 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
10200
10201         * genoutput.c (process_template): Strip trailing whitespace in @
10202         templates and issue a warning if there was any.
10203
10204 2004-02-21  Christopher Faylor  <cgf@redhat.com>
10205
10206         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
10207         object file when targetting cygwin.
10208         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
10209         overridden by top-level Makefile.
10210
10211 2004-02-21  Roger Sayle  <roger@eyesopen.com>
10212
10213         * config/i386/i386.c (standard_80387_constant_p): Also prefer
10214         the x87's load constant instructions when optimizing for size.
10215
10216 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
10217
10218         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
10219         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
10220         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
10221         * fold-const.c: Likewise.
10222         * simplify-rtx.c: Likewise.
10223
10224 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
10225
10226         * combine.c (can_combine_p): Don't ignore SETs marked with
10227         REG_EH_REGION notes.
10228         (try_combine): When attemting to fix unrecognized insns, don't
10229         split a PARALLEL that contains the original i2.
10230
10231 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
10232
10233         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
10234         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
10235         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
10236         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
10237         (vector, pixel, bool): #define to __vector, __pixel and __bool.
10238         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
10239         portion of header.
10240         (__altivec_link_error_invalid_argument): Remove prototype; will use
10241         __builtin_altivec_compiletime_error("vec_*") instead.
10242         (vec_*): Fix/complete set of available operation overloads given the
10243         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
10244         cv-correctness of pointer arguments; in C, always check for correct
10245         argument types before macro expansion.
10246         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
10247         defining Darwin/PowerPC-specific '-f[no-]altivec' and
10248         '-W[no-]altivec-long-deprecated' switches.
10249         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
10250         '__vector', '__pixel' and '__bool' macros using
10251         '__attribute__((altivec(...)))' types.
10252         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
10253         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
10254         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
10255         New type nodes.
10256         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
10257         handling '-W[no-]altivec-long-deprecated'.
10258         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
10259         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
10260         altivec_expand_dst_builtin): Remove casts from integer literals.
10261         (altivec_expand_builtin): Likewise; handle expansion of new
10262         '__builtin_altivec_compiletime_error' function.
10263         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
10264         types, and make them distinct from other vector types; register
10265         '__builtin_altivec_compiletime_error' function.
10266         (print_operand): For 'P', print a full target register name instead of
10267         merely its number.
10268         (rs6000_attribute_table): Add "altivec" attribute.
10269         (rs6000_handle_altivec_attribute): New function.
10270         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
10271         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
10272         maps to).
10273         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
10274         declare.
10275         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
10276
10277 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10278
10279         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
10280         check.
10281         (shift_mix4left+2): Delete redundant pattern.
10282
10283 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10284
10285         * alias.c (OUTGOING_REGNO): Don't define the default.
10286         * builtins.c (OUTGOING_REGNO): Likewise.
10287         (INCOMING_REGNO): Likewise.
10288         (apply_args_register_offset): Always use OUTGOING_REGNO.
10289         * combine.c (OUTGOING_REGNO): Likewise.
10290         * sibcall.c (OUTGOING_REGNO): Likewise.
10291         * defaults.h (INCOMING_REGNO): Provide the default.
10292         (OUTGOING_REGNO): Likewise.
10293
10294 2004-02-21  Jan Hubicka  <jh@suse.cz>
10295
10296         * params.def (max-peeled-insns, max-completely-peeled-insns,
10297         max-once-peeled-insns): Set to 400.
10298
10299 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10300
10301         PR c++/12007
10302         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
10303         are set for parameters before outputing debugging information.
10304
10305 2004-02-20  Falk Hueffner  <falk@debian.org>
10306
10307         PR target/14201
10308         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
10309         numbers.
10310
10311 2004-02-20  Per Bothner  <per@bothner.com>
10312
10313         * input.h:  Don't #include line-map.h.  It may cause link problems
10314         with undefined linemap_line_start when line-map.h is included but
10315         line-map.o is not linked, as currently happens with gengtype on
10316         compilers that don't support inline.
10317         * toplev.c:  So we do have to explicitly #include line-map.h here.
10318
10319 2004-02-20  Richard Henderson  <rth@redhat.com>
10320
10321         * doc/invoke.texi: Add -Wvariadic-macros.
10322
10323 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10324
10325         * haifa-sched.c (sched_emit_insn): Remove.
10326         * sched-int.h: Remove the corresponding prototype.
10327
10328 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10329
10330         Revert:
10331         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10332         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10333         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10334         * config/cris/cris.h: Remove a comment about
10335         DEFAULT_SHORT_ENUMS.
10336         * config/ip2k/ip2k.h: Likewise.
10337         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10338
10339 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
10340             Tom Tromey  <tromey@redhat.com>
10341
10342         * doc/install.texi: Moved --disable-libgcj and
10343         --with-system-zlib documentation to new section for
10344         Java-specific options.
10345         Added explicit Cross-Compiler-Specific Options subheading.
10346         Added section for Java-specific options.
10347
10348 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
10349
10350         * doc/install.texi (Building the Ada compiler): Remove
10351         example.
10352
10353 2004-02-20  James E Wilson  <wilson@specifixinc.com>
10354
10355         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
10356
10357 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
10358
10359         * gcc.c (process_command): Allow translation of the copyright
10360         symbol but not the rest of the copyright message.
10361         * gcov.c (print_version): Likewise.  Allow translation of the
10362         message about warranty.
10363
10364 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
10365
10366         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
10367         predicate.
10368         ("*andsi_clear"): Tweak constraints to not match postincrement.
10369         Adjust the predicate to exclude a volatile memory reference.
10370         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
10371         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
10372
10373 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
10374
10375         * move-if-change: Remove.
10376         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
10377         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
10378         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
10379         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
10380         (s-gtyp-gen, s-iov): Use the top level move-if-change.
10381         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
10382
10383 2004-02-19  James E Wilson  <wilson@specifixinc.com>
10384
10385         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
10386         for operand2.  Add condition that requires register_operand operand2
10387         before reload.
10388
10389 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
10390             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10391
10392         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
10393         * config/mips/mips.md: Expand comment above unaligned loads and stores.
10394
10395 2004-02-19  Richard Henderson  <rth@redhat.com>
10396
10397         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
10398         * tree.c (build0, build1, build2, build3, build4): Split out from...
10399         (build): ... here.  Call them.
10400         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
10401
10402         * convert.c (convert_to_integer): Remove extra build argument.
10403         * tree-inline.c (expand_call_inline): Likewise.
10404
10405 2004-02-19  Richard Henderson  <rth@redhat.com>
10406
10407         * c-opts.c (warn_variadic_macros): New.
10408         (c_common_handle_option): Set it.
10409         (sanitize_cpp_opts): Copy it to cpp_opts.
10410         * c.opt (Wvariadic-macros): New.
10411         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
10412         * cppinit.c (cpp_create_reader): Initialize it.
10413         * cppmacro.c (parse_params): Check it.
10414
10415 2004-02-19  David Daney <ddaney@avtrex.com>
10416
10417         PR preprocessor/14198
10418         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
10419         builtin_assert ("machine=mips")
10420
10421 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10422
10423         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
10424         * system.h (DEFAULT_SHORT_ENUMS): Poison.
10425         * config/cris/cris.h: Remove a comment about
10426         DEFAULT_SHORT_ENUMS.
10427         * config/ip2k/ip2k.h: Likewise.
10428         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
10429
10430 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10431
10432         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
10433         when passing single SFmode quantities in general registers,
10434         put them in the high half.
10435
10436 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10437
10438         * doc/md.texi (Standard Names): Document additional dependency on
10439         fix pattern.
10440
10441         * optabs.c (ftruncify): Remove.
10442         (expand_fix): Manually inline ftruncify above.
10443         (can_fix_p): Add FIXME note.
10444
10445 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
10446
10447         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
10448         spe_fixuns_truncsfsi2.
10449
10450         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
10451         fixuns_truncsfsi2.
10452
10453 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
10454
10455         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
10456         * testsuite/gcc.dg/20040219-1.c: New test.
10457
10458 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
10459
10460         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
10461         "*subsf3_cconly"): Subtraction is not commutative.
10462
10463 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
10464
10465         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
10466         (sdbout_symbol): If called before sdbout_init, queue DECL for
10467         later and return.
10468         (sdbout_init): Set sdbout_initialized true, process decls
10469         queued earlier by sdbout_symbol.
10470         (sdbout_finish): Use size_t for index variable.
10471
10472 2004-02-19  Jeff Law  <law@redhat.com>
10473
10474         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
10475         for unordered comparison codes.
10476
10477 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
10478
10479         * reload1.c (reload): Correct comment.
10480         (scan_paradoxical_subregs): Remove #if 0 and old comment.
10481         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
10482         register variables are not used by reload.
10483
10484 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
10485
10486         PR target/14209
10487         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
10488         constraints to not match postincrement.  Adjust the predicate to
10489         exclude a volatile memory reference.
10490
10491 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10492
10493         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
10494
10495 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10496
10497         * hooks.c (hook_void_tree_int): Remove.
10498         (hook_void_constcharptr): Likewise.
10499         (hook_int_void_0): Likewise.
10500         * hooks.h: Remove the prototypes for the above three
10501         functions.
10502         * targhooks.c (hook_bool_machine_mode_true): Remove.
10503         * targhooks.h: Remove the prototype for
10504         hook_bool_machine_mode_true.
10505
10506 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10507
10508         * emit-rtl.c (subreg_realpart_p): Remove.
10509         (reorder_insns_with_line_notes): Likewise.
10510         (end_full_sequence): Likewise.
10511         * rtl.h: Remove the prototype for the above functions.
10512
10513 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10514
10515         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
10516         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
10517         config/iq2000/iq2000.h, config/m32r/m32r.h,
10518         config/pdp11/pdp11.h, config/sparc/sparc.h,
10519         config/xtensa/xtensa.h: Remove commented-out or useless
10520         definitions of CASE_VECTOR_PC_RELATIVE.
10521
10522 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
10523
10524         * loop.c (all_sets_invariant_p): Remove.
10525
10526 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10527
10528         PR target/12916
10529         * config/sparc/sparc.h (NPARM_REGS): Delete.
10530         (BASE_RETURN_VALUE_REG): Likewise.
10531         (BASE_OUTGOING_VALUE_REG): Likewise.
10532         (BASE_PASSING_ARG_REG): Likewise.
10533         (BASE_INCOMING_ARG_REG): Likewise.
10534         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
10535         TARGET_ARCH64, not TARGET_V9.
10536         (function_arg_slotno): Dispatch based on the mode class.
10537         Handle vector modes like floating-point modes.
10538         (function_arg_record_value_1): Handle vector types like
10539         floating-point types.
10540         (function_arg_record_value_2): Likewise.
10541         Calculate regno after mode transformation.
10542         (function_arg): Handle vector modes like floating-point modes.
10543         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
10544         If ARCH64, do not recheck alignment.
10545         (function_arg_pass_by_reference): Reorder the conditions.
10546         (sparc_return_in_memory): Move after function_arg_padding.
10547         Implement calling conventions for vector modes.
10548         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
10549         (function_value): Move scope of 'regbase'.
10550         Implement calling conventions for vector modes.
10551         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
10552         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
10553         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
10554         the argument is passed by reference.
10555         (sparc_type_code): Handle vector types.
10556
10557 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
10558
10559         * function.c (assign_parms): When building decl_rtl for
10560         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
10561
10562 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
10563
10564         * expr.c (is_aligning_offset): Check if we are aligning the
10565         expressions's address over BIGGEST_ALIGNMENT in bytes, not
10566         in bits.
10567
10568 2003-02-18  Matt Austern  <austern@apple.com>
10569
10570         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
10571         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
10572         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
10573         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
10574         spec string.
10575         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
10576
10577 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
10578
10579         * dwarf2out.c (loclabel_num): Move outside #ifdef
10580         DWARF2_DEBUGGING_INFO and mark with GTY(()).
10581         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
10582         Mark with GTY(()).
10583         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
10584         Allocate memory with ggc_alloc.  No need to copy anything.
10585         (ia64_hpux_file_end): Update to match.
10586
10587 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10588
10589         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
10590         by default.
10591
10592 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10593
10594         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
10595         ("divmodtisi3"): Likewise.
10596         ("udivmoddi4", "udivmodtidi3"): Likewise.
10597         ("divmodsi4", "divmoddisi3"): Likewise.
10598         ("udivmodsi4", "udivmoddisi3"): Likewise.
10599         ("udivsi3", "umodsi3"): Likewise.
10600
10601 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
10602
10603         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
10604         placeholder insn when chunkifying the pool.
10605
10606 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10607
10608         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
10609         generating PIC code.
10610
10611 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10612
10613         * config/h8300/h8300-protos.h: Add a prototype for
10614         h8300_expand_branch.
10615         * config/h8300/h8300.c (h8300_expand_branch): New.
10616         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
10617         bgtu, beq, bne): Call h8300_expand_branch().
10618
10619 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10620
10621         * config/h8300/h8300-protos.h: Add prototypes for
10622         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
10623         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
10624         (h8300_hard_regno_mode_ok): Likewise.
10625         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
10626         h8300_hard_regno_nregs().
10627         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
10628
10629 2004-02-18  Per Bothner  <per@bothner.com>
10630
10631         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
10632         partly reverts my 2003-10-01 change, because we're back to logically
10633         including <command line> inside the main line.
10634         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
10635         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
10636         Fixes PR preprocessor/14103.
10637
10638         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
10639         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
10640         (cpp_push_include):  Don't need to increment pfile's line field.
10641         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
10642
10643         * c-ppoutput.c (print struct):  New first_time field.
10644         (init_pp_output):  Set print.first_time.
10645         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
10646         which is set also for (say) <command line>.  Clear print.first_time.
10647
10648         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
10649         does not match the code, so fix both.
10650         (should_stack_file):  Inline include_pch_p function.
10651         (include_pch_p):  Remove pointless function.
10652
10653         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
10654
10655 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10656
10657         * config/h8300/h8300.md (four define_peephole2's): Use
10658         h8300_regs_ok_for_stm().
10659
10660 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10661
10662         * config/h8300/h8300-protos.h: Update the prototype for
10663         expand_a_rotate().
10664         * config/h8300/h8300.c (expand_a_rotate): Remove the first
10665         argument.
10666         * config/h8300/h8300.md: Update all callers.
10667
10668 2004-02-18  Jan Hubicka  <jh@suse.cz>
10669
10670         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
10671         floats.
10672         (simplify_binary_operation): Deal with logicals on floats.
10673
10674         * i386.md (SSE fabs splitters): Emit new patterns.
10675         (SSE cmov splitters): Likewise.
10676         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
10677         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
10678         subregs.
10679         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
10680         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
10681
10682 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10683
10684         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
10685         by hand.
10686         (output_a_rotate): Tweak a comment.
10687         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
10688         (*rotlhi3_1): Change to rotlhi3_1.
10689         (*rotlsi3_1): Change to rotlsi3_1.
10690
10691 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
10692
10693         PR target/13866
10694         * arm.c (load_multiple_operation): Don't insist that the source reg
10695         of a post-increment component is the same as the destination.
10696         (store_multiple_operation): Likewise.
10697
10698 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10699
10700         * config/h8300/h8300.md: Move movsf patterns into one section
10701         of the file.
10702
10703 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10704
10705         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
10706         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
10707         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
10708         config/mips/linux64.h, config/pa/pa-64.h,
10709         config/rs6000/aix51.h, config/rs6000/aix52.h,
10710         config/rs6000/spe.md, config/sparc/linux.h,
10711         config/sparc/linux64.h: Update copyright.
10712
10713 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
10714
10715         * config/h8300/h8300.md: Move push patterns into one
10716         section of the file.
10717
10718 2004-02-18  Mark Mitchell <mark@codesourcery.com>
10719
10720         PR c++/11326
10721         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
10722         fntype.
10723
10724 2004-02-18  Paul Brook  <paul@codesourcery.com>
10725
10726         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
10727
10728 2004-02-18  Paul Brook  <paul@codesourcery.com>
10729
10730         PR debug/12934
10731         * dwarf2out.c (loc_descriptor_from_tree): Handle
10732         EXPR_WITH_FILE_LOCATION.
10733
10734 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
10735
10736         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
10737         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
10738         trailing whitespace from instructions.
10739
10740 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
10741
10742         * configure.ac: When generating auto-build.h, pass
10743         --enable-languages to the sub-configure.
10744         Put quotes around ${program_transform_name} when generating
10745         name of as, ld, nm, objdump.
10746         * configure: Regenerate.
10747
10748 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
10749
10750         * Makefile.in (s-check, s-config, s-conditions, s-flags)
10751         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
10752         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
10753         (s-preds, s-iov): Do not depend on move-if-change.
10754
10755 2004-02-17  James E Wilson  <wilson@specifixinc.com>
10756
10757         * caller-save.c (insert_restore): Pass mem through copy_rtx.
10758         (insert_save): Likewise.
10759
10760 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10761
10762         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
10763         warning.
10764
10765 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10766
10767         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
10768         *one_cmplsi2_h8300.
10769         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
10770
10771 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10772
10773         * config/h8300/h8300-protos.h: Update the prototype of
10774         fix_bit_operand().
10775         * config/h8300/h8300.c (fix_bit_operand): Remove the second
10776         argument "what".
10777         * config/h8300/h8300.md: Update all callers.
10778
10779 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10780
10781         * config/h8300/h8300.c (fix_bit_operand): Change the name of
10782         the last argument to "code" from "type".
10783
10784 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10785
10786         * config/h8300/h8300.c: Remove an extern declaration of
10787         rtx_equal_function_value_matters.
10788
10789 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10790
10791         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
10792         by hand.
10793         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
10794         (*iorqi3_1): Change to iorqi3_1.
10795         (*xorqi3_1): Change to xorqi3_1.
10796
10797 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10798
10799         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
10800         typos.
10801
10802 2004-02-17  Jan Hubicka  <jh@suse.cz>
10803
10804         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
10805
10806 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
10807
10808         PR optimization/14119
10809         * combine.c (try_combine): When attemting to fix unrecognized insns,
10810         don't delete SETs marked with REG_EH_REGION notes.
10811
10812 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
10813
10814         * combine.c (simplify_if_then_else): Do not replace
10815         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
10816         modes differ.
10817
10818 2004-02017  Steven Bosscher  <stevenb@suse.de>
10819
10820         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
10821         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
10822         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
10823         * ada/utils.c: Likewise.
10824         * cp/decl.c: Likewise.
10825         * f/com.c: Likewise.
10826         * java/class.c: Likewise.
10827
10828 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10829
10830         * config/h8300/h8300.md: Fix comment typos.
10831
10832 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10833
10834         * config/mips/t-iris6gld: Renamed to ...
10835         * config/mips/t-irix-gld: ... this.
10836         * config.gcc (mips-sgi-irix6*): Reflect this
10837         (mips-sgi-irix5*): Use it with GNU ld.
10838
10839         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
10840         to ...
10841         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
10842         * config/mips/t-irix-gld: Reflect this.
10843         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10844
10845         * config/mips/iris5gld.h: New file.
10846         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
10847         Only use collect2 without gas.
10848
10849         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
10850         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10851         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
10852         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
10853
10854         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
10855         * config/mips/iris5.h: ... here.
10856
10857         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
10858         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
10859         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
10860
10861         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
10862         using irix_startfile_spec, irix_endfile_spec.
10863
10864 2004-02-16  Gunther Nikl  <gni@gecko.de>
10865
10866         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
10867
10868 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10869
10870         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
10871         insns by hand.
10872
10873 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10874
10875         * cfghooks.c (split_edge): Speed up updating of dominators.
10876
10877 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
10878
10879         PR c++/11326
10880         * c-common.c (flag_abi_version): Remove.
10881         * c-common.h (flag_abi_version): Likewise.
10882         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
10883         * c.opt (fabi-version): Remove.
10884         * calls.c (expand_call): Always pass a function type to
10885         struct_value_rtx.  Use convert_memory_address.
10886         * common.opt (fabi-version): Add it.
10887         * flags.h (flag_abi_version): Likewise.
10888         (abi_version_at_least): New macro.
10889         * opts.c (common_handle_option): Add OPT_fabi_version.
10890         * toplev.c (flag_abi_version): Define it.
10891         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
10892         New function.
10893         (ia64_output_mi_thunk): Use it.
10894         (ia64_struct_value_rtx): Likewise.
10895
10896 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10897
10898         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
10899         Don't generate insns by hand.
10900
10901 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
10902
10903         PR c++/14178
10904         * doc/invoke.texi (fabi-version): The default is 2 now.
10905
10906 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10907
10908         * loop-iv.c: New file.
10909         * Makefile.in (loop-iv.o): New.
10910         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
10911         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
10912         num_loop_branches): New functions.
10913         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
10914         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
10915         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
10916         get_simple_loop_desc, free_simple_loop_desc): Declare.
10917         (simple_loop_desc): New inline function.
10918         (struct rtx_iv, struct niter_desc): New.
10919         * cfgloopmanip.c (loopify): Specify semantics more precisely.
10920         * expr.c (force_operand): Handle subregs of expressions created by
10921         loop unroller.
10922         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
10923         parts of the initialization to toplev.c
10924         * loop-unroll.c (loop_exit_at_end_p): New.
10925         (unroll_and_peel_loops): Call iv_analysis_done.
10926         (decide_peel_once_rolling, decide_peel_completely,
10927         decide_unroll_stupid, decide_unroll_constant_iterations,
10928         decide_unroll_runtime_iterations, decide_peel_simple,
10929         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
10930         unroll_loop_runtime_iterations): Use new simple loop analysis.
10931         * loop-unswitch.c (compare_and_jump_seq): New.
10932         (may_unswitch_on_p): Renamed to ...
10933         (may_unswitch_on): Use new iv analysis.
10934         (reversed_condition): Export.
10935         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
10936         * predict.c (estimate_probability): Use new simple loop analysis.
10937         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
10938         canon_condition, simplify_using_condition): Declare.
10939         * stor-layout.c (get_mode_bounds): New.
10940         * toplev.c (rest_of_handle_loop2): Some parts of
10941         initialization/finalization moved here from loop-init.c.
10942
10943 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
10944
10945         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
10946         pointer.
10947         (CALL_USED_REGISTERS): Likewise.
10948         (REG_ALLOC_ORDER): Likewise.
10949         (REG_CLASS) <GENERAL_REGS>: Likewise.
10950
10951 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
10952
10953         * doc/md.texi (Insn Canonicalizations): Document left-chaining
10954         in associative operators.
10955         * rtlanal.c (commutative_operand_precedence): Create some new
10956         variables.  Prefer a commutative operand on the left, then
10957         binary expressions, then NEG and NOT.
10958
10959 2004-02-16  Matthias Klose  <doko@debian.org>
10960
10961         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
10962         in terms of SHLIB_SOVERSION.
10963         * config/m68k/t-slibgcc-elf-ver: New file.
10964         * config/pa/t-slibgcc-elf-ver: New file.
10965         * config.gcc (m68k-linux, parisc-linux): Use them when not
10966         sjlj exceptions are not configured.
10967
10968 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
10969
10970         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
10971
10972 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
10973
10974         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
10975
10976 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
10977
10978         * doc/sourcebuild.texi: Mention backends.html.
10979
10980 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
10981
10982         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
10983         line-map.c, line-map.h, var-tracking.c: Fix comment
10984         formatting.
10985
10986 2004-02-16  Richard Henderson  <rth@redhat.com>
10987
10988         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
10989
10990         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
10991
10992 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10993
10994         * config/h8300/h8300.md: Remove unnecessary parallels from
10995         all define_insn and define_split patterns.
10996
10997 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
10998
10999         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11000         "clobber").
11001
11002 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11003
11004         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11005         '%#'.
11006
11007 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11008
11009         * config/ia64/ia64.c, config/mips/mips.c,
11010         config/mmix/mmix-modes.def: Fix comment typos.
11011
11012 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11013
11014         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11015         (get_directive_line): Remove unused function prototype.
11016
11017 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11018
11019         * tree-inline.c (copy_body_r): Do not replace ret_label.
11020
11021 2004-02-14  Jan Hubicka  <jh@suse.cz>
11022
11023         * i386.c (x86_four_jump_limit): New variable.
11024         (k8_avoid_jump_misspredicts): Rename to ...
11025         (ix86_avoid_jump_misspredicts): .. this one.
11026         (ix86_pad_returns): Break out from ...
11027         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11028         to.
11029         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11030
11031 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11032
11033         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11034         PARALLEL is NULL.
11035
11036 2004-02-14  Per Bothner  <per@bothner.com>
11037
11038         * fix-header.c (line_table):  Move local variable in main to global.
11039         * scan.h (line_table):  Use it.
11040         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11041         line (recently renamed to src_loc) before calling recognized_function.
11042
11043 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11044
11045         * Makefile.in: Fix comment typos.
11046
11047 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11048
11049         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11050         for start_value when it is directly moved into reg, and factorize
11051         the retrieval of GET_MODE (reg).
11052
11053 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11054
11055         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11056         (mips_load_got_global): Delete.
11057         (mips_gotoff_page): Declare.
11058         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11059         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11060         UNSPEC_LOAD_GOT pattern rather than a MEM.
11061         (*load_got[sd]i): New patterns.
11062         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11063         (mips_load_got_page, mips_load_got_global): Delete.
11064         (mips_gotoff_page): New function.
11065         (override_options): Don't initialize mips_got_alias_set.
11066
11067 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11068
11069         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11070         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11071         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11072         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11073         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11074         * config/mips/mips.c: Fix some overly-long lines.
11075         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11076         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11077
11078 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11079
11080         * configure.ac: Search for as, ld below libexec/gcc.
11081         * configure: Regenerate.
11082
11083 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11084
11085         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11086         __builtin_arm_setwcx ().
11087         * config/arm/arm.c (arm_expand_builtin): Generate operands
11088         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11089
11090 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11091
11092         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11093         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11094         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11095         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11096         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11097         (_mm_mulhi_pu16): Likewise.
11098
11099 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11100
11101         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11102         DECL_NAME != 0 before dereferencing.
11103
11104 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11105
11106         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11107         (s390_output_addr_const_extra): Declare.
11108         (s390_output_pool_entry): Remove FILE * argument.
11109         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11110         (s390_output_addr_const_extra): New function.
11111         (print_operand_address): Call output_addr_const instead of
11112         s390_output_symbolic_const.
11113         (print_operand): Likewise.
11114         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11115         Remove FILE * argument.
11116         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
11117         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
11118         call.
11119
11120 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11121
11122         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
11123         (struct edge, struct vertex, struct graph): New.
11124         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
11125         free_graph): New functions.
11126
11127 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
11128
11129         * config/mips/mips.md (casesi_internal, casesi_internal_di):
11130         Use ".set macro" to avoid warnings about multi-instruction
11131         macros, since they're intentional.
11132
11133 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
11134
11135         * config/darwin.h: Add include guards.  Remove old, now incorrect,
11136         comment about STANDARD_EXEC_PREFIX.
11137
11138         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
11139         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
11140         for installing .1 manpages.  Add rules for installing cpp
11141         and gcov manpages under their installed names.
11142
11143 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
11144
11145         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
11146         host, but try LD_FOR_TARGET first.
11147         * configure: Rebuilt.
11148
11149 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11150
11151         * dbxout.c: Move declaration of dbxout_type_decl outside
11152         #ifdef DBX_DEBUGGING_INFO.
11153         * c-parse.in: Don't give the asmdef production a type.
11154
11155 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11156
11157         * debug.h (struct gcc_debug_hooks): Add type_decl field.
11158         (debug_nothing_tree_int): Prototype.
11159         (dwarf_debug_hooks): Delete, unused.
11160         * debug.c (do_nothing_debug_hooks): Update.
11161         (debug_nothing_tree_int): New function.
11162         * langhooks.h (struct lang_hooks_for_decls):
11163         Remove builtin_type_decls field.
11164         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
11165         (LANG_HOOKS_DECLS): Update.
11166         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
11167         Use debug_hooks->type_decl.
11168         * dbxout.c (preinit_symbols): New static.
11169         (dbx_debug_hooks, xcoff_debug_hooks): Update.
11170         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
11171         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
11172         for symbols to output.
11173         (dbxout_type_decl): New function.
11174         (dbxout_symbol): If called before dbxout_init has run, queue
11175         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
11176         to TYPE_DECLs before emitting them.
11177         * xcoffout.c (assign_type_number): Delete.
11178         (xcoff_type_numbers): New static table.
11179         (xcoff_assign_fundamental_type_number): New function.
11180         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
11181         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
11182         * sdbout.c: Include varray.h.
11183         (deferred_global_decls): New static.
11184         (sdb_debug_hooks): Update.
11185         (sdbout_global_decl): If we can't emit something right now,
11186         remember it in deferred_global_decls.
11187         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
11188         (sdbout_init): Initialize deferred_global_decls.
11189         * Makefile.in: Update dependencies of sdbout.o.
11190         * dwarf2out.c (dwarf2out_type_decl): New function.
11191         (dwarf2_debug_hooks): Update.
11192         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
11193         * c-decl.c (getdecls): Just return 0.
11194         (check_for_loop_decls): Don't use getdecls.
11195         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
11196         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
11197
11198 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
11199
11200         * config/s390/s390.c (s390_sched_reorder2): Remove.
11201         (TARGET_SCHED_REORDER2): Do not redefine.
11202
11203 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
11204
11205         * c-parse.in (maybe_type_qual): Delete.
11206         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
11207         (asm_argument): New grammar rules.
11208         (extdef_1): Use asmdef.
11209         (maybeasm): Move down with other asm rules; use simple_asm_expr.
11210         (xexpr): Move up with other expression rules.
11211         (stmt): Use asm_stmt.
11212
11213         * c-typeck.c (build_asm_expr): New function - body mostly
11214         pulled from build_asm_stmt.
11215         (build_asm_stmt): Just handle tacking on the volatile qualifier.
11216         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
11217
11218 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
11219
11220         PR bootstrap/13617
11221         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
11222         (mips_declare_object): Make variadic.
11223         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
11224         mips_output_aligned_decl_common.
11225         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
11226         (mips_declare_object): Make variadic.
11227
11228 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11229
11230         * function.c (update_epilogue_consts): Teach about binary operations.
11231
11232         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
11233         previous MEM_VOLATILE in REF.
11234         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
11235         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
11236
11237 2004-02-12  Gunther Nikl  <gni@gecko.de>
11238
11239         * config.gcc: Restore support for m68k-openbsd.
11240
11241 2004-02-12  Jan Hubicka  <jh@suse.cz>
11242
11243         * tree-optimize.c (tree_rest_of_compilation): Do not release
11244         DECL_ARGUMENTS.
11245
11246 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
11247
11248         * doc/install.texi: Fix the spelling of "explicitly".
11249
11250 2004-02-11  Eric Christopher  <echristo@redhat.com>
11251
11252         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
11253         duplicate argument structure of cpp_interpret_string.
11254         * cpphash.h: Move prototype...
11255         * cpplib.h: Here.
11256         * cpplib.c: Fix calls to match new function signature.
11257
11258 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
11259
11260         PR c/456
11261         * cppexp.c (num_binary_op): Don't allow comma operators in #if
11262         constant expressions at all outside C99 mode if pedantic.
11263
11264 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
11265
11266         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
11267         (log10_optab, log2_optab): Define corresponding macros.
11268         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
11269         * genopinit.c (optabs): Implement log10_optab and log2_optab
11270         using log10?f2 and log2?f2 patterns.
11271         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
11272         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
11273         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
11274         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
11275
11276         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
11277         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
11278         log2, log2f and log2l built-ins as inline x87 intrinsics.
11279
11280 2004-02-11  Richard Henderson  <rth@redhat.com>
11281
11282         PR target/1532
11283         * flow.c (insn_dead_p): A clobber of a dead hard register is a
11284         dead insn after reload.
11285
11286 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
11287
11288         * tree.h (frame_base_decl): Add GTY marker.
11289         * var-tracking.c (frame_base_decl): Likewise.
11290
11291 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
11292
11293         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
11294         incorrect, hunk.
11295         (add_location_or_const_value_attribute): Use text_section_label,
11296         not TEXT_SECTION_NAME.
11297
11298 2004-02-11  Per Bothner  <per@bothner.com>
11299
11300         Represent column numbers using line-map's source_location.
11301         The "next available source_location" is now managed internally by
11302         line-maps.c rather than by clients.
11303         * line-map.h (struct line_map):  New field column_bits.
11304         <from_line>:  Rename field to start_location.
11305         (struct line_maps):  New fields highest_location and max_column_hint.
11306         (linemap_check_files_exited):  New declaration.
11307         (linemap_line_start):  New declaration.
11308         (linemap_add):  Remove from_line parameter; use highest_location field.
11309         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
11310         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
11311         (CURRENT_LINE_MAP):  Remove macro.
11312         (linemap_position_for_column):  New inline function.
11313         * line-map.c (linemap_init):  Clear new fields.
11314         (linemap_check_files_exited):  New function, extracted from ...
11315         (linemap_free):  Use linemap_check_files_exited.
11316         (linemap_add):  Remove from_line parameter.  Various updates.
11317         (linemap_line_start):  New function.
11318         (linemap_lookeup):  Update for new field names.
11319         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
11320         linemap_position_for_column may unpredictably change the current map,
11321         it is cleaner and simpler for us to not cache it in cpp_reader.
11322         (struct cpp_buffer):  New sysp field.
11323         Changed warned_cplusplus_comments and from_stage3 to bitfields.
11324         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
11325         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
11326         current map using linemap_lookup.
11327         (do_linemarker):  Also set buffer's sysp field.
11328         (destringize_and_run):  No longer need to decrement current line.
11329         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
11330         (search_path_head, open_file_failed):  Use buffer's sysp.
11331         (cpp_make_system_header):  Get current map using linemap_lookup.
11332         Also set buffer's sysp flag.
11333         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
11334         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
11335         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
11336         (struct cpp_reader):  ... and adding saved_line_base field.
11337         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
11338         Update accordingly.  Don't adjust line.
11339         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
11340         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
11341         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
11342         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
11343         * cpplex.c (_cpp_lex_direct):  Likewise.
11344         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
11345         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
11346         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
11347         Remove col field as it is now subsumed by src_loc.
11348         * cpperror.c:  Update various field, parameter, and macro names.
11349         (print_location):  If col==0, try SOURCE_COLUMN of line.
11350         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
11351         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
11352         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
11353         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
11354         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
11355         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
11356         (_cpp_lex_direct):  Use linemap_position_for_column.
11357         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
11358         parameter.  Instead get it from the line_table global.  Adjust callers.
11359         (print):  Remove map field.  Replace line field to src_line.
11360         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
11361         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
11362         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
11363         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
11364         * cpptrad.c (copy_comment):  Rename variable.
11365         * c-lex.c (map):  Remove static variable, for same reason we removed
11366         cpp_reader's map field.
11367         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
11368         to call linemap_lookup.
11369         (cb_line_change):  Token's line field replaced by src_loc.
11370         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
11371         Don't save new_map.
11372
11373         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
11374         source_location.
11375
11376 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11377
11378         * config/rs6000/altivec.md (*movv4si_internal): At least one
11379         operand must be register_operand.
11380         (*movv8hi_internal1): Likewise.
11381         (*movv16qi_internal1): Likewise.
11382         (*movv4sf_internal1): Likewise.
11383
11384 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
11385
11386         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
11387         operand.
11388         (movv4hi_internal): Same.
11389         (movv2sf_internal): Same.
11390         (movv1di_internal): Same.
11391
11392 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
11393
11394         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
11395         TARGET_OLDABI consistently.
11396         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
11397         mips_va_arg,override_options,compute_frame_size,
11398         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
11399         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
11400         and TARGET_OLDABI consistently.
11401         * config/mips/mips.md (exception_receiver): Likewise.
11402         * config/mips/linux64.h: Likewise.
11403
11404 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
11405
11406         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
11407         Set AltiVec ABI and vrsave as default for ppc64 linux.
11408         (init_cumulative_args): Post error, if try to return
11409         value in AltiVec register without enable AltiVec.
11410         (function_arg_advance): Ditto for passing arguments.
11411
11412 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
11413
11414         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
11415         a label before updating its usage count.
11416
11417 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
11418
11419         * doc/install.texi: Remove extra cd.
11420
11421 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
11422
11423         * c-common.c (vector_size_helper): Remove; call
11424         reconstruct_complex_type() instead.
11425         * tree.c (reconstruct_complex_type): New function
11426         (formerly vector_size_helper() in c-common.c).
11427         (make_vector): Make externally visible.
11428         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
11429
11430 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11431
11432         * config/h8300/h8300-protos.h: Add a prototype for
11433         h8300_regs_ok_for_stm.
11434         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
11435         * config/h8300/h8300.md (stm_h8300s_2_advanced,
11436         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
11437         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
11438         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
11439         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
11440         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
11441         ldm_h8300s_4_normal, ldm_h8300s_4): Use
11442         h8300_regs_ok_for_stm().
11443
11444 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
11445
11446         PR c/14088
11447         * real.c (real_from_string): Look for 'X' as well as 'x' in
11448         hexfloat strings.
11449
11450 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
11451
11452         * config/h8300/h8300.md: Remove an incorrect comment about
11453         peephole2.  Add comments.
11454
11455 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
11456
11457         PR/14058
11458         * emit-rtl.c (set_decl_incoming_rtl): New.
11459         * tree.h (set_decl_incoming_rtl): New.
11460         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
11461         DECL_INCOMING_RTL.
11462         * ada/misc.c (adjust_decl_rtl): Likewise.
11463
11464 2004-02-10  Per Bothner  <per@bothner.com>
11465
11466         * c-opts.c (c_common_post_options):   Don't emit working directory
11467         in cpp output if -P was specified.
11468
11469 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11470
11471         PR c/14092
11472         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
11473         negate_expr back to the original type.
11474
11475 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
11476
11477         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
11478         bump retaddr here.
11479
11480 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
11481
11482         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
11483         gen_lowpart_SUBREG): Move under the file in which they
11484         are actually declared.
11485
11486 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
11487
11488         * doc/sourcebuild.texi: Add libada documentation.
11489
11490         * doc/install.texi: Update documentation on Ada build, now
11491         that the GNAT lib and tools are built automatically.
11492
11493 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
11494
11495         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
11496         && TARGET_IRIX.
11497
11498 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
11499
11500         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
11501         boundaries outside build_component_ref() call (a macro in ObjC++).
11502
11503 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
11504
11505         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
11506         (init_cumulative_args): Likewise.
11507         (a7_overlap_mentioned_p): Delete prototype.
11508         * config/xtensa/xtensa.c (struct machine_function): Replace
11509         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
11510         Add set_frame_ptr_insn field.
11511         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
11512         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
11513         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
11514         at the function entry and replace the operand with the pseudo.
11515         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
11516         argument and record this flag in CUMULATIVE_ARGS.
11517         (function_arg): Remove result_mode and special-case code to handle
11518         arguments in a7.  Instead, set need_a7_copy flag when there is an
11519         incoming argument in a7.
11520         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
11521         and use the value recorded in cfun->machine->set_frame_ptr_insn.
11522         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
11523         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
11524         special-case code.
11525         (a7_overlap_mentioned_p): Delete.
11526         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
11527         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
11528         arguments to init_cumulative_args and pass "incoming" flag instead.
11529         (BLOCK_REG_PADDING): Delete.
11530         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
11531         checks for reload_in_progress and reload_completed.  Update calls to
11532         xtensa_copy_incoming_a7.
11533         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
11534         to call xtensa_copy_incoming_a7.
11535
11536 2004-02-09  DJ Delorie  <dj@redhat.com>
11537
11538         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
11539         longer modify standard_exec_prefix, standard_bindir_prefix, or
11540         standard_startfile_prefix.
11541
11542 2004-02-09  James E Wilson  <wilson@specifixinc.com>
11543
11544         PR c++/11295
11545         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
11546         to expand_expr_real call, and pass in alt_rtl as last argument.
11547
11548         PR libstdc++/5625
11549         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
11550         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
11551         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
11552         * except.c (expand_builtin_extend_pointer): New.
11553         * except.h (expand_builtin_extend_pointer): Declare.
11554
11555 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
11556
11557         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
11558         unaligned loads and stores.
11559
11560 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11561
11562         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
11563         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
11564
11565         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
11566         * config/mips/iris5.h: ... here.
11567         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
11568
11569         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
11570         * config/mips/iris5.h: ... here.
11571
11572 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11573
11574         * configure.ac: Remove default executable files before AC_PROG_CC.
11575         * configure: Regenerate.
11576
11577 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
11578
11579         PR target/13721
11580         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
11581         print a operand other than a register.
11582
11583 2004-02-09  Roger Sayle  <roger@eyesopen.com>
11584
11585         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
11586         tree code rather than call fold_convert, which doesn't specify a
11587         default floating point to integer conversion.
11588
11589 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
11590
11591         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
11592         code to support SGS assembler.  Reformat adjacent code where possible.
11593         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
11594         definition.
11595         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
11596         for '%#'.
11597         * config/m68k/linux.h, config/m68k/m68k.c,
11598         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
11599         macros and asm_printf() format strings.
11600         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
11601         * config/m68k/linux.h: Update copyright.
11602         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
11603
11604 2004-02-08  Andreas Schwab  <schwab@suse.de>
11605             Bernardo Innocenti  <bernie@develer.com>
11606
11607         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
11608         REGISTER_PREFIX.
11609         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
11610         frame pointer register, overridable by OS targets.
11611         * (M68K_REGNAME): Macro to obtain register name for asm output,
11612         eventually replacing %a6 with M68K_FP_REG_NAME.
11613         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
11614         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
11615         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
11616         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
11617         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
11618
11619 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11620
11621         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
11622         hook_rtx_tree_int_null.
11623         * targhooks.c (default_struct_value_rtx): Remove.
11624         * targhooks.h: Remove the prototype for
11625         default_struct_value_rtx.
11626         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
11627         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
11628         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
11629         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
11630         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
11631         config/rs6000/rs6000.c, config/s390/s390.c,
11632         config/stormy16/stormy16.c, config/v850/v850.c,
11633         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
11634         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
11635
11636 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
11637
11638         * README.Portability: Change "ISO C89" to "ISO C90".
11639         * c-parse.in (primary, initelt): Likewise.
11640
11641 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
11642
11643         * real.c (encode_ibm_extended): Normalize the input value before
11644         converting it to a double.  Handle the case where a normal value
11645         rounds to infinity.
11646
11647 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
11648
11649         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
11650         warning.
11651         * cse.c (preferrable): Change to preferable. Update all of its
11652         callers.
11653         * genautomata.c (ainsn): Change
11654         first_ainsn_with_given_equialence_num to
11655         first_ainsn_with_given_equivalence_num.  Update all of its
11656         references.
11657
11658 2004-02-08  Jan Hubicka  <jh@suse.cz>
11659
11660         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
11661
11662 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
11663
11664         * function.c (assign_parms): Fix formatting.
11665
11666 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11667
11668         * default.h (PROMOTE_PROTOTYPES): Remove.
11669         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
11670         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
11671         EXPAND_BUILTIN_SAVEREGS): Poison.
11672         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
11673         hook_bool_tree_false.
11674         (TARGET_PROMOTE_PROTOTYPES): Likewise.
11675         * target.h: Replace SETUP_INCOMING_VARARGS with
11676         targetm.calls.setup_incoming_varargs().
11677         * targhooks.c (default_promote_function_return): Remove.
11678         (default_promote_prototypes): Likewise.
11679         (default_struct_value_rtx): Always abort().
11680         (default_expand_builtin_saveregs): Always print an error
11681         message.
11682         (default_setup_incoming_varargs): Do nothing.
11683         (default_pretend_outgoing_varargs_named): Don't depend on
11684         SETUP_INCOMING_VARARGS.
11685         * targhooks.h: Remove the prototype for
11686         default_promote_function_return and
11687         default_promote_prototypes.
11688
11689 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11690
11691         * system.h (SHARED_SECTION_ASM_OP): Poison.
11692         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
11693         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
11694
11695 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11696
11697         Bug 13856
11698         * c-decl.c (diagnose_mismatched_decls): Only give special
11699         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
11700         is also true.
11701         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
11702         DECL_FUNCTION_CODE when defining a built-in function.
11703         Don't update DECL_ESTIMATED_INSNS.
11704         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
11705         FUNCTION_DECLs.
11706         * tree.h: Delete DECL_ESTIMATED_INSNS.
11707         * tree-inline.c (struct inline_data): Delete inlined_insns field.
11708         (expand_call_inline, optimize_inline_calls): Don't update
11709         DECL_ESTIMATED_INSNS nor inlined_insns.
11710         * cgraphunit.c (cgraph_analyze_function): Don't update
11711         DECL_ESTIMATED_INSNS.
11712
11713 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
11714
11715         * c-common.c (shadow_warning): Delete.
11716         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
11717         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
11718         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
11719         * c-parse.in (free_parser_stacks): Delete.
11720
11721 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
11722
11723         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
11724         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
11725         Use the top level mkinstalldirs, not the one in the gcc subdir.
11726         * mkinstalldirs: Remove (from the gcc subdir).
11727
11728 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11729
11730         PR middle-end/13696
11731         * fold-const.c (fold_convert): New function to provide type
11732         conversion to the middle-end without using convert.
11733         (negate_expr, associate_trees, size_diffop, omit_one_operand,
11734         operand_equal_for_comparison_p, pedantic_omit_one_operand,
11735         invert_truthvalue, optimize_bit_field_compare, range_binop,
11736         decode_field_reference, make_range, build_range_check, unextend,
11737         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
11738         fold_binary_op_with_conditional_arg, fold_inf_compare,
11739         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
11740         convert with calls to fold_convert.
11741
11742 2004-02-07  Jan Hubicka  <jh@suse.cz>
11743
11744         * genrecog.c (find_operand): add extra argument stop.
11745         (validate_pattern): Verify that mach_dup is duplicating operand
11746         defined lexically earlier.
11747
11748 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11749
11750         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
11751         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11752         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
11753         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
11754         config/ia64/ia64.h, config/ip2k/ip2k.h,
11755         config/iq2000/iq2000.h, config/mips/iris5.h,
11756         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
11757         config/rs6000/aix51.h, config/rs6000/aix52.h,
11758         config/rs6000/darwin.h, config/rs6000/rs6000.h,
11759         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
11760         config/sparc/linux.h, config/sparc/linux64.h,
11761         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
11762         config/xtensa/xtensa.h: Remove the definitions of
11763         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
11764         MAX_WCHAR_TYPE_SIZE.
11765         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
11766         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
11767
11768 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
11769
11770         PR bootstrap/13990
11771         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
11772         gen_rtx_NE.
11773
11774 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
11775
11776         * var-tracking.c (vt_add_function_parameters): Surround checkings by
11777         #ifdef ENABLE_CHECKING and #endif.
11778
11779 2004-02-07  Roger Sayle  <roger@eyesopen.com>
11780
11781         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
11782         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
11783         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
11784         integer types and floating point with unsafe_math_optimizations.
11785         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
11786         Optimize A - B as A + (-B), if B is easily negated.
11787
11788 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11789
11790         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
11791         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
11792         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
11793         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
11794         Update copyright.
11795
11796 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
11797
11798         * c-ppoutput.c, var-tracking.c: Fix comment typos.
11799
11800 2004-02-06  James E Wilson  <wilson@specifixinc.com>
11801
11802         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
11803         glibc 2.3 or better.
11804
11805 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11806
11807         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
11808         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
11809
11810 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
11811
11812         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
11813         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
11814         (SHLIB_MKMAP_OPTS): Delete.
11815         (TARGET_LIBGCC2_CFLAGS): Add -specs.
11816         (bispecs): Add rule.
11817         * config/rs6000/libgcc-ppc64.ver: New file.
11818         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
11819         (__floatdidf, __floatdisf): Optimize multiply.
11820         (__fixunstfdi): New function.
11821         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
11822         real and imag parts larger than one register.
11823         (function_arg): Correct type of reg used when fp arg split partially
11824         to stack.
11825         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
11826         and __MACH__ or __powerpc64__.
11827
11828 2004-02-06  Roger Sayle  <roger@eyesopen.com>
11829             Ulrich Weigand  <uweigand@de.ibm.com>
11830
11831         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
11832         of gen_highpart or gen_lowpart when the floating point format is
11833         wider than the result mode.
11834
11835 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
11836
11837         * dwarf2out.c (loclabel_num): Move into #ifdef
11838         DWARF2_DEBUGGING_INFO.
11839
11840 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
11841
11842         * objc/objc-act.c (build_super_template) the 'class' field of
11843         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
11844         (get_super_receiver): Likewise.
11845
11846 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11847
11848         * reload1.c (check_eliminable_occurrences): Optimize the reset
11849         of can_eliminate.
11850         (eliminate_regs_in_insn): Likewise.
11851
11852 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
11853             Josef Zlomek  <zlomekj@suse.cz>
11854
11855         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
11856         at the beginning of function, call dwarf2out_var_location for
11857         NOTE_INSN_VAR_LOCATION note.
11858         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
11859         decl_loc_table): New.
11860         (lookup_decl_loc): New function.
11861         (add_var_loc_to_decl): New function.
11862         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
11863         only if can_use_fbreg.
11864         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
11865         functions.
11866         (loc_descriptor): Likewise. Process VAR_LOCATION.
11867         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
11868         (loc_descriptor_from_tree): Call mem_loc_descriptor with
11869         can_use_fbreg == true.
11870         (add_location_or_const_value_attribute): Added parameter enum
11871         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
11872         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
11873         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
11874         with attr == DW_AT_location.
11875         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
11876         if frame_base_decl is defined and has a location list.
11877         (gen_variable_die): Call add_location_or_const_value_attribute with
11878         attr == DW_AT_location.
11879         (dwarf2out_var_location): New function.
11880         (dwarf2out_begin_function): New function.
11881         (dwarf2out_init): Create decl_loc_table.
11882
11883 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11884
11885         * loop.c (force_movables): Transitively increase the priorities of
11886         all insns forces by an insn, not just the first one.
11887
11888 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
11889             Daniel Berlin <dberlin@dberlin.org>
11890
11891         Josef Zlomek  <zlomekj@suse.cz>
11892         * Makefile.in (var-tracking.o): New.
11893         * common.opt (fvar-tracking): New.
11894         * flags.h (flag_var_tracking): New.
11895         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
11896         * opts.c (common_handle_option): Add OPT_fvar_tracking.
11897         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
11898         * rtl.c (note_insn_name): Likewise.
11899         * rtl.def (VAR_LOCATION): New.
11900         * rtl.h (NOTE_VAR_LOCATION): New.
11901         (NOTE_VAR_LOCATION_DECL): New.
11902         (NOTE_VAR_LOCATION_LOC): New.
11903         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
11904         (variable_tracking_main): New exported function.
11905         * timevar.def (TV_VAR_TRACKING): New.
11906         * toplev.c (enum dump_file_index): Added DFI_vartrack.
11907         (dump_file): "vartrack" was added (-dV).
11908         (flag_var_tracking): New.
11909         (f_options): "var-tracking" was added.
11910         (rest_of_handle_variable_tracking): New function.
11911         (rest_of_compilation): Run variable tracking.
11912         (process_options): If user has not specified flag_var_tracking set it
11913         according to optimize, debug_info_level and debug_hooks.
11914         * tree.h (frame_base_decl): New.
11915         * var-tracking.c: New file.
11916         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
11917         (ia64_override_options): Set flags to run variable tracking in machine
11918         dependent reorg instead of toplev.c.
11919         (ia64_reorg): Run variable tracking if wanted.
11920         * doc/invoke.texi: Mention variable tracking in -dV,
11921         add and -fvar-tracking.
11922         * doc/passes.texi: Added variable tracking pass.
11923
11924         Daniel Berlin <dberlin@dberlin.org>
11925         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
11926         * dbxout.c (dbx_debug_hooks): Likewise.
11927         (xcoff_debug): Likewise.
11928         * debug.c (do_nothing_debug_hooks): Likewise.
11929         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
11930         * dwarfout.c (dwarf_debug_hooks): Likewise.
11931         * sdbout.c (sdb_debug_hooks): Likewise.
11932         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
11933         * final.c (final_scan_insn): Call var_location debug hook for each
11934         NOTE_INSN_VAR_LOCATION.
11935
11936 2004-02-06  Jan Hubicka  <jh@suse.cz>
11937
11938         * flow.c (update_life_info): Allocate reg_deaths when called from
11939         scheudler.
11940         (attempt_auto_inc):  Update life ranges accordingly.
11941
11942 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11943
11944         PR debug/11816
11945         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
11946
11947 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
11948
11949         * cfganal.c (flow_call_edges_add): Never split a libcall block.
11950
11951 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
11952
11953         * dwarf2out.c (output_loc_list): Don't use deltas if we have
11954         a separate line info table in use.
11955         Use the correct size for terminators.
11956         (output_die): Use offset, not delta.
11957
11958 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
11959
11960         * doc/invoke.texi: Remove the pni option from -mfpmath=.
11961
11962 2004-02-06  Jan Hubicka  <jh@suse.cz>
11963
11964         * recog.c (split_all_insns): Do not update reg info.
11965         * regrename.c (regrename_optimize): Likewise.
11966         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
11967         * flow.c (struct propagate_block_info): Add insn_num field.
11968         (reg_deaths): New array.
11969         (life_analysis): Free reg_deaths info.
11970         (allocate_reg_life_data): Allocate reg_deaths array.
11971         (propagate_one_insn): Use new array.
11972         (init_propagate_block): Initialize it.
11973         (free_propagate_block_info): Finish compuation of
11974         REG_LIVE_LENGTH
11975         (attempt_auto_inc): Sanity check that REG_INFO is not
11976         computed at same time.
11977         (mark_used_regs): Update new array.
11978
11979         * reg-stack.c (subst_stack_regs): Unshare clobbers before
11980         substitution.
11981
11982 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
11983
11984         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
11985         *extendqisi2_short_displ.
11986
11987 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
11988
11989         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
11990         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
11991         (emit_library_call_value_1): Likewise pass nargs.
11992         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
11993         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
11994         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
11995         parameter instead of scanning TYPE_ARGS_TYPES to count args.
11996         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
11997         prototype.
11998         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
11999         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12000         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12001         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12002         INIT_CUMULATIVE_ARGS.
12003         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12004         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12005         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12006         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12007         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12008         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12009         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12010         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12011         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12012         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12013         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12014         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12015
12016 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12017
12018         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12019         possible.
12020
12021 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12022
12023         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12024         note containing (plus (reg) (const_int)), where reg is an
12025         eliminable reg, then perform the register elimination without
12026         depending on eliminate_regs().
12027
12028 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12029
12030         * config/arc/arc.c (arc_return_in_memory): Check the return
12031         value of int_size_in_bytes against -1.  Don't check
12032         TREE_ADDRESSABLE.
12033         * config/avr/avr.c (avr_return_in_memory): Check the return
12034         value of int_size_in_bytes against -1.
12035         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12036         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12037         Likewise.
12038         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12039         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12040         Likewise.
12041
12042 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12043
12044         * config/frv/frv-protos.h: Remove the prototype for
12045         frv_setup_incoming_varargs.
12046         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12047         (frv_setup_incoming_varargs): Make it static.
12048         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12049
12050 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12051
12052         * config/fr30/fr30-protos.h: Remove the prototype for
12053         fr30_setup_incoming_varargs.
12054         Update the prototypes for fr30_num_arg_regs and
12055         fr30_function_arg_partial_nregs.
12056         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12057         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12058         (fr30_setup_incoming_varargs): Make it static.
12059         Add argument second_time.  Don't do anything when second_time
12060         is nonzero.
12061         (fr30_num_arg_regs): Change the type of the first argument to
12062         enum machine_mode.
12063         (fr30_function_arg_partial_nregs): Change the type of the
12064         second argument to enum machine_mode.
12065         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12066         (SETUP_INCOMING_VARARGS): Remove.
12067
12068 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12069
12070         * config/arc/arc-protos.h: Remove the prototype for
12071         arc_setup_incoming_varargs.
12072         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12073         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12074         (arc_setup_incoming_varargs): Make it static.
12075         (arc_external_libcall): Likewise.
12076         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12077         Remove the commented-out definition of
12078         ASM_OUTPUT_EXTERNAL_LIBCALL.
12079
12080 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12081
12082         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12083         to $$(slibdir) in the installation commands.
12084
12085 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12086
12087         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12088         with inner_regno, not regno.
12089         * rtlanal.c (refers_to_regno_p): Same.
12090
12091 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12092
12093         * config.gcc: Remove i370 support.
12094
12095 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12096
12097         * doc/install.texi:  Update automake and autoconf version
12098         requirements.  Note where to find gcj automake version.
12099
12100 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12101
12102         * Makefile.in (generate-manpages): Move dependencies to ...
12103         (man): here.
12104         * doc/makefile.texi: Document new targets.
12105         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12106
12107 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12108
12109         PR/13485
12110         Makefile.in (srcextra):  Add a level of indirection to ...
12111         (gcc.srcextra): ... here.
12112         (po-generated): Delete.
12113         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12114         options.c.
12115         (start.encap): Remove superfluous lang.srcextra dependency.
12116         objc/Make-lang.in (po-generated):  Delete.
12117
12118 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12119
12120         * config/ia64/ia64.c (REG_GP): Remove.
12121
12122 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12123
12124         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
12125
12126 2004-02-05  Devang Patel  <dpatel@apple.com>
12127
12128         * dwarf2out.c (force_type_die): Look up input type itself
12129         instead of root_type() of type.
12130
12131 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
12132
12133         * config/s390/s390.md ("*tmqidi_ext"): New insn.
12134         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
12135         pre-reload splitters are transformed to post-reload
12136         define_insn_and_split patterns.
12137         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
12138
12139 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12140
12141         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
12142         TARGET_PROMOTE_PROTOTYPES.
12143
12144 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12145
12146         PR middle-end/13750
12147         Revert:
12148         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
12149         PR pch/13361
12150         * c-typeck.c (constructor_asmspec): Delete.
12151         (struct initializer_stack): Delete field 'asmspec'.
12152         (start_init): Delete saving of asmspec.
12153         (finish_init): Don't update constructor_asmspec.
12154         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
12155         * stmt.c (expand_asm): Duplicate strings from tree.
12156         (expand_asm_operands): Likewise.
12157         * tree.c (tree_size): Update computation of size of STRING_CST.
12158         (make_node): Don't make STRING_CST nodes.
12159         (build_string): Allocate string with tree node.
12160         * tree.def (STRING_CST): Update comment.
12161         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
12162         (tree_string): Place contents of string in tree node.
12163         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
12164         from tree.
12165
12166 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12167
12168         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
12169         msgid.
12170
12171 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
12172
12173         * config/rs6000/altivec.md (*movv4si_internal): At least one
12174         operand must be altivec_register_operand.
12175         (*movv8hi_internal1): Likewise.
12176         (*movv16qi_internal1): Likewise.
12177         (*movv4sf_internal1): Likewise.
12178
12179 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12180
12181         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
12182         * configure: Regenerate.
12183
12184 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
12185
12186         * doc/install.texi: Update description of --gxx-include-dir to
12187         give correct default value.
12188
12189 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12190
12191         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
12192         8 with MAC_REG.
12193
12194 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12195
12196         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
12197         gen_rtx_PARALLEL.
12198
12199 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12200
12201         * emit-rtl.c: Update the comment about the file.
12202
12203 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
12204
12205         * sourcebuild.texi (Test Idioms): Update testcase naming
12206         conventions.
12207
12208 2004-02-04  Per Bothner  <per@bothner.com>
12209
12210         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
12211         * c-ppoutput.c (pp_dir_change):  New function.
12212         * c-common.h (pp_dir_change):  New declaration.
12213         * cpplib.h (struct cpp_options):  Remove working_directory field.
12214         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
12215         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
12216         Don't handle -fworking_directory here, but in c_common_post_options.
12217         (read_original_directory): Don't back up when done.
12218         Don't clear no-longer used working_directory flag.
12219         * cpplib.h:  Update declarations to match.
12220         * c-lex.c (cb_dir_change):  Move to c-opts.c.
12221         (init_c_lex):  Don't set dir_change callback here, since we want
12222         to set it even if flag_preprocess_only.
12223         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
12224         (c_common_post_options):  Set dir_change callback.
12225         Call pp_dir_change if approporiate.
12226         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
12227         unneeded parameter and result. Do LC_RENAME for <built-in>.
12228         (c_common_post_options):  Call cpp_read_main_file here instead.
12229         (c_common_init):  Update accordingly.
12230         (push_command_line_include):  Don't cpp_push_main_file.
12231         Do LC_RENAME rather than LC_LEASE to get back to main file.
12232         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
12233         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
12234         files, but call finish_options for all files.
12235         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
12236         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
12237         cpp_find_main_file + cpp_push_main_file.
12238         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
12239         * opts.c (handle_options):  Only set main_input_filename first time.
12240
12241 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
12242
12243         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
12244
12245 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
12246
12247         * reload.c (find_equiv_reg): When checking for register overlap,
12248         don't index hard_regno_nregs with a pseudo-reg.
12249
12250 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12251
12252         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
12253
12254 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
12255
12256         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
12257         against FIRST_PSEUDO_REGISTER.
12258
12259 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12260
12261         * Makefile.in: Move target, host overrides after per-language
12262         fragments.
12263
12264         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
12265         (GNATLIBCFLAGS): Remove -g.
12266
12267 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12268
12269         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12270         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12271         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12272         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
12273         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
12274         config/sparc/sparc.c, config/vax/vax.c: Revert the
12275         replacements of "FALLTHRU" with "Fall through" done in the
12276         previous patch.
12277
12278 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12279
12280         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
12281         config/arm/arm.c, config/arm/arm.md,
12282         config/cris/cris-protos.h, config/fr30/fr30.c,
12283         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
12284         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
12285         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
12286         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
12287         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
12288         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
12289         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
12290         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
12291         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
12292         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
12293         config/s390/s390.md, config/sparc/netbsd-elf.h,
12294         config/sparc/openbsd.h, config/sparc/sparc.c,
12295         config/xtensa/lib2funcs.S: Fix comment formatting.
12296
12297 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12298
12299         * config/alpha/alpha.c, config/arc/arc.c,
12300         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
12301         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
12302         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
12303         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
12304         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
12305         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
12306         config/iq2000/iq2000.c, config/m32r/m32r.c,
12307         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
12308         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
12309         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
12310         config/rs6000/rs6000.h, config/sparc/sparc.c,
12311         config/vax/vax.c: Fix comment typos.  Follow spelling
12312         conventions.
12313
12314 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12315
12316         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
12317         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
12318         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
12319         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
12320         config/arm/fpa.md, config/arm/iwmmxt.md,
12321         config/arm/netbsd-elf.h, config/arm/netbsd.h,
12322         config/m68hc11/m68hc11.md, config/mips/iris5.h,
12323         config/mn10300/mn10300.md, config/rs6000/altivec.md,
12324         config/sparc/netbsd-elf.h: Update copyright.
12325
12326 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12327
12328         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
12329         for all modes whose size is greater than 8 bytes if ARCH32.
12330         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
12331         by reference if ARCH32.
12332
12333 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
12334
12335         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
12336
12337 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
12338
12339         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
12340         to before adddi3 insn patterns.
12341         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
12342         "reload_insi"): Move to before addsi3 insn patterns.
12343
12344 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
12345
12346         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
12347         parameter.  Use it instead of current_function_is_thunk.
12348         * function.h (struct function): Update documentation for is_thunk.
12349         * tree.h (CALL_FROM_THUNK_P): New macro.
12350         * config/alpha/alpha.c (alpha_sa_mask): Do not check
12351         no_new_pseudos when testing current_function_is_thunk.
12352         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
12353
12354 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12355
12356         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
12357         TARGET_SETUP_INCOMING_VARARGS.
12358
12359 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12360
12361         * emit-rtl.c (gen_rtx): Remove.
12362         * genattrtab.c: Don't mention gen_rtx in a comment.
12363         * rtl.h: Remove the prototype for gen_rtx.
12364         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
12365
12366 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12367
12368         * config/arc/arc.h, config/fr30/fr30.h
12369         (SETUP_INCOMING_VARARGS): Remove the target-independent
12370         comments.
12371         * doc/tm.texi: Don't mention deprecated target macros.
12372
12373 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12374
12375         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
12376         target-independent comment.
12377
12378 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12379
12380         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
12381         mention deprecated target macros.
12382
12383 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
12384
12385         * config.gcc: Remove obsolete ports and configurations.
12386         * config/linux-aout.h, config/netware.h,
12387         config/t-linux-gnulibc1, config/d30v/abi,
12388         config/d30v/d30v-protos.h, config/d30v/d30v.c,
12389         config/d30v/d30v.h, config/d30v/d30v.md,
12390         config/d30v/libgcc1.asm, config/d30v/t-d30v,
12391         config/dsp16xx/dsp16xx-modes.def,
12392         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
12393         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
12394         config/i370/README, config/i370/i370-c.c,
12395         config/i370/i370-protos.h, config/i370/i370.c,
12396         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
12397         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
12398         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
12399         config/i386/moss.h, config/i386/netware.h,
12400         config/i386/svr3.ifile, config/i386/svr3dbx.h,
12401         config/i386/svr3gas.h, config/i386/svr3z.ifile,
12402         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
12403         config/i960/i960-c.c, config/i960/i960-coff.h,
12404         config/i960/i960-modes.def, config/i960/i960-protos.h,
12405         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
12406         config/i960/rtems.h, config/i960/t-960bare,
12407         config/m68k/hp310.h, config/m68k/hp320.h,
12408         config/m68k/hp320base.h, config/m68k/m68kv4.h,
12409         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
12410         Remove.
12411         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
12412         doc/md.texi: Remove mentions of obsolete ports.
12413
12414 2004-02-04  Jan Hubicka  <jh@suse.cz>
12415
12416         * alias.c (find_base_term, get_addr):  Do not dereference NULL
12417         pointer when all VALUE's locations has been invalidated.
12418         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
12419
12420 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
12421
12422         * doc/invoke.texi (x86 options): Fix spelling/wording.
12423
12424 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
12425
12426         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
12427         put the original string in a comment.
12428         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
12429         * config/mips/mips.c (mips_output_ascii): Likewise.
12430         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
12431
12432 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12433
12434         * system.h (GIV_SORT_CRITERION): Poison.
12435         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
12436         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
12437
12438 2004-02-03  Roger Sayle  <roger@eyesopen.com>
12439
12440         PR target/9348
12441         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
12442         multiplies with a multiplication of the wrong signedness, its the
12443         signedness of the multiplication that we've performed that needs to
12444         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
12445         if expand_mult_highpart_adjust places the result in target.
12446
12447 2004-02-03  Richard Henderson  <rth@redhat.com>
12448
12449         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
12450
12451 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
12452
12453         * config.gcc (sh[234]l): Use little endian fragments.
12454
12455 2004-02-03  Paul Koning  <pkoning@equallogic.com>
12456
12457         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
12458         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
12459         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
12460         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
12461         floating point format.
12462         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
12463         the above functions.
12464         (output_move_quad): Output float values in correct target format.
12465         (legitimate_const_double_p): New function.
12466         * config/pdp11/pdp11.h: Fix typos.
12467         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
12468         (TARGET_FLOAT_FORMAT): Ditto.
12469         (pdp11_f_format, pdp11_d_format): Add external declarations.
12470         (MAX_REGS_PER_ADDRESS): Corrected.
12471         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
12472         (PRINT_OPERAND): Output float literals in target format.
12473
12474 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
12475
12476         PR c++/13975
12477         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
12478         TI_PRIVATE.
12479         (access_public_node): Redefine.
12480         (access_protected_node): Likewise.
12481         (access_private_node): Likewise.
12482         * tree.c (build_common_tree_nodes): Create access_public_node,
12483         access_protected_node, and access_private_node.
12484
12485 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
12486
12487         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
12488         (MASK_INLINE_INT_DIV_THR): Ditto.
12489         (MASK_INLINE_SQRT_LAT): Ditto.
12490         (MASK_INLINE_SQRT_THR): Ditto.
12491         (MASK_DWARF2_ASM): Ditto.
12492         (MASK_EARLY_STOP_BITS): Ditto.
12493
12494 2004-02-02  Paul Brook  <paul@codesourcery.com>
12495
12496         Merge from csl-arm-branch.
12497
12498         2004-01-30  Paul Brook  <paul@codesourcery.com>
12499
12500         * aof.h (REGISTER_NAMES): Add vfp reg names
12501         (ADDITIONAL_REGISTER_NAMES): Ditto.
12502         * aout.h (REGISTER_NAMES): Ditto.
12503         (ADDITIONAL_REGISTER_NAMES): Ditto.
12504         * arm-protos.h: Update/Add Prototypes.
12505         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
12506         Only allow 0.0 for VFP.
12507         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
12508         (values_fp): Rename from values_fpa.  Update Users.
12509         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
12510         Update users.  Only check valid constants for this hardware.
12511         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
12512         Only allow consts for FPA.
12513         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
12514         Only allow consts for FPA.
12515         (use_return_insn): Check for saved VFP regs.
12516         (arm_legitimate_address_p): Handle VFP DFmode addressing.
12517         (arm_legitimize_address): Ditto.
12518         (arm_general_register_operand): New function.
12519         (vfp_mem_operand): New function.
12520         (vfp_compare_operand): New function.
12521         (vfp_secondary_reload_class): New function.
12522         (arm_float_compare_operand): New function.
12523         (vfp_print_multi): New function.
12524         (vfp_output_fstmx): New function.
12525         (vfp_emit_fstm): New function.
12526         (arm_output_epilogue): Output VPF reg restore code.
12527         (arm_expand_prologue): Output VFP reg save code.
12528         (arm_print_operand): Add 'P'.
12529         (arm_hard_regno_mode_ok): Return modes for VFP regs.
12530         (arm_regno_class): Return classes for VFP regs.
12531         (arm_compute_initial_elimination_offset): Include space for VFP regs.
12532         (arm_get_frame_size): Ditto.
12533         * arm.h (FIXED_REGISTERS): Add VFP regs.
12534         (CALL_USED_REGISTERS): Ditto.
12535         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
12536         (FIRST_VFP_REGNUM): Define.
12537         (LAST_VFP_REGNUM): Define.
12538         (IS_VFP_REGNUM): Define.
12539         (FIRST_PSEUDO_REGISTER): Include VFP regs.
12540         (HARD_REGNO_NREGS): Handle VFP regs.
12541         (REG_ALLOC_ORDER): Add VFP regs.
12542         (enum reg_class): Add VFP_REGS.
12543         (REG_CLASS_NAMES): Ditto.
12544         (REG_CLASS_CONTENTS): Ditto.
12545         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
12546         (REG_CLASS_FROM_LETTER): Add 'w'.
12547         (EXTRA_CONSTRAINT_ARM): Add 'U'.
12548         (EXTRA_MEMORY_CONSTRAINT): Define.
12549         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
12550         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
12551         (REGISTER_MOVE_COST): Ditto.
12552         (PREDICATE_CODES): Add arm_general_register_operand,
12553         arm_float_compare_operand and vfp_compare_operand.
12554         * arm.md (various): Rename as above.
12555         (divsf3): Enable when TARGET_VFP.
12556         (divdf3): Ditto.
12557         (movdfcc): Ditto.
12558         (sqrtsf2): Ditto.
12559         (sqrtdf2): Ditto.
12560         (arm_movdi): Disable when TARGET_VFP.
12561         (arm_movsi_insn): Ditto.
12562         (movsi): Only split with general regs.
12563         (cmpsf): Use arm_float_compare_operand.
12564         (push_fp_multi): Restrict to TARGET_FPA.
12565         (vfp.md): Include.
12566         * vfp.md: New file.
12567         * fpa.md (various): Rename as above.
12568         * doc/md.texi: Document ARM w and U constraints.
12569
12570         2004-01-15  Paul Brook  <paul@codesourcery.com>
12571
12572         * config.gcc: Add with_fpu.  Allow with-float=softfp.
12573         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
12574         Break out of loop when we find a float-abi.  Fix typo.
12575         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
12576         Set -mfloat-abi=.
12577         * doc/install.texi: Document --with-fpu.
12578
12579         2003-01-14  Paul Brook  <paul@codesourcery.com>
12580
12581         * config.gcc (with_arch): Add armv6.
12582         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
12583         * config/arm/arm.c (arm_overrride_options): Ditto.
12584
12585         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
12586
12587         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
12588         (FL_ARCH6): Renamed from FL_ARCH6J.
12589         (arm_arch3m): Renamed from arm_fast_multiply.
12590         (arm_arch6): Renamed from arm_arch6j.
12591         * arm.h: Update all uses of above.
12592         * arm-cores.def: Likewise.
12593         * arm.md: Likewise.
12594
12595         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
12596         not arm6j.  Add entry for arch armv6.
12597
12598         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
12599
12600         * arm.c (arm_emit_extendsi): Delete.
12601         * arm-protos.h (arm_emit_extendsi): Delete.
12602         * arm.md (zero_extendhisi2): Also handle zero-extension of
12603         non-subregs.
12604         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
12605         (thumb_zero_extendhisi2): Only match if not v6.
12606         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
12607         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
12608         (thumb_extendqisi2): Likewise.
12609         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
12610         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
12611         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
12612         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
12613         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
12614         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
12615         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
12616         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
12617         (arm_extendqisi2addsi): Likewise.
12618
12619         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
12620
12621         Revert this change:
12622         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12623         + REG addressing modes.
12624
12625         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
12626         + REG addressing modes.
12627
12628         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
12629
12630         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
12631         CONSTANT_P_RTX.
12632
12633         2003-30-12  Paul Brook  <paul@codesourcery.com>
12634
12635         * longlong.h: protect arm inlines with !defined (__thumb__)
12636
12637         2003-30-12  Paul Brook  <paul@codesourcery.com>
12638
12639         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
12640
12641         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
12642
12643         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
12644         change.
12645
12646         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12647
12648         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
12649         to the virtual incoming args pointer for downward stacks.
12650
12651         2003-12-29  Paul Brook  <paul@codesourcery.com>
12652
12653         * config/arm/arm-cores.def: Add cost function.
12654         * config/arm/arm.c (arm_*_rtx_costs): New functions.
12655         (arm_rtx_costs): Remove
12656         (struct processors): Add rtx_costs field.
12657         (all_cores, all_architectures): Ditto.
12658         (arm_override_options): Set targetm.rtx_costs.
12659         (thumb_rtx_costs): New function.
12660         (arm_rtx_costs_1): Remove cases handled elsewhere.
12661         * config/arm/arm.h (processor_type): Add COSTS parameter.
12662
12663         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
12664
12665         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
12666         (arm926ejs.md): Include it.
12667         * config/arm/arm926ejs.md: New pipeline description.
12668
12669         2003-12-24  Paul Brook  <paul@codesourcery.com>
12670
12671         * config/arm/arm.c (arm_arch6j): New variable.
12672         (arm_override_options): Set it.
12673         (arm_emit_extendsi): New function.
12674         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
12675         * config/arm/arm.h (arm_arch6j): Declare.
12676         * config/arm/arm.md: Add sign/zero extend insns.
12677
12678         2003-12-23  Paul Brook  <paul@codesourcery.com>
12679
12680         * config/arm/arm.c (all_architectures): Add armv6.
12681         * doc/invoke.texi: Document it.
12682
12683         2003-12-19  Paul Brook  <paul@codesourcery.com>
12684
12685         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
12686         insn patterns to match.
12687         * config/arm/arm-generic.md: Ditto.
12688         * config/arm/cirrus.md: Ditto.
12689         * config/arm/fpa.md: Ditto.
12690         * config/amm/iwmmxt.md: Ditto.
12691         * config/arm/arm1026ejs.md: Ditto.
12692         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
12693         for 11_loadb.
12694
12695         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
12696
12697         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
12698         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
12699         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
12700         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
12701         arm_no_early_mul_dep): Correctly deal with conditional execution,
12702         parallels and single shift operations.
12703         (arm_no_early_alu_shift_value_dep): Define.
12704         * arm.md (attr type): Replace 'normal' with 'alu',
12705         'alu_shift' and 'alu_shift_reg'.
12706         (attr core_cycles): Adjust.
12707         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
12708         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
12709         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
12710         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
12711         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
12712         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
12713         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
12714         attribute appropriately.
12715         * config/arm/arm1026ejs.md (alu_op): Adjust.
12716         (alu_shift_op, alu_shift_reg_op): New.
12717         * config/arm/arm1136.md: Add better bypasses for early
12718         registers. Remove load[234] and store[234] bypasses.
12719         (11_alu_op): Adjust.
12720         (11_alu_shift_op, 11_alu_shift_reg_op): New.
12721
12722         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
12723
12724         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
12725         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
12726         * config/arm/arm.c (arm_no_early_store_addr_dep,
12727         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
12728         * config/arm/arm1026ejs.md: Add load-store bypass.
12729         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
12730         Add bypasses between instructions.
12731
12732         2003-12-10  Paul Brook  <paul@codesourcery.com>
12733
12734         * config/arm/arm.c (arm_fpu_model): New variable.
12735         (arm_fload_abi): New variable.
12736         (target_fpe_name): Rename from target_fp_name.
12737         (target_fpu_name): New variable.
12738         (arm_is_cirrus): Remove.
12739         (fpu_desc): New struct.
12740         (all_fpus): Define.
12741         (pf_model_for_fpu): Define.
12742         (all_loat_abis): Define.
12743         (arm_override_options): Set fp arch flags based on -mfpu=
12744         and -float-abi=.
12745         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12746         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12747         (*): Use new TARGET_* flags.
12748         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
12749         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
12750         (TARGET_SOFT_FLOAT): Ditto.
12751         (TARGET_SOFT_FLOAT_ABI): New.
12752         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
12753         TARGET_HARD_FLOAT.
12754         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
12755         (TARGET_OPTIONS): Add -mfpu=.
12756         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
12757         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
12758         (arm_pf_model): Define.
12759         (arm_float_abi_type): Define.
12760         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
12761         * config/arm/arm.md: Use new TARGET_* flags.
12762         * config/arm/cirrus.md: Ditto.
12763         * config/arm/fpa.md: Ditto.
12764         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
12765         * config/arm/semi.h (ASM_SPEC): Ditto.
12766         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
12767         (FPUTYPE_DEFAULT): Set to VFP.
12768         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
12769
12770         2003-11-22  Phil Edwards  <phil@codesourcery.com>
12771
12772         PR target/12476
12773         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
12774         'bx' instead of 'b' to avoid branch range restrictions.  Output
12775         the thunk immediately before the thunked-to function.
12776         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
12777         .thumb_func if a thunk is being generated.  Emit .code 16 along
12778         with .thumb_func if a thunk is not being generated.
12779
12780         2003-11-15  Nicolas Pitre <nico@cam.org>
12781
12782         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
12783         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
12784         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
12785         (lshrdi3_iwmmxt): Renamed from lshrdi3.
12786         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
12787
12788         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
12789             Ian Lance Taylor  <ian@wasabisystems.com>
12790
12791         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
12792         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
12793
12794         2003-11-05  Phil Edwards  <phil@codesourcery.com>
12795
12796         * config/arm/arm.md (insn):  Add new V6 instruction names.
12797         (generic_sched):  New attr.
12798         * config/arm/arm-generic.md:  Use generic_sched here.
12799         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
12800         stages of pipeline.  Adjust latency counts accordingly.
12801         * config/arm/arm1136jfs.md:  New file.
12802
12803         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
12804
12805         * config/arm/arm.h (processor_type): New enumeration type.
12806         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
12807         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
12808         (CPP_CPU_ARCH_SPEC): Likewise.
12809         * config/arm/arm.c (arm_tune): New variable.
12810         (all_cores): Use cores.def.
12811         (all_architectures): Add representative processor.
12812         (arm_override_options): Restructure way in which tuning
12813         information is deduced.
12814         * arm.md: Update "insn" and "type" attributes throughout.
12815         (insn): New attribute.
12816         (type): Compute "mult" from "insn" attribute.  Add load2,
12817         load3, load4 alternatives.
12818         (arm automaton): Move to arm-generic.md.
12819         * config/arm/arm-cores.def: New file.
12820         * config/arm/arm-generic.md: Likewise.
12821         * config/arm/arm1026ejs.md: Likewise.
12822
12823 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
12824
12825         * doc/invoke.texi (SPARC options): Remove -mflat and
12826         all -mxxx (xxx:chip) options.
12827         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
12828         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
12829         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
12830         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
12831         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
12832         * config/sparc/sparc.c: Likewise.
12833         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
12834         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
12835         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
12836         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
12837         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
12838         (sparc_flat_must_save_register_p): Likewise.
12839         (sparc_flat_compute_frame_size): Likewise.
12840         (sparc_flat_save_restore): Likewise.
12841         (sparc_flat_function_prologue): Likewise.
12842         (sparc_flat_function_epilogue): Likewise.
12843         (sparc_flat_epilogue_delay_slots): Likewise.
12844         (sparc_flat_eligible_for_epilogue_delay): Likewise.
12845         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
12846         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
12847         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
12848         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
12849         (CONDITIONAL_REGISTER_USAGE): Likewise.
12850         (FRAME_POINTER_REQUIRED): Likewise.
12851         (INITIAL_ELIMINATION_OFFSET): Likewise.
12852         (BASE_RETURN_VALUE_REG): Likewise.
12853         (BASE_OUTGOING_VALUE_REG): Likewise.
12854         (BASE_PASSING_ARG_REG): Likewise.
12855         (BASE_INCOMING_ARG_REG): Likewise.
12856         (INCOMING_REGNO): Likewise.
12857         (OUTGOING_REGNO): Likewise.
12858         (LOCAL_REGNO): Likewise.
12859         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
12860         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
12861         (EPILOGUE_USES): Likewise.
12862         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
12863         ("flat" attribute): Delete.
12864         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
12865         handling.
12866         (call followed by jump define_peephole's): Delete.
12867         (exception_receiver): Likewise.
12868         (builtin_setjmp_receiver): Likewise.
12869         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
12870
12871 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
12872
12873         PR c/11658
12874         PR c/13994
12875         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
12876         on langhooks.h.
12877         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
12878         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
12879         Include langhooks.h.  Replace c_common_truthvalue_conversion
12880         with the truthvalue_conversion language hook throughout.
12881         (expr_no_commas): Call default_conversion before save_expr
12882         for the first term of the production 'x ? : y'.
12883         * c-common.c (c_common_truthvalue_conversion): Remove
12884         obsolete block.  Invoke recursively the hook instead
12885         of this function.
12886         * c-convert.c (convert): handle ERROR_MARK_NODE.
12887         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
12888         returned by the truthvalue_conversion language hook.
12889         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12890         c_objc_common_truthvalue_conversion.
12891         * c-objc-common.c (c_objc_common_truthvalue_conversion):
12892         New function.
12893         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
12894         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
12895         c_objc_common_truthvalue_conversion.
12896
12897 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12898
12899         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
12900         of gen_rtx.
12901         (LIBCALL_VALUE): Likewise.
12902         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
12903         gen_rtx_CC0 instead of gen_rtx.
12904         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
12905         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
12906         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
12907         gen_rtx.
12908         (m68hc11_emit_logical): Likewise.
12909
12910 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12911
12912         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
12913         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
12914         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
12915         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
12916         config/mips/mips.md, config/mmix/mmix.c,
12917         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
12918         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
12919         config/rs6000/altivec.md, config/s390/s390.c,
12920         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
12921         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
12922         Use const0_rtx instead of GEN_INT (0).  Do the same for other
12923         constants that are readily available.
12924
12925 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12926
12927         * doloop.c, optabs.c, regmove.c, sched-deps.c,
12928         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
12929         instead of GEN_INT (0).  Do the same for other constants that
12930         are readily available.
12931
12932 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
12933
12934         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
12935         gen_rtx.
12936         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
12937         instead of gen_rtx.
12938         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
12939         gen_rtx.
12940         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
12941         gen_rtx_ASHIFT instead of gen_rtx.
12942         (udivmodqi4): Likewise.
12943
12944 2004-02-02  Richard Henderson  <rth@redhat.com>
12945
12946         PR target/13789
12947         * expr.c (store_expr): Use force_operand before emit_move_insn.
12948
12949 2004-02-02  Jeff Law  <law@redhat.com>
12950             Roger Sayle  <roger@eyesopen.com>
12951
12952         * tree.c (commutative_tree_code, associative_tree_code): New
12953         functions.
12954         (iterative_hash_expr): Use commutative_tree_code.
12955         * tree.h (commutative_tree_code, associative_tree_code): Declare.
12956         * fold-const.c (operand_equal_p): Use commutative_tree_code
12957         rather than inlining the commutativity check.
12958         (fold): Likewise.
12959
12960 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12961
12962         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
12963         * config/frv/frv-protos.h: Remove the prototype for
12964         frv_function_arg_keep_as_reference.
12965         * config/frv/frv.c (frv_function_arg_keep_as_reference):
12966         Remove.
12967         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
12968         * config/stormy16/stormy16.h: Remove the commented-out
12969         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
12970
12971 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
12972
12973         PR target/13914
12974         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
12975         for retaddr_column.
12976
12977 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
12978
12979         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
12980         gen_rtx.
12981
12982 2004-02-02  Eric Christopher  <echristo@redhat.com>
12983             Zack Weinberg  <zack@codesourcery.com>
12984
12985         * c-opts.c (c_common_handle_option): Add -finput-charset.
12986         * c.opt: Ditto.
12987         * cppcharset.c (one_iso88591_to_utf8): Remove.
12988         (convert_iso88591_utf8): Ditto.
12989         (conversion_tab): Remove 8859-1 converter.
12990         (_cpp_input_to_utf8): Remove.
12991         (_cpp_init_iconv_buffer): Ditto.
12992         (_cpp_close_iconv_buffer): Ditto.
12993         (_cpp_convert_input): New function.
12994         (_cpp_default_encoding): Ditto.
12995         * cpphash.h: Add/remove prototypes for above.
12996         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
12997         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
12998         for narrow execution and input character sets.
12999         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13000         * doc/cppopts.texi: Document -finput-charset.
13001
13002 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13003
13004         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13005         against FIRST_PSEUDO_REGISTER.
13006
13007 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13008
13009         * doc/invoke.texi (SPARC options): Further improve.
13010
13011 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13012
13013         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13014         config/h8300/h8300.c, config/ip2k/ip2k.md,
13015         config/iq2000/iq2000.c, config/mips/mips.c,
13016         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13017         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13018         config/v850/v850.md: Fix indentation.
13019
13020 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13021
13022         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13023         arguments on a 16-byte boundary in the parameter array if ARCH64.
13024         Split handling of TFmode.
13025
13026 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13027
13028         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13029         Don't test CONSTANT_P (x).
13030         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13031         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13032         Fix misindentation.
13033
13034 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13035
13036         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13037
13038 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13039
13040         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13041         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13042         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13043         config/iq2000/iq2000.c, config/m32r/m32r.c,
13044         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13045         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13046         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13047         config/stormy16/stormy16.c, config/v850/v850.md,
13048         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13049
13050 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13051
13052         * config/mcore/mcore.c (block_move_sequence): Replace
13053         gen_rtx_CONST_INT with GEN_INT.
13054
13055 2004-02-02  Jan Hubicka  <jh@suse.cz>
13056
13057         * alias.c (record_set): Use hard_regno_nregs.
13058         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13059         * builtins.c (apply_args_size): Likewise.
13060         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13061         mark_set_regs, add_stored_regs, mark_referenced_regs,
13062         insert_restore, insert_save, insert_one_insn): Likewise.
13063         * cfgcleanup.c: Include regs.h
13064         (mark_effect, mentions_nonequal_regs): Likewise.
13065         * cfgrtl.c (mark_killed_regs): Likewise
13066         * combine.c (update_table_tick, record_value_for_reg,
13067         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13068         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13069         reg_bitfield_target_p, distribute_notes): Likewise.
13070         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13071         exp_equiv_p, cse_insn): Likewise.
13072         * cselib.c (cselib_lookup): Likewise.
13073         (cselib_invalidate_regno, cselib_record_set): Likewise.
13074         * df.c (df_ref_record): Likewise.
13075         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13076         Likewise.
13077         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13078         count_or_remove_death_notes_bb): Likewise.
13079         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13080         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13081         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13082         * integrate.c (mark_stores): Likewise.
13083         * jump.c (delete_prior_computation): Likewise.
13084         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13085         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13086         * loop.c (LOOP_REGNO_NREGS): Likewise.
13087         * postreload.c (reload_combine, reload_combine_note_store,
13088         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13089         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13090         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13091         try_recolor_web, insert_coalesced_conflicts, check_colors,
13092         break_precolored_alias): Likewise.
13093         * ra-debug.c: Include regs.h
13094         (ra_print_rtx_object): Likewise.
13095         * ra-rewrite (choose_spill_colors): Likewise.
13096         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13097         * ra.c (init_ra): Likewise.
13098         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13099         peep2_find_free_register): Likewise.
13100         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13101         * regclass.c (hard_regno_nregs): New array.
13102         (init_reg_modes_once): Initialize it.
13103         (choose_hard_reg_mode): Use it.
13104         (record_reg_classes): Likewise.
13105         * regmove.c (mark_flags_life_zones): Likewise.
13106         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13107         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13108         copy_value, maybe_mode_change, find_oldest_value_reg,
13109         copyprop_hardreg_forward_1):
13110         * regs.h (hard_regno_nregs): Declare.
13111         * realod.c (reload_inner_reg_of_subreg): Use it.
13112         (push_reload, combine_reloads, find_dummy_reload,
13113         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13114         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13115         reload_adjust_reg_for_mode): Likewise.
13116         * reload1.c (compute_use_by_pseudos, count_pseudo,
13117         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
13118         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
13119         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
13120         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
13121         delete_output_reload): Likewise.
13122         * resource.c (update_live_status, mark_referenced_resources,
13123         mark_set_resources, mark_target_live_regs): Likewise.
13124         * rtlanal.c:  Include regs.h
13125         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
13126         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
13127         subreg_regno_offset, subreg_offset_representable_p,
13128         hoist_test_store): Likewise.
13129         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
13130         * sched-rgn.c (check_live_1, update_live_1): Likewise.
13131         * stmt.c: Include regs.h
13132         (decl_conflicts_with_clobbers_p): Likewise.
13133         * varasm.c (make_decl_rtl): Likewise.
13134         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
13135
13136 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13137
13138         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
13139         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
13140         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
13141         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
13142         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
13143         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
13144         config/iq2000/iq2000.h, config/m32r/m32r.c,
13145         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
13146         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
13147         config/mcore/mcore.c, config/mcore/mcore.h,
13148         config/mcore/mcore.md, config/mips/mips.c,
13149         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
13150         config/rs6000/rs6000.c, config/s390/s390.c,
13151         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
13152         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
13153         "gen_rtx (FOO, " with "gen_rtx_FOO (".
13154
13155 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13156
13157         * config/h8300/h8300.md (two peephole2's): New.
13158
13159 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
13160
13161         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
13162         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
13163         (ASM_CPU_SPEC): Likewise
13164         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
13165         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
13166
13167 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13168
13169         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
13170         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
13171         (expand_builtin): Always call expand_builtin_pow.
13172
13173 2004-02-01  Roger Sayle  <roger@eyesopen.com>
13174
13175         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
13176         BUILT_IN_SIGNBITL): New GCC builtins.
13177         * builtins.c (expand_builtin_signbit): New function to RTL expand
13178         calls to signbit, signbitf and signbitl as inline intrinsics.
13179         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
13180         (fold_builtin_signbit): New function to perform constant folding
13181         of signbit, signbitf and signbitl.
13182         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
13183
13184         * doc/extend.texi: Document new signbit{,f,l} builtins.
13185
13186 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
13187
13188         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
13189
13190 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
13191
13192         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
13193         "mips_const_double_ok" and "simple_memory_operand", which were
13194         removed from the MIPS port with the mips-3_4-rewrite branch merge.
13195         * config/mips/mips.c (mips16_lay_out_constants): Update comment
13196         for removal of simple_memory_operand.
13197
13198 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13199
13200         * config/c4x/c4x.md: Use GEN_INT instead of
13201         gen_rtx (CONST_INT, ...).
13202
13203 2004-01-31  Richard Henderson  <rth@redhat.com>
13204
13205         * varasm.c (output_constant_pool): Don't zap the pool.
13206
13207 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13208
13209         * genrecog.c (decision_type): Add DT_const_int.
13210         (write_cond) [DT_const_int]: Print a comparison against small
13211         constant.
13212         (write_node): Simplify comparisons against small constants
13213         before printing tests.
13214
13215 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13216
13217         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
13218         instead of gen_rtx_CONST_INT.
13219
13220 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13221
13222         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
13223         instead of gen_rtx_CONST_INT.
13224
13225 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13226
13227         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
13228         hook_bool_CUMULATIVE_ARGS_false.
13229         * targhooks.c (default_strict_argument_naming): Rename to
13230         hook_bool_CUMULATIVE_ARGS_false.
13231         * targhooks.h: Update the prototype for
13232         default_strict_argument_naming.
13233
13234 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13235
13236         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13237         * config/sh/sh.h: Likewise.
13238         * config/sh/sh.md: Likewise.
13239
13240 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
13241
13242         * doc/invoke.texi (SPARC options): Restructure and update.
13243
13244 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13245
13246         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
13247         STRICT_ARGUMENT_NAMING): Poison.
13248         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
13249         hook_bool_tree_false.
13250         * targhooks.c (default_promote_function_args): Remove.
13251         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
13252         Don't check incoming.
13253         (default_strict_argument_naming): Don't use
13254         STRICT_ARGUMENT_NAMING.
13255         * targhooks.h: Remove the prototype for
13256         default_promote_function_args.
13257
13258 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13259
13260         * config/i386/i386-protos.h: Remove the prototype for
13261         ix86_setup_incoming_varargs.
13262         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
13263         (ix86_setup_incoming_varargs): Make it static.
13264         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
13265
13266 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13267
13268         * alloc-pool.c: Fix comment typos.
13269         * builtin-types.def: Likewise.
13270         * builtins.def: Likewise.
13271         * c-pretty-print.c: Likewise.
13272         * df.h: Likewise.
13273         * reload1.c: Likewise.
13274
13275 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13276
13277         * doc/invoke.texi: Follow spelling conventions.
13278         * doc/tm.texi: Likewise.
13279
13280 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13281
13282         * doc/install.texi: Fix typos.
13283         * doc/invoke.texi: Likewise.
13284
13285 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
13286
13287         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
13288         registers as pointers.
13289         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
13290
13291 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
13292
13293         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
13294         and restore it to gen_lowpart_general on exit.
13295         (gen_lowpart_for_combine): Adjust all callers to go through
13296         gen_lowpart.
13297         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
13298         and restore it to gen_lowpart_general on exit.
13299         (gen_lowpart_if_possible): Adjust all callers to go through
13300         gen_lowpart.
13301         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
13302         (gen_lowpart): Declare as pointer to function, initialized to
13303         gen_lowpart_general.
13304         * rtl.h (gen_lowpart): Declare as pointer to function.
13305
13306 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
13307
13308         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
13309         * calls.c: Likewise.
13310         * emit-rtl.c: Likewise.
13311         * function.c: Likewise.
13312         * reload1.c: Likewise.
13313         * config/i386/cygming.h: Likewise.
13314         * config/i386/i386.c: Likewise.
13315         * config/i386/winnt.c: Likewise.
13316
13317 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
13318
13319         PR bootstrap/9249
13320         * doc/install.texi: document --enable-__cxa_atexit option.
13321         * configure.ac: Disable __cxa_atexit if not supported.
13322         * configure: Regenerate.
13323
13324 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
13325
13326         * ggc-zone.c (ggc_free): New function.
13327
13328 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13329
13330         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
13331         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
13332         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
13333         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
13334         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
13335         config/alpha/alpha.c, config/alpha/alpha.h,
13336         config/alpha/alpha.md, config/alpha/unicosmk.h,
13337         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
13338         config/c4x/c4x-protos.h, config/c4x/c4x.md,
13339         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
13340         config/frv/frvend.c, config/i386/cygming.h,
13341         config/i386/djgpp.h, config/i386/emmintrin.h,
13342         config/i386/gthr-win32.c, config/i386/i386-interix.h,
13343         config/i386/i386-protos.h, config/i386/openbsd.h,
13344         config/i386/winnt.c, config/i386/xm-mingw32.h,
13345         config/i386/xmmintrin.h, config/ia64/ia64.md,
13346         config/iq2000/iq2000.md, config/m32r/m32r.md,
13347         config/m68k/m68k.md, config/mcore/mcore-elf.h,
13348         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
13349         config/mips/iris5gas.h, config/mips/iris6.h,
13350         config/mips/iris6gas.h, config/mips/linux.h,
13351         config/mips/mips.md, config/mips/netbsd.h,
13352         config/mips/openbsd.h, config/mips/windiss.h,
13353         config/pa/fptr.c, config/rs6000/aix.h,
13354         config/rs6000/altivec.h, config/rs6000/darwin.h,
13355         config/rs6000/xcoff.h, config/s390/s390-protos.h,
13356         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
13357         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
13358         config/sparc/sol2.h: Update copyright.
13359
13360 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
13361
13362         * Makefile.in (abs_docdir, abs_srcdir): Define.
13363         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
13364
13365 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13366
13367         * genconfig.c (main): Have CC0_P check its operand even on a
13368         target without cc0.
13369
13370 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13371
13372         * config/alpha/alpha.c: Remove mentions of deprecates macros
13373         in comments, remove some target-independent comments about target
13374         macros, and/or add minimal function comments for target hook
13375         implementations.
13376         * config/avr/avr.c: Likewise.
13377         * config/ia64/ia64.h: Likewise.
13378         * config/ip2k/ip2k.c: Likewise.
13379         * config/iq2000/iq2000.c: Likewise.
13380         * config/m32r/m32r.h: Likewise.
13381         * config/m68hc11/m68hc11.c: Likewise.
13382         * config/mcore/mcore.c: Likewise.
13383         * config/mmix/mmix.c: Likewise.
13384         * config/mn10300/mn10300.c: Likewise.
13385         * config/pa/pa.c: Likewise.
13386         * config/pdp11/pdp11.c: Likewise.
13387         * config/rs6000/rs6000.h: Likewise.
13388         * config/sh/sh.c: Likewise.
13389         * config/sh/sh.h: Likewise.
13390         * config/sparc/sparc.c: Likewise.
13391         * config/sparc/sparc.h: Likewise.
13392         * config/stormy16/stormy16.c: Likewise.
13393         * config/xtensa/xtensa.c: Likewise.
13394
13395 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13396
13397         PR optimization/12147
13398         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
13399         RELOAD_FOR_OPADDR_ADDR.
13400         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
13401         might be reused as RELOAD_FOR_OPADDR_ADDR register.
13402
13403 2004-01-30  Jan Hubicka  <jh@suse.cz>
13404
13405         * reload.c (get_secondary_mem): Fix updating of
13406         secondary_memlocs_elim_used.
13407
13408 2004-01-30  Richard Henderson  <rth@redhat.com>
13409
13410         * varasm.c (struct rtx_const, struct pool_constant): Remove.
13411         (MAX_RTX_HASH_TABLE): Remove.
13412         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
13413         (first_pool, last_pool, pool_offset): Remove.
13414         (struct rtx_constant_pool): Split out from ...
13415         (struct varasm_status): ... here.  Reference one via pointer.
13416         (struct constant_descriptor_rtx): Merge struct pool_constant.
13417         (SYMHASH): Remove.
13418         (decode_rtx_const): Remove.
13419         (const_hash_rtx, compare_constant_rtx): Remove.
13420         (record_constant_rtx): Remove.
13421         (const_desc_rtx_hash, const_desc_rtx_eq): New.
13422         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
13423         (const_rtx_hash_1, const_rtx_hash): New.
13424         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
13425         (simplify_subtraction): Use simplify_rtx.
13426         (force_const_mem): Rewrite to use new data structures.
13427         (find_pool_constant): Likewise.
13428         (get_pool_constant, get_pool_constant_mark,
13429         get_pool_constant_for_function, get_pool_mode,
13430         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
13431         (output_constant_pool_2): Split out from output_constant_pool.
13432         (output_constant_pool_1): Likewise.  Use new pool datastructures.
13433         (output_constant_pool): Zap entire pool datastructure.
13434         (mark_constant): Use new pool datastructures.
13435         (mark_constants): Use for_each_rtx.
13436         (mark_constant_pool): Use new pool datastructures.
13437
13438 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
13439
13440         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
13441         Copy operands[1] to pseudo for simplify_gen_subreg.
13442
13443 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13444
13445         * gcse.c (bypass_block): Fix a typo in the previous check-in
13446         to the file.
13447
13448 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
13449
13450         * toplev.c: Include alloc-pool.h.
13451         * Makefile.in (toplev.c): Update dependencies.
13452
13453 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13454
13455         * combine.c (simplify_shift_const, case XOR): Be careful when
13456         commuting XOR with ASHIFTRT.
13457
13458 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
13459             Eric Botcazou  <ebotcazou@libertysurf.fr>
13460
13461         * config/sparc/sparc-protos.h: Remove the prototype for
13462         sparc_builtin_saveregs.
13463         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13464         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13465         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13466         (TARGET_STRUCT_VALUE_RTX): Likewise.
13467         (TARGET_RETURN_IN_MEMORY): Likewise.
13468         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13469         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
13470         (sparc_builtin_saveregs): Make it static.
13471         (sparc_promote_prototypes): New.
13472         (sparc_struct_value_rtx): Likewise.
13473         (sparc_return_in_memory): Likewise.
13474         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
13475         (PROMOTE_FUNCTION_RETURN): Likewise.
13476         (RETURN_IN_MEMORY): Likewise.
13477         (STRUCT_VALUE): Likewise.
13478         (STRUCT_VALUE_INCOMING): Likewise.
13479         (EXPAND_BUILTIN_SAVEREGS): Likewise.
13480         (STRICT_ARGUMENT_NAMING): Likewise.
13481         (PROMOTE_PROTOTYPES): Likewise.
13482
13483         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
13484
13485 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13486
13487         PR c/12818
13488         * varasm.c (const_hash_1) <STRING_CST>: Use the
13489         address to compute the hash value if flag_writable_strings.
13490         (compare_constant) <STRING_CST>: Compare the addresses
13491         if flag_writable_strings.
13492         (build_constant_desc): Do not copy the expression for a
13493         STRING_CST if flag_writable_strings.
13494
13495 2004-01-30  Jan Hubicka  <jh@suse.cz>
13496
13497         * alloc-pool.c: Include hashtab.h
13498         (alloc_pool_descriptor): New structure
13499         (alloc_pool_hash): New global variable.
13500         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
13501         (create_alloc_pool): Update statistics.
13502         (free_alloc_pool): Likewise.
13503         (pool_alloc): Likewise.
13504         (output_info): New structure
13505         (print_statistics, dump_alloc_pool_statistics): New function.
13506         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
13507         (dump_alloc_pool_statistics): Declare.
13508         * toplev.c (finalize):  Dump statistics.
13509
13510         * reload.c (secondary_memlocs_elim_used): New static variable.
13511         (get_secondary_mem): Update it.
13512         (find_reloads): Use it.
13513
13514 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
13515
13516         * toplev.c: Fix broken checkin of 2003-12-30, again.
13517
13518 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
13519
13520         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
13521         s390*-*-* targets by specifying a 'nop' insn.
13522         * configure: Regenerate.
13523
13524 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
13525
13526         PR target/11475
13527         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
13528
13529 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13530
13531         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
13532         of addr when creating MEM copy.
13533
13534 2004-01-29  Devang Patel  <dpatel@apple.com>
13535
13536         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
13537
13538 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13539
13540         PR inline-asm/6162
13541         * reload.c (find_reloads): Only support one pair of commutative
13542         operands.
13543
13544 2004-01-29  Roger Sayle  <roger@eyesopen.com>
13545
13546         PR java/13824
13547         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
13548         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
13549         recursion.
13550
13551 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13552
13553         * config/frv/frv.c: Don't mention deprecated macros in
13554         comments.  Remove some target-independent comments about
13555         target macros.
13556         * config/frv/frv.h: Likewise.
13557
13558 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13559
13560         * cfghooks.c (split_block): Set probability and count of the
13561         new edge.
13562
13563 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
13564
13565         * dwarf2out.c (struct die_struct): Added field decl_id.
13566         (decl_die_table): Changed to hash table.
13567         (decl_die_table_allocated): Deleted.
13568         (decl_die_table_in_use): Deleted.
13569         (DECL_DIE_TABLE_INCREMENT): Deleted.
13570         (decl_die_table_hash): New function.
13571         (decl_die_table_eq): New function.
13572         (lookup_decl_die): Lookup in a hash table.
13573         (equate_decl_number_to_die): Insert into a hash table.
13574         (dwarf2out_init): Init hash table decl_die_table.
13575
13576 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
13577
13578         PR optimization/13424
13579         * expr.c (store_constructor): Revert 2003-12-03 change.
13580
13581         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
13582         expected before returning early.  Avoid sharing RTL if they
13583         need to be changed.
13584
13585         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
13586         handling so that memory attributes are preserved.  Don't call
13587         ix86_set_move_mem_attrs.
13588         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
13589         (ix86_expand_clrstr): Rename src argument to
13590         dst.  Rework rep_stos and strset handling so that memory attributes
13591         are preserved.
13592         (ix86_expand_strlen): Pass src argument to
13593         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
13594         memory attributes are preserved.
13595         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
13596         change_address instead of gen_rtx_MEM.
13597         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
13598         expanders.
13599         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
13600         strmovqi, strmovqi_rex64): Remove.
13601         (rep_mov*, strmov*): Prefix insn names with *.
13602         (strset, strset_singleop, rep_stos): New expanders.
13603         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
13604         strsetqi, strsetqi_rex64): Remove.
13605         (rep_stos*, strset*): Prefix insn names with *.
13606         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
13607         to SImode.
13608         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
13609         are preserved.
13610         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
13611         Prefix insn names with *.
13612         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
13613         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
13614         (strlenqi_1): New expander.
13615         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
13616
13617 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
13618
13619         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
13620         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
13621         verify_flow_info): Declaration removed.
13622         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
13623         (debug_bb, debug_bb_n): Add argument to dump_bb call.
13624         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
13625         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
13626         instead of delete_block.
13627         * cfghooks.c: Include timevar.h and toplev.h.
13628         (cfg_hooks): Define here.
13629         (verify_flow_info, dump_bb): Moved from cfg.c.
13630         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13631         split_block, split_block_after_labels, move_block_after,
13632         delete_basic_block, split_edge, create_basic_block,
13633         create_empty_bb, can_merge_blocks_p, merge_blocks,
13634         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13635         New functions.
13636         * cfghooks.h (struct cfg_hooks): Added fields name,
13637         make_forwarder_block, tidy_fallthru_edge and
13638         move_block_after. Changed type of verify_flow_info, dump_bb,
13639         split_block fields. Renamed cfgh_split_edge and delete_block
13640         fields.
13641         (redirect_edge_and_branch, redirect_edge_and_branch_force,
13642         split_block, delete_block, split_edge, create_basic_block,
13643         can_merge_blocks_p, merge_blocks): Macros removed.
13644         (cfg_hooks): Do not export.
13645         (verify_flow_info, dump_bb, redirect_edge_and_branch,
13646         redirect_edge_and_branch_force, split_block, split_block_after_labels,
13647         move_block_after, delete_basic_block, split_edge, create_basic_block,
13648         create_empty_bb, can_merge_blocks_p, merge_blocks,
13649         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
13650         Declare.
13651         (cfg_layout_rtl_cfg_hooks): Declare.
13652         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
13653         New functions.
13654         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
13655         (redirect_edge_with_latch_update): Removed.
13656         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
13657         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
13658         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
13659         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
13660         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
13661         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
13662         cfghooks.c.
13663         (rtl_create_basic_block): Coding style fix.
13664         (rtl_tidy_fallthru_edge, rtl_move_block_after,
13665         rtl_make_forwarder_block): New functions.
13666         (update_cfg_after_block_merging): Removed.
13667         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
13668         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
13669         to dump_bb.
13670         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
13671         find_if_case_2): Don't update dominators.
13672         * timevar.def (TV_CFG_VERIFY): New.
13673         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
13674         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
13675         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
13676         (remove_bbs): Don't call remove_bbs.
13677         (create_preheader): Use make_forwarder_block.
13678         (mfb_keep_just, mfb_update_loops): New static functions.
13679
13680 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
13681
13682         * config/avr/avr.h: Remove target-independent comments about
13683         target macros.
13684
13685 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
13686
13687         * timevar.c (timevar_print): Mention when checking is enabled.
13688
13689 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
13690
13691         * c-lex.c (c_lex): Rename to...
13692         (c_lex_with_flags): Add new parameter to get CPP flags.
13693         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
13694         * c-pragma.h (c_lex_with_flags): Declare.
13695
13696 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13697
13698         * config/mcore/mcore.c (mcore_external_libcall): Add a
13699         comment.
13700         (mcore_return_in_memory): Likewise.
13701
13702 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13703
13704         * config/mcore/mcore-protos.h: Remove the prototype for
13705         mcore_setup_incoming_varargs.
13706         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13707         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
13708         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
13709         (TARGET_PROMOTE_PROTOTYPES): Likewise.
13710         (TARGET_STRUCT_VALUE_RTX): Likewise.
13711         (TARGET_RETURN_IN_MEMORY): Likewise.
13712         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13713         (mcore_setup_incoming_varargs): Make it static.  Receive the
13714         first argument by reference.  Add argument second_time.
13715         (mcore_external_libcall): New.
13716         (mcore_return_in_memory): Likewise.
13717         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
13718         (PROMOTE_FUNCTION_RETURN): Likewise.
13719         (STRUCT_VALUE): Likewise.
13720         (RETURN_IN_MEMORY): Likewise.
13721         (SETUP_INCOMING_VARARGS): Likewise.
13722         (PROMOTE_PROTOTYPES): Likewise.
13723         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13724
13725 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13726
13727         * config/m32r/m32r-protos.h: Remove the prototype for
13728         m32r_setup_incoming_varargs.
13729         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
13730         (TARGET_STRUCT_VALUE_RTX): Likewise.
13731         (TARGET_RETURN_IN_MEMORY): Likewise.
13732         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13733         (m32r_return_in_memory): New.
13734         (m32r_setup_incoming_varargs): Make it static.
13735         * config/m32r/m32r.h: Remove #undef of
13736         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
13737         definitions of PROMOTE_FUNCTION_ARGS and
13738         PROMOTE_FUNCTION_RETURN.
13739         (PROMOTE_PROTOTYPES): Remove.
13740         (RETURN_IN_MEMORY): Likewise.
13741         (STRUCT_VALUE): Likewise.
13742
13743 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13744
13745         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
13746         (TARGET_STRUCT_VALUE_RTX): Likewise.
13747         (m68k_struct_value_rtx): Likewise.
13748         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
13749         STRUCT_VALUE_REGNUM.
13750         (PROMOTE_PROTOTYPES): Remove.
13751         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
13752         STRUCT_VALUE_REGNUM.
13753         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
13754         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
13755
13756 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13757
13758         * config/stormy16/stormy16.c
13759         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
13760         TARGET_BUILD_BUILTIN_VA_LIST.
13761
13762 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13763
13764         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
13765         (TARGET_STRUCT_VALUE_RTX): Likewise.
13766         (TARGET_RETURN_IN_MEMORY): Likewise.
13767         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
13768         (v850_return_in_memory): Likewise.
13769         (v850_setup_incoming_varargs): Likewise.
13770         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
13771         (SETUP_INCOMING_VARARGS): Likewise.
13772         (RETURN_IN_MEMORY): Likewise.
13773         (STRUCT_VALUE): Likewise.
13774
13775 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13776
13777         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
13778         (fr30_setup_incoming_varargs): Don't use
13779         STRICT_ARGUMENT_NAMING.
13780         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
13781         (STRICT_ARGUMENT_NAMING): Likewise.
13782
13783 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13784
13785         * config/frv/frv-protos.h: Remove the prototype for
13786         frv_expand_builtin_saveregs.
13787         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
13788         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
13789         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
13790         STRUCT_VALUE_REGNUM.
13791         (frv_expand_builtin_saveregs): Make it static.
13792         (frv_struct_value_rtx): New.
13793         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
13794
13795 2004-01-29  Jan Hubicka  <jh@suse.cz>
13796
13797         PR c++/12850
13798         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
13799         initial pointers.
13800         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
13801         for functions that will be only inlined.
13802         (cgraph_mark_function_to_output): Likewise.
13803         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
13804         do not clear function body.
13805         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
13806         (tree_rest_of_compilation): Reorganize the logic releasing function
13807         body to use callgraph datastructure.
13808
13809 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
13810
13811         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
13812         to register_operand.
13813
13814 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13815
13816         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
13817         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
13818         match_operand expressions so that all match_dups appear
13819         lexically after their corresponding match_operands.
13820
13821 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13822
13823         * config/h8300/h8300.c (WORD_REG_USED): Use
13824         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
13825         (compute_saved_regs): Likewise.
13826         (h8300_expand_prologue): Likewise.  Allocate locals after
13827         saving registers.
13828         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
13829         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
13830         registers.
13831         (h8300_initial_elimination_offset): Adjust for the new frame
13832         layout, which swaps flips the order of locals and saved
13833         registers.
13834         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
13835         (HARD_FRAME_POINTER_REGNUM): New.
13836         (ELIMINABLE_REGS): Add an elimination rule from
13837         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
13838         (REGISTER_NAMES): Add fp.
13839         * config/h8300/h8300.md (FP_REG): Change to 11.
13840         (HFP_REG): New.
13841
13842 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13843
13844         * genrecog.c (write_node): Remove a useless local variable.
13845
13846 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
13847
13848         * Makefile.in (options.c options.h): Use stamp file s-options to
13849         avoid unnecessary rebuilds.
13850         (options.o): New target listing dependencies.
13851         (gtyp-gen.h): Use stamp file s-gtyp-gen.
13852         (STAGESTUFF): Add s-gtyp-gen.
13853
13854 2004-01-28  Richard Henderson  <rth@redhat.com>
13855
13856         * ggc.h (ggc_free): Declare.
13857         * ggc-common.c (ggc_realloc): Use it.
13858         * ggc-page.c: Remove lots of inline markers.
13859         (globals): Add free_object_list.
13860         (ggc_alloc): Tidy.
13861         (ggc_free, validate_free_objects): New.
13862         (poison_pages): Provide default.
13863         (ggc_collect): Call validate_free_objects; emit markers to
13864         the debug file.
13865
13866 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
13867             Jim Wilson  <wilson@specifixinc.com>
13868
13869         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
13870         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
13871         scratch pointer.
13872         (ia64_secondary_reload_class): Delete case GR_REGS.
13873         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
13874         Do not allocate a scratch register.
13875         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
13876
13877 2004-01-28  Jan Hubicka  <jh@suse.cz>
13878
13879         * gcse.c (bypass_block): Prevent edges to be unified when we are
13880         about to emit compenstation code.
13881
13882 2004-01-28  Nick Clifton  <nickc@redhat.com>
13883
13884         * config/arm/arm.c (arm_expand_builtin): Force second argument of
13885         the setcwx insn into a register.
13886
13887 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
13888
13889         * config/fp-bit.c (pack_d): When using paired doubles to implement
13890         a long double, round the high part separately.
13891         (unpack_d): Fix the case in which the high part is a power of two
13892         and the low part is a nonzero value of the opposite sign.
13893
13894 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13895
13896         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
13897         (TARGET_STRUCT_VALUE_RTX): Likewise.
13898         (c4x_external_libcall): Likewise.
13899         (c4x_struct_value_rtx): Likewise.
13900         * config/c4x/c4x.h: Remove.
13901         (STRUCT_VALUE_REGNUM): Likewise.
13902         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
13903
13904 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
13905
13906         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
13907         (TARGET_STRUCT_VALUE_RTX): Likewise.
13908         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
13909         (STRUCT_VALUE): Likewise.
13910         (PROMOTE_PROTOTYPES): Likewise.
13911
13912 2004-01-27  Roger Sayle  <roger@eyesopen.com>
13913
13914         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
13915         CONST_INT before using INTVAL.
13916
13917 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
13918
13919         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
13920         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
13921         frame if !TARGET_BACKCHAIN.
13922         * config/s390/s390.md ("allocate_stack"): Use pattern only if
13923         TARGET_BACKCHAIN.
13924         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
13925
13926 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
13927
13928         * ia64.c (ia64_function_arg): When placing HFAs in integer
13929         registers, do not special case the mode used for complex
13930         types.  Do not advance int_regs until the current register
13931         is full.
13932
13933 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
13934
13935         PR target/7297
13936         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
13937
13938 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13939
13940         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
13941         slow, unaligned loads and stores while debugging.  Fix formatting.
13942
13943 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
13944
13945         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
13946         of computing wmode.
13947         (restore_stack_nonlocal): Same.
13948
13949 2004-01-27  Devang Patel <dpatel@apple.com>
13950
13951         * Makefile.in (dwarf2out.o): Depend on input.h
13952         * dbxout.c (dbx_debug_hooks): Add new empty hook for
13953         imported_module_or_decl.
13954         (xcoff_debug_hooks): Same.
13955         * sdbout.c (sdb_debug_hooks): Same.
13956         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
13957         * debug.c (do_nothing_debug_hooks): Same.
13958         (debug_nothing_tree_tree): New function.
13959         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
13960         * dwarf2out.c: Include input.h.
13961         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
13962         (remove_child_TAG): New function.
13963         (dwarf_tag_name): Handle DW_TAG_imported_module.
13964         (gen_subprogram_die): Equate decl number to declaration die. Do not
13965         remove all children dies while reusing declaration die for definition.
13966         Instead, selectively remove only formal parameters.
13967         (gen_variable_die): Equate variable decl to declaration die.
13968         (gen_field_die): Equate field decl to line number.
13969         (force_namespace_die): Replace it with ...
13970         (force_decl_die): ... this.
13971         (force_type_die): New function.
13972         (setup_namespace_context): Replace use of force_namespace_die() with
13973         force_decl_die().
13974         (gen_namespace_die): Same.
13975         (dwarf2out_imported_module_or_decl): New function.
13976
13977 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
13978
13979         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
13980         on CQImode and CHImode incoming arguments in register a7.
13981         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
13982         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
13983         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
13984         xtensa_copy_incoming_a7 before reload.
13985
13986 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
13987
13988         * coverage.c (get_coverage_counts): Give a different message
13989         if flag_guess_branch_prob is set.
13990         * predict.c (counts_to_freqs): Return an int.
13991         (estimate_bb_frequencies): If counts_to_freqs returns zero,
13992         calculate estimates.
13993
13994 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
13995
13996         * config/iq2000/iq2000-protos.h: Remove the prototype for
13997         iq2000_setup_incoming_varargs.
13998         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
13999         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14000         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14001         (TARGET_STRUCT_VALUE_RTX): Likewise.
14002         (TARGET_RETURN_IN_MEMORY): Likewise.
14003         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14004         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14005         (iq2000_return_in_memory): Likewise.
14006         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14007         first argument by reference.
14008         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14009         (PROMOTE_FUNCTION_RETURN): Likewise.
14010         (PROMOTE_PROTOTYPES): Likewise.
14011         (RETURN_IN_MEMORY): Likewise.
14012         (STRUCT_VALUE): Likewise.
14013         (SETUP_INCOMING_VARARGS): Likewise.
14014         (STRICT_ARGUMENT_NAMING): Likewise.
14015
14016 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14017
14018         * fixinc/fixinc.c (test_test): Initialize res.
14019         (start_flexer): Initialize pz_cmd_save.
14020
14021 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14022
14023         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14024         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14025
14026 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14027
14028         PR 7198
14029         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14030         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14031         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14032         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14033         Possibly rename pattern for consistency.
14034         Remove ??? comments suggesting that this be done.
14035         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14036         New patterns.
14037         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14038         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14039         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14040         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14041         Update to match.
14042
14043 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14044
14045         * config/arm/arm.c (output_return_instruction): Only restore IP
14046         into SP if frame_pointer_needed.
14047
14048 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14049
14050         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14051         for SCmode and DCmode if ARCH32.
14052         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14053         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14054         if ARCH32.
14055         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14056         if ARCH32.
14057         (BASE_OUTGOING_VALUE_REG): Likewise.
14058
14059 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14060
14061         PR target/10904
14062         PR target/13058
14063         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14064         Forbid mode changes from SImode for lower FP regs if ARCH64.
14065
14066 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14067
14068         * Makefile.in (bt-load.o): Depend on except.h.
14069         * bt-load.c (except.h): #include.
14070         (compute_defs_uses_and_gen): If insn at end of BB can throw
14071         within this function, consider registers used by it unavailable for
14072         btr migration.
14073         (move_btr_def): If insn at end of BB can throw, insert before rather
14074         than after.
14075
14076         * flags.h (flag_btr_bb_exclusive): Declare.
14077         * toplev.c (flag_btr_bb_exclusive): New variable.
14078         (f_options): Add btr-bb-exclusive.
14079         * bt-load.c (augment_live_range): Restore old behaviour if
14080         flag_btr_bb_exclusive is set.
14081         * common.opt: Add entry for -fbtr-bb-exclusive.
14082         * opts.c (common_handle_options): Same.
14083         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14084
14085         * bt-load.c (btrs_live_at_end): New variable.
14086         (compute_defs_uses_and_gen): Compute its pointed-to array.
14087         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14088         (augment_live_range): When augmenting with a new dominator,
14089         use only its btrs_live_at_end set, but also add in the full set
14090         of the old dominator.
14091         (btr_def_live_range): Use btrs_live_at_end.
14092         (move_btr_def): Set other_btr_uses_before_def, and move new set
14093         to the end of the basic block, if appropriate.
14094         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14095
14096         * bt-load.c (basic_block_freq): Remove outdated comment.
14097
14098 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14099
14100         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14101         (PREDICATE_CODES): Remove duplicate.
14102         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14103         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14104         (MASK_PROFILE_KERNEL): Adjust define.
14105
14106 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14107
14108         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14109         of long string literals from 32 bytes to sizeof (void *) when !-Os
14110         and to 1 with -Os.
14111
14112 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14113
14114         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14115         constant addresses in the normal mode.
14116
14117 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14118
14119         * system.h (CHAR_BITFIELD): Delete.
14120         (BOOL_BITFIELD): New.
14121         * c-decl.c (c_scope): Use BOOL_BITFIELD.
14122         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
14123
14124 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14125
14126         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14127         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14128         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14129         (TARGET_STRUCT_VALUE_RTX): Likewise.
14130         (TARGET_RETURN_IN_MEMORY): Likewise.
14131         (arc_return_in_memory): Likewise.
14132         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
14133         (PROMOTE_FUNCTION_RETURN): Likewise.
14134         (RETURN_IN_MEMORY): Likewise.
14135         (STRUCT_VALUE): Likewise.
14136
14137 2004-01-26  Richard Henderson  <rth@redhat.com>
14138
14139         * c-parse.in (extension): Use itype.
14140         (SAVE_EXT_FLAGS): Don't allocate a tree.
14141         (RESTORE_EXT_FLAGS): Don't read a tree.
14142
14143 2004-01-26  Jan Hubicka  <jh@suse.cz>
14144
14145         * cselib.c (discard_useless_values):  Clear out value pointer pointing
14146         to datastructure to be recycled.
14147
14148 2004-01-25  Jan Hubicka  <jh@suse.cz>
14149
14150         * genextract.c (main): Do not output the memset when not checking.
14151
14152 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14153
14154         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
14155         switch statement instead of a chain of if statements.
14156
14157 2004-01-26  Jeff Law  <law@redhat.com>
14158
14159         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
14160         acute accents for Petur Runolfsson's entry.
14161
14162 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14163
14164         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
14165         (TARGET_RETURN_IN_MEMORY): Likewise.
14166         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
14167         (RETURN_IN_MEMORY): Likewise.
14168
14169 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14170
14171          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
14172          unaligned load/store into smaller loads and stores.
14173
14174 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14175
14176         * function.c (assign_parms): Do not assign
14177         long long argument to memory in prologue if
14178         is it loaded into register.
14179
14180 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14181
14182          PR middle-end/13779
14183          * expr.c (emit_group_load): split constant
14184          correctly into register components of PARALLEL insn.
14185
14186 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
14187
14188         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
14189         Use adjust_address_nv directly with appropriate mode.
14190         (restore_stack_nonlocal): Ditto.
14191
14192 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14193
14194         * config/xtensa/xtensa-protos.h: Remove the prototype for
14195         xtensa_builtin_saveregs.
14196         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14197         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14198         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14199         (TARGET_STRUCT_VALUE_RTX): Likewise.
14200         (TARGET_RETURN_IN_MEMORY): Likewise.
14201         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14202         (xtensa_builtin_saveregs): Make it static.
14203         (xtensa_return_in_memory): New.
14204         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
14205         (PROMOTE_FUNCTION_RETURN): Likewise.
14206         (PROMOTE_PROTOTYPES): Likewise.
14207         (STRUCT_VALUE): Likewise.
14208         (RETURN_IN_MEMORY): Likewise.
14209         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14210
14211 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14212
14213         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
14214         (arm_setup_incoming_varargs): Likewise.
14215         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
14216
14217 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14218
14219         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
14220         (cris_setup_incoming_varargs): Likewise.
14221         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
14222
14223 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14224
14225         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
14226         (ns32k_struct_value_rtx): Likewise.
14227         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
14228         NS32K_STRUCT_VALUE_REGNUM.
14229
14230 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14231
14232         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14233         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14234         (TARGET_STRUCT_VALUE_RTX): Likewise.
14235         (arm_struct_value_rtx): Likewise.
14236         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
14237         (STRUCT_VALUE): Likewise.
14238         (STRUCT_VALUE_REGNUM): Likewise.
14239         (PROMOTE_PROTOTYPES): Likewise.
14240
14241 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14242
14243         * config/ia64/ia64-protos.h: Remove the prototype for
14244         ia64_setup_incoming_varargs and ia64_return_in_memory.
14245         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
14246         (TARGET_RETURN_IN_MEMORY): Likewise.
14247         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14248         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14249         (ia64_setup_incoming_varargs): Adjust the arguments to meet
14250         the requirement of TARGET_SETUP_INCOMING_VARARGS.
14251         (ia64_return_in_memory): Make it static.  Change the return
14252         type to bool from int.  Add an argument.
14253         (ia64_struct_value_rtx): New.
14254         * config/ia64/ia64.h: Remove commented-out definitions of
14255         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
14256         PROMOTE_PROTOTYPES.
14257         (RETURN_IN_MEMORY): Remove.
14258         (STRUCT_VALUE_REGNUM): Likewise.
14259         (STRICT_ARGUMENT_NAMING): Likewise.
14260
14261 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
14262
14263         PR target/13666
14264         * config/sparc/sparc.c (function_arg_union_value): New function.
14265         (function_arg): Use it to deal with unions.
14266         (function_value): Likewise.  Define 'regbase' only for ARCH64.
14267         Replace a conditional statement by a simpler one.
14268
14269 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
14270
14271         * config/mips/mips.c (mips16_optimize_gp): Delete.
14272         (mips_reorg): Don't call it.
14273
14274 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14275
14276         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
14277         (floatunsqihf2): Remove operand 6.
14278         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
14279         fix patterns.
14280         (ldi_conditional, ldf_conditional): Validate operands.
14281
14282 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14283
14284         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
14285         (HAVE_GAS_HIDDEN): Undefine as interim measure.
14286
14287 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14288
14289         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
14290         memory references if TARGET_EXPOSE_LDP nonzero.
14291
14292 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14293
14294         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
14295
14296 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14297
14298         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
14299         invalid operand combinations.
14300
14301 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14302
14303         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
14304         c4x_legitimate_address_p.  Fix post_modify check.
14305
14306         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
14307         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
14308
14309 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14310
14311         * config/pa/pa-protos.h: Remove the prototype for
14312         hppa_builtin_saveregs.  Add a prototype for
14313         pa_return_in_memory.
14314         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
14315         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14316         (TARGET_STRUCT_VALUE_RTX): Likewise.
14317         (TARGET_RETURN_IN_MEMORY): Likewise.
14318         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14319         (pa_struct_value_rtx): Likewise.
14320         (pa_return_in_memory): Likewise.
14321         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
14322         PA_STRUCT_VALUE_REGNUM.
14323         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
14324         (EXPAND_BUILTIN_SAVEREGS): Remove.
14325         (PROMOTE_PROTOTYPES): Likewise.
14326         (PROMOTE_FUNCTION_RETURN): Likewise.
14327
14328 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14329
14330         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
14331         (TARGET_STRUCT_VALUE_RTX): Likewise.
14332         (vax_struct_value_rtx): Likewise.
14333         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
14334         VAX_STRUCT_VALUE_REGNUM.
14335         (PROMOTE_PROTOTYPES): Remove.
14336
14337 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
14338
14339         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
14340
14341 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
14342
14343         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
14344         and MIPS64 have HI/LO interlocks.  Update comment.
14345
14346 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14347
14348         * config/stormy16/stormy16-protos.h: Remove the prototype for
14349         xstormy16_setup_incoming_varargs.
14350         * config/stormy16/stormy16.c
14351         (xstormy16_setup_incoming_varargs): Remove.
14352         (xstormy16_return_in_memory): New.
14353         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14354         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14355         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14356         (TARGET_STRUCT_VALUE_RTX): Likewise.
14357         (TARGET_RETURN_IN_MEMORY): Likewise.
14358         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
14359         (PROMOTE_FUNCTION_RETURN): Likewise
14360         (PROMOTE_PROTOTYPES): Likewise
14361         (RETURN_IN_MEMORY): Likewise
14362         (STRUCT_VALUE): Likewise
14363         (SETUP_INCOMING_VARARGS): Likewise
14364
14365 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14366
14367         * config/mips/mips.c (mips_offset_within_object_p): New function.
14368         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
14369         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
14370         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
14371
14372 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14373
14374         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
14375         (PROMOTE_FUNCTION_RETURN): Likewise.
14376
14377 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14378
14379         * config/mn10300/mn10300-protos.h: Remove the prototype for
14380         mn10300_builtin_saveregs.
14381         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
14382         (TARGET_STRUCT_VALUE_RTX): Likewise.
14383         (TARGET_RETURN_IN_MEMORY): Likewise.
14384         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14385         (mn10300_return_in_memory): Likewise.
14386         (mn10300_builtin_saveregs): Make it static.
14387         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
14388         (RETURN_IN_MEMORY): Likewise.
14389         (STRUCT_VALUE): Likewise.
14390         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14391
14392 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
14393
14394         PR bootstrap/13853
14395         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
14396
14397 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14398
14399         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
14400         using ccr.
14401
14402 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14403
14404         * config/i860/i860-protos.h: Remove the prototype for
14405         i860_saveregs.
14406         * config/i860/i860.c (i860_saveregs): Make it static.
14407         (i860_struct_value_rtx): New.
14408         (TARGET_STRUCT_VALUE_RTX): Likewise.
14409         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14410         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
14411         I860_STRUCT_VALUE_REGNUM.
14412         (EXPAND_BUILTIN_SAVEREGS): Remove.
14413
14414 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14415
14416         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
14417         (TARGET_RETURN_IN_MEMORY): Likewise.
14418         (m68hc11_struct_value_rtx): Likewise.
14419         (m68hc11_return_in_memory): Likewise.
14420         * config/m68hc11/m68hc11.h: Remove a commented-out definition
14421         of PROMOTE_PROTOTYPES.
14422         (RETURN_IN_MEMORY): Remove.
14423         (STRUCT_VALUE_REGNUM): Likewise.
14424
14425 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14426
14427         * config/mmix/mmix-protos.h: Remove the prototype for
14428         mmix_setup_incoming_varargs.
14429         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14430         (TARGET_STRUCT_VALUE_RTX): Likewise.
14431         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14432         (mmix_setup_incoming_varargs): Make it static.
14433         (mmix_struct_value_rtx): New.
14434         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
14435         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
14436         (STRUCT_VALUE_REGNUM): Remove.
14437         (SETUP_INCOMING_VARARGS): Likewise.
14438
14439 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14440
14441         * config/mips/mips-protos.h: Remove the prototypes for
14442         mips_setup_incoming_varargs and mips_return_in_memory.
14443         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14444         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14445         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14446         (TARGET_STRUCT_VALUE_RTX): Likewise.
14447         (TARGET_RETURN_IN_MEMORY): Likewise.
14448         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14449         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14450         (mips_setup_incoming_varargs): Match the prototype for
14451         TARGET_SETUP_INCOMING_VARARGS.
14452         (mips_return_in_memory): Make it static.  Add argument fntype.
14453         (mips_strict_argument_naming): New.
14454         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
14455         (PROMOTE_FUNCTION_ARGS): Likewise.
14456         (PROMOTE_FUNCTION_RETURN): Likewise.
14457         (STRUCT_VALUE): Likewise.
14458         (RETURN_IN_MEMORY): Likewise.
14459         (SETUP_INCOMING_VARARGS): Likewise.
14460         (STRICT_ARGUMENT_NAMING): Likewise.
14461
14462 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14463
14464         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
14465         (TARGET_RETURN_IN_MEMORY): Likewise.
14466         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14467         (ip2k_return_in_memory): Likewise.
14468         (ip2k_setup_incoming_varargs): Likewise.
14469         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
14470         (STRUCT_VALUE): Likewise.
14471         (STRUCT_VALUE_INCOMING): Likewise.
14472         (SETUP_INCOMING_VARARGS): Likewise.
14473
14474 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
14475
14476         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
14477         (TARGET_RETURN_IN_MEMORY): Likewise.
14478         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14479         (avr_return_in_memory): Remove.
14480         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
14481         (STRUCT_VALUE): Likewise.
14482         (STRUCT_VALUE_INCOMING): Likewise.
14483         (STRICT_ARGUMENT_NAMING): Likewise.
14484
14485 2004-01-25  Jan Hubicka  <jh@suse.cz>
14486
14487         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
14488
14489 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
14490
14491         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
14492         (mips_regno_mode_ok_for_base_p): Declare.
14493         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
14494         (FRAME_POINTER_REGNUM): Renumber to 78.
14495         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
14496         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
14497         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
14498         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
14499         (REG_MODE_OK_FOR_BASE_P): Likewise.
14500         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
14501         entry for 77 to "$arg" and entry for 78 to "$frame".
14502         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
14503         (mips_reg_mode_ok_for_base_p): Remove.
14504         (mips_regno_mode_ok_for_base_p): New function, derived from old
14505         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
14506         restrictions unless we're being strict.
14507         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
14508
14509 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14510
14511         * c-common.h: Fix comment typos.
14512         * c-decl.c: Likewise.
14513         * cgraphunit.c: Likewise.
14514         * combine.c: Likewise.
14515         * et-forest.c: Likewise.
14516         * flow.c: Likewise.
14517         * function.c: Likewise.
14518         * ifcvt.c: Likewise.
14519         * integrate.c: Likewise.
14520         * jump.c: Likewise.
14521         * postreload.c: Likewise.
14522         * varray.c: Likewise.
14523
14524 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14525
14526         * doc/frontends.texi: Update copyright.
14527         * doc/gcov.texi: Likewise.
14528         * doc/gty.texi: Likewise.
14529         * doc/sourcebuild.texi: Likewise.
14530         * doc/standards.texi: Likewise.
14531
14532 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
14533
14534         PR target/12978
14535         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
14536         Remove movstrqi_small because it conflicts with movstrqi_large.
14537
14538 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14539
14540         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14541         (TARGET_STRUCT_VALUE_RTX): Likewise.
14542         (cris_struct_value_rtx): Likewise.
14543         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
14544         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
14545         STRUCT_VALUE_REGNUM.
14546         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
14547
14548 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
14549
14550         PR bootstrap/13848
14551         * cse.c (cse_cc_succs): Change the mode of the source expression
14552         as soon as decide we need a new mode.  Don't permit changing modes
14553         if we found a match in a successor block.
14554         (cse_condition_code_reg): Save original mode of source expression
14555         so that we know whether we have to change the mode in other
14556         insns.
14557
14558 2004-01-24  Jan Hubicka  <jh@suse.cz>
14559
14560         * emit-rtl.c (change_address, adjust_address_1, offset_address,
14561         widen_memory_access):  Return early when there is nothing to change.
14562
14563 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
14564
14565         * simplify-rtx.c (simplify_relational_operation): Don't
14566         simplify address == constant into address + -constant == 0.
14567
14568 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14569
14570         * gcc.c (process_command): Don't internationalize the
14571         Copyright message.
14572         * mips-tfile.c (main): Likewise.
14573
14574 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
14575
14576         * cse.c: (cse_cc_succs) Fix comparison warning.
14577
14578 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14579
14580         * config/h8300/h8300.md: Remove extraneous USE in expanders.
14581
14582 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14583
14584         * config/h8300/h8300-protos.h: Provide prototypes for
14585         h8300_legitimate_constant_p and h8300_legitimate_address_p.
14586         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
14587         (h8300_rtx_ok_for_base_p): Likewise.
14588         (h8300_legitimate_address_p): Likewise.
14589         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
14590         h8300_legitimate_constant_p.
14591         (RTX_OK_FOR_BASE_P): Remove.
14592         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
14593
14594 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
14595
14596         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
14597         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
14598         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
14599         (REG_OK_FOR_BASE_STRICT_P): Likewise.
14600         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
14601         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
14602         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
14603         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
14604
14605 2004-01-24  Jan Hubicka  <jh@suse.cz>
14606
14607         * cselib.c (remove_useless_values):  Do not access discarded values.
14608
14609 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
14610
14611         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
14612         arrays.
14613
14614 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
14615
14616         * recog.c: Fix a typo in copyright.
14617
14618 2004-01-23  Andrew Pinski  <apinski@apple.com>
14619
14620         * config/rs6000/rs6000.md (call): Fix misappiled patch.
14621         (call_value): Likewise.
14622
14623 2004-01-23  Richard Henderson  <rth@redhat.com>
14624
14625         PR opt/12941
14626         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
14627         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
14628         if SHIFT_COUNT_TRUNCATED is set.
14629
14630 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
14631
14632         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
14633         separate real and imaginary parts.
14634         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
14635
14636 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
14637
14638         PR target/13674
14639         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
14640         loading into GPR.
14641
14642 2004-01-23  Jan Hubicka  <jh@suse.cz>
14643
14644         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
14645         change.
14646
14647         * alloc-pool.c (align_four): Kill.
14648         (create_alloc_pool): Align size to eight.
14649         (free_alloc_pool, free_pool): Invalidate deallocated data.
14650
14651 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
14652
14653         PR gcc/1532
14654         * cse.c (cse_change_cc_mode): New static function.
14655         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
14656         (cse_condition_code_reg): New function.
14657         * rtl.h (cse_condition_code_reg): Declare.
14658         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
14659         * target.h (struct gcc_target): Add fixed_condition_code_regs and
14660         cc_modes_compatible.
14661         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14662         (TARGET_CC_MODES_COMPATIBLE): Define.
14663         (TARGET_INITIALIZER): Add new initializers.
14664         * targhooks.c (default_cc_modes_compatible): New function.
14665         * targhooks.c (default_cc_modes_compatible): Declare.
14666         * hooks.c (hook_bool_intp_intp_false): New function.
14667         * hooks.h (hook_bool_intp_intp_false): Declare.
14668         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
14669         (TARGET_CC_MODES_COMPATIBLE): Define.
14670         (ix86_fixed_condition_code_regs): New static function.
14671         (ix86_cc_modes_compatible): Likewise.
14672         * doc/tm.texi (Condition Code): Document new hooks.
14673
14674 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14675
14676         * fixinc/inclhack.def (bad_lval): Renamed to ...
14677         (alpha_bad_lval): ... this.
14678         Removed file list.
14679         Restrict to alpha*-dec-osf*.
14680         * fixinc/fixincl.x: Regenerate.
14681         * fixinc/tests/base/dirent.h: Remove, moving test ...
14682         * fixinc/tests/base/testing.h: ... here, reflecting new name.
14683
14684 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
14685
14686         PR c/13814
14687         * c-decl.c (diagnose_mismatched_decls): Also discard a
14688         built-in if we encounter an old-style definition with the
14689         same name.
14690
14691 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
14692
14693         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
14694         set to default{32,64}.
14695
14696 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14697
14698         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
14699         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
14700
14701 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
14702             Olivier Hainque  <hainque@act-europe.fr>
14703
14704         * fold-const.c (fold_binary_op_with_conditional_arg): Only
14705         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
14706
14707 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
14708
14709         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
14710         size for minipool references.
14711
14712 2004-01-23  Roger Sayle  <roger@eyesopen.com>
14713
14714         * real.c (real_floor, real_ceil): Tweak to allow input and output
14715         arguments to overlap.
14716         (real_round): New function to implement round(3m) semantics.
14717         * real.h (real_round): Prototype here.
14718         * builtins.c (fold_builtin_round): New function to constant fold
14719         round, roundf and roundl.
14720         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
14721
14722 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
14723
14724         PR optimization/13819
14725         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
14726         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
14727         (sh_handle_sp_switch_attribute): Remove warning.
14728
14729 2003-11-30  Jan Hubicka  <jh@suse.cz>
14730
14731         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
14732
14733 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
14734
14735         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
14736         may or may not return non-NIL.
14737         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
14738         check CANNOT_CHANGE_MODE_CLASS
14739
14740 2004-01-23  Jan Hubicka  <jh@suse.cz>
14741
14742         * basic-block.h (PROP_POSTRELOAD): New macro.
14743         (CLEANUP_LOG_LINKS): New.
14744         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
14745         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
14746
14747         * cselib.c (value_pool): New.
14748         (new_cselib_val): Use pool.
14749         (cselib_init): Initialize value_pool
14750         (cselib_finish): Free pool.
14751
14752 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
14753
14754         * config/sparc/sparc.c (scan_record_type): New function.
14755         (function_arg_slotno): Use it to determine which kinds of
14756         registers the record can be passed in.
14757
14758 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
14759
14760         * config/pa/fptr.c: Fix old-style definition.
14761
14762 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
14763
14764         PR optimization/13724
14765         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
14766         represents the zero bits produced by a ZERO_EXTEND operation.
14767
14768 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14769
14770         PR optimization/13821
14771         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
14772         correctly calculate the lowpart offset of the contracted subreg.
14773
14774 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
14775
14776         * doc/invoke.texi (Optimize Options): Note that --param arguments
14777         are subject to change without notice.
14778
14779 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14780
14781         * config.gcc (mips-sgi-irix6*o32): Removed.
14782         * config/mips/iris6-o32-as.h: Likewise.
14783         * config/mips/iris6-o32-gas.h: Likewise.
14784         * config/mips/iris6-o32.h: Likewise.
14785
14786 2004-01-22  Jan Hubicka  <jh@suse.cz>
14787
14788         * cfgcleanup.c (first_pass): New static variable.
14789         (try_forward_edges):  Add work limiting check for threading.
14790         (try_crossjump_bb):  Add work limiting check for crossjumping.
14791         (try_optimize_cfg):  Maintain first pass variable.
14792
14793 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
14794
14795         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
14796         handles complex and vector modes.
14797
14798 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14799
14800         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
14801         (REG_OK_FOR_BASE_P_STRICT): Likewise.
14802         (STRICT): Likewise.
14803
14804 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14805
14806         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
14807         (genrtl_for_stmt): Remove emit_nop calls.
14808
14809 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14810
14811         PR target/13713
14812         PR target/13324
14813         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
14814         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
14815         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
14816
14817 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
14818
14819         * config/arm/arm.c: Include "debug.h".
14820         (thumb_pushpop): Take two new arguments.  Add some commentary.
14821         Output frame information when pushing.
14822         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
14823         thumb_pushpop.
14824         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
14825         offset, and pass it to thumb_pushpop.  Output CFI information.
14826         (thumb_expand_prologue): Add some frame-related markers and notes.
14827
14828 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
14829
14830         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
14831         for TARGET_64BIT.
14832         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
14833         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
14834
14835 2004-01-22  Roger Sayle  <roger@eyesopen.com>
14836             Paolo Bonzini  <bonzini@gnu.org>
14837
14838         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
14839         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
14840         * rtl.h (subreg_lsb_1): Prototype here.
14841         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
14842         sign extensions.
14843
14844 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
14845
14846         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
14847         macro need not be defined if jump-tables should contain
14848         relative addresses only when -fPIC or -fPIC is in effect.
14849
14850 2004-01-22  Jan Hubicka  <jh@suse.cz>
14851
14852         * alias.c (reg_base_value): Turn into varray.
14853         (reg_base_value_size): Kill.
14854         (old_reg_base_value): New deletable varray.
14855         (alias_invariant_size): New variable.
14856         (REG_BASE_VALUE): Update to use varray.
14857         (find_base_value): Likewise.
14858         (record_set): Likewise.
14859         (record_base_value): Likewise.
14860         (memrefs_conflict_p): Likewise.
14861         (record_set): Likewise
14862         (record_base_value): Likewise.
14863         (memrefs_conflict_p): Use alias_invariant_size.
14864         (init_alias_analysis): Use varray; set alias_invariant_size;
14865         rescale other arrays to be sized by maxreg.
14866         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
14867
14868 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14869
14870         * config/sparc/sparc.c (function_arg_slotno): Use
14871         FLOAT_TYPE_P to detect FP fields in structures.
14872         (function_arg_record_value_1): Likewise.
14873         (function_arg_record_value_2): Likewise.
14874
14875 2004-01-22  Jan Hubicka  <jh@suse.cz>
14876
14877         * function.c (allocate_struct_function): Do not initialize expr, emit
14878         and varasm.
14879         (prepare_function_start): Do it here.
14880         * c-parse.in (maybe_type_qual): Do not produce line number notes.
14881
14882 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
14883
14884         PR target/13559
14885         * config/sparc/sparc.c (function_arg_record_value_3): Revert
14886         to 'word_mode' once the first slot has been filled.
14887
14888 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
14889
14890         * config/sparc/sparc.c (function_arg_record_value_1): Fix
14891         computation of the number of integer registers required.
14892
14893 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14894
14895         * config/i386/i386.md: Simplify certain comparisons of
14896         const_int.
14897
14898 2004-01-21  Andrew Pinski  <apinski@apple.com>
14899
14900         PR target/13785
14901         * config/rs6000/rs6000.md (call_value): Force operand
14902         1 not operand 0 into a register.
14903
14904 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14905
14906         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
14907         unwind-dw2-fde.h: Update copyright.
14908
14909 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14910
14911         * pa-protos.h: Update copyright.
14912         * pa.h: Likewise.
14913         * pa.md: Likewise.
14914
14915 2004-01-21  Caroline Tice  <ctice@apple.com>
14916
14917         PR target/12308
14918         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
14919         flags register.
14920         (fix_truncdfdi2): Likewise.
14921         (fix_truncsfdi2): Likewise.
14922         (*fix_truncdi_1): Likewise.
14923         (fix_truncxfsi2): Likewise.
14924         (fix_truncdfsi2): Likewise.
14925         (fix_truncsfsi2): Likewise.
14926         (*fix_truncsi_1): Likewise.
14927         (fix_truncxfhi2): Likewise.
14928         (fix_truncdfhi2): Likewise.
14929         (fix_truncsfhi2): Likewise.
14930         (*fix_trunchi_1): Likewise.
14931
14932 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14933
14934         * alias.c, basic-block.h, c-common.c, c-common.h,
14935         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
14936         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
14937         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
14938         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
14939         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
14940         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
14941         genautomata.c, genconditions.c, genemit.c, genflags.c,
14942         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
14943         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
14944         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
14945         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
14946         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
14947         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
14948         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
14949         unwind.h, varray.c, varray.h: Update copyright.
14950
14951 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
14952
14953         * config/h8300/coff.h: Update copyright.
14954         * config/h8300/elf.h: Likewise.
14955         * config/h8300/h8300-protos.h: Likewise.
14956         * config/h8300/h8300.c: Likewise.
14957         * config/h8300/h8300.h: Likewise.
14958         * config/h8300/h8300.md: Likewise.
14959
14960 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14961
14962         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
14963         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
14964         ultrix_unistd): New hacks.
14965         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
14966         ULTRIX_CONST2_CHECK): Add checks.
14967         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
14968         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
14969         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
14970         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
14971         * fixinc/tests/base/locale.h: New file.
14972         * fixinc/fixincl.x: Rebuilt.
14973
14974 2004-01-21  Andreas Jaeger  <aj@suse.de>
14975             Michael Matz  <matz@suse.de>
14976
14977         * doc/extend.texi (Extended Asm): Clarify memory clobber.
14978
14979 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
14980
14981         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
14982         _Jv_RegisterClasses through a function pointer.
14983
14984 2004-01-21  Falk Hueffner  <falk@debian.org>
14985
14986         PR target/12898
14987         * config/alpha/alpha.c (alpha_emit_set_const_1): If
14988         no_new_pseudos, use gen_rtx_SET directly for SImode constants
14989         which need multiple instructions to emit.
14990
14991 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
14992
14993         * config/m32r/m32r.h (CPP_SPEC): Define.
14994
14995 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
14996
14997         * c-decl.c (merge_decls): Kill different_binding_level and
14998         different_tu arguments; simplify throughout.
14999         (duplicate_decls): Likewise.
15000         (pushdecl, merge_translation_unit_decls): Update calls to
15001         duplicate_decls.
15002
15003 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15004
15005         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15006         $(SYSTEM_H).
15007         (print-rtl1.o): Depend on $(SYSTEM_H).
15008
15009 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15010
15011         PR bootstrap/12730
15012         * configure.ac: Delete definition and subsitution of docdir.
15013         Add info, man, srcman and srcinfo to target hooks. Create doc/
15014         directory.
15015         * configure: Regenerate.
15016         * Makefile.in: Don't substitute docdir and delete all references
15017         throughout.
15018         (MAKEINFOFLAGS): Define.
15019         (stmp-docobjdir): Delete.
15020         (INFOFILES, MANFILES): Define.
15021         (info): Call lang.info, srcinfo and lang.srcinfo.
15022         (generated-manpages): Call lang.man, srcman and lang.srcman.
15023         (srcinfo, srcman): New rules to copy back files to source directory.
15024         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15025         (install-man): Revamp rule.
15026         (clean): Update dvi directory.
15027         (distclean): Delete TAGS from front end directorys.
15028         (maintainer-clean): Delete all document files in source directory.
15029
15030         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15031         (objc.srcman, objc.srcinfo): Likewise.
15032
15033 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15034
15035         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15036         (matherr_decl): rename & relocate as exception_structure.
15037         This fix must precede the math_exception fix.
15038
15039 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15040
15041         * fold-const.c (fold_convert): Rename to fold_convert_const.
15042         (fold_convert_const): Change arguments to take a tree_code,
15043         a type and the operand/expression to be converted.  Return
15044         NULL_TREE if no simplification is possible.  Add support for
15045         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15046         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15047         Adjust call to fold_convert to match new fold_convert_const.
15048         Avoid modifying the tree passed to fold in-place.
15049
15050 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15051
15052         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15053         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15054         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15055
15056 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15057
15058         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15059         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15060         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15061         (emit_move_sequence): Check scratch_reg first in various if statements.
15062         Extend source simplification to handle all 64-bit CONST_INTs.
15063         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15064         frame size.
15065         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15066         frame offset calculations.
15067         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15068         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15069         LEGITIMATE_64BIT_CONST_INT_P): Define.
15070         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15071         any CONST_INT as legitimate during and after reload.
15072         (VAL_32_BITS_P, INT_32_BITS): Define.
15073         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15074
15075 2004-01-20  Jan Hubicka  <jh@suse.cz>
15076
15077         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15078         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15079         containing hard regs are shared.
15080         (gen_hard_reg_clobber): New function.
15081         (hard_reg_clobbers): New array.
15082         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15083         (copy_rtx): Do not copy clobbers containing hard regs.
15084         * rtl.h (gen_hard_reg_clobber): Declare.
15085
15086 2004-01-20  Jan Hubicka  <jh@suse.cz>
15087
15088         * varray.c:  Include hashtab.h
15089         (varray_descriptor): New structure.
15090         (hash_descriptor, eq_descriptor, varray_descriptor,
15091         print_statistics): New static functions
15092         (varray_init, varray_grow): Update statistics
15093         (dump_varray_statistics): New function.
15094         * varray.h (dump_varray_statistics): Declare.
15095         * toplev.c (finalize): Call it.
15096         * Makefile.in (varray.o): Add dependency.
15097
15098 2004-01-20  Jan Hubicka  <jh@suse.cz>
15099
15100         * cselib.c: Include alloc-pool.h
15101         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15102         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15103         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15104         unchain_one_elt_loc_list_pool, unchain_one_value,
15105         new_cselib_val): Simplify using allocpool.
15106         (cselib_init): Initialize allocpools.
15107         (cselib_finish): Finish allocpools.
15108         * Makefile.in (cselib.o): Depend on alloc-pool.h
15109
15110 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15111
15112         * config/mips/mips.c (mips_load_call_address): Make the call insn
15113         use $gp if it could be calling a lazy binding stub.
15114
15115 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15116
15117         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
15118         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15119         (TARGET_STRUCT_VALUE_RTX): Likewise.
15120         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
15121         (PROMOTE_FUNCTION_RETURN): Remove.
15122         (STRUCT_VALUE): Remove.
15123
15124 2004-01-20  Denis Chertykov  <denisc@overta.ru>
15125
15126         PR bootstrap/13735
15127         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
15128         register as pointer after reload.
15129
15130 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15131
15132         PR optimization/12440
15133         * loop.c: Include ggc.h.
15134         (loop_optimize): Run garbage collector between optimization of loops.
15135         * Makefile.in (loop.o): Add GGC_H dependency.
15136
15137 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
15138
15139         * gcc/config/rs6000/rs6000.c (function_arg) Handle
15140         vector register special in function without prototype.
15141         (function_arg_advance): Vector parameters get always
15142         GPRs allocated for the linux64 target.
15143
15144 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
15145
15146         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
15147         not TARGET_M32RX_MASK.
15148
15149 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
15150
15151         PR target/13557
15152         * config/sparc/sparc.c (function_arg): Reorder the cases.
15153
15154 2004-01-19  Per Bothner  <per@bothner.com>
15155
15156         Move cpp_reader's line_maps field to a shared global.
15157         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
15158         and change the type to a pointer rather than a struct.
15159         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
15160         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
15161         Likewise.
15162         * cppfiles.c (validate_pch):  Likewise.
15163         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
15164         Likewise.
15165         * cpperror.c (print_location):  Likewise.
15166         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
15167         * cppinit.c (cpp_create_reader):  Handle new parameter.
15168         (cpp_destroy):  Don't free line_maps - that's no longer our job.
15169         * input.h (line_table):  New variable.
15170         * toplev.c (line_table):  Declare variable.
15171         (general_init):  Initialize line_table.
15172         * c-opts.c (c_common_init_options):  Pass line_table to
15173         cpp_create_reader.
15174         * fix-header.c (read_scan_file):  New local variable line_table.
15175         Initialize, and pass it to cpp_create_reader.
15176         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
15177         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
15178
15179 2004-01-19  Per Bothner  <per@bothner.com>
15180
15181         Implement a cache for linemap_lookup.
15182         * line-map.h (struct_line_maps):  Add cache field.
15183         * line-map.c (linemap_init):  Zero cache field.
15184         (linemap_add):  Set cache field to offset of newly allocated map.
15185         (linemap_lookup):  Use and set cache field.
15186
15187 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
15188
15189         PR optimization/13567
15190         * cse.c (cse_basic_block): Call cse_insn with a non-null
15191         libcall_insn for the last SET insn of a no-confilict block.
15192
15193 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15194
15195         * Makefile.in (target_noncanonical, program_transform_name): Use
15196         immediate define instead of deferred.
15197         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
15198         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
15199         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
15200         deferred backquote.
15201
15202 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
15203
15204         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
15205         true unconditionally.
15206         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
15207         Remove.
15208         (build_unary_op, build_modify_expr): Don't handle extended
15209         lvalues.
15210         (build_component_ref, build_conditional_expr): Call non_lvalue
15211         instead of pedantic_non_lvalue.
15212         (build_c_cast): Don't condition use of non_lvalue on pedantic.
15213         * fold-const.c (fold): Don't check pedantic directly for
15214         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
15215         passed to pedantic_non_lvalue.
15216         * doc/extend.texi: Remove documentation of extended lvalues.
15217
15218 2004-01-19  Roger Sayle  <roger@eyesopen.com>
15219
15220         PR optimization/5263
15221         * simplify-rtx.c (associative_constant_p): Delete.
15222         (simplify_associative_operation): Rewrite to linearize terms, and
15223         attempt to simplify new term against both left and right subterms.
15224         (simplify_binary_operation): Call swap_commutative_operands_p on
15225         op0 and op1, not trueop0 and trueop1.  Move the initialization of
15226         trueop0 and trueop1 down to where first needed.
15227         (simplify_relational_operation): Likewise.
15228         * rtlanal.c (commutative_operand_precedence): Also order constant
15229         operands using avoid_constant_pool_reference.
15230
15231 2004-01-19  Richard Henderson  <rth@redhat.com>
15232
15233         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
15234         don't check memory mode.
15235         (unaligned_memory_operand): Likewise.
15236         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
15237         abort for op0 not MEM.
15238
15239         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
15240         is not a reg, copy to a scratch first.
15241         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
15242         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
15243         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
15244         (reload_inqi, reload_inhi): Fix mode of op0.
15245         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
15246         reload_outhi_help): Likewise.  Use define_insn_and_split.
15247
15248         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
15249         as well as $29 dead.
15250
15251 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
15252
15253         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
15254         "tls_object" for thread-local objects.
15255         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
15256         "#tls" for thread-local sections.
15257         * configure.ac (thread-local checks): Specify --fatal-warnings in
15258         every binutils-specific checks.  For sparc*-*-*, test whether the
15259         OS is Solaris and the tools are native and act accordingly.
15260         * configure: Rebuild.
15261
15262 2004-01-19  Jeff Law  <law@redhat.com>
15263
15264         * contrib.texi: Update Paolo Carlini's entry.  New entries for
15265         Jerry Quinn and Petur Runolfsson.
15266
15267 2004-01-19  Roger Sayle  <roger@eyesopen.com>
15268
15269         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
15270         size, don't use the larger zero-extending loads.
15271
15272 2004-01-19  Richard Henderson  <rth@redhat.com>
15273
15274         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
15275         * alpha.md (UNSPEC_NT_LDA): Remove.
15276         (UNSPEC_CVTLQ, cvtlq): New.
15277         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
15278         (extendsidi2_fix): Remove.
15279         (extendsidi2 splitter): Use cvtlq.
15280         (extendsidi2 fp peepholes): Remove.
15281         (cvtql): Use SFmode instead of SImode.
15282         (fix_trunc?fsi): Update to match.
15283         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
15284         (movsi): Rename from movsi_nofix, remove f alternatives.
15285         (movsi_nt_vms): Similarly.
15286         (movsi_fix, movsi_nt_vms_fix): Remove.
15287         (nt_lda): Remove.
15288         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
15289
15290 2004-01-19  Jan Hubicka  <jh@suse.cz>
15291
15292         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
15293         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
15294         list.
15295         (cgraph_remove_unreachable_nodes): New function
15296         (cgraph_decide_inlining_of_small_function): Fix pasto.
15297         (cgraph_decide_inlining_incrementally): Fix pasto.
15298         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
15299
15300 2004-01-19  Steven Bosscher  <stevenb@suse.de>
15301
15302         * gengtype.c (header_file): Make it static.
15303         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
15304         * gengtype.h (header_file): No longer extern.
15305
15306 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15307
15308         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
15309         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
15310         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
15311
15312 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15313
15314         * stmt.c (HAVE_casesi): Define it not already defined.
15315         (HAVE_tablejump): Likewise.
15316         (expand_end_case_type): Resort to the binary tree method if
15317         neither casesi or tablejump is available.
15318
15319 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
15320
15321         * final.c (final_scan_insn): Make non-static again.
15322         * output.h (final_scan_insn): Re-add prototype.
15323         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
15324         to final_scan_insn call.
15325         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
15326         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
15327         * config/pa/pa.c (output_lbranch, output_call): Likewise.
15328         * config/sh/sh.c (print_slot): Likewise.
15329         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
15330         (output_sibcall, sparc_flat_function_epilogue): Likewise.
15331
15332 2004-01-18  Jan Hubicka  <jh@suse.cz>
15333
15334         * basic-block.h (try_redirect_by_replacing_jump): Declare.
15335         * cfgcleanup.c (try_optimize_cfg): Use it.
15336         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
15337         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
15338         Kill hack.
15339         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
15340
15341         Revert:
15342         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15343
15344                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15345                 even after reload, just don't remove the actual jump tables.
15346
15347 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15348
15349         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
15350
15351 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
15352
15353         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
15354         the size of a pointer in bytes.
15355
15356 2004-01-18  Roger Sayle  <roger@eyesopen.com>
15357
15358         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
15359         live "next" variable, which could lead to an infinite loop.
15360
15361 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
15362
15363         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
15364         block.
15365
15366         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15367         Check for NULL in the chain and remove repeated code.
15368
15369 2004-01-18  Jan Hubicka  <jh@suse.cz>
15370
15371         * coverage.c (checksum_string): Rename to ...
15372         (coverage_checksum_string): ... this one, Use crc32_string; recognize
15373         names containing random number and zero the number out in order to get
15374         match.
15375
15376 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15377
15378         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
15379
15380 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15381
15382         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
15383         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
15384         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
15385         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
15386         doc/trouble.texi: Remove trailing whitespace.
15387
15388 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
15389
15390         PR target/7618
15391         * config/mips/mips.c: Include cfglayout.h.
15392         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
15393         (mips_unspec_offset_high): Add temporary register argument.
15394         (mips_load_call_address): New function, split out from...
15395         (mips_expand_call): ...here.
15396         (mips_output_cplocal): New function.
15397         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
15398         (mips_emit_loadgp): New function, split out from...
15399         (mips_expand_prologue): ...here.
15400         (mips_output_mi_thunk): New function.
15401
15402 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
15403
15404         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
15405         mcpu32): Remove redundant checks for implied target predefines.
15406
15407 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
15408
15409         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15410         Return type is unsigned int not int.
15411         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15412         Likewise.
15413
15414 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15415
15416         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
15417         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
15418         "GNU/Linux" and "Microsoft Windows" terminology.
15419
15420 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
15421
15422         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
15423         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
15424         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
15425         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
15426         @smallexample instead of @example.
15427
15428 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
15429
15430         * objc/objc-act.c (build_objc_method_call): Use target
15431         hooks instead of macros to determine if ..._stret
15432         dispatchers should be used (NeXT runtime only).
15433
15434 2004-01-17  Roger Sayle  <roger@eyesopen.com>
15435
15436         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
15437         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
15438
15439 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15440
15441         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
15442         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
15443         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
15444         macros.
15445         * reload1.c (emit_reload_insns): Use them.
15446         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
15447         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
15448         for NULL PATTERN.
15449
15450 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
15451
15452         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
15453         (final_scan_insn): Update to take an additional SEEN argument.  Emit
15454         a line note after the prologue.  Make static.
15455         (line_note_exists): Remove.
15456         (final): Don't initialize line_note_exists.  Update call to
15457         final_scan_insn.
15458         * output.h (final_scan_insn): Remove prologue.
15459         * function.c (set_insn_locators): Update comment.
15460         (thread_prologue_and_epilogue_insns): Add a comment.
15461
15462 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
15463
15464         PR target/10781
15465         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
15466         Prototype.
15467         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
15468         New function.
15469         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
15470         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
15471         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
15472
15473 2004-01-17  Jan Hubicka  <jh@suse.cz>
15474
15475         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
15476         commit.
15477
15478         * toplev.c (HAVE_conditional_execution): Provide default.
15479         (rest_of_handle_reorder_blocks): For conditional_execution target
15480         update liveness once after all transformations
15481         (rest_of_compilation): Do crossjumping before ce3.
15482
15483 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
15484
15485         * alias.c (new_alias_set): Mark last_alias_set for PCH.
15486         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
15487         for PCH.
15488         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
15489         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
15490         (get_TOC_alias_set): Mark 'set' for PCH.
15491
15492 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15493
15494         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
15495         even after reload, just don't remove the actual jump tables.
15496
15497 2004-01-17  J. Brobecker  <brobecker@gnat.com>
15498
15499         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
15500         Remove checks for is_ada() and TREE_UNSIGNED.
15501         (subrange_type_die): Emit a byte_size attribute if the subrange
15502         type size is different from the base type size.
15503         (modified_type_die): Replace call to is_ada_subrange_type() by
15504         call to is_subrange_type().
15505
15506 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
15507
15508         * config/sh/sh.c: Include ggc.h.
15509
15510 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
15511
15512         * Makefile.in (MD5_H): New.
15513         (fold-const.o): Depend on md5.h.
15514         (dwarf2out.o): Likewise.
15515         (cppfiles.o): Likewise.
15516         * cppfiles.c: Include md5.h.
15517         (should_stack_file): Check against list read from PCH file.
15518         (struct pchf_data): New.
15519         (pchf): New variable.
15520         (struct pchf_adder_info): New.
15521         (pchf_adder): New.
15522         (pchf_save_compare): New.
15523         (_cpp_save_file_entries): New.
15524         (_cpp_read_file_entries): New.
15525         (struct pchf_compare_data): New.
15526         (pchf_compare): New.
15527         (check_file_against_entries): New.
15528         * cpphash.h (_cpp_save_file_entries): Prototype.
15529         (_cpp_read_file_entries): Prototype.
15530         * cpppch.c (cpp_write_pch_state): Write the list of headers.
15531         (cpp_read_state): Read the list of headers.
15532
15533 2004-01-17  Jan Hubicka  <jh@suse.cz>
15534
15535         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
15536         builtin_expect specially.
15537         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
15538         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
15539         * invoke.texi (max-inline-insns-single): Set to 100.
15540         (large-function-insns): Set to 3000.
15541
15542 2004-01-16  Eric Christopher  <echristo@redhat.com>
15543             Chandrakala Chavva <cchavva@redhat.com>
15544
15545         * cppcharset.c (one_iso88591_to_utf8): New function.
15546         (convert_iso88591_utf8): Ditto. Use.
15547         (conversion_tab): Use.
15548         (_cpp_input_to_utf8): New function.
15549         (_cpp_init_iconv_buffer): Ditto.
15550         (_cpp_close_iconv_buffer): Ditto.
15551         * cpphash.h: Prototype new functions.
15552         (cpp_buffer): Add input_cset_desc.
15553         * cppinit.c: Add input_charset default.
15554         * cpplib.c (cpp_push_buffer): Support init and
15555         close of iconv.
15556         * cpplib.h (cpp_options): Add input_charset.
15557
15558 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15559
15560         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
15561         * config/alpha/unicosmk.h: Remove a commented-out definition
15562         of ASM_OUTPUT_SECTION_NAME.
15563         * config/stormy16/stormy16.h: Likewise.
15564
15565 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15566
15567         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
15568         (alpha___extern_prefix_sys_stat): ... this.
15569         Apply to <sys/mount.h>, too.
15570         Tweak to match more variations.
15571         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
15572
15573         * fixinc/inclhack.def (alpha___extern_prefix,
15574         alpha___extern_prefix_standards): New hacks to obey
15575         __PRAGMA_EXTERN_PREFIX.
15576         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
15577         test.
15578         * fixinc/tests/base/standards.h: Likewise.
15579
15580         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
15581         variations.
15582         New testcase.
15583         * fixinc/tests/base/pthread.h: Handle it.
15584
15585         * fixincl/inclhack.def (bad_lval): Sort file list.
15586         Add many missing files up to Tru64 UNIX V5.1B.
15587         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
15588         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
15589         order.
15590
15591         * fixinc/fixincl.x: Regenerate.
15592
15593 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
15594
15595         * version.c (version_string): Change to 3.5.0.
15596         * doc/include/gcc-common.texi (version-GCC): Likewise.
15597
15598 2004-01-16  Jan Hubicka  <jh@suse.cz>
15599
15600         * i386.md (load_tp_di): Fix pasto.
15601
15602         PR opt/13608
15603         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
15604
15605         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
15606         pp_c_character_constant, pp_c_floating_constant,
15607         pp_c_additive_expression, pp_c_shift_expression,
15608         pp_c_equality_expression, pp_c_and_expression,
15609         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
15610         pp_c_logical_and_expression): Remove inline modifier.
15611         * dwarf2out.c (get_AT): Likewise.
15612         * et-forest.c (et_splay): Likewise.
15613         * ra.h (ra_alloc, ra_calloc): Likewise
15614
15615 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15616
15617         * config/frv/frv-protos.h: Fix comment formatting.
15618         * config/frv/frv.c: Likewise.
15619         * config/frv/frv.h: Likewise.
15620         * config/frv/frv.md: Likewise.
15621         * config/frv/frvbegin.c: Likewise.
15622         * config/frv/frvend.c: Likewise.
15623
15624 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
15625
15626         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
15627         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
15628         LINKER_DOES_NOT_WORK_WITH_DWARF2.
15629         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
15630
15631 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
15632
15633         PR 11864
15634         * postreload.c (reload_cse_simplify_operands): Don't remove
15635         implicit extension from LOAD_EXTEND_OP.
15636
15637 2004-01-16  Jan Hubicka  <jh@suse.cz>
15638
15639         PR opt/11350
15640         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
15641         after reload.
15642         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
15643         rtl_try_redirect_by_replacing_branch): Likewise.
15644
15645 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
15646
15647         PR pch/13689
15648         * alias.c (struct alias_set_entry): Mark for GC.
15649         (alias_sets): Make static, mark for GC.
15650         (record_alias_subset): Use GC to allocate alias structures.
15651         * varray.c (element): Make generic varrays GCed.
15652
15653         PR pch/13361
15654         * c-typeck.c (constructor_asmspec): Delete.
15655         (struct initializer_stack): Delete field 'asmspec'.
15656         (start_init): Delete saving of asmspec.
15657         (finish_init): Don't update constructor_asmspec.
15658         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
15659         * stmt.c (expand_asm): Duplicate strings from tree.
15660         (expand_asm_operands): Likewise.
15661         * tree.c (tree_size): Update computation of size of STRING_CST.
15662         (make_node): Don't make STRING_CST nodes.
15663         (build_string): Allocate string with tree node.
15664         * tree.def (STRING_CST): Update comment.
15665         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
15666         (tree_string): Place contents of string in tree node.
15667         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
15668         from tree.
15669
15670         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
15671         altivec operands.
15672
15673 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15674
15675         * c-common.h: Fix comment formatting.
15676         * c-cppbuiltin.c: Likewise.
15677         * c-pragma.c: Likewise.
15678         * calls.c: Likewise.
15679         * collect2.c: Likewise.
15680         * cppcharset.c: Likewise.
15681         * cpptrad.c: Likewise.
15682         * dbxout.c: Likewise.
15683         * defaults.h: Likewise.
15684         * dwarf2out.c: Likewise.
15685         * fold-const.c: Likewise.
15686         * genautomata.c: Likewise.
15687         * genconditions.c: Likewise.
15688         * genflags.c: Likewise.
15689         * gengtype.c: Likewise.
15690         * integrate.c: Likewise.
15691         * loop.c: Likewise.
15692         * predict.c: Likewise.
15693         * sdbout.c: Likewise.
15694
15695 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
15696
15697         * config/ia64/ia64.md (*movti_internal): C output template
15698         extracted to ia64.c.
15699         (*movti_internal_reg): Delete.
15700         (reload_inti, reload_outti): Use the correct mode on operand 2
15701         in the first place, don't fix it up in the output template.
15702         (movtf, reload_ointf, reload_outtf): New expanders.
15703         (*movtf_internal): New define_insn_and_split.
15704         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
15705         make static; do not hand TFmode CONST_DOUBLEs to split_double.
15706         (ia64_split_tmode_move): New function, body mostly pulled
15707         from ia64.md:*movti_internal.
15708         (ia64_function_arg_words): New function, extracted common
15709         logic from ia64_function_arg et seq.
15710         (ia64_function_arg_offset): Likewise.  Handle correctly the
15711         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
15712         (ia64_function_arg, ia64_function_arg_partial_nregs)
15713         (ia64_function_arg_advance): Use ia64_function_arg_words and
15714         ia64_function_arg_offset.
15715         (ia64_function_value): TCmode does not go in float regs.
15716         (ia64_secondary_reload_class): Also handle TFmode.
15717         * config/ia64/ia64-protos.h: Remove prototype for
15718         ia64_split_timode; add prototype for ia64_split_tmode_move.
15719
15720 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15721
15722         * Makefile.in (MAINT): Make it an immediate assignment.
15723
15724 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15725
15726         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
15727
15728 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15729
15730         * config/h8300/coff.h: Replace Hitachi with Renesas.
15731         * config/h8300/elf.h: Likewise.
15732         * config/h8300/h8300-protos.h: Likewise.
15733         * config/h8300/h8300.c: Likewise.
15734         * config/h8300/h8300.h: Likewise.
15735         * config/h8300/h8300.md: Likewise.
15736         * config/h8300/lib1funcs.asm: Likewise.
15737
15738 2004-01-15  Andrew Pinski  <apinski@apple.com>
15739
15740         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
15741         around it.
15742
15743 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15744
15745         * config/h8300/h8300.c (h8300_return_in_memory): New.
15746         (TARGET_STRUCT_VALUE_RTX): Likewise.
15747         (TARGET_RETURN_IN_MEMORY): Likewise.
15748         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
15749         (RETURN_IN_MEMORY): Likewise.
15750
15751 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15752
15753         PR optimization/13375
15754         * gcse.c (handle_avail_expr): Just return if the source is not a
15755         single set.
15756
15757 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
15758             Daniel Jacobowitz  <drow@mvista.com>
15759
15760         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
15761         (EQUIV): Define.
15762         (ARM_FUNC_ALIAS): New macro.
15763         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
15764         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
15765
15766 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15767
15768         PR optimization/12372
15769         * calls.c (expand_call): Add call_fusage data for stack arguments in
15770         constant calls.
15771
15772 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
15773
15774         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
15775         (rs6000_elf_declare_function_name): Formatting.
15776         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
15777
15778 2004-01-15  Jan Hubicka  <jh@suse.cz>
15779
15780         PR bootstrap/13692
15781         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
15782         previous patch.
15783
15784 2004-01-15  Richard Henderson  <rth@redhat.com>
15785
15786         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
15787         integer regs of the same call-savedness.
15788
15789 2004-01-15  Andreas Schwab  <schwab@suse.de>
15790
15791         PR bootstrap/13562
15792         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
15793         status for NOTB/NOTW/NEGW methods.
15794
15795 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15796
15797         * doc/invoke.texi: Update dump file names.  Fix a typo.
15798
15799 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15800
15801         * builtins.c (expand_builtin_va_end): Don't use
15802         EXPAND_BUILTIN_VA_END.
15803         * system.h (EXPAND_BUILTIN_VA_END): Poison.
15804         * config/d30v/d30v.h: Remove a commented-out definition of
15805         EXPAND_BUILTIN_VA_END.
15806         * config/stormy16/stormy16.h: Likewise.
15807
15808 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
15809
15810         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
15811         * targhooks.c (default_struct_value_rtx): Don't use
15812         STRUCT_VALUE_INCOMING_REGNUM.
15813
15814 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
15815
15816         PR bootstrap/12744
15817         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
15818         GENINSRC and not parsedir.  Define srcextra as a langhook.
15819         * configure: Regenerate.
15820         * Makefile.in: Suppress default .l.c rule.  Don't substitute
15821         parsedir and delete all references throughout.  Conditionally define
15822         rule for srcextra dependent on GENINSRC.
15823         (stmp-docobjdir): Delete.
15824         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
15825         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
15826         and gengtype-yacc.h back to source directory.
15827         (maintainer-clean): Delete all parse files in source directory.
15828         (distclean): Delete generated files.
15829
15830         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
15831         (objc-parse.c, objc-parse.y): Don't use parsedir.
15832         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
15833         directory if requested.
15834         (po-generated): Don't use parsedir.
15835         (objc.maintainer-clean): Delete above files from source directory.
15836
15837 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15838
15839         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
15840
15841 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15842
15843         * doc/tm.texi: Replace RETURN_IN_MEMORY with
15844         TARGET_RETURN_IN_MEMORY.
15845
15846 2004-01-15  Jan Hubicka  <jh@suse.cz>
15847
15848         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
15849         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
15850         functions accepting SSE arguments
15851         (function_arg): Warn only when asked to warn.
15852         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
15853
15854 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
15855
15856         * c-parse.in (stmts_and_decls): Make label at end of compound
15857         statement a hard error.
15858
15859 2004-01-14  Jan Hubicka  <jh@suse.cz>
15860
15861         * cgraph.c (create_edge): Use local.redefined_extern_inline.
15862         * cgraph.h (cgraph_local_info): Sort fields by size; add
15863         redefined_extern_inline
15864         (cgraph_global_info): Sort fields by size.
15865         (cgraph_node): Likewise.
15866         * cgraphunit.c (cgraph_finalize_function): Se
15867         local.redefined_extern_inline on redefinition.
15868         (cgraph_analyze_function): Use it; fix formating.
15869
15870 2004-01-14  Jan Hubicka  <jh@suse.cz>
15871
15872         PR c++/10776
15873         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
15874         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
15875         bitmaps
15876         (cache_size): New variable
15877         (add_dependence): Update use; canonize early memory locations
15878         (sched_analyze_1): Likewise.
15879         (sched_analyze_2): Likewise.
15880         (init_dependency_caches): Initialize bitmaps.
15881         (free_dependency_caches): Free bitmaps
15882
15883 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15884
15885         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
15886         targetm.calls.strict_argument_naming().
15887         * target.h: Likewise.
15888
15889 2004-01-14  Richard Henderson  <rth@redhat.com>
15890
15891         PR debug/13231
15892         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
15893         instructions.
15894
15895 2004-01-14  Richard Henderson  <rth@redhat.com>
15896
15897         PR c++/12491
15898         * except.c (struct eh_region): Add u.fixup.resolved.
15899         (resolve_one_fixup_region): Split out from ...
15900         (resolve_fixup_regions): ... here.
15901
15902 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15903
15904         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
15905
15906 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15907
15908         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
15909         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
15910         (STRUCT_VALUE): Remove.
15911
15912 2004-01-14  Steven Bosscher  <stevenb@suse.de>
15913
15914         * system.h: Poison PROMOTED_MODE
15915         * integrate.c (expand_inline_function): Don't mention the
15916         PROMOTED_MODE.
15917         * loop.c (update_giv_derive): Same.
15918         * tree.h (DECL_RTL): Same.
15919
15920 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
15921
15922         PR target/9365
15923         * sh.c (gen_block_redirect): Add special handling of RETURN.
15924         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
15925         far branch target (i.e. it's a return).
15926
15927 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15928
15929         * regrename.c (find_oldest_value_reg): Fix a warning.
15930
15931 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15932
15933         PR bootstrap/12527
15934         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
15935         Move linux-gas.h and linux-elf.h before aout.h.
15936         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
15937         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
15938
15939 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
15940
15941         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
15942         (CONST_INT, VOIDmode, ...).
15943
15944 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
15945
15946         * regrename.c (find_oldest_value_reg): If the replacement uses
15947         multiple hard registers, check that all of them are in CLASS.
15948
15949 2004-01-14  Jan Hubicka  <jh@suse.cz>
15950
15951         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
15952         impossible.
15953
15954 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
15955
15956         * Makefile.in: Define MAINT from --enable-maintainer-mode.
15957
15958 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
15959
15960         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
15961         Calculate always vrsave_mask if TARGET_ALTIVEC.
15962         (rs6000_emit_prologue): Emit code for vrsave
15963         only if TARGET_ALTIVEC_VRSAVE.
15964         (rs6000_emit_epilogue): Likewise.
15965
15966 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
15967
15968         * config/sparc/sparc.md (tie_add32): Fix pasto.
15969         (tie_add64): Likewise.
15970
15971 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
15972
15973         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
15974
15975 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15976
15977         * config/iq2000/iq2000-protos.h: Fix comment formatting.
15978         * config/iq2000/iq2000.c: Likewise.
15979         * config/iq2000/iq2000.md: Likewise.
15980
15981 2004-01-14  J. Brobecker  <brobecker@gnat.com>
15982
15983         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
15984         (subrange_type_die): Add handle for nameless subrange types.
15985
15986 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15987
15988         * config/h8300/h8300-protos.h: Replace do_movsi with
15989         h8300_expand_movsi.
15990         * config/h8300/h8300.c (do_movsi): Change to
15991         h8300_expand_movsi.
15992         * config/h8300/h8300.md (movsi): Replace do_movsi with
15993         h8300_expand_movsi.
15994         (movsf): Likewise.
15995
15996 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
15997
15998         * config/h8300/h8300.c (dosize): Change to
15999         h8300_emit_stack_adjustment.  Update callers.
16000
16001 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16002
16003         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16004         the source being post_inc.  Tighten the predicate for the
16005         destination to register_operand.
16006         (movstricthi): Likewise.
16007
16008 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16009
16010         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16011         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16012         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16013
16014 2004-01-14  Jan Hubicka  <jh@suse.cz>
16015
16016         Partial fix PR c++/12850
16017         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16018         at zero nest level.
16019
16020 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16021
16022         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16023         pseudo-register.
16024
16025 2004-01-13  Devang Patel <dpatel@apple.com
16026
16027         PR debug/7078
16028         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16029         NAMESPACE_DECL memebers.
16030
16031 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16032
16033         PR c++/12709
16034         * c-common.c (finish_fname_decls): Use the chain only if the
16035         tree is an expr_stmt.
16036
16037 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16038
16039         * rtl.def: Add comment about new option in automata_option.
16040
16041         * genautomata.c (PROGRESS_OPTION): New macro.
16042         (progress_flag): New global variable.
16043         (gen_automata_option): Process `progress'.
16044         (transform_insn_regexps, check_unit_distributions_to_automata,
16045         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16046         expand_automata, write_automata): Print about the progress only if
16047         progress_flag.  Remove fflush.
16048         (initiate_automaton_gen): Process command line flag `-progress'.
16049
16050         * doc/md.texi: Describe the new option.
16051
16052 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16053
16054         * cfg.c (dump_bb): Dump entry edges.
16055
16056 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16057
16058         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16059         references from SImode.
16060         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16061
16062 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16063
16064         * system.h (TEXT_SECTION): Poison.
16065         * varasm.c (text_section): Don't use TEXT_SECTION.
16066         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16067         * doc/tm.texi (TEXT_SECTION): Remove.
16068
16069 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16070
16071         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16072
16073 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16074
16075         * unwind-libunwind.c: Delete.
16076
16077 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16078
16079         PR 13656
16080         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16081         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16082         them at the very end.
16083         (validate_proto_after_old_defn): Restructure for comprehensibility;
16084         make error messages clearer.
16085
16086 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16087
16088         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16089         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16090         * varray.c: No need to prototype error.
16091         (varray_check_failed): Wrap long string onto two lines.
16092         (varray_underflow): New function.
16093
16094 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16095
16096         PR c++/13376
16097         * function.h (struct function): Kill `name' field.
16098         (current_function_name): Make it an extern function.
16099         * function.c (current_function_name): New function.
16100         * graph.c: Update all uses of current_function_name.
16101         * gcse.c: Likewise.
16102         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16103         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16104         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16105         instead of a strcmp with "main".
16106
16107 2004-01-13  Jan Hubicka  <jh@suse.cz>
16108
16109         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16110
16111         * cgraphunit.c (cgraph_optimize_function):  Always do
16112         optimize_inline_calls when there is always_inline callee.
16113         (cgraph_decide_inlining): Fix formating.
16114         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16115         functions.
16116         (expand_call_inline): Likewise.
16117         * toplev.h (sorry): Fix prototype.
16118
16119 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16120
16121         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
16122         conditional jumps that drop through to unconditional jumps or the
16123         end of the sequence.
16124
16125 2004-01-13  Jan Hubicka  <jh@suse.cz>
16126
16127         * alias.c (new_alias_set): Construct the alias_set varray.
16128         (init_alias_once): Don't do it here.
16129
16130 2004-01-12  Marc Espie <espie@openbsd.org>
16131
16132         * system.h: handle YYBYACC like YYBISON.
16133
16134 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
16135
16136         PR target/10847
16137         * config.gcc: No longer includes conflicting header sparc/sol2.h when
16138         building on sparc64-*-openbsd*.
16139
16140 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
16141
16142         PR debug/13539
16143         * dbxout.c (dbxout_type): Protected inheritance is not
16144         private but protected.
16145
16146 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16147
16148         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
16149
16150 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
16151
16152         PR optimization/12508.
16153         * combine.c (try_combine): Remove a dead set in a parallel
16154         even if its destination is a subreg.
16155
16156         Revert:
16157         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
16158         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
16159         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
16160
16161 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
16162
16163         * real.c: Update copyright date.
16164         * emit-rtl.c: Likewise.
16165         * rtl.h: Likewise.
16166         * dwarf2out.c: Likewise.
16167         * config/rs6000/darwin-ldouble.c: Likewise.
16168         * config/rs6000/rs6000.md: Likewise.
16169
16170 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16171
16172         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
16173         TFmode to SImode libfuncs.
16174
16175 2004-01-12  Roger Sayle  <roger@eyesopen.com>
16176
16177         PR middle-end/11397
16178         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
16179
16180 2004-01-12  Jan Hubicka  <jh@suse.cz>
16181
16182         PR opt/12826
16183         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
16184         stored.
16185
16186         PR opt/12863
16187         * cfgcleanup.c (label_is_jump_target_p): Move to...
16188         * rtlanal.c (label_is_jump_target_p): ... here.
16189         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
16190         edges unified with branch edges.
16191
16192 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
16193
16194         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
16195         high word of an integral CONST_DOUBLE.
16196
16197 2004-01-12  Paul Brook  <paul@codesourcery.com>
16198
16199         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
16200
16201 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
16202
16203         PR target/13585
16204         * sh-protos.h (check_use_sfunc_addr): Declare.
16205         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
16206         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
16207
16208 2004-01-12  Jan Hubicka  <jh@suse.cz>
16209
16210         * alias.c:  Invlude varray.h
16211         (alias_sets): Turn into varray.
16212         (get_alias_set_entry): Use VARRAY; mark inline.
16213         (mems_in_disjoint_alias_sets_p): Mark inline.
16214         (record_alias_subset): Use varray.
16215         (init_alias_once): Initialize varray.
16216         (new_alias_set): Grow array.
16217         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
16218
16219 2004-01-12  Jan Hubicka  <jh@suse.cz>
16220
16221         Partial fix for PR opt/10776 II
16222         * cselib.c: Include params.h
16223         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
16224         locations.
16225         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
16226         * Makefile.in (cselib.o): Depend on params.h
16227
16228 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
16229
16230         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
16231         simplify_unary_operation if the operand has a known mode.
16232
16233 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
16234
16235         PR target/13534
16236         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
16237         predicate to handle 'ld' conform addresses.
16238         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
16239         contraint.
16240         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
16241         are memory contraints.
16242         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
16243         New prototype.
16244         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
16245         Change 'o' to 'Y' constraint.
16246         (*movdf_softfloat64): Ditto.
16247
16248 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
16249
16250         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
16251         brace-enclosed syntax in all C output statements.
16252
16253 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
16254
16255         PR target/13401
16256         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
16257         Objective-C language type value is 14.
16258
16259 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
16260
16261         PR c/12148
16262         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
16263         `int' in a number of places to make sure we always have a SImode
16264         and not a HImode.  Add a 'L' suffix to a number of constants.
16265
16266 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16267
16268         * pa.c: Don't include obstack.h.
16269
16270         * pa.md: Correct constraint in pattern for loading PIC label address.
16271
16272 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16273
16274         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
16275          before defining.
16276
16277 2004-01-11  Steven Bosscher  <stevenb@suse.de>
16278
16279         PR fortran/9972
16280         * toplev.c (rest_of_handle_inline): Also consider functions
16281         for deferral if the language is GNU F77.
16282
16283 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
16284
16285         * c-decl.c (diagnose_arglist_conflict): Add missing space to
16286         diagnostic messages.
16287
16288 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
16289
16290         PR middle-end/13392
16291         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
16292         to drop through label.  Don't fall back to SCC even when conditional
16293         jump has not been found.
16294
16295 2004-01-11  Jan Hubicka  <jh@suse.cz>
16296
16297         * invoke.texi: Fix syntax error in previous patch.
16298
16299         Partial fix for PR opt/10776
16300         * Makefile.in (reload.o): Include param.h
16301         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
16302         * reload.c: Include params.h.
16303         (find_equiv_reg): Work limiting check.
16304         * invoke.texi: Document.
16305
16306 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16307
16308         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
16309         out-of-bounds accesses to string constants.  Simplify mips16
16310         case accordingly.
16311
16312 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
16313
16314         PR optimization/13469
16315         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
16316         reload_cse_regs (-fnon-call-exceptions only).
16317
16318 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
16319
16320         * config/mcore/lib1.asm: Fix comment formatting.
16321         * config/mcore/mcore-elf.h: Likewise.
16322         * config/mcore/mcore.c: Likewise.
16323         * config/mcore/mcore.h: Likewise.
16324         * config/mcore/mcore.md: Likewise.
16325
16326 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16327
16328         * c-decl.c (duplicate_decls): Break apart into...
16329         (diagnose_arglist_conflict, validate_proto_after_old_defn)
16330         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
16331         ... these new functions.  Restructure for comprehensibility.
16332         Remove various archaic special cases.  Always report the
16333         location of the previous declaration when a diagnostic is issued.
16334         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
16335         (match_builtin_function_types): Delete unnecessary forward declaration.
16336
16337 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
16338
16339         * genautomata.c (make_automaton, NDFA_to_DFA):
16340         Print progress bars with '.' characters instead of '*'.
16341         (build_automaton): Change notes to match.
16342
16343 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16344
16345         * config/m32r/m32r.md: Use define_constants for unspec and
16346         unspec_volatile.
16347
16348 2004-01-10  Jan Hubicka  <jh@suse.cz>
16349
16350         PR opt/11635
16351         * expr.c (expand_expr_real):  More curefully expand union casts.
16352
16353 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
16354
16355         * config/m32r/m32r.md (flush_icache): Use 1 for
16356         unspec_volatile.
16357
16358 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
16359             James E Wilson  <wilson@specifixinc.com>
16360
16361         PR debug/12860
16362         * dbxout.c (dbxout_symbol): Remove initialization of
16363         current_sym_code, current_sym_value, and current_sym_addr.
16364         (dbxout_symbol_location): Same.
16365         (dbxout_prepare_symbol): Zero current_sym_code,
16366         current_sym_value, and current_sym_addr.
16367
16368 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
16369
16370         * tree.c (get_unwidened): Reorder conditions so that the null pointer
16371         check is done first.
16372
16373 2004-01-09  Eric Christopher  <echristo@redhat.com>
16374
16375         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
16376         if we're running mark_constant_function.
16377
16378 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
16379
16380         PR target/12561
16381         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
16382
16383 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
16384
16385         PR debug/11231
16386         * dbxout.c (dbxout_type_fields): Return if any item is
16387         error_mark_node or the type is error_mark_node.
16388
16389 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
16390
16391         * config/rs6000/darwin-ldouble.c: Add big comment explaining
16392         exactly what is expected as a 'long double'.
16393         (_xlqadd): When a value to be returned is representable as a
16394         'double', just return it directly, do not construct it using a union.
16395         Also, correct final fixup.
16396         (_xlqmul): Likewise.
16397         (_xlqdiv): Likewise.
16398         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
16399
16400         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
16401
16402 2004-01-09  Richard Henderson  <rth@redhat.com>
16403
16404         * recog.c (constrain_operands): Validate mem operands.
16405
16406 2004-01-09   James E Wilson  <wilson@specifixinc.com>
16407
16408         * gcc.c (init_spec): Remove -lunwind from shared case.
16409         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
16410
16411 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
16412
16413         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
16414         * configure: Regenerate
16415
16416 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
16417
16418         PR c/11234
16419         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
16420         between function and object pointers.
16421         (digest_init): When comparing a pointer to function type to the
16422         target type, only apply TREE_TYPE once to the pointer to function
16423         type.
16424         * except.c (for_each_eh_label_1): Treat data as a pointer to a
16425         function pointer rather than casting it to a function pointer.
16426         (for_each_eh_label): Update caller.
16427         * recog.h (struct insn_data): Use a struct or union for output.
16428         * genoutput.c (output_insn_data): Update.
16429         * final.c (get_insn_template): Update.
16430
16431 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
16432
16433         * expr.h (expand_expr): Make it a macro, not a function.
16434         (expand_expr_real): New function.
16435         * expr.c (store_expr): Adjust logic for deciding whether or not to
16436         copy the value returned by expand_expr.
16437         (expand_expr): Rename to ...
16438         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
16439         calls to language hooks.
16440         * c-common.h (c_expand_expr): Adjust prototype.
16441         * c-common.c (c_expand_expr): Add alt_rtl parameter.
16442         * langhooks-def.h (lhd_expand_expr): Change prototype.
16443         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
16444         * langhooks.h (lang_hooks): Change type of expand_expr.
16445         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
16446         (last_expr_alt_rtl): Likewise.
16447         (expand_expr_stmt_value): Set last_expr_alt_rtl.
16448         (clear_last_expr): Clear it.
16449         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
16450         (expand_end_bindings): Save and restor last_expr_alt_rtl.
16451         * tree.def (RTL_EXPR): Give it an additional operand.
16452         * tree.h (RTL_EXPR_ALT_RTL): New macro.
16453
16454 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16455
16456         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
16457         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
16458
16459 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16460
16461         PR target/13380.
16462         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
16463         or (ne:SI (reg:CC 17) (const_int 0)).
16464         Be specific about modes wherever possible.
16465
16466 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16467
16468         * config/m32r/m32r.c (m32r_expand_block_move): Call
16469         gen_movestrsi_internal with two more arguments.
16470         (m32r_output_block_move): Adjust operand numbers.
16471         Properly update the source and destination pointers.
16472         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
16473         'r+'.  Change the set detinations to match_operand.
16474
16475 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
16476
16477         * final.c (FIRST_INSN_ADDRESS): Remove.
16478         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
16479         * system.h (FIRST_INSN_ADDRESS): Poison.
16480         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
16481         * config/m32r/m32r-protos.h: Remove the prototype for
16482         m32r_first_insn_address.
16483         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
16484         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
16485         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
16486
16487 2004-01-09  J. Brobecker  <brobecker@gnat.com>
16488
16489         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
16490         we just created.
16491         (is_ada_subrange_type): DIEs for enumeration subtypes should be
16492         emitted as subrange types too.
16493         (subrange_type_die): Add handling of enumeration subtypes.
16494
16495 2004-01-08  Richard Henderson  <rth@redhat.com>
16496
16497         PR opt/12441
16498         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
16499         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
16500         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
16501         (ix86_address_cost): Be prepared for SUBREGed registers.
16502         (legitimate_address_p): Accept SUBREGed registers.
16503
16504 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
16505
16506         * Makefile.in: Rename configure.in to configure.ac
16507         * doc/sourcebuild.texi: Likewise.
16508         * configure: Regenerate.
16509         * config.in: Regenerate.
16510
16511 2004-01-08  Stuart Hastings  <stuart@apple.com>
16512
16513         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
16514
16515 2004-01-08  Jan Hubicka  <jh@suse.cz>
16516
16517         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
16518
16519 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
16520
16521         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
16522         (UNSPEC_FIX_TRUNC_TF): New constant.
16523         (movtf_internal): Make splitter active only when insn is active.
16524         (extenddftf2): Rewrite to properly load zero into low part.
16525         (extenddftf2_internal): New.
16526         (extendsftf2): Rewrite.
16527         (truncdftf2): Correct length.
16528         (floatditf2): Delete.
16529         (fix_trunc_helper): New.
16530         (fix_trunctfdi2): Use fix_trunc_helper.
16531         (fix_trunctfsi2): Likewise.fix_trunc
16532         (fix_trunctfsi2_internal): New.
16533
16534         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
16535         addresses are legitimate on Darwin even when flag_pic.
16536         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
16537         non-offsettable addresses for loads of TFmode constants.
16538
16539 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16540
16541         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
16542         variables in the appropriate bss section.
16543
16544 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
16545
16546         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
16547         target_flags has MASK_POWERPC64 when -m64.
16548         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
16549         to 620, 630, power3, power4 and rs64a entries.
16550         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
16551
16552 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
16553
16554         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
16555         floating-point constants.
16556
16557 2004-01-08  J. Brobecker  <brobecker@gnat.com>
16558
16559         * dwarf2out.c (subrange_type_die): Add context_die parameter.
16560         Create the subrange_type DIE using the given context DIE.
16561         (modified_type_die): Update call to subrange_type_die.
16562
16563 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
16564
16565         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
16566         Add multiple-include guard.
16567
16568 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
16569
16570         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
16571         all vector constant loadable by vsplt*.
16572         (output_vec_const_move): Likewise.
16573
16574 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16575
16576         PR c/6024
16577         * c-typeck.c (comptypes): Only treat enumerated types in the same
16578         translation unit as compatible with each other when they are the
16579         same type.
16580         * doc/extend.texi: Update.
16581
16582 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
16583
16584         PR c/12165
16585         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
16586         array type from the array element type.
16587
16588 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
16589
16590         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
16591         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
16592         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
16593         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
16594         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
16595
16596 2004-01-06  Eric Christopher  <echristo@redhat.com>
16597
16598         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
16599         (DWARF2_DEBUGGING_INFO): Define.
16600         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
16601         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
16602         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
16603         for irix as.
16604         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
16605         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
16606         * config/mips/iris5gas.h: Ditto.
16607         (DBX_DEBUGGING_INFO): Remove.
16608         (DWARF2_DEBUGGING_INFO): Ditto.
16609         (MIPS_DEBUGGING_INFO): Ditto.
16610         (PREFERRED_DEBUGGING_TYPE): Ditto.
16611         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
16612         (PREFERRED_DEBUGGING_TYPE): Ditto.
16613         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
16614         * config/mips/elf64.h: Ditto.
16615
16616 2004-01-06  Jan Hubicka  <jh@suse.cz>
16617
16618         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
16619         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
16620
16621 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
16622
16623         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
16624         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
16625         * config/rs6000/darwin-ldouble.c: New.
16626
16627         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
16628         for constants.
16629         (constant_subword): Delete.
16630         * rtl.h (constant_subword): Delete prototype.
16631         (immed_double_const): Is not in varasm.c.
16632         * simplify-rtx.c (simplify_immed_subreg): New.
16633         (simplify_subreg): Use simplify_immed_subreg.
16634
16635         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
16636         than trying to generate RTL directly.
16637         (fix_trunctfsi2): Use expand_fix rather than trying to generate
16638         RTL directly.
16639
16640         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
16641
16642 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
16643
16644         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
16645         function into a separate macro.
16646         (read_only_data_section): Add void argument.
16647         (private_data_section): Same.
16648         (read_only_private_data_section): Same.
16649         (toc_section): Same.
16650
16651 2004-01-06  Jan Hubicka  <jh@suse.cz>
16652
16653         * invoke.texi:  Remove typo in last change.
16654
16655         PR target/10301
16656         * config.gcc: Accept opteron and athlon-64 as variants
16657         of k8.
16658         * i386.c (override_options): Likewise.
16659         * invoke.texi (i386 -mtune): Expand documentation.
16660
16661 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16662
16663         * alias.c: Fix comment typos.
16664         * builtins.c: Likewise.
16665         * cfg.c: Likewise.
16666         * df.c: Likewise.
16667         * dominance.c: Likewise.
16668         * dwarf2out.c: Likewise.
16669         * emit-rtl.c: Likewise.
16670         * expr.c: Likewise.
16671         * final.c: Likewise.
16672         * fold-const.c: Likewise.
16673         * gcse.c: Likewise.
16674         * genattrtab.c: Likewise.
16675         * genrecog.c: Likewise.
16676         * gensupport.c: Likewise.
16677         * ggc-zone.c: Likewise.
16678         * integrate.c: Likewise.
16679         * local-alloc.c: Likewise.
16680         * loop.c: Likewise.
16681         * recog.c: Likewise.
16682         * regmove.c: Likewise.
16683         * reg-stack.c: Likewise.
16684         * reorg.c: Likewise.
16685         * rtlanal.c: Likewise.
16686         * rtl.h: Likewise.
16687         * sched-ebb.c: Likewise.
16688         * simplify-rtx.c: Likewise.
16689         * toplev.c: Likewise.
16690         * varasm.c: Likewise.
16691
16692 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
16693
16694         * doc/install.texi: Fix typos.
16695         * doc/invoke.texi: Likewise.
16696         * doc/md.texi: Likewise.
16697
16698 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16699
16700         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
16701
16702 2004-01-06  Jan Hubicka  <jh@suse.cz>
16703
16704         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
16705         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
16706         of MMX_REGPARM.
16707         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
16708         add MMX_REGPARM.
16709         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
16710         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
16711         (MMX_REGPARM_MAX): Similarly for -mmmx.
16712
16713 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16714
16715         * config/sh/linux.h: Fix comment formatting.
16716         * config/sh/netbsd-elf.h: Likewise.
16717         * config/sh/sh.c: Likewise.
16718         * config/sh/sh.h: Likewise.
16719         * config/sh/vxworks.h: Likewise.
16720
16721 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16722
16723         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
16724         * toplev.c (output_file_directive): Don't use
16725         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
16726
16727 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
16728
16729         * toplev.c: Fix broken checkin of 2003-12-30.
16730
16731 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
16732
16733         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
16734         (USING_MMAP): We don't support non-mmap.
16735         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
16736         large objects.
16737         (struct page_entry): Remove bytes_free.
16738         (struct page_table_chain): Remove.
16739         (struct globals): Remove page_table member.
16740         (loookup_page_table_entry): Function deleted.
16741         (set_page_table_entry): Ditto.
16742         (ggc_allocated_p): No longer need page table lookups.
16743         (ggc_marked_p): Ditto.
16744         (alloc_small_page): Don't care about bytes_free anymore.
16745         (alloc_large_page): Round up size.
16746         (ggc_alloc_zone_1): Mark large objects as such, and calculate
16747         their size the new way.
16748         Remove page table lookups and setting.
16749         (ggc_get_size): Calculate large object size the new way.
16750         (sweep_pages): Redo to account for fact that we no longer have
16751         bytes_free.
16752         (ggc_collect): No longer need to reincrement bytes_free.
16753         (ggc_pch_alloc_object): Handle new large objects properly.
16754         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
16755
16756 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16757
16758         * doc/invoke.texi: Remove a page break.
16759
16760 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16761
16762         * config/avr/avr.c (avr_output_function_prologue): Remove an
16763         extra pair of curly braces.
16764
16765 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16766
16767         * config/mn10300/mn10300.c: Fix comment formatting.
16768         * config/mn10300/mn10300.h: Likewise.
16769
16770 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16771
16772         * tree.h: Update documentation on nothrow_flag.
16773         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
16774         types.
16775
16776 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
16777
16778         * doc/invoke.texi: Remove traces of dead ports.
16779
16780 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16781
16782         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
16783         option.
16784
16785 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16786
16787         PR target/12945
16788         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
16789         counter labels.
16790         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
16791         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
16792         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
16793         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
16794         (mips_symbol_insns): Don't trust the local/global classification.
16795         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
16796         (override_options): Make -mabicalls -fno-unit-at-a-time imply
16797         -mno-explicit-relocs.
16798         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
16799         between local and global symbols.
16800
16801 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
16802
16803         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
16804         (mips_preferred_reload_class): Declare.
16805         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
16806         (EXTRA_CONSTRAINT): Update accordingly.
16807         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
16808         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
16809         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
16810         mips_dangerous_for_la25_p.
16811         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
16812         if mips_dangerous_for_la25_p.
16813
16814 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
16815
16816         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
16817         warning.
16818
16819 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
16820
16821         * configure.ac: Use AC_PROG_CPP_WERROR.
16822         * configure: Regenerate.
16823
16824 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
16825
16826         * .cvsignore: Add autom4te.cache.
16827
16828 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
16829
16830         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
16831         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
16832         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
16833         then architecture options, then ABI options.  General rewording.
16834
16835 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
16836
16837         PR c/3414
16838         * doc/extend.texi: Clarify definition of malloc attribute.
16839
16840 2004-01-04  Jan Hubicka  <jh@suse.cz>
16841
16842         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
16843         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
16844         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
16845         (cgraph_inline_p): Add extra argument reason.
16846         * cgraphunit.c: Minor formating fixes.
16847         cgraph_first_inlined_callee): New functions.
16848         (record_call_1): Record builtins too.
16849         (cgraph_analyze_function): Update inline_failed messages.
16850         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
16851         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
16852         (cgraph_check_inline_limits): Likewise; Add argument reason.
16853         (cgraph_set_inline_failed): New static function.
16854         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
16855         reasons.
16856         (cgraph_inline_p): Add new argument reason.
16857         * tree-inline.c (expand_call_inline):  Update warning.
16858
16859 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
16860
16861         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
16862         with modern equivalents.
16863         * configure: Regenerate.
16864
16865         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
16866         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
16867         * configure: Regenerate.
16868
16869         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
16870
16871         * configure.in: Rename to configure.ac.
16872         * configure.ac: Renamed from configure.in; make minimum necessary
16873         changes for autoconf 2.5x.
16874         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
16875         * configure: Regenerate with autoconf 2.57.
16876
16877 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
16878
16879         * config/mips/linux.h: Fix comment formatting.
16880         * config/mips/mips.c: Likewise.
16881         * config/mips/mips.h: Likewise.
16882         * config/mips/mips.md: Likewise.
16883         * config/mips/netbsd.h: Likewise.
16884         * config/mips/windiss.h: Likewise.
16885
16886 2004-01-02  Richard Henderson  <rth@redhat.com>
16887
16888         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
16889         for sse and 387; add suppression for mmx.
16890
16891 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
16892
16893         * loop.c (loop_optimize): Free all loops_info's mems.
16894
16895         * c-typeck.c (finish_init): Free spelling_base before
16896         setting it again.
16897
16898         * cfgloop.c (flow_loops_find): Always free the sbitmap
16899         headers.
16900
16901         * predict.c (estimate_probability): Free bbs after being
16902         done with it.
16903
16904 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16905
16906         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
16907         const_8bit_operand and call_address_operand.
16908
16909 2004-01-02  Jan Hubicka  <jh@suse.cz>
16910
16911         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
16912         when there is nothing to inline but warnings are requested.
16913         (cgraph_decide_inlining):  Fix memory leak.
16914
16915 2004-01-02  Jan Hubicka  <jh@suse.cz>
16916
16917         * expr.c (store_constructor):  Fix pasto in previous patch.
16918
16919 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
16920
16921         * config/i386/cygming.h: Fix comment formatting.
16922         * config/i386/djgpp.h: Likewise.
16923         * config/i386/gthr-win32.c: Likewise.
16924         * config/i386/i386-interix.h: Likewise.
16925         * config/i386/i386.c: Likewise.
16926         * config/i386/i386.h: Likewise.
16927         * config/i386/openbsd.h: Likewise.
16928         * config/i386/winnt.c: Likewise.
16929         * config/i386/xm-mingw32.h: Likewise.
16930
16931 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
16932
16933         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
16934         copyright and last modification dates.
16935
16936 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
16937
16938         * doc/install.texi (Specific): Mention x86_64.
16939
16940 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
16941
16942         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
16943         Call force_operand on plus_constant result.
16944
16945 2004-01-01  Jan Hubicka  <jh@suse.cz>
16946
16947         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
16948         * expr.c (store_constructor): Use vec_init pattern.
16949         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
16950         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
16951         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
16952         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
16953         New patterns.
16954         (sse2_unpc?pd): Fix pattern.
16955         (sse2_movlpd): Kill.
16956         (sse2_movsd): Deal with movlpd too.
16957         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
16958         (ix86_expand_vector_init): New.
16959         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
16960         * md.texi (vec_set, vec_extract): Document
16961
16962 2003-12-31  Jan Hubicka  <jh@suse.cz>
16963
16964         PR opt/13473
16965         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
16966         ASM input operands
16967
16968         PR opt/12617
16969         * toplev.c (dump_file_index): Reorder ce3 and bbro.
16970         (dump_file): Likewise.
16971         (rest_of_compilation): Likewise.
16972
16973         PR debug/13367
16974         * cgraph.c (cgraph_function_possibly_inlined):  Even with
16975         flag_really_no_inline we inline always_inline functions.
16976         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
16977         for non-always_inline functions when there is flag_really_no_inline.
16978         (cgraph_decide_inlining): Limit work done when not inlining.
16979         (cgraph_decide_inlining_incrementally): Likewise.
16980         (cgraph_optimize_function): Check whether something got inlined.
16981         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
16982         extern inline functions when not inlining.
16983
16984         * opts.c (decode_options):  Disable crossjumping at -O1
16985         * invoke.texi (-O1): Document change.
16986
16987 See ChangeLog.10 for earlier changes.