OSDN Git Service

992a4de6c154d07a984be59956f04ebaf6cbfc46
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2
3         * real.c: Fix bit count in head comment.
4
5 2004-06-14  Jeff Law  <law@redhat.com>
6
7         * tree-ssa.c (kill_redundant_phi_nodes): More correctly handle
8         PHIs where the destination or an argument is marked with
9         SSA_NAME_OCCURS_IN_ABNORMAL_PHI.
10
11 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
12
13         PR middle-end/15945
14         * simplify-rtx.c (simplify_binary_operation): Don't optimize out
15         Inf + -Inf, Inf - Inf, Inf / Inf and 0 * Inf if flag_trapping_math.
16
17 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
18
19         * opts.sh (var_args): Fix regexp.
20
21 2004-06-14  Jakub Jelinek  <jakub@redhat.com>
22
23         PR target/15178
24         * config/i386/sol2.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
25
26 2004-06-14  Paul Brook  <paul@codesourcery.com>
27
28         * dwarf2out.c (output_call_frame_info): Support dwarf3 cie entries.
29
30 2004-06-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
31
32         * Makefile.in (FLAGS_H): New.
33         (flags.h): Replace by FLAGS_H.
34         * c.opt: Document Var, VarExists, Init and Report attributes.
35         * common.opt: Fill the values of the attributes.
36         * diagnostic.c (flag_fatal_errors): Do not define.
37         * except.c (flag_non_call_exceptions): Do not define.
38         * flags.h: Include options.h.  Remove declarations conflicting with
39         the automatically defined ones.
40         * opts.c: Remove automatically defined variables.
41         (handle_option): Perform default initialization.
42         (common_handle_option): Do not handle options covered by the
43         default initialization.
44         * opts.h (struct cl_option): Add flag_var, has_set_value and set_value
45         fields.
46         (CL_REPORT): New.
47         * opts.sh: Generate variable declarations, handle CL_REPORT.
48         * toplev.c: Remove automatically defined variables.
49         (f_options): Removed.
50         (print_switch_values): Use cl_options instead of f_options.
51         * toplev.h (version_flag): Declaration removed.
52
53 2004-06-14  Ian Lance Taylor  <ian@wasabisystems.com>
54
55         * config/sparc/sparc.h: Correct comment about availability of
56         little endian option.
57
58         * config.gcc: Remove sparc64-*-aout*.
59         * config/sparc/sparc.c (sparc_aout_select_rtx_section): Remove.
60         * config/sparc/sp64-aout.h: Remove.
61         * config/sparc/aout.h: Remove.
62
63 2004-06-14  Ulrich Weigand  <uweigand@de.ibm.com>
64
65         * config/s390/s390.c: Include "tree-gimple.h".
66         (s390_gimplify_va_arg): New function.
67         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
68         (s390_va_arg): Remove.
69         * config/s390/s390-protos.h (s390_va_arg): Remove.
70         * config/s390/s390.h (EXPAND_BUILTIN_VA_ARG): Call abort ().
71
72 2004-06-14  J"orn Rennecke <joern.rennecke@superh.com>
73
74         * basic-block.h (could_fall_through): Declare.
75         * cfganal.c (can_fallthru): Succeed if the target is EXIT_BLOCK_PTR.
76         Fail if the source already has a fallthrough edge to the exit
77         block pointer.
78         (could_fall_through): New function.
79         * cfgbuild.c (make_edges): Check if we already have a fallthrough
80         edge to the exit block pointer.
81         * cfglayout.c (fixup_fallthru_exit_predecessor): Check that it is
82         not called before reload has completed.
83         Handle special case of first block having a fall-through exit edge.
84         (cfg_layout_finalize): Don't call it before reload or if we have
85         rtl epilogues.
86         (fixup_reorder_chain): A fall through to the exit block does not
87         require the block to come last.  Add sanity checks.
88         * cfgrtl.c (rtl_split_edge): Add special handling of fall through
89         edges to the exit block.
90         * function.c (cfglayout.h): #include.
91         (thread_prologue_and_epilogue_insns): If we have neither return nor
92         epilogue, but a fall through to the exit block from mid-function,
93         force a non-fall-through exit.
94         * Makefile.in (function.o): Depend on CFGLAYOUT_H.
95
96 2004-06-14  Alan Modra  <amodra@bigpond.net.au>
97
98         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Handle -mpowerpc64 and -mcpu
99         for power5 and rs64a.  Correct condition for default.  Correct power3,
100         620, 630, 7400, 7450, G4, 970 and G5 -mcpu entries.  Add -many.
101
102 2004-06-13  Steven Bosscher <stevenb@suse.de>
103
104         * gcse.c (hash_scan_set, hash_scan_insn, mark_set, mark_oprs_set):
105         Revert previous change, don't use CALL_P.
106
107 2004-06-13  Jason Merrill  <jason@redhat.com>
108
109         * tree.h: Move std_gimplify_va_arg_expr protoype here.
110         * tree-gimple.h: From here.
111
112 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
113
114         Fix PR tree-optimization/15979
115         Fix PR tree-optimization/15981
116         * tree-ssa-pre.c (insert_aux): Fix faulty logic so that we don't
117         try to insert values undefined along some path.
118
119 2004-06-13  Daniel Berlin  <dberlin@dberlin.org>
120
121         * tree-ssa-pre.c (add_to_value): is_gimple_min_invariant things
122         are available everywhere too.
123
124 2004-06-13  Andrew Pinski  <pinskia@physics.uc.edu>
125
126         * fold-const.c (fold_checksum_tree <case 't'>): Only
127         look at TREE_VALUES if the EXPR is an ENUMERAL_TYPE.
128         Only look at TYPE_MIN_VALUE and TYPE_MAX_VALUE if
129         EXPR is an INTEGERAL_TYPE or a scalar float type.
130
131 2004-06-13  Diego Novillo  <dnovillo@redhat.com>
132
133         * tree-sra.c (tree_sra): Update documentation.
134
135 2004-06-13  Joseph S. Myers  <jsm@polyomino.org.uk>
136
137         * c-typeck.c (comptypes, tagged_types_tu_compatible_p,
138         function_types_compatible_p, type_lists_compatible_p): Remove
139         flags parameter.
140         * c-tree.h (comptypes): Likewise.
141         (COMPARE_STRICT): Remove.
142         * c-decl.c, c-lang.c, c-parse.in, c-typeck.c, objc/objc-act.c: All
143         callers changed.
144
145 2004-06-13  Eric Christopher  <echristo@redhat.com>
146
147         * c-decl.c (diagnose_mismatched_decls): Improve error message.
148         Remove unused code.
149         * c-typeck.c (comptypes): Add location in standard we're checking.
150
151 2004-06-13  Kaz Kojima  <kkojima@gcc.gnu.org>
152
153         * config/sh/libgcc-std.ver: Add __unorddf2 and __unordsf2 with
154         version 3.3.4.
155
156 2004-06-12  Roger Sayle  <roger@eyesopen.com>
157
158         * expmed.c (shift_cost, shiftadd_cost, shiftsub_cost): Additionally
159         index by machine mode.
160         (init_expmed): Initialize shift_cost, shiftadd_cost and shiftsub_cost
161         tables inside the loop over machine modes.
162         (synth_mult, expand_mult_highpart_optab, expand_mult_highpart,
163         expand_divmod): Index shift*_cost by the appropriate machine mode.
164
165 2004-06-12  Eric Christopher  <echristo@redhat.com>
166
167         * config/s390/s390.h: Rename TARGET_TPF to TARGET_TPF_PROFILING.
168         * config/s390/s390.md: Ditto.
169         * config/s390/s390.c: Ditto.
170         (s390_frame_info): Conditionalize frame and setup info on
171         TARGET_TPF_PROFILING.
172         (s390_arg_frame_offset): Ditto.
173
174 2004-06-12  Roger Sayle  <roger@eyesopen.com>
175
176         * fold-const.c (omit_two_operands): New function.
177         * tree.h (omit_two_operands): Prototype here.
178         * builtins.c (fold_builtin_unordered_cmp): New function to lower
179         C99 unordered comparison builtins to the appropriate tree nodes.
180         (fold_builtin_1): Use fold_builtin_unordered_cmp to lower
181         BUILT_IN_ISGREATER, BUILT_IN_ISGREATEREQUAL, BUILT_IN_ISLESS,
182         BUILT_IN_ISLESSEQUAL and BUILT_IN_ISLESSGREATER.  Manually lower
183         BUILT_IN_ISUNORDERED comparisons to an UNORDERED_EXPR tree node.
184         (simplify_builtin_memcmp, simplify_builtin_strncmp,
185         simplify_builtin_strncat, simplify_builtin_strspn): Use the new
186         omit_two_operands function to build the required COMPOUND_EXPRs.
187
188 2004-06-12  Steven Bosscher <stevenb@suse.de>,
189             Andreas Jaeger  <aj@suse.de>
190
191         * gcse.c (record_set_info): Use predicates like REG_P.
192         (mems_conflict_for_gcse_p): Likewise.
193         (load_killed_in_block_p): Likewise.
194         (hash_expr_1): Likewise.
195         (insert_set_in_table): Likewise.
196         (gcse_constant_p): Likewise.
197         (hash_scan_set): Likewise.
198         (hash_scan_insn): Likewise.
199         (canon_list_insert): Likewise.
200         (record_last_mem_set_info): Likewise.
201         (record_last_set_info): Likewise.
202         (compute_hash_table_work): Likewise.
203         (mark_set): Likewise.
204         (mark_clobber): Likewise.
205         (mark_oprs_set): Likewise.
206         (compute_transp): Likewise.
207         (find_avail_set): Likewise.
208         (cprop_insn): Likewise.
209         (do_local_cprop): Likewise.
210         (cprop): Likewise.
211         (find_implicit_sets): Likewise.
212         (find_bypass_set): Likewise.
213         (bypass_conditional_jumps): Likewise.
214         (insert_insn_end_bb): Likewise.
215         (pre_insert_copy_insn): Likewise.
216         (compute_transpout): Likewise.
217         (next_ls_expr): Likewise.
218         (invalidate_any_buried_refs): Likewise.
219         (compute_ld_motion_mems): Likewise.
220         (reg_set_info): Likewise.
221         (reg_clear_last_set): Likewise.
222         (find_moveable_store): Likewise.
223         (compute_store_table): Likewise.
224         (find_loads): Likewise.
225         (store_killed_in_insn): Likewise.
226         (insert_insn_start_bb): Likewise.
227         (reg_set_between_after_reload_p): Likewise.
228         (reg_used_between_after_reload_p): Likewise.
229         (is_jump_table_basic_block): Likewise.
230         (gcse_after_reload): Likewise.
231         (hash_scan_set_after_reload): Likewise.
232         (compute_hash_table_after_reload): Likewise.
233
234 2004-06-12  Steven Bosscher  <stevenb@suse.de>
235
236         * rtl.h (MEM_P, NONJUMP_INSN_P, CALL_INSN_P): New predicates.
237         (INSN_P): Don't look at the rtx code class, just explicitly
238         check for one of the tree RTX_INSN codes.
239
240 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
241
242         * c-typeck.c (default_function_array_conversion): Use
243         build_pointer_type not TYPE_POINTER_TO.
244
245 2004-06-11  Zack Weinberg  <zack@codesourcery.com>
246
247         * configure.ac: Don't invoke ACX_HEADER_STDBOOL.
248         * configure, config.in: Regenerate.
249         * system.h: Unconditionally define bool as unsigned char,
250         BOOL_BITFIELD as unsigned int.
251         * domwalk.h: Use BOOL_BITFIELD.
252
253 2004-06-12  Andreas Jaeger  <aj@suse.de>
254
255         * libgcc-std.ver: Add __unorddf2 and __unordsf2 with version 3.3.4.
256         * libgcc-darwin.ver: Likewise.
257
258 2004-06-12  Peter Jakubek  <peter@laseranimation.com>
259
260         * reload.c (find_reloads): Force reload for pseudo registers on big
261         endian machines.
262
263 2004-06-11  Steven Bosscher <stevenb@suse.de>
264
265         * tree-ssa-dce.c (mark_control_dependent_edges_necessary):
266         Don't try to mark anything control dependent on the entry or
267         exit blocks.
268
269 2004-06-11  Daniel Berlin  <dberlin@dberlin.org>
270
271         Fix Bug 15899
272         Fix Bug 15460
273         * tree.h (SSA_NAME_VALUE): New macro.
274         (struct tree_ssa_name): Add value_handle member.
275         * tree-ssa-pre.c: Replaced.
276         * tree-flow.h (tree_ann_type): Add CST_ANN, EXPR_ANN.
277         (struct cst_ann_d): New.
278         (struct expr_ann_d): New.
279         (union tree_ann_d): Add cst_ann, expr_ann.
280         * tree-dfa.c (create_cst_ann): New function.
281         (create_expr_ann): Ditto.
282         * tree-flow-inline.h (cst_ann): New function.
283         (expr_ann): Ditto.
284         (get_cst_ann): Ditto.
285         (get_expr_ann): Ditto..
286
287 2004-06-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
288
289         * pa.c (pa_hpux_init_libfunc): Add support for unord_optab.
290         * pa/quadlib.c (enum qfcmp_magic): Define magic values for call to
291         _U_Qfcmp library function.
292         (_U_Qfltgt, _U_Qfunle, _U_Qfunlt, _U_Qfunge, _U_Qfungt, _U_Qfuneq,
293         _U_Qfunord, _U_Qford): Add more TFmode builtin compare functions.
294
295         * pa.c (legitimize_pic_address): Use UNSPEC_DLTIND14R to identify
296         unspec used for loading address from DLT.
297         * pa.md: Define constants for the uses of UNSPEC and UNSPEC_VOLATILE.
298         Change all users of UNSPEC and UNSPEC_VOLATILE to use new constants.
299         Don't use short code sequence when loading the address of a nonlocal
300         label.
301         (nonlocal_goto): New expander.
302         (indirect_goto): New jump pattern for nonlocal gotos.
303         (short_jump): Remove extra whitespace.
304         (builtin_longjmp): Clobber memory and hard frame pointer.  Restore
305         frame pointer via virtual_stack_vars_rtx when we have a nonlocal goto
306         pattern.
307
308 2004-06-11  Roger Sayle  <roger@eyesopen.com>
309
310         * expmed.c (synth_mult): Add an additional MODE argument for the
311         machine mode of the multiplication.  Update recursive calls.  Use
312         mode instead of word_mode for determining operation costs.
313         (choose_mult_variant): Update calls to synth_mult with "mode".
314
315 2004-06-11  Richard Henderson  <rth@redhat.com>
316
317         * tree-ssa-operands.c (get_stmt_operands): Clear makes_aliased_loads
318         and makes_aliased_stores.
319
320 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
321
322         * doc/install.text (--enable-shared): Fix typo.
323
324 2004-06-11  Richard Henderson  <rth@redhat.com>
325
326         * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Remove post_p
327         argument.  Use internal post for call to gimplify_expr.  Tidy
328         rounded type size computation.
329         (alpha_gimplify_va_arg): Use get_formal_tmp_var and
330         get_initialized_tmp_var.
331
332 2004-06-11  Andrew Pinski  <pinskia@physics.uc.edu>
333
334         * doc/install.texi (--enable-shared): Update libobjc's shared library
335         status.  Remove reference to libf2c.
336
337 2004-06-11  Jason Merrill  <jason@redhat.com>
338
339         * config/i386/i386.h (EXPAND_BUILTIN_VA_ARG): Just abort.
340         * config/i386/i386.c (ix86_va_arg): Remove.
341         * config/rs6000/rs6000.h (EXPAND_BUILTIN_VA_ARG): Just abort.
342         * config/rs6000/rs6000.c (rs6000_va_arg): Remove.
343         * config/alpha/alpha.h (EXPAND_BUILTIN_VA_ARG): Just abort.
344         * config/alpha/alpha.c (alpha_va_arg): Remove.
345         * config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Just abort.
346         * config/sparc/sparc.c (sparc_va_arg): Remove.
347
348         * tree-ssa-operands.c (get_stmt_operands): Use a V_MAY_DEF if the
349         assignment might throw.
350         * tree-eh.c (tree_could_throw_p): Support non-call exceptions in
351         expressions.
352
353 2004-06-11  J"orn Rennecke <joern.rennecke@superh.com>
354
355         PR 15886:
356         * sh.h (ALLOCATE_INITIAL_VALUE): Use return_address_pointer_rtx.
357
358 2004-06-11  Joseph S. Myers  <jsm@polyomino.org.uk>
359
360         * doc/install.texi (Prerequisites): Update documentation of
361         required versions of autoconf and automake.  Remove mention of
362         libf2c.
363
364 2004-06-11  Jason Merrill  <jason@redhat.com>
365
366         * config/sparc/sparc.c (sparc_gimplify_va_arg): New fn.
367         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
368
369 2004-06-11  Jerry Quinn  <jlquinn@optonline.net>
370
371         * typeclass.h: Add GPL plus exception license.  Add include
372         guard.
373
374 2004-06-10  Jason Merrill  <jason@redhat.com>
375
376         * gimplify.c (gimplify_modify_expr): Don't force a temporary
377         of an aggregate_value_p type.
378
379 2004-06-10  Jeff Law  <law@redhat.com>
380
381         * fold-const.c (fold_inf_compare): Avoid creating non-gimple
382         code when we are in gimple form.
383
384 2004-06-10  Diego Novillo  <dnovillo@redhat.com>
385
386         * Makefile.in (tree-ssanames.o): Depend on TREE_FLOW_H.
387         * tree-flow.h (ssa_names, num_ssa_names, ssa_name): Declare.
388         (highest_ssa_version): Remove.
389         * tree-outof-ssa.c (new_temp_expr_table): Replace
390         highest_ssa_version with num_ssa_names.
391         (dump_replaceable_exprs): Likewise.
392         (rewrite_vars_out_of_ssa): Likewise.
393         * tree-ssa-ccp.c (initialize): Likewise
394         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
395         * tree-ssa-dce.c (tree_dce_init): Likewise.
396         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
397         * tree-ssa-live.c (create_ssa_var_map): Likewise.
398         (dump_var_map): Likewise.
399         * tree-ssa.c (verify_ssa): Likewise.
400         (kill_redundant_phi_nodes): Likewise.
401         Do not build a local array of SSA_NAMEs.  Use the ssa_names table.
402         * tree-ssanames.c: Include tree-flow.h
403         (ssa_names): New varray.
404         (init_ssa_names): Initialize ssa_names.
405         Reserve the first slot of the ssa_names table.
406         (make_ssa_name): Push the newly created SSA_NAME into ssa_names.
407         Assign version numbers using num_ssa_names.
408
409 2004-06-10  Joseph S. Myers  <jsm@polyomino.org.uk>
410
411         * doc/sourcebuild.texi (Front End): Add details of more
412         installation documentation required.
413
414 2004-06-10  Brian Booth  <bbooth@redhat.com>
415
416         * doc/tree-ssa.texi: Remove references to VDEF and add descriptions
417         of V_MAY_DEF and V_MUST_DEF.
418         * tree-dfa.c (dfa_stats_d): Add num_v_must_defs and rename
419         num_vdefs to num_v_may_defs.
420         (compute_immediate_uses_for_stmt): Rename occurences of vdef
421         to v_may_def.
422         (redirect_immediate_uses): Ditto.
423         (dump_dfa_stats): Ditto. Also added code to dump num_v_must_defs.
424         (collect_dfa_stats_r): Rename occurences of vdef to v_may_def.
425         Also add code to sum up the number of v_must_defs.
426         (vdefs_disappeared_p): Replace with...
427         (v_may_defs_disappeared_p): This.
428         (v_must_defs_disappeared_p): New function.
429         (mark_new_vars_to_rename): Rename occurences of vdef to v_may_def.
430         Also add code to mark new variables found in V_MUST_DEFs for
431         renameing.
432         * tree-flow.h (stmt_ann_d): Add v_must_def_ops and replace
433         vdef_ops to v_may_def_ops.
434         (get_vdef_ops): Replace with...
435         (get_v_may_def_ops): This.
436         * tree-flow-inline.h (get_vdef_ops): Replace with...
437         (get_v_may_def_ops): This.
438         (get_v_must_def_ops): New function.
439         (get_vdef_result_ptr): Replace with...
440         (get_v_may_def_result_ptr): This.
441         (get_vdef_op_ptr): Ditto with...
442         (get_v_may_def_op_ptr); This.
443         (get_v_must_def_op_ptr): New function.
444         * tree-into-ssa.c (mark_def_sites): Rename occurences of vdef
445         to v_may_def. Also add code to mark statements with
446         V_MUST_DEFs as definition sites.
447         (rewrite_stmt): Rename occurences of vdef to v_may_def. Also
448         add code to register new V_MUST_DEFs made by the statement.
449         * tree-outof-ssa.c (VIRTUAL_PARTITION): Update comments.
450         (check_replaceable): Rename occurences of vdef to v_may_def. Also
451         add check for V_MUST_DEFs.
452         (find_replaceable_in_bb): Ditto.
453         * tree-pretty-print.c (dump_vops): Rename occurences of vdef
454         to v_may_def. Also add code to dump V_MUST_DEFs.
455         * tree-sra.c (mark_all_vdefs): Replace with...
456         (mark_all_v_may_defs): This.
457         (mark_all_v_must_defs): New function.
458         (create_scalar_copies): Replace call to mark_all_vdefs with
459         calls to mark_all_v_may_defs and mark_all_v_must_defs.
460         (scalarize_structures): Rename occurences of vdef to v_may_def.
461         Also add a check for V_MUST_DEFs.
462         (scalarize_modify_expr): Rename occurences of vdef to v_may_def.
463         * tree-ssa-alias.c (global_var): Update comment.
464         (compute_may_aliases): Ditto.
465         (compute_points_to_and_addr_escape): Rename occurences of vdef
466         to v_may_def. Also add code to mark variables in V_MUST_DEF
467         operands as being written to.
468         (group_aliases): Update comment.
469         (maybe_create_global_var): Ditto.
470         * tree-ssa.c (verify_ssa): Rename occurences of vdef to v_may_def.
471         Also add a check for V_MUST_DEFs on GIMPLE registers.
472         (replace_immediate_uses): Rename occurences of vdef to v_may_def.
473         * tree-ssa-ccp.c (visit_stmt): Rename occurences of vdef
474         to v_may_def. Also add code to mark all V_MUST_DEF operands
475         VARYING.
476         (initialize): Ditto.
477         (set_rhs): Rename occurences of vdef to v_may_def. Also add
478         code to update SSA_NAMEs in V_MUST_DEFs.
479         * tree-ssa-copy.c (cprop_into_stmt): Rename occurences of vdef
480         to v_may_def.
481         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Rename
482         occurences of vdef to v_may_def. Also add code to mark statements
483         with V_MUST_DEFs as necessary.
484         (propagate_necessity): Rename occurences of vdef to v_may_def.
485         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Rename
486         occurences of vdef to v_may_def. Also add code to mark operands
487         in V_MUST_DEFs for renaming.
488         (eliminate_redundant_computations): Rename occurences of vdef
489         to v_may_def.
490         (record_equivalences_from_stmt): Rename occurences of vdef
491         to v_may_def. Also add code to record VUSEs for V_MUST_DEFs.
492         (optimize_stmt): Remove unnesessary variable vdefs. Update
493         comment.
494         (register_definitions_for_stmt): Rename occurences of vdef
495         to v_may_def. Also add code to register definitions made with
496         V_MUST_DEFs.
497         * tree-ssa-dse.c (fix_stmt_vdefs): Replace with...
498         (fix_stmt_v_may_defs): This.
499         (fix_phi_uses): Rename occurences of vdef to v_may_def.
500         (dse_optimize_stmt): Ditto.
501         * tree-ssa-live.c (create_ssa_var_map): Rename occurences of vdef
502         to v_may_def. Also add code to mark V_MUST_DEF operands as being
503         used in virtual operators.
504         * tree-ssa-loop.c (mark_defs_for_rewrite): Rename occurences of
505         vdef to v_may_def. Also add code to mark V_MUST_DEF operands for
506         renaming.
507         * tree-ssa-operands.c (opf_kill_def): New flag for killing
508         definitions.
509         (build_vdefs): Renamed to...
510         (build_v_may_defs): This.
511         (build_v_must_defs): New variable.
512         (voperands_d): Add v_must_def_ops and replace vdef_ops with
513         v_may_def_ops.
514         (append_vdef): Replace with...
515         (append_v_may_def): This.
516         (append_v_must_def): New function.
517         (NUM_FREE): Increment for V_MUST_DEF
518         (optype_freelist): Increment its size for V_MUST_DEF
519         (allocate_vdef_optype): Replace with...
520         (allocate_v_may_def_optype): This.
521         (allocate_v_must_def_optype): New function.
522         (free_vdefs): Replace with...
523         (free_v_may_defs): This.
524         (free_v_must_defs): New function.
525         (remove_vdefs): Replace with...
526         (remove_v_may_defs): This.
527         (remove_v_must_defs): New function.
528         (init_ssa_operands): Rename occurences of vdef to v_may_def. Also
529         add code to initialize build_v_must_defs.
530         (finalize_ssa_vdefs): Replace with...
531         (finalize_ssa_v_may_defs): This.
532         (finalize_ssa_vuses): Rename occurences of vdef to v_may_def.
533         (finalize_ssa_v_must_defs): New function.
534         (finalize_ssa_stmt_operands): Replace call to finalize_ssa_vdefs
535         with calls to finalize_ssa_v_may_defs and finalize_ssa_v_must_defs.
536         (verify_start_operands): Rename occurences of vdef to v_may_def.
537         Also add check for build_v_must_defs.
538         (get_stmt_operands): Rename occurences of vdef to v_may_def.
539         Also add code to handle V_MUST_DEFs and to use opf_kill_def for
540         killing definitions.
541         (get_expr_operands): Update comment and use opf_kill_def for
542         killing definitions.
543         (add_stmt_operand): Replace code that appends VDEFs with code
544         that appends V_MUST_DEFs when opf_kill_def is set and V_MAY_DEFs
545         otherwise.
546         (add_call_clobber_ops): Update comments.
547         * tree-ssa-operands.h (vdef_optype_d): Replace with...
548         (v_may_def_optype_d): This.
549         (v_must_def_optype_d): New structure.
550         (VDEF_OPS): Replace with...
551         (V_MAY_DEF_OPS): This.
552         (STMT_VDEF_OPS): Same with...
553         (STMT_V_MAY_DEF_OPS): This.
554         (NUM_VDEFS): And...
555         (NUM_V_MAY_DEFS): This.
556         (VDEF_RESULT_PTR): As well as...
557         (V_MAY_DEF_RESULT_PTR): This.
558         (VDEF_RESULT): Same goes for...
559         (V_MAY_DEF_RESULT): This.
560         (VDEF_OP_PTR): And...
561         (V_MAY_DEF_OP_PTR): This.
562         (VDEF_OP): And...
563         (V_MAY_DEF_OP): This.
564         (V_MUST_DEF_OPS): New macro.
565         (STMT_V_MUST_DEF_OPS): Ditto.
566         (NUM_V_MUST_DEFS): Ditto.
567         (V_MUST_DEF_OP_PTR): Ditto.
568         (V_MUST_DEF_OP): Ditto.
569         (remove_vdefs): Replace signature with...
570         (remove_v_may_defs): This.
571         (remove_v_must_defs): New function signature.
572         * tree-ssa-pre.c (subst_phis): Replace call to remove_vdefs
573         with calls to remove_v_may_defs and remove_v_must_defs.
574         (process_left_occs_and_kills): Rename occurences of vdef to v_may_def.
575         Also add code that marks left occurences of operands in V_MUST_DEFs.
576         * tree-tailcall.c (find_tail_calls): Rename occurences of vdef
577         to v_may_def. Also add check for V_MUST_DEFs.
578         (eliminate_tail_call):Rename occurences of vdef to v_may_def.
579
580 2004-06-10  Vladimir Makarov  <vmakarov@redhat.com>
581
582         PR target/15653
583         * haifa-sched.c (schedule_block): Finish cycle after issuing asm
584         insn.
585
586 2004-06-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
587
588         PR web/15263
589         * doc/install.texi: Remove superfluous linebreak.
590
591 2004-06-10  Roger Sayle  <roger@eyesopen.com>
592
593         * builtins.c (expand_builtin): Fall back to library function call for
594         conj, conjf, conjl, creal, crealf, creall, cimag, cimagf and cimagl.
595         (fold_builtin_1): Lower built-ins BUILT_IN_CONJ{,F,L} to CONJ_EXPR,
596         BUILT_IN_CREAL{,F,L} to REALPART_EXPR, and BUILT_IN_CIMAG{,F,L} to
597         IMAGPART_EXPR respectively.
598
599 2004-06-10  J"orn Rennecke <joern.rennecke@superh.com>
600
601         * sh.c (dump_table): New argument start.  Changed caller.
602         (fixup_mova): New function.
603         (find_barrier): Use it.
604         (sh_reorg): Likewise.  Check for CODE_FOR_casesi_worker_2.
605         If the label a mova refers to is above the mova itself, change
606         the mova into a load.
607         * sh.md (*casesi_worker): Rename to:
608         (casesi_worker_1).
609         (casesi_worker_2): New insn.
610
611 2004-06-10  Jason Merrill  <jason@redhat.com>
612
613         * target.h (struct gcc_target): Change gimplify_va_arg_expr
614         hook signature.
615         * tree-gimple.h: Adjust.
616         * config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust.
617         * config/i386/i386.c (ix86_gimplify_va_arg): Adjust.
618         Use fold_convert.
619         * config/ia64/ia64.c (ia64_gimplify_va_arg): Adjust.
620         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Adjust.
621         Use COMPLEX_EXPR for complex numbers.  Use fold_convert.
622         * builtins.c (std_gimplify_va_arg_expr): Adjust.  Use fold_convert.
623         (gimplify_va_arg_expr): Return GS_ERROR in error case.
624         Gimplify valist rather than calling stabilize_va_list.
625
626 2004-06-10  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
627
628         * Makefile.in (df.o): Remove fibheap dependency.
629         * df.h: Do not include sbitmap.h.
630         (struct ref): New field "data".
631         (DF_REF_DATA): New accessor macro.
632         (struct df): Field "dom" removed.
633         (df_analyze_subcfg): New function.
634         (transfer_function_sbitmap, transfer_function_bitmap): Replaced by ...
635         (transfer_function): ... new type.
636         (iterative_dataflow_sbitmap, iterative_dataflow_bitmap): Replaced by ...
637         (iterative_dataflow): ... new function.
638         (enum set_representation, struct dataflow): New.
639         * df.c: Do not include fibheap.h.
640
641         (df_reg_def_chain_clean, df_reg_use_chain_clean,
642         (df_bb_table_realloc, df_analyse_subcfg, free_reg_ref_chain,
643         prune_to_subcfg, df_bb_modify): New functions.
644         (df_bitmaps_alloc, df_reg_def_chain_create, df_reg_use_chain_create,
645         df_refs_update, df_reg_table_realloc, df_ref_create,
646         df_bb_reg_def_chain_create, df_bb_reg_use_chain_create,
647         df_bb_rd_local_compute, df_bb_ru_local_compute, df_bb_lr_local_compute,
648         df_analyse_1, df_insn_modify): Support analysing only a part of the cfg.
649
650         (dataflow_set_a_op_b, dataflow_set_copy): New functions.
651         (df_rd_transfer_function, df_ru_transfer_function,
652         df_lr_transfer_function): Type of bitmaps changed to void *.
653         (hybrid_search_bitmap, hybrid_search_sbitmap): Merge into ...
654         (hybrid_search): ... new function.
655         (iterative_dataflow_bitmap, iterative_dataflow_sbitmap): Merge into ...
656         (iterative_dataflow): ... new function. Avoid use of fibheaps for
657         a worklist.  Do not process basic blocks unnecessarily.
658
659 2004-06-10  Roger Sayle  <roger@eyesopen.com>
660
661         * fold-const.c (fold_abs_const): Make extern.
662         * tree.h (fold_abs_const): Prototype here.
663         * builtins.c (fold_builtin_fabs): New function to transform
664         fabs, fabsf and fabsl builtins into ABS_EXPR tree nodes.
665         (fold_builtin_abs): New function to transform abs, labs, llabs
666         and imaxabs builtins into ABS_EXPR tree nodes.
667         (expand_builtin): Fall back to a function call for abs, labs,
668         llabs and imaxabs builtins that survive constant folding.
669         (fold_builtin_1): Call fold_builtin_fabs for FABS, FABSF and
670         FABSL, and fold_builtin_abs for ABS, LABS, LLABS and IMAXABS.
671
672 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
673
674         * config/ia64/unwind-ia64.c (uw_frame_state_for): Don't assume a
675         leaf function without unwind info at RP 0.
676
677 2004-06-10  Jakub Jelinek  <jakub@redhat.com>
678
679         PR c++/14791
680         * tree.h (enum tree_index): Add TI_FILEPTR_TYPE.
681         (fileptr_type_node): Define.
682         * tree.c (build_common_tree_nodes_2): Initialize
683         fileptr_type_node to ptr_type_node.
684         * c-common.c (c_common_nodes_and_builtins): For C++, make
685         fileptr_type_node a distinct type copy.
686         * builtin-types.def (BT_FILEPTR, BT_FN_INT_CONST_STRING_FILEPTR,
687         BT_FN_INT_INT_FILEPTR, BT_FN_INT_FILEPTR_CONST_STRING_VALIST_ARG,
688         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_FILEPTR,
689         BT_FN_INT_FILEPTR_CONST_STRING_VAR): Add.
690         (BT_FN_INT_CONST_STRING_PTR, BT_FN_INT_INT_PTR,
691         BT_FN_SIZE_CONST_PTR_SIZE_SIZE_PTR, BT_FN_INT_PTR_CONST_STRING_VAR,
692         BT_FN_INT_PTR_CONST_STRING_VALIST_ARG): Remove.
693         * builtins.def (BUILT_IN_FPRINTF, BUILT_IN_FPRINTF_UNLOCKED,
694         BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, BUILT_IN_FPUTS,
695         BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FSCANF, BUILT_IN_FWRITE,
696         BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): Use
697         the above *FILEPTR* types instead of *PTR*.
698
699 2004-06-09  Daniel Berlin <dberlin@dberlin.org>
700
701         * tree-ssa.c (verify_ssa): Verify that vdefs/makes_aliased_stores
702         match.
703
704 2004-06-09  Roger Sayle  <roger@eyesopen.com>
705
706         * fold-const.c (fold_not_const): New function.
707         (fold) <ABS_EXPR>: Don't bother testing wins.
708         (fold) <BIT_NOT_EXPR>: Call fold_not_const.
709         (nondestructive_fold_unary_to_constant) <BIT_NOT_EXPR>: Likewise.
710
711 2004-06-09  Richard Henderson  <rth@redhat.com>
712
713         PR middle-end/15228
714         * function.c (assign_parms): Always set_mem_align with the computed
715         FUNCTION_ARG_BOUNDARY.  Don't clear stack_parm if !STRICT_ALIGNMENT.
716
717 2004-06-09  Richard Henderson  <rth@redhat.com>
718
719         PR opt/15108
720         * tree-tailcall.c (find_tail_calls): Don't check early for
721         tail_recursion failure.
722
723 2004-06-09  Diego Novillo  <dnovillo@redhat.com>
724
725         Move SSA_NAME annotations into tree_ssa_name.
726
727         * tree-dfa.c (create_ssa_name_ann): Remove.
728         * tree-flow-inline.h (ssa_name_ann, get_ssa_name_ann): Remove.
729         * tree-flow.h (enum tree_ann_type): Remove SSA_NAME_ANN.
730         (struct ssa_name_ann_d): Remove.
731         (union tree_ann_d): Update.
732         (ssa_name_ann_t): Remove.
733         * tree-ssa-alias.c: (get_ptr_info): New local function.
734         Replace references to ssa_name_ann_t with struct ptr_info_def.
735         * tree-ssa-operands.c (get_expr_operands): Likewise.
736         * tree.h (SSA_NAME_PTR_INFO): Define.
737         (struct ptr_info_def): Declare.
738         (struct tree_ssa_name): Add field 'ptr_info'.
739
740 2004-06-09  Danny Smith  <dannysmith@users.sourceforge.net>
741
742         * config/i386/winnt.c (i386_pe_output_labelref): Correct
743         misplaced ')'.
744
745 2004-06-09  Steven Bosscher  <stevenb@suse.de>
746
747         * config/i386/k6.md: Rewrite using the DFA model.
748         * config/i386/i386.c (ix86_adjust_cost): Don't increase the
749         cost of load-operation insns for the K6.
750         (ia32_use_dfa_pipeline_interface): Add TARGET_K6.
751         (ia32_multipass_dfa_lookahead): Likewise.
752
753 2004-06-09  Richard Henderson  <rth@redhat.com>
754
755         * config/alpha/alpha.c (alpha_gimplify_va_arg_1,
756         alpha_gimplify_va_arg, TARGET_GIMPLIFY_VA_ARG_EXPR): New.
757
758 2004-06-09  Richard Henderson  <rth@redhat.com>
759
760         * expmed.c (emit_store_flag): Cope with FLOAT_STORE_FLAG_VALUE.
761
762 2004-06-09  Geoffrey Keating  <geoffk@apple.com>
763
764         * Makefile.in (CPPLIB_H): Put files in order of inclusion.
765         (CPP_ID_DATA_H): New.
766         (gtype-desc.o): Update dependencies.
767         (GTFILES): Use CPP_ID_DATA_H.
768
769 2004-06-09  Mark Mitchell  <mark@codesourcery.com>
770
771         Revert:
772         PR c++/15815
773         2004-06-07  Mark Mitchell  <mark@codesourcery.com>
774         * doc/extend.texi: Deprecate #pragma interface and #pragma
775         implementation.
776
777 2004-06-09  David S. Miller  <davem@nuts.davemloft.net>
778
779         * config/sparc/sparc.h (MOVE_RATIO): New definition.
780
781 2004-06-09  Richard Henderson  <rth@redhat.com>
782
783         * basic-block.h (struct edge_def): Add goto_locus.
784         * tree-cfg.c (make_goto_expr_edges): Set it.
785         (disband_implicit_edges): Use it.
786         * tree-pretty-print.c (dump_implicit_edges): Print it.
787
788 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
789
790         * h8300.md (ldm_h8300s_4): Fix condition for expander.
791
792 2004-06-08  Jason Merrill  <jason@redhat.com>
793
794         Gimplify VA_ARG_EXPR into simpler forms.
795         * target.h: Add gimplify_va_arg_expr hook.
796         * target-def.h: Add TARGET_GIMPLIFY_VA_ARG_EXPR.
797         * fold-const.c (build_fold_addr_expr)
798         (build_fold_addr_expr_with_type): Move from gimplify.c.
799         * tree.h: Declare them.
800         * gimplify.c (gimplify_and_add): New fn.
801         (build_addr_expr, build_addr_expr_with_type): Move to fold-const.c.
802         (gimplify_array_ref_to_plus, gimplify_modify_expr)
803         (gimplify_expr): Use build_fold_*.
804         (copy_if_shared_r): Only mark VA_ARG_EXPR volatile if we
805         don't know how to gimplify it.
806         * builtins.c (std_gimplify_va_arg_expr): New fn.
807         (dummy_object): New static fn.
808         (gimplify_va_arg_expr): New fn.
809         (stabilize_va_list): Use build_fold_*.
810         * tree-gimple.h: Declare new fns.
811         * config/i386/i386.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
812         (ix86_gimplify_va_arg): New fn.
813         * config/ia64/ia64.c (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
814         (ia64_gimplify_va_arg): New fn.
815         * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): New fn.
816         (TARGET_GIMPLIFY_VA_ARG_EXPR): Define.
817         * alias.c (get_varargs_alias_set): Just return 0 for now.
818
819         * c-objc-common.c (c_tree_printer): Improve handling of %T.
820
821 2004-06-09  Andrew Pinski  <pinskia@physics.uc.edu>
822
823         * tree-complex.c (expand_complex_comparison): Use fold_convert instead
824         of convert.
825         * tree-inline.c (setup_one_parameter): Likewise.
826         * tree-sra.c (csc_build_component_ref): Likewise.
827         * tree-ssa-ccp.c (ccp_fold): Likewise.
828         * tree-ssa-copy.c (cprop_operand): Likewise.
829         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
830         * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise.
831
832 2004-06-09  J"orn Rennecke <joern.rennecke@superh.com>
833
834         PR rtl-optimization/15521:
835         * sched-int.h (in_post_call_group_p): Change type to enum.
836         * sched-deps.c (sched_analyze_insn):
837         (sched_analyze): When in_post_call_group_p is post_call_initial,
838         don't add a dependency, but still set SCHED_GROUP_P and CANT_MOVE,
839         and also reset in_post_call_group_p to post_call.
840         (sched_analyze): When the previous basic block ended in a CALL_INSN,
841         initialize in_post_call_group_p as post_call_initial.
842         (init_deps): initialize in_post_call_group_p to not_post_call.
843
844 2004-06-09  Arnaud Charlet  <charlet@act-europe.fr>
845
846         PR ada/6637
847         * doc/install.texi: List ada, libada as options to --enable-shared
848
849 2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
850
851         * aclocal.m4 (gcc_AC_PROG_LN): Remove.
852         (gcc_AC_CHECK_DECLS): Use AH_TEMPLATE to generate
853         config.in entries.
854         * configure.ac: Call ACX_PROG_LN, falling back to $LN_S
855         if hard links are not available.
856         * configure: Regenerate.
857         * config.in: Regenerate.
858
859 2004-06-08  Per Bothner  <per@bothner.com>
860
861         * configure.ac:  New --enable-mapped-location sets USE_MAPPED_LOCATION.
862
863 2004-06-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
864
865         * toplev.c (floor_log2_wide): Correct casts for 64-bit hosts.
866         Correct formatting.
867
868 2004-06-08  James E Wilson  <wilson@specifixinc.com>
869
870         PR target/15790
871         * config/i386/i386-coff.h (ASM_OUTPUT_ALIGN): Define.
872
873 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
874
875         * fold-const.c (fold_convert): Treat OFFSET_TYPE like
876         POINTER_TYPE and INTEGER_TYPE.
877
878 2004-06-08  Bernardo Innocenti  <bernie@develer.com>
879
880         * modulo-sched.c: Compile only when INSN_SCHEDULING is
881         defined.
882
883 2004-06-08  Jeff Law  <law@redhat.com>
884
885         * doc/contrib.texi: Add entries for Stefan Olsson and
886         Ola Ronnerup.
887
888 2004-06-08  DJ Delorie  <dj@redhat.com>
889
890         * toplev.c (floor_log2_wide): Replace loop with faster bit
891         operations.
892         (exact_log2_wide): Define in terms of the above.
893         * toplev.h (floor_log2): Use _builtin_clz family of builtins if
894         available.
895
896 2004-06-08  Andrew Pinski  <pinskia@physics.uc.edu>
897
898         * config/rs6000/rs6000.c (print_operand, <case 'z'>):
899         Make sure that we are in INDIRECT mode when getting the
900         stub name.
901
902 2004-06-08  Anil Paranjpe <anilp1@kpitcummins.com>
903
904         * h8300.md (extendqisi2_h8300): Add constraints.
905         (ldm_h8300s_4_normal): Fix typo.
906
907 2004-06-08  Richard Henderson  <rth@redhat.com>
908
909         * gimple-low.c (struct lower_data): Replace the_return_label and
910         one_return_stmt with return_statements.
911         (lower_function_body): Process the entire list of return_statements.
912         (lower_return_expr): Check source value before unifying return_exprs.
913         * gimplify.c (gimplify_return_expr): Force the use of a temporary
914         for !aggregate_value_p.
915         * tree-gimple.c: Update RETURN_EXPR grammer.
916
917 2004-06-08  Vladimir Makarov  <vmakarov@redhat.com>
918
919         PR target/15598
920         * config/ia64/ia64.c (bundling): Add missed TYPE_A.
921
922 2004-06-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
923
924         PR rtl-optimization/15717
925         * config/i386/i386.c (legitimate_constant_p): Do not allow
926         x - symbol_ref.
927
928 2004-06-08  Alexandre Oliva  <aoliva@redhat.com>
929
930         * gimplify.c (copy_if_shared_r): Revert:
931         2004-05-21  Richard Henderson  <rth@redhat.com>
932         * gimplify.c [...] Don't mark VA_ARG_EXPRs volatile here.
933
934 2004-06-07  Roger Sayle  <roger@eyesopen.com>
935
936         * expmed.c (add_cost, neg_cost, sdiv_pow2_cheap, smod_pow2_cheap):
937         Make arrays indexed by machine mode.  Rename negate_cost to neg_cost.
938         (init_expmed): Initialize these cost arrays as appropriate.
939         (store_bit_field, extract_bit_field): Correct whitespace.
940         (synth_mult, choose_mult_variant, expand_mult, expand_mult_highpart,
941         expand_mult_highpart_optab, expand_divmod): Update uses of add_cost,
942         neg_cost, sdiv_pow2_cheap, smod_pow2_cheap to index with mode,
943         word_mode or compute_mode as appropriate.
944
945 2004-06-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
946
947         PR target/15783
948         * config/sparc/sparc.c (function_arg_union_value): Add 'mode'
949         parameter.  Enumerate the registers inside the PARALLEL.
950         (function_arg): Adjust call to function_arg_union_value.
951         (function_value): Likewise.
952
953         * config/sparc/sparc.c (sparc_function_epilogue): Properly format.
954
955 2004-06-07  Roger Sayle  <roger@eyesopen.com>
956
957         * real.c (real_copysign): New function to implement libm's copysign.
958         * real.h (real_copysign): Prototype here.
959         * fold-const.c (tree_expr_nonnegative_p): The result of sqrt, sqrtf
960         and sqrtl can be negative, as sqrt(-0.0) = -0.0.  Correct whitespace.
961         * builtins.c (fold_builtin_isascii, fold_builtin_toascii,
962         fold_builtin_isdigit): Add function prototypes.
963         (fold_builtin_copysign): New function to fold copysign, copysignf
964         and copysignl.  Optimize copysign(x,x) as x.  Evaluate copysign of
965         constant arguments at compile-time using real_copysign.  Fold
966         copysign(X,Y) as fabs(X) if Y is always non-negative.
967         (fold_builtin_1): Correct minor whitespace/style issues.  Call
968         fold_builtin_copysign for BUILT_IN_COPYSIGN{,F,L}.
969
970 2004-06-07  J"orn Rennecke <joern.rennecke@superh.com>
971
972         * tree.c (iterative_hash_expr): Use real_hash.
973
974 2004-06-07  Joseph S. Myers  <jsm@polyomino.org.uk>
975
976         PR c/14765
977         * c-parse.in (compstmt_primary_start): Set last_expr_type to
978         NULL_TREE.
979
980 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
981
982         PR c++/15815
983         * doc/extend.texi: Deprecate #pragma interface and #pragma
984         implementation.
985
986 2004-06-07  Alexandre Oliva  <aoliva@redhat.com>
987
988         PR middle-end/15666
989         * c-decl.c (finish_decl): Use change_decl_assembler_name for the
990         builtin decl as well.
991
992 2004-06-07  Roger Sayle  <roger@eyesopen.com>
993
994         PR c/14649
995         * c-typeck.c (require_constant_value, require_constant_elements):
996         Move declarations to the top of the file.
997         (build_function_call): If we require a constant value, fold with
998         fold_initializer.  If the result is a constant, and the function
999         wasn't called using __builtin_foo, issue a pedantic warning.
1000         (build_unary_op): If we require a constant value, fold tree with
1001         fold_initializer.
1002         (build_binary_op): Use require_constant_value to determine whether
1003         to call fold or fold_initializer.
1004
1005 2004-06-07  Richard Henderson  <rth@redhat.com>
1006
1007         * gimple-low.c (struct lower_data): Add the_return_label and
1008         one_return_stmt.
1009         (lower_function_body): Initialize and use them.
1010         (lower_return_expr): New.
1011         (lower_stmt): Call it.
1012         * gimplify.c (gimplify_return_expr): Force the argument to be either
1013         null or a result_decl.
1014         * tree-gimple.c: Update gimple grammer to match.
1015         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Deny
1016         coalescing of result_decls.
1017
1018 2004-06-07  Richard Henderson  <rth@redhat.com>
1019
1020         PR rtl-opt/15193
1021         * expmed.c (extract_bit_field): Fix vector_extract return.
1022
1023         * config/i386/i386.md (negv4sf2): New pattern.
1024
1025 2004-06-07  Mark Mitchell  <mark@codesourcery.com>
1026
1027         PR c++/15337
1028         * c-common.c (c_sizeof_or_alignof_type): Use more detailed error
1029         message.
1030
1031 2004-06-06  Paolo Bonzini  <bonzini@gnu.org>
1032
1033         * config.in: Regenerate.
1034
1035 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1036
1037         * tree-cfg.c (tree_verify_flow_info): Make sure that labels in
1038         SWITCH_LABELS are always sorted.
1039
1040 2004-06-06  Steven Bosscher  <stevenb@suse.de>
1041
1042         * hooks.c (hook_int_void_1): New generic hook.
1043         * hooks.h (hook_int_void_1): Add prototype.
1044         * config/c4x/c4x.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE):
1045         Define to hook_int_void_1.
1046         * config/c4x/c4x.md: Replace dummies for the old pipeline model
1047         with dummies for the new one.
1048
1049 2004-06-06  Roger Sayle  <roger@eyesopen.com>
1050
1051         * tree.h (lvalue_or_else): Delete function prototype.
1052         * c-typeck.c (lvalue_or_else): Make static.  Add static prototype.
1053
1054 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1055
1056         PR target/14542
1057         * config/m68hc11/m68hc11.md (move peephole2): Emit a use note to avoid
1058         a live change of a register after peephole replacement.
1059
1060 2004-06-06  Joseph S. Myers  <jsm@polyomino.org.uk>
1061
1062         PR c/13519
1063         * c-typeck.c (composite_type, common_pointer_type): New functions.
1064         (common_type): Split parts into composite_type and
1065         common_pointer_type.  Ensure that arithmetic operations return
1066         unqualified types without attributes.  Don't make composite type
1067         of signed enum and compatible integer be unsigned.
1068         (build_conditional_expr, build_binary_op): Use
1069         common_pointer_type.
1070         * c-decl.c (merge_decls): Use composite_type.
1071         * c-tree.h (composite_type): Declare.
1072
1073 2004-06-06  Stephane Carrez  <stcarrez@nerim.fr>
1074
1075         PR target/14457
1076         * config/m68hc11/m68hc11.c (splitable_operand): New predicate.
1077         * config/m68hc11/m68hc11-protos.h (splitable_operand): Declare.
1078         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register it.
1079         (inhibit_libc): Must define.
1080         * config/m68hc11/m68hc11.md ("movhi_const0"): Use splitable_operand.
1081         ("*andhi3_gen", "iorhi3", "*iorhi3_gen"): Likewise.
1082         ("xorhi3"): Likewise.
1083
1084 2004-06-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1085
1086         * cgraphunit.c (cgraph_decide_inlining): Adjust dump lines in
1087         always_inline pass.
1088
1089 2004-06-05  David S. Miller  <davem@nuts.davemloft.net>
1090
1091         * config/sparc/linux.h (TARGET_C99_FUNCTIONS): Set.
1092         * config/sparc/linux64.h (TARGET_C99_FUNCTIONS): Likewise.
1093
1094 2004-06-05  Bernardo Innocenti  <bernie@develer.com>
1095
1096         * regclass.c (init_reg_sets): Check for missing registers in target
1097         initializer macros FIXED_REGISTERS and CALL_USED_REGISTERS.
1098
1099 2004-06-05  Zack Weinberg  <zack@codesourcery.com>
1100
1101         * Makefile.in (MKDEPS_H): New shorthand.
1102         (c-opts.o): Update dependencies.
1103         * c-opts.c: Include mkdeps.h.
1104         (handle_deferred_opts): Use cpp_get_deps and deps_add_target,
1105         not cpp_add_dependency_target.
1106
1107 2004-06-05  Steven Bosscher  <stevenb@suse.de>
1108
1109         * config/v850/v850.c (v850_use_dfa_pipeline_interface): New.
1110         * config/v850/v850.md: Convert to DFA scheduler description.
1111
1112 2004-06-05  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
1113
1114         PR fortran/15478
1115         * doc/install.texi: Document GMP as prerequisite. Document
1116         --with-gmp and --with-gmp-dir configure options.
1117         * fortran/gfortran.texi: Remove section "Compiling and testing",
1118         remove TOC reference to it.
1119
1120 2004-06-05  Graham Stott  <graham.stott@btinternet.com>
1121
1122         * combine.c(simplify_shift_const): Check shift amount is a
1123         CONST_INT.
1124
1125 2004-06-05  Danny Smith  <dannysmith@users.sourceforge.net>
1126
1127         * toplev.c (init_asm_output): Add explicit 'b' to mode when
1128         opening asm_out_file.
1129         * c-pch.c (c_common_write_pch): Remove unnecessary fflush before
1130         reading asm_out_file. Replace fflush after reading asm_out_file
1131         with fseek.
1132         * hosthooks-def.h (HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY): Define
1133         default and add to HOST_HOOKS_INITIALIZER.
1134         * hosthooks.h (gt_pch_alloc_granularity): Declare hook function.
1135         * ggc-common.c (default_gt_pch_alloc_granularity): New function.
1136         (gt_pch_save): Use host_hooks.gt_pch_alloc_granularity
1137         to set mmi.offset padding.
1138          * config.gcc (i[34567]86-*-mingw32*): Set target_gtfiles to
1139         $(srcdir)/config/i386/winnt.c.
1140         (i[34567]86-*-pe | i[34567]86-*-cygwin*): Likewise.
1141         (i[34567]86-*-uwin*): Likewise.
1142         *i[34567]86-*-interix3*): Likewise.
1143         * config.host (i[34567]86-*-mingw32*): Set out_host_hook_obj.
1144         * config/i386/host-mingw32.c: New file.
1145         * config/i386/x-mingw32: Add rule for host-mingw32.o.
1146         * config/i386/winnt.c: (struct extern_list) Tag as GTY.
1147         (extern_head): Likewise.
1148         (struct export_list) Likewise.
1149         (export_head): Likewise.
1150         (i386_pe_record_external_function): Use ggc_alloc.
1151         (i386_pe_record_exported_symbol): Likewise.
1152         Include "gt-winnt.h" at end.
1153         * doc/hostconfig.texi: Document
1154         HOST_HOOKS_GT_PCH_ALLOC_GRANULARITY.
1155
1156 2004-06-04  Bernardo Innocenti  <bernie@develer.com>
1157
1158         * config/m68k/m68k.h: Remove comments copied over from tm.texi.
1159         Rename 68000 and 68k to m68k for consistency in comments.  Remove
1160         trailing whitespace before EOLs and before TABs.
1161         (MAX_CODE_ALIGN): Remove unused macro.
1162         (CALL_USED_REGISTERS): Reformat and add comments.
1163
1164 2004-06-04  Frank Ch. Eigler  <fche@redhat.com>
1165
1166         * gcc.c (MFLIB_SPEC): Remove library references, to require users
1167         to enumerate -lmudflap* and dependencies when linking.
1168
1169 2004-06-04  Paolo Bonzini  <bonzini@gnu.org>
1170
1171         PR target/15822
1172         * dojump.c (do_jump): Fix uninitialized variable tcode1.
1173
1174 2004-06-04  Jerry Quinn  <jlquinn@optonline.net>
1175
1176         * Makefile.in (insn-conditions.o): Back out removal of reload.h.
1177         * genconditions.c (write_header): Back out removal of reload.h.
1178
1179 2004-06-04  Jan Hubicka  <jh@suse.cz>
1180
1181         Re-apply hopefully fixed patch:
1182         * i386.md (UNSPECV_EH_RETURN): Kill.
1183         (eh_return): Use jump_insn.
1184         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1185
1186 2004-06-04  Jeff Law  <law@redhat.com>
1187
1188         * cfgrtl.c (try_redirect_by_replacing_jump): Fix return value.
1189
1190 2004-06-04  Steven Bosscher  <stevenb@suse.de>
1191
1192         * except.c (for_each_eh_region): New function.
1193         * except.h (for_each_eh_region): Add a prototype for it.
1194         * tree-cfg.c (update_eh_labels): New function, callback for
1195         for_each_eh_region.
1196         (label_for_bb): Make global static, unfortunately.
1197         (cleanup_dead_labels): Also update label references for
1198         exception regions.
1199
1200 2004-06-03  Chris Demetriou  <cgd@broadcom.com>
1201
1202         * config/mips/mips.c (struct irix_section_align_entry): Fix
1203         GTY marker.
1204
1205 2004-06-03  Geoffrey Keating  <geoffk@apple.com>
1206
1207         * toplev.c (check_global_declarations): Don't ask for
1208         DECL_ASSEMBLER_NAME unless the function really is declared
1209         static and not defined.
1210
1211 2004-06-03  Matt Austern  <austern@apple.com>
1212
1213         PR c++/15428
1214         * default.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New name
1215         for TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, with reversed sense.
1216         * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Likewise.
1217         * doc/tm.texi (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): Rewrite
1218         documentation to reflect the new macro name and to clarify its
1219         meaning.
1220
1221 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1222
1223         * rtl.def (VAR_LOCATION): Make RTX_EXTRA.
1224
1225 2004-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1226
1227         * config/darwin.c (machopic_indirect_data_reference): Copy
1228         the SYMBOL_REF_DECL from the original RTX for the new
1229         non-lazy pointer RTX.
1230
1231 2004-06-03  Mark G. Adams  <mark.g.adams@sympatico.ca>
1232
1233         * tree.h: Remove include of version.h
1234         * c-cppbuiltin.c: Include version.h
1235         * diagnostic.c: Include version.h
1236         * dwarf2out.c: Include version.h
1237         * toplev.c: Include version.h
1238         * vmsdbgout.c: Include version.h
1239         * Makefile.in: Remove dependency on version.h from TREE_H, and
1240         add dependencies to required .o targets
1241
1242 2004-06-03  Jerry Quinn  <jlquinn@optonline.net>
1243
1244         * Makefile.in (RA_H, RESOURCE_H, SCHED_INT_H, CFGLAYOUT_H,
1245         CFGLOOP_H, DF_H, DDG_H, TREE_SSA_LIVE_H): New.
1246         (TARGET_H): Add insn-modes.h.
1247         (tree-ssa.o, tree-cfg.o, tree-ssa-loop.o, toplev.o, passes.o,
1248         loop.o, loop-doloop.o, unroll.o, cfgloop.o, cfgloopanal.o,
1249         loop-iv.o, cfgloopmanip.o, loop-init.o, loop-unswitch.o,
1250         loop-unroll.o, ddg.o, modulo-sched.o, predict.o,
1251         cfglayout.o, ifcvt.o): Replace cfgloop.h with CFGLOOP_H.
1252         (toplev.o, passes.o, cfghooks.o, cfgloopmanip.o, loop-init.o,
1253         loop-unswitch.o, loop-unroll.o, ddg.o, modulo-sched.o,
1254         bb-reorder.o, tracer.o, cfglayout.o): Replace cfglayout.h with
1255         CFGLAYOUT_H.
1256         (ra.o, ra-build.o, ra-colorize.o, ra-debug.o, ra-rewrite.o):
1257         Replace ra.h with RA_H.
1258         (resource.o, regrename.o, insn-conditions.o, insn-emit.o,
1259         insn-recog.o): Replace resource.h with RESOURCE_H.
1260         (ddg.o, modulo-sched.o, haifa-sched.o, sched-deps.o, sched-rgn.o,
1261         sched-ebb.o, sched-vis.o, out_object_file):  Replace sched-int.h
1262         with SCHED_INT_H.
1263         (web.o, lcm.o, df.o, ra.o, ra-build.o, ra-colorize.o, ra-debug.o,
1264         ra-rewrite.o): Replace df.h with DF_H.
1265         (ddg.o, modulo-sched.o): Replace ddf.h with DDG_H.
1266         (tree-outof-ssa.o, tree-ssa-live.o, tree-ssa-copyrename.o):
1267         Replace tree-ssa-live.h with TREE_SSA_LIVE_H.
1268         (insn-conditions.o): Remove unused reload.h.
1269         * cfglayout.h: Add include guard.  Include basic-block.h.
1270         * cfgloop.h: Add include guard.  Include basic-block.h, rtl.h.
1271         * ddg.h: Include sbitmap.h, basic-block.h, df.h.
1272         * df.h: Add include guard.  Include bitmap.h, sbitmap.h,
1273         basic-block.h.
1274         * genconditions.c:  Remove reload.h.
1275         * ra.h: Add include guard.  Include bitmap.h, sbitmap.h,
1276         hard-reg-set.h, insn-modes.h.
1277         * resource.h: Add include guard.  Include hard-reg-set.h.
1278         * sched-int.h:  Add include guard.  Include insn-attr.h,
1279         basic-block.h, rtl.h.
1280         * target.h: Add include guard.  Include insn-modes.h.
1281         * tree-ssa-live.h: Include partition.h.
1282
1283 2004-06-03  Daniel Berlin  <dberlin@dberlin.org>
1284                 Kenneth Zadeck <zadeck@naturalbridge.com>
1285
1286         * tree-ssa-ccp.c (varying_ssa_edges): New worklist.
1287         (add_var_to_ssa_edges_worklist): Add value argument.
1288         Update callers.
1289         Use new worklist.
1290         (process_ssa_edge_worklist): New function.
1291         (tree_ssa_ccp): Move worklist processing core to
1292         process_ssa_edge_worklist, and just call that for the two worklists.
1293
1294 2004-06-03  Steven Bosscher  <stevenb@suse.de>
1295
1296         * basic-block.c (tail_recursion_label_list): Don't declare.
1297         (CLEANUP_PRE_SIBCALL): Remove.  Renumber the other CLEANUP_*
1298         accordingly.
1299         * cfgbuild.c (find_label_refs): Remove.
1300         (find_basic_blocks_1): Don't handle CALL_PLACEHOLDER insns.
1301         * cfgcleanup.c (tail_recursion_label_p): Remove.
1302         (merge_blocks_move): Do not check for tail recursion.
1303         (try_optimize_cfg): Likewise.
1304         (cleanup_cfg): Never handle CLEANUP_PRE_SIBCALL.
1305         * cfgrtl.c (tail_recursion_label_list): Remove.
1306         * except.c (remove_unreachable_regions): Don't handle
1307         CALL_PLACEHOLDER insns.
1308         (convert_from_eh_region_ranges_1, can_throw_internal,
1309         can_throw_external): Likewise.
1310         * function.c (free_after_compilation): Don't clear
1311         x_tail_recursion_label.
1312         (fixup_var_refs_insns): Don't handle CALL_PLACEHOLDER insns.
1313         (identify_blocks_1): Don't recurse for CALL_PLACEHOLDER insns.
1314         (reorder_blocks_1): Likewise.
1315         * function.h (struct function): Remove x_tail_recursion_label
1316         member.  Don't define tail_recursion_label.
1317         * jump.c (mark_all_labels): Don't handle CALL_PLACEHOLDER insns.
1318         * print-rtl.c (print_rtx): Likewise.
1319         * rtl.def (CALL_PLACEHOLDER): Remove.
1320         * rtl.h (sibcall_use_t): Remove enum.
1321         (optimize_sibling_and_tail_recursive_calls,
1322         replace_call_placeholder): Remove function prototypes.
1323         * stmt.c (tail_recursion_args): Remove.
1324         (optimize_tail_recursion): Remove.
1325         (expand_return): Don't check for possible tail recursion.
1326         * tree.h (optimize_tail_recursion): Remove prototype.
1327
1328 2004-06-02  Jan Hubicka  <jh@suse.cz>
1329
1330         * tree-cfg.c (tree_find_edge_insert_loc):  Allow inserting before
1331         return_stmt.
1332
1333 2004-06-02  Jason Merrill  <jason@redhat.com>
1334
1335         * Makefile.in (TAGS): Don't mess with c-parse.[ch].
1336         Do include c-parse.in.
1337
1338 2004-06-02  Eric Christopher  <echristo@redhat.com>
1339
1340         * c-typeck.c (common_type): Don't lose type qualifiers
1341         when creating new variants.
1342
1343 2004-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
1344
1345         PR tree-optimization/14042
1346         PR tree-optimization/14729
1347         PR tree-optimization/14736
1348         * tree-ssa.c (tree_ssa_useless_type_conversion_1):
1349         Check the type which the pointer points to
1350         instead of the pointer types.
1351
1352 2004-06-02  Kazu Hirata  <kazu@cs.umass.edu>
1353
1354         PR tree-optimization/15738.
1355         * builtins.c (fold_builtin_strchr): Transform
1356         strrchr (s, '\0') to strchr (s, '\0').
1357
1358 2004-06-02  Steven Bosscher  <stevenb@suse.de>
1359
1360         * i386.c (ix86_adjust_cost): Don't increase the cost for
1361         load+operation for PROCESSOR_PENTIUMPRO, it is already
1362         modelled in the DFA description
1363
1364 2004-06-01  Jerry Quinn  <jlquinn@optonline.net>
1365
1366         * Makefile.in (EXPR_H): Add insn-config.h, function.h,
1367         $(RTL_H), flags.h, $(TREE_H), $(MACHMODE_H), $(EXPR_H).
1368         (ALIAS_H, EMIT_RTL_H): New.
1369         (cselib.o): Replace EXPR_H with EMIT_RTL_H.
1370         (cfgcleanup.o): Add EMIT_RTL_H.
1371         (alias.o): Replace EXPR_H with EMIT_RTL_H and ALIAS_H.
1372         * alias.c: Replace expr.h with emit-rtl.h and alias.h.
1373         * attribs.c, c-lex.c, c-obj-common.c, c-semantics.c: Remove expr.h.
1374         * cfgcleanup.c, cselib.c: Replace expr.h with emit-rtl.h.
1375         * expr.h: Add include guard.  Include function.h, rtl.h, flags.h,
1376         tree.h, machmode.h, insn-config.h, alias.h, emit-rtl.h.
1377         (get_varargs_alias_set, get_frame_alias_set, record_base_value,
1378         record_alias_subset, new_alias_set, can_address_p): Move to alias.h.
1379         (set_mem_alias_set, set_mem_align, set_mem_expr, set_mem_offset,
1380         set_mem_size): Move to emit-rtl.h.
1381         * emit-rtl.h: New.
1382         * alias.h: New.
1383
1384 2004-06-01  Eric Botcazou  <ebotcazou@act-europe.fr>
1385
1386         * function.c (walk_fixup_memory_subreg): New parameter 'var'.
1387         Call fixup_memory_subreg only if the MEM is equal to 'var'.
1388         Adjust recursive calls to self.
1389         (fixup_var_refs_insn): Pass 'var' to walk_fixup_memory_subreg.
1390
1391 2004-06-01  Richard Henderson  <rth@redhat.com>
1392             Andrew Pinski  <pinskia@physics.uc.edu>
1393
1394         * c-parse.in (OFFSETOF, offsetof_member_designator): New.
1395         (primary): Handle offsetof.  Add error productions for faux functions.
1396         Move component_ref objc checking to build_component_ref.
1397         (reswords): Add offsetof.
1398         (rid_to_yy): Add offsetof.
1399         * c-tree.h (build_offsetof): Declare.
1400         * c-common.h (objc_is_public): Declare.
1401         * c-typeck.c (build_component_ref): Check objc_is_public.
1402         (build_offsetof): New.
1403         * stub-objc.c (objc_is_public): New.
1404         * objc/objc-act.c, objc/objc-act.h (objc_is_public): Rename
1405         from is_public.
1406         * ginclude/stddef.h (offsetof): Use __builtin_offsetof.
1407         * doc/extend.texi (Offsetof): Move from C++ section to C section
1408         and rewrite for __builtin_offsetof.
1409
1410 2004-06-01  Peter Barada  <peter@the-baradas.com>
1411             Peter Jakubek  <peter@laseranimation.com>
1412
1413         * config/m68k/m68k.c(m68k_output_mi_thunk):  For ColdFire, use %d0 as
1414         a scratch to perform an add to memory.
1415
1416 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1417
1418         PR target/14018
1419         * config/m68k/m68k.c (m68k_align_loops_string, m68k_align_jumps_string,
1420         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1421         m68k_align_funcs): Remove.
1422         (override_options): Remove code to handle -malign-* options.
1423         * config/m68k/m68k.h (TARGET_OPTIONS): Remove -malign-* options.
1424         (FUNCTION_BOUNDARY, LOOP_ALIGN, LOOP_ALIGN_AFTER_BARRIER): Remove.
1425         (m68k_align_loops_string, m68k_align_jumps_string,
1426         m68k_align_funcs_string, m68k_align_loops, m68k_align_jumps,
1427         m68k_align_funcs): Remove definitions.
1428
1429 2004-06-01  Paul Eggert  <eggert@cs.ucla.edu>
1430
1431         PR target/15626
1432         * doc/install.texi (sparc-sun-solaris2*): Document messages issued
1433         by the Sun linker in conjunction with the Sun assembler.
1434         (sparc-sun-solaris2.7): Update revision info for Sun patch 106950.
1435
1436 2004-06-01  Jeff Law  <law@redhat.com>
1437
1438         * stmt.c (expand_decl): Be more selective about calling
1439         mark_reg_pointer.
1440
1441 2004-06-01  Nicola Pero  <nicola@brainstorm.co.uk>
1442
1443         PR objc/7993
1444         * objc-act.c (is_private): Do not emit the 'instance variable %s
1445         is declared private' error.
1446         (is_public): Emit the error after calling is_private.
1447         (lookup_objc_ivar): If the instance variable is private, return 0
1448         - the instance variable is invisible here.
1449
1450 2004-06-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1451
1452         * doc/invoke.texi (-static-libgcc): Explicitly mention
1453         non-GNU linkers.
1454
1455 2004-06-01  Bernardo Innocenti  <bernie@develer.com>
1456
1457         PR target/12968
1458         * doc/invoke.texi: Document stack alignment side-effect of -mshort.
1459
1460 2004-05-31  Joseph S. Myers  <jsm@polyomino.org.uk>
1461
1462         PR c/15749
1463         * c-decl.c (grokdeclarator, finish_struct): Don't pedwarn for
1464         misuses of structures with flexible array members if
1465         in_system_header.
1466
1467 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1468
1469         PR target/15693
1470         * config/sparc/sparc.c (compare_operand): New predicate.
1471         * config/sparc/sparc.h (PREDICATE_CODES): Add it.
1472         * config/sparc/sparc.md (cmpsi expander): Use it.  If the first
1473         operand is a ZERO_EXTRACT and the second operand is not zero,
1474         force the former to a register.
1475         (cmpdi expander): Likewise.
1476
1477 2004-05-31  Geoffrey Keating  <geoffk@apple.com>
1478
1479         * gengtype-lex.l: Catch stray GTY markers in the files gengtype
1480         looks at.
1481         * alias.c (alias_invariant_size): Make alias_invariant_size
1482         static, fix GTY marker.
1483
1484 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1485
1486         PR tree-optimization/15743.
1487         * builtins.c (fold_builtin_1): Fold index() and rindex().
1488
1489 2004-05-31  Roger Sayle  <roger@eyesopen.com>
1490
1491         PR middle-end/15069
1492         * fold-const.c (fold_single_bit_test): Only perform "(X & C) != 0"
1493         into "X < 0" (where C is the signbit) if X's type is a full mode.
1494
1495 2004-05-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1496
1497         * pa.md: Disable the peephole2 patterns that generate indexed
1498         floating-point stores when indexing is disabled.
1499
1500 2004-05-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1501
1502         * c-pretty-print.c (pp_c_left_bracket): Make a function.
1503         (pp_c_right_bracket): Likewise.
1504         (pp_c_star): Likewise.
1505         (pp_c_ampersand): Define.
1506         * c-pretty-print.h (pp_c_left_bracket): Declare.
1507         (pp_c_right_bracket): Likewise.
1508         (pp_c_star): Likewise.
1509         (pp_c_ampersand): Likewise.
1510
1511 2004-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1512
1513         * config/sol2.h (__enable_execute_stack): ANSIfy function
1514         definition.
1515
1516 2004-05-31  Danny Smith  <dannysmith@users.sourceforge.net>
1517
1518         * c-incpath.c (add_path): Canonicalize paths to use '/' if
1519         HAVE_DOS_BASED_FILESYSTEM.
1520
1521 2004-05-31  Steven Bosscher  <stevenb@suse.de>
1522
1523         * tree-ssa-dom.c (record_equivalences_from_incoming_edge):
1524         Only look at case labels if the immediate dominator is also
1525         the only predecessor.  Don't look for more case labels if the
1526         first seen is a case range.
1527
1528 2004-05-31  Kazu Hirata  <kazu@cs.umass.edu>
1529
1530         * builtins.c: Add a prototype for fold_builtin_strchr().
1531
1532 2004-05-31  Paolo Bonzini  <bonzini@gnu.org>
1533
1534         Revert this patch:
1535         2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1536
1537         * combine.c (gen_binary): Remove.
1538         (known_cond, simplify_shift_const
1539         find_split_point, combine_simplify_rtx,
1540         simplify_if_then_else, simplify_set,
1541         simplify_logical, expand_field_assignment,
1542         extract_left_shift, force_to_mode,
1543         if_then_else_cond, apply_distributive_law,
1544         simplify_and_const_int, simplify_shift_const,
1545         gen_lowpart_for_combine, simplify_comparison,
1546         reversed_comparison): Replace with
1547         simplify_gen_binary, simplify_gen_relational or
1548         distribute_and_simplify_rtx.
1549         (distribute_and_simplify_rtx): New function.
1550
1551 2004-05-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1552
1553         * pa.c (emit_move_sequence): Fix loading of non 14-bit CONST operands
1554         when generating PIC code.
1555
1556 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1557
1558         * c-decl.c (c_expand_body_1): Remove and fold back into ...
1559         (c_expand_body): here.
1560         (c_expand_decl): Move to ...
1561         * c-common.c (c_expand_decl): Here and remove check for nested
1562         functions.
1563         * c-common.h (c_expand_decl): Add prototype.
1564         * c-tree.h (c_expand_decl): Remove.
1565
1566 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1567
1568         * fold-const.c (combine_comparisons, optimize_bit_field_compare,
1569         range_binop, fold_truthop, fold_binary_op_with_conditional_arg,
1570         fold_mathfn_compare, fold_inf_compare, fold,
1571         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
1572         Use constant_boolean_node where appropriate.  Don't bother using
1573         fold_convert on the second argument to omit_one_operand.
1574
1575 2004-05-30  Roger Sayle  <roger@eyesopen.com>
1576
1577         * doc/c-tree.texi (Expressions): Document FLOOR_DIV_EXPR,
1578         CEIL_DIV_EXPR, ROUND_DIV_EXPR, FLOOR_MOD_EXPR, CEIL_MOD_EXPR,
1579         ROUND_MOD_EXPR, EXACT_DIV_EXPR.  Improve documentation of
1580         TRUNC_DIV_EXPR, TRUNC_MOD_EXPR and comparison operations.
1581         Add missing (but documented) tree nodes to the index.
1582
1583 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1584
1585         PR tree-optimization/14819
1586         * builtins.c (fold_builtin_strchr): New.
1587         (fold_builtin_1): Handle BUILT_IN_STRCHR and BUILT_IN_STRRCHR
1588         with fold_builtin_strchr().
1589
1590 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1591
1592         * bb-reorder.c, builtins.c, c-common.c, c-gimplify.c,
1593         c-incpath.c, cgraphunit.c, ddg.c, defaults.h, dwarf2out.c,
1594         expmed.c, flags.h, gcc.c, gensupport.c, gimplify.c, global.c,
1595         passes.c, reg-stack.c, target.h, toplev.c, tree-alias-ander.c,
1596         tree-alias-common.c, tree-cfg.c, tree-complex.c, tree-dfa.c,
1597         tree-eh.c, tree-mudflap.c, tree-mudflap.h, tree-outof-ssa.c,
1598         tree-phinodes.c, tree-pretty-print.c, tree-ssa-alias.c,
1599         tree-ssa-ccp.c, tree-ssa-live.c, tree-ssa-live.h,
1600         tree-ssa-pre.c, tree.h, value-prof.h, varasm.c: Fix comment
1601         formatting.
1602
1603 2004-05-30  Steven Bosscher  <stevenb@suse.de>
1604
1605         * gimplify.c (sort_case_labels): New.  Split out from...
1606         (gimplify_switch_expr): ...here.  Use it.
1607         * tree-eh.c (lower_try_finally_switch): Sort the labels of
1608         the SWITCH_EXPR created here before leaving the function.
1609         * tree.c (sort_case_labels): Add prototype.
1610
1611 2004-05-30  Andrew Pinski  <pinskia@physics.uc.edu>
1612
1613         * fold-const.c (fold) [case TRUTH_NOT_EXPR]: Make sure the type is
1614         of BOOLEAN_TYPE.
1615
1616 2004-05-30  Kazu Hirata  <kazu@cs.umass.edu>
1617
1618         * c-common.c, calls.c, cfgcleanup.c, cgraph.c, cgraphunit.c,
1619         ddg.c, ddg.h, df.c, df.h, except.c, expr.c, flags.h,
1620         fold-const.c, gcc.c, gimplify.c, haifa-sched.c,
1621         modulo-sched.c, tree-inline.c, tree-into-ssa.c, tree-nested.c,
1622         tree-nrv.c, tree-ssa-ccp.c, tree-ssa-dom.c, tree-ssa-live.c,
1623         tree-ssa-loop.c, tree-ssa-pre.c, tree-tailcall.c, tree.h: Fix
1624         comment typos.  Follow spelling conventions.
1625
1626 2004-05-29  Geoffrey Keating  <geoffk@apple.com>
1627
1628         * gengtype-yacc.y: Add NESTED_PTR token.
1629         (option): Record `nested_ptr' option.
1630         * gengtype-lex.l: Handle `nested_ptr' keyword.
1631         * gengtype.c (walk_type): Process `nested_ptr' option.
1632         * gengtype.h (struct nested_ptr_data): New.
1633         * doc/gty.texi (GTY Options): Document `nested_ptr' option.
1634         * stringpool.c (struct string_pool_data): Make 'entries' point to
1635         ht_identifier instead of tree.
1636         (gt_pch_save_stringpool): Don't adjust pointers.
1637         (gt_pch_restore_stringpool): Call ht_load.
1638
1639 2004-05-29  Jason Merrill  <jason@redhat.com>
1640
1641         * gimplify.c (gimplify_expr): Don't build a statement list
1642         if no gimplification was necessary.
1643
1644 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1645
1646         * pretty-print.c (pp_base_format_text): Support %< instead of %`
1647         and %> as well as %'.
1648         * c-format.c: Use %< and %>.
1649         (gcc_diag_char_table, gcc_cdiag_char_table,
1650         gcc_cxxdiag_char_table): Update.
1651
1652 2004-05-29  Joseph S. Myers  <jsm@polyomino.org.uk>
1653
1654         * c-typeck.c (common_type): Correct comment.
1655
1656 2004-05-29  Peter Barada  <peter@the-baradas.com>
1657
1658         * config/m68k/m68k.c (CONST_METHOD): Add MVZ, MVS.
1659         * config/m68k/m68k.c (const_method): Likewise.
1660         * config/m68k/m68k.c (const_int_cost): Likewise.
1661         * config/m68k/m68k.c (const_int_cost): Likewise.
1662         * config/m68k/m68k.c (output_move_const_into_data_reg): Likewise.
1663
1664 2004-05-29  Peter Barada  <peter@the-baradas.com>
1665
1666         * config/m68k/m68k.h (EXTRA_CONSTRAINT): add 'U' for register offset
1667         addressing.
1668         * config/m68k/m68k.md: Add 'U,U' alternative to ColdFire variants of
1669         movsi,movhi,movqi insn patterns.
1670
1671 2005-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1672
1673         * c-semantics.c (emit_local_var): Remove code for DECL_INITIAL.
1674
1675         PR target/15720
1676         * config/darwin.c (machopic_indirect_call_target): Copy
1677         the SYMBOL_REF_DECL from the original RTX for the new
1678         stub RTX.
1679
1680 2004-05-28  DJ Delorie  <dj@redhat.com>
1681
1682         * stor-layout.c (place_field): Revert erroneous commit.
1683
1684 2004-05-28  Ziemowit Laski  <zlaski@apple.com>
1685
1686         * config/rs6000/altivec.h (vec_ctf, vec_vcfsx, vec_vcfux, vec_cts,
1687         vec_ctu, vec_dss, vec_dst, vec_dstst, vec_dststt, vec_dstt, vec_ld,
1688         vec_ldl, vec_lvsl, vec_lvsr, vec_sld, vec_splat, vec_vspltw,
1689         vec_vsplth, vec_vspltb, vec_splat_s8, vec_splat_s16, vec_splat_s32,
1690         vec_splat_u8, vec_splat_u16, vec_splat_u32, vec_st, vec_stl,
1691         vec_ste): Remove type checks for integral parameters and literals
1692         from '..._args_eq' macros.
1693
1694 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1695
1696         * c-common.c (fname_as_string): Fix xcalloc to xmalloc.
1697
1698 2004-05-28  Aldy Hernandez  <aldyh@redhat.com>
1699
1700         * testsuite/g++.dg/charset/function.cc: New.
1701
1702         * testsuite/gcc.dg/charset/function.c: New.
1703
1704         * c-decl.c (c_make_fname_decl): Free return value from
1705         fname_as_string.
1706
1707         * cp/decl.c (cp_make_fname_decl): Free return value from
1708         fname_as_string.
1709
1710         * c-common.c (fname_as_string): Translate if necessary.
1711
1712 2004-05-28  Geoffrey Keating  <geoffk@apple.com>
1713
1714         * stringpool.c: Add comments to PCH saving/restoring routines.
1715
1716 2004-05-28  Andrew Pinski  <pinskia@physics.uc.edu>
1717
1718         * c-common.c (c_estimate_num_insns_1): Kill.
1719         (c_estimate_num_insns): Kill.
1720         * c-common.h (c_estimate_num_insns): Kill.
1721
1722         * gthr-posix.h: Check for _POSIX_PRIORITY_SCHEDULING
1723         when checking for _POSIX_THREAD_PRIORITY_SCHEDULING.
1724         Remove comment about not checking for
1725         _POSIX_PRIORITY_SCHEDULING.
1726         * gthr-posix.c: Likewise.
1727
1728 2004-05-28  Paolo Bonzini  <bonzini@gnu.org>
1729             Roger Sayle  <roger@eyesopen.com>
1730
1731         PR rtl-optimization/15649
1732         Add LTGT_EXPR and improve pretty-printing of unordered
1733         comparisons.
1734         * c-common.c (c_common_truthvalue_conversion):
1735         Handle LTGT_EXPR.
1736         * c-typeck.c (build_binary_op): Likewise.
1737         * dojump.c (do_jump): Likewise.
1738         * expr.c (expand_expr_real_1, do_store_flag): Likewise.
1739         * predict.c (tree_predict_by_opcode): Likewise.
1740         * real.c (real_compare): Likewise.
1741         * tree-cfg.c (verify_expr): Likewise.
1742         * tree-inline.c (estimate_num_insns_1): Likewise.
1743         * tree-pretty-print.c (dump_generic_node): Likewise.
1744         Handle ORDERED_EXPR, UNORDERED_EXPR.
1745         (op_symbol): Print unordered comparisons differently
1746         than ordered ones.
1747         * tree.def (LTGT_EXPR): New '<' tree code.
1748         * doc/c-tree.texi (Expressions): Document floating-point
1749         comparison nodes.
1750
1751         Fold comparisons between floating point values.
1752         * fold-const.c (enum comparison_code): New, from
1753         #define'd constants.  Define compcodes for unordered
1754         comparisons and for invalid transformations.
1755         (invert_tree_comparison): Add "honor_nans" parameter.
1756         (fold_truthop): Revamp to work on floating-point types too.
1757         (comparison_to_compcode): Support unordered comparisons.
1758         Use new enum comparison_code.
1759         (compcode_to_comparison): Likewise.
1760         (combine_compcodes): New function.
1761         (invert_truthvalue): Let invert_tree_comparison decide
1762         whether it is valid to fold the comparison.  Fold ORDERED
1763         and UNORDERED even if flag_unsafe_math_optimizations is off,
1764         and the remaining even if flag_unsafe_math_optimizations
1765         is off but we are under -fno-trapping-math.
1766         (fold_relational_const): Integer modes do not honor NaNs.
1767
1768 2004-05-28  Paul Brook  <paul@codesourcery.com>
1769
1770         * config/arm/arm.c (arm_output_epilogue): Remove redundant code.
1771
1772 2004-05-28  Paul Brook  <paul@codesourcery.com>
1773
1774         * config/arm/arm.c (thumb_force_lr_save): New function.
1775         (arm_get_frame_offsets, thumb_unexpanded_epilogue,
1776         thumb_output_function_prologue): Use it.
1777         (thumb_expand_prologue): Set lr_save_eliminated.
1778
1779 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1780
1781         * config/mips/mips.md (extendsidi2): Tie the source and destination
1782         of the register alternative.  Split it into nothing.
1783
1784 2004-05-28  Richard Sandiford  <rsandifo@redhat.com>
1785
1786         * rtl.h (skip_consecutive_labels): Declare.
1787         * emit-rtl.c (skip_consecutive_labels): New function.
1788         * reorg.c (relax_delay_slots, dbr_schedule): Use it.
1789         * jump.c (follow_jumps): Say what null return values mean.
1790
1791 2004-05-28  Kaz Kojima  <kkojima@gcc.gnu.org>
1792
1793         PR target/13250
1794         * config/sh/sh.md (rotlsi3): Use emit_move_insn.
1795
1796 2004-05-27  Kaz Kojima  <kkojima@gcc.gnu.org>
1797
1798         * config/sh/t-linux (SHLIB_MAPFILES): Use sh specific
1799         libgcc-std.ver.
1800         * config/sh/libgcc-std.ver: New file.
1801
1802 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1803
1804         * except.c: Revert change of 2004-05-26.
1805         * config/i386/i386.md: Revert change of 2004-05-27.
1806
1807 2004-05-27  Bryce McKinlay  <mckinlay@redhat.com>
1808
1809         * configure.ac: Remove --enable-tree-browser option.
1810         Define TREEBROWSER when ac_tree_checking is defined.
1811         * configure: Rebuilt.
1812
1813 2004-05-27  Olivier Hainque  <hainque@act-europe.fr>
1814
1815         * expr.c (store_constructor): Restore sanity check on
1816         the size of the type before clearing.
1817
1818 2004-05-27  Jan Hubicka  <jh@suse.cz>
1819
1820         * cfgbuild.c (control_flow_insn_p):  Notice noreturn call
1821
1822 2004-05-27  Paolo Bonzini  <bonzini@gnu.org>
1823
1824         * combine.c (gen_binary): Remove.
1825         (known_cond, simplify_shift_const
1826         find_split_point, combine_simplify_rtx,
1827         simplify_if_then_else, simplify_set,
1828         simplify_logical, expand_field_assignment,
1829         extract_left_shift, force_to_mode,
1830         if_then_else_cond, apply_distributive_law,
1831         simplify_and_const_int, simplify_shift_const,
1832         gen_lowpart_for_combine, simplify_comparison,
1833         reversed_comparison): Replace with
1834         simplify_gen_binary, simplify_gen_relational or
1835         distribute_and_simplify_rtx.
1836         (distribute_and_simplify_rtx): New function.
1837         * simplify-rtx.c (simplify_binary_operation):
1838         Use nonzero_bits to simplify ANDs where we are
1839         turning off bits already known to be off in OP0.
1840
1841 2004-05-27  Alan Modra  <amodra@bigpond.net.au>
1842
1843         PR target/14478
1844         * config/rs6000/rs6000.c (reg_or_neg_short_operand): Don't allow zero.
1845
1846 2004-05-27  Josef Zlomek  <zlomekj@suse.cz>
1847
1848         PR middle-end/14084
1849         * emit-rtl.c (gen_rtx_REG_offset): Adjust the offset according
1850         to size of decl.
1851
1852 2004-05-26  Aldy Hernandez  <aldyh@redhat.com>
1853
1854         PR/14924
1855         * config/rs6000/rs6000.c (spe_expand_stv_builtin): New.
1856
1857 2004-05-26  Roger Sayle  <roger@eyesopen.com>
1858
1859         * tree.h: Fix comment typo.
1860
1861 2004-05-27  Steven Bosscher  <stevenb@suse.de>
1862
1863         * gimplify.c (compare_case_labels): New function.
1864         (gimplify_switch_expr): Sort case labels, and make sure the
1865         last label in the label vector is the default case.
1866         * tree-cfg.c (group_case_labels): New function.
1867         (build_tree_cfg): Cleanup redundant labels and group case labels
1868         before creating edges.
1869         (cleanup_dead_labels): Handle GOTO_EXPRs.
1870         (find_case_label_for_value): Use a binary search to find the
1871         case label for the given value.
1872         * tree-gimple.c: Mention that labels are sorted, and that the
1873         last label must be the default.
1874
1875 2004-05-27  Jan Hubicka  <jh@suse.cz>
1876
1877         * cfgcleanup.c (try_optimize_cfg): Do not merge across jumptables.
1878
1879 2004-05-27  Jan Hubicka  <jh@suse.cz>
1880
1881         * i386.md (UNSPECV_EH_RETURN): Kill.
1882         (eh_return): Use jump_insn.
1883         (eh_return_si, eh_return_di): Change pattern to jump instruction.
1884
1885 2004-05-26  Jan Hubicka  <jh@suse.cz>
1886
1887         * cfgcleanup.c (try_forward_edges):  Do not check loop structure when
1888         not loop optimizing.
1889
1890 2004-05-26  Jan Hubicka  <jh@suse.cz>
1891
1892         * except.c (can_throw_internal):  Notice RESX instructions.
1893
1894 2004-05-26  Eric Botcazou  <ebotcazou@act-europe.fr>
1895
1896         * varasm.c (output_constant) <INTEGER_TYPE>: Pass the minimum
1897         of the two sizes to assemble_integer.
1898
1899 2004-05-25  Paul Brook  <paul@codesourcery.com>
1900
1901         * config/arm/arm.c (thumb_exit, thumb_unexpanded_epilogue): Remove
1902         pointless #ifdef.
1903
1904 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1905
1906         * Makefile.in (top_builddir): Define to .
1907
1908 2004-05-25  Alexandre Oliva  <aoliva@redhat.com>
1909
1910         * configure.ac (gcc_cv_ld): Prefer in-tree ld over whatever the
1911         top-level detects, except when in-tree ld is being cross-built.
1912         (gcc_cv_as): Likewise for as.  Use AS_FOR_TARGET otherwise, and
1913         then AS only if target is host.
1914         * configure: Rebuilt.
1915
1916 2004-05-25  Vladimir Makarov  <vmakarov@redhat.com>
1917
1918         * global.c (global_alloc): Call make_accurate_live_analysis.
1919         (record_one_conflict): Remove dead code.
1920         (mark_reg_clobber): Remove ATTRIBUTE_UNUSED for parameter data.
1921         (bb_info): New structure.
1922         (BB_INFO, BB_INFO_BY_INDEX): New macros.
1923         (allocate_bb_info, free_bb_info, mark_reg_change,
1924         calculate_local_reg_bb_info, set_up_bb_rts_numbers, rpost_cmp,
1925         modify_bb_reg_pav, calculate_reg_pav,
1926         make_accurate_live_analysis): New functions.
1927
1928 2004-05-25  Devang Patel  <dpatel@apple.com>
1929
1930         * alias.c (init_alias_analysis): Use ggc_calloc instead of
1931         xrealloc.
1932         (end_alias_analysis): Use ggc_free instead fo free.
1933
1934 2004-05-25  Andrew Pinski  <pinskia@physics.uc.edu>
1935
1936         PR target/15546
1937         * config/ia64/ia64.h (ASM_OUTPUT_FDESC): Mark the DECL
1938         as needed to be outputted.
1939
1940 2004-05-25  Jan Hubicka  <jh@suse.cz>
1941
1942         * builtins.def (__builtin_expect):  Mark the function as const&nothrow.
1943
1944 2004-05-25  Ayal Zaks  <zaks@il.ibm.com>
1945         Mostafa Hagog  <mustafa@il.ibm.com>
1946
1947         * Makefile.in (modulo-sched.o, ddg.o): New.
1948         * ddg.h, ddg.c, modulo-sched.c: New files.
1949         * cfglayout.c (duplicate_insn_chain): Remove "static" and push
1950         internals to "dupicate_insn".
1951         (duplicate_insn): New function.
1952         * cfglayout.h (duplicate_insn_chain, duplicate_insn): New
1953         declarations.
1954         * common.opt (fmodulo-sched): New flag.
1955         * df.c (df_bb_regno_last_use_find, df_bb_regno_first_def_find):
1956         Remove static and forward declaration.
1957         (df_find_def, df_reg_used, df_bb_regno_last_def_find): New
1958         functions.
1959         * df.h (df_bb_regno_last_use_find, df_bb_regno_first_def_find,
1960         df_bb_regno_last_def_find, df_find_def, df_reg_used): New
1961         declarations.
1962         * flags.h (flag_modulo_sched): New flag.
1963         * opts.c (common_handle_option): Handle modulo-sched flag.
1964         * params.def (max-sms-loop-number, sms-max-ii-factor,
1965         sms-dfa-history, sms-loop-average-count-threshold): New
1966         parameters.
1967         * params.h (MAX_SMS_LOOP_NUMBER, SMS_MAX_II_FACTOR,
1968         SMS_DFA_HISTORY, SMS_LOOP_AVERAGE_COUNT_THRESHOLD): New
1969         parameters.
1970         * passes.c ("sms", "sms-vcg"): New dumps.
1971         (rest_of_handle_sched): Call sms_schedule.
1972         * rtl.h (sms_schedule): New declaration.
1973         * timevar.def (TV_SMS): New.
1974         * toplev.c (flag_modulo_sched): Initialize.
1975         (f_options): Handle -fmodulo-sched option.
1976         * docs/invoke.texi: Document -fmodulo-sched & -dm options.
1977         * docs/passes.texi: Document new SMS pass.
1978
1979 2004-05-25  Paolo Bonzini  <bonzini@gnu.org>
1980
1981         * Makefile.in (OBJS): Add rtlhooks.o.
1982         (rtlanal.o): Depend on function.h.
1983         (cse.o): Depend on rtlhooks-def.h.
1984         (combine.o): Depend on rtlhooks-def.h.
1985         (rtlhooks.o): New rule.
1986         * combine.c: Include rtlhooks-def.h.
1987         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
1988         num_sign_bit_copies, cached_num_sign_bit_copies,
1989         num_sign_bit_copies1): Move most of the code to rtlanal.c.
1990         (reg_nonzero_bits_for_combine,
1991         reg_num_sign_bit_copies_for_combine): New functions holding
1992         the remnants of the above.
1993         (combine_rtl_hooks): New.
1994         (combine_instructions): Set rtl_hooks instead of gen_lowpart.
1995         * cse.c: Include rtlhooks-def.h.
1996         (cse_rtl_hooks): New.
1997         (cse_main): Set rtl_hooks instead of gen_lowpart.
1998         * emit-rtl.c (gen_lowpart): Remove.
1999         (gen_lowpart_general): Move to rtlhooks.c.
2000         * rtl.h (nonzero_bits, num_sign_bit_copies,
2001         struct rtl_hooks, rtl_hooks, general_rtl_hooks): New.
2002         (gen_lowpart_general): Remove.
2003         (gen_lowpart): Temporarily redefine as a macro.
2004         * rtlanal.c: Include function.h.
2005         (nonzero_bits, cached_nonzero_bits, nonzero_bits1,
2006         num_sign_bit_copies, cached_num_sign_bit_copies,
2007         num_sign_bit_copies1): New, from combine.c.
2008         * rtlhooks.c: New file.
2009         * rtlhooks-def.h: New file.
2010
2011 2004-05-25  Svein E. Seldal  <Svein.Seldal@solidas.com>
2012
2013         * config/avr/avr.h (LONG_LONG_TYPE_SIZE): Changed long long type
2014         to support 32-bit -mint8 mode.
2015
2016         * doc/invoke.texi (-mint8): Added documentation for the -mint8
2017         option in the AVR architecture.
2018
2019 2004-05-24  Mike Stump  <mrs@apple.com>
2020
2021         * doc/install.texi: Document that dejagnu 1.4.4 is required.
2022
2023 2004-05-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2024
2025         * intl.h (open_quote, close_quote): New.
2026         * intl.c (open_quote, close_quote): New.
2027         (gcc_init_libintl): Set them.
2028         * pretty-print.c: Include "intl.h".
2029         (pp_base_format_text): Support 'q' format flag and %` and %'
2030         formats.  Use ' instead of ` in comments.
2031         * c-format.c (gcc_diag_flag_specs, gcc_cxxdiag_flag_specs,
2032         gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table,
2033         foramt_types_orig): Describe these new formats.
2034         (decode_format_attr, check_function_format,
2035         check_format_info_main): Use these new formats.
2036         (status_warning): Use ATTRIBUTE_GCC_DIAG.
2037         * toplev.c (ATTRIBUTE_GCC_DIAG): Increase required GCC version to
2038         check these formats to 3.5.
2039
2040 2004-05-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2041
2042         * Makefile.in (CPPLIBS): Renamed to CPPLIB.
2043         (BACKEND): Reflect this.
2044         (LIBDEPS): Move CPPLIB before LIBIBERTY.
2045         (LIBS): Likewise.
2046
2047 2004-05-24  Ulrich Weigand  <uweigand@de.ibm.com>
2048
2049         PR tree-optimization/14197
2050         * builtins.c: Include "tree-gimple.h"
2051         (readonly_data_expr): Use get_base_address.  Make sure to call
2052         decl_readonly_section only on trees it can handle.
2053         * tree-gimple.c (get_base_address): Accept STRING_CST and
2054         CONSTRUCTOR expressions.
2055         * Makefile.in: Update dependencies.
2056
2057 2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
2058
2059         Move libcpp to the toplevel.
2060         * Makefile.in: Remove references to libcpp files,
2061         use CPPLIBS instead of libcpp.a.  Define SYMTAB_H
2062         and change hashtable.h to that.
2063         * aclocal.m4 (gcc_AC_HEADER_STDBOOL,
2064         gcc_AC_HEADER_STRING, gcc_AC_C__BOOL): Remove.
2065         * configure.ac (gcc_AC_C__BOOL, HAVE_UCHAR): Remove tests.
2066         * configure: Regenerate.
2067         * config.in: Regenerate.
2068         * c-ppoutput.c: Include ../libcpp/internal.h instead of cpphash.h.
2069         * cppcharset.c: Removed.
2070         * cpperror.c: Removed.
2071         * cppexp.c: Removed.
2072         * cppfiles.c: Removed.
2073         * cpphash.c: Removed.
2074         * cpphash.h: Removed.
2075         * cppinit.c: Removed.
2076         * cpplex.c: Removed.
2077         * cpplib.c: Removed.
2078         * cpplib.h: Removed.
2079         * cppmacro.c: Removed.
2080         * cpppch.c: Removed.
2081         * cpptrad.c: Removed.
2082         * cppucnid.h: Removed.
2083         * cppucnid.pl: Removed.
2084         * cppucnid.tab: Removed.
2085         * hashtable.c: Removed.
2086         * hashtable.h: Removed.
2087         * line-map.c: Removed.
2088         * line-map.h: Removed.
2089         * mkdeps.c: Removed.
2090         * mkdeps.h: Removed.
2091         * stringpool.h: Include symtab.h instead of hashtable.h.
2092         * tree.h: Include symtab.h instead of hashtable.h.
2093         * system.h (O_NONBLOCK, O_NOCTTY): Do not define.
2094
2095 2004-05-23 Paolo Bonzini <bonzini@gnu.org>
2096
2097         * gcc.c (struct prefix_list): Add forward declaration.
2098         (do_spec_path): New function, extracted from...
2099         (do_spec_1) <'D'>: ... here.  Drop support for
2100         SPACE_AFTER_L_OPTION.
2101         (do_spec_1) <'I'>: Use do_spec_path.
2102         (process_command): Do not store the 'include' suffix
2103         in include_prefixes.
2104         * system.h: Poison SPACE_AFTER_L_OPTION.
2105
2106 2002-05-23  Roger Sayle  <roger@eyesopen.com>
2107
2108         * fold-const.c (non_lvalue): Explicitly list the tree codes that
2109         need to be wrapped by NON_LVALUE_EXPR, instead of those that don't.
2110
2111 2004-05-23  Joseph S. Myers  <jsm@polyomino.org.uk>
2112
2113         * doc/gcc.texi, doc/gccint.texi, doc/include/gcc-common.texi:
2114         Update based on printed manual.  Enable setting of offsets for
2115         FSFPRINT and move it to gcc-common.texi.
2116         * doc/gcc.texi: Update FSF printing details.
2117         * doc/gccint.texi: Remove FSF printing details.
2118
2119 2004-05-23  Andrew Pinski  <pinskia@physics.uc.edu>
2120
2121         * config/rs6000/t-rs6000: Remove the disabling -Werror.
2122
2123 2004-05-22  Roger Sayle  <roger@eyesopen.com>
2124
2125         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
2126         expand_builtin_strrchr, expand_builtin_strpbrk,
2127         expand_builtin_mempcpy, expand_builtin_memcmp,
2128         expand_builtin_strcmp, expand_builtin_strncmp,
2129         expand_builtin_strcat, std_expand_builtin_va_start,
2130         std_expand_builtin_va_arg, expand_builtin_va_copy,
2131         expand_builtin_signbit, fold_builtin_cabs,
2132         fold_builtin_logarithm, fold_builtin_mempcpy,
2133         fold_builtin_signbit, fold_builtin_isascii,
2134         fold_builtin_toascii, fold_builtin_isdigit,
2135         fold_builtin_1, build_function_call_expr,
2136         simplify_builtin_strchr, simplify_builtin_strrchr,
2137         simplify_builtin_strpbrk, simplify_builtin_strncpy,
2138         simplify_builtin_memcmp, simplify_builtin_strcmp,
2139         simplify_builtin_strncmp, simplify_builtin_strncat,
2140         simplify_builtin_strspn, simplify_builtin_strcspn,
2141         simplify_builtin_fputs, simplify_builtin_sprintf): Replace calls
2142         to build with calls to build2, build3 or omit_one_operand.
2143
2144 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2145
2146         * config/mips/mips.c (mips_file_start): Emit a .gcc_compiled_longXX
2147         section when generating EABI code.
2148
2149 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2150
2151         PR 15546
2152         * config/i386/i386.c (output_pic_addr_const <case SYMBOL_REF>):
2153         Call mark_decl_referenced on the SYMBOL_REF_DECL.
2154
2155 2004-05-22  Andrew Pinski  <pinskia@physics.uc.edu>
2156
2157         * c-common.c (c_common_truthvalue_conversion): Handle
2158         UNEQ_EXPR, UNLE_EXPR, UNGE_EXPR, UNLT_EXPR, UNGT_EXPR,
2159         ORDERED_EXPR, and UNORDERED_EXPR as comparison operators,
2160         i.e. set the type to truthvalue_type_node and return.
2161
2162 2004-05-22  Zack Weinberg  <zack@codesourcery.com>
2163
2164        * tree.h (struct tree_decl): Add possibly_inlined bit.
2165         (DECL_POSSIBLY_INLINED): New accessor macro.
2166         * cgraph.h: Remove declaration of cgraph_inline_hash.
2167         * cgraph.c: Remove definition of cgraph_inline_hash.
2168         (hash_node): Revert to hashing DECL_UID.
2169         (eq_node): Take two pointers to cgraph_node structures.
2170         Compare DECL_UIDs.
2171         (cgraph_remove_node): Pass the node directly to htab_find_slot.
2172         (cgraph_varpool_hash_node): Rename hash_varpool_node;
2173         hash on DECL_UID.
2174         (eq_cgraph_varpool_node): Rename eq_varpool_node; take two
2175         pointers to cgraph_varpool_node structures; compare DECL_UIDs.
2176         (cgraph_node): Allocate a temporary node on the stack, fill in
2177         its DECL field, and pass that to htab_find_slot.
2178         (cgraph_varpool_node): Likewise.
2179         (cgraph_function_possibly_inlined_p): If global info is ready,
2180         return the DECL_POSSIBLY_INLINED bit.
2181         * cgraphunit.c (cgraph_mark_inline_edge): Set DECL_POSSIBLY_INLINED
2182         instead of mucking with cgraph_inline_hash.
2183
2184 2004-05-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2185
2186         * doc/contrib.texi: Add g77 contributors.
2187
2188 2004-05-22  Richard Sandiford  <rsandifo@redhat.com>
2189
2190         * calls.c (initialize_argument_information): Forbid sibcalls if a
2191         callee-copied argument is stored in the current function's frame.
2192
2193 2004-05-22  Eric Christopher  <echristo@redhat.com>
2194
2195         * fix-header.c (read_scan_file): Update for add_path change.
2196
2197 2004-05-22  Ben Elliston  <bje@au.ibm.com>
2198
2199         * c.opt (Wmissing-include-dirs): New.
2200         * c-opts.c (c_common_handle_option): Pass true for user_supplied_p
2201         to add_path () for -I, but false for OPT_idirafter, OPT_iquote and
2202         OPT_isystem. Handle case OPT_Wmissing_include_dirs.
2203         * c-incpath.h (add_path): Add fourth (bool) argument.
2204         * c-incpath.c (add_env_var_paths): Pass false to add_path ().
2205         (add_standard_paths): Likewise.
2206         (remove_duplicates) [REASON_NOENT]: Warn if -Wmissing-include-dirs
2207         is used and the directory was user-supplied via -I.
2208         (add_path): Set p->user_supplied_p.  Remove duplicated code by
2209         using add_cpp_dir_path ().
2210         * cpplib.h (struct cpp_options): Add warn_missing_include_dirs.
2211         (struct cpp_dir): Add user_supplied_p.
2212         * doc/invoke.texi (Warning Options): Document new option.
2213
2214 2004-05-21  Ulrich Weigand  <uweigand@de.ibm.com>
2215
2216         * fold-const.c (fold_read_from_constant_string): Convert result to
2217         requested type.
2218
2219 2004-05-21  Richard Henderson  <rth@redhat.com>
2220
2221         * gimplify.c (mostly_copy_tree_r): Don't attempt to copy decls.
2222         (copy_if_shared_r): Don't copy decls, types, constants, BINDs.
2223         Don't mark VA_ARG_EXPRs volatile here.
2224         (gimplify_modify_expr): Unshare TYPE_SIZE_UNIT.
2225
2226 2004-05-21  Richard Henderson  <rth@redhat.com>
2227
2228         * Makefile.in (tree-dump.o): Depend on tree-iterator.h.
2229         * tree-dump.c (dequeue_and_dump): Dump STATEMENT_LISTs.
2230
2231 2004-05-21  Roger Sayle  <roger@eyesopen.com>
2232
2233         * fold-const.c (fold, fold_relational_hi_lo,
2234         nondestructive_fold_binary_to_constant,
2235         fold_read_from_constant_string): Use fold_convert instead of convert.
2236         * builtins.c (simplify_builtin, simplify_builtin_strstr,
2237         simplify_builtin_strchr, simplify_builtin_strrchr,
2238         simplify_builtin_strpbrk): Use fold_convert instead of convert.
2239
2240 2004-05-21  Diego Novillo  <dnovillo@redhat.com>
2241
2242         * tree-flow-inline.h (num_immediate_uses): Don't abort if DF
2243         is NULL.
2244
2245 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
2246
2247         * config/sparc/linux64.h (OPTION_DEFAULT_SPECS): If SPARC_BI_ARCH,
2248         override sparc.h definition.
2249
2250 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2251
2252         * tree.c (array_type_nelts, save_expr, substitute_in_expr,
2253         get_unwidened, get_narrower): Replace build with build2.
2254         * fold-const.c (negate_expr, associate_trees, size_binop,
2255         fold_convert, eval_subst, omit_one_operand, invert_truthvalue,
2256         pedantic_omit_one_operand, distribute_bit_expr,
2257         make_bit_field_ref, optimize_bit_field_compare,
2258         decode_field_reference, range_binop, make_range,
2259         build_range_check, fold_range_test, fold_truthop,
2260         optimize_minmax_comparison, extract_muldiv_1,
2261         fold_binary_op_with_conditional_arg, fold_mathfn_compare,
2262         fold_inf_compare, fold_single_bit_test, fold,
2263         fold_relational_hi_lo, nondestructive_fold_binary_to_constant):
2264         Likewise replace build with either build2 or build3.
2265
2266 2004-05-20  Ian Lance Taylor  <ian@wasabisystems.com>
2267
2268         * system.h: Poison NO_RECURSIVE_FUNCTION_CSE.
2269         * calls.c (prepare_call_address): Don't test
2270         NO_RECURSIVE_FUNCTION_CSE.
2271         * config/arc/arc.h (NO_RECURSIVE_FUNCTION_CSE): Don't define.
2272         * config/arm/arm.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2273         * config/avr/avr.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2274         * config/frv/frv.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2275         * config/i386/i386.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2276         * config/ip2k/ip2k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2277         * config/iq2000/iq2000.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2278         * config/m32r/m32r.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2279         * config/m68k/m68k.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2280         * config/mcore/mcore.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2281         * config/mips/mips.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2282         * config/stormy16/stormy16.h (NO_RECURSIVE_FUNCTION_CSE):
2283         Likewise.
2284         * config/xtensa/xtensa.h (NO_RECURSIVE_FUNCTION_CSE): Likewise.
2285         * config/sh/sh.h: Remove NO_RECURSIVE_FUNCTION_CSE comment.
2286         * doc/tm.texi (Costs): Remove documentation for
2287         NO_RECURSIVE_FUNCTION_CSE.
2288
2289 2004-05-20  Paul Brook  <paul@codesourcery.com>
2290
2291         * unwind-dw2-fde.c (get_cie_encoding): Handle dwarf3 CIE format.
2292         * unwind-dw2.c (extract_cie_info): Ditto.
2293         (_Unwind_FrameState): Change retaddr_column to word type.
2294
2295 2004-05-20  Roger Sayle  <roger@eyesopen.com>
2296
2297         PR middle-end/3074
2298         * fold-const.c (strip_compound_expr): Delete function.
2299         (count_cond): Delete function.
2300         (fold_binary_op_with_conditional_arg): Only perform transformations
2301         "a + (b?c:d) -> b ? a+c : a+d" and "(b?c:d) + a -> b ? c+a : d+a"
2302         when a is constant.  This greatly simplifies this routine.
2303
2304         * tree.c (saved_expr_p): Delete function.
2305         * tree.h (saved_expr_p): Delete function prototype.
2306
2307 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2308
2309         * common.opt (ftree-loop-optimize): Remove.
2310
2311 2004-05-20  Daniel Jacobowitz  <dan@debian.org>
2312
2313         * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET)
2314         (NM_FOR_TARGET): Use := and $(shell).
2315         (mainversion): Remove unused variable.
2316
2317 2004-05-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2318
2319         * reorg.c (delete_from_delay_slot): If we have a barrier after the
2320         sequence containing the insn to be deleted, always reemit it.
2321
2322 2004-05-20  Richard Henderson  <rth@redhat.com>
2323
2324         PR 15454
2325         * tree-nested.c (get_chain_decl): Create a PARM_DECL by hand.
2326         * function.c (expand_function_start): Expand static_chain_decl by hand.
2327         * gimplify.c (create_tmp_var_name): Export.
2328         * tree-gimple.h (create_tmp_var_name): Declare.
2329
2330 2004-05-20  Andrew Pinski  <pinskia@physics.uc.edu>
2331
2332         * rs6000.c (print_operand) <case 'z'>: Call
2333         mark_decl_referenced before assemble_name.
2334
2335 2004-05-20  Zack Weinberg  <zack@codesourcery.com>
2336
2337         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2338         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2339         (cgraph_varpool_node): Hash on the pointer to the decl, not
2340         the DECL_UID.  Fixes 64-bit bootstrap failure.
2341
2342 2004-05-20  Richard Earnshaw <rearnsha@arm.com>
2343
2344         * arm.md (ite_ne_zeroextractsi, ite_ne_zeroextractsi_shifted): Ensure
2345         we don't earlyclobber operands used in the second insn.
2346
2347 2004-05-20  Steven Bosscher  <stevenb@suse.de>
2348
2349         * tree-mudflap.c: Formatting fixes.
2350
2351 2004-05-20  J"orn Rennecke <joern.rennecke@superh.com>
2352
2353         * Makefile.in (GTFILES): Add $(srcdir)/reload.h.
2354         * gengtype.c (open_base_files): Include reload.h in ifiles.
2355         * reload.h (reg_equiv_memory_loc_varray): Declare.
2356         * reload1.c (reg_equiv_memory_loc_varray): New variable.
2357         (init_reload): Initialize it.
2358         (reload): Instead of freeing reg_equiv_memory_loc, 'grow'
2359         reg_equiv_memory_loc_varray to size 0.
2360         * ra.c (reg_alloc): Allocate reg_equiv_memory_loc by
2361         growing reg_equiv_memory_loc_varray to the desired size.
2362         * passes.c (rest_of_handle_old_regalloc): Likewise.
2363         * reload.c: Amend comment on calling init_reload.
2364
2365 2004-05-20  Nick Clifton  <nickc@redhat.com>
2366
2367         * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Replace 'tramp'
2368         with 'TRAMP' in the body of the macro definition.
2369
2370 2004-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2371
2372         PR target/15383
2373         * config/ia64/ia64.c (ia64_expand_compare): Don't check
2374         TARGET_HPUX for TFmode compare. Abort if op0 is in TFmode and
2375         cmptf_libfunc isn't set.
2376         (ia64_init_libfuncs): Rename TFmode libfuncs using the HPUX
2377         conventions.
2378         (ia64_sysv4_init_libfuncs): New.
2379
2380         * config/ia64/sysv4.h (TARGET_INIT_LIBFUNCS): New. Defined as
2381         ia64_sysv4_init_libfuncs.
2382
2383 2004-05-20  Falk Hueffner  <falk@debian.org>
2384
2385         PR other/15526
2386         * libgcc2.c (__mulvsi3): Fix overflow test.
2387
2388 2004-05-19  Andrew Pinski  <pinskia@physics.uc.edu>
2389
2390         PR c/14171
2391         * reg-stack.c (nan): Rename to ...
2392         (not_a_num): Here.
2393         (reg_to_stack): Rename nan to not_a_num.
2394         (subst_stack_regs_pat): Likewise.
2395         (convert_regs_entry): Likewise.
2396         (convert_regs_1): Likewise.
2397
2398         * tree-cfg.c (find_case_label_for_value): Replace call to
2399         simple_cst_equal with tree_int_cst_equal.
2400
2401 2004-05-19  Jeff Law <law@redhat.com>
2402
2403         * tree-into-ssa.c (prepare_operand_for_rename): New argument is_use.
2404         If the operand is for a use, then strip away the SSA_NAME, do not
2405         strip away the SSA_NAME for a set.  Never call release_ssa_name.
2406         (mark_def_sites): Appropriately pass additional argument to
2407         prepare_operand_for_rename.  If a VDEF_RESULT is not an SSA_NAME,
2408         then set the VDEF_RESULT to the VDEF_OP.
2409         (set_def_block): Strip away any SSA_NAME to get to the real
2410         underlying variable.
2411
2412         * tree-ssa-phiopt.c (value_replacement): Handle the case where
2413         the desired edge out of COND_BLOCK reaches OTHER_BLOCK rather than
2414         BB directly.
2415
2416 2004-05-19  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2417
2418         PR c++/15463
2419         * loop-iv.c (iv_number_of_iterations):  Use trunc_int_for_mode on
2420         result of inverse.
2421
2422         PR rtl-optimization/15274
2423         * loop-iv.c (determine_max_iter, shorten_into_mode,
2424         iv_number_of_iterations): Handle constants correctly.
2425         * rtl.h (get_mode_bounds): Declaration changed.
2426         * stor-layout.c (get_mode_bounds): Return a constant suitable for
2427         the target mode.
2428
2429         PR rtl-optimization/14692
2430         * loop-unswitch.c (may_unswitch_on): Try folding the result.
2431         (unswitch_single_loop): Work correctly when may_unswitch_on
2432         returns a folded constant.
2433
2434         * loop-iv.c (implies_p): Handle A < B ==> A + 1 <= B.
2435         * simplify-rtx.c (simplify_const_relational_operation): Optimize
2436         comparisons with mode bounds.
2437
2438         * function.c (struct temp_slot): Add new field prev.
2439         (free_after_compilation, init_temp_slots): Free new fields.
2440         (cut_slot_from_list, insert_slot_to_list,
2441         temp_slots_at_level, max_slot_level, move_slot_to_level,
2442         make_slot_available): New functions.
2443         (assign_stack_temp_for_type, combine_temp_slots,
2444         find_temp_slot_from_address, preserve_temp_slots,
2445         preserve_rtl_expr_result, free_temp_slots,
2446         free_temps_for_rtl_expr, pop_temp_slots): Work with
2447         the new structure of lists.
2448         (mark_all_temps_used): Removed.
2449         * function.h (struct function): Field x_temp_slots
2450         replaced by x_used_temp_slots and x_avail_temp_slots.
2451         (temp_slots): Replaced by ...
2452         (used_temp_slots, avail_temp_slots): New.
2453         * tree.h (mark_all_temps_used): Declaration removed.
2454
2455         * loop-iv.c (mark_single_set, get_biv_step_1, iv_analyze,
2456         simplify_using_assignment): Take the expression out of
2457         the expr_list wrapper.
2458
2459         * loop-iv.c (iv_number_of_iterations): Improve clasification of
2460         infinite loops.
2461
2462 2004-05-19  Roger Sayle  <roger@eyesopen.com>
2463
2464         * doc/tm.texi (TARGET_RTX_COSTS): Document that instruction
2465         costs should be based on code size when optimizing for size.
2466
2467 2004-05-19  Paolo Bonzini  <bonzini@gnu.org>
2468
2469         * fold-const.c: Remove non-printable character 160.
2470
2471 2004-05-19  Nick Clifton  <nickc@redhat.com>
2472
2473         * doc/invoke.texi (ARM Options): Fix typo.
2474         Remove descrption of -mshort-load-bytes and
2475         -mno-short-load-bytes.
2476
2477         * config/ip2k/ip2k.c (ip2k_composite_xexp_not_uses_reg_p): Add
2478         missing parenthesis.
2479         * config/ip2k/ip2k.c (ip2k_unary_operator): Likewise.
2480         * config/ip2k/ip2k.c (ip2k_binary_operator): Likewise.
2481
2482 2004-05-19  Steven Bosscher  <stevenb@suse.de>
2483
2484         * expr.c (store_constructor): Build loop start and end by hand
2485         instead of via loop functions from stmt.c.
2486         (expand_expr_real_1): Abort if we see an EXIT_EXPR or a LOOP_EXPR.
2487         Remove the code to expand them.
2488
2489         * stmt.c (loop_stack): Remove this and everything related.
2490         (struct nesting, enum nesting_desc): Update.
2491         (expand_fixup): Likewise.
2492         (expand_loop_start, expand_start_loop_continue_elsewhere,
2493         expand_start_null_loop, expand_loop_continue_here, expand_end_loop,
2494         expand_end_null_loop, expand_continue_loop, expand_exit_loop,
2495         expand_exit_loop_if_false, expand_exit_loop_top_cond,
2496         expand_exit_something): Remove.
2497         * tree.h: Remove prototypes.
2498
2499 2004-05-18  Mike Stump  <mrs@apple.com>
2500             Devang Patel  <dpatel@apple.com>
2501
2502         * doc/tm.texi (TARGET_ASM_EMIT_UNWIND_LABEL): Add argument to indicate
2503         if this label is for eh.
2504         * config/darwin-protos.h (darwin_emit_unwind_label): Likewise.
2505         * config/darwin.c (darwin_emit_unwind_label): Likewise.
2506         * dwarf2out.c (output_call_frame_info): Likewise.
2507         * output.h (default_emit_unwind_label): Likewise.
2508         * target.h (unwind_label): Likewise.
2509         * varasm.c (default_emit_unwind_label): Likewise.
2510
2511         * config/darwin.h (DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE,
2512         DEBUG_FRAME_SECTION, DEBUG_INFO_SECTION, DEBUG_ABBREV_SECTION,
2513         DEBUG_ARANGES_SECTION, DEBUG_MACINFO_SECTION, DEBUG_LINE_SECTION,
2514         DEBUG_LOC_SECTION, DEBUG_PUBNAMES_SECTION, DEBUG_STR_SECTION,
2515         DEBUG_RANGES_SECTION): Define.
2516
2517 2004-05-18  Zack Weinberg  <zack@codesourcery.com>
2518
2519         * cgraph.c (hash_node, eq_node, cgraph_node, cgraph_remove_node)
2520         (cgraph_varpool_hash_node, eq_cgraph_varpool_node)
2521         (cgraph_varpool_node):
2522         Use DECL_UID for the key, not DECL_ASSEMBLER_NAME.
2523         (cgraph_function_possibly_inlined_p): Use the decl itself for
2524         the key, not DECL_ASSEMBLER_NAME.
2525         (change_decl_assembler_name): No need to muck with the hash tables.
2526         (cgraph_node_for_identifier, cgraph_varpool_node_for_identifier):
2527         Delete.
2528         * cgraphunit.c (cgraph_mark_inline_edge): Use the decl itself
2529         for the key, not DECL_ASSEMBLER_NAME.
2530         * cgraph.h: Remove prototypes of deleted functions.
2531         * varasm.c (mark_referenced): Just set TREE_SYMBOL_REFERENCED.
2532         (mark_decl_referenced): New function.
2533         * tree.h: Prototype mark_decl_referenced.
2534         * final.c (output_addr_const) <case SYMBOL_REF>: Call
2535         mark_decl_referenced before assemble_name.
2536         * c-decl.c (finish_decl): Use mark_decl_referenced.
2537
2538 2004-05-18  Andrew Pinski  <pinskia@physics.uc.edu>
2539             Jeff Law <law@redhat.com>
2540
2541         * tree-ssa-phiopt.c (abs_replacement): New function.
2542         (empty_block_p): New function extracted from...
2543         (candidate_bb_for_phi_optimization): Break out empty block test.
2544         (conditional_replacement): Use empty_block_p.
2545         (value_replacement): Similarly.
2546
2547         * Makefile.in (tree-ssa-phiopt.o): Depends on flags.h.
2548         * tree-ssa-phiopt.c: Include flags.h.
2549         (conditional_replacement): Remove argument names from prototype.
2550         Minor formatting and comment fixes.
2551         (tree_ssa_phiopt): If conditional_replacement returns false, then
2552         call value_replacement.
2553         (value_replacement): New function.
2554
2555 2004-05-18  Jeff Law  <law@redhat.com>
2556
2557         * tree-ssa-phiopt.c (replace_phi_with_stmt): New function extracted
2558         from conditional_replacement.
2559         (candidate_bb_for_phi_optimization): Similarly.
2560         (conditional_replacement): Use replace_phi_with_stmt and
2561         candidate_bb_for_phi_optimization.
2562
2563         * tree-ssa-phiopt.c: Fix various formatting issues.
2564
2565 2004-05-18  Steven Bosscher  <stevenb@suse.de>
2566
2567         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
2568         s390_expand_cmpmem): Do not use expand_start_loop and
2569         expand_end_loop, instead build the loop manually.
2570
2571 2004-05-18  Alan Modra  <amodra@bigpond.net.au>
2572
2573         * config/rs6000/rs6000.md (ctrsi_internal3): Delete.
2574         (ctrsi_internal4, ctrdi_internal3, ctrdi_internal4): Delete.
2575
2576 2004-05-17  Jeff Law  <law@redhat.com>
2577
2578         * toplev.h (flag_delete_null_pointer_checks): Move from here to...
2579         * flags.h (flag_delete_null_pointer_checks): Here.
2580         * tree-flow.h (cprop_into_successor_phis): Add argument to prototype.
2581         * tree-phinodes.c (resize_phi_node): Initialize PHI_ARG_NONZERO.
2582         (add_phi_arg, remove_phi_arg_num): Similarly.
2583         * tree-ssa-copy.c (cprop_into_successor_phis): Propagate nonzero
2584         property into PHI nodes.
2585         * tree-ssa-dom.c: Remove redundant inclusion of flags.h.
2586         (record_equivalences_from_phis): If all PHI arguments are known to be
2587         nonzero, then the result must be nonzero as well.
2588         (cprop_into_phis): Pass nonzero_vars bitmap to cprop_into_successor_phis.
2589         (record_equivalences_from_stmt): Check flag_delete_null_pointer_checks
2590         appropriately.  Walk the USE-DEF chains and propagate nonzero property
2591         as appropriate.
2592         * tree.h (PHI_ARG_NONZERO): Define.
2593         (phi_arg_d): Add nonzero flag.
2594
2595 2004-05-17  Zack Weinberg  <zack@codesourcery.com>
2596
2597         * f: Entire directory removed
2598
2599         * c-common.h (CTI_G77_INTEGER_TYPE, CTI_G77_UINTEGER_TYPE)
2600         (CTI_G77_LONGINT_TYPE, CTI_G77_ULONGINT_TYPE)
2601         (g77_integer_type_node, g77_uinteger_type_node)
2602         (g77_longint_type_node, or g77_ulongint_type_node): Delete.
2603         * c-common.c (c_common_nodes_and_builtins): Do not initialize
2604         the above set of variables.
2605
2606         * config/i386/uwin.h: No need to define WIN32_UWIN_TARGET.
2607         * doc/invoke.texi, doc/standards.texi: Remove cross-references
2608         to g77 manual.
2609
2610 2004-05-17  Steven Bosscher  <stevenb@suse.de>
2611
2612         PR tree-optimization/15438
2613         * tree-ssa-operands.c (get_expr_operands): Do not treat malloc
2614         attributed functions as pure or const.
2615
2616 2004-05-17  Frank Ch. Eigler  <fche@redhat.com>
2617
2618         * tree-mudflap.c (mx_register_decls): Tolerate decl trees resulting
2619         from source code with errors.
2620
2621 2004-05-17  Ranjit Mathew  <rmathew@hotmail.com>
2622
2623         Enable tree browser for all front ends.
2624         * Makefile.in (cc1): Moved @TREEBROWSER@ from here...
2625         (BACKEND): ...to here.
2626
2627 2004-05-17  Jan Hubicka  <jh@suse.cz>
2628
2629         * i386.c (construct_container): Do not produce BLKmode registers.
2630         (classify_argument): Properly compute alignment of complex types.
2631
2632 2004-05-17  H.J. Lu  <hongjiu.lu@intel.com>
2633
2634         PR target/15084
2635         * config/i386/i386.md (*movsi_insv_1_rex64): Changed to DImode
2636         and renamed to movdi_insv_1_rex64.
2637         (insv): Support SImode for 32bit and DImode for 64bit.
2638
2639 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2640
2641         * config/mips/mips.h (MASK_DEBUG_G, TARGET_DEBUG_G_MODE): Delete.
2642         (TARGET_SWITCHES): Remove debugg.
2643         * config/mips/mips.md (adddi3, ashldi3, ashrdi3, lshrdi3): Only handle
2644         TARGET_64BIT.
2645         (subdi3): Replace the define_expand with a define_insn, the latter
2646         renamed from subdi3_internal_3.
2647         (negdi2): Likewise negdi2_internal_2.
2648         (adddi3_internal_[12], subdi3_internal, ashldi3_internal{,2,3})
2649         (ashrdi3_internal{,2,3}, lshrdi3_internal{,2,3}): Remove patterns
2650         and associated define_splits.
2651         (adddi3_internal): Renamed from adddi3_internal_3.
2652         (ashldi3_internal): Likewise ashldi3_internal4.
2653         (ashrdi3_internal): Likewise ashrdi3_internal4.
2654         (lshrdi3_internal): Likewise lshrdi3_internal4.
2655
2656 2004-05-17  Richard Sandiford  <rsandifo@redhat.com>
2657
2658         * optabs.c (expand_unop): Try implementing negation using subtraction
2659         from zero.
2660
2661 2004-05-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2662
2663         * pa.md:  Fix typo from last change.  Remove DFmode move to and from
2664         SAR register.
2665
2666 2004-05-16  Richard Earnshaw  <rearnsha@arm.com>
2667
2668         PR target/10982
2669         * arm.md (ne_zeroextractsi): Convert to insn-and-split.
2670         (ne_zeroextractsi_shifted): New pattern.
2671         (ite_ne_zeroextractsi): New pattern.
2672         (ite_ne_zeroextractsi_shifted): New pattern.
2673
2674 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2675
2676         * c-gimplify.c (c_genericize):
2677         Replace calls via (*lang_hooks.foo) with lang_hooks.foo.
2678         * c-parse.in <expr_no_commas>: Likewise.
2679         <if_prefix>: Likewise.
2680         <select_or_iter_stmt>: Likewise.
2681         * expr.c (expand_var, expand_expr_real_1): Likewise.
2682         * expr.h (expand_expr): Make it a static inline function.
2683         Move prototype for expand_expr_real up before this.
2684         * fold-const.c (fold_relational_hi_lo, fold_relational_const):
2685         Likewise.
2686         * gimplify.c (gimple_boolify, gimplify_addr_expr,
2687         gimplify_asm_expr, gimplify_expr): Likewise.
2688         * tree-cfg.c (dump_tree_cfg, dump_cfg_stats, tree_cfg2vcg,
2689         dump_function_to_file): Likewise.
2690         * tree-dfa.c (dump_immediate_uses, dump_dfa_stats): Likewise.
2691         * tree-inline.c (remap_block, save_body, walk_tree): Likewise.
2692         * tree-into-ssa.c (dump_tree_ssa): Likewise.
2693         * tree-mudflap.c (mf_varname_tree, mf_file_function_line_tree):
2694         Likewise.
2695         * tree-optimize.c (execute_one_pass): Likewise.
2696         * tree-pretty-print.c (dump_generic_bb_buff): Likewise.
2697         * tree-ssa-alias.c (dump_alias_stats, dump_alias_info): Likewise.
2698
2699         * objc/objc-act.c (objc_build_try_enter_fragment,
2700         objc_build_try_epilogue, objc_build_catch_stmt,
2701         objc_build_finally_prologue): Replace calls via (*lang_hooks.foo)
2702         with lang_hooks.foo ().
2703
2704 2004-05-15  Roger Sayle  <roger@eyesopen.com>
2705
2706         * builtins.c (simplify_builtin_strcpy): Avoid use of chainon, so
2707         that simplify_builtin doesn't destructively modify its argument.
2708
2709 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2710
2711         * arm/lib1funcs.asm (_lshrdi3, _ashrdi3, _ashldi3): Add ASM
2712         implementations for ARM and Thumb.
2713         * arm/t-arm-elf (LIB1ASMFUNCS): Use them.
2714
2715 2004-05-15  Thomas Quinot  <quinot@act-europe.fr>
2716
2717         * prefix.c (update_path): Replace PREFIX with KEY only
2718         when it matches a full directory name in PATH.
2719
2720 2004-05-15  Richard Earnshaw  <reanrsha@arm.com>
2721
2722         * arm.h (TARGET_APCS_32): Delete.
2723         (TARGET_MMU_TRAPS): Delete.
2724         (TARGET_CPU_CPP_BUILTINS): Unconditionally define __APCS_32__.  Never
2725         define __APCS_26__.
2726         (CPP_SPEC): Remove checking of -mapcs-{26,32}.
2727         (ARM_FLAG_APCS_32, ARM_FLAG_MMU_TRAPS): Delete.
2728         (TARGET_SWITCHES): Remove alignment_traps and apcs-{26,32} switches.
2729         (prog_mode_type): Delete.
2730         (PROMOTE_MODE): Always promote unsigned for HImode.
2731         (SECONDARY_INPUT_RELOAD_CLASS): Simplify.
2732         (MASK_RETURN_ADDR): Simplify.
2733         * arm.c (arm_prgmode): Delete.
2734         (arm_override_options, arm_gen_rotated_half_load): Simplify.
2735         (print_multi_reg, output_return_instruction): Simplify.
2736         (arm_output_epilogue, arm_final_prescan_insn): Simplify.
2737         (arm_return_addr): Simplify.
2738         * arm.md (prog_mode): Delete.
2739         (conds): Simplify.
2740         (zero_extendhisi2, extendhisi2, movhi, movhi_bytes): Simplify.
2741         (rotated_loadsi, movhi_insn_littleend, movhi_insn_bigend): Delete.
2742         (loadhi_si_bigend, loadhi_preinc, loadhi_shiftpreinc): Delete.
2743         (loadhi_shiftpredec): Delete.
2744         (peephole for post-increment on HImode load): Delete.
2745         * arm/crtn.asm: (FUNC_END): Simplify.
2746         * arm/lib1funcs.asm: Remove APCS-26 return macros.
2747         * arm/aof.h, arm/coff.h arm/elf.h arm/linux-elf.h arm/netbsd-elf.h
2748         * arm/netbsd.h arm/pe.h arm/semi.h arm/semiaof.h arm/unknown-elf.h
2749         * arm/vxworks.h arm/wince-pe.h: Tidy TARGET_DEFAULTS and
2750         MULTILIB_DEFAULTS as required.
2751         * arm/t-arm-elf arm/t-linux arm/t-pe arm/t-semi arm/t-wince-pe
2752         * arm/t-xscale-coff arm/t-xscale-elf arm/uclinux-elf: Tidy MULTILIB
2753         variables as required.
2754         * doc/invoke.texi (ARM Options): Remove obsolete flags.
2755
2756 2004-05-15  Alan Modra  <amodra@bigpond.net.au>
2757
2758         * config/rs6000/rs6000.c (rs6000_va_arg <ABI_V4>): Don't use
2759         UNITS_PER_WORD to calculate gpr size.  Re-instate code to set reg
2760         count to 8 to handle n_reg > 2.
2761
2762 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2763
2764         * doc/extend.texi: Update WG14 URL.
2765
2766 2004-05-15  Steven Bosscher  <stevenb@suse.de>
2767
2768         * basic-block.h (life_analysis, delete_noop_moves):
2769         Update prototypes.
2770         * bt-load.c (branch_target_load_optimize): Don't take the
2771         insns stream as an argument.  Update the life_analysis calls.
2772         * combine.c (combine_instructions): Update delete_noop_moves
2773         calls.
2774         * flow.c (notice_stack_pointer_modification): Don't take the
2775         insns stream as an argument.  Work on the flow graph.
2776         (life_analysis): Likewise.
2777         (delete_noop_moves): Likewise.
2778         * passes.c (rest_of_handle_stack_regs): Update reg_to_stack call.
2779         (rest_of_handle_life): Update life_analysis call.
2780         (rest_of_compilation): Likewise, and also update
2781         branch_target_load_optimize call.
2782         * ra.c (reg_alloc): Update life_analysis call.
2783         * reg-stack.c (reg_to_stack): Likewise.  Also, don't take
2784         the insns stream as an argument.
2785         * regrename.c (copyprop_hardreg_forward): Update delete_noop_moves
2786         call.
2787         * rtl.c (branch_target_load_optimize, reg_to_stack): Update
2788         prototypes.
2789         * value-profile.c (branch_prob): Update life_analysis call.
2790         * web.c (web_main): Work on the CFG, not on the insns stream.
2791
2792         * config/ip2k/ip2k.c (ip2k_reorg): Update life_analysis calls.
2793         * config/m68hc11/m68hc11.c (m68hc11_reorg): Likewise.
2794         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2795
2796 2004-05-15  Joseph S. Myers  <jsm@polyomino.org.uk>
2797
2798         PR c/15444
2799         * c-format.c (avoid_dollar_number): New function.
2800         (check_format_info_main): Call avoid_dollar_number when operand
2801         numbers might occur but has_operand_number == 0.
2802
2803 2004-05-14  Richard Earnshaw  <rearnsha@arm.com>
2804
2805         * arm.md (all peephole2 patterns): Use predicates that validate
2806         register classes as appropriate.
2807
2808 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2809
2810         PR opt/14472
2811         * tree-tailcall.c (process_assignment): Use STRIP_NOPS to
2812         ignore type conversions that do not inhibit tail calling.
2813         (find_tail_calls): Likewise.
2814
2815 2004-05-14  Jeff Law  <law@redhat.com>
2816
2817         * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't even
2818         bother marking bypassed virtuals for out-of-ssa.  Instead merge
2819         bypassed virtuals into vars_to_rename just before into-ssa pass.
2820
2821         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Reorganize
2822         so that it picks up more opportunities to eliminate ABS expressions
2823         or turn them into negations.
2824
2825 2004-05-14  Steven Bosscher  <stevenb@suse.de>
2826
2827         * passes.c (rest_of_handle_null_pointer): Remove.
2828         (rest_of_handle_cse): Don't call rest_of_handle_null_pointer.
2829         (rest_of_compilation): Likewise.
2830         * rtl.h (delete_null_pointer_checks): Remove prototype.
2831         * gcse.c (rd_kill, rd_gen, reaching_defs, rd_out, ae_in, ae_out):
2832         Remove declarations.
2833         (get_bitmap_width, alloc_rd_mem, free_rd_mem, handle_rd_kill_set,
2834         compute_kill_rd, compute_rd, alloc_avail_expr_mem,
2835         free_avail_expr_mem, compute_ae_gen, expr_killed_p, compute_ae_kill,
2836         expr_reaches_here_p, computing_insn, def_reaches_here_p,
2837         can_disregard_other_sets, handle_avail_expr, classic_gcse,
2838         one_classic_gcse_pass, invalidate_nonnull_info,
2839         delete_null_pointer_checks_1, delete_null_pointer_checks,
2840         expr_reached_here_p_work): Remove.
2841         (gcse_main): Do not perform classic GCSE when optimizing for size.
2842         (alloc_pre_mem, free_pre_mem): Don't touch ae_in and ae_out, they
2843         are never used.
2844
2845 2004-05-14  Andrew Pinski  <pinskia@physics.uc.edu>
2846
2847         PR optimization/14466
2848         * tree-complex.c (make_temp): Remove.
2849         (gimplify_val): Replace make_temp with make_rename_temp
2850         and add NULL as the second argument.
2851         (expand_complex_div_wide): Likewise.
2852         * tree-dfa.c (make_rename_temp): New function.
2853         * tree-flow.h (make_rename_temp): Declare.
2854         * tree-sra.c (make_temp): Remove.
2855         (lookup_scalar): Replace make_temp with make_rename_temp.
2856         (create_scalar_copies): Likewise.
2857         * tree-ssa-phiopt.c (conditional_replacement): When we
2858         get non gimple create a temporary variable to hold the
2859         casted expression.
2860
2861 2004-05-14  Paul Brook  <paul@codesourcery.com>
2862
2863         * stor-layout.c (update_alignment_for_field): Use
2864         targetm.align_anon_bitfield.
2865         * target-def.h (TARGET_ALIGN_ANON_BITFIELD): Define.
2866         (TARGET_INITIALIZER): Use it.
2867         * target.h (struct gcc_target): Add align_anon_bitfield.
2868         * config/arm/arm.c (arm_align_anon_bitfield):  New function.
2869         (TARGET_ALIGN_ANON_BITFIELD): Define.
2870         * doc/tm.texi: Document TARGET_ALIGN_ANON_BITFIELD.
2871
2872 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
2873
2874         * tree.def (documentation): Remove mention of class 'b'.
2875         (BLOCK): Now in class 'x'.
2876         * c-common.c (verify_tree): Remove case 'b'.
2877         * c-typeck.c (same_translation_unit_p): Change 'b' to 'x'.
2878         * calls.c (calls_function_1): Control cannot get past the switch
2879         when exp is a BLOCK.
2880         * print-tree.c (print_node): Move code for class 'b' to the class
2881         'c'/'x' switch, as case BLOCK.
2882         * tree.c (tree_size, make_node_stat, tree_node_structure): Likewise.
2883         (unsafe_for_reeval, substitute_placeholder_in_expr)
2884         (stabilize_reference_1): Remove case 'b'.
2885         * tree-browser.c (browse_tree): Change all tests for TREE_CODE_CLASS
2886         of something being 'b' to tests for TREE_CODE of something being
2887         BLOCK.
2888         * tree-ssa-operands.c (get_expr_operands): Likewise.
2889
2890 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2891
2892         * tree-gimple.c: Rename from tree-simple.c.
2893         * tree-gimple.h: Rename from tree-simple.h.
2894         * c-gimplify.c: Rename from c-simplify.c
2895         * Makefile.in, c-decl.c, gimple-low.c, gimplify.c,
2896         langhooks.c, tree-alias-ander.c, tree-alias-common.c,
2897         tree-complex.c, tree-dfa.c, tree-flow.h, tree-inline.c,
2898         tree-into-ssa.c, tree-iterator.c, tree-mudflap.c,
2899         tree-nested.c, tree-nomudflap.c, tree-outof-ssa.c, tree-sra.c,
2900         tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-copyrename.c,
2901         tree-ssa-dce.c, tree-ssa-live.c, tree-ssa-pre.c, tree-ssa.c:
2902         Update.
2903
2904 2004-05-14  Ranjit Mathew  <rmathew@hotmail.com>
2905
2906         * doc/sourcebuild.texi: Mention libbanshee and libmudflap.
2907
2908 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2909
2910         * tree-ssa.c (delete_tree_ssa): XFREE
2911         bitmaps allocated with BITMAP_XMALLOC.
2912
2913         * tree-ssa-pre.c (execute_pre): Free ephi_use_pool and
2914         idfs_cache at the end of the function.
2915
2916         * tree-ssa-live.c (calculate_live_on_entry): Free saw_def
2917         at the end of the function.
2918
2919         * tree-ssa-dce.c (perform_tree_ssa_dce): Free
2920         el at the end of the function.
2921
2922         * tree-into-ssa.c (insert_phi_nodes_for): XFREE
2923         bitmaps allocated with BITMAP_XMALLOC.
2924
2925         * loop-unswitch.c (unswitch_single_loop): Free bbs at
2926         the end.
2927
2928         * final.c (shorten_branches): Free uid_shuid before
2929         reallocating it.
2930
2931         * bb-reoder.c (connect_traces): Free cold_traces at the end.
2932
2933 2004-05-13  Jeff Law  <law@redhat.com>
2934
2935         * tree-ssa-live.c (calculate_live_on_entry): Ignore virtual
2936         variables.  Simplify slightly by using USE_OP/DEF_OP instead
2937         of USE_OP_PTR/DEF_OP_PTR and dereferencing the result.
2938
2939         * tree-into-ssa.c (compute_global_livein): Use EXECUTE_IF_SET_IN_BITMAP
2940         rather than iterating through the blocks testing each bit in
2941         livein to initialize the worklist.
2942         (mark_def_sites): Remove useless checks of KILLS for virtual
2943         operands.
2944
2945         * tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
2946         new parameters for the statement and variable worklist as well
2947         as a bitmap of interesting SSA_NAMEs.  Walk over the statement
2948         worklist recording interesting variables in the variable worklist
2949         and bitmap.  Handle casts between integral and boolean types.
2950         (substitute_single_use_vars): Accept new parameters for the statement
2951         and variable worklist.  When a substitution is made add a new
2952         entry to the statement worklist.  Handle casts between integral
2953         and boolean types.
2954         (tree_ssa_forward_propagate_single_use_vars): Rework to pass
2955         worklists to children.  Iterate until the statement worklist
2956         is empty.
2957
2958 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
2959
2960         * tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
2961         the end of the block.
2962
2963         * tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
2964         with BITMAP_XMALLOC.
2965
2966         * tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
2967         with BITMAP_XMALLOC.
2968
2969         * tree-ssa-dom.c (tree_ssa_dominator_optimize):
2970         Free nonzero_vars at the end of the function.
2971
2972         * convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
2973         need to generate code instead of a NOP_EXPR.
2974
2975 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
2976
2977         * gcc.c (default_compilers): Fill out initializers for new Fortran
2978         entries.
2979
2980 2004-05-13  Paul Brook  <paul@codesourcery.com>
2981
2982         * config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
2983
2984 2004-05-13  Paul Brook  <paul@codesourcery.com>
2985
2986         * config/arm/arm.c (arm_default_short_enums): New function.
2987         (TARGET_DEFAULT_SHORT_ENUMS): Define.
2988
2989 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
2990
2991         Merge from tree-ssa-20020619-branch.
2992
2993         * Makefile.in (reload1.o-warn): Add.
2994         (tree-alias-ander.o-warn): Add.
2995         (GMPLIBS): Define.
2996         (GMPINC): Define.
2997         (BANSHEELIB): Define.
2998         (BANSHEEINC): Define.
2999         (TREE_DUMP_H): Define.
3000         (TREE_SIMPLE_H): Define.
3001         (TREE_FLOW_H): Define.
3002         (LIBDEPS): Add BANSHEELIB.
3003         (INCLUDES): Add BANSHEEINC and GMPINC.
3004         (C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
3005         c-mudflap.o and c-pretty-print.o.
3006         (C_OBJS): Remove c-pretty-print.o.
3007         (OBJS-common): Remove sibcall.o.
3008         Add tree-cfg.o, tree-dfa.o, tree-eh.o,
3009         tree-ssa.o, tree-optimize.o, tree-simple.o,
3010         tree-alias-type.o, gimplify.o, tree-pretty-print.o,
3011         tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
3012         tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
3013         tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
3014         tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
3015         tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
3016         tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
3017         tree-tailcall.o, gimple-low.o, tree-iterator.o,
3018         tree-phinodes.o, tree-ssanames.o, tree-sra.o,
3019         tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
3020         tree-profile.o.
3021         (OBJC-archive): Add tree-nomudflap.o.
3022         (cc1): Add dependency on @TREEBROWSER@.
3023         (c-decl.o): Add dependency on TREE_DUMP_H.
3024         (c-dump.o): Likewise.
3025         (c-common.o): Add dependency on tree-iterator.h
3026         (c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
3027         (gtype-desc.o): Add dependency on TREE_FLOW_H.
3028         (tree.o): Add dependency on tree-iterator.h,
3029         BASIC_BLOCK_H and TREE_FLOW_H.
3030         (tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
3031         (langhooks.o): Add dependency on TREE_SIMPLE_H.
3032         (tree-alias-type.o, tree-alias-ander.o,
3033         tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
3034         tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
3035         tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
3036         tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
3037         domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
3038         tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
3039         tree-nested.o, tree-iterator.o, tree-dfa.o,
3040         tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
3041         tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
3042         gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
3043         tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
3044         tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
3045         tree-sra.o, tree-complex.o, tree-profile.o,
3046         rtl-profile.o): New rules.
3047         (function.o): Add dependency on basic-block.h
3048         (expr.o): Add dependency on tree-iterator.h.
3049         (sibcall.o): Remove.
3050         (profile.o): Depend on TREE_FLOW_H instead of TREE_H.
3051         (cfg.o): Add dependency on TIMEVAR_H.
3052         (cfghooks.o): Add dependency on TREE_FLOW_H.
3053         (reg-stack.o): Add dependency on basic-block.h.
3054         (GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
3055         c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
3056         tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
3057         tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
3058         tree-alias-type.h, tree-alias-common.h,
3059         tree-alias-type.c, tree-alias-common.c,
3060         tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
3061         rtl-profile.c and tree-nested.c.
3062         (gt-tree-alias-common.h, gt-tree-mudflap.h,
3063         gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
3064         gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
3065         gt-tree-cfg.h, gt-tree-nested.h): New rules.
3066         (TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
3067         * basic-block.h: Include predict.h
3068         (struct edge_def): Add GTY marker.
3069         Change field 'insns' to be a union of tree and rtx.
3070         (EDGE_TRUE_VALUE): Define.
3071         (EDGE_FALSE_VALUE): Define.
3072         (EDGE_EXECUTABLE): Define.
3073         (struct bb_ann_d): Forward declare.
3074         (struct basic_block_def): Add GTY marker.
3075         Remove fields head_tree and end_tree.
3076         Add fields stmt_list, rbi and tree_annotations.
3077         (struct reorder_block_def): Define.
3078         (basic_block_info): Add GTY marker.
3079         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
3080         variables instead of macros.
3081         (flow_call_edges_add): Remove declaration.
3082         (make_eh_edge): Remove declaration.
3083         (brief_dump_cfg, find_edge, tree_predicted_by_p,
3084         rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
3085         predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
3086         cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
3087         alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
3088         (try_redirect_by_replacing_jump): Modfiy return type to
3089         edge instead of bool.
3090         * bb-reorder.c (copy_bb): Call duplicate_block
3091         instead of cfg_layout_duplicate_bb.
3092         (copy_bb_p): Call can_duplicate_block_p instead of
3093         cfg_layout_can_duplicate_bb_p.
3094         * bitmap.c (bitmap_first_set_bit): Abort if word
3095         wasn't found.
3096         (bitmap_last_set_bit): Likewise.
3097         * builtin-types.def (DEF_FUNCTION_TYPE_2): Add
3098         (DEF_FUNCTION_TYPE_3): Add.
3099         * builtins.c (c_strlen): Make extern.
3100         (builtin_save_expr): New.
3101         (expand_builtin_nonlocal_goto): New.
3102         (expand_builtin_constant_p): Remove.
3103         (expand_builtin_mathfn): Call builtin_save_expr instead
3104         of save_expr.
3105         (expand_builtin_mathfn_2): Likewise.
3106         (expand_builtin_strcmp): Likewise.
3107         (expand_builtin_strncmp): Likewise.
3108         (expand_builtin_strcat): Likewise.
3109         (fold_builtin_cabs): Likewise.
3110         (expand_builtin_alloca): Don't trigger if -fmudflap is
3111         given.
3112         (build_string_literal): Set TREE_INVARIANT on new node.
3113         (expand_builtin_profile_fun): New.
3114         (round_trampoline_addr): New.
3115         (expand_builtin_init_trampoline): New.
3116         (expand_builtin_adjust_trampoline): New.
3117         (expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
3118         <BUILT_IN_CONSTANT_P>: Return const0_rtx;
3119         <BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
3120         BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
3121         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
3122         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
3123         Handle.
3124         (fold_builtin_expect): New.
3125         (fold_builtin_isascii): Don't return non-constant results
3126         in GIMPLE form.
3127         (fold_builtin_isdigit): Likewise.
3128         (fold_builtin_1): New.
3129         (fold_builtin): Call it.
3130         (build_function_call_expr): Update call to build a new
3131         CALL_EXPR.
3132         (purge_builtin_constant_p): Remove.
3133         (simplify_builtin, simplify_builtin_memcmp,
3134         simplify_builtin_strcmp, simplify_builtin_strncmp,
3135         simplify_builtin_strpbrk, simplify_builtin_strstr,
3136         simplify_builtin_strchr, simplify_builtin_strrchr,
3137         simplify_builtin_strcat, simplify_builtin_strncat,
3138         simplify_builtin_strspn, simplify_builtin_strcspn,
3139         simplify_builtin_next_arg, simplify_builtin_va_start,
3140         simplify_builtin_sprintf): New.
3141         * builtins.def (BUILT_IN_STACK_ALLOC,
3142         BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
3143         BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
3144         BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
3145         BUILT_IN_PROFILE_FUNC_EXIT): Define.
3146         * c-common.c: Include tree-iterator.h and hashtab.h.
3147         (lang_statement_code_p): Declare.
3148         (lang_gimplify_stmt): Declare.
3149         (fix_string_type): Set TREE_INVARIANT for value.
3150         (pointer_int_sum): Rely on build to set TREE_CONSTANT.
3151         (c_type_hash): New.
3152         (c_common_get_alias_set): Handle multiple type nodes
3153         referring to "the same" type, currently for C90 only.
3154         (c_add_case_label): Use create_artificial_label.
3155         (finish_label_address_expr): Don't set TREE_CONSTANT on
3156         result.
3157         (c_expand_expr): Don't handle STMT_EXPR.
3158         (handle_alias_attribute): Marke aliased variables to be
3159         TREE_STATIC.
3160         (handle_nonnull_attribute): Initialize arg_num.
3161         (check_function_nonnull): Likewise.
3162         (c_walk_subtrees): New.
3163         (c_estimate_num_insns_1): Don't handle
3164         EXPR_WITH_FILE_LOCATION nor FILE_STMT.
3165         (c_decl_uninit_1): Remove.
3166         (c_decl_uninit): Remove.
3167         (c_warn_unused_result): New.
3168         * c-common.def (ASM_STMT): Change number of operands
3169         to 4.
3170         (FILE_STMT): Remove.
3171         * c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
3172         Remove.
3173         (lang_gimplify_stmt): Add.
3174         (expand_stmt): Remove.
3175         (ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3176         ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
3177         ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
3178         FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
3179         ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
3180         (genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3181         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3182         genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
3183         genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
3184         genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
3185         genrtl_compound_stmt, genrtl_asm_stmt,
3186         genrtl_cleanup_stmt, c_decl_uninit): Remove.
3187         (c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
3188         c_tree_chain_matters_p, c_warn_unused_result,
3189         c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
3190         Declare.
3191         * c-convert.c (convert): Make convert work when
3192         converting to compatible types across translation unit.
3193         * c-decl.c: Include langhooks.h, tree-mudflap.h,
3194         tree-simple.h, diagnostic.h and tree-dump.h
3195         (merge_decls): Initialize oldtype to NULL.
3196         (finish_decl): Use DECL_HARD_REGISTER instead of
3197         DECL_C_HARD_REGISTER.
3198         (check_bitfield_type_and_width): Check for null
3199         lang_type_specific when check the precision of an enum.
3200         (grokdeclarator): Immediately layout an ARRAY_TYPE used
3201         in a pointer-to-array declarator.
3202         (finish_struct): Clear allocated struct lang_type.
3203         (finish_enum): Set enum_min and enum_max.  Set
3204         TYPE_MIN/MAX_VALUE to the limits of the compatible type,
3205         not to the enumerators.
3206         (set_decl_nonlocal): New.
3207         (store_parm_decls): Use it via walk_tree.
3208         (c_finalize): New.
3209         (finish_function): When !targetm.have_ctors_dtors,
3210         record static constructors and destructors here...
3211         (c_expand_body_1): ... not here.
3212         (c_expand_decl): Rename from c_expand_decl_stmt.
3213         Handle all C-specific expansion semantics.
3214         * c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
3215         STMT_LINENO.
3216         * c-format.c (handle_format_arg_attribute): Initialize
3217         format_num.
3218         * c-lang.c: Include tree-inline.h
3219         (LANG_HOOKS_EXPAND_DECL,
3220         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3221         LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
3222         LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
3223         LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
3224         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
3225         LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
3226         (c_types_compatible_p): New.
3227         * c-mudflap.c: New file.
3228         * c-objc-common.c: Include tree-mudflap.h
3229         (start_cdtor, finish_cdtor): Collapse
3230         together into
3231         (build_cdtor): ...here.  Update to construct a complete tree
3232         for the function.  No need to call push_scope, pop_scope, or
3233         clear_last_expr, or set current_function_cannot_inline.
3234         (c_missing_noreturn_ok_p): Change prototype to return
3235         bool.
3236         (c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
3237         * c-opts.c (c_common_handle_option): Move handling of -fdump- to
3238         opts.c.
3239         (c_common_post_options): Don't ever use rtl inlining.
3240         * c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
3241         * c-pragma.c (handle_pragma_redefine_extname): Define
3242         always.
3243         (init_pragma): Activate #pragma redefine_extname for mudflap.
3244         * c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
3245         (pp_c_initializer): Accept any type CONSTRUCTOR.
3246         (pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
3247         COMPLEX_TYPE.
3248         (decl_name_str): New local function.
3249         (pp_c_direct_declarator): Call it.
3250         (pp_c_primary_expression): Call it.
3251         (pp_c_id_expression): Call it.
3252         (pp_c_statement): Call it.
3253         (print_c_tree): Create new pp object.
3254         * c-pretty-print.h (pp_c_tree_decl_identifier,
3255         print_c_tree): Declare.
3256         * c-semantics.c: Include langhooks.h
3257         (lang_expand_stmt, lang_expand_decl_stmt,
3258         find_reachable_label_1, find_reachable_label,
3259         expand_unreachable_if_stmt, expand_unreachable_stmt,
3260         genrtl_do_stmt_1): Remove.
3261         (begin_stmt_tree): Don't check for changed filename.
3262         Call annotate_with_locus.
3263         (finish_stmt_tree): Don't set line for end of function.
3264         (build_stmt): Don't check type nodes for
3265         side effects.
3266         (build_stmt): Set TREE_SIDE_EFFECTS.
3267         Set EXPR_LOCUS instead of STMT_LINENO.
3268         (lang_expand_stmt, lang_expand_decl_stmt,
3269         expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
3270         genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
3271         genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
3272         genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
3273         genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
3274         genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
3275         genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
3276         find_reachable_label_1, expand_unreachable_if_stmt,
3277         expand_unreachable_stmt): Remove.
3278         (prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
3279         * c-simplify.c: New file.
3280         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
3281         (struct lang_type): Add fields enum_min and enum_max.
3282         (c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
3283         (c_expand_decl, c_missing_noreturn_ok_p,
3284         c_types_compatible_p): Declare.
3285         * c-typeck.c (tagged_types_tu_compatible_p): Allow for
3286         compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
3287         (default_function_array_conversion): Rely on build to
3288         set TREE_CONSTANT.
3289         (parser_build_binary_op, pointer_diff): Likewise.
3290         (build_unary_op, build_binary_op): Likewise.
3291         (build_array_ref):
3292         (build_external_ref): Set TREE_INVARIANT.
3293         (build_c_cast, pop_init_level): Likewise.
3294         (process_init_element): Use ASM_VOLATILE_P.
3295         (build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
3296         (c_finish_case): Call c_do_switch_warnings.
3297         * c.opt (fdump-): Remove.
3298         * calls.c (try_to_integrate): Remove.
3299         (prepare_call_address): Replace fndecl arg with a
3300         precomputed static chain value.
3301         (emit_call_1): New argument for full call expr.
3302         (flags_from_decl_or_type): Call special_function_p.
3303         (initialize_argument_information): Add argument
3304         may_tailcall.
3305         (purge_reg_equiv_notes): New.
3306         (expand_call): Do not try to expand calls inline.
3307         (fixup_tail_calls): New.
3308         * cfg.c: Include timevar.h and ggc.h.
3309         (bb_pool, edge_pool): Remove.
3310         (ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
3311         (entry_exit_blocks): Remove.
3312         (rbi_pool): Declare.
3313         (init_flow): Do not create pools.
3314         Allocate entry/exit block.
3315         (free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
3316         (alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
3317         (unlink_block): Clear b->prev_bb and b->next_bb.
3318         (compact_blocks): Clear all slots of BASIC_BLOCK array.
3319         (dump_flow_info): Work on trees too.
3320         (dump_cfg_bb_info): New.
3321         (brief_dump_cfg): New.
3322         * cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
3323         (find_edge): New.
3324         * cfgbuild.c (rtl_make_eh_edge): Rename from
3325         make_eh_edge.  Update all users.
3326         (find_basic_blocks): Don't call VARRAY_FREE on
3327         basic_block_info.
3328         * cfgcleanup.c (outgoing_edges_match): Initialize newpos1
3329         and newpos2.
3330         (delete_unreachable_blocks): Return changed status.
3331         (merge_seq_blocks): New.
3332         * cfghooks.c: Include tree-flow.h
3333         (tree_register_cfg_hooks, ir_type): New.
3334         (redirect_edge_and_branch): Change return type to edge.
3335         (predict_edge, predicted_by_p, can_duplicate_block_p,
3336         duplicate_block, block_ends_with_call_p,
3337         block_ends_with_condjump_p, flow_call_edges_add): New.
3338         * cfghooks.h (redirect_edge_and_branch): Change return
3339         type to edge.
3340         (predict_edge, predicted_by_p, can_duplicate_block_p,
3341         duplicate_block, block_ends_with_call_p,
3342         block_ends_with_condjump_p, flow_call_edges_add): Declare.
3343         (redirect_edge_and_branch): Change return type to edge.
3344         (struct cfg_hooks): Add fields block_ends_with_call_p,
3345         block_ends_with_condjump_p, flow_call_edges_add,
3346         predict_edge, predicted_by_p, can_duplicate_block_p and
3347         duplicate_block.
3348         (tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
3349         * cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
3350         (fixup_reorder_chain): Use initialize_bb_rbi.
3351         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
3352         (cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
3353         (can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
3354         (insn_locators_initialize): Use new info about blocks.
3355         * cfglayout.h (typedef struct reorder_block_def): Moved to
3356         basic_block.h.
3357         (cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
3358         removed.
3359         * cfgloop.c: Include tree.h and tree-flow.h.
3360         * cfgloop.h (create_loop_notes): Declare.
3361         * cfgloopmanip.c (create_loop_notes): New.
3362         * cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
3363         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
3364         and duplicate_block fields.
3365         (create_basic_block_structure): Don't look at
3366         RTX_INTEGRATED_P.
3367         (rtl_block_ends_with_call_p): New.
3368         (rtl_block_ends_with_condjump_p): New.
3369         (need_fake_edge_p): Moved from cfganal.c.
3370         (rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
3371         (rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
3372         rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
3373         (cfg_layout_rtl_cfg_hooks): Ditto.
3374         * cgraph.c (cgraph_mark_reachable_node): Don't force nested
3375         functions to be reachable.
3376         * cgraphunit.c (decide_is_function_needed):
3377         * cgraphunit.c (decide_is_function_needed): Nested functions of extern
3378         inline functions don't need to be output.
3379         (cgraph_assemble_pending_functions): Don't do anything
3380         special for nested functions.
3381         (cgraph_mark_functions_to_output): Likewise.
3382         (cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
3383         (cgraph_analyze_function): Use estimate_num_insns.
3384         (cgraph_mark_functions_to_output): Likewise.
3385         (cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
3386         (cgraph_expand_function): Allow functions to not be
3387         emitted.
3388         (cgraph_remove_unreachable_nodes):
3389         (cgraph_recursive_inlining_p): Simplify.
3390         (lookup_recursive_calls,
3391         cgraph_decide_recursive_inlining): New.
3392         (cgraph_decide_inlining_*): Update calls of
3393         cgraph_mark_inline.
3394         * combine.c (get_pos_from_mask): Always set *plen.
3395         * common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
3396         ftree-based-profiling, ftree-ccp, ftree-ch,
3397         ftree-combine-temps, ftree-copyrename, ftree-dce,
3398         ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
3399         ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
3400         ftree-lrs): Add.
3401         * config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
3402         Undefine.
3403         * configure.ac: Add --enable-tree-browser option.
3404         Add --with-libbanshee option.
3405         Add GMPLIBS and GMPINC.
3406         * configure: Regenerate.
3407         * coverage.c (tree_ctr_tables): New.
3408         (coverage_counter_alloc): Use it.
3409         (build_ctr_info_value): Ditto.
3410         (coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
3411         (tree_coverage_counter_ref): New.
3412         * coverage.h (coverage_counter_ref): Remove declaration.
3413         (rtl_coverage_counter_ref): Declare.
3414         (tree_coverage_counter_ref): Declare.
3415         * cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
3416         (eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
3417         * cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
3418         (struct cse_basic_block_data): Rename enum values to not
3419         conflict with profile.h; update all uses.
3420         * dbxout.c (dbxout_symbol_location): Don't mention integrate.c
3421         in comments.
3422         * defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
3423         * diagnostic.h (debug_output_buffer, dump_generic_node,
3424         print_generic_stmt, print_generic_stmt_indented,
3425         print_generic_expr, print_generic_decl,
3426         debug_generic_expr, debug_generic_stmt, debug_c_tree):
3427         Declare.
3428         * dominance.c: Cache immediate dominators.
3429         * domwalk.c: New file.
3430         * domwalk.h: New file.
3431         * dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
3432         (gen_subprogram_die): Generate a DIE for a named
3433         return value.
3434         (loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
3435         (add_location_or_const_value_attribute): Likewise.
3436         (add_bound_info): Likewise.
3437         (gen_decl_die): Likewise.
3438         * emit-rtl.c (maybe_set_first_label_num): New.
3439         (copy_most_rtx): Don't copy the integrated flag.
3440         Copy the new return_val flag.
3441         * et-forest.c (MAX_NODES): Define.
3442         (record_path_before_1): Abort if len is greater than
3443         MAX_NODES.
3444         * except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
3445         gen_eh_region_catch, gen_eh_region_allowed,
3446         gen_eh_region_must_not_throw, get_eh_region_number,
3447         get_eh_region_may_contain_throw, get_eh_region_tree_label,
3448         set_eh_region_tree_label, expand_resx_expr): New.
3449         (expand_eh_region_start, expand_start_catch): Use them.
3450         (expand_end_catch): Tidy.
3451         (note_eh_region_may_contain_throw): Take region argument.
3452         (note_current_region_may_contain_throw): New.
3453         (get_exception_filter): Export.
3454         (collect_eh_region_array): Export.
3455         (remove_unreachable_regions): Check ERT_TRY based on reachability
3456         of catches, not reachability of continue_label.  Never remove
3457         ERT_MUST_NOT_THROW regions.
3458         (collect_rtl_labels_from_trees): New.
3459         (convert_from_eh_region_ranges): Use it.
3460         (connect_post_landing_pads): Handle dying cleanups.
3461         (struct reachable_info): Add callback data.
3462         (add_reachable_handler): Invoke the callback.
3463         (foreach_reachable_handler): New.
3464         (reachable_handlers): Use it.
3465         (arh_to_landing_pad, arh_to_label): New.
3466         (can_throw_internal_1): Split out from can_throw_internal.
3467         (can_throw_external_1): Similarly.
3468         * except.h: Update.
3469         * explow.c (emit_stack_save): Remove savearea mode check.
3470         (update_nonlocal_goto_save_area): New.
3471         (allocate_dynamic_stack_space): Use it.
3472         (probe_stack_range): Never emit loop notes.
3473         * expmed.c (extract_fixed_bit_field): Always propagate the
3474         target for the shift if it is a REG.
3475         * expr.c: Include tree-iterator.h
3476         (is_zeros_p): Remove.
3477         (categorize_ctor_elements_1, categorize_ctor_elements): New.
3478         (count_type_elements): New.
3479         (mostly_zeros_p): Use them.
3480         (expr_wfl_stack): Remove.
3481         (convert_move): Do nothing if to and from are the same.
3482         (emit_block_move_via_loop): Don't emit LOOP notes.
3483         (emit_move_insn): Don't handle CONSTANT_P_RTX.
3484         (emit_move_insn_1): Don't generate inline warnings.
3485         (expand_vars, expand_var): Split from ...
3486         (expand_expr_1): ... here.
3487         (expand_expr_real, expand_expr_real_1):  Use new macros
3488         EXPR_LOCATION and EXPR_HAS_LOCATION.
3489         * expr.h (simplify_builtin_fputs,
3490         simplify_builtin_strcpy, simplify_builtin_strncpy,
3491         expand_var, fixup_tail_calls,
3492         update_nonlocal_goto_save_area): Declare.
3493         (lookup_static_chain, expand_inline_function,
3494         mark_seen_cases): Remove.
3495         (prepare_call_address): Change type of 2nd argument to
3496         rtx.
3497         * final.c (profile_function): Update static chain test.
3498         (final): Don't look at RTX_INTEGRATED_P.
3499         * flags.h (flag_mudflap, flag_mudflap_threads,
3500         flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
3501         flag_tree_dce, flag_tree_combine_temps,
3502         flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
3503         flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
3504         flag_tree_points_to): Declare.
3505         (enum pta_type): Declare.
3506         * flow.c (lang_missing_noreturn_ok_p): Remove.
3507         (check_function_return_warnings): Remove.
3508         (update_life_info): Update comments.
3509         (free_basic_block_vars): Don't call VARRAY_FREE for
3510         basic_block_info.
3511         (regno_uninitialized): Remove.
3512         * fold-const.c (int_const_binop): Make extern.
3513         (non_lvalue): Rely on build to set TREE_CONSTANT.
3514         (operand_equal_p): Replace only_const argument with
3515         flags.  Allow pure functions if OEP_PURE_SAME.
3516         (fold): Use OEP_ONLY_CONST.
3517         (invert_truthvalue) <NOP_EXPR> Break if argument is of
3518         boolean type.
3519         (fold_relational_hi_lo,
3520         nondestructive_fold_binary_to_constant,
3521         nondestructive_fold_unary_to_constant,
3522         fold_read_from_constant_string): New.
3523         * function.c (struct function): Remove calls_constant_p.
3524         (current_function_calls_constant_p): Remove.
3525         (inline_function_decl): Remove.
3526         (put_var_into_stack): Don't use it.
3527         (fix_lexical_addr): Likewise.
3528         (inline_function_decl): Remove extern declaration.
3529         (TRAMPOLINE_ALIGNMENT): Move to defaults.h.
3530         (trampolines_created): Move to varasm.c.
3531         (free_after_compilation): Update for removed fields.
3532         (allocate_struct_function): Likewise.
3533         (delete_handlers, lookup_static_chain): Remove.
3534         (fix_lexical_addr): Don't consider non-local variable refs.
3535         (trampoline_address): Remove.
3536         (round_trampoline_addr): Move to builtins.c.
3537         (adjust_trampoline_addr): Remove.
3538         (expand_function_start): Update for changes to static chain
3539         and nonlocal goto handling.
3540         (initial_trampoline): Move to varasm.c.
3541         (expand_function_end): Don't build trampolines or kill
3542         unreferenced nonlocal goto labels.
3543         (free_after_compilation): Don't set it.
3544         (expand_function_end): Likewise.
3545         (setjmp_vars_warning): Rename from
3546         uninitialized_vars_warning, remove uninitialized vars warning.
3547         (uninitialized_vars_warning): Remove old comment
3548         and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
3549         and do not call the langhook.
3550         (expand_function_start, expand_function_end): Don't do
3551         function instrumentation here.
3552         (clear_block_marks): Rename from reorder_blocks_0, export.
3553         (blocks_nreverse): Export.
3554         (uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
3555         of rtl.
3556         (reset_block_changes, record_block_change, finalize_block_changes,
3557         check_block_change, free_block_changes): New functions.
3558         (assign_parms): Setting of current_function_stdarg
3559         moved ...
3560         (allocate_struct_function): ... here.
3561         * function.h (struct function): Remove x_nonlocal_labels,
3562         x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
3563         x_context_display, x_trampoline_list, needs_context.
3564         Add static_chain_decl, nonlocal_goto_save_area.
3565         (struct function): Remove x_clobber_return_insn.
3566         Add tail_call_emit field, last_label_uid,
3567         unexpanded_var_list, dont_emit_block_notes,
3568         ib_boundaries_block, function_end_locus and saved_tree/saved_args.
3569         (clear_block_marks): Declare.
3570         * gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
3571         (mfwrap_spec, mflib_spec): Declare.
3572         (cpp_unique_options, cc1_options): Ditto.
3573         (default_compilers): Add .F and .f90.
3574         (static_specs): Add mfwrap and mflib.
3575         * gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
3576         CONSTANT_RTX_P.
3577         (reg_used_on_edge, reg_killed_on_edge, bypass_block):
3578         Update to match insns field in struct edge_def.
3579         * gdbinit.in (pgs, pge): Define.
3580         * genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
3581         instead of the integrated flag.
3582         * gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
3583         * gengtype-yacc.y (bitfieldlen): Add empty action.
3584         (struct_fields): Accept unnamed bitfields.
3585         (bitfieldlen): Split from ...
3586         (bitfieldopt): ... here.
3587         * gengtype.c (ifiles): Add tree-alias-type.h and
3588         tree-flow.h.
3589         * genrecog.c (validate_pattern): Do not handle
3590         CONSTANT_P_RTX.
3591         * gimple-low.c: New file.
3592         * gimplify.c: New file.
3593         * haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
3594         (restore_line_notes): Do not set RTX_INTEGRATED_P.
3595         * ifcvt.c (dead_or_predicable): Initialize local variable
3596         'earliest'.
3597         * input.h (expr_wfl_stack): Remove.
3598         * integrate.c (INTEGRATE_THRESHOLD): Remove.
3599         (setup_initial_hard_reg_value_integration): Likewise.
3600         (initialize_for_inline): Likewise.
3601         (note_modified_parmregs): Likewise.
3602         (integrate_parm_decls): Likewise.
3603         (process_reg_param): Likewise.
3604         (save_parm_insns): Likewise.
3605         (copy_insn_list): Likewise.
3606         (copy_insn_notes): Likewise.
3607         (compare_blocks): Likewise.
3608         (find_block): Likewise.
3609         (inlining): Likewise.
3610         (function_cannot_inline_p): Likewise.
3611         (parmdecl_map): Likewise.
3612         (in_nonparam_insns): Likewise.
3613         (save_for_inline): Likewise.
3614         (FIXED_BASE_PLUS): Likewise.
3615         (expand_inline_function): Likewise.
3616         (copy_rtx_and_substitute): Don't look at map->integrating,
3617         map->inline_target, and inlining, since we are never copying
3618         for integrating.
3619         Don't abort on RTX_INTEGRATED_P.
3620         (old_fun): Remove.
3621         (output_inline_function): Remove.
3622         * integrate.h (struct inline_map): Remove fields integrating,
3623         block_map, leaf_reg_map, inline_target, and local_return_label.
3624         * jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
3625         copy_loop_headers, never_reached_warning): Removed.
3626         (any_uncondjump_p): Reject nonlocal goto.
3627         * langhooks-def.h (lhd_types_compatible_p,
3628         lhd_expand_decl, lhd_gimplify_expr): Declare.
3629         (LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3630         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3631         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3632         LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
3633         LANG_HOOKS_GIMPLIFY_EXPR,
3634         LANG_HOOKS_GIMPLE_BEFORE_INLINING,
3635         LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
3636         LANG_HOOKS_GIMPLIFY_EXPR,
3637         LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
3638         (LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
3639         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
3640         LANG_HOOKS_FUNCTION_LEAVE_NESTED,
3641         LANG_HOOKS_RTL_EXPAND_INITIALIZER,
3642         LANG_HOOKS_DECL_UNINIT,
3643         LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
3644         * langhooks.c: Include tree-simple.h.
3645         (lhd_expand_decl): New.
3646         (lhd_types_compatible_p): New.
3647         (lhd_decl_uninit): Remove.
3648         (lhd_gimplify_expr): New.
3649         * langhooks.h (struct lang_hooks_for_rtl_expansion):
3650         Remove.
3651         (struct lang_hooks_for_functions): Add field
3652         missing_noreturn_ok_p.
3653         (struct lang_hooks): Add field expand_decl,
3654         types_compatible_p, gimplify_expr and
3655         gimple_before_inlining.
3656         Remove fields decl_uninit and rtl_expand
3657         * opts.c (decode_options): Set flag_tree_ccp,
3658         flag_tree_dce, flag_tree_dom, flag_tree_dse,
3659         flag_tree_pre, flag_tree_ter,
3660         flag_tree_live_range_split, flag_tree_sra,
3661         flag_tree_copyrename and flag_tree_ch at -O1 and higher.
3662         (common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
3663         OPT_fmudflapth, OPT_fmudflapir,
3664         OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
3665         OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
3666         OPT_ftree_dominator_opts, OPT_ftree_copyrename,
3667         OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
3668         OPT_ftree_points_to_ and OPT_ftree_pre.
3669         * output.h (regno_uninitialized, find_basic_blocks,
3670         cleanup_cfg, delete_unreachable_blocks,
3671         check_function_return_warnings): Remove.
3672         * params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
3673         PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
3674         PARAM_MAX_INLINE_RECURSIVE_DEPTH,
3675         PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
3676         PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
3677         * params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
3678         Define.
3679         * passes.c (rest_of_decl_compilation):
3680         (rest_of_handle_sibling_calls): Remove.
3681         (rest_of_handle_inlining): Remove.
3682         (rest_of_handle_gcse): Do not run
3683         purge_builtin_constant_p.
3684         (rest_of_compilation): Update.
3685         Do not call copy_loop_headers.
3686         Do rtl-based profiling only when
3687         !flag_tree_based_profiling.  Register rtl-based profiling
3688         hooks.
3689         * predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
3690         (predicted_by_p): Rename to ...
3691         (rtl_predicted_by_p): .. this one; make global
3692         (tree_predicted_by_p): New.
3693         (dump_prediction): Add FILE argument.
3694         (predict_edge): Rename to ...
3695         (rtl_predict_edge): .. this one.
3696         (tree_predict_edge): New.
3697         (combine_predictions_for_insn): Update calls of predict_edge.
3698         (predict_loops): Break out from ...
3699         (estimate_probability): ... here; update comments; move updating
3700         of unknown probabilities from ...
3701         (estimate_bb_frequencies): ... here.
3702         (combine_predictions_for_bb): New.
3703         (tree_predict_by_opcode): New.
3704         (tree_estimate_probability): New.
3705         * predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
3706         PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
3707         * predict.h: Add include guard.
3708         (predict_edge, predict_edge_def): Move prototypes to basic_block.h
3709         * pretty-print.c (pp_write_text_to_stream): Make extern.
3710         * pretty-print.h (pp_write_text_to_stream): Declare.
3711         * print-rtl.c (print_rtx): Don't print the integrated flag.
3712         Print the return_val flag.
3713         * print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
3714         of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
3715         Remove support for EXPR_WITH_FILE_LOCATION nodes.
3716         (print_node): Print TREE_INVARIANT and TREE_VISITED.
3717         * profile.c: Include cfghooks.h, tree-flow.h.
3718         (profile_hooks): New.
3719         (profile_dump_file): New.
3720         (instrument_edges): Use hooks instead of RTL-specific code.
3721         (instrument_values): Ditto.
3722         (get_exec_counts): Ditto.
3723         (compute_branch_probabilities): Ditto.
3724         (compute_value_histograms): Ditto.
3725         (branch_prob): Ditto.
3726         (find_spanning_tree): Ditto.
3727         (end_branch_prob): Ditto.
3728         (gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
3729         (gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
3730         (gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
3731         (gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
3732         (tree_register_profile_hooks): New.
3733         (rtl_register_profile_hooks): New.
3734         * ra-rewrite.c (rewrite_program): Clear variable info.
3735         * recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
3736         * regs.h: Add include guards.
3737         * reload.c (decompose): Clear val using memset.
3738         * rtl.def (CONSTANT_P_RTX): Remove.
3739         * rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
3740         (copy_loop_headers): Remove.
3741         (struct rtx_def): Replace the integrated flag with the
3742         return_val flag.
3743         (maybe_set_first_label_num): Declare.
3744         (init_branch_prob): Move declaration to value-prof.h.
3745         (end_branch_prob): Ditto.
3746         (branch_prob): Ditto.
3747         (never_reached_warning): Don't declare it.
3748         * rtlanal.c (get_related_value): Initialize get_jump_table_offset
3749         (hoist_insn_to_edge): Update to match field insns in
3750         struct edge_def.
3751         * sbitmap.c (sbitmap_realloc): New.
3752         * sbitmap.h (sbitmap_realloc): Declare.
3753         * sibcall.c: Remove file.
3754         * simplify-rtx.c (simplify_rtx): Do not handle
3755         CONSTANT_P_RTX.
3756         * stmt.c (parse_output_constraint): Don't warn for read-write
3757         memory operand.
3758         (tail_recursion_args): Use types_compatible_p langhook.
3759         (force_label_rtx): Don't look at inline_function_decl.
3760         (label_rtx): Set LABEL_PRESERVE_P appropriately.
3761         (expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
3762         (declare_nonlocal_label): Remove.
3763         (expand_goto): Don't handle nonlocal gotos.
3764         (expand_nl_handler_label): Remove.
3765         (expand_nl_goto_receivers): Remove.
3766         (expand_end_bindings): Don't expand_nl_goto_receivers.  Use
3767         update_nonlocal_goto_save_area.
3768         (expand_expr_stmt_value): Check TREE_NO_WARNING.
3769         (warn_if_unused_value): Likewise.
3770         (expand_start_loop, expand_loop_continue_here,
3771         expand_end_loop): Don't create loop notes.
3772         (all_cases_count, BITARRAY_TEST, BITARRAY_SET,
3773         mark_seen_cases, check_for_full_enumeration_handling): Remove.
3774         (expand_end_case_type): Don't do warn_switch handling.
3775         (pushcase, pushcase_range) Update add_case_node calls.
3776         (add_case_node): Add dont_expand_label argument.
3777         (same_case_target_p): Don't search rtl.
3778         (expand_start_bindings_and_block, expand_end_bindings):
3779         Don't emit block notes when dont_emit_block_notes.
3780         (using_eh_for_cleanups_p): Export.
3781         (expand_return): Allow any typed rhs.
3782         (expand_stack_alloc): New.
3783         (expand_stack_save, expand_stack_restore): New.
3784         (containing_blocks_have_cleanups_or_stack_level): New
3785         function.
3786         (asm_op_is_mem_input): New fn.
3787         (expand_asm_expr): New fn.
3788         (warn_if_unused_value): Check operand 0 of SAVE_EXPR
3789         nodes.
3790         * stor-layout.c (layout_type): Just return if type is
3791         error_mark_node.
3792         (update_alignment_for_field): Export.
3793         (variable_size): We don't care about global_bindings_p if
3794         the frontend doesn't want a list of the expressions.
3795         * system.h: Poison INTEGRATE_THRESHOLD.
3796         * timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
3797         TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
3798         TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
3799         TV_TREE_SSA_OTHER, TV_TREE_OPS,
3800         TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
3801         TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
3802         TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
3803         TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
3804         TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
3805         TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
3806         TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
3807         TV_CONTROL_DEPENDENCES): Define.
3808         * toplev.c: Include tree-alias-common.h
3809         (current_file_decl, flag_mudflap, flag_mudflap_threads,
3810         flag_mudflap_ignore_reads, flag_tree_based_profiling,
3811         flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
3812         flag_tree_dce, flag_tree_ch, flag_tree_sra,
3813         flag_tree_combine_temps, flag_tree_ter,
3814         flag_tree_live_range_split, flag_tree_dom,
3815         flag_tree_copyrename, flag_tree_dse): Declare.
3816         (f_options): Add tree-based-profiling, tree-gvn,
3817         tree-pre, tree-ccp, tree-dce,
3818         tree-dominator-opts, tree-copyrename, tree-dse,
3819         tree-combine-temps, tree-ter, tree-lrs and tree-ch.
3820         (wrapup_global_declarations): Don't output nested inlined functions.
3821         (general_init): Call init_tree_optimization_passes.
3822         (process_options): Sorry for -ftree-based-profiling plus
3823         -ftest-coverage or -fprofile-values.
3824         * toplev.h (init_tree_optimization_passes,
3825         flag_tree_based_profiling): Declare.
3826         * tracer.c (tail_duplicate): Use cfghooks for bb duplication.
3827         * tree-alias-ander.c: New file.
3828         * tree-alias-ander.h: New file.
3829         * tree-alias-common.c: New file.
3830         * tree-alias-common.h: New file.
3831         * tree-alias-type.c: New file.
3832         * tree-alias-type.h: New file.
3833         * tree-browser.c: New file.
3834         * tree-browser.def: New file.
3835         * tree-cfg.c: New file.
3836         * tree-complex.c: New file.
3837         * tree-dfa.c: New file.
3838         * tree-dump.c (dump_enable_all): New.
3839         (dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
3840         (dump_node): Remove const from field suffix and swtch.
3841         (dump_files): Add null entry, .generic, .nested, .vcg,
3842         .xml and a match-all entry.
3843         (extra_dump_files, extra_dump_files_in_use,
3844         extra_dump_files_alloced): Declare
3845         (dump_option_value_info): Add raw, details, stats,
3846         blocks, vops, lineno, uid and all.
3847         (dump_register): New.
3848         (get_dump_file_info): New.
3849         (dump_begin): Call it.
3850         Do nothing for TDI_none.
3851         (dump_begin): Include phase number in dump filename.
3852         (dump_enable_all): New.
3853         (dump_switch_p_1): Split out from dump_switch_p.
3854         (dump_switch_p): Handle extra_dump_files.
3855         Start our scan at TDI_none + 1.
3856         If -fdump-tree-all was given, call dump_enable_all.
3857         * tree-dump.h: Include splay-tree.h.
3858         (dump_function, dump_function_to_file, dump_register):
3859         Declare.
3860         * tree-eh.c: New file.
3861         * tree-flow-inline.h: New file.
3862         * tree-flow.h: New file.
3863         * tree-inline.c: Re-write to handle inlining on GIMPLE.
3864         * tree-inline.h (walk_tree,
3865         walk_tree_without_duplicates): Move to tree.h.
3866         (estimate_num_insns): Declare.
3867         * tree-into-ssa.c: New file.
3868         * tree-iterator.c: New file.
3869         * tree-iterator.h: New file.
3870         * tree-mudflap.c: New file.
3871         * tree-mudflap.h: New file.
3872         * tree-nested.c: New file.
3873         * tree-nomudflap.c: New file.
3874         * tree-nrv.c: New file.
3875         * tree-optimize.c (dump_flags, vars_to_rename,
3876         in_gimple_form, all_passes, pass_gimple,
3877         pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
3878         (execute_gimple, execute_rebuild_bind,
3879         gate_all_optimizations, execute_del_cfg,
3880         register_one_dump_file, register_dump_files, dup_pass_1,
3881         init_tree_optimization_passes, execute_todo,
3882         execute_one_pass, execute_pass_list): New.
3883         (clear_decl_rtl): Remove.
3884         (tree_rest_of_compilation): Update to use tree
3885         optimizers.
3886         * tree-outof-ssa.c: New file.
3887         * tree-pass.h: New file.
3888         * tree-phinodes.c: New file.
3889         * tree-pretty-print.c: New file.
3890         * tree-profile.c: New file.
3891         * tree-simple.c: New file.
3892         * tree-simple.h: New file.
3893         * tree-sra.c: New file.
3894         * tree-ssa-alias.c: New file.
3895         * tree-ssa-ccp.c: New file.
3896         * tree-ssa-copy.c: New file.
3897         * tree-ssa-copyrename.c: New file.
3898         * tree-ssa-dce.c: New file.
3899         * tree-ssa-dom.c: New file.
3900         * tree-ssa-dse.c: New file.
3901         * tree-ssa-forwprop.c: New file.
3902         * tree-ssa-live.c: New file.
3903         * tree-ssa-live.h: New file.
3904         * tree-ssa-loop.c: New file.
3905         * tree-ssa-operands.c: New file.
3906         * tree-ssa-operands.h: New file.
3907         * tree-ssa-phiopt.c: New file.
3908         * tree-ssa-pre.c: New file.
3909         * tree-ssa.c: New file.
3910         * tree-ssanames.c: New file.
3911         * tree-tailcall.c: New file.
3912         * tree.c: Include tree-iterator.h, basic-block.h and
3913         tree-flow.h.
3914         (tree_node_kind): Add phi_nodes and ssa names.
3915         (tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
3916         EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
3917         (make_node_stat): Handle PHI_NODE and SSA_NAME.
3918         <'c'> Set TREE_INVARIANT.
3919         (copy_node_stat): Abort if trying to copy a
3920         STATEMENT_LIST.
3921         Clear TREE_VISITED.
3922         Clear annotation field.
3923         (build_constructor): Copy TREE_INVARIANT from vals.
3924         Don't clear TREE_CONSTANT.
3925         (expr_first, expr_last, expr_length): Remove.
3926         (staticp): Pass unknown component references to the language.
3927         (save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
3928         (skip_simple_arithmetic): Likewise.
3929         (stabilize_reference_1): Likewise.
3930         (tree_node_structure): Handle PHI_NODE, EPHI_NODE,
3931         EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
3932         STATEMENT_LIST.
3933         (lhd_unsave_expr_now): Remove.
3934         (unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
3935         (recompute_tree_invarant_for_addr_expr): New.
3936         (build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
3937         Call recompute_tree_invarant_for_addr_expr.
3938         Set TREE_INVARIANT accordingly.
3939         (build2_stat): Don't handle CALL_EXPR.
3940         (build3_stat): Don't call build2_stat for CALL_EXPRs.
3941         (build_expr_wfl): Remove.
3942         (annotate_with_file_line, annotate_with_locus): New.
3943         (simple_cst_equal): Call simple_cst_list_equal to compare
3944         CONSTRUCTOR_ELTS pointers.
3945         (iterative_hash_expr): Don't hash types associated
3946         with conversions.  Instead hash on the signedness of the
3947         toplevel object and the operand of the conversion.
3948         (dump_tree_statistics): Call ssanames_print_statistics
3949         and phinodes_print_statistics.
3950         (ephi_node_elt_check_failed, phi_node_elt_check_failed,
3951         add_var_to_bind_expr, build_empty_stmt, is_essa_node,
3952         needs_to_live_in_memory): New.
3953         (initializer_zerop): Handle VECTOR_CST.  Don't check
3954         AGGREGATE_TYPE_P for CONSTRUCTOR.
3955         * tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
3956         SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
3957         PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
3958         (GOTO_SUBROUTINE_EXPR): Change type to 's'.
3959         (CALL_EXPR): Add another operand.
3960         (EXPR_WITH_FILE_LOCATION): Remove.
3961         (SWITCH_EXPR): Add another operand.
3962         * tree.h: Update various comments.
3963         (union tree_ann_d): Forward declare.
3964         (struct tree_common): Add fields nowarning_flag,
3965         invariant_flag and visited.
3966         (EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
3967         PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
3968         EPHI_NODE_ELT_CHECK, TREE_BLOCK,
3969         STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
3970         TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
3971         IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
3972         EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
3973         EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
3974         CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
3975         BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
3976         ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
3977         ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
3978         COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
3979         CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
3980         EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
3981         SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
3982         SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
3983         PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
3984         PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
3985         EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
3986         EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
3987         EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
3988         EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
3989         EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
3990         EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
3991         EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
3992         EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
3993         EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
3994         EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
3995         TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
3996         DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
3997         DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
3998         STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
3999         TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
4000         TDF_UID,): Define.
4001         (TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
4002         EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
4003         EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
4004         EXPR_WFL_SET_LINECOL): Remove.
4005         (phi_node_elt_check_failed, ephi_node_elt_check_failed,
4006         make_phi_node, init_phinodes, fini_phinodes,
4007         release_phi_node, phinodes_print_statistics,
4008         init_ssanames, fini_ssanames, make_ssa_name,
4009         release_ssa_name, ssanames_print_statistics,
4010         annotate_with_file_line, build_empty_stmt,
4011         annotate_with_locus, expr_only, categorize_ctor_elements,
4012         count_type_elements, add_var_to_bind_expr, is_essa_node,
4013         expand_stack_alloc, expand_stack_save,
4014         expand_stack_restore, add_case_node, operand_equal_p,
4015         nondestructive_fold_unary_to_constant,
4016         nondestructive_fold_binary_to_constant,
4017         fold_read_from_constant_string, int_const_binop,
4018         strip_float_extensions, simplify_builtin, c_strlen,
4019         recompute_tree_invarant_for_addr_expr,
4020         needs_to_live_in_memory, make_vector,
4021         setjmp_vars_warning, update_alignment_for_field,
4022         expand_asm_expr, asm_op_is_mem_input,
4023         containing_blocks_have_cleanups_or_stack_level,
4024         create_artificial_label, gimplify_function_tree,
4025         get_name, unshare_expr, walk_tree,
4026         walk_tree_without_duplicates, in_gimple_form): Declare.
4027         (struct tree_exp): Add fields locus and block.
4028         (struct tree_ssa_name, struct edge_def, struct
4029         tree_phi_node, struct tree_eref_common, struct
4030         tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
4031         union alias_var_def, struct tree_statement_list_node,
4032         struct tree_statement_list, enum operand_equal_flag): Declare.
4033         (enum tree_node_structure_enum): Add TS_SSA_NAME,
4034         TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
4035         TS_STATEMENT_LIST.
4036         (union tree_node): Add fields ssa_name, phi, eref, ephi,
4037         euse and stmt_list.
4038         (function_cannot_inline_p, uninitialized_vars_warning,
4039         save_for_inline, output_inline_function, all_cases_count,
4040         check_for_full_enumeration_handling,
4041         declare_nonlocal_label): Remove.
4042         (enum tree_dump_index): Add TDI_none, TDI_tu,
4043         TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
4044         * unroll.c (unroll_loop): Don't clear map->inline_target.
4045         * unwind-sjlj.c (uw_install_context): Make a proper static inline
4046         function.
4047         * value-prof.c (value_prof_hooks): New.
4048         (find_values_to_profile): Rename to rtl_find_values_to_profile.
4049         Move rtl-specific bits in from branch_prob.
4050         (value_profile_transformations): Rename to
4051         rtl_value_profile_transformations.
4052         (struct value_prof_hooks): New.
4053         (rtl_value_prof_hooks): New.
4054         (rtl_register_value_prof_hooks): New.
4055         (tree_find_values_to_profile): New stub.
4056         (tree_value_profile_transformations): New stub.
4057         (tree_value_prof_hooks): New stub.
4058         (tree_register_value_prof_hooks): New stub.
4059         (find_values_to_profile): New.
4060         (value_profile_transformations): New.
4061         * value-prof.h: Add multiple inclusion guard.
4062         (struct histogram_value): Change rtx fields to void *.
4063         (rtl_register_value_prof_hooks): New declaration.
4064         (tree_register_value_prof_hooks): New declaration.
4065         (find_values_to_profile): New declaration.
4066         (free_profiled_values): New declaration.
4067         (value_profile_transformations): New declaration.
4068         (struct profile_hooks): New declaration.
4069         (init_branch_prob): Declaration moved from rtl.h.
4070         (branch_prob): Declaration moved from rtl.h.
4071         (end_branch_prob): Declaration mooved from rtl.h.
4072         (tree_register_profile_hooks): New declaration.
4073         (rtl_register_profile_hooks): New declaration.
4074         (tree_profile_hooks): New declaration.
4075         (rtl_profile_hooks): New declaration.
4076         * varasm.c: Include tree-mudflap.h.
4077         (TRAMPOLINE_ALIGNMENT): Remove.
4078         (make_decl_rtl): Call mudflap_enqueue_decl.
4079         (assemble_static_space):
4080         (assemble_trampoline_template): Set and return
4081         TRAMPOLINE_ALIGNMENT.
4082         * varray.c (element): Add GENERIC_PTR_NOGC entry.
4083         Add entry for 'tree *'.
4084         Add entry for struct edge_def *.
4085         (varray_copy): New.
4086         * varray.h (enum varray_data_enum): Add
4087         VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
4088         VARRAY_DATA_TREE_PTR.
4089         (union varray_data_tag): Corresponding changes.
4090         (VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
4091         VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
4092         VARRAY_EDGE, VARRAY_TREE_PTR,
4093         VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
4094         VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
4095         VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
4096
4097         * config/*/*: Various updates for changed macros, tree
4098         codes, etc.  Check ChangeLog.tree-ssa.
4099
4100         * doc/cfg.texi: New file.
4101         * doc/tree-ssa.texi: New file.
4102         * doc/c-tree.texi: Document new codes.
4103         * doc/gccint.texi: Include new files.
4104         * doc/install.texi: Document new features.
4105         * doc/invoke.texi: Document new switches.
4106         * doc/passes.texi: Document new passes.
4107         * doc/rtl.texi: Update changed RTL codes.
4108         * doc/sourcebuild.texi: Update build instructions.
4109         * doc/standards.texi: Document Fortran changes.
4110         * doc/tm.texi: Update.
4111
4112 2004-05-12  Paolo Bonzini  <bonzini@gnu.org>
4113
4114         Replace several arrays with a struct of arrays.
4115         * combine.c (struct reg_stat): New.
4116         (init_reg_last_arrays): Renamed to...
4117         (init_reg_last): ...this.  Callers adjusted.
4118         (reg_stat): New.
4119         (combine_instructions): Allocate it and use it.
4120         (reg_last_death, reg_last_set, reg_last_set_value,
4121         reg_last_set_label, reg_last_set_table_tick,
4122         reg_last_set_invalid, reg_nonzero_bits, reg_sign_bit_copies,
4123         reg_last_set_mode, reg_last_set_nonzero_bits,
4124         reg_last_set_sign_bit_copies): Replace throughout
4125         with items of reg_stat.
4126
4127 2004-05-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4128
4129         PR optimization/15100
4130         * combine.c (distribute_notes): Don't create a dangling
4131         REG_LIBCALL/REG_RETVAL note.
4132
4133 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4134
4135         * config/rs6000/spe.md (spe_evneg): Rename to negv2si2.
4136
4137         * config/rs6000/rs6000.c (bdesc_1arg): Change spe_evneg to
4138         negv2si2.
4139
4140 2004-05-11  Aldy Hernandez  <aldyh@redhat.com>
4141
4142         * doc/md.texi (Standard Names): Fix typo in vec_init description.
4143
4144 2004-05-11  Geoffrey Keating  <geoffk@apple.com>
4145
4146         * doc/gty.texi (GTY Options): Clarify example.
4147
4148 2004-05-11  Fariborz Jahanian  <fjahanian@apple.com>
4149
4150         * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute):
4151         Add const qualifier to altivec vector type if one is needed.
4152
4153 2004-05-11  Paul Brook  <paul@codesourcery.com>
4154
4155         * flags.h (flag_short_enums): Update comment.
4156         * opts.c (decode_options): Set flag_short_enums to 2.
4157         * toplev.c (flag_short_enums): Update comment.
4158         (process_options): Call default_short_enums target hook.
4159
4160 2004-05-11  Andrew Pinski  <pinskia@gcc.gnu.org>
4161
4162         PR target/14063
4163         * config/rs6000/altivec.md (altivec_dssall):
4164         Change to unspec_volatile.
4165         (altivec_dss): Likewise.
4166
4167 2004-05-10  Aldy Hernandez  <aldyh@redhat.com>
4168
4169         * config/rs6000/altivec.md ("one_cmplv16qi2"): Change vnot to
4170         vnor.
4171         ("one_cmplv8hi2"): Same.
4172         ("one_cmplv4si2"): Same.
4173
4174 2004-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
4175
4176         PR target/15130
4177         * config/sh/sh-protos.h (sh_expand_epilogue): Change prototype.
4178         * config/sh/sh.c (output_stack_adjust): Take the sibcall epilogue
4179         into account.  Compute the correct number of general registers
4180         for the return value.  Generate a special push/pop sequence when
4181         failing to get a temporary register for non SHmedia epilogue.
4182         (sh_expand_epilogue): Add an argument to show whether it's for
4183         sibcall or not.  Set the 3rd argument of output_stack_adjust to
4184         -1 if needed.
4185         (sh_need_epilogue): Call sh_expand_epilogue with 0.
4186         * config/sh/sh.md (sibcall_epilogue): Call sh_expand_epilogue
4187         with 1.
4188         (epilogue): Call sh_expand_epilogue with 0.
4189
4190 2004-05-10  Andrew Pinski  <pinskia@physics.uc.edu>
4191
4192         * gcse.c (eliminate_partially_redundant_loads): Instead of returning early,
4193         goto a cleanup label.  After the cleanup, free the allocated memory.
4194
4195 2004-05-10  Ziemowit Laski  <zlaski@apple.com>
4196
4197         * config/rs6000/altivec.h (vec_sld): Add overloads for
4198         argument/return types of 'vector bool int', 'vector bool short'
4199         and 'vector bool char'.
4200
4201 2004-05-10  Zack Weinberg  <zack@codesourcery.com>
4202
4203         * c-decl.c (store_parm_decls_newstyle): Correct test for a
4204         nested function.
4205
4206 2004-05-10  Richard Sandiford  <rsandifo@redhat.com>
4207
4208         * read-rtl.c (read_rtx): Allow 's' and 'T' strings to be omitted,
4209         treating missing ones as "".
4210         * config/mips/mips.md: Remove constraints from match_operands and
4211         match_scratches if they appear in define_expands (except reload*),
4212         define_peephole2s, define_splits or attribute specifications.
4213         * config/mips/7000.md, config/mips/sb1.md: Remove match_operand
4214         constraint strings.
4215
4216 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4217
4218         * config/rs6000/rs6000.c (function_arg_boundary): Always align
4219         AltiVec vectors.
4220         (function_arg_advance): Pass TARGET_32BIT -mabi=no-altivec AltiVec
4221         vectors by refererence.  Align the same for TARGET_64BIT to a 16
4222         byte boundary.  Remove useless code.  Add function comment.
4223         (function_arg): Similarly.  Move gpr rs6000_mixed_function_arg
4224         call to where it belongs.
4225         (function_arg_partial_nregs): Return true for all TARGET_32BIT
4226         -mabi=no-altivec AltiVec vectors.  Fix debug output.
4227         (rs6000_va_arg): Adjust for AltiVec change.
4228
4229 2004-05-10  Paul Brook  <paul@codesourcery.com>
4230
4231         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4232         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4233         (TARGET_DOUBLEWORD_ALIGN): Use it.
4234         (WCHAR_TYPE): Define.
4235         (WCHAR_SIZE_TYPE): Define.
4236         (SIZE_TYPE): Define.
4237
4238 2004-05-10  Alan Modra  <amodra@bigpond.net.au>
4239
4240         * config/rs6000/rs6000.c (function_arg_boundary): Align for ABI_V4
4241         when size is 8 bytes.
4242         (function_arg_advance): Account for stack space used by AltiVec
4243         args when -mabi=altivec.  Simplify alignment calculations.  For
4244         ABI_V4, pass AltiVec vectors by reference when -mabi=no-altivec.
4245         (function_arg): Similarly.
4246         (function_arg_pass_by_reference): True for ABI_V4 AltiVec when
4247         not AltiVec ABI.
4248         (rs6000_va_arg): Correct fp arg test.  Adjust for AltiVec change.
4249         Correct alignment, and align before testing reg count.  Remove
4250         TREE_THIS_VOLATILE from reg.  Don't emit unused labels.
4251         (rs6000_complex_function_value): Check TARGET_HARD_FLOAT and
4252         TARGET_FPRS here..
4253         (rs6000_function_value): .. not here before call.
4254
4255 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4256
4257         * config/rs6000/spe.md ("tstsflt_gpr"): Fix typo in unspec.
4258
4259 2004-05-09  Zack Weinberg  <zack@codesourcery.com>
4260
4261         PR 15007
4262         * c-decl.c (current_file_decl): Rename to all_translation_units,
4263         adjust comment.
4264         (pop_scope): If popping file_scope, construct a
4265         TRANSLATION_UNIT_DECL and make it the context of all the
4266         symbols in the scope.
4267         (push_file_scope): Don't construct a TRANSLATION_UNIT_DECL here.
4268         (pushdecl): Clarify comment.  Do not set DECL_CONTEXT of
4269         anything to current_file_decl.
4270         (pushdecl_top_level): Likewise.
4271         (store_parm_decls_newstyle): Adjust check for nested function.
4272         (c_write_global_declarations): Update for renamed variable.
4273
4274 2004-05-09  Aldy Hernandez  <aldyh@redhat.com>
4275
4276         * config/rs6000/rs6000-protos.h
4277         (rs6000_conditional_register_usage): Protoize.
4278
4279         * config/rs6000/rs6000.c (rs6000_conditional_register_usage): New.
4280
4281         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Call
4282         function.
4283
4284 2004-05-08  Roger Sayle  <roger@eyesopen.com>
4285
4286         * fold-const.c (fold_div_compare): New function to optimize X/C1 op C2
4287         where op is a comparison operator and C1 and C2 are integer constants
4288         into a range check.
4289         (fold): Call fold_div_compare.
4290
4291 2004-05-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4292
4293         * doc/install.texi (sparc-sun-solaris2*): Document bootstrap
4294         problems with earlier versions of the GNU compiler.
4295
4296 2004-05-07  Aldy Hernandez  <aldyh@redhat.com>
4297
4298         * config/rs6000/rs6000-protos.h (rs6000_hard_regno_mode_ok_p):
4299         Declare.
4300
4301         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok_p): New.
4302         (rs6000_hard_regno_mode_ok): New.
4303         (rs6000_init_hard_regno_mode_ok): New.
4304         (rs6000_override_options): Call rs6000_init_hard_regno_mode_ok.
4305
4306         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Use precomputed
4307         result.
4308
4309 2004-05-07  Ziemowit Laski  <zlaski@apple.com>
4310
4311         * config/rs6000/altivec.h (vector, pixel, bool): Do not
4312         define as macros #ifdef __APPLE_ALTIVEC__.
4313
4314 2004-05-07  Fariborz Jahanian  <fjahanian@apple.com>
4315
4316         * config/rs6000/rs6000.c (rs6000_mixed_function_arg):
4317         Generate appropriate parallels for vector arguments
4318         passed to vararg functions. (function_arg): make the call
4319         to rs6000_mixed_function_arg for vector args as needed.
4320
4321 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4322
4323         * config/mips/mips.c (mips_va_arg): Fix calculation of osize for
4324         EABI_FLOAT_VARARGS_P.
4325
4326 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4327
4328         * config/mips/mips.h (ISA_HAS_BRANCHLIKELY): Remove TARGET_MIPS5500.
4329         * config/mips/mips.c (override_options): Disable branch likely
4330         instructions if TUNE_MIPS5500.
4331
4332 2004-05-07  Richard Sandiford  <rsandifo@redhat.com>
4333
4334         * config/mips/mips.c (override_options): Allow the hi and lo registers
4335         to store any integral mode, not just MODE_INTs.
4336
4337 2004-05-07  Paul Brook  <paul@codesourcery.com>
4338
4339         * config/arm/arm.c (arm_promote_prototypes): Use TARGET_AAPCS_BASED.
4340         * config/arm/arm.h (TARGET_AAPCS_BASED): Define.
4341         (TARGET_DOUBLEWORD_ALIGN): Use it.
4342         (WCHAR_TYPE): Define.
4343         (WCHAR_SIZE_TYPE): Define.
4344         (SIZE_TYPE): Define.
4345
4346 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4347
4348         * config/i386/i386.c (ix86_emit_fp_unordered_jump): Use
4349         testb $4, %ah insn instead of sahf insn if !TARGET_USE_SAHF.
4350
4351 2004-05-07  Andrew Pinski  <pinskia@physics.uc.edu>
4352
4353         * loop-doloop.c (doloop_valid_p): Make sure that body
4354         gets freed.
4355
4356 2004-05-07  Eric Botcazou  <ebotcazou@act-europe.fr>
4357
4358         * config/sparc/sparc-protos.h (sparc_skip_caller_unimp): New
4359         declaration.
4360         * config/sparc/sparc.c (SKIP_CALLERS_UNIMP_P): Delete.
4361         (sparc_skip_caller_unimp): New global variable.
4362         (sparc_function_epilogue): Set 'sparc_skip_caller_unimp'.
4363         Use it instead of SKIP_CALLERS_UNIMP_P.
4364         * config/sparc/sparc.md (call expander): Add sanity check.
4365         (call_address_struct_value_sp32): Re-sync with expander.
4366         (call_symbolic_struct_value_sp32): Likewise.
4367         (return peepholes): Use 'sparc_skip_caller_unimp' instead
4368         of custom predicate.
4369
4370 2004-05-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4371
4372         PR c++/14962
4373         * c-pragma.c (handle_pragma_redefine_extname): Only change
4374         the assembler name of FUNCTION_DECLs and VAR_DECLs.
4375
4376 2004-05-07  Uros Bizjak  <uros@kss-loka.si>
4377
4378         * optabs.h (enum optab_index): Add new OTI_log1p.
4379         (log1p_optab): Define corresponding macro.
4380         * optabs.c (init_optabs): Initialize log1p_optab.
4381         * genopinit.c (optabs): Implement log1p_optab using log1p?f2
4382         patterns.
4383         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG1P{,F,L}
4384         using log1p_optab.
4385         (expand_builtin): Expand BUILT_IN_LOG1P{,F,L} using
4386         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4387
4388         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2XP1.
4389
4390         * config/i386/i386.c (ix86_emit_i387_log1p): New function.
4391         * config/i386/i386-protos.h (ix86_emit_i387_log1p):
4392         Prototype here.
4393         * config/i386/i386.md (UNSPEC_FYL2XP1): New unspec to represent
4394         x87's fyl2xp1 instruction.
4395         (*fyl2x_xf3): Rename insn definition to fyl2x_xf3.
4396         (fyl2xp1_xf3): New pattern to implement fyl2xp1 x87 instruction.
4397         (log1psf2, log1pdf2, log1pxf2): New expanders to implement log1pf,
4398         log1p  and log1pl built-ins as inline x87 intrinsics.
4399
4400 2004-05-07  Loren James Rittle  <ljrittle@acm.org>
4401
4402         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Proper redefinition.
4403         * config/arm/freebsd.h: Likewise.
4404         * config/ia64/freebsd.h: Likewise.
4405         * config/sparc/freebsd.h: Likewise.
4406
4407 2004-05-07  Hans-Peter Nilsson  <hp@axis.com>
4408
4409         PR optimization/15296
4410         * reorg.c (fill_simple_delay_slots): Use next_real_insn when
4411         getting last consecutive label at a branch.
4412         (relax_delay_slots): Similar, near top of loop.
4413
4414 2004-05-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4415
4416         PR target/15202
4417         * pa.md (movdi, movsi, movhi, movqi): Support move from shift amount
4418         register to general register.
4419
4420 2004-05-07  Alan Modra  <amodra@bigpond.net.au>
4421
4422         * config/rs6000/rs6000.h (STACK_BOUNDARY): Use 128 bit for either
4423         TARGET_ALTIVEC or TARGET_ALTIVEC_ABI.
4424         * config/rs6000/sysv4.h (ABI_STACK_BOUNDARY): Likewise.
4425         (STACK_BOUNDARY): Delete.
4426
4427 2004-05-06  Stuart Hastings  <stuart@apple.com>
4428
4429         * gcc/doc/invoke.texi: Restore -fgcse-after-reload doc from 1.421,
4430         mistakenly clobbered by 1.423.
4431
4432 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4433
4434         * doc/invoke.texi: Document -mvr4130-align.
4435         * config/mips/mips.h (MASK_VR4130_ALIGN, TARGET_VR4130_ALIGN)
4436         (TUNE_MIPS4120, TUNE_MIPS4130): New macros.
4437         (TUNE_MACC_CHAINS): Include TUNE_MIPS4120 and TUNE_MIPS4130.
4438         (TARGET_SWITCHES): Add -mvr4130-align and -mno-vr4130-align.
4439         * config/mips/mips.md: Include sched-int.h.
4440         (USEFUL_INSN_P, SEQ_BEGIN, SEQ_END, FOR_EACH_SUBINSN): New macros.
4441         (mips_rtx_costs): Set integer multiplication costs for TUNE_MIPS4130.
4442         (override_options): Enable -mvr4130-align at -O3 and above.
4443         (mips_sim_insn): New variable.
4444         (mips_sim): New structure.
4445         (mips_sim_reset, mips_sim_init, mips_sim_next_cycle, mips_sim_wait_reg)
4446         (mips_sim_wait_regs_2, mips_sim_wait_regs_1, mips_sim_wait_regs)
4447         (mips_sim_wait_units, mips_sim_wait_insn, mips_sim_record_set)
4448         (mips_sim_issue_insn, mips_sim_issue_nop, mips_sim_finish_insn)
4449         (vr4130_avoid_branch_rt_conflict, vr4130_align_insns): New functions.
4450         (mips_reorg): Call vr4130_align_insns.
4451         (vr4130_last_insn): New variable.
4452         (vr4130_true_reg_dependence_p_1, vr4130_true_reg_dependence_p)
4453         (vr4130_swap_insns_p, vr4130_reorder): New functions.
4454         (mips_sched_reorder, mips_variable_issue): Hook in vr4130 code.
4455         (mips_issue_rate): Return 2 for PROCESSOR_R4130.
4456         (mips_use_dfa_pipeline_interface): Return true for the same.
4457         * config/mips/4130.md: New file.
4458         * config/mips/mips.md: Include it.  Add a peephole2 to convert
4459         "mult;mflo" into "mtlo;macc".
4460         (*macc, *umul_acc_di, *smul_acc_di): Use $1 rather than $0 as the
4461         target of maccs.
4462         (*msac_using_macc): New pattern.
4463
4464 2004-05-06  Richard Sandiford  <rsandifo@redhat.com>
4465
4466         * config/mips/5500.md (ir_vr55_store): Set latency to 0.
4467         (ir_vr55_hilo): Split into...
4468         (ir_vr55_mfhilo, ir_vr55_mthilo): ...these new reservations.
4469         (ir_vr55_imul_si, ir_vr55_imadd): Change latency to 5.
4470         (ir_vr55_imul_di): Change latency to 9.  Reserve vr55_mac for 4 cycles.
4471         Add various multiplication bypasses.
4472         * config/mips/mips.c (mips_rtx_costs): Adjust VR5500 costs for integer
4473         multiplication.
4474
4475 2004-05-06  Uros Bizjak  <uros@kss-loka.si>
4476
4477         * config/i386/i386.md (*fscalexf4): Correct insn "mode"
4478         attribute to "XF".
4479
4480 2004-05-05  Uros Bizjak  <uros@kss-loka.si>
4481
4482         * optabs.h (enum optab_index): Add new OTI_fmod and OTI_drem.
4483         (fmod_optab, drem_optab): Define corresponding macros.
4484         * optabs.c (init_optabs): Initialize fmod_optab and drem_optab.
4485         * genopinit.c (optabs): Implement fmod_optab and drem_optab
4486         using fmod?f3 and drem?f3 patterns.
4487         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_FMOD{,F,L}
4488         using fmod_optab and BUILT_IN_DREM{,F,L} using drem_optab.
4489         (expand_builtin): Expand BUILT_IN_FMOD{,F,L} and
4490         BUILT_IN_DREM{,F,L} using expand_builtin_mathfn_2 if
4491         flag_unsafe_math_optimizations is set.
4492
4493         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FPREM_F,
4494         UNSPEC_FPREM_U, UNSPEC_FPREM1_F and UNSPEC_FPREM1_U.
4495
4496         * config/i386/i386.c (ix86_emit_fp_unordered_jump): New function.
4497         * config/i386/i386-protos.h (ix86_emit_fp_unordered_jump):
4498         Prototype here.
4499         * config/i386/i386.md (UNSPEC_FPREM_F, UNSPEC_FPREM_U,
4500         UNSPEC_FPREM1_F, UNSPEC_FPREM1_U): New unspecs to represent x87's
4501         fprem and fprem1 instructions.
4502         (*x86_fnstsw_1): Change input parameter to (reg:CCFP 18).
4503         Rename insn definition to x86_fnstsw_1.
4504         (fpremxf4, fprem1xf4): New patterns to implement fprem and fprem1
4505         x87 instructions.
4506         (fmodsf3, fmoddf3, fmodxf3): New expanders to implement fmodf, fmod
4507         and fmodl built-ins as inline x87 intrinsics.
4508         (dremsf3, dremdf3, dremxf3): New expanders to implement dremf, drem
4509         and dreml built-ins as inline x87 intrinsics.
4510
4511 2004-05-05  Roger Sayle  <roger@eyesopen.com>
4512
4513         * reload1.c (inherit_piecemeal_p): Mark parameters potentially unused.
4514
4515 2004-05-05  Ian Lance Taylor  <ian@wasabisystems.com>
4516
4517         PR driver/9822
4518         * doc/invoke.texi (Spec Files): Remove documentation of %c.
4519
4520 2004-05-05  Chris Demetriou  <cgd@broadcom.com>
4521
4522         * config/mips/mips.md: Update the msub define_split for new mflo/mfhi
4523         representation.
4524
4525 2004-05-06  Paul Brook  <paul@codesourcery.com>
4526
4527         * config/arm/arm-protots.h (vfp_mem_operand): Rename ...
4528         (arm_coproc_mem_operand): ... To this.
4529         * config/arm/arm.c (arm_legitimate_address_p): Allow ldrd modes.
4530         (arm_legitimate_index_p): Ditto.
4531         (vfp_mem_operand): Rename ...
4532         (arm_coproc_mem_operand): ... To this.  Handle writeback modes.
4533         (vfp_secondary_reload_class): Use it.
4534         (output_move_double): Use doubleword load/store instructions.
4535         (arm_hard_regno_mode_ok): Only allow even reg pairs for ldrd.
4536         * config/arm/arm.h (TARGET_LDRD): Define.
4537         (EXTRA_CONSTRAINT_STR_ARM): Add 'Uy'.
4538         * config/gcc/arm/arm.md (arm_movdi): Allow all valid memory operands.
4539         New splitter for invalid doubleword loads.
4540         * config/arm/iwmmxt.md (iwmmxt_arm_movdi): Use Uy constraint.
4541         * config/arm/vfp.md (arm_movdi_vfp): Allow all valid memory operands.
4542         * doc/md.texi: Document Uy constraint.
4543
4544 2004-05-05  Jan Hubicka  <jh@suse.cz>
4545
4546         PR opt/14980
4547         * cgraphunit.c (cgraph_remove_unreachable_nodes): Deal properly with
4548         inline clones.
4549
4550 2004-05-05  H.J. Lu  <hongjiu.lu@intel.com>
4551
4552         PR target/15290
4553         * config/i386/i386.c (ix86_split_to_parts): Use real_to_target
4554         instead of REAL_VALUE_TO_TARGET_LONG_DOUBLE.
4555
4556 2004-05-05  Mike Stump  <mrs@apple.com>
4557
4558         * config/darwin-c.c (add_framework): Copy the directory name as it
4559         can be freed later.  Also, ensure we always allocate enough room
4560         for the cached framework information.
4561         (find_subframework_header): Keep track of the directory where the
4562         subframework header was found.
4563         (framework_construct_pathname): Speed up by not trying to re-add a
4564         framework.
4565         * cppfiles.c (search_path_exhausted): Arrange for the missing
4566         header callback to be able to set the directory where the header
4567         was found.
4568         (cpp_get_dir): Add.
4569         * cpplib.h (missing_header_cb): Add a parameter.
4570         (cpp_get_dir): Add.
4571
4572 2004-05-03  Mike Stump  <mrs@apple.com>
4573
4574         * doc/invoke.texi (Directory Options): Document -iquote.
4575         * doc/cpp.texi: Likewise.
4576         * doc/cppopts.texi: Likewise.
4577         * c-opts.c (c_common_missing_argument): Add -iquote processing.
4578         (c_common_handle_option): Likewise.
4579         * c.opt (iquote): Add.
4580         * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add -iquote.
4581         * c-incpath.c (merge_include_chains): Update comment to use -iquote.
4582
4583         * c-opts.c (case OPT_I): Deprecate -I- support.
4584         * doc/invoke.texi: Likewise.
4585         * doc/cpp.texi: Likewise.
4586         * doc/cppopts.texi: Likewise.
4587
4588 2004-05-05  Steven Bosscher  <stevenb@suse.de>
4589
4590         * basic-block.h (free_basic_block_vars): Update prototype.
4591         * flow.c (free_basic_block_vars): Remove the keep_head_end_p
4592         argument.
4593         (life_analysis): Update call.
4594         * ifcvt.c (if_convert): Likewise.
4595         * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise.
4596         * passes.c (rest_of_handle_final): Likewise.
4597         (rest_of_compilation): Likewise.
4598         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4599
4600         * emit-rtl.c (next_real_insn): Use INSN_P.
4601         (prev_real_insn): Likewise.
4602
4603 2004-05-05  Eric Christopher  <echristo@redhat.com>
4604
4605         * config/mips/mips.md: Update the madd define_split for new mflo/mfhi
4606         representation.
4607
4608 2004-05-05  Paolo Bonzini  <bonzini@gnu.org>
4609
4610         * config/rs6000/rs6000.c (build_opaque_vector_type):
4611         New function.
4612         (rs6000_init_builtins): Use it.
4613
4614 2004-05-04  Bernard Giroud  <bgiroud2@free.fr>
4615
4616         * gcc/gcc/vmsdbgout.c (vms_func_node, vms_func_ref): New.
4617         (func_table): Change type from char ** to vms_func_ref.
4618         (write_rtnbeg):  Update to reflect func_table change.  Use
4619         fde->funcdef_number instead of rtnnum in output.
4620         (write_rtnend, vmxdbgout_begin_function, vmsdbgout_init): Likewise.
4621
4622 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4623             Richard Henderson  <rth@redhat.com>
4624
4625         PR target/14899
4626
4627         * c-common.c (vector_types_convertible_p): New function.
4628         * c-typeck.c (comptypes): Recurse on vector types.
4629         (convert_for_assignment): Use vector_types_convertible_p.
4630         (digest_init): Use vector_types_convertible_p to check
4631         validness of constant vector initializers; otherwise treat
4632         them as scalars.
4633         * tree.c (make_or_reuse_type): New.
4634         (build_common_tree_nodes): Use it.
4635         * cp/call.c (standard_conversion): Likewise.
4636         * cp/typeck.c (comptypes): Recurse on vector types.
4637         (convert_for_assignment): Use vector_types_convertible_p.
4638
4639 2004-05-04  Chris Demetriou  <cgd@broadcom.com>
4640
4641         * config/mips/mips.c (override_options): Default to no
4642         generation of branch-likely operations when tuning for
4643         CPUs where they tend to have a negative performance impact
4644         (e.g., SB-1).
4645
4646 2004-05-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4647
4648         * expr.c (store_constructor_field): Don't call store_constructor
4649         if bitsize is not a multiple of a byte.
4650
4651 2004-05-04  Richard Sandiford  <rsandifo@redhat.com>
4652
4653         * reload1.c (inherit_piecemeal_p): New function.
4654         (emit_reload_insns): When reloading a group of hard registers, use
4655         inherit_piecemeal_p to decide whether the values of individual hard
4656         registers can be inherited.
4657
4658 2004-05-04  H.J. Lu  <hongjiu.lu@intel.com>
4659
4660         * config/ia64/t-ia64 (LIB2ADDEH): Remove gthr-gnat.c.
4661         * config/s390/t-tpf (LIB2ADDEHDEP): Likewise.
4662         * config/t-linux (LIB2ADDEHDEP): Likewise.
4663
4664 2004-05-04  Paul Brook  <paul@codesourcery.com>
4665
4666         * config/arm/crti.asm: Push an even number of registers.
4667         * config/arm/crtn.asm: And restore them.  Load via sp.
4668
4669 2004-05-04  Paolo Bonzini  <bonzini@gnu.org>
4670
4671         * ggc-zone.c (ggc_alloc_zone_1): Add MEM_STAT_DECL parameter.
4672         Collect overhead information.
4673         (ggc_alloc_stat): New name of ggc_alloc.  Add MEM_STAT_DECL
4674         parameter and pass it through.
4675         (ggc_alloc_typed_stat): New name of ggc_alloc_typed.  Add
4676         MEM_STAT_DECL parameter and pass it through.
4677         (ggc_alloc_zone_stat): New name of ggc_alloc_zone.  Add
4678         MEM_STAT_DECL parameter and pass it through.
4679
4680 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4681
4682         * config/rs6000/rs6000-protos.h: Protoize rs6000_hard_regno_nregs.
4683
4684         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): New.
4685
4686         * config/rs6000/rs6000.h (HARD_REGNO_NREGS): Call
4687         rs6000_hard_regno_nregs.
4688
4689 2004-05-03  Eric Christopher  <echristo@redhat.com>
4690
4691         * config/s390/s390.c (s390_emit_prologue): Call unspec tpf
4692         prologue insn instead of setting up call.
4693         (s390_emit_epilogue): Ditto.
4694         * config/s390/s390.md (prologue_tpf, epilogue_tpf): New patterns.
4695         (define_constants): Add numbers for above patterns.
4696
4697 2004-05-03  Eric Christopher  <echristo@redhat.com>
4698
4699         * config/s390/s390.h (CONDITIONAL_REGISTER_USAGE): Move body...
4700         * config/s390/s390.c (s390_conditional_register_usage): ...here.
4701         * config/s390/s390-protos.h: Prototype.
4702
4703 2004-05-03  Joe Buck <jbuck@welsh-buck.org>
4704
4705         * cppfiles.c (pchf_adder): Eliminate use of |= in d->have_once_only
4706         assignment.
4707
4708 2004-05-03  Eric Christopher  <echristo@redhat.com>
4709
4710         * config/mips/mips.md: Fix branch length attribute definition.
4711
4712 2004-05-03  Aldy Hernandez  <aldyh@redhat.com>
4713
4714         * config.gcc: Remove --enable-altivec support.
4715
4716         * config/rs6000/altivec-defs.h: Remove.
4717
4718 2004-05-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4719
4720         * fixinc/inclhack.def (svr4_profil): Don't apply on IRIX 5/6.
4721         * fixinc/fixincl.x: Regenerate.
4722
4723 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4724
4725         * config/i386/i386.md (*fyl2x_sfxf3, *fyl2x_dfxf3): Remove insn
4726         definition.
4727         (log?f2, log10?f2, log2?f2): Reimplement expanders with
4728         float_truncate insn.
4729         (*fxtractsf3, *fxtractdf3): Remove insn definition.
4730         (logb?f2): Reimplement expanders with float_truncate insn.
4731
4732 2004-05-03  Graham Stott  <graham.stott@btinternet.com>
4733
4734         PR 14718
4735         * dwarf2out.c (dwarf2out_imported_module_or_decl): Use
4736         force_type_die for CONST_DECL.
4737
4738 2004-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4739             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4740
4741         * config.gcc (sparc64-*-solaris2*, sparcv9-*-solaris2*): Add
4742         tm-dwarf2.h to tm_file.
4743         (sparc-*-solaris2*): Add tm-dwarf2.h to tm_file for Solaris 7+.
4744         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Delete.
4745         (ASM_DEBUG_SPEC): Delete.
4746
4747 2004-05-03  Uros Bizjak  <uros@kss-loka.si>
4748
4749         * optabs.h (enum optab_index): Add new OTI_expm1.
4750         (expm1_optab): Define corresponding macro.
4751         * optabs.c (init_optabs): Initialize expm1_optab.
4752         * genopinit.c (optabs): Implement expm1_optab using expm1?f2
4753         patterns.
4754         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXPM1{,F,L}
4755         using expm1_optab.
4756         (expand_builtin): Expand BUILT_IN_EXPM1{,F,L} using
4757         expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
4758
4759         * config/i386/i386.md (expm1df2, expm1sf2, expm1xf2): New expanders
4760         to implement expm1, expm1f and expm1l built-ins as inline x87
4761         intrinsics.
4762
4763 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4764
4765         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4766         * config/frv/frv.md (*return_true, *return_false): New patterns.
4767
4768 2004-05-02  Kazu Hirata  <kazu@cs.umass.edu>
4769
4770         * rtl.h (PHI_NODE_P): Remove.
4771
4772 2004-05-02  Eric Botcazou  <ebotcazou@act-europe.fr>
4773
4774         PR middle-end/14988
4775         * function.c (assign_stack_local_1): Use BITS_PER_UNIT alignment
4776         when passed -2 as 'align'.
4777         (put_var_into_stack): Use 'bool' as the type for the three local
4778         predicates.  Adjust calls to put_reg_into_stack.
4779         When passed a CONCAT, instruct put_reg_into_stack to use
4780         a consecutive stack slot for the second part.
4781         (put_reg_into_stack): Remove 'promoted_mode' parameter, add
4782         'consecutive_p' parameter.  Turn the three predicates into 'bool'
4783         parameters.  Retrieve the register mode from 'reg'.
4784         When consecutive_p is true, instruct assign_stack_local_1 to use
4785         BITS_PER_UNIT alignment.
4786         (put_addressof_into_stack): Use 'bool' as the type for the two
4787         local predicates. Adjust call to put_reg_into_stack.
4788
4789 2004-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4790
4791         * fold-const.c (fold_convert_const, fold): Add missing
4792         FIX_ROUND_EXPR case.
4793
4794 2004-05-02  Alexandre Oliva  <aoliva@redhat.com>
4795
4796         * configure.ac (FLEX, BISON): Only use tools from the build tree
4797         if build equals host.
4798         * configure: Rebuilt.
4799
4800         * config/frv/frv-protos.h (frv_expand_epilogue,
4801         frv_expand_fdpic_call): Add bool argument.
4802         * config/frv/frv.c (frv_function_ok_for_sibcall): New.
4803         (TARGET_FUNCTION_OK_FOR_SIBCALL): Define to it.
4804         (frv_expand_epilogue): Use new argument to decide whether to emit
4805         return instruction or copy the return address to LR.
4806         (frv_expand_fdpic_call): Inline PLT entry when emitting direct
4807         sibcalls.
4808         (sibcall_operand): New.
4809         * config/frv/frv.h (PREDICATE_CODES): call_operand doesn't match
4810         PLUS nor LABEL_REF.  Add sibcall_operand.
4811         * config/frv/frv.md (call, call_value): Pass false to
4812         frv_expand_fdpic_call.
4813         (call_fdpicdi, call_value_fdpicdi): Insert %i0 in calll.
4814         (sibcall, sibcall_internal, sibcall_fdpicdi, sibcall_value,
4815         sibcall_value_internal, sibcall_value_fdpicdi): New.
4816         (return_unsigned_true, return_unsigned_false): New.
4817         (epilogue): Adjust call to frv_expand_epilogue.
4818         (sibcall_epilogue): New.
4819
4820         * config/frv/frv.h (ASM_SPEC): Pass -mno-fdpic as -mnopic.
4821         (CPP_SPEC, CPP_SIMPLE_SPEC): Undefine __FRV_ACC__ and __FRV_FPR__
4822         before redefining them.
4823
4824 2004-05-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4825
4826         * builtins.c (fold_fixed_mathfn): New function.
4827         (fold_builtin_lround, fold_builtin): Use it.
4828
4829 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
4830
4831         * config/sparc/linux64.h (TARGET_DEFAULT): Make 64-bit by default
4832         also for TARGET_CPU_DEFAULT == TARGET_CPU_ultrasparc3.
4833
4834 2004-05-01  Kazu Hirata  <kazu@cs.umass.edu>
4835
4836         * config/cris/cris.h: Revert my "fix comment typos" patch.
4837
4838 2004-05-01  Richard Sandiford  <rsandifo@redhat.com>
4839
4840         * config/mips/mips.h (TUNE_MACC_CHAINS): Fix comment.
4841
4842 2004-05-01  Falk Hueffner  <falk@debian.org>
4843
4844         * config/alpha/alpha.md (builtin_insbl, builtin_inswl,
4845         builtin_insll): Disallow 0 as first input operand.
4846
4847 2004-05-01  Falk Hueffner  <falk@debian.org>
4848
4849         * config/alpha/alpha.c (alpha_rtx_costs): Fix shiftadd costs.
4850
4851 2004-05-01  Ulrich Weigand  <uweigand@de.ibm.com>
4852
4853         PR middle-end/15054
4854         * expr.c (expand_expr_real): Do not call preserve_temp_slots
4855         on a TARGET_EXPR temp.
4856         * function.c (assign_stack_temp_for_type): Set 'keep' flag for
4857         TARGET_EXPR temp slots.
4858
4859 2004-05-01  Paolo Bonzini  <bonzini@gnu.org>
4860
4861         * simplify-rtx.c (simplify_ternary_operation): When
4862         converting an IF_THEN_ELSE to a relational op, return
4863         correct mode.
4864
4865 2004-04-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4866
4867         * builtins.c (fold_builtin_round): Fix comment typo.
4868         (fold_builtin_lround): New function.
4869         (fold_builtin): Use it.
4870
4871 2004-04-20  Andrew Pinski  <pinskia@physics.uc.edu>
4872
4873         PR target/11608
4874         * config/sh/elf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Update and make it
4875         more like the one in config/dbxelf.h.
4876
4877 2004-04-30  Zack Weinberg  <zack@codesourcery.com>
4878
4879         * tree.h (SET_ARRAY_OR_VECTOR_CHECK): Rename to SET_OR_ARRAY_CHECK
4880         and adjust definition accordingly.
4881         (TYPE_DOMAIN): Allow only SET_TYPE and ARRAY_TYPE.
4882         (TYPE_DEBUG_REPRESENTATION_TYPE): Allow only VECTOR_TYPE.
4883         * expr.c (store_constructor): Do not access TYPE_DOMAIN of a
4884         VECTOR_TYPE.
4885
4886 2004-04-30  Jason Merrill  <jason@redhat.com>
4887
4888         PR c++/14587
4889         * config/i386/winnt.c (associated_type): Look for attributes on
4890         the TYPE_MAIN_VARIANT of *this.
4891         * attribs.c (decl_attributes): If ATTR_FLAG_TYPE_IN_PLACE, also
4892         apply the attributes to the variants.
4893
4894 2004-04-30  Paul Brook  <paul@codesourcery.com>
4895
4896         * config.gcc: Simplify arm --with-{cpu,tune} test.
4897         * config/arm/arm-cores.def: Document whitespace restrictions.
4898
4899 2004-04-30  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4900
4901         PR other/1963
4902         * config/alpha/osf.h (SWITCHES_NEED_SPACES): Define.
4903
4904 2004-04-30  Brian Ford  <ford@vss.fsi.com>
4905             DJ Delorie  <dj@redhat.com>
4906
4907         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4908         (DWARF2_DEBUGGING_INFO): Define to enable.
4909         (DBX_REGISTER_NUMBER): Define to use the svr4 register map for
4910         DWARF2.
4911         * configure.ac (Target-specific assembler checks)
4912         <i[34567]86-*-[cygwin*|pe|mingw32*]>: New test for .secrel32
4913         relocs.
4914         * configure: Regenerate.
4915         * config.in: Likewise.
4916
4917         * config/i386/cygming.h [HAVE_GAS_PE_SECREL32_RELOC]
4918         (ASM_OUPUT_DWARF_OFFSET): Define.
4919
4920 2004-04-29  Andreas Krebbel  <krebbel1@de.ibm.com>
4921
4922         * config/s390/s390-protos.h (s390_emit_epilogue): Parameter added.
4923         (s390_emit_call): New function prototype added.
4924         (s390_tls_get_offset): Function removed.
4925         * config/s390/s390.c (s390_function_ok_for_sibcall,
4926         s390_call_saved_register_used_p): New functions.
4927         (TARGET_FUNCTION_OK_FOR_SIBCALL): Definition of target macro added.
4928         (s390_tls_get_offset): Function merged into s390_emit_tls_call_insn.
4929         (s390_emit_tls_call_insn): New function.
4930         (legitimize_tls_address): Call s390_emit_tls_call_insn instead of
4931         emit_call_insn.
4932         (s390_emit_prologue): Use s390_emit_call instead of emit_call_insn.
4933         (s390_emit_epilogue): Like s390_emit_prologue. Parameter for sibcalls
4934         added.
4935         * config/s390/s390.h (SIBCALL_REGNUM): New macro representing the
4936         register number used to hold the target address for sibcalls.
4937         * config/s390/s390.md ("sibcall", "sibcall_value", "sibcall_epilogue"):
4938         New expanders.
4939         ("*sibcall_br", "*sibcall_brc", "*sibcall_brcl", "*sibcall_value_br",
4940         "*sibcall_value_brc", "*sibcall_value_brcl"): New insns.
4941         ("call_exp", "call_value_exp", "call_value_tls", "call_value_tls_exp"):
4942         Expanders removed.
4943         ("call", "call_value"): Call s390_emit_call to emit the call patterns.
4944         ("*bras", "*brasl", "*bras_r", "*brasl_r", "*bras_tls", "*brasl_tls",
4945         "*basr", "*basr_r", "*basr_tls"): Added constraint: !SIBLING_CALL_P.
4946         ("epilogue"): Changed the call to s390_emit_epilogue to use the
4947         new parameter.
4948
4949 2004-04-30  Kazu Hirata  <kazu@cs.umass.edu>
4950
4951         * bb-reorder.c, c-opts.c, cfglayout.c, cgraph.c, cgraphunit.c,
4952         cppfiles.c, fold-const.c, ggc-zone.c, loop-doloop.c, optabs.c,
4953         reg-stack.c, varasm.c, config/alpha/ev4.md,
4954         config/alpha/ev5.md, config/alpha/ev6.md, config/arm/arm.c,
4955         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.c,
4956         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
4957         config/frv/frv.h, config/frv/frv.md, config/h8300/h8300.c,
4958         config/i386/i386.c, config/i386/i386.md, config/i386/winnt.c,
4959         config/ia64/itanium2.md, config/ip2k/ip2k.c,
4960         config/mips/mips.c, config/mips/mips.h, config/mips/sr71k.md,
4961         config/pa/pa.c, config/s390/s390.c, config/sh/sh.c: Fix
4962         comment typos.
4963
4964 2004-04-30  Paul Brook  <paul@codesourcery.com>
4965
4966         * config.gcc: Default ep9312 to hard-float.
4967         * config/arm/arm-cores.def: Add ARCH field.
4968         * config/arm/arm.c (FL_FOR_ARCH*): Define.
4969         (arm_arch_cirrus): New variable.
4970         (all_cores): Set and use arch.
4971         (all_architectures): Ditto.
4972         (arm_arch_name): New variable.
4973         (arm_override_options): Set it. Use [SUB]TARGET_CPU_DEFAULT.
4974         Set and use arm_arch_cirrus.
4975         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Set arch defines.
4976         (enum processor_type): Update ARM_CORE define.
4977         (enum target_cpus): Add.  Replaces TARGET_CPU_* defines.
4978         (CPP_SPEC): Remove %(cpp_cpu_arch).
4979         (CPP_ARCH_DEFAULT_SPEC): Remove.
4980         (CPP_CPU_ARCH_SPEC): Remove.
4981         (EXTRA_SPECS): Don't use CPP_*ARCH*_SPEC.
4982         (FPUTYPE_DEFAULT): Don't define here.
4983
4984 2004-04-30  J"orn Rennecke <joern.rennecke@superh.com>
4985
4986         * flow.c (propagate_one_insn): Call mark_set_regs for stack pointer
4987         updates too.
4988
4989 2004-04-30  Paul Brook  <paul@codesourcery.com>
4990
4991         * arm.c (arm_needs_doubleword_align): Use mode alignment.
4992
4993 2004-04-30  Paolo Bonzini  <bonzini@gnu.org>
4994
4995         * config/altivec/altivec.h [__cplusplus] (vec_subsubs): Rename to
4996         vec_sububs.
4997         [__cplusplus] (vec_subsuhs): Rename to vec_subuhs, without
4998         duplicates.
4999
5000 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5001
5002         * config/i386/i386.md (atansf2, atandf2, atanxf2): Move near
5003         atan2?f3 expanders.
5004
5005 2004-04-29  Nick Clifton  <nickc@redhat.com>
5006
5007         Bug 14093
5008         * config/sh/sh-protos.h (sh_promote_prototypes): Declare.
5009         * config/sh/sh.c (sh_promote_prototypes): Remove declaration.
5010         Delete static from definition.
5011         * config/sh/sh.h (FUNCTION_VALUE): Add sh_promote_prototypes call.
5012
5013 2004-04-30  Uros Bizjak  <uros@kss-loka.si>
5014
5015         * reg-stack.c (subst_stack_regs_pat): <UNSPEC_SIN, UNSPEC_COS,
5016         UNSPEC_FRNDINT, UNSPEC_F2XM1>: abort() if src1 dies.
5017         <UNSPEC_SINCOS_COS, UNSPEC_TAN_ONE, UNSPEC_XTRACT_FRACT>: Same.
5018         <UNSPEC_SINCOS_SIN, UNSPEC_TAN_TAN, UNSPEC_XTRACT_EXP>: Same.
5019
5020 2004-04-29  Richard Guenther  <richard.guenther@uni-tuebingen.de>
5021
5022         * commom.opt (Wfatal-errors): Add it.
5023         * diagnostic.c (flag_fatal_errors): Define it.
5024         (diagnostic_action_after_output): Check for flag_fatal_errors.
5025         * flags.h (flag_fatal_errors): Declare it.
5026         * opts.c (common_handle_option): Add OPT_Wfatal_errors.
5027         * doc/invoke.texi (Warning Options): Document -Wfatal-errors.
5028
5029 2004-04-30  Josef Zlomek  <zlomekj@suse.cz>
5030
5031         * gcse.c (remove_reachable_equiv_notes): Delete notes also in
5032         blocks which have kill flag set.
5033
5034 2004-04-29  Ben Elliston  <bje@au.ibm.com>
5035
5036         * configure.ac (--with-as): Abort if user-supplied assembler
5037         cannot be executed.
5038         (--with-ld): Likewise for the linker.
5039         * configure: Regenerate.
5040
5041 2004-04-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5042
5043         * convert.c (convert_to_integer): Ensure `long_integer_type_node'
5044         isn't NULL before using it.
5045
5046 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
5047
5048         PR target/15189
5049         * config/mips/mips.md (load_df_low): Use default length.
5050         (load_df_high, store_df_high): Likewise.
5051
5052 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5053
5054         * config/mips/mips.md, config/mips/sb1.md,
5055         config/rs6000/rs6000.c: Fix comment typos.
5056
5057 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
5058
5059         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
5060         Fix comment typos.
5061
5062 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
5063
5064         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
5065         (delete_if_ordinary): Use above macro.
5066         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
5067         Update copyright.
5068         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
5069
5070 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
5071
5072         * c-decl.c (get_parm_info): Use the correct tag keywords when
5073         warning about type declarations in prototypes.
5074
5075 2004-04-29  Paul Brook  <paul@codesourcery.com>
5076
5077         * config.gcc: Pull list of cores from arm-cores.def.
5078
5079 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5080
5081         * combine.c (combine_simplify_rtx): Adjust call to use
5082         simplify_relational_operation.  Do not use SELECT_CC_MODE
5083         when a comparison already has a MODE_CC mode.
5084
5085 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
5086
5087         (simplify_set): simplify_relational_operation may now
5088         return another relational expression.
5089         * cse.c (fold_rtx): simplify_relational_operation now
5090         takes of computing the comparison mode.
5091         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
5092         remove dead code.
5093         (do_compare_rtx_and_jump): Likewise.
5094         * integrate.c (subst_constants): simplify_relational_operation
5095         may now return another relational expression.
5096         * simplify-rtx.c (simplify_gen_relational): Move most code to
5097         the new simplify_relational_operation and
5098         simplify_relational_operation_1 functions.
5099         (simplify_relational_operation): Rewritten.
5100         (simplify_relational_operation_1): New function.
5101         (simplify_ternary_operation): simplify_relational_operation
5102         may now return another relational expression.
5103         (simplify_rtx): Remove unnecessary temp variable.
5104
5105 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
5106
5107         * reg-stack.c (swap_to_top): New function.
5108         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
5109         swap_to_top().
5110         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
5111         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and
5112         UNSPEC_FSCALE_EXP.
5113
5114         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
5115         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
5116         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
5117         x87's fscale insn.
5118         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
5119         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
5120         patterns.
5121
5122 2004-04-28  Serge Belyshev  <1319@bot.ru>
5123
5124         PR 14944
5125         * coverage.c (read_counts_file): Fix usage of warning () call.
5126         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
5127
5128 2004-04-28  Ben Elliston  <bje@au.ibm.com>
5129
5130         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
5131         options with "-" in the option index.
5132         (SPARC Options): Likewise.
5133         (M32R/D Options): Likewise.
5134
5135 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5136
5137         * convert.c (convert_to_integer): Convert (long)round -> lround,
5138         etc.
5139
5140 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
5141
5142         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
5143         Return false if we do not have fp register.
5144         (addrs_ok_for_quad_peep): Rename to ...
5145         (mems_ok_for_quad_peep): this.
5146         Add check for volatile memory.
5147         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
5148         Rename to ...
5149         (mems_ok_for_quad_peep): this.
5150         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
5151         to peephole2's.
5152         (lfq_power2): New instruction.
5153         (stfq_power2): Likewise.
5154
5155 2004-04-28  Jan Hubicka  <jh@suse.cz>
5156
5157         PR c/15004
5158         * function.c (do_warn_unused_parameter): Break out form ...
5159         (expand_function_end): ... here; warn only when not using cgraphunit.
5160         * function.h (do_warn_unused_parameter): Declare.
5161         * cgraphunit.c: Include function.h.
5162         (cgraph_finalize_function): Do unused parameter warning.
5163         * Makefile.in (cgraphunit.o): Depend on function.h
5164
5165 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
5166
5167         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
5168         calling install-info on $(DESTDIR)$(infodir)/dir already being
5169         present.
5170
5171 2004-04-28  Paul Brook  <paul@codesourcery.com>
5172
5173         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
5174
5175 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5176
5177         * gcse.c (find_moveable_store): Do not accept store insns with
5178         REG_EH_REGION note.
5179
5180 2004-04-28  Paul Brook  <paul@codesourcery.com>
5181
5182         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
5183         * function.c (assign_temp): Ditto.
5184         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
5185
5186 2004-04-28  Paul Brook  <paul@codesourcery.com>
5187
5188         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
5189
5190 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
5191
5192         * var-tracking.c (variable_different_p): Add a parameter
5193         compare_current_location, compare current location of variable parts
5194         if it is true.
5195         (dataflow_set_different_1): Pass compare_current_location == false.
5196         (dataflow_set_different_2): Pass compare_current_location == false.
5197         (emit_notes_for_differences_1): Pass compare_current_location == true.
5198
5199 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
5200
5201         * config/s390/s390.md ("casesi"): Mark jump table access as
5202         non-trapping and unchanging.
5203
5204 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5205
5206         PR debug/14829
5207         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
5208         callers.
5209         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
5210         number for indexing hard_regno_nregs array.
5211
5212 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
5213
5214         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
5215         * config/darwin-crt2.c: Only have contents on __ppc__.
5216
5217 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
5218
5219         * config/xtensa/xtensa.c (call_insn_operand): Check
5220         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
5221         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
5222         * config/xtensa/xtensa.md (call, call_value): Likewise.
5223
5224 2004-04-27  Wu Yongwei  <adah@sh163.net>
5225
5226         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
5227         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
5228         (__gthread_mutex_init_function): Replace CreateMutex with
5229         initialization of custom mutex using CreateSemaphore.
5230         (__gthread_mutex_lock): Use InterlockedIncrement.
5231         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
5232         (__gthread_mutex_unlock): Use InterlockedDecrement and
5233         ReleaseSemaphore to unlock
5234         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
5235         __gthread_mutex_lock, __gthread_mutex_trylock,
5236         __gthread_mutex_unlock): Adjust to match inline versions in
5237         gthr-win32.h.
5238
5239 2004-04-27  Paul Brook  <paul@codesourcery.com>
5240
5241         * config/arm/arm.c (arm_promote_prototypes): New function.
5242         (TARGET_PROMOTE_PROTOTYPES): Use it.
5243
5244 2004-04-27  Paul Brook  <paul@codesourcery.com>
5245
5246         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
5247
5248 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
5249
5250         * config/alpha.c (alpha_end_function): For OpenVMS gas,
5251         correctly output .pdesc directive before .end.
5252
5253 2004-04-26  James E Wilson  <wilson@specifixinc.com>
5254
5255         Bug 14927
5256         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
5257         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
5258
5259 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
5260
5261         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
5262         * config/pa/pa-hpux10.h: Likewise.
5263         * config/pa/pa-hpux11.h: Likewise.
5264
5265 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
5266
5267         * doc/invoke.texi (Overall Options): Document default for -o
5268         for PCH files.
5269
5270 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5271
5272         * builtins.c (expand_builtin_update_setjmp_buf): New function.
5273         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
5274         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
5275
5276 2004-04-26  Paul Brook  <paul@codesourcery.com>
5277
5278         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
5279
5280 2004-04-26  Paul Brook  <paul@codesourcery.com>
5281
5282         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
5283
5284 2004-04-25  Roger Sayle  <roger@eyesopen.com>
5285
5286         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
5287         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
5288         X % -1 as 0.
5289
5290 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
5291
5292         PR bootstrap/15141
5293         * except.c (connect_post_landing_pads): Delete insns after the
5294         barrier when generating a unwind_resume_libfunc call.
5295
5296 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5297
5298         PR/c++ 15119
5299         * tree.c (substitute_placeholder_in_expr, case 4): New case,
5300         for TARGET_EXPR.
5301
5302 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5303
5304         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5305         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
5306         inhibit_libc is defined.
5307
5308 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
5309
5310         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
5311         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
5312         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
5313         (TARGET_SCHED_VARIABLE_ISSUE): Define.
5314         (mips_adjust_cost): Move later in file, next to other sched hooks.
5315         (mips_macc_chains_last_hilo): New variable.
5316         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
5317         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
5318         * config/mips/mips.md (may_clobber_hilo): New attribute.
5319
5320 2004-04-24  Roger Sayle  <roger@eyesopen.com>
5321             Bruce Korb  <bkorb@gnu.org>
5322
5323         * fixinc/inclhack.def (aix_syswait_2): New fix.
5324         * fixinc/fixincl.x: Regenerate.
5325         * fixinc/tests/base/sys/wait.h: Update for new test.
5326
5327 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
5328
5329         PR target/14960
5330         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
5331         to non_fixed_size, and leave out fixed_size from the sum.
5332         (generate_set_vrsave): Correct clobbers.
5333         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
5334         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
5335         (rs6000_libcall_value): Likewise.
5336         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
5337         (FUNCTION_ARG_REGNO_P): Likewise.
5338
5339 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5340
5341         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
5342         is a CONST_INT.
5343         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
5344         with NARROW_OP1 instead of OP1.
5345
5346 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
5347
5348         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
5349         and __s390x__ hosts.
5350
5351 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5352
5353         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
5354         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
5355         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
5356         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
5357         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
5358         * builtins.c (expand_builtin_fork_or_exec): New.
5359         (expand_builtin): Call it.
5360         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
5361         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
5362         * c-common.c (PID_TYPE): New macro.
5363         (c_common_nodes_and_builtins): Initialize pid_type_node.
5364         * calls.c (special_function_p): Do not handle fork and exec.
5365         (expand_call): Do not handle ECF_FORK_OR_EXEC.
5366         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5367         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
5368         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
5369         __gcov_execv, __gcov_execvp, __gcov_execve): New.
5370         * tree.h (enum tree_index): Add TI_PID_TYPE.
5371         (pid_type_node): New macro.
5372         (ECF_FORK_OR_EXEC): Removed.
5373
5374 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5375
5376         PR optimization/13985
5377         * cfgloopmanip.c (fix_loop_placements): New prototype.
5378         Call fix_bb_placements on the preheader of loops that have
5379         been reparented.
5380         (remove_path): Adjust call to fix_loop_placements.
5381
5382 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
5383
5384         * config/darwin7.h: New file.
5385         * config.gcc (*-*-darwin*): Add darwin7.h if the
5386         version is greater than 6.
5387         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
5388         (MATH_LIBRARY): Wrap in ifdefs.
5389
5390 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
5391
5392         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
5393         loading iWMMXt registers with a frame pointer.  Use post-increment
5394         without a frame pointer.
5395         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
5396
5397 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
5398
5399         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
5400         mode" rather than "-funit-at-a-time" since -O2 enables it
5401         without requiring -f* options.  Refer to -fprofile-generate and
5402         -fprofile-use correctly.  Move -funit-at-a-time among options
5403         enabled by -O.  Add information about unit-at-a-time caveats.
5404
5405 2004-04-22  Per Bothner  <per@bothner.com>
5406
5407         * line-map.h (struct line_maps):  New field highest_line.
5408         (linemap_position_for_column):  Make non-inline function.
5409         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
5410         * line-map.c (linemap_init):  Clear highest_line field.
5411         (linemap_add):  Set highest_line field.
5412         (linemap_line_start):  Minor optimization - use highest_line field.
5413         Reduce maximum column hint to 10000.  Update highest_line field.
5414         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
5415         * cpphash.h (struct cpp_reader):  Remove line field - instead use
5416         line_table->highest_line.
5417         (saved_line):  Remove unused field.
5418         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
5419         Use  line_table's highest_line field instead of cpp_reader's line.
5420         * cpplib.c (start_directive):  Likewise use highest_line field.
5421         (do_line, do_linemarker):  Likewise just use newest map.
5422         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
5423         * cpperror.c (cpp_error):  Likewise use highest_line field.
5424         * cppfiles.c (open_file_failed:  Likewise.
5425         (cpp_make_system_header):  Likewise use newest map and highest_line.
5426         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
5427         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
5428         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
5429         _cpp_lex_direct):  Likewise use highest_line.
5430         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
5431         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
5432         and use newest map.
5433         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
5434         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
5435         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
5436
5437 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
5438
5439         PR bootstrap/14992
5440         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
5441         * config/linux.h (USE_LD_AS_NEEDED): Define.
5442         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
5443         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
5444         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
5445         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
5446         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
5447         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
5448         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
5449
5450 2004-04-22  Per Bothner  <per@bothner.com>
5451
5452         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
5453         Fixes PR preprocessor/15067.
5454
5455 2004-04-23  Andreas Schwab  <schwab@suse.de>
5456
5457         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
5458         avoid aliasing warning.
5459
5460 2004-04-22  Jan Hubicka  <jh@suse.cz>
5461             Mostafa Hagog <mustafa@il.ibm.com>
5462
5463       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
5464       * cfgloopanal.c (expected_loop_iterations): Change the return value
5465
5466 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
5467
5468         * cselib.h (struct elt_loc_list): Remove canon_loc field.
5469         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
5470         (cselib_invalidate_mem): Remove all canon_loc and canon_x
5471         traces.
5472
5473 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
5474
5475         Revert
5476         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5477
5478                 * var-tracking.c (variable_part_different_p): Variable parts
5479                 differ when the most recent locations differ.
5480
5481 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
5482
5483         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
5484         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
5485         (embedded_pic_offset): Delete.
5486         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
5487         MASK_* constants.
5488         (TARGET_EMBEDDED_PIC): Delete.
5489         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
5490         (ASM_SPEC): Remove -membedded-pic.
5491         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
5492         (ASM_OUTPUT_CASE_LABEL): Likewise.
5493         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
5494         * config/mips/windiss.h (ASM_SPEC): Likewise.
5495         * config/mips/mips.c (struct machine_function): Remove
5496         embedded_pic_fnaddr_rtx.
5497         (TARGET_ENCODE_SECTION_INFO): Remove override.
5498         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
5499         (override_options): Remove -membedded-pic handling.
5500         (print_operand): Remove handling of '%S'.
5501         (mips_select_section: Remove -membedded-pic handling.
5502         (mips_encode_section_info): Delete.
5503         (mips_output_conditional_branch): Remove mention of -membedded-pic.
5504         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
5505         -membedded-pic handling.
5506         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
5507
5508 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
5509
5510         * var-tracking.c (frame_base_decl): Remove useless GTY.
5511
5512 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
5513
5514         * config/rs6000/rs6000.c (rs6000_override_options): Error when
5515         user wants altivec and e500 instructions.
5516
5517 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
5518
5519         PR target/14813
5520         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
5521         in .init_array section to ...
5522         * config/ia64/crtbegin.asm: Here.
5523
5524         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
5525         and hidden if HAVE_INITFINI_ARRAY is defined.
5526
5527 2004-04-21  James E Wilson  <wilson@specifixinc.com>
5528
5529         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
5530         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
5531         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
5532         (fp_register_operand, lo_operand): New.
5533         (mips_rtx_costs): Add TUNE_SB1 support.
5534         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
5535         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
5536         (mips_multipass_dfa_lookahead): New.
5537         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
5538         TUNE_SB1): New.
5539         (TARGET_SWITCHES): Add -mfp-exceptions support.
5540         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
5541         (BRANCH_COST): Fix whitespace.
5542         * config/mips/mips.md: Include sb1.md.
5543         * config/mips/sb1.md: New file.
5544         * doc/invoke.texi: Document -mfp-exceptions.
5545
5546         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
5547         comment.
5548         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
5549         (fixincl.o-warn): Delete.
5550
5551 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5552
5553         * config/rs6000/rs6000 (print_operand) ['z']:
5554         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
5555
5556 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
5557
5558         * config.gcc: Support --with-arch=iwmmxt for ARM.
5559
5560 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5561
5562         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
5563         in two more places; remove unneeded force_reg
5564
5565 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
5566
5567         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
5568         for TARGET_MACHO.
5569         (print_operand): For TARGET_MACHO check to see if we need a stub
5570         and output one if we need it.
5571
5572         PR debug/15033
5573         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5574         rtl.
5575
5576 2004-04-20  James E Wilson  <wilson@specifixinc.com>
5577
5578         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
5579         (vall_value_gp): Likewise.
5580
5581 2004-04-20  DJ Delorie  <dj@redhat.com>
5582
5583         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
5584         variables stored in word registers, then in memory.
5585
5586 2004-04-20  Eric Christopher  <echristo@redhat.com>
5587
5588         * cp/parser.c (cp_parser_declaration): Move translate
5589         up before tokens are lexed.
5590
5591 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
5592
5593         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
5594         (asin_optab, acos_optab): Define corresponding macros.
5595         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
5596         * genopinit.c (optabs): Implement asin_optab and acos_optab
5597         using asin?f2 and acos?f2 patterns.
5598         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
5599         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
5600         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
5601         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5602
5603         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
5604         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
5605         acos, acosf and acosl built-ins as inline x87 intrinsics.
5606
5607 2004-04-20  Paul Brook  <paul@codesourcery.com>
5608
5609         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
5610
5611 2004-04-20  Paul Brook  <paul@codesourcery.com>
5612
5613         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
5614
5615 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
5616
5617         Revert part of 2004-04-17 change that moved -frename-registers
5618         to -O1.  -frename-registers is buggy.
5619
5620         * toplev.c (flag_rename_registers): Initialize to 0.
5621         * doc/invoke.texi (Optimize options): Move -frename-registers
5622         to "Not triggered by any -O level" section.  Adjust commentary
5623         accordingly.
5624
5625 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
5626
5627         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
5628
5629 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
5630
5631         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
5632         for mflo and mfhi instructions.
5633         (mips_output_move): Remove mflo and mfhi handling.
5634         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
5635         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
5636         Likewise various define_peephole2s.
5637         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
5638         alternatives.
5639         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
5640         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
5641         (mfhilo_di, mfhilo_si): New patterns.
5642
5643 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5644
5645         * function.c (assign_parms): Force
5646         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
5647
5648 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
5649
5650         * var-tracking.c (variable_part_different_p): Variable parts differ
5651         when the most recent locations differ.
5652
5653 2004-04-19  James E Wilson  <wilson@specifixinc.com>
5654
5655         * rtl.h (reg_set_last): Delete declaration.
5656         * rtlanal.c (reg_set_last): Delete.
5657
5658 2004-04-19  Roger Sayle  <roger@eyesopen.com>
5659
5660         * fold-const.c (fold_convert): Make function extern/public.
5661         * tree.h (fold_convert): Prototype here.
5662         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
5663         expand_builtin_strrchr, expand_builtin_strpbrk,
5664         expand_builtin_mempcpy, expand_builtin_bcopy,
5665         expand_builtin_bzero, expand_builtin_memcmp,
5666         expand_builtin_strcmp, expand_builtin_strncmp,
5667         stabilize_va_list, expand_builtin_sprintf,
5668         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
5669         fold_builtin_exponent, fold_builtin_mempcpy,
5670         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
5671         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
5672         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
5673
5674 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
5675
5676         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
5677         (move_from_CR_gt_bit): New.
5678         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
5679         E500.
5680         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
5681         E500.
5682
5683         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
5684         (tstsfeq_gpr): Same.
5685         (cmpsfgt_gpr): Same.
5686         (tstsfgt_gpr): Same.
5687         (cmpsflt_gpr): Same.
5688         (tstsflt_gpr): Same.
5689         (e500_cceq_ior_compare): New.
5690         (e500_flip_gt_bit): New.
5691
5692         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
5693         (print_operand): Add 'c' and 'D'.
5694         (rs6000_generate_compare): Rewrite to generate correct rtl.
5695         (rs6000_emit_sCOND): Handle E500.
5696         (output_cbranch): Adjust for changes in rs6000_generate_compare.
5697         (output_e500_flip_gt_bit): New.
5698
5699         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
5700         Protoize.
5701
5702 2004-04-19  Eric Christopher  <echristo@redhat.com>
5703
5704         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
5705
5706 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
5707
5708         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
5709         fix information.
5710
5711 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5712
5713         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
5714         download URL.
5715
5716 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
5717
5718         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
5719         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
5720
5721 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
5722
5723         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
5724         (fold_builtin): Update caller to match.
5725
5726         PR bootstrap/15009
5727         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
5728
5729         PR bootstrap/14999
5730         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
5731
5732 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5733
5734         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
5735
5736         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
5737         (expand_mult_highpart_optab): Likewise.
5738         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
5739
5740 2004-04-19  Paul Brook  <paul@codesourcery.com>
5741
5742         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
5743         floatunssisf2, floatunssidf2): New patterns.
5744
5745 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
5746
5747         PR other/14918
5748         * doc/invoke.texi (-fprofile-generate): Document requirement to
5749         use -fprofile-generate when linking.
5750
5751         * doc/extend.texi (Strong Using): Warn users against using this
5752         feature.
5753
5754 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
5755
5756         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
5757         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
5758         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
5759         * config/mips/mips.c (struct mips16_constant): Renamed from struct
5760         constant.  Propogate change throughout file.
5761         (struct machine_function): Remove insns_len.
5762         (mips_string_length, mips16_strings, string_constants): Delete.
5763         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
5764         when generating mips16 code.  Remove special mips16 treatment of
5765         string constants.
5766         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
5767         to have the form LABEL+CONSTANT.
5768         (mips_symbolic_address_p): Fix comment.
5769         (m16_usym8_4, m16_usym5_4): Delete.
5770         (mips_output_function_epilogue): Remove mips16 string handling.
5771         (mips_output_mi_thunk): Call mips16_lay_out_constants.
5772         (mips_select_section, mips_encode_section_info): Remove mips16
5773         string handling.
5774         (struct mips16_constant_pool): New.
5775         (add_constant): Take a mips16_constant_pool structure.  Keep pool
5776         sorted into order of ascending mode size.  Keep track of the highest
5777         possible start address, taking padding and the masking of the base PC
5778         value into account.
5779         (dump_constants_1): New function, split out from dump_constants.
5780         Handle vector constants.  Use gen_consttable_{int,float} rather than
5781         separate functions for each mode.
5782         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
5783         rather than separate functions for each alignment.
5784         (mips_find_symbol): Delete.
5785         (mips16_insn_length): New function, split out from
5786         mips16_lay_out_constants.
5787         (mips16_rewrite_pool_refs): New function.
5788         (mips16_lay_out_constants): Rework. Remove string handling.
5789         Always create an inline constant pool.
5790         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
5791         (UNSPEC_ALIGN): New constants.
5792         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
5793         (UNSPEC_ALIGN_[248]): Delete.
5794         (consttable_int, consttable_float, align): New patterns.
5795         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
5796
5797 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
5798
5799         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
5800         __unn_args_eq.
5801
5802 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
5803
5804         PR target/14715
5805         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
5806         with STARTING_FRAME_OFFSET.
5807
5808 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5809
5810         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
5811         * config/mips/mips.c (macc_msac_operand): New function.
5812         * config/mips/mips.md (*msac): Move after *macc.
5813         (*msac2): New.  Generalize macc-related peepholes so that they apply
5814         to msac too.
5815
5816 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
5817
5818         * opts.c (decode_options): Do not enable flag_rename_registers
5819         and flag_web at -O3.
5820         * toplev.c (flag_rename_registers): Initialize
5821         flag_rename_registers and flag_web to
5822         AUTODETECT_FLAG_VAR_TRACKING.
5823         (default_debug_hooks): New global.
5824         (process_options): Initialize default_debug_hooks.  Warn if
5825         -fvar-tracking specified but not supported by the current
5826         debug format.  Do not run var tracking at -O0 or if not
5827         supported by the current debug format, even if
5828         -fvar-tracking was given.  If -fno-rename-registers
5829         is not specified, always run register renaming if var
5830         tracking is supported by the default debugging information
5831         format for the target, and we are at -O1 or higher; similarly
5832         for -fweb, but only at -O2 or higher.
5833         * doc/invoke.texi (Optimize Options): Document this.
5834
5835 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5836
5837         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
5838         * configure: Regenerate.
5839
5840 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
5841
5842         * gcc.c (used_arg): Check whether an option has been removed.
5843
5844 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5845
5846         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
5847         debugging on Solaris 7 and up.
5848
5849 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5850
5851         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
5852         IRIX 5 port.
5853         Remove -save-temps workaround, handled automatically.
5854         Require GNU binutils 2.15 for debugging.
5855         Remove SGI make warnings since GNU make is now required.
5856         (Specific, mips-sgi-irix6): Some markup fixes.
5857         Describe MIPSpro C problems and workarounds.
5858         Mention working O32 ABI support.
5859         Recommend GNU as 2.15 for O32 with debugging.
5860         Remove description of fixed structure pass/return bug.
5861
5862 2004-04-16  DJ Delorie  <dj@redhat.com>
5863
5864         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
5865         TYPE_FIELDS.
5866         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
5867
5868 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5869
5870         * pa.md: Remove unnecessary declarations for asm_out_file.
5871
5872         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
5873         SAR register.  Fix comment.
5874         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
5875         (%cr11).
5876
5877         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
5878
5879 2004-04-16  Nick Clifton  <nickc@redhat.com>
5880
5881         * config/arm/arm.c (arm_override_options): Revert previous patch.
5882         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
5883         be safely built.
5884
5885 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
5886
5887         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
5888         bug.
5889         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
5890         TARGET_DEFAULT): Changed. Ditto.
5891         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
5892         TARGET_ENDIAN_DEFAULT): Added. Ditto.
5893         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
5894         (TARGET_ENDIAN_DEFAULT): Added.
5895
5896 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5897
5898         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
5899         ATTR_CONST_NOTHROW_LIST.
5900
5901 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5902
5903         PR/middle-end 14915
5904         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
5905         BITS_BIG_ENDIAN.
5906
5907 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
5908
5909         * ra-debug.c (ra_print_rtx): Add break's to case legs.
5910
5911 2004-04-14  James E Wilson  <wilson@specifixinc.com>
5912
5913         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
5914
5915 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
5916
5917         * libada-mk.in: New file.
5918         * configure.ac: Create libada-mk from libada-mk.in.
5919         * configure: Regenerate.
5920
5921 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
5922
5923         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
5924         (logb_optab, ilogb_optab): Define corresponding macros.
5925         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
5926         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
5927         using logb?f2 and ilogb?i2 patterns.
5928         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
5929         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
5930         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
5931         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
5932
5933         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
5934         and UNSPEC_XTRACT_EXP.
5935
5936         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
5937         patterns to implement fxtract x87 instruction.
5938         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
5939         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
5940         intrinsics.
5941         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
5942         x87's fxtract insn.
5943
5944 2004-04-14  Eric Christopher  <echristo@redhat.com>
5945
5946         * config/mips/t-elf: Enable multilibs by default.
5947
5948 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
5949
5950         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
5951         previous fix to check HAVE_return at runtime too.
5952
5953 2004-04-14  Nick Clifton  <nickc@redhat.com>
5954
5955         * config/arm/arm.c (arm_override_options): If the user has not
5956         specified an ABI, then default to AAPCS for the iWMMXt processor.
5957         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
5958         * config/arm/t-xscale-coff: Likewise.
5959
5960 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5961
5962         * builtins.c (fold_builtin_isdigit): New.
5963         (fold_builtin): Handle BUILT_IN_ISDIGIT.
5964         * defaults.h: Add TARGET_DIGIT0 and sort.
5965         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
5966
5967 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5968
5969         * builtins.c (fold_builtin_cabs, fold_builtin): Use
5970         `mathfn_built_in' to determine the new builtin.
5971         * fold-const.c (fold): Likewise.
5972
5973 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
5974
5975         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
5976         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
5977         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
5978         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
5979         (ASM_SPEC): Update accordingly.
5980         * config/mips/mips.c: Update after above renaming.
5981         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
5982         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
5983
5984 2004-04-13  James E Wilson  <wilson@specifixinc.com>
5985
5986         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
5987         increment errorcount and return false instead of true.
5988
5989 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
5990
5991         * optabs.c (expand_twoval_unop): Reorder function arguments.
5992         * builtins.c (expand_builtin_mathfn_3): Update calls to
5993         expand_twoval_unop.
5994
5995         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
5996         and UNSPEC_TAN_TAN. Add missing comment.
5997
5998         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
5999         patterns to implement fptan x87 instruction.
6000         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
6001         and tanl built-ins as inline x87 intrinsics. Define corresponding
6002         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
6003         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
6004         x87's fptan insn.
6005
6006 2004-03-13  Richard Henderson  <rth@redhat.com>
6007
6008         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
6009         for LABEL_REFs.
6010
6011         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
6012         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
6013         * doc/invoke.texi: Update to match.
6014
6015         * varasm.c (unlikely_text_section): Use assemble_align instead of
6016         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
6017         correct alignment argument.
6018
6019 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
6020
6021         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
6022         after setting reg_last_reload_reg for optional output reloads.
6023
6024 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
6025
6026         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
6027         Definition of these two macros are corrected by adding
6028         matchine right paren.
6029
6030 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
6031
6032         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
6033
6034 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6035
6036         * config/i386/i386.c (output_387_reg_move): New function.
6037         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
6038         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
6039         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
6040         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
6041         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
6042
6043 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6044
6045         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
6046         TYPE_DECL.
6047         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
6048         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
6049         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
6050         Use skip_simple_arithmetic to find SAVE_EXPR.
6051         (force_type_save_exprs, force_type_save_exprs_1): New functions.
6052         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
6053         Properly chain multiple pointers.
6054         (copy_tree_r): Copy a TYPE_DECL.
6055         * tree.c (variably_modified_type_p): Add some missing tests and
6056         make some other minor changes.
6057         * tree.h (force_type_save_exprs): New declaration.
6058
6059 2004-04-12  Roger Sayle  <roger@eyesopen.com>
6060
6061         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
6062         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
6063         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
6064         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
6065         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
6066         x%-1 into 0 (or x&0 if x has side-effects).
6067
6068 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6069
6070         * config/rs6000/rs6000.md: Document why a pattern is not
6071         available.
6072
6073         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
6074         of floats on the E500.
6075         (branch_positive_comparison_operator): Do not allow NE even on the
6076         E500.
6077
6078 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
6079
6080         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
6081         in_text_unlikely_section to in_unlikely_text_section.
6082
6083 2004-04-11  Roger Sayle  <roger@eyesopen.com>
6084
6085         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
6086         calling convention to allow a NULL_TREE to be returned.  Factor
6087         sanity checks from callers, return NULL_TREE when appropriate.
6088         (fold): Handle COMPOUND_EXPR operands of binary expressions
6089         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
6090         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
6091         calls to fold_binary_op_with_conditional_arg.
6092
6093 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6094
6095         * config/mips/iris5.h (current_section_flags):  Add
6096         in_unlikely_executed_text and default case.
6097
6098 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
6099
6100         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
6101         failure on solaris. Place ifdef HAVE_return around gen_ret call.
6102         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
6103         HAVE_return and place it around the place where it is needed.
6104
6105 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
6106
6107         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
6108         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
6109         and NORMAL_TEXT_SECTION_NAME.
6110         (unlikely_text_section): Check targetm.have_named_sections
6111         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
6112         instead of SECTION_FORMAT_STRING.
6113         * config/mips/iris5.h (current_section_name): Add
6114         in_unlikely_executed_text case and move the abort into the switch.
6115         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
6116         (NORMAL_TEXT_SECTION_NAME): Remove.
6117         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
6118         (SECTION_FORMAT_STRING): Remove.
6119         * defaults.h (SECTION_FORMAT_STRING): Remove.
6120         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
6121         (SECTION_FORMAT_STRING): Remove.
6122
6123 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
6124
6125         * c-typeck.c (common_type): Prefer long long to long when same
6126         precision.
6127
6128 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
6129
6130         PR 14887
6131         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6132         mode argument.
6133         * config/ia64/ia64.c (ia64_hpux_file_end): Check
6134         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
6135
6136 2004-04-09  Roger Sayle  <roger@eyesopen.com>
6137
6138         * simplify-rtx.c (mode_signbit_p): New function to check whether
6139         an RTX is an immediate constant that represents the most significant
6140         bit of a given machine mode.
6141         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
6142         C is the sign bit.
6143         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
6144         when C2 is the sign bit.
6145         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
6146         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
6147         sign bit.
6148
6149 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6150
6151         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
6152         TYPE_MODE.
6153
6154 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
6155
6156         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
6157         of TREE_READONLY for types.
6158
6159 2004-04-09  Caroline Tice  <ctice@apple.com>
6160
6161         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
6162         (struct basic_block_def):  Add new field, partition.
6163         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
6164         definitions.
6165         (partition_hot_cold_basic_blocks): Add extern function
6166         declaration.
6167         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
6168         include statements.
6169         (N_ROUNDS): Increase the maximum number of rounds by 1.
6170         (branch_threshold): Add array value for new round.
6171         (exec_threshold): Add array value for new round.
6172         (push_to_next_round_p): New function.
6173         (add_unlikely_executed_notes): New function.
6174         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
6175         (mark_bb_for_unlikely_executed_section): New function.
6176         (add_labels_and_missing_jumps): New function.
6177         (add_reg_crossing_jump_notes): New function.
6178         (fix_up_fall_thru_edges): New function.
6179         (find_jump_block): New function.
6180         (fix_crossing_conditional_branches): New function.
6181         (fix_crossing_unconditional_branches): New function.
6182         (fix_edges_for_rarely_executed_code): New function.
6183         (partition_hot_cold_basic_blocks): New function.
6184         (find_traces):  Add an extra round for partitioning hot/cold
6185         basic blocks.
6186         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
6187         and only cold blocks, into the last (extra) round of collecting traces.
6188         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
6189         over crossing edges.
6190         (bb_to_key):  Add code to correctly identify cold blocks when
6191         doing partitioning.
6192         (connect_traces): Modify to connect all the non-cold traces first, then
6193         go back and connect up all the cold traces.
6194         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
6195         * cfg.c (entry_exit_blocks): Add initialization for partition field in
6196         entry and exit blocks.
6197         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
6198         if we are doing hot/cold partitioning.
6199         * cfgcleanup.c (cfglayout.h): Add new include statement.
6200         (try_simplify_condjump): Modify to not attempt on blocks with jumps
6201         that cross section boundaries.
6202         (try_forward_edges): Likewise.
6203         (merge_blocks_move_predecessor_nojumps): Likewise.
6204         (merge_blocks_move_successor_nojumps): Likewise.
6205         (merge_blocks_move): Likewise.
6206         (try_crossjump_to_edge): Modify to not attempt after we have done
6207         the block partitioning.
6208         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
6209         cross section boundaries.
6210         (try_optimize_cfg): Likewise.
6211         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
6212         jumps that cross section boundaries.
6213         * cfglayout.c (flags.h): Add new include statement.
6214         (update_unlikely_executed_notes):  New function.
6215         (fixup_reorder_chain):  Add code so when a new jumping basic block is
6216         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
6217         updated appropriately.
6218         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
6219         introduced by this optimization.
6220         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
6221         extern function declaration.
6222         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
6223         list of notes that can be deleted.
6224         (create_basic_block_structure):  Add initialization for partition field.
6225         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
6226         section boundaries.
6227         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
6228         cross section boundaries.
6229         (commit_one_edge_insertion): Add code so newly created basic block
6230         ends up in correct (hot or cold) section.  Modify to disallow
6231         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
6232         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
6233         crosses section boundaries.
6234         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
6235         cross section boundaries.
6236         (force_nonfallthru_and_redirect): Modify to make sure new basic block
6237         ends up in correct section, with correct notes attached.
6238         * common.opt (freorder-blocks-and-partition):  Add new flag for this
6239         optimization.
6240         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
6241         the end of functions are written into the correct (hot or cold)
6242         section.
6243         (dbx_source_file): Add code so writing debug file information
6244         doesn't incorrectly change sections.
6245         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
6246         in partitioning hot/cold basic blocks into separate sections.
6247         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
6248         section partitioning.
6249         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
6250         conditional branches can span all of memory.
6251         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
6252         unconditional branches can span all of memory.
6253         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
6254         (final_scan_insn):  Add code to check for NOTE instruction indicating
6255         whether basic block belongs in hot or cold section, and to make sure
6256         the current basic block is being written to the appropriate section.
6257         Also added code to ensure that jump table basic blocks end up in the
6258         correct section.
6259         * flags.h (flag_reorder_blocks_and_partition):  New flag.
6260         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
6261         one of the branches has a jump that crosses between sections.
6262         (find_if_case_2): Likewise.
6263         (ifcvt): Modify to not attempt to mark loop exit edges after
6264         hot/cold partitioning has occurred.
6265         * opts.c (decode_options): Code to handle new flag,
6266         flag_reorder_blocks_and_partition; also to turn it off if
6267         flag_exceptions is on.
6268         (common_handle_option): Code to handle new flag,
6269         flag_reorder_blocks_and_partition.
6270         * output.h (unlikely_text_section): New extern function declaration.
6271         (in_unlikely_text_section): New extern function declaration.
6272         * passes.c (rest_of_handle_stack_regs):  Add
6273         flag_reorder_blocks_and_partition as an 'or' condition for calling
6274         reorder_basic_blocks.
6275         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
6276         as an 'or' condition for calling reorder_basic_blocks.
6277         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
6278         * print-rtl.c (print_rtx): Add code for handling new note,
6279         NOTE_INSN_UNLIKELY_EXECUTED_CODE
6280         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
6281         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
6282         cross between section boundaries.
6283         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
6284         indicating the basic block containing it belongs in the cold section.
6285         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
6286         between hot and cold sections.
6287         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
6288         initialize this flag, and to tie it to the command-line option
6289         freorder-blocks-and-partition.
6290         * varasm.c (cfglayout.h):  Add new include statement.
6291         (unlikely_section_label_printed):  New global variable, used for
6292         determining when to output section name labels for cold sections.
6293         (in_section):  Add in_unlikely_executed_text to enum data structure.
6294         (text_section):  Modify code to use SECTION_FORMAT_STRING and
6295         NORMAL_TEXT_SECTION_NAME macros.
6296         (unlikely_text_section):  New function.
6297         (in_unlikely_text_section):  New function.
6298         (function_section):  Add code to make sure beginning of function is
6299         written into correct section (hot or cold).
6300         (assemble_start_function):  Add code to make sure stuff is written to
6301         the correct section.
6302         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
6303         to an if statement that was checking 'in_text_section'.
6304         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
6305         condition to an if statement that was checking 'in_text_section'.
6306         (default_section_type_flags_1):  Add check: if in cold section
6307         flags = SECTION_CODE.
6308         * config/darwin.c (darwin_asm_named_section):  Modify to use
6309         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
6310         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
6311         specifically for the i386.
6312         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
6313         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
6314         text string to something more informative.
6315         (NORMAL_TEXT_SECTION_NAME): Add new definition.
6316         (SECTION_FORMAT_STRING):  Add new definition.
6317         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
6318         '!in_unlikely_text_section' as an 'and' condition to an if statement
6319         that was already checking '!in_text_section'.
6320         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
6321         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
6322         sure these are properly defined for linux on ppc.
6323         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
6324         for this new flag.
6325         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
6326         reg_note.
6327         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
6328         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
6329         these new macros.
6330
6331 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6332
6333         * function.c (gen_mem_addressof): When changing the RTX from a REG
6334         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
6335
6336 2004-04-08  Roger Sayle  <roger@eyesopen.com>
6337
6338         PR target/14888
6339         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
6340         truncxfdf2_noop): Provide dummy "fmov" implementations.
6341
6342 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
6343
6344         * gcc.c (default_compilers): Add missing initializers.
6345
6346         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
6347         Return 1 if file was successfully mapped.
6348
6349 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
6350
6351         PR pch/13419
6352         PR pch/14137
6353         Radar #: 3315288
6354         * doc/invoke.texi (Precompiled Headers): Suggest -o
6355         to put an output file in a particular place.  Be more detailed
6356         about which options affect PCH validity and which options
6357         might not work.
6358         * c-pch.c (pch_matching): New.
6359         (MATCH_SIZE): New.
6360         (struct c_pch_validity): New field 'match'.
6361         (pch_init): Handle pch_matching.
6362         (c_common_valid_pch): Check pch_matching.
6363
6364         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
6365
6366 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
6367
6368         * doc/invoke.texi (Precompiled Headers): Warn about known
6369         problems.
6370
6371 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
6372
6373         PR c++/14808
6374         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
6375         to 1 if ASM_OUTPUT_DEF is defined.
6376         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
6377         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
6378         Set to non-zero iff not a one_only decl.
6379
6380 2004-04-08  Paul Brook  <paul@codesourcery.com>
6381
6382         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
6383
6384 2004-04-08  Paul Brook  <paul@codesourcery.com>
6385
6386         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
6387         PROMOTE_FOR_CALL_ONLY.
6388         * config/arm/arm-protos.h (arm_function_value): Declare.
6389         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
6390         (TARGET_PROMOTE_PROTOTYPES): Return false.
6391         (arm_function_value): New function.
6392         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
6393         (FUNCTION_VALUE): Call arm_function_value.
6394         * config/cris/cris.h (PROMOTE_MODE): Rename ...
6395         (PROMOTE_FUNCTION_MODE): ... to this.
6396         (PROMOTE_FOR_CALL_ONLY): Remove.
6397         * config/mmix/mmix.h: Likewise.
6398         * config/s390/s390.h: Likewise.
6399         * config/sparc/sparc.h: Likewise.
6400         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
6401         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
6402         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
6403         (PROMOTE_FOR_CALL_ONLY): Remove.
6404
6405 2004-04-08  Joel Sherrill <joel@oarcorp.com>
6406
6407         PR ada/14538
6408         * ada/5rosinte.adb: Remove fake mprotect() body.
6409         * ada/5rosinte.ads: Add SA_SIGINFO.
6410         * ada/5rtpopsp.adb: Rewrite to use new interface.
6411         * ada/init.c: Reorder so the simple single OS conditional __rtems__
6412         is tested before more complex ones which mix UNIX and embedded
6413         systems in the conditional.
6414
6415 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
6416
6417         PR ada/14665
6418         * ada/osint.adb (Find_Program_Name): Rework to properly handle
6419         filenames which end in .exe or have versioning suffixes like VMS.
6420
6421 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
6422
6423         PR target/10129
6424         * config/darwin.c (darwin_encode_section_info): When the decl has
6425         a DECL_INITIAL, it is only defined also when it is not a common.
6426
6427 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6428
6429         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
6430         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
6431
6432 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
6433
6434         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
6435         global register variables.
6436
6437 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
6438
6439         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
6440         rpc_xdr_lvalue_cast_b): New fixes.
6441         * fixinc/fixincl.x: Regenerate.
6442         * fixinc/tests/base/rpc/xdr.h: Add new tests.
6443
6444 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
6445
6446         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
6447         to power4 and power5 entries.
6448
6449 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
6450
6451         * c-common.h (pending_lang_change): Mark for PCH.
6452
6453 2004-04-07  Caroline Tice  <ctice@apple.com>
6454
6455         * gcc.c (main): Move 'break' in main loops (on an error)
6456         to wait until error processing has occurred.
6457
6458 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
6459
6460         * config.gcc: Stop changing enable_threads midstream.
6461         Replace uses of enable_threads_flag with enable_threads.
6462         * configure.ac: Replace uses of enable_threads_flag with
6463         enable_threads.  Improve autoconf quotation in one place.
6464         * configure: Regenerate.
6465
6466 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
6467
6468         * builtins.c: Implement support for sincos function.
6469         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
6470         BUILT_IN_COS{,F,L}.
6471         (expand_builtin_mathfn_3): New function.
6472         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
6473         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
6474         flag_unsafe_math_optimization is set.
6475
6476         * optabs.h (enum optab_index): Add new OTI_sincos.
6477         (sincos_optab): Define corresponding macro.
6478
6479         * optabs.c (init_optabs): Initialize sincos_optab.
6480         (expand_twoval_unop): New function.
6481
6482         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
6483         patterns.
6484
6485         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
6486         and UNSPEC_SINCOS_SIN.
6487
6488         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
6489         sincosxf3): New patterns to implement sincos, sincosf and sincosl
6490         built-ins as inline x87 intrinsics. Define splits for
6491         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
6492         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
6493         sincos patterns.
6494         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
6495         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
6496
6497         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
6498         x87's fsincos insn.
6499
6500 2004-04-06  Devang Patel  <dpatel@apple.com>
6501
6502         PR 14467
6503         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
6504
6505 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6506
6507         * doc/install.texi: Update HP-UX 11 installation procedure.
6508
6509 2004-04-06  Paul Brook  <paul@codesourcery.com>
6510
6511         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
6512
6513 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
6514
6515         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
6516         when the TLS address is generated by a function call.
6517         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
6518         (tls_local_dynamic): Likewise.
6519
6520 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
6521
6522         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
6523         and TYPE_VOLATILE.
6524
6525 2004-04-05  Caroline Tice  <ctice@apple.com>
6526
6527         * gcc.c (combine_flag): New global variable, for new driver option.
6528         (struct compiler): Add two new fields, to be used when
6529         combining multiple input files in a single pass (IMA).
6530         (default_compilers):  Add values for the new fields to all
6531         compiler entries. Modify the "@c" compiler entry for doing IMA
6532         properly with "-save-temps" and the "combine" flag.
6533         (option_map):  Add new driver option, "--combine", to tell driver
6534         to pass multiple input files to compiler at one time.
6535         (have_o_argbuf_index): New global variable.
6536         (store_arg): Modify to assign value to have_o_argbuf_index.
6537         (struct infile):  Add three new fields, to help with IMA.
6538         (display_help): Add help for new "combine" option.
6539         (process_command): Remove local variable have_o; add code to check
6540         for new "combine" option; remove assignment to combine_inputs.
6541         (do_spec_1):  Modify to deal with IMA better.
6542         (main): Make variable 'lang_n_infiles' local to entire function
6543         rather than to a single block.  Use flag combine_flag to
6544         determine whether to do IMA or not; Modify loop initializing
6545         infiles to deal properly with linker files.
6546         Add code for doing preprocessing in presence of
6547         IMA with "-save-temps" flag.  Modify "main" loop to handle
6548         multiple input files, in multiple languages, with or without
6549         preprocessing,  gracefully.
6550         * toplev.c (set_src_pwd): Modify to not complain if attempting to
6551         re-set it to same directory it's previously been set to (avoid
6552         irritating, meaningless warning messages when doing IMA with
6553         save-temps).
6554         * doc/invoke.texi: Add "-combine" to list of Overall Options;
6555         remove documentation about IMA that is no longer accurate; Add
6556         documentation explaining what "-combine" does.
6557         * ada/lang-specs.h: Add initialization values for new fields in
6558         "struct compiler".
6559         * cp/lang-specs.h: Likewise.
6560         * f/lang-specs.h: Likewise.
6561         * java/lang-specs.h: Likewise.
6562         * objc/lang-specs.h: Likewise.
6563         * treelang/lang-specs.h: Likewise.
6564
6565 2004-04-05  David Edelsohn
6566
6567         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
6568         symbol handling.
6569
6570 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
6571             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6572
6573         PR optimization/13424 (hppa), bootstrap/14462, c/14828
6574         * pa.md: Use replace_equiv_address to retain the attributes of the
6575         memory operands used in the split and peephole2 patterns for optimizing
6576         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
6577
6578 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6579
6580         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
6581         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
6582         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
6583         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
6584         PARM_DECL.
6585         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
6586         for a type.
6587         * print-tree.c (print_node): Properly handle side-effects, readonly,
6588         and constant flags.
6589         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
6590         and TREE_CONSTANT if not a type.
6591         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
6592         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
6593         (NON_TYPE_CHECK): New macro.
6594         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
6595
6596 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
6597
6598         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
6599         to DWARF2_DEBUG unconditionally.
6600         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
6601
6602 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
6603             Nathanael Nerode  <neroden@gcc.gnu.org>
6604
6605         PR target/14548
6606         * config.host: Set the shell variable host_can_use_collect2.
6607         Set it to yes by default, and to no for alpha*-dec-*vms*,
6608         i[34567]86-*-mingw32*, and powerpc-*-beos*.
6609         * configure.ac: Set and substitute the shell variable collect2.
6610         Give an error if use_collect2 is yes and host_can_use_collect2 is
6611         no.
6612         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
6613         uses.  Initialize to @collect2@.
6614         (STAGESTUFF): Remove $(USE_COLLECT2).
6615         * config/alpha/x-vms (USE_COLLECT2): Don't set.
6616         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
6617         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
6618         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
6619         * configure: Regenerate.
6620
6621 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6622
6623         * simplify-rtx.c (simplify_binary_operation): Constant fold
6624         DIV, MOD, UDIV and UMOD using div_and_round_double.
6625
6626 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6627
6628         PR c++/14804
6629         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
6630         RECORD_TYPEs.
6631
6632 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
6633
6634         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
6635         documentation.
6636
6637 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6638
6639         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
6640         updating the REG_EQUAL note on an insn's libcall_insn.
6641
6642 2004-04-04  Roger Sayle  <roger@eyesopen.com>
6643
6644         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
6645
6646 2004-04-03  Roger Sayle  <roger@eyesopen.com>
6647
6648         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
6649         with reorder_operands_p.
6650
6651 2004-04-03  Jan Hubicka  <jh@suse.cz>
6652
6653         * md.texi (vec_set, vec_extract, vec_init): Document.
6654
6655 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
6656
6657        * opts.c (decode_options): Do function inlining with very small
6658        max-inline-insns-* parameters when optimizing for size.
6659
6660 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
6661
6662         * config/i386/i386.h (TARGET_NOCONA): New macro.
6663         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
6664         (processor_type): Add PROCESSOR_NOCONA.
6665
6666         * config/i386/i386.md (cpu): Add nocona to the attribute values.
6667
6668         * config/i386/i386.c (nocona_cost): New variable.
6669         (m_NOCONA): New macro.
6670         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
6671         x86_branch_hints, x86_use_sahf, x86_single_stringop,
6672         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
6673         x86_integer_DFmode_moves, x86_partial_reg_dependency,
6674         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
6675         x86_decompose_lea, x86_arch_always_fancy_math_387,
6676         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
6677         x86_ext_80387_constants, x86_four_jump_limit):
6678         (override_options): Add nocona_cost to processor_target_table.
6679         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
6680         (incdec_operand): Prevent inc/dec generation for Nocona too.
6681         (ix86_issue_rate): Add PROCESSOR_NOCONA.
6682
6683 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
6684
6685         * rtlanal.c (find_reg_note): Manually
6686         unswitch the loop.
6687
6688 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
6689
6690         * genemit.c (gen_split): Change prototype of generated code.
6691         * genrecog.c (write_action): Adjust prototype for and calls to
6692         gen_split_*.
6693         * gensupport.c (struct queue_elem): Add split field.
6694         (queue_pattern): Return a value.  Clear the split field.
6695         (process_rtx): Maintain an association between an insn and the
6696         split generated from it for a define_insn_and_split.
6697         (process_one_cond_exec): Generate a new split for a
6698         define_insn_and_split.
6699         * config/arm/arm-protos.h (arm_split_constant): Add insn
6700         parameter.
6701         (emit_constant_insn): New function.
6702         (arm_gen_constant): Use it.
6703         * config/arm/arm.md: Adjust calls to arm_split_constant.
6704
6705 2004-04-02  Jan Hubicka  <jh@suse.cz>
6706
6707         * cgraph.c: Add overall comment.
6708         (cgraph_inline_hash): New global variable.
6709         (cgraph_create_node): Break out from ...
6710         (cgraph_node): ... here.
6711         (cgraph_edge): New function.
6712         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
6713         (cgraph_remove_edge): Accept edge, intead of source and destination.
6714         (cgraph_redirect_edge_callee): New.
6715         (cgraph_remove_node): Update all new datastructures.
6716         (cgraph_record_call, cgraph_remove_call): Kill.
6717         (dump_cgraph_node): Break out from ... ; dump new datastructures.
6718         (dump_cgraph): ... here.
6719         (cgraph_function_possibly_inlined_p): Use new hashtable.
6720         (cgraph_clone_edge, cgraph_clone_node): New.
6721         * cgraph.h: Include hashtab.h
6722         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
6723         fields, add inlined_to pointer.
6724         (cgraph_node): Add pointer to next_clone.
6725         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
6726         (cgraph_remove_call, cgraph_record_call): Kill.
6727         (cgraph_inline_hash): Declare.
6728         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
6729         cgraph_redirect_edge_callee): Declare.
6730         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
6731         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
6732         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
6733         * cgraphunit.c: Add overall comment.
6734         (cgraph_optimize_function): Kill.
6735         (cgraph_assemble_pending_functions): Do not assemble inline clones.
6736         (cgraph_finalize_function): Update call of cgraph_remove_node
6737         (record_call_1): Record call sites.
6738         (cgraph_create_edges): Accept node instead of decl argument.
6739         (error_found): New static variable.
6740         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
6741         (cgraph_analyze_function): Update for new datastructures.
6742         (cgraph_finalize_compilation_unit): Plug memory leak.
6743         (cgraph_optimize_function): Kill.
6744         (cgraph_expand_function): Do not use cgraph_optimize_function.
6745         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
6746         cgraph_inlined_callees): Kill.
6747         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
6748         clones.
6749         (estimate_growth): Simplify.
6750         (cgraph_clone_inlined_nodes): New function.
6751         (cgraph_mark_inline_edge): Re-implement.
6752         (cgraph_mark_inline): Likewise.
6753         (cgraph_check_inline_limits): Simplify.
6754         (cgraph_recursive_inlining_p): New.
6755         (update_callee_keys): Break out from ...
6756         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
6757         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
6758         Likewise.
6759         (cgraph_expand_all_functions):  Remove inline clones from the ordered
6760         list.
6761         (cgraph_preserve_function_body_p): New predicate.
6762         (cgraph_optimize): Verify cgraph.
6763         * function.h (struct function): Add fields saved_tree/saved_args.
6764         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
6765         * toplev.c (rest_of_compilation): Do not free cfun.
6766         * tree-inline.c: Include function.h
6767         (struct inline_data): Add saving_p field; replace decl/current_decl by
6768         node/current_node.
6769         (insert_decl_map): New function.
6770         (copy_body_r): Handle saving; update cgraph datastructure.
6771         (copy_body): Handle recursive inlining.
6772         (initialize_inlined_parameters): Likewise.
6773         (expand_call_inline): Propagate node attributes; update cgraph.
6774         (optimize_inline_calls): Verify that datastructure still match.
6775         (save_body): New function.
6776         * tree-inline.h (save_body): New.
6777         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
6778         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
6779         * langhooks.c (lang_hooks): Add update_decl_after_saving.
6780
6781 2004-04-01  Serge Belyshev  <1319@bot.ru>
6782
6783         PR target/14702
6784         * config/i386/i386.md: fix source operand constraints in
6785         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
6786
6787 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
6788
6789         * fold-const.c (folda): Preserve types of comparisons.
6790
6791 2004-04-01  Richard Henderson  <rth@redhat.com>
6792
6793         * toplev.c (backend_init): Move init_optimization_passes call ...
6794         (lang_dependent_init): ... here.
6795
6796 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
6797             Jakub Jelinek  <jakub@redhat.com>
6798
6799         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
6800         -lgcc --as-needed -lgcc_s --no-as-needed by default.
6801         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
6802         * configure: Rebuilt.
6803         * config.in: Rebuilt.
6804         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
6805         (stage2-start, stage3-start, stage4-start): Likewise.
6806         (stageprofile-start, stagefeedback-start): Likewise.
6807
6808 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6809
6810         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
6811         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6812         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6813         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
6814         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
6815         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
6816         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
6817         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
6818         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
6819         * config/sparc/t-linux: Removed.
6820
6821 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
6822
6823         PR c++/14755
6824         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
6825         "bitfld++ == const" to "++bitfld == const + incr" transformations.
6826
6827 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6828
6829         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
6830         * stor-layout.c (layout_decl): Likewise.
6831         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
6832         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
6833         * print-tree.c (print_node): Handle various used of unsigned_flag.
6834         * tree.def (BIT_FIELD_REF): Update comment.
6835         * tree.h (TREE_UNSIGNED): Deleted.
6836         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
6837
6838 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6839
6840         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
6841         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
6842         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
6843         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
6844         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
6845         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
6846         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
6847         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
6848         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
6849         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
6850         REAL_TYPE, not INTEGER_TYPE.
6851         (layout_type, case VECTOR_TYPE): Simplify code.
6852         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
6853         * tree.h: Update comments.
6854         (STRIP_NOPS): Use TYPE_UNSIGNED.
6855         (TYPE_UNSIGNED): New macro.
6856         (TYPE_TRAP_SIGNED): Remove now redundant check.
6857         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
6858
6859 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6860
6861         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
6862
6863 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
6864
6865         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
6866         Add darwin-fpsave.asm, darwin-vecsave.asm,
6867         and darwin-world.asm.
6868         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
6869         as the asm files contain altivec instructions.
6870         * config/rs6000/darwin-fpsave.asm: New file.
6871         * config/rs6000/darwin-vecsave.asm: New file.
6872         * config/rs6000/darwin-world.asm: New file.
6873
6874 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
6875
6876         * gengtype-yacc.y (option, stringseq): Add missing
6877         terminating semicolon.
6878
6879 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
6880
6881         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
6882         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
6883         tls_dtprel_ha_32, tls_dtprel_ha_64,
6884         tls_dtprel_lo_32, tls_dtprel_lo_64,
6885         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
6886         tls_tprel_ha_32, tls_tprel_ha_64,
6887         tls_tprel_lo_32, tls_tprel_lo_64,
6888         tls_got_tprel_32, tls_got_tprel_64,
6889         tls_tls_32, tls_tls_64): Replace register_operand with
6890         gpc_reg_operand.
6891
6892 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
6893
6894         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
6895         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
6896         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
6897         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
6898         *ctrdi_internal6): Replace register_operand with
6899         nonimmediate_operand.
6900
6901 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
6902
6903         * fold-const.c (fold): Reassociate multiply expression
6904         with an adjacent non-multiply expression to use
6905         architecture's multiply-add instruction.
6906
6907 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
6908
6909         * gengtype.c (create_option): New function.
6910         * gengtype.h: Prototype it.
6911         * gengtype-yacc.y (stringseq): New rule.
6912         (option): Use create_option.  Add new bare ID production.  Use
6913         stringseq, not STRING directly.
6914
6915         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
6916         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
6917         * varray.h, config/alpha/alpha.c:
6918         Use new shorter form of GTY markers.
6919
6920         * doc/gty.texi: Rewrite.
6921
6922 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
6923
6924         * config/darwin.c (machopic_function_base_name):
6925         Remove current_name and getting the name of the
6926         current function.
6927
6928 2004-03-30  Nick Clifton  <nickc@redhat.com>
6929
6930         * config/arm/arm.md (thumb_jump): Reduce the backward branch
6931         range, and increase the forward branch range, to allow for
6932         the fact that the PC will be off by 4.
6933
6934 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
6935
6936         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
6937
6938 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6939
6940         * config/rs6000/rs6000.c (output_vec_const_move):
6941         Find all cases of EASY_VECTOR_15_ADD_SELF.
6942         (easy_vector_constant_add_self): Accept
6943         all vector constant loadable by vsplt* and vadd*.
6944         (easy_vector_same): Use easy_vector_splat_const.
6945         (easy_vector_const): Use easy_vector_splat_const.
6946         (easy_vector_splat_const): New function.
6947         (gen_easy_vector_constant_add_self): New function.
6948
6949         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
6950         New prototype.
6951
6952         * config/rs6000/altivec.md (movv4si splitter): Change to
6953         emit move insn with halfed vector constant.
6954         (*movv8hi splitter): Likewise.
6955         (*movv16qi splitter): Likewise.
6956
6957 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
6958
6959         PR 11591
6960         * config/rs6000/rs6000.c (rs6000_legitimate_address):
6961         Allow any offset to argument pointer in no-strict case.
6962
6963 2004-03-30  Jan Hubicka  <jh@suse.cz>
6964
6965         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
6966         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
6967         dump file in non-unit-at-a-time mode.
6968
6969 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
6970
6971         * config/cris/cris.h: Correct #ifdef to test for
6972         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
6973         HAVE_AS_MUL_BUG_ABORT_OPTION.
6974
6975 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6976
6977         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
6978         the address inside the old RTL.
6979
6980 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
6981
6982         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
6983         (struct c_binding, struct c_scope): Add chain_next
6984         attributes to GTY markers.
6985         (struct lang_identifier, struct lang_tree_node): Define
6986         here...
6987         * c-tree.h: ... not here.  No longer need to declare struct
6988         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6989         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
6990         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
6991
6992         PR 14734, 11944
6993         * c-decl.c (get_parm_info): If error_mark_node is encountered
6994         in the bindings chain, unbind and discard it; don't abort.
6995
6996 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
6997             Dorit Naishlos <dorit@il.ibm.com>
6998
6999         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
7000         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
7001
7002 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
7003
7004         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
7005
7006         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
7007         (m68hc11_attribute_table): New attribute "page0" to mark a global
7008         variable as being allocated from within page0 section.
7009         (m68hc11_encode_label): New function.
7010         (m68hc11_strip_name_encoding): New function.
7011         (m68hc11_page0_symbol_p): New function.
7012         (m68hc11_indirect_p): Accept global variables marked in page0.
7013         (m68hc11_encode_section_info): Lookup "page0" attribute.
7014
7015         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
7016         represents access to page0 variables.
7017
7018         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
7019         ("*logicalsi3_silshl16_zext"): Likewise.
7020         ("*ashldi3_const32"): Likewise.
7021         (peephole2 ashift): Likewise.
7022
7023 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
7024
7025         * c-tree.h (C_DECL_REGISTER): New.
7026         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
7027         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
7028         (build_array_ref, c_mark_addressable): Set and use it.
7029         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
7030         Allow structures with volatile fields to be declared register.
7031         Don't check TREE_ADDRESSABLE before warning about taking address
7032         of register.
7033         * c-decl.c (finish_decl): Don't allow structures with volatile
7034         fields to be placed in named register.
7035         * doc/trouble.texi: Remove reference to structures with volatile
7036         fields in registers.
7037
7038 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7039
7040         * function.c (thread_prologue_and_epilogue): Move
7041         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
7042         before the epilogue.
7043
7044 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
7045
7046         * expr.c (store_constructor): Use gen_int_mode to correctly
7047         sign-extend CONST_INT value.
7048
7049 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7050
7051         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
7052         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
7053         * doc/extend.texi: Likewise.
7054
7055 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
7056
7057         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
7058           with TYPE_ORIG_SIZE_TYPE.
7059
7060 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
7061
7062         PR 14219
7063         * c-typeck.c (build_binary_op): Do not allow comparisons of
7064         vectors.
7065
7066 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
7067
7068         * config.gcc: Remove sparc-tti-*.
7069         * config/sparc/pbd.h: Delete.
7070
7071         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
7072         * config/sparc/aout.h: Likewise.
7073
7074         * config/sparc/sparc.h: Remove if 0'd code.
7075         * config/sparc/sparc.md (call): Remove if 0'd code.
7076         (call_value): Likewise.
7077         (nonlocal_goto): Likewise.
7078         (unimp_insn): Delete.
7079
7080 2004-03-25  Roger Sayle  <roger@eyesopen.com>
7081
7082         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
7083         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
7084
7085 2004-03-25  Richard Henderson  <rth@redhat.com>
7086
7087         PR 11527
7088         * c-typeck.c (pop_init_level): Emit pending init elements earlier
7089         rather than later.
7090
7091 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7092
7093         * builtins.c (fold_builtin): Fix error in last change.
7094
7095 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
7096
7097         * config/mips/mips.h: Formatting fix.
7098
7099 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7100
7101         * builtins.def: Add ctype builtins.
7102         * doc/extend.texi: Likewise.
7103
7104 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7105
7106         * builtins.c (fold_builtin): Add new builtin optimizations for
7107         sqrt and/or cbrt.
7108         * fold-const.c (fold): Likewise.
7109
7110 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
7111
7112         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
7113         (rs6000_sched_groups): New variable.
7114         (processor_target_table): Add power5.
7115         (rs6000_override_options): Set rs6000_sched_insert_nops,
7116         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
7117         from rs6000_sched_groups.
7118         (output_cbranch): Use rs6000_always_hint.
7119         (rs6000_variable_issue): Use rs6000_sched_groups.
7120         (rs6000_adjust_cost): Add CPU_POWER5.
7121         (is_microcoded_insn): Use rs6000_sched_groups.
7122         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
7123         Return 2 for POWER5 cracked instructions.
7124         (is_cracked_insn): Use rs6000_sched_groups.
7125         (is_branch_slot_insn): Use rs6000_sched_groups.
7126         (rs6000_issue_rate): Add CPU_POWER5.
7127         (rs6000_sched_finish): Use rs6000_sched_groups.
7128         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
7129         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
7130         (DEFAULT_SCHED_COSTLY_DEP): Delete.
7131         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
7132         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
7133         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
7134         * config/rs6000/power5.md: New file.
7135         * doc/invoke.texi: Add power5 option.
7136
7137 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7138
7139         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
7140         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
7141         * doc/invoke.texi: Fix a typo.
7142
7143 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
7144
7145         PR optimization/9707.
7146         * stmt.c (emit_case_nodes): Emit equality comparisons instead
7147         of recursing if both children are single-valued cases with no
7148         children.
7149
7150 2004-03-25  Paul Brook  <paul@codesourcery.com>
7151
7152         * config/arm/arm.c (vfp_print_multi): Remove.
7153         (arm_output_fldmx): New function.
7154         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
7155         (arm_expand_prologue): Update to match.
7156         (arm_get_vfp_saved_size): New Function.
7157         (arm_get_frame_offsets): Use it.
7158         (arm_output_epilogue): Use new functions.
7159
7160 2004-03-24  Richard Henderson  <rth@redhat.com>
7161
7162         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
7163         (reg_known_value, reg_known_value_size): Likewise; make static.
7164         (reg_known_equiv_p): Make static.
7165         (clear_reg_alias_info): Update for new indexing.
7166         (get_reg_known_value, set_reg_known_value): New.
7167         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
7168         (canon_rtx): Use them.
7169         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
7170         Don't play queer offsetting games with reg_known_value and
7171         reg_known_equiv_p.
7172         (end_alias_analysis): Free reg_known_value with gc.
7173         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
7174         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
7175         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
7176         functions instead.
7177
7178 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
7179
7180         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
7181         config/i386/mmintrin.h: Update copyright.
7182
7183 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7184
7185         * configure.ac: Add --enable-werror-always (for top level bootstrap
7186         support).
7187         * configure: Regenerate.
7188
7189 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
7190
7191         * objc/objc-act.c (objc_comptypes): Treat comparisons
7192         between 'Class' and '<class> *' as explicitly invalid.
7193
7194 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
7195
7196         * doc/invoke.texi (-frename-registers): Add enabled at -O3.
7197         (-fprofile-values): Add enabled with profile-{generate,use}.
7198         (-fvpt): Same.
7199         (-ftracer): Add enabled with profile-use.
7200         (-funit-at-a-time): Add enabled at -O2,-O3.
7201         (-funroll-loops): Add enabled with profile-use.
7202         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
7203         (max-gcse-passes): Mention default.
7204         (max-cse-path-length): Mention default.
7205
7206 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7207
7208         * Makefile.in (STRICT2_WARN): Reorder.
7209         * configure.ac: Check for -Wold-style-definition, and use it
7210         in strict1_warn if it's available.
7211         * configure: Regnerate.
7212
7213 2004-03-24  Paul Brook  <paul@nowt.org>
7214
7215         * config.gcc <arm>: Add --with-abi=
7216         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
7217         thumb_far_jump_used): Remove prototypes.
7218         (arm_needs_doubleword_align): Add prototype.
7219         (thumb_compute_initial_elimination_offset): Ditto.
7220         * config/arm/arm.c (arm_get_frame_offsets): New function.
7221         (use_return_insn, output_return_instruction, arm_output_epilogue,
7222         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
7223         arm_expand_prologue, thumb_expand_epilogue): Use it.
7224         (arm_abi, target_abi_name, all_arm_abis): New variables.
7225         (arm_override_options): Set them.  Set structure padding for AAPCS.
7226         (arm_return_in_memory): Update ABI check.
7227         (arm_init_cumulative_args): Initialize can_split.
7228         (arm_needs_doubleword_align): New function.
7229         (arm_function_arg): Don't split args after pushing to stack. Handle
7230         doubleword/even reg alignment.
7231         (arm_va_arg): Handle all doubleword aligned args.
7232         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
7233         on ABI, not CPU.
7234         (arm_compute_save_reg0_reg12_mask): Fix comment.
7235         (thumb_get_frame_size, thumb_get_frame_size): Remove.
7236         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
7237         value for alignment.
7238         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
7239         to match.
7240         (thumb_compute_initial_elimination_offset): New function.
7241         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
7242         unneccessary rounding.
7243         * config/arm/arm.h (target_abi_name): Declare.
7244         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
7245         arm_abi_type, ARM_DEFAULT_ABI): Define.
7246         (ARM_FLAG_ATPCS): Remove.
7247         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
7248         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
7249         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
7250         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
7251         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
7252         Contitionalize on ABI, not CPU.
7253         (struct arm_stack_offsets): Define.
7254         (struct machine_function): Add stack_offsets.  Remove frame_size.
7255         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
7256         pushed.
7257         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
7258         doubleword alignment.
7259         (THUMB_INITIAL_ELIMINATION_OFFSET,
7260         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
7261         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
7262         * config/arm/arm.md (align_8): Enable for all targets.
7263         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
7264         (ARM_DEFAULT_ABI): Define.
7265         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
7266         -mstructure-size-boundary.
7267
7268 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
7269
7270         * configure.ac: Check for -Wno-variadic-macros; don't use
7271         -pedantic (in stage 1 or a simple 'make all') unless it's available,
7272         and if it's available, use it.  Also, clean up check for
7273         -Wno-long-long.
7274         * configure: Regenerate.
7275
7276 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7277
7278         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
7279         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
7280         (MULTILIB_DEFAULTS): Use it.
7281         (MIPS_CPU_STRING_DEFAULT): Remove.
7282         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
7283         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
7284         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
7285         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
7286         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
7287         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
7288         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
7289         accordingly.
7290
7291 2004-03-24  DJ Delorie  <dj@redhat.com>
7292             Richard Sandiford  <rsandifo@redhat.com>
7293
7294         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
7295         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
7296         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
7297         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
7298         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
7299         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
7300         if TARGET_FIX_VR4122.
7301         * config/mips/mips.md (define_attr length): Account for nops inserted
7302         after macc and dmult when using -mfix-vr4122-bugs.
7303         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
7304         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
7305         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
7306         * config/mips/vr4122-div.S: New file.
7307         * doc/invoke.texi: Document -mfix-vr4122-bugs.
7308
7309 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
7310
7311         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
7312         (TARGET_MIPS4130): New macro.
7313         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
7314         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
7315         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
7316         with PROCESSOR_R4130.
7317         * config/mips/mips.md (define_attr cpu): Add r4130.
7318         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
7319
7320 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
7321             Richard Sandiford  <rsandifo@redhat.com>
7322
7323         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
7324
7325 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
7326
7327         PR preprocessor/14438
7328         * cpplib.c (do_pragma): Remove line_change call after pragma
7329         handler.
7330
7331 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
7332
7333         * doc/extend.texi (ARM Built-in Functions): Replace with correct
7334         declarations.
7335
7336 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7337
7338         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
7339         if flag_unsafe_math_optimizations.
7340         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
7341         and TARGET_80387 expand using truncdfsf2_noop pattern.
7342         (truncxfsf2): Likewise using truncxfsf2_noop.
7343         (truncxfdf2): Likewise using truncxfdf2_noop.
7344         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
7345
7346 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
7347
7348         * hooks.c (hook_constcharptr_tree_null): New hook.
7349         * hooks.h (hook_constcharptr_tree_null): New prototype.
7350         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
7351         * target.h (mangle_fundamental_type): New target hook.
7352         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
7353         target hook at rs6000_mangle_fundamental_type.
7354         (rs6000_mangle_fundamental_type): New function.
7355         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
7356
7357 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
7358
7359         PR 12267, 12391, 12560, 13129, 14114, 14133
7360         * c-tree.h: Forward declare struct c_binding.  Declare
7361         c_override_bindings_to_false.  Update prototypes.
7362         (struct lang_identifier): Update comments.  Change fields to be
7363         struct c_binding *.
7364         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
7365         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
7366         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
7367         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
7368         * c-common.h: Update prototypes.
7369         * c-decl.c (struct c_scope): Update commentary.  Remove names,
7370         names_last, parms, parms_last, tags, and shadowed fields.  Add
7371         bindings and depth fields.
7372         (scope_freelist): Move to more appropriate location.
7373         (c_print_identifier): Update for changes to struct lang_identifier.
7374         (objc_mark_locals_volatile): Update for new bindings structures.
7375         (global_bindings_p): Honor c_override_global_bindings_to_false.
7376         (pushlevel): Rename to push_scope; take no arguments; use the
7377         scope_freelist; initialize scope->depth and check for overflow.
7378         (poplevel): Rename to pop_scope; totally rewritten for new bindings
7379         structures.
7380         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
7381         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
7382         Improve some commentary.  Adjust handling of forward parm decls.
7383         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
7384         Preserve C_DECL_IN_EXTERNAL_SCOPE.
7385         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
7386         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
7387         decls.  Rewrite for new bindings structures.  Improve commentary.
7388         Eliminate the copy_node call.
7389         (implicit_decl_warning): Use the "diag" idiom (as seen in
7390         locate_old_decl) to reduce code duplication; call locate_old_decl
7391         if appropriate.  Relocate to remove need for forward declaration.
7392         (implicitly_declare): Adjust for new bindings structures.  Kludge
7393         around Objective-C not-really-builtin functions.
7394         (undeclared_variable): Improve diagnostics.  If current_function_decl
7395         is nonnull but current_function_scope is null, use current_scope.
7396         Use bind.
7397         (lookup_tag): Adjust for new bindings structures.  Kludge around
7398         Objective-C's tag declarations that wind up in the external scope.
7399         (lookup_name): Adjust for new bindings structures.  Kludge around
7400         c-common.c's pseudo-typedefs that wind up in the external scope.
7401         (lookup_name_current_level): Rename lookup_name_in_scope; take a
7402         second argument indicating the scope to examine; rewrite for
7403         new bindings structures.
7404         (c_init_decl_processing): Adjust for renamed functions.  Do not
7405         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
7406         First scope pushed is the external scope, not the global scope.
7407         (builtin_function): Use bind, not pushdecl.  Adjust other bits
7408         for new data structures.  Keep track of builtins that should be
7409         made visible automatically.
7410         (start_decl): Adjust diagnostics.  Remove unnecessary call to
7411         expand_decl.
7412         (grokparms): Return 0 if arg_types is error_mark_node.
7413         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
7414         reversed sense.  Rewrite for new bindings structures.  Do not
7415         leave any decls in the scope, to prevent pop_scope from doing
7416         contradictory things with them.
7417         (finish_struct, finish_enum): Remove redundant diagnostics.
7418         (build_enumerator): Don't cascade diagnostics for error_mark_node.
7419         Mark location where -pedantic changes the meaning of the program.
7420         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
7421         parameter decls into the function's scope structure using bind.
7422         Warn here about function definitions in the wrong style.
7423         Adjust diagnostics.
7424         (store_parm_decls): Correct the determination of whether a
7425         function was defined with a prototype.
7426         (c_write_global_declarations): Operate on all file decls and on
7427         the external scope.  Split body of the loop to...
7428         (c_write_global_declarations_1): ... this new function, to avoid
7429         code duplication.
7430         (truly_local_externals, first_builtin_decl, last_builtin_decl)
7431         (make_scope, pop_scope, in_parm_level_p, set_block)
7432         (any_external_decl, record_external_decl, bind_label, getdecls)
7433         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
7434         (c_reset_state): Delete.
7435         (visible_builtins, c_override_global_bindings_to_false)
7436         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
7437         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
7438         (external_scope, binding_freelist, bind, free_binding_and_advance)
7439         (push_file_scope, pop_file_scope): New.
7440         (pushtag, pushdecl_top_level, lookup_label, declare_label)
7441         (define_label, c_make_fname_decl, finish_decl)
7442         (mark_forward_parm_decls, build_compound_literal)
7443         (grokdeclarator, start_function, check_for_loop_decls)
7444         (identifier_global_value, record_builtin_type): Minor adjustments
7445         for new bindings structures.  Improve diagnostics and commentary.
7446         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
7447         pushlevel/poplevel respectively.
7448         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
7449         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
7450         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
7451         correct loop over multiple translation units; call fatal_error if
7452         requested to compile more than one file at once.  (This disables
7453         IMA temporarily - an up-front error being preferable to a crash.)
7454         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
7455         (all actions): Adjust calls to pushlevel/poplevel.
7456         (parsing_iso_function_signature): Delete.
7457         (extdef_1): Fold into extdef.
7458         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
7459         warn here about function definitions in the wrong style.
7460         (after_tyle_declarator, parm_declarator_starttypename)
7461         (parm_declarator_nostarttypename, notype_declarator): Remove
7462         commented-out productions.
7463         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
7464         an empty TREE_LIST node.  Adjust calls to get_parm_info.
7465         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
7466         to suppress -Wold-style-definition after this error.
7467         (c_parse_file): Don't clear the binding stack or call
7468         finish_fname_decls here.  Correct comment.
7469         * c-typeck.c (same_translation_unit_p): Export.
7470         (common_type): Use c_override_global_bindings_to_false, not
7471         pushlevel/poplevel/declare_parm_level.
7472         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
7473         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
7474         and LANG_HOOKS_GETDECLS with do-nothing stubs.
7475         * objc/objc-lang.c: Likewise.
7476         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
7477         get_parm_info.
7478         (OBJC_VOID_AT_END): Delete; replace all uses
7479         with void_list_node.
7480         (generate_forward_declaration_to_string_table): Delete.
7481         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
7482
7483         * coverage.c (create_coverage): Don't pushdecl anything.
7484         * langhooks.c (lhd_clear_binding_stack): Call
7485         lang_hooks.decls.poplevel, not poplevel.
7486         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
7487         circular list rather than going into an infinite loop.
7488
7489 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
7490
7491         * optabs.c (expand_binop): When synthesizing double word rotates
7492         from single word shifts, use a new register target if the provided
7493         target is not a REG already.
7494
7495 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7496
7497         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
7498         * c-common.c (handle_mode_attribute): Add extra arg to
7499         build_pointer_type_for_mode and build_reference_type_for_mode.
7500         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
7501         for INTEGER_CST.
7502         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
7503         Chain pointers via TYPE_NEXT_PTR_TO.
7504         (build_reference_type_for_mode): Similarly.
7505         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
7506         and build_reference_type_for_mode.
7507         (tree_check4_failed): New function.
7508         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
7509         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
7510         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
7511         Add check.
7512
7513 2004-03-23  Roger Sayle  <roger@eyesopen.com>
7514
7515         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
7516         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
7517         when both A and B are nonnegative.
7518         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
7519         nonzero.
7520
7521 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7522
7523         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
7524         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
7525
7526 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
7527
7528         PR optimization/14669
7529         * fold-const.c (fold): Only unwiden integer comparisons for equality
7530         and inequality operators, or when the signedness doesn't change.
7531
7532 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
7533
7534         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
7535         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
7536         * config/sparc/t-linux: New file.
7537
7538 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
7539
7540         * gcse.c (can_assign_to_reg_p): New function, split out from...
7541         (want_to_gcse_p): ...here.
7542         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
7543         the rhs of a store.
7544
7545 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
7546
7547         * c-typeck.c (same_translation_unit_p): Fix pasto.
7548
7549 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
7550
7551         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
7552         (PARAM_MAX_SCHED_REGION_INSNS): New.
7553         * sched-rgn.c: Include params.h
7554         (MAX_RGN_BLOCKS): Delete.
7555         (MAX_RGN_INSNS): Delete.
7556         (too_large): Return bool.  Convert to PARAM_VALUE.
7557         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
7558         * doc/invoke.texi (param): Document max-sched-region-blocks and
7559         max-sched-region-insns.
7560
7561 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7562
7563         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
7564         for base types.
7565
7566 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
7567
7568         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
7569         change.
7570
7571 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
7572
7573         PR c/14069
7574         * c-decl.c (finish_struct): Change type of incorrect flexible array
7575         field into error_mark_node.
7576
7577 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
7578
7579         PR target/14580
7580         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
7581         who are not local for Darwin PIC.
7582
7583 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
7584
7585         * regrename.c (regrename_optimize): Set regs_ever_live for all
7586         registers introduced as replacement.
7587
7588 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
7589
7590         PR middle-end/14470
7591         * expr.c (mark_queue): New function.
7592         (emit_insns_enqueued_after_mark): New function replacing
7593         emit_queue.  Clear the body of emitted queued insns.
7594         (emit_queue): Call emit_insns_enqueued_after_mark.
7595         (store_expr): Mark the increment queue on entry.  Emit
7596         only the incrementations queued when expanding the source.
7597
7598 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
7599
7600         * configure.ac: Allow --disable-coverage-flags (for the future benefit
7601         of top level bootstrap, and consistency).  Reindent.
7602         * configure: Regenerate.
7603
7604 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
7605
7606         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
7607         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
7608         unnecessary casts.
7609
7610 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
7611
7612         PR target/14291
7613         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
7614         __MINGW32__.
7615
7616 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7617
7618         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
7619         to nonimmediate_operand.
7620         ("*doloop_di"): Likewise.
7621
7622 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
7623
7624         * real.h (struct real_value): Use the same type for all
7625         bitfields.  Rename exp to uexp.
7626         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
7627         Adjust all uses of exp...
7628         * builtins.c: ... here, ...
7629         * emit-rtl.c: ... here, and ...
7630         * real.c: ... and here.
7631
7632 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7633
7634         * pretty-print.c (pp_base_maybe_space): New function.
7635         * pretty-print.h (pp_base_maybe_space): Declare.
7636         (pp_maybe_space): New macro.
7637
7638 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7639
7640         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
7641
7642 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
7643
7644         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
7645         of using register multiplication cost.
7646         (expand_mult): Adapt choose_mult_variant call.
7647         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
7648         of MODE; pass appropriate cost bound.  Adjust result when
7649         performing signed multiplication by a negative constant.
7650         Don't use intermediate modes larger than word_mode.
7651
7652 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7653
7654         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
7655         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
7656         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
7657         * explow.c (expr_size): Likewise.
7658         * expr.h (placeholder_list, find_placeholder): Deleted.
7659         * expr.c (store_constructor): Likewise.
7660         (get_inner_reference): Likewise.  Also don't call find_placeholder.
7661         (placeholder_list, find_placeholder): Deleted.
7662         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
7663         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
7664         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
7665         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
7666         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
7667         Likewise.
7668         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
7669         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
7670         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
7671         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
7672         Clean up by using first_rtl_op.
7673         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
7674         (substitute_placeholder_in_expr): New function.
7675         * tree.def (WITH_RECORD_EXPR): Deleted.
7676         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
7677         (substitute_placeholder_in_expr): New.
7678
7679 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
7680
7681         * dojump.c (prefer_and_bit_test): Fix which part of
7682         the and_test is replaced.
7683
7684 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
7685
7686         * frontends.texi: Add missing line.
7687
7688 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
7689             Chris Devers  <cdevers@pobox.com>
7690             Joseph S. Myers  <jsm@polyomino.org.uk>
7691
7692         * doc/frontends.texi: Rewrite.
7693         * doc/gcc.texi: Update last modification date.
7694
7695 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
7696
7697         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
7698         message before redirecting the edge.
7699
7700 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7701
7702         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
7703         flag.
7704         * explow.c (force_not_mem): Set REG_POINTER flag according to
7705         MEM_POINTER one.
7706         * rtl.h (MEM_POINTER): New macro.
7707         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
7708         for MEM_POINTER.
7709
7710 2004-03-20  Roger Sayle  <roger@eyesopen.com>
7711
7712         PR target/13889
7713         * cse.c (fold_rtx): Avoid substituting constants into unary
7714         conversion operations.
7715
7716 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7717
7718         * fold-const.c (fold): Replace "expr" with "t".
7719
7720 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
7721
7722         PR c/12373
7723         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
7724         DECL_ORIGINAL_TYPE if there isn't one.
7725
7726 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7727
7728         * fold-const.c (fold): Replace "final_type" with "type".
7729         Remove variable "final_type".
7730
7731 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7732
7733         * fold-const.c (fold): Constify "type".
7734         Replace "TREE_TYPE (t)" with "type".
7735
7736 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7737
7738         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
7739         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
7740         via (*targetm.foo) () with targetm.foo ().
7741
7742 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7743
7744         PR other/14630
7745         * doc/install.texi: Add info directory category and entry.
7746
7747 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7748
7749         * fold-const.c (fold): Replace "t" with "tem" where it is used
7750         as a temporary variable.  Remove "orig_t" and all of its uses.
7751
7752 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7753
7754         * fold-const.c (fold): Remove variable "invert".
7755         Move the handling of relational expressions that can be folded
7756         to a constant ...
7757         (fold_relational_const): ... here.
7758         (tree_expr_nonzero_p): New.
7759
7760 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
7761
7762         PR c/14635
7763         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
7764         DEF_GCC_BUILTIN.
7765
7766 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
7767
7768         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
7769         (GTFILES): Add $(srcdir)/dojump.h.
7770         (gt-dojump.h): New dependency.
7771         * dojump.c (and_reg, and_test, shift_test): New static variables.
7772         (prefer_and_bit_test): New function.
7773         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
7774
7775 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
7776
7777         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
7778         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
7779         reorg.c, tree.h: Fix comment typos.
7780
7781 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7782
7783         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
7784         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
7785         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
7786         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
7787         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
7788         vmsdbgout.c: Replace calls via (*targetm.foo) () with
7789         targetm.foo ().
7790
7791 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
7792
7793         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
7794         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
7795         always_inline attribute.
7796         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
7797         Treat expansion as completed even if literal argument is
7798         invalid (so that other expansions are not tried in vain).
7799
7800 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7801
7802         * loop-doloop.c (add_test): Replace GEN_INT (0) with
7803         const0_rtx.
7804
7805 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7806
7807         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
7808         ...
7809         (fold_abs_const): ... here.
7810
7811 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7812
7813         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
7814
7815 2004-03-19  Denis Chertykov  <denisc@overta.ru>
7816
7817         PR target/11520
7818         * config/avr/avr.md ("call_insn"): Handle explicit integer
7819         specially.
7820         (call_value_insn): Likewise.
7821
7822 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7823
7824         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
7825
7826 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
7827
7828         * fold-const.c (negate_expr): Move the handling of constants
7829         ...
7830         (fold_negate_const): ... here.
7831
7832 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7833
7834         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
7835         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
7836         * tree.c (debug_no_type_hash): Deleted.
7837         (type_hash_canon): Abort if passed a variant.
7838         Check lang_hooks.types.hash_types.
7839         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
7840         (build_array_type): Remove unnecessary allocation of pointer type.
7841         (build_complex_type): Properly qualify resulting type.
7842
7843 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
7844
7845         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
7846
7847 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
7848
7849         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
7850         (expand_mult): ...here.
7851         (extract_high_half): New, split out from expand_mult_highpart.
7852         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
7853         (expand_highpart): Evaluate the cost of a shift/add sequence,
7854         then see if any of the specialized optabs are cheaper.
7855
7856 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
7857
7858         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
7859
7860 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7861
7862         * convert.c (convert_to_real): Add more math builtins.
7863
7864 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
7865
7866         * convert.c (convert_to_real): Reformat using switch stmt.
7867
7868 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7869
7870         * c-common.c (pointer_int_sum): Do not complain about using
7871         pointers to pointers-to-members.
7872
7873 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
7874
7875         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
7876         have moved to the target hooks structure".
7877
7878 2004-03-18  James E Wilson  <wilson@specifixinc.com>
7879
7880         * config/mips/mips.md (type): Split move into arith and fmove.  Split
7881         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
7882         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
7883         Likewise.
7884         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
7885         Likewise.
7886         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
7887         rm7_fp_quick): Likewise.
7888         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
7889         rm9k_fquick): Likewise.
7890         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
7891         Likewise.
7892         (ir_sr70_icmp): Delete.
7893
7894 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7895
7896         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
7897         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
7898         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
7899         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
7900         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
7901         Protect with proper check.
7902         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
7903         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
7904         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
7905         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
7906         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
7907         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
7908         not TYPE_FIELDS.
7909         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
7910
7911 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
7912
7913         * gcse.c (eliminate_partially_redundant_loads): Reject change if
7914         dest is set between beginning and current insn.
7915
7916 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
7917
7918         * c-decl.c (grokdeclarator): Do not complain about redeclaring
7919         visible "static" identifiers "extern" in a local scope.
7920         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
7921         post-increments/decrements.
7922
7923 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
7924
7925         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
7926         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
7927         (xtensa_va_start): Remove assignment to current_function_arg_words.
7928
7929 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
7930
7931         * alias.c (record_set): Detect the case where a register is assigned
7932         a new value that has the same base term as the old one.
7933
7934 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7935
7936         * doloop.c: Removed.
7937         * loop-doloop.c: New file.
7938         * Makefile.in (doloop.o): Remove.
7939         (loop-doloop.o): New.
7940         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
7941         * cfgloopanal.c (get_loop_level): New function.
7942         * loop-iv.c (iv_number_of_iterations): Handle case when loop
7943         is leaved immediatelly.
7944         * loop.c (strength_reduce): Do not call doloop optimization.
7945         * loop.h (LOOP_BCT): Removed.
7946         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
7947         (rest_of_handle_loop2): Call doloop_optimize_loops.
7948         (rest_of_compilation): Test for optimizations moved to
7949         rest_of_handle_loop2.
7950
7951 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
7952
7953         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
7954         for mixed mode.
7955         (rs6000_emit_prologue): Ditto.
7956         (rs6000_emit_epilogue): Ditto.
7957         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
7958         macro for mixed mode.
7959
7960 2004-03-18  Jan Hubicka  <jh@suse.cz>
7961
7962         * predict.c (propagate_freq): Compute correctly frequency of
7963         EXIT_BLOCK.
7964
7965 2004-03-17  Eric Christopher  <echristo@redhat.com>
7966
7967         * builtins.c (apply_args_size): Use reg_raw_mode.
7968         (apply_result_size): Ditto.
7969
7970 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
7971
7972         PR target/14620
7973         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
7974
7975 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
7976
7977         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
7978         32-bit builds when defaulting to 32-bit.
7979
7980 2004-03-17  Jan Hubicka  <jh@suse.cz>
7981
7982         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
7983         array.
7984
7985 2004-03-17  James E Wilson  <wilson@specifixinc.com>
7986
7987         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
7988         (hazard_nop): Change type to nop.
7989         (type): Split arith into arith, shift, slt, clz.  Delete darith.
7990         Fix all uses.  Change arith to multi if more than one insn emitted.
7991         * config/mips/5400.md (ir_vr54_arith): Likewise.
7992         * config/mips/5500.md (ir_vr55_arith): Likewise.
7993         * config/mips/7000.md (rm7_int_other): Likewise.
7994         * config/mips/9000.md (rm9k_int): Likewise.
7995         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
7996
7997 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
7998
7999         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
8000         to hold the subtype tree instead of recomputing it several times.
8001
8002 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
8003
8004         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
8005         CC_INVERT.
8006         * config/mn10300/mn10300.md (cc): Remove "invert".
8007
8008 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8009
8010         * builtins.c (integer_valued_real_p): Add builtin rint.
8011         (fold_builtin): Likewise.
8012         * convert.c (convert_to_real): Likewise.
8013
8014         * convert.c (convert_to_real): Fix typos in `long double'
8015         builtins.
8016
8017 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
8018
8019         PR c++/14481
8020         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
8021         generated COMPOUND_EXPRs.
8022
8023 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8024
8025         * config/h8300/t-rtems (h8300-*-rtems*): New.
8026
8027 2004-03-16  Eric Christopher  <echristo@redhat.com>
8028
8029         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
8030
8031 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8032
8033         * config/i386/i386-protos.h: Add a prototype for
8034         ix86_reverse_condition.
8035         * config/i386/i386.c (ix86_reverse_condition): New.
8036         * config/i386/i386.h (REVERSE_CONDITION): Use
8037         ix86_reverse_condition.
8038         * config/i386/i386.md: Use ix86_reverse_condition instead of
8039         REVERSE_CONDITION.
8040
8041 2004-03-16  J. Brobecker  <brobecker@gnat.com>
8042
8043         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
8044
8045 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
8046
8047         PR bootstrap/12974
8048         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
8049
8050 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8051
8052         * c-common.c (c_common_type_for_mode): Build vector types on
8053         demand.
8054         (handle_mode_attribute): Deprecate using the mode attribute
8055         to create vector types.  Fix indentation.
8056         (vector_type_node_list): Remove.
8057         (handle_vector_size_attribute): Create vector types on demand.
8058         Strip a NON_LVALUE_EXPR from the attribute if there is one.
8059         * c-typeck.c (comptypes): Make vector types compatible if they
8060         have the same underlying mode.
8061         (convert_for_assignment): Use comptypes to convert between
8062         vector types.
8063         * tree.c (build_common_tree_nodes_2): Do not create vector types.
8064         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
8065         vector types.
8066         * tree.h: Remove vector types.
8067         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
8068         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
8069         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
8070         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
8071         * doc/extend.texi (Vector Types): Document how to use the
8072         vector_size attribute to create vectors, rather than mode.
8073
8074         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
8075         * config/i386/emmintrin.h: Likewise.
8076         * config/i386/mmintrin.h: Likewise.
8077         * config/i386/xmmintrin.h: Likewise.
8078         * config/sh/ushmedia.h: Likewise.
8079
8080 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
8081
8082         * config/freebsd-spec.h, config/arc/arc-protos.h,
8083         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
8084         config/arm/linux-gas.h, config/arm/semi.h,
8085         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
8086         config/ia64/freebsd.h, config/mips/7000.md,
8087         config/mips/9000.md, config/ns32k/ns32k-protos.h,
8088         config/sparc/pbd.h: Update copyright.
8089
8090 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
8091
8092         PR target/14577
8093         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
8094
8095 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
8096
8097         * combine.c (combine_simplify_rtx): Remove the "last"
8098         parameter and its documentation.  Adjust recursive calls.
8099         (simplify_logical): Always perform the only simplification
8100         controlled by "last", if the simplified expression is
8101         actually different.
8102         (try_combine): Do not pass the "last" parameter to
8103         combine_simplify_rtx.
8104
8105 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
8106
8107         PR target/14599
8108         * config/mips/mips.md (UNSPEC_GP): New constant.
8109         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
8110         an UNSPEC instead of (reg $gp).
8111         (mips16_gp_pseudo_reg): Change accordingly.
8112         (print_operand): Print $gp directly when handling CONST_GP_P.
8113
8114 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8115
8116         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
8117         * longlong.h: Make code 68060 clean when compiling for m68060.
8118
8119 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
8120
8121         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
8122         * doc/md.texi: Clarify description of "i" constraint.
8123
8124 2004-03-15  James E Wilson  <wilson@specifixinc.com>
8125
8126         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
8127         Split store into store, fpstore, fpidxstore.  Fix all uses.
8128         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
8129         Likewise.
8130         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
8131         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
8132         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
8133         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
8134         ir_sr70_fstore): Likewise.
8135
8136 2004-03-15  Richard Henderson  <rth@redhat.com>
8137
8138         PR middle-end/14535
8139         * except.c (collect_one_action_chain): Record action for cleanup
8140         outer of exception spec.
8141
8142 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
8143
8144         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8145         Fix the check for abort and only do the mmap if we can.
8146
8147 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
8148
8149         * config/sparc/sparc.h: Rework comments about the code model
8150         in 64-bit environment and the mode 'Pmode'.
8151         * doc/invoke.texi (SPARC options): Rework description of the
8152         different code models supported in 64-bit environment.
8153
8154 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8155
8156         * defaults.h (REVERSIBLE_CC_MODE): Define.
8157         * jump.c (reversed_comparison_code_parts): Don't check if
8158         REVERSIBLE_CC_MODE is defined.
8159
8160 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
8161
8162         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
8163         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
8164         hosthooks.h, params.h, ra-colorize.c, web.c,
8165         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
8166         config/avr/avr-protos.h, config/avr/avr.md,
8167         config/fr30/fr30-protos.h, config/fr30/fr30.md,
8168         config/h8300/fixunssfsi.c, config/i386/darwin.h,
8169         config/i386/freebsd.h, config/i386/freebsd64.h,
8170         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
8171         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
8172         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
8173         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
8174         config/pa/pa64-regs.h, config/rs6000/aix41.h,
8175         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
8176         config/sparc/aout.h, config/sparc/freebsd.h,
8177         config/sparc/litecoff.h, config/vax/vax-protos.h,
8178         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
8179         copyright.
8180
8181 2004-03-15  Paul Brook  <paul@codesourcery.com>
8182
8183         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
8184
8185 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
8186
8187         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
8188         (pp_c_cv_qualifier): Document.
8189         (pp_c_space_for_pointer_operator): Likewise.
8190         (pp_c_integer_constant): Likewise.
8191         (pp_c_identifier): Likewise.
8192         (pp_c_init_declarator): Don't print function body.
8193
8194 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
8195
8196         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
8197         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
8198         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
8199         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
8200         wording and grammar.
8201
8202 2004-03-14  Roger Sayle  <roger@eyesopen.com>
8203
8204         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
8205         with lang_hooks.foo ().
8206         * builtins.c (expand_builtin_va_arg): Likewise.
8207         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
8208         c_common_type_for_mode, c_common_nodes_and_builtins,
8209         handle_mode_attribute, handle_vector_size_attribute): Likewise.
8210         * c-convert.c (convert): Likewise.
8211         * c-format.c (check_format_types): Likewise.
8212         * c-objc-common.c (c_tree_printer): Likewise.
8213         * c-typeck.c (build_unary_op, build_conditional_expr,
8214         build_binary_op): Likewise.
8215         * calls.c (try_to_integrate, expand_call,
8216         emit_library_call_value_1): Likewise.
8217         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
8218         Likewise.
8219         * cgraphunit.c (record_call_1, cgraph_analyze_function,
8220         cgraph_expand_function): Likewise.
8221         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
8222         * coverage.c (build_fn_info_type, build_ctr_info_type,
8223         build_gcov_info, create_coverage): Likewise.
8224         * dbxout.c (dbxout_init): Likewise.
8225         * diagnostic.c (diagnostic_report_current_function): Likewise.
8226         * dojump.c (do_jump): Likewise.
8227         * dwarf2out.c (dwarf2_name): Likewise.
8228         * except.c (init_eh): Likewise.
8229         * explow.c (expr_size, int_expr_size): Likewise.
8230         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
8231         Likewise.
8232         * expr.c (store_expr, store_constructor, safe_from_p,
8233         expand_expr_real, do_store_flag, try_casesi): Likewise.
8234         * function.c (push_function_context_to, pop_function_context_from,
8235         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
8236         put_var_into_stack, allocate_struct_function, current_function_name):
8237         Likewise.
8238         * integrate.c (copy_decl_for_inlining, expand_inline_function):
8239         Likewise.
8240         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
8241         lhd_print_error_function): Likewise.
8242         * opts.c (handle_option, decode_options): Likewise.
8243         * passes.c (open_dump_file): Likewise.
8244         * print-tree.c (print_node): Likewise.
8245         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
8246         expand_decl_cleanup, emit_case_nodes): Likewise.
8247         * stor-layout.c (variable_size): Likewise.
8248         * toplev.c (announce_function, wrapup_global_declarations,
8249         check_global_declarations, compile_file, default_tree_printer,
8250         process_options, lang_dependent_init, finalize): Likewise.
8251         * tree-dump.c (dequeue_and_dump): Likewise.
8252         * tree-inline.c (remap_decl, remap_block, copy_body_r,
8253         initialize_inlined_parameters, declare_return_variable,
8254         inlinable_function_p, expand_call_inline, optimize_inline_calls,
8255         walk_tree, copy_tree_r): Likewise.
8256         * tree-optimize.c (tree_rest_of_compilation): Likewise.
8257         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
8258         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
8259         variably_modified_type_p, dump_tree_statistics): Likewise.
8260         * varasm.c (assemble_variable, compare_constant, copy_constant,
8261         force_const_mem, compute_reloc_for_constant, output_constant,
8262         output_addressed_constants, initializer_constant_valid_p): Likewise.
8263
8264 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
8265
8266         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
8267
8268 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
8269
8270         * doc/install.texi: Reflect autoconf and automake version for
8271         libffi. Update autoconf version to 2.59.
8272
8273 2004-03-13  Roger Sayle  <roger@eyesopen.com>
8274
8275         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
8276         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
8277         make_range, build_range_check, fold_range_test, unextend,
8278         constant_boolean_node, fold_binary_op_with_conditional_arg,
8279         fold_truthop, fold_mathfn_compare, fold_inf_compare,
8280         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
8281         with lang_hooks.foo ().
8282
8283 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
8284
8285         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
8286
8287 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
8288
8289         * doc/install.texi: Note status of -fnew-ra.
8290
8291 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
8292
8293         PR middle-end/14470
8294         * expr.c (store_expr): Call emit_queue before generating the move
8295         from the temporary to the original target.  Protect the temporary
8296         from emit_queue.
8297
8298 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
8299
8300         PR target/14533
8301         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
8302         other than UNSPEC_GOTOFF.
8303
8304 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
8305
8306         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
8307         to arm_legitimate_index_p.  Update all callers with SET as default
8308         value.
8309         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
8310         range if OUTER is a sign-extend operation on QImode.  Correctly
8311         reject shift operations on sign-extended QImode addresses.
8312         (bad_signed_byte_operand): Delete.
8313         (arm_extendqisi_mem_op): New function.
8314         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
8315         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
8316         constraints.
8317         (CONSTRAINT_LEN): New.
8318         (EXTRA_CONSTRAINT): Delete.  Replace with...
8319         (EXTRA_CONSTRAINT_STR): ... this.
8320         (PREDICATE_CODES): Remove bad_signed_byte_operand.
8321         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
8322         is now always default.
8323         (define_splits for bad sign-extend loads): Delete.
8324         (arm_extendqisi, arm_extendqisi_v5): Likewise.
8325         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
8326         Rework 'U' constraint to 'Uv'.
8327         * arm-protos.h: Remove bad_signed_byte_operand.  Add
8328         arm_extendqisi_mem_op.
8329         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
8330         Add Uq constraint.
8331
8332 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
8333
8334         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
8335         with targetm version.
8336
8337         PR target/14567
8338         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
8339         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
8340         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
8341         Update all users of RS6000_ARG_SIZE.
8342         (function_arg_advance): Count fregno using mode size.
8343         (function_arg): Handle long double split over regs and memory.
8344         (function_arg_partial_nregs): Likewise.
8345         (rs6000_va_arg): Repackage complex args.
8346
8347 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
8348
8349         PR target/14047
8350         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
8351         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
8352         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
8353
8354 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
8355
8356         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
8357         prototype.
8358         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
8359         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
8360
8361 2003-03-12  Andrew Pinski  <apinski@apple.com>
8362
8363         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
8364         Use ret instead of result. Use addr instead of base.
8365
8366 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
8367
8368         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
8369         fixes required by libstdc++ and update installation instructions
8370         for libstdc++.a.
8371
8372 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
8373
8374         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
8375         leading '@' on fastcall symbols before stripping suffix.
8376
8377 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8378
8379         * combine.c (unmentioned_reg_p): New function to check whether an
8380         expression is a "specialization" of another, i.e. that there are
8381         no registers or memory references mentioned in the first that don't
8382         appear in the second.
8383         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
8384         (combine_instructions): Also try combining instructions using the
8385         REG_EQUAL note from a preceding log-linked instruction.
8386
8387 2004-03-12  Roger Sayle  <roger@eyesopen.com>
8388
8389         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
8390
8391 2004-03-12  Matt Austern  <austern@apple.com>
8392
8393         * target.h (struct gcc_target): New target hook, unwind_label.
8394         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
8395         * output.h (default_emit_unwind_label): New function.
8396         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
8397         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
8398         (TARGET_SUPPORTS_HIDDEN): New target macro.
8399         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
8400         that corresponds to this FDE.
8401         (FRAME_BEGIN_LABEL): Allow target to override default label.
8402         (output_call_frame_info): If FDEs are linknonce, then use extra
8403         indirection for FDE encoding, output a label for each FDE, and
8404         output an empty label for each function without an FDE.
8405         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
8406         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
8407         decls with DECL_ONE_ONLY set, if that macro is defined.
8408         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
8409         for a SUPPORTS_ONE_ONLY target.
8410         * config/darwin-protos.h (darwin_unique_section): Declare.
8411         (darwin_asm_named_section): Likewise.
8412         (darwin_section_type_flags): Likewise.
8413         (darwin_non_lazy_pcrel): Likewise.
8414         (darwin_emit_unwind_label): Likewise.
8415         (darwin_make_decl_one_only): Likewise.
8416         * config/darwin.c (machopic_finish): Get rid of tweak that
8417         eliminate stubs for symbols that are defined.
8418         (darwin_encode_section_info): Don't treat weak functions as defined.
8419         (darwin_make_decl_one_only): Define.
8420         (darwin_asm_named_section): Likewise.
8421         (darwin_section_type_flags): Likewise.
8422         (darwin_unique_section): Likewise.
8423         (darwin_emit_unwind_label): Likewise.
8424         (darwin_non_lazy_pcrel): Likewise.
8425         (darwin_asm_output_dwarf_delta): Difference between two labels is
8426         local only if both labels are local.
8427         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
8428         (ASM_MAKE_LABEL_LINKONCE): Likewise.
8429         (TARGET_SUPPORTS_HIDDEN): Likewise.
8430         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
8431         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
8432         (FRAME_BEGIN_LABEL): Likewise.
8433         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
8434         (ASM_DECLARE_FUNCTION_NAME): Likewise.
8435         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
8436         (TARGET_ASM_UNIQUE_SECTION): Define.
8437         (EH_FRAME_SECTION_NAME): Define.
8438         (EH_FRAME_SECTION_ATTR): Likewise.
8439         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
8440         (TARGET_ASM_NAMED_SECTION): Likewise.
8441         (TARGET_SECTION_TYPE_FLAGS): Likewise.
8442         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
8443         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
8444         TARGET_ASM_EMIT_UNWIND_LABEL.
8445
8446 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8447
8448         * builtins.c (expand_builtin_mathfn): Add pow10* to the
8449         existing exp10* case.
8450         (expand_builtin): Likewise.
8451
8452 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
8453
8454         * doc/tm.texi (registers) <Values in Registers>: Add
8455         entry for REGMODE_NATURAL_SIZE.
8456
8457 2004-03-12  Richard Henderson  <rth@redhat.com>
8458
8459         PR target/14547
8460         * target.h (struct gcc_target): Move calls substructure before
8461         booleans.  Add split_complex_arg.
8462         * function.c (assign_parms, split_complex_args): Use it.
8463         * calls.c (expand_call): Likewise.
8464         (split_complex_values): Likewise.  Check for splittable types
8465         before allocating memory.
8466         (split_complex_types): Likewise.
8467         * system.h (SPLIT_COMPLEX_ARGS): Poison.
8468         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
8469         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
8470         * config/alpha/alpha.c (alpha_split_complex_arg): New.
8471         (TARGET_SPLIT_COMPLEX_ARG): New.
8472         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
8473         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
8474         (rs6000_override_options): Zap it for non-AIX.
8475         (rs6000_function_value): Use targetm.calls.split_complex_arg.
8476         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
8477         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
8478         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
8479         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
8480         SPLIT_COMPLEX_ARGS entry.
8481
8482 2004-03-11  Richard Henderson  <rth@redhat.com>
8483
8484         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
8485         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
8486         (alpha_emit_xfloating_arith): Update to match.
8487         (alpha_emit_xfloating_compare): Likewise.
8488         (alpha_emit_xfloating_cvt): Likewise.
8489         (alpha_emit_xfloating_libcall): Take already built symbol,
8490         mark call const.
8491         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
8492         op1 in a register.
8493
8494 2004-03-11  Richard Henderson  <rth@redhat.com>
8495
8496         PR target/14539
8497         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
8498
8499         * simplify-rtx.c (simplify_relational_operation): Fix typo.
8500
8501 2004-03-11  Richard Henderson  <rth@redhat.com>
8502
8503         PR middle-end/14477
8504         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
8505
8506 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8507
8508         PR target/14262
8509         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
8510         defined, pass small BLKmode values in registers in the low-order part.
8511
8512 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
8513
8514         * combine.c (if_then_else_cond): Check for NULL return value of
8515         simplify_gen_subreg.
8516
8517 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8518
8519         PR target/14496
8520         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
8521         TARGET_SINGLE_FLOAT.
8522
8523 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
8524
8525         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
8526         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
8527         * config/ia64/ia64.c (ia64_init_libfuncs): New.
8528         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
8529
8530 2004-03-11  Roger Sayle  <roger@eyesopen.com>
8531
8532         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
8533         -((int)X>>C) where C is an integer constant one bit less than the
8534         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
8535         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
8536
8537         * simplify-rtx.c (simplify_unary_operation): Also implement the
8538         above transformations at the RTL level.
8539
8540 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
8541
8542         * real.c (encode_ibm_extended): Do round low word.
8543
8544 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
8545
8546         * config/arm/arm.md (is_xscale): Comment this attribute and move
8547         it a bit further up in the file, closer to related attributes.
8548
8549 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
8550
8551         * config/host-solaris.c (sol_gt_pch_use_address): Add
8552         missing terminating marker to comment.
8553
8554 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
8555
8556         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
8557         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
8558         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
8559         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
8560         move_operand as source predicate in all cases.
8561         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
8562         Test reg_or_0_operand.  Use move_operand as source predicate.
8563         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
8564         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
8565         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
8566         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
8567         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
8568         Use move_operand as source predicate.  Remove 'K' constraint.
8569         (*movqi_internal): Likewise movqi_internal.
8570         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
8571         reg_or_0_operand.  Use move_operand as source predicate.
8572         (*movsf_softfloat): Likewise movsf_internal2.
8573         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
8574         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
8575         (*movdf_softfloat): Likewise movdf_internal2.
8576         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
8577         for DImode if !TARGET_64BIT.
8578         (mips_legitimize_move): Simplify accordingly.
8579
8580 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8581
8582         PR/14362
8583         * var-tracking.c (struct variable_def): Added field refcount.
8584         (variable_htab_free): Decrease the refcount and delete variable
8585         only if there are no more references.
8586         (unshare_variable): New function.
8587         (vars_copy_1): Increase refcount instead of copying the variable.
8588         (variable_union): Share the variables where possible, unshare
8589         the variables if needed.
8590         (variable_different_p): Return false if var1 and var2 are
8591         the same structure.
8592         (variable_was_changed): Init the refcount of new variable.
8593         (set_frame_base_location): Unshare variable if needed.
8594         (set_variable_part): Init the refcount of new variable.
8595         Unshare the variables if needed.
8596         (delete_variable_part): Unshare the variables if needed.
8597         (emit_notes_for_differences_1): Init the refcount of new variable.
8598         (vt_add_function_parameters): Do not add function parameters to
8599         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
8600         (vt_initialize): Do not add frame_base_decl to IN set of
8601         ENTRY_BLOCK_PTR because it is unused anyway.
8602
8603 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
8604
8605         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
8606         (vars_copy): Likewise.
8607         (variable_union): Likewise.
8608         (set_variable_part): Likewise.
8609         (delete_variable_part): Likewise.
8610
8611 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
8612
8613         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
8614         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
8615         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
8616         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
8617         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
8618         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
8619         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
8620         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
8621         config/stormy16/stormy16.c: Fix comment typos and formatting.
8622
8623 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
8624
8625         * configure: Regenerate, since I forgot to while committing Paolo's
8626         changes.
8627
8628 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
8629
8630         PR ada/14131
8631         Move language detection to the top level.
8632         * configure.ac: Remove code to detect languages,
8633         it now lives exclusively in the top level.
8634         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
8635         top level, renamed to ACX_PROG_GNAT.
8636
8637 2004-03-10  Richard Henderson  <rth@redhat.com>
8638
8639         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
8640         extra arguments.
8641         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
8642         and host_xmake_file fragments.
8643         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
8644         (gt_pch_restore): Similarly for gt_pch_use_address.
8645         (default_gt_pch_get_address): New.
8646         (mmap_gt_pch_get_address): Split out of gt_pch_save.
8647         (default_gt_pch_use_address): Split out of gt_pch_restore.
8648         (mmap_gt_pch_use_address): Likewise.
8649         * hooks.c (hook_voidp_size_t_null): Remove.
8650         (hook_bool_voidp_size_t_false): Remove.
8651         * hooks.h: Likewise.
8652         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
8653         default_ or mmap_ definitions.
8654         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
8655         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
8656         and gt_pch_use_address.
8657         * config/host-linux.c, config/host-solaris.c: New files.
8658         * config/x-linux, config/x-solaris: New files.
8659         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
8660         Update for changed definition.
8661         (darwin_rs6000_gt_pch_use_address): Likewise.
8662         * doc/hostconfig.texi: Update docs.
8663
8664 2004-03-10  Richard Henderson  <rth@redhat.com>
8665
8666         PR c/14517
8667         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
8668         except for pedantic c90 mode.
8669
8670 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
8671
8672         * configure.ac: Bump AC_PREREQ to 2.59.
8673         * configure: Regenerate.
8674
8675 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
8676
8677         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
8678         (exp10_optab, exp2_optab): Define corresponding macros.
8679         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
8680         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
8681         using exp10?f2 and exp2?f2 patterns.
8682         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
8683         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
8684         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
8685         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
8686
8687         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
8688         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
8689         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
8690
8691 2004-03-10  Anthony Green  <green@redhat.com>
8692
8693         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
8694
8695 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8696
8697         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
8698         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
8699         __LONGDOUBLE128.
8700         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
8701         TARGET_OS_AIX_CPP_BUILTINS.
8702         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
8703         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
8704         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
8705         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
8706         previous change.
8707
8708 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8709
8710         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
8711
8712 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
8713
8714         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
8715         __LONGDOUBLE128 on AIX.
8716
8717 2004-03-10  Andrew Haley  <aph@redhat.com>
8718
8719         PR optimization/14381
8720         * function.c (expand_function_end): Emit a blockage insn before
8721         the epilogue when -fnon-call-exceptions is used.
8722
8723         * except.c (expand_start_all_catch): Make comment more accurate.
8724
8725 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8726
8727         PR target/14480
8728         * config/rs6000/t-rtems: Add missing file on branch.
8729
8730 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
8731
8732         * dbxout.c (dbxout_symbol_location): Do not output references
8733         to optimized-out constant pool symbols.
8734
8735 2004-03-10  Andreas Schwab  <schwab@suse.de>
8736
8737         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
8738         twon34_r.
8739
8740 2004-03-09  James E Wilson  <wilson@specifixinc.com>
8741
8742         * alias.c (alias_sets_might_conflict_p): New.
8743         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
8744         * common.opt (Wstrict-aliasing=): New.
8745         * flags.h (warn_strict_aliasing): Change type to int.
8746         * opts.c (warn_strict_aliasing): Change type to int.
8747         (common_handle_option): Handle OPT_Wstrict_aliasing_.
8748         * tree.h (alias_sets_might_conflict_p): Declare it.
8749         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
8750
8751 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
8752
8753         PR bootstrap/12371
8754         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
8755         (CALL_USED_REGISTERS): Likewise.
8756         (REG_CLASS_CONTENTS): Likewise.
8757         (REG_ALLOC_ORDER): New.
8758         (REGNO_REG_CLASS): Use regno_reg_class.
8759         * config/m68k/m68k.c: Add regno_reg_class array.
8760
8761 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
8762
8763         * config/ia64/ia64.md (divsi3): Fix algorithm.
8764           (udivsi3): Ditto.
8765           (setf_exp_xf): Remove '*' from name.
8766         * testsuite/gcc.dg/20040309-1.c: New test.
8767
8768 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
8769
8770         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
8771         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
8772         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
8773         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
8774         (sparc_aout_select_rtx_section): Don't check
8775         SUNOS4_SHARED_LIBRARIES.
8776         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
8777
8778 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
8779
8780         PR other/14474
8781         * doc/md.texi (Pattern Ordering, Dependent Patterns)
8782         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
8783         INTERNALS".
8784
8785 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8786
8787         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
8788         (LIBGCC_SPEC): Update to match.
8789
8790 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
8791
8792         * c-decl.c (last_function_parms, last_function_parm_tags)
8793         (last_function_parm_others, current_function_parms)
8794         (current_function_parm_tags, current_function_parm_others):
8795         Delete.
8796         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
8797         New macros.
8798         (grokdeclarator): For function definitions, save the arg-info
8799         block from the declarator in DECL_ARGUMENTS.
8800         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
8801         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
8802         contains only PARM_DECLs.  Improve diagnostics.
8803         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
8804         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
8805         (store_parm_decls_newstyle): Take the function to operate on,
8806         and an arg-info block, as arguments; don't get anything from
8807         current_function_* globals.
8808         (store_parm_decls_oldstyle): Likewise.
8809         (store_parm_decls): Pass fndecl and its arg-info block down to
8810         store_parm_decls_newstyle/oldstyle.  Send functions with empty
8811         argument lists through store_parm_decls_newstyle to reduce
8812         overhead.
8813         (pushdecl): Comment on the problems with the call to copy_node.
8814         Clear DECL_ARGUMENTS of the old node after copying it, if it
8815         is an arg-info block instead of a chain of decls.
8816         (start_function): Do not manipulate current_function_parm* or
8817         last_function_parm*.
8818
8819 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8820             Andrew Pinski  <pinskia@physics.uc.edu>
8821
8822         * ifcvt.c (noce_try_sign_mask): New function to transform
8823         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
8824         (noce_process_if_block): Call noce_try_sign_mask.
8825
8826 2004-03-09  Andrew Pinski  <apinski@apple.com>
8827
8828         * c-typeck.c (tagged_types_tu_compatible_p):
8829         Fix typo.
8830
8831 2004-03-09  Roger Sayle  <roger@eyesopen.com>
8832
8833         * simplify-rtx.c (simplify_const_relational_operation): New function
8834         renamed from simplify_relational_operation.
8835         (simplify_relational_operation): Change prototype to accept an
8836         additional mode argument.  Call simplify_const_relational_operation.
8837         (simplify_gen_relational): Update simplify_relational_operation call.
8838         (simplify_ternary_operation): Update simplify_relational_operation
8839         subroutine call to use simplify_const_relational_operation instead.
8840
8841         * rtl.h (simplify_const_relational_operation): Prototype here.
8842         (simplify_relational_operation): Add addtional mode argument.
8843
8844         * combine.c (combine_simplify_rtx): Update calls to
8845         simplify_relational_operation.
8846         (simplify_set): Likewise.
8847         (gen_binary): Likewise.
8848         * cse.c (fold_rtx): Likewise.
8849         * dojump.c (compare_from_rtx): Likewise.
8850         (do_compare_rtx_and_jump): Likewise.
8851         * integrate.c (subst_constants): Likewise.
8852         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
8853
8854 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
8855
8856         * config/m32r/m32r.md: Remove all define_peephole's.
8857
8858 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
8859
8860         * config/rs6000/rs6000.md: Remove trailing whitespace.
8861
8862 2004-03-08  Eric Christopher  <echristo@redhat.com>
8863
8864         * Makefile.in (site.exp): Add libiconv variable definition.
8865
8866 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
8867
8868         * configure: Regenerate for config/accross.m4 correction.
8869
8870 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
8871
8872         PR target/14480
8873         * config/rs6000/t-rtems: Add missing file on branch.
8874
8875 2004-03-08  Roger Sayle  <roger@eyesopen.com>
8876
8877         PR middle-end/14289
8878         * c-typeck.c (c_mark_addressable): A register variable should
8879         be considered global if its not automatic, i.e. TREE_PUBLIC,
8880         TREE_STATIC or DECL_EXTERNAL.
8881         * function.c (put_var_into_stack): Call abort when placing a
8882         hard register into the stack, if x_parm_reg_stack_loc is NULL.
8883
8884 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
8885
8886         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
8887         ("*extendqisi2_short_displ"): Likewise.
8888
8889 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
8890
8891         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
8892         (comp_operator): Likewise.
8893         * config/pdp11/pdp11-protos.h: Remove corresponding
8894         prototypes.
8895
8896 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
8897
8898         * expr.c (highest_pow2_factor_for_type): Rename into
8899         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
8900         TYPE_ALIGN when the target is a COMPONENT_REF.
8901         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
8902
8903 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8904
8905         * config/rs6000/rs6000.c: Formatting fix.
8906         (legitimate_offset_address_p): Correct offset range check.
8907
8908         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
8909         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
8910         and MASK_STRING.
8911
8912 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8913
8914         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
8915         for little endian.
8916         ("ashrdi3_no_power"): Disable for little endian.
8917         (ashrdi3): Same.
8918
8919 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8920
8921         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
8922         builtins.
8923
8924 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
8925
8926         PR target/14471
8927         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
8928         case, checking for -no-mul-bug-abort option.
8929         * configure, config.in: Regenerate.
8930         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
8931         and -mno-mul-bug-workaround.
8932         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
8933         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
8934         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
8935         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
8936         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
8937         sure mulu.d is not last on cache-line.
8938         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
8939         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
8940         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
8941         (TARGET_SWITCHES): New options -mmul-bug-workaround and
8942         -mno-mul-bug-workaround.
8943         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
8944         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
8945         * config/cris/cris.c (cris_operand_extend_operator): Clarify
8946         relation to MULT in head comment.
8947         (cris_op_str): Abort for MULT.
8948         (cris_print_operand) <case '!'>: New case.
8949
8950 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
8951
8952         PR debug/11983
8953         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
8954         dw_val_class_vec.  Replace use throughout file.
8955         (dw_float_const): Delete.
8956         (dw_vec_const): New.
8957         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
8958         throughout file.
8959         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
8960         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
8961         (size_of_die): Adjust dw_val_class_vec sizing.
8962         (output_die): Output dw_val_class_vec.
8963         (insert_int, extract_int, insert_float): New functions.
8964         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
8965         Handle CONST_VECTOR.
8966         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
8967
8968 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
8969
8970         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
8971         AltiVec abi cannot co-exist.
8972
8973         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
8974
8975 2004-03-07  Jan Hubicka  <jh@suse.cz>
8976
8977         * except.c (emit_to_new_bb_before):  Break fallthru edges.
8978
8979 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
8980
8981         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
8982         ("*lshrsi3"): Also accept an immediate for 68HC12.
8983         ("*ashrsi3_const"): Likewise.
8984         ("*ashrsi3"): Likewise.
8985         ("*ashlsi3_const"): Likewise.
8986         ("*ashlsi3"): Likewise.
8987         ("cmphi_1_hc12"): Compare two hard register by pushing them and
8988         comparing with a pop; don't use a split for that.
8989         ("cmphi split"): Disable compare split for 68HC12.
8990
8991         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
8992         the status operands if they have side effects.
8993
8994 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
8995
8996         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
8997         definition.
8998         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
8999         config/h8300/h8300.h, config/ia64/ia64.h,
9000         config/mcore/mcore.h, config/mmix/mmix.h,
9001         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
9002         config/stormy16/stormy16.h, config/v850/v850.h,
9003         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
9004         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
9005         definition.
9006
9007 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9008
9009         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
9010         <XOR_EXPR>: Fold x ^ x as zero.
9011         <AND_EXPR>: Fold x & x as x.
9012
9013 2004-03-07  Roger Sayle  <roger@eyesopen.com>
9014
9015         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
9016         "foo++ == const" into "++foo == const+incr".
9017
9018 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
9019
9020         * config/mips/mips.c (mips_in_small_data_p): Return false if
9021         TARGET_ABICALLS.
9022
9023 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
9024
9025         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
9026         the stack register.
9027         (expand_prologue): Don't make an interrupt or a trap handler a far
9028         symbol.
9029         (m68hc11_initial_elimination_offset): Likewise.
9030
9031 2004-03-06  Richard Henderson  <rth@redhat.com>
9032
9033         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
9034
9035 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9036
9037         * config/ns32k/ns32k-protos.h: Add a prototype for
9038         ns32k_notice_update_cc.
9039         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
9040         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
9041         ns32k_notice_update_cc.
9042
9043 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
9044
9045         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
9046         "*load_multiple_si"): Allow only if reload_completed.
9047         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
9048         Likewise.
9049
9050 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
9051
9052         * config/vax/vax-protos.h: Add a prototype for
9053         vax_notice_update_cc.
9054         * config/vax/vax.c (vax_notice_update_cc): New.
9055         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
9056         vax_notice_update_cc.
9057
9058 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
9059
9060         * collect2.c (main): Only export initfunc and finifunc if
9061         LD_INIT_SWITCH not defined.
9062         (scan_prog_file): Only export constructors and destructors if
9063         LD_INIT_SWITCH not defined.  Only export symbols not found in
9064         shared objects.
9065
9066 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9067
9068         * pa.md (icacheflush): Reorder operands to make match_scratch operand
9069         last.
9070         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
9071         from calls to gen_icacheflush.
9072
9073 2004-03-06  Richard Henderson  <rth@redhat.com>
9074
9075         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
9076         (TARGET_LONG_DOUBLE_128): New.
9077         (TARGET_SWITCHES): Add long-double-{128,64}.
9078         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
9079         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
9080         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
9081         (WIDEST_HARDWARE_FP_SIZE): New.
9082         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
9083         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
9084         if TARGET_VAX_FLOAT.
9085         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
9086         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
9087
9088 2004-03-06  Richard Henderson  <rth@redhat.com>
9089
9090         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
9091         botched rtx class conversion.
9092
9093 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9094
9095         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
9096         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
9097
9098         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
9099         macros.
9100         * fold-const.c (fold_mathfn_compare, fold): Likewise.
9101
9102 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
9103
9104         PR target/14343
9105         * config/i386/i386.md (movv2di_internal): Conditionalize on
9106         TARGET_SSE, not TARGET_SSE2.
9107
9108 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
9109
9110         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
9111         duplicated line.
9112
9113 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9114
9115         * builtins.c: Consistently use logN not log* in comments.
9116
9117 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
9118
9119         * rtl.h (mem_expr_equal_p): Function prototype added.
9120         * cfgcleanup.c (merge_memattrs): New function.
9121         (flow_find_cross_jump): Call merge_memattrs for matching insns.
9122         * emit-rtl.c (mem_expr_equal_p): New function.
9123
9124 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
9125
9126         * objc/objc-act.c (synth_module_prologue): Const-qualify
9127         objc_selector type if using the GNU runtime; fix generated
9128         signatures for objc_msg_lookup and objc_msg_lookup_super
9129         to match what GNU ObjC headers provide; reformat and clean up.
9130         (synth_self_and_ucmd_args): Use previously constructed (and
9131         hence possibly const-qualified) objc_selector type.
9132
9133 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9134
9135         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
9136
9137 2004-03-05  Jason Merrill  <jason@redhat.com>
9138
9139         * tree.h (TYPE_HASH): Use TYPE_UID.
9140         (TREE_HASH): New macro with old definition of TYPE_HASH.
9141         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
9142         (build_array_type, build_function_type): Likewise.
9143         (build_method_type_directly): Likewise.
9144         (build_offset_type, build_complex_type): Likewise.
9145         (type_hash_list, attribute_hash_list): Likewise. Now static.
9146         * except.c: s/TYPE_HASH/TREE_HASH/.
9147
9148 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
9149
9150         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
9151         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
9152         __va_ndx by 2 words when referencing an argument on the stack.
9153         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
9154         words when an arg on the stack is first seen.
9155
9156 2004-03-05  Paul Brook  <paul@codesourcery.com>
9157
9158         * arm.h (ARM_FLAG_VFP): Remove.
9159         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
9160         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
9161
9162 2004-03-05  Paul Brook  <paul@codesourcery.com>
9163
9164         * function.c (assign_parms): Include pretend alignment offset.
9165
9166 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9167
9168         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
9169         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
9170
9171 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
9172
9173         * configure.ac: When passing --enable-languages to subdir
9174         configure when host != build, make sure we don't pass an empty
9175         value.
9176         * configure: Regenerate.
9177
9178 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
9179
9180         PR 13577
9181         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
9182         options.
9183
9184 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9185
9186         * simplify-rtx.c (simplify_relational_operation): If
9187         flag_wrapv is set, do not move terms between the two
9188         side of a relational operator.
9189
9190 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
9191
9192         * rtlanal.c: Include target.h and output.h
9193         (rtx_cost, address_cost, default_address_cost): Move from...
9194         * cse.c (rtx_cost, address_cost, default_address_cost):
9195         ... this file.
9196         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
9197         * Makefile.in: Adjust dependencies.
9198
9199 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
9200
9201         * cse.c (cse_end_of_basic_block): Make static.
9202         * local-alloc.c (function_invariant_p): Move to
9203         reload1.c.
9204         * loop.c (libcall_other_reg, record_excess_regs):
9205         Make static.
9206         * reload1.c (function_invariant_p): Moved here
9207         from local-alloc.c, made static.
9208         * rtl.h (cse_end_of_basic_block, function_invariant_p,
9209         libcall_other_reg, record_excess_regs): Remove
9210         declarations.
9211
9212 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
9213
9214         * config/m32r/m32r.c (signed_comparison_operator): Add a
9215         missing parenthesis.
9216
9217 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
9218
9219         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
9220         going to call mmap again.  Read the file into the right place.
9221         Give a fatal error if we have to relocate.
9222
9223 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
9224
9225         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
9226         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
9227
9228 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
9229
9230         PR other/14354
9231         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
9232         round the same.  When rounding, clear bits that would cause a
9233         second rounding in pack_d.
9234         (_fpmul_parts): Ditto.  Remove #if 0:d code.
9235
9236 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
9237
9238         PR c++/14425, c++/14426
9239         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
9240         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
9241         Change C++ definitions to accept a 'const int' argument;
9242         the prototypes already do.
9243         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
9244         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
9245         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
9246         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
9247         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
9248         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
9249         end in ..._int; change them to accept an int instead of a char
9250         as the last parameter.
9251
9252 2004-03-04  Phil Edwards  <phil@codesourcery.com>
9253
9254         * genmultilib:  Change '=' to '-' when translating option names
9255         to directory names.
9256
9257 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9258
9259         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
9260         stack slot for temp used for result of BLKmode but in integral mode.
9261
9262 2004-03-04  Jan Hubicka  <jh@suse.cz>
9263
9264         * reload.c (find_reloads): Reorganize if seqeunce to switch.
9265
9266         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
9267         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
9268
9269 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
9270
9271         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
9272         * testsuite/gcc.dg/20040303-1.c: New test.
9273
9274 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9275
9276         * ppro.md: Rewrite as a DFA pipeline description.
9277         * i386.md: Remove all uses of the ppro_uops attribute.
9278         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
9279         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
9280         ix86_sched_reorder, ix86_variable_issue,
9281         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
9282         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
9283         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
9284         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
9285         * athlon.md (athlon_ssecmp_load): Fix comment
9286
9287 2004-03-04  Stuart Hastings  <stuart@apple.com>
9288
9289         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
9290
9291 2004-03-04  Stuart Hastings  <stuart@apple.com>
9292
9293         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
9294         686, tell Darwin assembler to allow prefetch insns, non-empty def
9295         of SUBTARGET_OPTION_TRANSLATE_TABLE.
9296
9297 2004-03-04  DJ Delorie  <dj@redhat.com>
9298
9299         PR optimization/14282
9300         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
9301         between a call and the assignment of its return value.
9302
9303 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9304
9305         * config/h8300/h8300.c: Put a comment for every function.
9306
9307 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
9308
9309         * config/h8300/h8300.md: Add comments about peephole2's.
9310
9311 2004-03-04  Steven Bosscher  <stevenb@suse.de>
9312
9313         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
9314
9315 2004-03-04  Jan Hubicka  <jh@suse.cz>
9316
9317         * cfgcleanup.c (thread_jump): Update call of cselib_init.
9318         * cselib.c (cselib_record_memory): New static variable.
9319         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
9320         Give up on memories when asked for.
9321         (cselib_init): Accept new argument.
9322         * cselib.h (cselib_init): Update prototype.
9323         * gcse.c (local_cprop_pass): Update call of cselib_init.
9324         * loop.c (load_mems): Update call of cselib_init.
9325         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
9326         * sched-deps.c (sched_analyze): Update call of cselib_init.
9327
9328 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9329             GP <gp@qnx.com>
9330
9331         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
9332         when compiling PIC.
9333
9334 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
9335
9336         PR/14362
9337         * var-tracking.c (track_expr_p): Do not track variables which
9338         should be ignored for debugging purposes.
9339
9340 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9341
9342         * real.c (encode_ibm_extended): Don't bother rounding low double.
9343         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
9344         when fmt->pnan < fmt->p.
9345
9346 2004-03-04  Eric Christopher  <echristo@redhat.com>
9347
9348         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
9349         only range of valid arg registers and fixed_regs.
9350
9351 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9352
9353         PR target/14406
9354         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
9355         (abstf2, abstf2_internal): New define_expand.
9356
9357 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9358
9359         PR optimization/14235
9360         * expr.c (convert_move): Copy the source to a new pseudo
9361         when converting from a sub-word source to a larger-than-word
9362         register which conflicts with the source.
9363
9364 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
9365
9366         PR 13728
9367         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
9368         parameters with the same name, unless one is a forward decl.
9369         Do not issue a redundant-redeclaration warning for forward
9370         decls of parameters.
9371
9372 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
9373
9374         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
9375         configuration.
9376
9377 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
9378
9379         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
9380
9381 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
9382
9383         * target-def.h (TARGET_OPTF): Delete.
9384         * c-opts.c (TARGET_OPTF): Define.
9385
9386 2004-03-04  Jan Hubicka  <jh@suse.cz>
9387
9388         * cselib.c (cselib_finish): Fix another miss-application of my previous
9389         patch.
9390
9391 2004-03-03  Mike Stump  <mrs@apple.com>
9392
9393         Add framework support for darwin.
9394
9395         * c-incpath.c: Include target.h and machmode.h.
9396         (add_path): Use a consistent style for cpp_dir.  Initialize
9397         p->construct to 0.
9398         (add_cpp_dir_path): New.
9399         (register_include_chains): Add use of extra_includes callback.
9400         (hook_void_int): Add.
9401         (target_c_incpath): Add.
9402         * c-incpath.h (add_cpp_dir_path): New.
9403         (target_c_incpath_s): Add.
9404         (target_c_incpath): Add.
9405         (C_INCPATH_INIT): Add.
9406         * c-opts.c (c_common_missing_argument,
9407         c_common_handle_option): Add -F argument processing.
9408         * c.opt: Add -F argument processing.
9409         * gcc.c (trad_capable_cpp): Add -F argument processing.
9410         * cppfiles.c (find_file_in_dir): Update to use construct
9411         callback.
9412         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
9413         cpp_get_prev): New.
9414         (_cpp_find_file): Use search_path_exhausted.
9415         (make_cpp_dir): Initialize construct to 0.
9416         * cpplib.h (missing_header_cb
9417         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
9418         (cpp_callbacks): Add missing_header
9419         (cpp_dir): Add construct.
9420         * target-def.h: (TARGET_OPTF): New.
9421         * hooks.c (hook_void_int, hook_void_charptr): Add.
9422         * hooks.h (hook_void_int, hook_void_charptr): Add.
9423         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
9424         $(MACHMODE_H) dependencies.
9425         * doc/invoke.texi (Darwin Options): Document -F.
9426         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
9427         (TARGET_OPTF): Add.
9428         * fix-header.c (target_c_incpath): Add.
9429
9430         * config/darwin-c.c: Add c-incpath.h include.
9431         (using_frameworks, find_subframework_file,
9432         find_subframework_header, add_system_framework_path,
9433         frameworks_in_use, num_frameworks, max_frameworks,
9434         add_framework, find_framework, struct framework_header,
9435         framework_header_dirs, framework_construct_pathname,
9436         find_subframework_file, add_system_framework_path,
9437         add_framework_path, framework_defaults,
9438         darwin_register_frameworks, find_subframework_header): Add.
9439         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
9440         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
9441         (CPP_SPEC): Add __APPLE_CC__ support.
9442         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
9443
9444 2004-03-04  Jan Hubicka  <jh@suse.cz>
9445
9446         * cselib.c (cselib_finish): Fix miss-application of my previous
9447         patch.
9448
9449 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9450
9451         * hooks.c (hook_tree_tree_identity): New.
9452         * hooks.h: Add a prototype for hook_tree_tree_identity.
9453         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
9454         instead of MD_ASM_CLOBBERS.
9455         * system.h (MD_ASM_CLOBBERS): Poison.
9456         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
9457         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
9458         * target.h (gcc_target): Add md_asm_clobbers.
9459         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
9460         (ix86_md_asm_clobbers): New.
9461         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
9462         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
9463         TARGET_MD_ASM_CLOBBERS.
9464
9465 2004-03-03  Stuart Hastings  <stuart@apple.com>
9466
9467         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
9468
9469 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9470
9471         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
9472
9473         * config/sparc/sparc.h (ASM_FLOAT): Delete.
9474         (ASM_DOUBLE): Likewise.
9475         (ASM_LONGDOUBLE): Likewise.
9476         * config/sparc/pbd.h (ASM_INT_OP): Delete.
9477
9478 2003-03-03  Richard Henderson  <rth@redhat.com>
9479
9480         PR opt/13862
9481         * cselib.c (cselib_record_sets): Don't record multiple sets in
9482         asm insns.
9483
9484 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
9485
9486         * common.opt: Add description of the new -fgcse-after-reload flag.
9487
9488         * flags.h (flag_gcse_after_reload): Declaration of global variable.
9489
9490         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
9491         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
9492         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
9493         get_bb_avail_insn, hash_scan_set_after_reload,
9494         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
9495         gcse_after_reload, get_bb_avail_insn): New functions to implement
9496         gcse-after-reload.
9497         (gcse_after_reload_main): New function, the main entry point to
9498         gcse-after-reload.
9499
9500         * rtl.h (gcse_after_reload_main): Declaration of the new function.
9501
9502         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
9503
9504         * toplev.c (flag_gcse_after_reload): Initialization.
9505
9506         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
9507
9508         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9509         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
9510         the gcse after reload optimization.
9511
9512         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
9513         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
9514         parameters.
9515
9516         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
9517
9518 2004-03-03  Nicolas Pitre <nico@cam.org>
9519
9520         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
9521         small negative values.
9522
9523 2004-03-03  Jan Hubicka  <jh@suse.cz>
9524
9525         * cselib.c (hash_table):  Remove GTY marker.
9526         (reg_values): Turn into array.
9527         (used_regs): Likewise.
9528         (n_used_regs): New static variable.
9529         (reg_values_old): Kill.
9530         (clear_table): Update uses of arrays.
9531         (cselib_lookup): Likewise.
9532         (cselib_record_set): Likewise.
9533         (cselib_init): Likewise.
9534         (cselib_finish): Likewise.
9535         (cselib_udpate_varray_sizes): Kill.
9536         * cselib.h (cselib_update_varray_sizes): Kill.
9537
9538 2004-03-03  Paul Brook  <paul@codesourcery.com>
9539
9540         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
9541
9542 2004-03-03  Jan Hubicka  <jh@suse.cz>
9543
9544         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
9545         Rename from ...; make statistics transparent.
9546         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
9547         (loc_descriptor): New structure.
9548         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
9549         add_statistics):
9550         New static function.
9551         (ggc_record_overhead, dump_statistics): New global function.
9552         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9553         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
9554         from ...; accept locations
9555         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9556         ggc_realloc, ggc_alloc_typed):  ... this one.
9557         from ...; accept locations
9558         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
9559         ggc_alloc_stat): Rename from ... ; pass locations
9560         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
9561         ... this one.
9562         (ggc_alloc_stat): Record overehead.
9563         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
9564         ggc_realloc, ggc_alloc_typed):  Turn to macros
9565         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
9566         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
9567         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
9568         * langhooks.h (lhd_make_node): Declare.
9569         (LANG_HOOKS_MAKE_TYPE): Default to new function,
9570         * langhooks.c (lhd_make_node): New.
9571         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
9572         locations.
9573         (rtx_alloc, swallow_copy_rtx): ... this one.
9574         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
9575         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
9576         * toplpev.c (finalize): Dump stats.
9577         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
9578         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9579         Rename from ... ; pass locators.
9580         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9581         build?,  build_decl): Declare.
9582         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
9583         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
9584         Declare.
9585         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
9586         build?,  build_decl): New macros.
9587         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
9588         * statistics.h: New file.
9589
9590 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
9591             Richard Sandiford  <rsandifo@redhat.com>
9592
9593         * config/mips/mips.h (MASK_FIX_SB1): Bump.
9594         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
9595         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
9596         * config/mips/mips.c (mips_output_division): Fill the branch delay
9597         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
9598         TARGET_FIX_R4400.
9599         (mips_output_division): Adjust accordingly.
9600         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
9601         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
9602
9603 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
9604
9605         * alias.c (rtx_equal_for_memref_p): Use predicates
9606         to test rtx classes and new rtx class codes, possibly
9607         splitting conditionals that tested against '<' and 'o'.
9608         * caller-save.c (save_call_clobbered_regs): Likewise.
9609         * combine.c (contains_muldiv, find_split_point, subst,
9610         combine_simplify_rtx, simplify_if_then_else,
9611         simplify_set, simplify_logical, expand_compound_operation,
9612         make_compound_operation, if_then_else_cond, known_cond,
9613         apply_distributive_law, cached_nonzero_bits,
9614         cached_num_sign_bit_copies, simplify_shift_const,
9615         gen_binary, simplify_comparison, update_table_tick,
9616         record_value_for_reg, get_lsat_value_validate): Likewise.
9617         * cse.c (mention_regs, find_best_addr, find_comparison_args,
9618         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
9619         Likewise.
9620         * emit-rtl.c (copy_insn_1): Likewise.
9621         * expr.c (force_operand): Likewise.
9622         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
9623         * flow.c (notice_stack_pointer_modification_1,
9624         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
9625         and_reg_cond, elim_reg_cond): Likewise.
9626         * function.c (update_epilogue_consts): Likewise.
9627         * genattrtab.c (attr_rtx_1): Likewise.
9628         * genopinit.c (gen_insn): Likewise.
9629         * integrate.c (subst_constants): Likewise.
9630         * jump.c (reversed_comparison_code_parts,
9631         reversed_comparison_code, delete_related_insns,
9632         rtx_renumbered_equal_p): Likewise.
9633         * local-alloc.c (block_alloc): Likewise.
9634         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
9635         canonicalize_condition): Likewise.
9636         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
9637         Likewise.
9638         * optabs.c (add_equal_node, expand_binop): Likewise.
9639         * predict.c (estimate_probability): Likewise.
9640         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
9641         * recog.c (validate_replace_rtx_1, comparison_operator,
9642         offsettable_address_p, constrain_operands): Likewise.
9643         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
9644         Likewise.
9645         * regclass.c (scan_one_insn): Likewise.
9646         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
9647         * regrename.c (kill_autoinc_value): Likewise.
9648         * reload.c (find_reusable_reload, find_reloads,
9649         reg_overlap_mentioned_for_reload_p): Likewise.
9650         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
9651         * rtl.c (copy_rtx): Likewise.
9652         * rtl.h (CONSTANT_P, INSN_P): Likewise.
9653         * rtlanal.c (commutative_operand_precedence): Likewise.
9654         * sched-deps.c (conditions_mutex_p): Likewise.
9655         * sched-rgn.c (is_cfg_nonregular): Likewise.
9656         * simplify-rtx.c (simplify_gen_binary,
9657         simplify_gen_relational, simplify_replace_rtx,
9658         simplify_unary_operation, simplify_binary_operation,
9659         simplify_ternary_operation, simplify_rtx): Likewise.
9660         * unroll.c (reg_dead_after_loop): Likewise.
9661         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
9662         print_operand): Likewise.
9663         * config/arc/arc.c (proper_comparison_operator): Likewise.
9664         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
9665         Likewise.
9666         * config/avr/avr.c (_reg_unused_after): Likewise.
9667         * config/frv/frv.c (frv_ifcvt_modify_tests,
9668         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
9669         * config/i386/i386.c (ix86_comparison_operator,
9670         ix86_carry_flag_operator, fcmov_comparison_operator,
9671         arith_or_logical_operator, print_operand,
9672         ix86_expand_binary_operator, ix86_binary_operator_ok):
9673         Likewise.
9674         * config/i386/i386.md: Likewise.
9675         * config/ia64/ia64.c (not_postinc_memory_operand,
9676         ia64_print_operand, update_set_flags, errata_emit_nops):
9677         Likewise.
9678         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
9679         CONSTRAINT_OK_FOR_S): Likewise.
9680         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
9681         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
9682         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
9683         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
9684         Likewise.
9685         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
9686         eqne_comparison_operator, signed_comparison_operator):
9687         Likewise.
9688         * config/mips/mips.c (cmp_op, symbolic_expression_p):
9689         Likewise.
9690         * config/mmix/mmix (mmix_foldable_comparison_operator,
9691         mmix_comparison_operator): Likewise.
9692         * config/pa/pa.c (hppa_legitimize_address): Likewise.
9693         * config/rs6000/rs6000.c (stmw_operation,
9694         branch_comparison_operator, trap_comparison_operator,
9695         ccr_bit): Likewise.
9696         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
9697         * config/s390/s390.c (s390_alc_comparison,
9698         s390_slb_comparison):L Likewise.
9699         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
9700         Likewise.
9701         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
9702         noov_compare_op, noov_compare64_op, v9_regcmp_op,
9703         emit_hard_tfmode_operation, reg_unused_after)
9704         * doc/md.texi, doc/rtl.texi: Likewise.
9705
9706         * ra-debug.c: Add 2004 to list of copyright years.
9707         * unroll.c: Likewise.
9708
9709         * combine.c (simplify_logical): Remove dummy test,
9710         (apply_distributive_law): Fix typo in comment.
9711         GET_CODE (x) == AND so x is a commutative binary op.
9712         * jump.c (delete_related_insns): simplify loop
9713         condition, move testing of RTX codes inside the loop.
9714         (rtx_renumbered_equal_p): do not use RTX_CODE.
9715         * rtl.c (rtx_class): Declare as enum rtx_class.
9716         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
9717         Move to RTX_COMM_COMPARE class.
9718         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
9719         Move to RTX_CONST_OBJ class.
9720         * rtl.h (enum rtx_class): New declaration,
9721         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
9722         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
9723         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
9724         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
9725         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
9726         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
9727         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
9728         OBJECT_P): New macros.
9729         * config/sparc/sparc.c (noov_compare_op): Remove register
9730         from parameter.
9731
9732 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
9733
9734         * target.h: Remove texi jargons in comments.
9735
9736 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9737
9738         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
9739         threshold to 0x4f.
9740
9741         Revert:
9742         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
9743         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
9744         as well.
9745         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
9746         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
9747
9748 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9749
9750         * doc/md.texi (cbranchmode4): New.
9751
9752 2004-03-02  Eric Christopher  <echristo@redhat.com>
9753
9754         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
9755         fix_trunc.
9756         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
9757         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
9758         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
9759         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
9760
9761 2004-03-02  Richard Henderson  <rth@redhat.com>
9762
9763         PR middle-end/11767
9764         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
9765         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
9766         before the compare, if flag_non_call_exceptions.
9767
9768 2004-03-02  Richard Henderson  <rth@redhat.com>
9769
9770         PR middle-end/14327
9771         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
9772         emitting the label, not after.
9773
9774 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9775
9776         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
9777         (m68hc11_mov_addr_mode): Likewise.
9778         (m68hc11_override_options): Initialize them based on target.
9779         (register_indirect_p): Allow a MEM for indirect addressing modes and
9780         use flags to control what is allowed.
9781         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
9782         supported addressing modes.
9783         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
9784         (go_if_legitimate_address_internal): Likewise.
9785         (m68hc11_indirect_p): Likewise and check the mode.
9786         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
9787
9788 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9789
9790         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
9791         (expand_builtin_setjmp_setup): Use
9792         targetm.builtin_setjmp_frame_value instead of
9793         BUILTIN_SETJMP_FRAME_VALUE.
9794         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
9795         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
9796         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9797         * target.h (gcc_target): Add builtin_setjmp_frame_value.
9798         * targhooks.c (default_builtin_setjmp_frame_value): New.
9799         * targhooks.h: Add a prototype for
9800         default_builtin_setjmp_frame_value.
9801         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
9802         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
9803
9804 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9805
9806         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
9807         sequences of moves.
9808         (add peepholes): New peepholes to optimize sequences adding small
9809         constants.
9810         (bset peepholes): New peepholes to transform an OR in a bset form
9811         (bclr peepholes): Likewise for bclr form.
9812         (cmp peepholes): New peepholes to avoid register copies when comparing.
9813
9814 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9815
9816         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
9817         to separate push from moves.
9818         ("*pushdf_internal"): Likewise.
9819         ("*pushsf_internal"): Likewise.
9820         ("*pushsi_internal"): Likewise.
9821         ("movdi_internal"): Use define_insn_and_split; non push operand.
9822         ("movdf_internal"): Likewise.
9823         ("movsf_internal"): Likewise.
9824         ("movsi_internal"): Likewise.
9825         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
9826         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
9827         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
9828
9829 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9830
9831         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
9832         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
9833         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
9834         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
9835         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
9836         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
9837         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
9838         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
9839         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
9840         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
9841         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
9842
9843 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9844
9845         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
9846         (SOFT_XY_REGNUM): Define.
9847         (cmp split): Use the above instead of hard coded numbers.
9848         (8-bit op split): No need to check the mode; allow Q_REG.
9849         (ashift split): Adjust the first operand if it uses the SP and we
9850         are pushing the shifted value.
9851         (plus shift split): Fix when a source is in register D+X.
9852         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
9853
9854 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
9855
9856         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
9857         comparing with Z register.
9858
9859 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9860
9861         * cfgloop.h (struct loop_desc): Removed.
9862         (struct loop): Fields simple, desc and has_desc removed.
9863         (simple_loop_p, count_loop_iterations): Declaration removed.
9864         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
9865         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
9866         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
9867         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
9868         simple_loop_exit_p, variable_initial_value, variable_initial_values,
9869         simple_condition_p, simple_increment, count_strange_loop_iterations,
9870         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
9871         Removed.
9872         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
9873
9874 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9875
9876         * genattrtab.c: Don't handle MATCH_INSN.
9877         * genrecog.c: Likewise.
9878         * gensupport.c: Likewise.
9879         * rtl.def (match_insn): Remove.
9880         * doc/md.texi (match_insn, match_insn2): Remove.
9881
9882 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
9883
9884         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
9885         macro results in memory allocation.
9886
9887 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
9888
9889         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
9890         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
9891         %(fbsd_dynamic_linker),
9892         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
9893         config/i386/freebsd.h
9894         * config/arm/freebsd.h: Ditto.
9895         * config/i386/freebsd.h: Ditto.
9896         * config/i386/freebsd64.h: Ditto.
9897         * config/ia64/freebsd.h: Ditto.
9898         * config/rs6000/sysv4.h: Ditto.
9899         * config/sparc/freebsd.h: Ditto.
9900
9901 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
9902
9903         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
9904
9905 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9906
9907         * rtl.def (define_combine): Remove.
9908
9909 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9910
9911         * config/h8300/h8300.md: Tweak formatting.
9912
9913 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9914
9915         * config/h8300/h8300.md (*cmphi_h8300): Rename to
9916         *cmphi_h8300_znvc.
9917         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
9918
9919 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
9920
9921         PR bootstrap/14356
9922         * gcc.c (process_command): Remove const-qualification from argv.
9923         (main): Likewise.
9924
9925 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
9926
9927         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
9928         pushqi1_h8300hs_advanced.  Adjust its caller.
9929         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
9930         Adjust its caller.
9931
9932 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
9933
9934         * Makefile.in (install-libgcc, install-multilib): Pass
9935         mkinstalldirs var to libgcc.mk.
9936
9937 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9938
9939         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
9940         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
9941
9942 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
9943
9944         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
9945         * config/h8300/h8300.md: Split several peephole2's, each into
9946         two.
9947
9948 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9949
9950         * dominance.c (recount_dominator): Handle postdominators.
9951
9952 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9953
9954         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
9955         (NUM_SYMBOL_TYPES): Likewise.
9956         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
9957         (mips_unspec_address): Declare.
9958         (mips_gotoff_page, mips_gotoff_global): Delete.
9959         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
9960         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
9961         (mips_symbolic_constant_p, mips_symbolic_address_p)
9962         (mips_symbol_insns): Handle new symbol types.
9963         (general_symbolic_operand): New predicate.
9964         (mips_unspec_address): Make extern.
9965         (mips_gotoff_page, mips_gotoff_global): Delete.
9966         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
9967         Handle new symbol types.
9968         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
9969         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
9970         mips_unspec_address directly.
9971         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
9972         the documentation of -mexplicit-relocs.
9973
9974 2004-03-01  Jeff Law  <law@redhat.com>
9975
9976         * fold-const.c (fold): An equality comparison of a non-weak object
9977         against zero has a known result.  Similarly an equality comparison
9978         of the address of two non-weak, unaliased symbols has a known result.
9979
9980         * ggc-page.c (struct page_entry): New field PREV.
9981         (ggc_alloc): Update PREV field appropriately.
9982         (sweep_pages): Likewise.
9983         (ggc_free): Likewise.  Use PREV field rather than loop to
9984         improve ggc_free performance.
9985
9986 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
9987
9988         * config/mips/mips.c (mips_output_division): Use the division
9989         instruction to fill the delay slot of a zero check.
9990         (mips_idiv_insns): Adjust accordingly.
9991
9992 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
9993
9994         * config.gcc: Create a default tmake_file for linux, and use
9995         it in all but two linux clauses.  Comment those two.
9996
9997 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
9998
9999         * combine.c (try_combine):  Do not refer to is_replaced.
10000         (gen_lowpart_for_combine):  Perverse subregs now have a
10001         more politically correct name.
10002         * cse.c (cse_insn): Likewise.
10003         * jump.c: Fix bogus reference to delete_insn.
10004
10005 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
10006
10007         PR debug/14328
10008         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
10009         constants as signed values.
10010
10011         PR middle-end/13448
10012         * c-tree.h (readonly_warning): Rename to ...
10013         (readonly_error): ... this.
10014         * c-typeck.c (build_unary_op): Adjust accordingly.
10015         (readonly_warning): Rename to ...
10016         (readonly_error): ... this and issue errors, not warnings.
10017         (build_modify_expr): Call readonly_error, not readonly_warning.
10018         (c_expand_asm_operands): Likewise.
10019         * tree-inline.c (optimize_inline_calls): Do not inline functions
10020         after errors have occurred.
10021
10022 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10023
10024         * configure.ac: Rearrange some threading code for clarity;
10025         add section comment.
10026         * configure: Regenerate.
10027
10028 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10029
10030         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
10031         typos.
10032         * doc/cppopts.texi: Fix a typo.
10033
10034 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10035
10036         * config/i386/i386.md: Fix formatting.
10037
10038 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
10039
10040         * configure.ac: Add some comments delineating sections of code.
10041
10042         * doc/install.texi: Note that libada uses autoconf 2.57 also.
10043
10044         * doc/install.texi: Fix idiot typo in previous commit.
10045
10046         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
10047
10048 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10049
10050         * config/h8300/h8300.md: Add comments about peephole2's.
10051
10052 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10053
10054         * config/h8300/h8300.md: Tweak operand numbers of some
10055         peephole2's.
10056
10057 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
10058
10059         * config/h8300/h8300.md: Tweak comments about peephole2's.
10060
10061 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
10062
10063         PR middle-end/14203
10064         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
10065         instead of testing whether DECL_RTL is not NULL.
10066
10067 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10068
10069         * config/sh/sh.c: Fix formatting.
10070
10071 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10072
10073         * config/sh/sh.c: Convert to ISO-C.
10074
10075 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
10076
10077         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
10078         my previous patch.
10079
10080         * config/darwin.h (machopic_finish): Output stub even if the
10081         symbol is already defined.
10082
10083 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10084
10085         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
10086
10087 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10088
10089         * genattr.c (main): Don't define
10090         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
10091         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
10092         (DFA_PIPELINE_INTERFACE): Likewise.
10093         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
10094         (DFA_PIPELINE_INTERFACE): Likewise.
10095
10096 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
10097
10098         * config/mips/mips.md (tstsi, tstdi): Delete.
10099
10100 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10101
10102         * config/mips/mips.c (override_options): Remove an obsolete
10103         duplicate definition of the "e" constraint.
10104         * config/mips/mips.h: Update a comment accordingly.
10105
10106 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10107
10108         * config/mips/mips.md: Complete the unfinished R4000
10109         multiply/shift errata workaround.  Improve documentation.
10110         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
10111         has a hilo hazard.
10112         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
10113         (muldi3, muldi3_internal): Likewise.
10114         (muldi3_internal2): Remove, replacing with...
10115         (muldi3_mult3, muldi3_r4000): ...these new patterns.
10116         (mulsidi3): Take the errata into account.
10117         (mulsidi3_32bit): Remove, replacing with...
10118         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
10119         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
10120         (umulsidi3): Take the errata into account.
10121         (umulsidi3_32bit): Remove, replacing with..
10122         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
10123         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
10124         TARGET_FIX_R4000.
10125         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
10126         (smuldi3_highpart, umuldi3_highpart): Likewise.
10127         * doc/invoke.texi: Document the errata workaround.
10128
10129 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
10130
10131         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
10132         * config/mips/mips.h (MASK_FIX_SB1): Bump.
10133         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
10134         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
10135         * config/mips/mips.c (mips_idiv_insns): New function.
10136         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
10137         (mips_output_division): Add a workaround for the R4000 divide/shift
10138         errata.
10139         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
10140         the length of an "idiv" instruction.
10141         * doc/invoke.texi: Document the new switches.
10142
10143 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
10144
10145         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
10146         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
10147
10148 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10149
10150         PR optimization/14229
10151         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
10152
10153 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
10154
10155         * fold-const.c (fold): Strip NOPs that change the signedness
10156         for RSHIFT too.  Expand comment.
10157
10158 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
10159
10160         PR optimization/7871
10161         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
10162         from or to call insns.
10163
10164 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
10165
10166         PR optimization/7871
10167         * flow.c (propagate_one_insn): Interpret calls as setting global
10168         registers, not merely clobbering them.
10169
10170 2004-02-27  Dale Johannesen  <dalej@apple.com>
10171
10172         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
10173         config/darwin-protos.h:  Ditto.
10174         config/darwin.h:  Remove call to it.
10175         * combine.c (distribute_notes): Do not place a REG_DEAD note
10176         when value is both set and used.
10177
10178 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10179
10180         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
10181         as well.
10182         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
10183         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
10184
10185 2004-02-27  Andrew Pinski  <apinski@apple.com>
10186
10187         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
10188         Speedup common case of the type values being in the same order.
10189
10190 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
10191
10192         * config/ia64/ia64.h (no-inline-float-divide): New option.
10193         * config/ia64/ia64.h (no-inline-int-divide): New option.
10194         * config/ia64/ia64.h (no-inline-sqrt): New option.
10195         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
10196         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
10197         * config/ia64/ia64.c (ia64_override_options): Modify error
10198         checking for inlined division/sqrt.
10199
10200 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10201
10202         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
10203         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
10204         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
10205         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
10206         copyright.
10207
10208 2004-02-27  Paul Brook  <paul@codesourcery.com>
10209
10210         * function.c (assign_parms): Don't count pretend args for alignment.
10211
10212 2004-02-27  Richard Henderson  <rth@redhat.com>
10213
10214         * passes.c: New file.
10215         * Makefile.in (OBJS-common): Add it.
10216         * diagnostic.c (rtl_dump_and_exit): Move decl ...
10217         * flags.h (rtl_dump_and_exit): ... here.
10218         * output.h (size_directive_output, last_assemble_variable_decl):
10219         Move from toplev.c.
10220         * rtl.h (reg_alloc): Move from toplev.c.
10221         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
10222         struct dump_file_info, enum dump_file_index, dump_file_tbl,
10223         open_dump_file, close_dump_file, rest_of_decl_compilation,
10224         rest_of_type_compilation, rest_of_handle_final,
10225         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
10226         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
10227         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
10228         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
10229         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
10230         rest_of_handle_tracer, rest_of_handle_if_conversion,
10231         rest_of_handle_if_after_combine, rest_of_handle_web,
10232         rest_of_handle_branch_prob,
10233         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
10234         rest_of_handle_addressof, rest_of_handle_sibling_calls,
10235         rest_of_handle_jump_bypass, rest_of_handle_inlining,
10236         rest_of_handle_null_pointer, rest_of_handle_combine,
10237         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
10238         rest_of_handle_gcse, rest_of_handle_loop_optimize,
10239         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
10240         (decode_d_option): Use enable_rtl_dump_file.
10241         (compile_file, finalize, do_compile): Move profile+combine+graph
10242         cleanup to finish_optimization_passes.
10243         * toplev.h (init_optimization_passes, finish_optimization_passes,
10244         enable_rtl_dump_file): Declare.
10245
10246 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
10247             Roger Sayle  <roger@eyesopen.com>
10248
10249         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
10250         operands to build a tree with swapped operands.
10251         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
10252         'unsignedp' predicate to specify the signedness.
10253
10254 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
10255
10256         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
10257         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
10258         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
10259         comment typos and formatting.  Follow spelling conventions.
10260
10261 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
10262
10263         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
10264         fix_truncsfsi2.
10265
10266         * config/rs6000/spe.md: Delete spe_efsctuiz.
10267         Add spe_fixuns_truncsfsi2.
10268         Add spe_fix_truncsfsi2.
10269
10270 2004-02-26  Eric Christopher  <echristo@redhat.com>
10271
10272         * c-lex.c (c_lex_string_translate): New variable.
10273         (lex_string): Use to determine string translation.
10274         * c-pragma.h: Prototype.
10275         * c-parse.in (start_string_translation): New. Set above.
10276         (stop_string_translation): Ditto.
10277         (attribute, attribute_list, asm_def, asm_stmt,
10278         asm_operand): Use above functions.
10279         * cp/parser.c (cp_parser_declaration): Translate strings
10280         unless token is RID_EXTERN. Set c_lex_string_translate
10281         for recursive use.
10282         (cp_parser_asm_definition): Only translate argument strings
10283         to asms.
10284         (cp_parser_asm_operand_list): Ditto.
10285         (cp_parser_attribute_list): Do not translate attribute strings.
10286
10287 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10288
10289         * stmt.c (expand_start_case_dummy): Remove.
10290         * tree.h: Remove the corresponding prototype.
10291
10292 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10293
10294         * builtins.c (apply_args_register_offset): Remove.
10295         * tree.h: Remove the corresponding prototype.
10296
10297 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10298
10299         * stor-layout.c (is_pending_size): Remove.
10300         * tree.h: Remove the corresponding prototype.
10301
10302 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10303
10304         * recog.c (validate_replace_src): Remove.
10305         * recog.h: Remove the corresponding prototype.
10306
10307 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10308
10309         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
10310         MAYBE_REG_PARM_STACK_SPACE.
10311         * function.c: Likewise.
10312         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
10313         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10314         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
10315         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
10316
10317 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10318
10319         * c-decl.c (c_expand_deferred_function): Remove.
10320         * c-tree.h: Remove the corresponding prototype.
10321
10322 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
10323
10324         * postreload.c (reload_cse_move2add): Generate just a PLUS
10325         instead of an entire SET.
10326
10327 2004-02-26  Jan Hubicka  <jh@suse.cz>
10328
10329         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
10330         /pentium4m.
10331         * i386.c (override_options): Add support for new CPUs.
10332         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
10333         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
10334         constants.
10335         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
10336
10337 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
10338
10339         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
10340
10341 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
10342
10343         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
10344         (sparc_emit_fixunsdi): New prototype.
10345         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
10346         (sparc_emit_fixunsdi): New function.
10347         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
10348         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
10349         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
10350         to sparc_emit_floatunsdi.
10351         (fixuns_truncsfdi2): New expander.
10352         (fixuns_truncdfdi2): Likewise.
10353
10354 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
10355
10356         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
10357         unless HAVE_cc0.
10358
10359 2004-02-25  Richard Henderson  <rth@redhat.com>
10360
10361         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
10362         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
10363         use (op0-op1) == 0 if op0 is a pointer.
10364         * config/alpha/alpha.md (cmpdi): Use some_operand.
10365         (three comparison combine splits): Remove.
10366
10367 2004-02-25  Richard Henderson  <rth@redhat.com>
10368
10369         PR c/12794
10370         * c-common.c (handle_alias_attribute): Reject the attribute if
10371         current_function_decl is set.
10372
10373 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10374
10375         * config.gcc: Add comment describing extra_gcc_objs.
10376         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
10377         * configure.ac (extra_gcc_objs): New substitution variable.
10378         (host_extra_gcc_objs): Don't substitute.
10379         * configure: Regenerate.
10380         * Makefile.in: Use extra_gcc_objs.
10381
10382 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
10383
10384         * doc/contrib.texi: Add an entry for myself.
10385
10386 2004-02-25  Jan Hubicka  <jh@suse.cz>
10387
10388         * basic-block.h (make_eh_edge, break_superblocks): Declare.
10389         * cfgbuild.c (make_eh_edge):  Make global.
10390         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
10391         * except.c (build_post_landing_pads, connect_post_landing_pads,
10392         dw2_build_landing_pads, sjlj_emit_function_enter,
10393         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
10394         sjlj_build_landing_pads): Update CFG.
10395         (emit_to_new_bb_before): New function.
10396         (finish_eh_generation): Do not rebuild the CFG.
10397
10398 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10399
10400         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
10401         target_cpu_default defines.
10402         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
10403         * pa.h (TARGET_DEFAULT): Likewise.
10404
10405 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10406
10407         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
10408         comparisons with regard to signedness.
10409
10410 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10411
10412         * arm.c (thumb_legitimize_address): New function.
10413         * arm-protos.h: Prototype it.
10414         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
10415         (LEGITIMIZE_ADDRESS): Use it.
10416
10417 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
10418
10419         * reload1.c (reload): Only spill eliminable register with multiple
10420         adjacent elimination alternatives if all alternatives fail.
10421
10422 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
10423
10424         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
10425         is -4095...+4095 inclusive.
10426
10427 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
10428
10429         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
10430         the bootstrap failure with Sun CC 5.4 and 5.5.
10431
10432 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10433
10434         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
10435         which modifies NEWREG.
10436         (cse_condition_code_reg): Update the mode of CC_REG in
10437         CC_SRC_INSN on our own.
10438
10439 2004-02-24  Michael Matz  <matz@suse.de>
10440
10441         * config/i386/i386.c (ix86_comp_type_attributes): Check for
10442         regparm attributes.
10443
10444 2004-02-24  Richard Henderson  <rth@redhat.com>
10445
10446         * toplev.c (dump_file_tbl): Rename from dump_file.
10447         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
10448         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
10449         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
10450         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
10451         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
10452         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
10453         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
10454         s/rtl_dump_file/dump_file/g.
10455
10456 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
10457
10458         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
10459         (spe_fixuns_truncsfsi2): Delete.
10460
10461         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
10462         (fixuns_truncsfsi2): Delete.
10463
10464 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
10465
10466         PR/14240
10467         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
10468
10469 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
10470
10471         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
10472
10473 2004-02-24  Jason Merrill  <jason@redhat.com>
10474
10475         * tree.c (check_qualified_type): New fn.
10476         (get_qualified_type): Use it.  If type already has the desired
10477         quals, just return it.
10478         * tree.h: Declare it.
10479
10480 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
10481
10482         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
10483         TARGET_SCHED_FINISH_GLOBAL): New macros.
10484
10485         * target.h (md_init_global, md_finish_global): Function
10486         declarations corresponding to new target macros.
10487
10488         * haifa-sched.c (sched_init, sched_finish): Allow target to
10489         call the new schedular hooks.
10490
10491         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
10492         call to update_life_info.
10493
10494         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
10495         flag_schedule_insns for SH4.
10496
10497         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
10498         find_set_regmode_weight, find_insn_regmode_weight,
10499         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
10500         sh_variable_issue, high_pressure, ready_reorder,
10501         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
10502         functions used to throttle the insn movement in first
10503         scheduling pass for SH.
10504
10505         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
10506         TARGET_SCHED_FINISH_GLOBAL.
10507
10508 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
10509
10510         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
10511         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
10512         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
10513         symbols in sections named by the user.
10514         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
10515         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
10516         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
10517         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
10518         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
10519         the above.
10520         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
10521         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
10522         one more pseudo to further improve code generation.
10523         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
10524         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
10525         inside UNSPEC.
10526         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
10527         * config/frv/frv.c (frv_legitimate_address_p): Added
10528         allow_double_reg_p argument.  Adjust all callers.  Use it to
10529         decide whether to enable double-register indirect addressing.
10530         (frv_funcdesc_alias_set): Remove.
10531         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
10532         register.  Emit movdi_ldd.
10533         (ldd_address_operand): New.
10534         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
10535         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
10536         (PREDICATE_CODES): Add ldd_address_operand.
10537         * config/frv/frv.md (movdi_ldd): New.
10538         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
10539         intermediate computations if possible.
10540         (symGOTOFF2reg_i): Fix harmless typo.
10541         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
10542         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
10543         relocated p_vaddr to vaddr type.
10544         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
10545         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
10546         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
10547         MEM, or use a funcdesc alias set.  Use regular move instead of
10548         ldd.
10549         (dbl_memory_one_insn_operand): Recognize function descriptors by
10550         type or by alias set, and don't split them.
10551         * config/frv/frv.md (call, call_value): Never use call_internal
10552         for fdpic.
10553         (call_internal, call_value_internal): Never match for FDPIC.
10554         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
10555         call_value_fdpicsi): Require FDPIC.
10556         (ldd): Removed.
10557         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
10558         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
10559         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
10560         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
10561         FDPIC.  Compute data base address.
10562         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
10563         before the other self-specs are processed.
10564         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
10565         Build with -fPIC.
10566         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
10567         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
10568         inhibit_libc is defined.
10569         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
10570         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
10571         __FRV_FDPIC__.
10572         (__RELOC_POINTER): Define.
10573         (_Unwind_IteratePhdrCallback): Use it.
10574         * config/frv/frv.h (Twrite): Define.
10575         (TRANSFER_FROM_TRAMPOLINE): Use it.
10576         * config/frv/linux.h (INVOKE__main): Undefine.
10577         (Twrite): Override.
10578         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
10579         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
10580         (-mlibrary-pic): Emphasize that this option generates EABI code.
10581         (-mcpu): Add fr550.
10582         (-mpack): Remove.
10583         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
10584         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
10585         and CONSTs in FDPIC mode.
10586         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
10587         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10588         * config/frv/frv.c (move_source_operand): Don't accept symbolic
10589         constants.
10590         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
10591         rather than 'i' constraint for the 2-instruction alternative.
10592         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
10593         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
10594         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
10595         EXTRA_CONSTRAINT_FOR_Y.
10596         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
10597         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
10598         (addsi3): Change 'Y' constraint to 'Q'.
10599         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
10600         * reload.c (CONST_POOL_OK_P): New macro.
10601         (find_reloads): Use it to decide whether a constant can be forced
10602         into memory.
10603         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
10604         constant satisfies got12_operand.
10605         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
10606         (frv_legitimate_address_p): Check for valid unspec offsets using
10607         got12_operand rather than frv_legitimate_fdpic_operand_p.
10608         (frv_legitimate_fdpic_operand_p): Delete.
10609         (frv_emit_movsi): Abort if we try to use the FDPIC register during
10610         or after reload.
10611         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
10612         TARGET_FDPIC.
10613         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
10614         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
10615         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
10616         (frv_fdpic_fptr_operand): Don't declare here.
10617         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
10618         rather than fdpic_got12_operand.
10619         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
10620         got12_operand and const_unspec_operand.
10621         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
10622         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
10623         (symbolic_operand): Remove.
10624         (const_unspec_operand): New predicate.
10625         * config/frv/frv.md (*movsi_got): Use got12_operand.
10626         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
10627         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
10628         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
10629         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
10630         * config/frv/frv.c (frv_unspec): New structure.
10631         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
10632         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
10633         validate CONST indices.  Use frv_output_const_unspec to print them.
10634         (frv_print_operand): Update call to unspec_got_name.  Use
10635         frv_output_const_unspec to print constant unspecs.
10636         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
10637         Reject UNSPECs otherwise.
10638         (unspec_got_name): Take the relocation number as argument, not an
10639         rtx containing it.
10640         (frv_output_addr_const_extra): Remove, replacing with...
10641         (frv_output_const_unspec): ...this new function.
10642         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
10643         (gpr_or_int12_operand): Use fdpic_got12_operand.
10644         (dbl_memory_one_insn_operand): Likewise.
10645         (fdpic_got12_operand): Use frv_const_unspec_p.
10646         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
10647         are already legitimate.  Use frv_small_data_reloc_p when deciding
10648         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
10649         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
10650         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
10651         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
10652         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10653         label, for real this time.
10654         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
10655         representation of visibility.
10656         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
10657         such.
10658         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
10659         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
10660         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
10661         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
10662         it was explicitly disabled.
10663         (frv_stack_info): There is no need to save the link register in every
10664         frame unless TARGET_LINKED_FP is true.
10665         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
10666         frame pointer if the stack pointer might change value.
10667         (frv_return_addr_rtx): Check and process "count" argument.
10668         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
10669         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
10670         (frv_find_base_term): Declare.
10671         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
10672         (FIND_BASE_TERM): Define.
10673         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
10674         small_data_register_operand, small_data_symbolic_operand.  Add
10675         symbolic_operand.
10676         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
10677         (frv_print_operand_memory_reference, output_move_single): Remove
10678         special handling for unlegitimized sdata addresses.
10679         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
10680         and symbolic addresses.
10681         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
10682         (frv_find_base_term): New function.
10683         (int_2word_operand): Check specifically for symbolic address constants.
10684         (pic_register_operand, pic_symbolic_operand): Delete.
10685         (small_data_register_operand, small_data_symbolic_operand): Delete.
10686         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
10687         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
10688         (move_source_operand): Only accept CONSTs if they're a two-insn
10689         symbolic constant.
10690         (fdpic_got12_operand): Don't require TARGET_FDPIC.
10691         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
10692         using gen_symGOTOFF2reg*.
10693         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
10694         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
10695         themselves a cost of 3 insns.
10696         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
10697         Change predicate to symbolic_operand.
10698         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
10699         (*movsi_lda_sdata): Delete.
10700         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
10701         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
10702         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
10703         frv-*-*linux*.
10704         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
10705         label.
10706         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
10707         -multilib-library-pic.
10708         (LINK_SPEC): Add -z text for -mfdpic.
10709         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
10710         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
10711         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
10712         Override.
10713         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
10714         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
10715         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
10716         crtstuff-generated files.
10717         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
10718         * config.gcc: Add frv-*-*linux*.
10719         * config/frv/linux.h, config/frv/t-linux: New.
10720         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
10721         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
10722         when -mfdpic even if a linker script is explicitly listed.
10723         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10724         * config/frv/frv.c (frv_override_options): Clear asm_out
10725         unaligned_op for SImode on FDPIC.
10726         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
10727         argument passed to decl_readonly_section.
10728         (frv_assemble_integer): Revert 2003-09-30's change, but make the
10729         whole block run with FDPIC even with -fno-PIC.
10730         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
10731         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
10732         symbol or label plus offset to memory.
10733         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
10734         GOTOFF and GPREL for LABEL_REF.
10735         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
10736         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
10737         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
10738         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
10739         * doc/invoke.texi: Document them.
10740         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
10741         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
10742         (frv_splittable_got_operand): Removed.
10743         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
10744         LO_SUM.  Add comments.
10745         (frv_override_options): Moved enabling of FDPIC to
10746         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
10747         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
10748         (frv_legitimize_fdpic_address): Don't duplicate logic in
10749         frv_emit_movsi.
10750         (frv_gen_GPsym2reg): New.
10751         (unspec_got_name): Added gprel.
10752         (frv_expand_fdpic_call): Add support for inlining PLTs.
10753         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
10754         (gpr_or_int12_operand): Added GPREL12.
10755         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
10756         (small_data_symbolic_operand): Fail if FDPIC.
10757         (fdpic_splittable_got_operand): Removed.
10758         (fdpic_got12_operand): Added GPREL12.
10759         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
10760         when appropriate.  Fix sdata GOTOFF.
10761         (frv_legitimate_constant_p): Require legitimate PIC operand for
10762         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
10763         (frv_assemble_integer): Move FDPIC funcdesc handling out of
10764         flag_pic case.
10765         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
10766         frv_assemble_integer fails.
10767         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
10768         (SUBTARGET_DRIVER_SELF_SPECS): New.
10769         (ASM_SPEC): Don't pass -mno-fdpic.
10770         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
10771         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
10772         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
10773         -multilib-library-pic.
10774         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
10775         condexec_si_media_operator, condexec_sf_add_operator and
10776         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
10777         and condexec_sf_unary_operator.
10778         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
10779         New.
10780         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
10781         movsi_internal.  Give them internal names.  movsi_got has type
10782         int.
10783         (fdpic got splitters): Remove.
10784         (symGPREL2reg, symGPREL2reg_hilo): New.
10785         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
10786         to -mlibrary-pic.  Map -multilib-library-pic to it.
10787         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
10788         Document.
10789         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
10790         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
10791         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
10792         (frv_cannot_force_const_mem): New function.
10793         (const_small_data_p, plus_small_data_p): Update comments on sdata
10794         on FDPIC.
10795         (frv_override_options): Set flag_pie for FDPIC too.
10796         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
10797         call-saved registers on FDPIC.
10798         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
10799         don't force LR to be preserved.
10800         (frv_expand_prologue): Likewise.
10801         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
10802         (frv_frame_pointer_required): Don't force it just because the
10803         FDPIC register is used.
10804         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
10805         operand only if !condexec_p.
10806         (frv_legitimize_address): Return the FDPIC-legitimized address.
10807         Don't match small data here on FDPIC.
10808         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
10809         symbols.  Use TRUE/FALSE instead of 1/0.
10810         (frv_local_funcdesc_p): New.
10811         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
10812         immediates when possible.
10813         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
10814         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
10815         an UNSPEC_GOT.
10816         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
10817         12-bit immediates when possible.
10818         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
10819         are not legitimate pic operands.
10820         (frv_in_small_data_p): Re-enable for FDPIC.
10821         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
10822         (FRV_GLOBAL_P): Removed.
10823         * config/frv/frv.md: Add modes to CONSTs.
10824         (movsi_got): New.
10825         (movsi_lo_sum_got): Use separate matches instead of match_dup.
10826         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
10827         (fdpic splittable operations): Match on flag_pic != 1.
10828         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
10829         * config/frv/frv.c (frv_asm_out_constructor,
10830         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
10831         bytes, not bits.
10832         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
10833         * config/frv/frv.c (frv_assemble_integer): Reject complex
10834         expressions referencing function SYMBOL_REFs.
10835         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
10836         (move_source_operand): Reject CONSTs that reference function
10837         SYMBOL_REFs on FDPIC.
10838         (frv_emit_movsi): If we get such a CONST, break it up.
10839         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
10840         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
10841         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
10842         MEM.
10843         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
10844         (frv_trampoline_size): Increase for FDPIC.
10845         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
10846         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
10847         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
10848         Disable use of GOTOFF for now.
10849         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
10850         Disable use of small data in FDPIC for now.
10851         (frv_asm_output_mi_thunk): Implement for FDPIC.
10852         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
10853         * config/frv/frv.c (frv_asm_out_constructor): Use
10854         frv_assemble_integer for FDPIC pointers.
10855         (frv_asm_out_destructor): Likewise.
10856         * config/frv/frv.md (ldd): Fix order of operands.  Use
10857         address_operand for input.
10858         2003-09-18  DJ Delorie  <dj@redhat.com>
10859         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
10860         (unspec_got_name): Correct typo.
10861         (frv_emit_movsi): Pre-expand splittable GOTs.
10862         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
10863         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
10864         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
10865         * config/frv/t-frv: Add -mfdpic multilibs.
10866         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
10867         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
10868         * config/frv/frv.c (frv_override_options): -mfdpic assumes
10869         flag_pic, default to 32-bit pics, require DWORD ops.
10870         (frv_override_options): Add W and Z constraints.
10871         (frv_expand_prologue): No pic prologue for -mfdpic.
10872         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
10873         (frv_print_operand_memory_reference): Handle GOT constants.
10874         (frv_legitimate_address_p): Allow GOT constants.
10875         (frv_legitimize_address): Handle GOT addresses too.
10876         (frv_legitimate_fdpic_operand_p): New.
10877         (frv_legitimize_fdpic_address): New.
10878         (unspec_got_name): New.
10879         (frv_output_addr_const_extra): New.
10880         (frv_expand_fdpic_call): New.
10881         (frv_fdpic_fptr_operand): New.
10882         (gpr_or_int12_operand): Handle GOT operands.
10883         (int_2word_operand): Handle GOT operands.
10884         (fdpic_operand): New.
10885         (fdpic_splittable_got_operand): New.
10886         (fdpic_got12_operand): New.
10887         (frv_emit_movsi): Handle GOT operands.
10888         (frv_assemble_integer): -mfdpic doesn't use rofixups.
10889         (frv_print_operand): Support 'g' code for GOT operands.
10890         * config/frv/frv-protos.h: Add prototypes as needed.
10891         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
10892         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
10893         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
10894         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
10895         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
10896         R_FRV_GOTOFFLO): New.
10897         (movsi_high_got, movsi_lo_sum_got): New.
10898         (*movsi_pic): Don't use this splitter for -mfdpic.
10899         (addsi3): Allow GOT references also.
10900         (call, call_value): Handle -mfdpic separately.
10901         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
10902         call_value_fdpicsi): New.
10903         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
10904         symGOTOFF2reg_i): New.
10905         * config/frv/frv.h (MASK_FDPIC): New.
10906         (TARGET_FDPIC): New.
10907         (TARGET_SWITCHES): Add -mfdpic.
10908         (FDPIC_FPTR_REGNO): New.
10909         (FDPIC_REGNO): New.
10910         (OUR_FDPIC_REG): New.
10911         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
10912         FDPIC_CALL_REGS.
10913         (REG_CLASS_NAMES): Likewise.
10914         (REG_CLASS_CONTENTS): Likewise.
10915         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
10916         (EXTRA_CONSTRAINT): Add it here.
10917         (FRV_GLOBAL_P): New.
10918         (OUTPUT_ADDR_CONST_EXTRA): New.
10919
10920 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10921
10922         * config/sparc/sparc.h: Remove commented-out definitions of
10923         TARGET_EDOM and GEN_ERRNO_RTX.
10924
10925 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
10926
10927         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
10928         df_analyse with df_analyze.
10929
10930 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
10931
10932         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
10933         beginning of block.
10934
10935 2004-02-23  James E Wilson  <wilson@specifixinc.com>
10936
10937         * calls.c (precompute_arguments): Update comment.
10938
10939 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10940
10941         * et-forest.c: Replace et_occurences with et_occurrences.
10942
10943 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
10944
10945         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
10946         with iv_analyze.
10947
10948 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
10949
10950         * config/i386/i386.c: Rename pni to sse3.
10951         * config/i386/i386.h: Likewise.
10952         * config/i386/i386.md: Likewise.
10953         * config/i386/pmmintrin.h: Likewise.
10954         * doc/extend.texi: Likewise.
10955         * doc/invoke.texi: Likewise.
10956
10957 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
10958             Kazu Hirata  <kazu@cs.umass.edu>
10959
10960         Remove -fwritable-strings.
10961         * c-common.c (fix_string_type): Don't check
10962         flag_writable_strings.
10963         (fix_string_type): Likewise.
10964         * c-opts.c (set_std_c89): Don't initialize
10965         flag_writable_strings.
10966         (set_std_c99): Likewise.
10967         * common.opt (fwritable-strings): Remove.
10968         * flags.h: Remove the external declaration of
10969         flag_writable_strings.
10970         * opts.c (common_handle_option) <OPT_fwritable_strings>:
10971         Remove.
10972         * toplev.c (flag_writable_strings): Remove.
10973         (f_options): Remove an entry for writable-strings.
10974         * varasm.c (const_hash_1) <STRING_CST>: Don't check
10975         flag_writable_strings.
10976         (compare_constant) <STRING_CST>: Likewise.
10977         (build_constant_desc): Likewise.
10978         * config/darwin.c (machopic_select_section): Likewise.
10979         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
10980         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
10981         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
10982         * config/mips/mips.c (mips_select_section): Likewise.
10983         (mips_encode_section_info): Likewise.
10984         * config/pa/pa.c (pa_select_section): Likewise.
10985         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
10986         * config/v850/v850.c (v850_select_section): Likewise.
10987         * doc/invoke.texi (-fwritable-strings): Remove.
10988         (-fno-const-strings): Don't mention -fwritable-strings.
10989         * doc/trouble.texi: Don't mention -fwritable-strings.
10990
10991 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
10992
10993         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
10994
10995 2004-02-23  Dale Johannesen  <dalej@apple.com>
10996
10997         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
10998         (movdf_hardfloat64):  Ditto.
10999         (movdf_softfloat64):  Ditto.
11000
11001 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
11002         * config/rs6000/rs6000.c (function_arg): call to
11003         rs6000_mixed_function_arg for DFmode moved to allow
11004         normal DFmode incoming register assignment.
11005
11006 2004-02-23  Dale Johannesen  <dalej@apple.com>
11007
11008         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
11009         (movdf_hardfloat64):  Ditto.
11010
11011 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11012
11013         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
11014         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
11015         copyright.
11016
11017 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
11018
11019         PR c/14156
11020         * c-typeck.c (c_expand_return): Change check for VAR_DECL
11021         to use DECL_P instead.
11022
11023         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
11024         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
11025
11026 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
11027
11028         * Makefile.in (opts.o): Depend on target.h.
11029         * opts.c (decode_options): Use targetm.default_short_enums
11030         instead of DEFAULT_SHORT_ENUMS.
11031         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11032         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
11033         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
11034         * target.h (gcc_target): Add default_short_enums.
11035         * config/cris/cris.h: Remove a comment about
11036         DEFAULT_SHORT_ENUMS.
11037         * config/ip2k/ip2k.h: Likewise.
11038         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
11039         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
11040
11041 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
11042             Falk Hueffner  <falk@debian.org>
11043
11044         PR c/14188
11045         * builtins.c (expand_builtin_va_arg): Emit an informative message
11046         if a trap is generated.
11047         * c-typeck.c (build_function_call): Likewise.
11048
11049 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11050
11051         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
11052         fopen.
11053         * libgcov.c: Include sys/stat.h.
11054         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
11055         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
11056         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
11057         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
11058
11059 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
11060
11061         * reorg.c: Remove comments about dead ports.
11062
11063 2004-02-22  Christopher Faylor  <cgf@redhat.com>
11064
11065         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
11066         extra host object file when targetting cygwin rather than generic
11067         object files.
11068
11069 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
11070
11071         Merge from tree-ssa:
11072         2003-11-20  Richard Henderson  <rth@redhat.com>
11073
11074                 * tree-inline.c (insert_decl_map): New.
11075                 (remap_decl, remap_type, remap_block, copy_body_r,
11076                 initialize_inlined_parameters, declare_return_variable,
11077                 remap_save_expr): Use it.
11078
11079         * function.c (copy_body_r): Add mapping from id->ret_label to
11080         id->ret_label.  Revert test for ret_label.
11081
11082 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
11083
11084         * genoutput.c (process_template): Strip trailing whitespace in @
11085         templates and issue a warning if there was any.
11086
11087 2004-02-21  Christopher Faylor  <cgf@redhat.com>
11088
11089         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
11090         object file when targetting cygwin.
11091         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
11092         overridden by top-level Makefile.
11093
11094 2004-02-21  Roger Sayle  <roger@eyesopen.com>
11095
11096         * config/i386/i386.c (standard_80387_constant_p): Also prefer
11097         the x87's load constant instructions when optimizing for size.
11098
11099 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
11100
11101         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
11102         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
11103         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
11104         * fold-const.c: Likewise.
11105         * simplify-rtx.c: Likewise.
11106
11107 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
11108
11109         * combine.c (can_combine_p): Don't ignore SETs marked with
11110         REG_EH_REGION notes.
11111         (try_combine): When attemting to fix unrecognized insns, don't
11112         split a PARALLEL that contains the original i2.
11113
11114 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
11115
11116         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
11117         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
11118         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
11119         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
11120         (vector, pixel, bool): #define to __vector, __pixel and __bool.
11121         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
11122         portion of header.
11123         (__altivec_link_error_invalid_argument): Remove prototype; will use
11124         __builtin_altivec_compiletime_error("vec_*") instead.
11125         (vec_*): Fix/complete set of available operation overloads given the
11126         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
11127         cv-correctness of pointer arguments; in C, always check for correct
11128         argument types before macro expansion.
11129         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
11130         defining Darwin/PowerPC-specific '-f[no-]altivec' and
11131         '-W[no-]altivec-long-deprecated' switches.
11132         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
11133         '__vector', '__pixel' and '__bool' macros using
11134         '__attribute__((altivec(...)))' types.
11135         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
11136         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
11137         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
11138         New type nodes.
11139         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
11140         handling '-W[no-]altivec-long-deprecated'.
11141         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
11142         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
11143         altivec_expand_dst_builtin): Remove casts from integer literals.
11144         (altivec_expand_builtin): Likewise; handle expansion of new
11145         '__builtin_altivec_compiletime_error' function.
11146         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
11147         types, and make them distinct from other vector types; register
11148         '__builtin_altivec_compiletime_error' function.
11149         (print_operand): For 'P', print a full target register name instead of
11150         merely its number.
11151         (rs6000_attribute_table): Add "altivec" attribute.
11152         (rs6000_handle_altivec_attribute): New function.
11153         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
11154         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
11155         maps to).
11156         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
11157         declare.
11158         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
11159
11160 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11161
11162         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
11163         check.
11164         (shift_mix4left+2): Delete redundant pattern.
11165
11166 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11167
11168         * alias.c (OUTGOING_REGNO): Don't define the default.
11169         * builtins.c (OUTGOING_REGNO): Likewise.
11170         (INCOMING_REGNO): Likewise.
11171         (apply_args_register_offset): Always use OUTGOING_REGNO.
11172         * combine.c (OUTGOING_REGNO): Likewise.
11173         * sibcall.c (OUTGOING_REGNO): Likewise.
11174         * defaults.h (INCOMING_REGNO): Provide the default.
11175         (OUTGOING_REGNO): Likewise.
11176
11177 2004-02-21  Jan Hubicka  <jh@suse.cz>
11178
11179         * params.def (max-peeled-insns, max-completely-peeled-insns,
11180         max-once-peeled-insns): Set to 400.
11181
11182 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11183
11184         PR c++/12007
11185         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
11186         are set for parameters before outputing debugging information.
11187
11188 2004-02-20  Falk Hueffner  <falk@debian.org>
11189
11190         PR target/14201
11191         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
11192         numbers.
11193
11194 2004-02-20  Per Bothner  <per@bothner.com>
11195
11196         * input.h:  Don't #include line-map.h.  It may cause link problems
11197         with undefined linemap_line_start when line-map.h is included but
11198         line-map.o is not linked, as currently happens with gengtype on
11199         compilers that don't support inline.
11200         * toplev.c:  So we do have to explicitly #include line-map.h here.
11201
11202 2004-02-20  Richard Henderson  <rth@redhat.com>
11203
11204         * doc/invoke.texi: Add -Wvariadic-macros.
11205
11206 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11207
11208         * haifa-sched.c (sched_emit_insn): Remove.
11209         * sched-int.h: Remove the corresponding prototype.
11210
11211 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11212
11213         Revert:
11214         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11215         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11216         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11217         * config/cris/cris.h: Remove a comment about
11218         DEFAULT_SHORT_ENUMS.
11219         * config/ip2k/ip2k.h: Likewise.
11220         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11221
11222 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
11223             Tom Tromey  <tromey@redhat.com>
11224
11225         * doc/install.texi: Moved --disable-libgcj and
11226         --with-system-zlib documentation to new section for
11227         Java-specific options.
11228         Added explicit Cross-Compiler-Specific Options subheading.
11229         Added section for Java-specific options.
11230
11231 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
11232
11233         * doc/install.texi (Building the Ada compiler): Remove
11234         example.
11235
11236 2004-02-20  James E Wilson  <wilson@specifixinc.com>
11237
11238         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
11239
11240 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
11241
11242         * gcc.c (process_command): Allow translation of the copyright
11243         symbol but not the rest of the copyright message.
11244         * gcov.c (print_version): Likewise.  Allow translation of the
11245         message about warranty.
11246
11247 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
11248
11249         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
11250         predicate.
11251         ("*andsi_clear"): Tweak constraints to not match postincrement.
11252         Adjust the predicate to exclude a volatile memory reference.
11253         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
11254         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
11255
11256 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
11257
11258         * move-if-change: Remove.
11259         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
11260         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
11261         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
11262         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
11263         (s-gtyp-gen, s-iov): Use the top level move-if-change.
11264         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
11265
11266 2004-02-19  James E Wilson  <wilson@specifixinc.com>
11267
11268         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
11269         for operand2.  Add condition that requires register_operand operand2
11270         before reload.
11271
11272 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
11273             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
11274
11275         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
11276         * config/mips/mips.md: Expand comment above unaligned loads and stores.
11277
11278 2004-02-19  Richard Henderson  <rth@redhat.com>
11279
11280         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
11281         * tree.c (build0, build1, build2, build3, build4): Split out from...
11282         (build): ... here.  Call them.
11283         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
11284
11285         * convert.c (convert_to_integer): Remove extra build argument.
11286         * tree-inline.c (expand_call_inline): Likewise.
11287
11288 2004-02-19  Richard Henderson  <rth@redhat.com>
11289
11290         * c-opts.c (warn_variadic_macros): New.
11291         (c_common_handle_option): Set it.
11292         (sanitize_cpp_opts): Copy it to cpp_opts.
11293         * c.opt (Wvariadic-macros): New.
11294         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
11295         * cppinit.c (cpp_create_reader): Initialize it.
11296         * cppmacro.c (parse_params): Check it.
11297
11298 2004-02-19  David Daney <ddaney@avtrex.com>
11299
11300         PR preprocessor/14198
11301         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
11302         builtin_assert ("machine=mips")
11303
11304 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11305
11306         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
11307         * system.h (DEFAULT_SHORT_ENUMS): Poison.
11308         * config/cris/cris.h: Remove a comment about
11309         DEFAULT_SHORT_ENUMS.
11310         * config/ip2k/ip2k.h: Likewise.
11311         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
11312
11313 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11314
11315         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
11316         when passing single SFmode quantities in general registers,
11317         put them in the high half.
11318
11319 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11320
11321         * doc/md.texi (Standard Names): Document additional dependency on
11322         fix pattern.
11323
11324         * optabs.c (ftruncify): Remove.
11325         (expand_fix): Manually inline ftruncify above.
11326         (can_fix_p): Add FIXME note.
11327
11328 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
11329
11330         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
11331         spe_fixuns_truncsfsi2.
11332
11333         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
11334         fixuns_truncsfsi2.
11335
11336 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
11337
11338         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
11339         * testsuite/gcc.dg/20040219-1.c: New test.
11340
11341 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
11342
11343         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
11344         "*subsf3_cconly"): Subtraction is not commutative.
11345
11346 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
11347
11348         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
11349         (sdbout_symbol): If called before sdbout_init, queue DECL for
11350         later and return.
11351         (sdbout_init): Set sdbout_initialized true, process decls
11352         queued earlier by sdbout_symbol.
11353         (sdbout_finish): Use size_t for index variable.
11354
11355 2004-02-19  Jeff Law  <law@redhat.com>
11356
11357         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
11358         for unordered comparison codes.
11359
11360 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
11361
11362         * reload1.c (reload): Correct comment.
11363         (scan_paradoxical_subregs): Remove #if 0 and old comment.
11364         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
11365         register variables are not used by reload.
11366
11367 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
11368
11369         PR target/14209
11370         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
11371         constraints to not match postincrement.  Adjust the predicate to
11372         exclude a volatile memory reference.
11373
11374 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11375
11376         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
11377
11378 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11379
11380         * hooks.c (hook_void_tree_int): Remove.
11381         (hook_void_constcharptr): Likewise.
11382         (hook_int_void_0): Likewise.
11383         * hooks.h: Remove the prototypes for the above three
11384         functions.
11385         * targhooks.c (hook_bool_machine_mode_true): Remove.
11386         * targhooks.h: Remove the prototype for
11387         hook_bool_machine_mode_true.
11388
11389 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11390
11391         * emit-rtl.c (subreg_realpart_p): Remove.
11392         (reorder_insns_with_line_notes): Likewise.
11393         (end_full_sequence): Likewise.
11394         * rtl.h: Remove the prototype for the above functions.
11395
11396 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11397
11398         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
11399         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
11400         config/iq2000/iq2000.h, config/m32r/m32r.h,
11401         config/pdp11/pdp11.h, config/sparc/sparc.h,
11402         config/xtensa/xtensa.h: Remove commented-out or useless
11403         definitions of CASE_VECTOR_PC_RELATIVE.
11404
11405 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
11406
11407         * loop.c (all_sets_invariant_p): Remove.
11408
11409 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11410
11411         PR target/12916
11412         * config/sparc/sparc.h (NPARM_REGS): Delete.
11413         (BASE_RETURN_VALUE_REG): Likewise.
11414         (BASE_OUTGOING_VALUE_REG): Likewise.
11415         (BASE_PASSING_ARG_REG): Likewise.
11416         (BASE_INCOMING_ARG_REG): Likewise.
11417         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
11418         TARGET_ARCH64, not TARGET_V9.
11419         (function_arg_slotno): Dispatch based on the mode class.
11420         Handle vector modes like floating-point modes.
11421         (function_arg_record_value_1): Handle vector types like
11422         floating-point types.
11423         (function_arg_record_value_2): Likewise.
11424         Calculate regno after mode transformation.
11425         (function_arg): Handle vector modes like floating-point modes.
11426         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
11427         If ARCH64, do not recheck alignment.
11428         (function_arg_pass_by_reference): Reorder the conditions.
11429         (sparc_return_in_memory): Move after function_arg_padding.
11430         Implement calling conventions for vector modes.
11431         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
11432         (function_value): Move scope of 'regbase'.
11433         Implement calling conventions for vector modes.
11434         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
11435         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
11436         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
11437         the argument is passed by reference.
11438         (sparc_type_code): Handle vector types.
11439
11440 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
11441
11442         * function.c (assign_parms): When building decl_rtl for
11443         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
11444
11445 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
11446
11447         * expr.c (is_aligning_offset): Check if we are aligning the
11448         expressions's address over BIGGEST_ALIGNMENT in bytes, not
11449         in bits.
11450
11451 2003-02-18  Matt Austern  <austern@apple.com>
11452
11453         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
11454         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
11455         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
11456         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
11457         spec string.
11458         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
11459
11460 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
11461
11462         * dwarf2out.c (loclabel_num): Move outside #ifdef
11463         DWARF2_DEBUGGING_INFO and mark with GTY(()).
11464         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
11465         Mark with GTY(()).
11466         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
11467         Allocate memory with ggc_alloc.  No need to copy anything.
11468         (ia64_hpux_file_end): Update to match.
11469
11470 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11471
11472         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
11473         by default.
11474
11475 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11476
11477         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
11478         ("divmodtisi3"): Likewise.
11479         ("udivmoddi4", "udivmodtidi3"): Likewise.
11480         ("divmodsi4", "divmoddisi3"): Likewise.
11481         ("udivmodsi4", "udivmoddisi3"): Likewise.
11482         ("udivsi3", "umodsi3"): Likewise.
11483
11484 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
11485
11486         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
11487         placeholder insn when chunkifying the pool.
11488
11489 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11490
11491         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
11492         generating PIC code.
11493
11494 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11495
11496         * config/h8300/h8300-protos.h: Add a prototype for
11497         h8300_expand_branch.
11498         * config/h8300/h8300.c (h8300_expand_branch): New.
11499         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
11500         bgtu, beq, bne): Call h8300_expand_branch().
11501
11502 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11503
11504         * config/h8300/h8300-protos.h: Add prototypes for
11505         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
11506         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
11507         (h8300_hard_regno_mode_ok): Likewise.
11508         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
11509         h8300_hard_regno_nregs().
11510         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
11511
11512 2004-02-18  Per Bothner  <per@bothner.com>
11513
11514         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
11515         partly reverts my 2003-10-01 change, because we're back to logically
11516         including <command line> inside the main line.
11517         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
11518         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
11519         Fixes PR preprocessor/14103.
11520
11521         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
11522         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
11523         (cpp_push_include):  Don't need to increment pfile's line field.
11524         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
11525
11526         * c-ppoutput.c (print struct):  New first_time field.
11527         (init_pp_output):  Set print.first_time.
11528         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
11529         which is set also for (say) <command line>.  Clear print.first_time.
11530
11531         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
11532         does not match the code, so fix both.
11533         (should_stack_file):  Inline include_pch_p function.
11534         (include_pch_p):  Remove pointless function.
11535
11536         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
11537
11538 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11539
11540         * config/h8300/h8300.md (four define_peephole2's): Use
11541         h8300_regs_ok_for_stm().
11542
11543 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11544
11545         * config/h8300/h8300-protos.h: Update the prototype for
11546         expand_a_rotate().
11547         * config/h8300/h8300.c (expand_a_rotate): Remove the first
11548         argument.
11549         * config/h8300/h8300.md: Update all callers.
11550
11551 2004-02-18  Jan Hubicka  <jh@suse.cz>
11552
11553         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
11554         floats.
11555         (simplify_binary_operation): Deal with logicals on floats.
11556
11557         * i386.md (SSE fabs splitters): Emit new patterns.
11558         (SSE cmov splitters): Likewise.
11559         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
11560         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
11561         subregs.
11562         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
11563         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
11564
11565 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11566
11567         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
11568         by hand.
11569         (output_a_rotate): Tweak a comment.
11570         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
11571         (*rotlhi3_1): Change to rotlhi3_1.
11572         (*rotlsi3_1): Change to rotlsi3_1.
11573
11574 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
11575
11576         PR target/13866
11577         * arm.c (load_multiple_operation): Don't insist that the source reg
11578         of a post-increment component is the same as the destination.
11579         (store_multiple_operation): Likewise.
11580
11581 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11582
11583         * config/h8300/h8300.md: Move movsf patterns into one section
11584         of the file.
11585
11586 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11587
11588         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
11589         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
11590         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
11591         config/mips/linux64.h, config/pa/pa-64.h,
11592         config/rs6000/aix51.h, config/rs6000/aix52.h,
11593         config/rs6000/spe.md, config/sparc/linux.h,
11594         config/sparc/linux64.h: Update copyright.
11595
11596 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
11597
11598         * config/h8300/h8300.md: Move push patterns into one
11599         section of the file.
11600
11601 2004-02-18  Mark Mitchell <mark@codesourcery.com>
11602
11603         PR c++/11326
11604         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
11605         fntype.
11606
11607 2004-02-18  Paul Brook  <paul@codesourcery.com>
11608
11609         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
11610
11611 2004-02-18  Paul Brook  <paul@codesourcery.com>
11612
11613         PR debug/12934
11614         * dwarf2out.c (loc_descriptor_from_tree): Handle
11615         EXPR_WITH_FILE_LOCATION.
11616
11617 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
11618
11619         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
11620         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
11621         trailing whitespace from instructions.
11622
11623 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
11624
11625         * configure.ac: When generating auto-build.h, pass
11626         --enable-languages to the sub-configure.
11627         Put quotes around ${program_transform_name} when generating
11628         name of as, ld, nm, objdump.
11629         * configure: Regenerate.
11630
11631 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
11632
11633         * Makefile.in (s-check, s-config, s-conditions, s-flags)
11634         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
11635         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
11636         (s-preds, s-iov): Do not depend on move-if-change.
11637
11638 2004-02-17  James E Wilson  <wilson@specifixinc.com>
11639
11640         * caller-save.c (insert_restore): Pass mem through copy_rtx.
11641         (insert_save): Likewise.
11642
11643 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11644
11645         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
11646         warning.
11647
11648 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11649
11650         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
11651         *one_cmplsi2_h8300.
11652         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
11653
11654 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11655
11656         * config/h8300/h8300-protos.h: Update the prototype of
11657         fix_bit_operand().
11658         * config/h8300/h8300.c (fix_bit_operand): Remove the second
11659         argument "what".
11660         * config/h8300/h8300.md: Update all callers.
11661
11662 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11663
11664         * config/h8300/h8300.c (fix_bit_operand): Change the name of
11665         the last argument to "code" from "type".
11666
11667 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11668
11669         * config/h8300/h8300.c: Remove an extern declaration of
11670         rtx_equal_function_value_matters.
11671
11672 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11673
11674         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
11675         by hand.
11676         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
11677         (*iorqi3_1): Change to iorqi3_1.
11678         (*xorqi3_1): Change to xorqi3_1.
11679
11680 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11681
11682         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
11683         typos.
11684
11685 2004-02-17  Jan Hubicka  <jh@suse.cz>
11686
11687         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
11688
11689 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
11690
11691         PR optimization/14119
11692         * combine.c (try_combine): When attemting to fix unrecognized insns,
11693         don't delete SETs marked with REG_EH_REGION notes.
11694
11695 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
11696
11697         * combine.c (simplify_if_then_else): Do not replace
11698         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
11699         modes differ.
11700
11701 2004-02017  Steven Bosscher  <stevenb@suse.de>
11702
11703         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
11704         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
11705         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
11706         * ada/utils.c: Likewise.
11707         * cp/decl.c: Likewise.
11708         * f/com.c: Likewise.
11709         * java/class.c: Likewise.
11710
11711 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11712
11713         * config/h8300/h8300.md: Fix comment typos.
11714
11715 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11716
11717         * config/mips/t-iris6gld: Renamed to ...
11718         * config/mips/t-irix-gld: ... this.
11719         * config.gcc (mips-sgi-irix6*): Reflect this
11720         (mips-sgi-irix5*): Use it with GNU ld.
11721
11722         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
11723         to ...
11724         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
11725         * config/mips/t-irix-gld: Reflect this.
11726         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11727
11728         * config/mips/iris5gld.h: New file.
11729         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
11730         Only use collect2 without gas.
11731
11732         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
11733         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11734         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
11735         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
11736
11737         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
11738         * config/mips/iris5.h: ... here.
11739
11740         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
11741         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
11742         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
11743
11744         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
11745         using irix_startfile_spec, irix_endfile_spec.
11746
11747 2004-02-16  Gunther Nikl  <gni@gecko.de>
11748
11749         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
11750
11751 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11752
11753         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
11754         insns by hand.
11755
11756 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11757
11758         * cfghooks.c (split_edge): Speed up updating of dominators.
11759
11760 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
11761
11762         PR c++/11326
11763         * c-common.c (flag_abi_version): Remove.
11764         * c-common.h (flag_abi_version): Likewise.
11765         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
11766         * c.opt (fabi-version): Remove.
11767         * calls.c (expand_call): Always pass a function type to
11768         struct_value_rtx.  Use convert_memory_address.
11769         * common.opt (fabi-version): Add it.
11770         * flags.h (flag_abi_version): Likewise.
11771         (abi_version_at_least): New macro.
11772         * opts.c (common_handle_option): Add OPT_fabi_version.
11773         * toplev.c (flag_abi_version): Define it.
11774         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
11775         New function.
11776         (ia64_output_mi_thunk): Use it.
11777         (ia64_struct_value_rtx): Likewise.
11778
11779 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11780
11781         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
11782         Don't generate insns by hand.
11783
11784 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
11785
11786         PR c++/14178
11787         * doc/invoke.texi (fabi-version): The default is 2 now.
11788
11789 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11790
11791         * loop-iv.c: New file.
11792         * Makefile.in (loop-iv.o): New.
11793         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
11794         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
11795         num_loop_branches): New functions.
11796         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
11797         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
11798         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
11799         get_simple_loop_desc, free_simple_loop_desc): Declare.
11800         (simple_loop_desc): New inline function.
11801         (struct rtx_iv, struct niter_desc): New.
11802         * cfgloopmanip.c (loopify): Specify semantics more precisely.
11803         * expr.c (force_operand): Handle subregs of expressions created by
11804         loop unroller.
11805         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
11806         parts of the initialization to toplev.c
11807         * loop-unroll.c (loop_exit_at_end_p): New.
11808         (unroll_and_peel_loops): Call iv_analysis_done.
11809         (decide_peel_once_rolling, decide_peel_completely,
11810         decide_unroll_stupid, decide_unroll_constant_iterations,
11811         decide_unroll_runtime_iterations, decide_peel_simple,
11812         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
11813         unroll_loop_runtime_iterations): Use new simple loop analysis.
11814         * loop-unswitch.c (compare_and_jump_seq): New.
11815         (may_unswitch_on_p): Renamed to ...
11816         (may_unswitch_on): Use new iv analysis.
11817         (reversed_condition): Export.
11818         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
11819         * predict.c (estimate_probability): Use new simple loop analysis.
11820         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
11821         canon_condition, simplify_using_condition): Declare.
11822         * stor-layout.c (get_mode_bounds): New.
11823         * toplev.c (rest_of_handle_loop2): Some parts of
11824         initialization/finalization moved here from loop-init.c.
11825
11826 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
11827
11828         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
11829         pointer.
11830         (CALL_USED_REGISTERS): Likewise.
11831         (REG_ALLOC_ORDER): Likewise.
11832         (REG_CLASS) <GENERAL_REGS>: Likewise.
11833
11834 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
11835
11836         * doc/md.texi (Insn Canonicalizations): Document left-chaining
11837         in associative operators.
11838         * rtlanal.c (commutative_operand_precedence): Create some new
11839         variables.  Prefer a commutative operand on the left, then
11840         binary expressions, then NEG and NOT.
11841
11842 2004-02-16  Matthias Klose  <doko@debian.org>
11843
11844         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
11845         in terms of SHLIB_SOVERSION.
11846         * config/m68k/t-slibgcc-elf-ver: New file.
11847         * config/pa/t-slibgcc-elf-ver: New file.
11848         * config.gcc (m68k-linux, parisc-linux): Use them when not
11849         sjlj exceptions are not configured.
11850
11851 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
11852
11853         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
11854
11855 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
11856
11857         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
11858
11859 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
11860
11861         * doc/sourcebuild.texi: Mention backends.html.
11862
11863 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
11864
11865         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
11866         line-map.c, line-map.h, var-tracking.c: Fix comment
11867         formatting.
11868
11869 2004-02-16  Richard Henderson  <rth@redhat.com>
11870
11871         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
11872
11873         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
11874
11875 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11876
11877         * config/h8300/h8300.md: Remove unnecessary parallels from
11878         all define_insn and define_split patterns.
11879
11880 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11881
11882         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
11883         "clobber").
11884
11885 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
11886
11887         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
11888         '%#'.
11889
11890 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
11891
11892         * config/ia64/ia64.c, config/mips/mips.c,
11893         config/mmix/mmix-modes.def: Fix comment typos.
11894
11895 2004-02-15  Roger Sayle  <roger@eyesopen.com>
11896
11897         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
11898         (get_directive_line): Remove unused function prototype.
11899
11900 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11901
11902         * tree-inline.c (copy_body_r): Do not replace ret_label.
11903
11904 2004-02-14  Jan Hubicka  <jh@suse.cz>
11905
11906         * i386.c (x86_four_jump_limit): New variable.
11907         (k8_avoid_jump_misspredicts): Rename to ...
11908         (ix86_avoid_jump_misspredicts): .. this one.
11909         (ix86_pad_returns): Break out from ...
11910         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
11911         to.
11912         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
11913
11914 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
11915
11916         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
11917         PARALLEL is NULL.
11918
11919 2004-02-14  Per Bothner  <per@bothner.com>
11920
11921         * fix-header.c (line_table):  Move local variable in main to global.
11922         * scan.h (line_table):  Use it.
11923         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
11924         line (recently renamed to src_loc) before calling recognized_function.
11925
11926 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
11927
11928         * Makefile.in: Fix comment typos.
11929
11930 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
11931
11932         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
11933         for start_value when it is directly moved into reg, and factorize
11934         the retrieval of GET_MODE (reg).
11935
11936 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11937
11938         * config/mips/mips-protos.h (mips_load_got_page): Delete.
11939         (mips_load_got_global): Delete.
11940         (mips_gotoff_page): Declare.
11941         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
11942         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
11943         UNSPEC_LOAD_GOT pattern rather than a MEM.
11944         (*load_got[sd]i): New patterns.
11945         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
11946         (mips_load_got_page, mips_load_got_global): Delete.
11947         (mips_gotoff_page): New function.
11948         (override_options): Don't initialize mips_got_alias_set.
11949
11950 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
11951
11952         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
11953         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
11954         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
11955         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
11956         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
11957         * config/mips/mips.c: Fix some overly-long lines.
11958         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
11959         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
11960
11961 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11962
11963         * configure.ac: Search for as, ld below libexec/gcc.
11964         * configure: Regenerate.
11965
11966 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11967
11968         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
11969         __builtin_arm_setwcx ().
11970         * config/arm/arm.c (arm_expand_builtin): Generate operands
11971         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
11972
11973 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
11974
11975         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
11976         and "wmuluh" to "wmulsm" and "wmulum", respectively.
11977         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
11978         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
11979         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
11980         (_mm_mulhi_pu16): Likewise.
11981
11982 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
11983
11984         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
11985         DECL_NAME != 0 before dereferencing.
11986
11987 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
11988
11989         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
11990         (s390_output_addr_const_extra): Declare.
11991         (s390_output_pool_entry): Remove FILE * argument.
11992         * config/s390/s390.c (s390_output_symbolic_const): Remove.
11993         (s390_output_addr_const_extra): New function.
11994         (print_operand_address): Call output_addr_const instead of
11995         s390_output_symbolic_const.
11996         (print_operand): Likewise.
11997         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
11998         Remove FILE * argument.
11999         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
12000         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
12001         call.
12002
12003 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
12004
12005         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
12006         (struct edge, struct vertex, struct graph): New.
12007         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
12008         free_graph): New functions.
12009
12010 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
12011
12012         * config/mips/mips.md (casesi_internal, casesi_internal_di):
12013         Use ".set macro" to avoid warnings about multi-instruction
12014         macros, since they're intentional.
12015
12016 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
12017
12018         * config/darwin.h: Add include guards.  Remove old, now incorrect,
12019         comment about STANDARD_EXEC_PREFIX.
12020
12021         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
12022         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
12023         for installing .1 manpages.  Add rules for installing cpp
12024         and gcov manpages under their installed names.
12025
12026 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
12027
12028         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
12029         host, but try LD_FOR_TARGET first.
12030         * configure: Rebuilt.
12031
12032 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12033
12034         * dbxout.c: Move declaration of dbxout_type_decl outside
12035         #ifdef DBX_DEBUGGING_INFO.
12036         * c-parse.in: Don't give the asmdef production a type.
12037
12038 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12039
12040         * debug.h (struct gcc_debug_hooks): Add type_decl field.
12041         (debug_nothing_tree_int): Prototype.
12042         (dwarf_debug_hooks): Delete, unused.
12043         * debug.c (do_nothing_debug_hooks): Update.
12044         (debug_nothing_tree_int): New function.
12045         * langhooks.h (struct lang_hooks_for_decls):
12046         Remove builtin_type_decls field.
12047         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
12048         (LANG_HOOKS_DECLS): Update.
12049         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
12050         Use debug_hooks->type_decl.
12051         * dbxout.c (preinit_symbols): New static.
12052         (dbx_debug_hooks, xcoff_debug_hooks): Update.
12053         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
12054         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
12055         for symbols to output.
12056         (dbxout_type_decl): New function.
12057         (dbxout_symbol): If called before dbxout_init has run, queue
12058         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
12059         to TYPE_DECLs before emitting them.
12060         * xcoffout.c (assign_type_number): Delete.
12061         (xcoff_type_numbers): New static table.
12062         (xcoff_assign_fundamental_type_number): New function.
12063         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
12064         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
12065         * sdbout.c: Include varray.h.
12066         (deferred_global_decls): New static.
12067         (sdb_debug_hooks): Update.
12068         (sdbout_global_decl): If we can't emit something right now,
12069         remember it in deferred_global_decls.
12070         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
12071         (sdbout_init): Initialize deferred_global_decls.
12072         * Makefile.in: Update dependencies of sdbout.o.
12073         * dwarf2out.c (dwarf2out_type_decl): New function.
12074         (dwarf2_debug_hooks): Update.
12075         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
12076         * c-decl.c (getdecls): Just return 0.
12077         (check_for_loop_decls): Don't use getdecls.
12078         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
12079         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
12080
12081 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
12082
12083         * config/s390/s390.c (s390_sched_reorder2): Remove.
12084         (TARGET_SCHED_REORDER2): Do not redefine.
12085
12086 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
12087
12088         * c-parse.in (maybe_type_qual): Delete.
12089         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
12090         (asm_argument): New grammar rules.
12091         (extdef_1): Use asmdef.
12092         (maybeasm): Move down with other asm rules; use simple_asm_expr.
12093         (xexpr): Move up with other expression rules.
12094         (stmt): Use asm_stmt.
12095
12096         * c-typeck.c (build_asm_expr): New function - body mostly
12097         pulled from build_asm_stmt.
12098         (build_asm_stmt): Just handle tacking on the volatile qualifier.
12099         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
12100
12101 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
12102
12103         PR bootstrap/13617
12104         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
12105         (mips_declare_object): Make variadic.
12106         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
12107         mips_output_aligned_decl_common.
12108         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
12109         (mips_declare_object): Make variadic.
12110
12111 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12112
12113         * function.c (update_epilogue_consts): Teach about binary operations.
12114
12115         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
12116         previous MEM_VOLATILE in REF.
12117         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
12118         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
12119
12120 2004-02-12  Gunther Nikl  <gni@gecko.de>
12121
12122         * config.gcc: Restore support for m68k-openbsd.
12123
12124 2004-02-12  Jan Hubicka  <jh@suse.cz>
12125
12126         * tree-optimize.c (tree_rest_of_compilation): Do not release
12127         DECL_ARGUMENTS.
12128
12129 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
12130
12131         * doc/install.texi: Fix the spelling of "explicitly".
12132
12133 2004-02-11  Eric Christopher  <echristo@redhat.com>
12134
12135         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
12136         duplicate argument structure of cpp_interpret_string.
12137         * cpphash.h: Move prototype...
12138         * cpplib.h: Here.
12139         * cpplib.c: Fix calls to match new function signature.
12140
12141 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
12142
12143         PR c/456
12144         * cppexp.c (num_binary_op): Don't allow comma operators in #if
12145         constant expressions at all outside C99 mode if pedantic.
12146
12147 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
12148
12149         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
12150         (log10_optab, log2_optab): Define corresponding macros.
12151         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
12152         * genopinit.c (optabs): Implement log10_optab and log2_optab
12153         using log10?f2 and log2?f2 patterns.
12154         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
12155         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
12156         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
12157         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
12158
12159         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
12160         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
12161         log2, log2f and log2l built-ins as inline x87 intrinsics.
12162
12163 2004-02-11  Richard Henderson  <rth@redhat.com>
12164
12165         PR target/1532
12166         * flow.c (insn_dead_p): A clobber of a dead hard register is a
12167         dead insn after reload.
12168
12169 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
12170
12171         * tree.h (frame_base_decl): Add GTY marker.
12172         * var-tracking.c (frame_base_decl): Likewise.
12173
12174 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
12175
12176         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
12177         incorrect, hunk.
12178         (add_location_or_const_value_attribute): Use text_section_label,
12179         not TEXT_SECTION_NAME.
12180
12181 2004-02-11  Per Bothner  <per@bothner.com>
12182
12183         Represent column numbers using line-map's source_location.
12184         The "next available source_location" is now managed internally by
12185         line-maps.c rather than by clients.
12186         * line-map.h (struct line_map):  New field column_bits.
12187         <from_line>:  Rename field to start_location.
12188         (struct line_maps):  New fields highest_location and max_column_hint.
12189         (linemap_check_files_exited):  New declaration.
12190         (linemap_line_start):  New declaration.
12191         (linemap_add):  Remove from_line parameter; use highest_location field.
12192         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
12193         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
12194         (CURRENT_LINE_MAP):  Remove macro.
12195         (linemap_position_for_column):  New inline function.
12196         * line-map.c (linemap_init):  Clear new fields.
12197         (linemap_check_files_exited):  New function, extracted from ...
12198         (linemap_free):  Use linemap_check_files_exited.
12199         (linemap_add):  Remove from_line parameter.  Various updates.
12200         (linemap_line_start):  New function.
12201         (linemap_lookeup):  Update for new field names.
12202         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
12203         linemap_position_for_column may unpredictably change the current map,
12204         it is cleaner and simpler for us to not cache it in cpp_reader.
12205         (struct cpp_buffer):  New sysp field.
12206         Changed warned_cplusplus_comments and from_stage3 to bitfields.
12207         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
12208         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
12209         current map using linemap_lookup.
12210         (do_linemarker):  Also set buffer's sysp field.
12211         (destringize_and_run):  No longer need to decrement current line.
12212         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
12213         (search_path_head, open_file_failed):  Use buffer's sysp.
12214         (cpp_make_system_header):  Get current map using linemap_lookup.
12215         Also set buffer's sysp flag.
12216         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
12217         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
12218         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
12219         (struct cpp_reader):  ... and adding saved_line_base field.
12220         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
12221         Update accordingly.  Don't adjust line.
12222         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
12223         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
12224         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
12225         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
12226         * cpplex.c (_cpp_lex_direct):  Likewise.
12227         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
12228         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
12229         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
12230         Remove col field as it is now subsumed by src_loc.
12231         * cpperror.c:  Update various field, parameter, and macro names.
12232         (print_location):  If col==0, try SOURCE_COLUMN of line.
12233         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
12234         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
12235         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
12236         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
12237         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
12238         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
12239         (_cpp_lex_direct):  Use linemap_position_for_column.
12240         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
12241         parameter.  Instead get it from the line_table global.  Adjust callers.
12242         (print):  Remove map field.  Replace line field to src_line.
12243         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
12244         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
12245         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
12246         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
12247         * cpptrad.c (copy_comment):  Rename variable.
12248         * c-lex.c (map):  Remove static variable, for same reason we removed
12249         cpp_reader's map field.
12250         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
12251         to call linemap_lookup.
12252         (cb_line_change):  Token's line field replaced by src_loc.
12253         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
12254         Don't save new_map.
12255
12256         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
12257         source_location.
12258
12259 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12260
12261         * config/rs6000/altivec.md (*movv4si_internal): At least one
12262         operand must be register_operand.
12263         (*movv8hi_internal1): Likewise.
12264         (*movv16qi_internal1): Likewise.
12265         (*movv4sf_internal1): Likewise.
12266
12267 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
12268
12269         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
12270         operand.
12271         (movv4hi_internal): Same.
12272         (movv2sf_internal): Same.
12273         (movv1di_internal): Same.
12274
12275 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
12276
12277         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
12278         TARGET_OLDABI consistently.
12279         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
12280         mips_va_arg,override_options,compute_frame_size,
12281         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
12282         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
12283         and TARGET_OLDABI consistently.
12284         * config/mips/mips.md (exception_receiver): Likewise.
12285         * config/mips/linux64.h: Likewise.
12286
12287 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
12288
12289         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
12290         Set AltiVec ABI and vrsave as default for ppc64 linux.
12291         (init_cumulative_args): Post error, if try to return
12292         value in AltiVec register without enable AltiVec.
12293         (function_arg_advance): Ditto for passing arguments.
12294
12295 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
12296
12297         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
12298         a label before updating its usage count.
12299
12300 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
12301
12302         * doc/install.texi: Remove extra cd.
12303
12304 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
12305
12306         * c-common.c (vector_size_helper): Remove; call
12307         reconstruct_complex_type() instead.
12308         * tree.c (reconstruct_complex_type): New function
12309         (formerly vector_size_helper() in c-common.c).
12310         (make_vector): Make externally visible.
12311         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
12312
12313 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12314
12315         * config/h8300/h8300-protos.h: Add a prototype for
12316         h8300_regs_ok_for_stm.
12317         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
12318         * config/h8300/h8300.md (stm_h8300s_2_advanced,
12319         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
12320         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
12321         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
12322         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
12323         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
12324         ldm_h8300s_4_normal, ldm_h8300s_4): Use
12325         h8300_regs_ok_for_stm().
12326
12327 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
12328
12329         PR c/14088
12330         * real.c (real_from_string): Look for 'X' as well as 'x' in
12331         hexfloat strings.
12332
12333 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
12334
12335         * config/h8300/h8300.md: Remove an incorrect comment about
12336         peephole2.  Add comments.
12337
12338 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
12339
12340         PR/14058
12341         * emit-rtl.c (set_decl_incoming_rtl): New.
12342         * tree.h (set_decl_incoming_rtl): New.
12343         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
12344         DECL_INCOMING_RTL.
12345         * ada/misc.c (adjust_decl_rtl): Likewise.
12346
12347 2004-02-10  Per Bothner  <per@bothner.com>
12348
12349         * c-opts.c (c_common_post_options):   Don't emit working directory
12350         in cpp output if -P was specified.
12351
12352 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12353
12354         PR c/14092
12355         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
12356         negate_expr back to the original type.
12357
12358 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
12359
12360         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
12361         bump retaddr here.
12362
12363 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
12364
12365         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
12366         gen_lowpart_SUBREG): Move under the file in which they
12367         are actually declared.
12368
12369 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
12370
12371         * doc/sourcebuild.texi: Add libada documentation.
12372
12373         * doc/install.texi: Update documentation on Ada build, now
12374         that the GNAT lib and tools are built automatically.
12375
12376 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
12377
12378         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
12379         && TARGET_IRIX.
12380
12381 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
12382
12383         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
12384         boundaries outside build_component_ref() call (a macro in ObjC++).
12385
12386 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
12387
12388         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
12389         (init_cumulative_args): Likewise.
12390         (a7_overlap_mentioned_p): Delete prototype.
12391         * config/xtensa/xtensa.c (struct machine_function): Replace
12392         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
12393         Add set_frame_ptr_insn field.
12394         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
12395         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
12396         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
12397         at the function entry and replace the operand with the pseudo.
12398         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
12399         argument and record this flag in CUMULATIVE_ARGS.
12400         (function_arg): Remove result_mode and special-case code to handle
12401         arguments in a7.  Instead, set need_a7_copy flag when there is an
12402         incoming argument in a7.
12403         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
12404         and use the value recorded in cfun->machine->set_frame_ptr_insn.
12405         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
12406         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
12407         special-case code.
12408         (a7_overlap_mentioned_p): Delete.
12409         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
12410         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
12411         arguments to init_cumulative_args and pass "incoming" flag instead.
12412         (BLOCK_REG_PADDING): Delete.
12413         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
12414         checks for reload_in_progress and reload_completed.  Update calls to
12415         xtensa_copy_incoming_a7.
12416         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
12417         to call xtensa_copy_incoming_a7.
12418
12419 2004-02-09  DJ Delorie  <dj@redhat.com>
12420
12421         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
12422         longer modify standard_exec_prefix, standard_bindir_prefix, or
12423         standard_startfile_prefix.
12424
12425 2004-02-09  James E Wilson  <wilson@specifixinc.com>
12426
12427         PR c++/11295
12428         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
12429         to expand_expr_real call, and pass in alt_rtl as last argument.
12430
12431         PR libstdc++/5625
12432         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
12433         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
12434         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
12435         * except.c (expand_builtin_extend_pointer): New.
12436         * except.h (expand_builtin_extend_pointer): Declare.
12437
12438 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
12439
12440         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
12441         unaligned loads and stores.
12442
12443 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12444
12445         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
12446         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
12447
12448         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
12449         * config/mips/iris5.h: ... here.
12450         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
12451
12452         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
12453         * config/mips/iris5.h: ... here.
12454
12455 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
12456
12457         * configure.ac: Remove default executable files before AC_PROG_CC.
12458         * configure: Regenerate.
12459
12460 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
12461
12462         PR target/13721
12463         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
12464         print a operand other than a register.
12465
12466 2004-02-09  Roger Sayle  <roger@eyesopen.com>
12467
12468         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
12469         tree code rather than call fold_convert, which doesn't specify a
12470         default floating point to integer conversion.
12471
12472 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
12473
12474         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
12475         code to support SGS assembler.  Reformat adjacent code where possible.
12476         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
12477         definition.
12478         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
12479         for '%#'.
12480         * config/m68k/linux.h, config/m68k/m68k.c,
12481         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
12482         macros and asm_printf() format strings.
12483         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
12484         * config/m68k/linux.h: Update copyright.
12485         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
12486
12487 2004-02-08  Andreas Schwab  <schwab@suse.de>
12488             Bernardo Innocenti  <bernie@develer.com>
12489
12490         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
12491         REGISTER_PREFIX.
12492         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
12493         frame pointer register, overridable by OS targets.
12494         * (M68K_REGNAME): Macro to obtain register name for asm output,
12495         eventually replacing %a6 with M68K_FP_REG_NAME.
12496         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
12497         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
12498         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
12499         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
12500         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
12501
12502 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12503
12504         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
12505         hook_rtx_tree_int_null.
12506         * targhooks.c (default_struct_value_rtx): Remove.
12507         * targhooks.h: Remove the prototype for
12508         default_struct_value_rtx.
12509         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
12510         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
12511         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
12512         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
12513         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
12514         config/rs6000/rs6000.c, config/s390/s390.c,
12515         config/stormy16/stormy16.c, config/v850/v850.c,
12516         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
12517         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
12518
12519 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
12520
12521         * README.Portability: Change "ISO C89" to "ISO C90".
12522         * c-parse.in (primary, initelt): Likewise.
12523
12524 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
12525
12526         * real.c (encode_ibm_extended): Normalize the input value before
12527         converting it to a double.  Handle the case where a normal value
12528         rounds to infinity.
12529
12530 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
12531
12532         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
12533         warning.
12534         * cse.c (preferrable): Change to preferable. Update all of its
12535         callers.
12536         * genautomata.c (ainsn): Change
12537         first_ainsn_with_given_equialence_num to
12538         first_ainsn_with_given_equivalence_num.  Update all of its
12539         references.
12540
12541 2004-02-08  Jan Hubicka  <jh@suse.cz>
12542
12543         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
12544
12545 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
12546
12547         * function.c (assign_parms): Fix formatting.
12548
12549 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12550
12551         * default.h (PROMOTE_PROTOTYPES): Remove.
12552         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
12553         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
12554         EXPAND_BUILTIN_SAVEREGS): Poison.
12555         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
12556         hook_bool_tree_false.
12557         (TARGET_PROMOTE_PROTOTYPES): Likewise.
12558         * target.h: Replace SETUP_INCOMING_VARARGS with
12559         targetm.calls.setup_incoming_varargs().
12560         * targhooks.c (default_promote_function_return): Remove.
12561         (default_promote_prototypes): Likewise.
12562         (default_struct_value_rtx): Always abort().
12563         (default_expand_builtin_saveregs): Always print an error
12564         message.
12565         (default_setup_incoming_varargs): Do nothing.
12566         (default_pretend_outgoing_varargs_named): Don't depend on
12567         SETUP_INCOMING_VARARGS.
12568         * targhooks.h: Remove the prototype for
12569         default_promote_function_return and
12570         default_promote_prototypes.
12571
12572 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12573
12574         * system.h (SHARED_SECTION_ASM_OP): Poison.
12575         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
12576         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
12577
12578 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12579
12580         Bug 13856
12581         * c-decl.c (diagnose_mismatched_decls): Only give special
12582         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
12583         is also true.
12584         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
12585         DECL_FUNCTION_CODE when defining a built-in function.
12586         Don't update DECL_ESTIMATED_INSNS.
12587         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
12588         FUNCTION_DECLs.
12589         * tree.h: Delete DECL_ESTIMATED_INSNS.
12590         * tree-inline.c (struct inline_data): Delete inlined_insns field.
12591         (expand_call_inline, optimize_inline_calls): Don't update
12592         DECL_ESTIMATED_INSNS nor inlined_insns.
12593         * cgraphunit.c (cgraph_analyze_function): Don't update
12594         DECL_ESTIMATED_INSNS.
12595
12596 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
12597
12598         * c-common.c (shadow_warning): Delete.
12599         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
12600         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
12601         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
12602         * c-parse.in (free_parser_stacks): Delete.
12603
12604 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
12605
12606         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
12607         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
12608         Use the top level mkinstalldirs, not the one in the gcc subdir.
12609         * mkinstalldirs: Remove (from the gcc subdir).
12610
12611 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12612
12613         PR middle-end/13696
12614         * fold-const.c (fold_convert): New function to provide type
12615         conversion to the middle-end without using convert.
12616         (negate_expr, associate_trees, size_diffop, omit_one_operand,
12617         operand_equal_for_comparison_p, pedantic_omit_one_operand,
12618         invert_truthvalue, optimize_bit_field_compare, range_binop,
12619         decode_field_reference, make_range, build_range_check, unextend,
12620         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
12621         fold_binary_op_with_conditional_arg, fold_inf_compare,
12622         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
12623         convert with calls to fold_convert.
12624
12625 2004-02-07  Jan Hubicka  <jh@suse.cz>
12626
12627         * genrecog.c (find_operand): add extra argument stop.
12628         (validate_pattern): Verify that mach_dup is duplicating operand
12629         defined lexically earlier.
12630
12631 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12632
12633         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
12634         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12635         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
12636         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
12637         config/ia64/ia64.h, config/ip2k/ip2k.h,
12638         config/iq2000/iq2000.h, config/mips/iris5.h,
12639         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
12640         config/rs6000/aix51.h, config/rs6000/aix52.h,
12641         config/rs6000/darwin.h, config/rs6000/rs6000.h,
12642         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
12643         config/sparc/linux.h, config/sparc/linux64.h,
12644         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
12645         config/xtensa/xtensa.h: Remove the definitions of
12646         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
12647         MAX_WCHAR_TYPE_SIZE.
12648         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
12649         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
12650
12651 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
12652
12653         PR bootstrap/13990
12654         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
12655         gen_rtx_NE.
12656
12657 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
12658
12659         * var-tracking.c (vt_add_function_parameters): Surround checkings by
12660         #ifdef ENABLE_CHECKING and #endif.
12661
12662 2004-02-07  Roger Sayle  <roger@eyesopen.com>
12663
12664         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
12665         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
12666         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
12667         integer types and floating point with unsafe_math_optimizations.
12668         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
12669         Optimize A - B as A + (-B), if B is easily negated.
12670
12671 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12672
12673         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
12674         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
12675         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
12676         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
12677         Update copyright.
12678
12679 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
12680
12681         * c-ppoutput.c, var-tracking.c: Fix comment typos.
12682
12683 2004-02-06  James E Wilson  <wilson@specifixinc.com>
12684
12685         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
12686         glibc 2.3 or better.
12687
12688 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12689
12690         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
12691         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
12692
12693 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
12694
12695         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
12696         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
12697         (SHLIB_MKMAP_OPTS): Delete.
12698         (TARGET_LIBGCC2_CFLAGS): Add -specs.
12699         (bispecs): Add rule.
12700         * config/rs6000/libgcc-ppc64.ver: New file.
12701         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
12702         (__floatdidf, __floatdisf): Optimize multiply.
12703         (__fixunstfdi): New function.
12704         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
12705         real and imag parts larger than one register.
12706         (function_arg): Correct type of reg used when fp arg split partially
12707         to stack.
12708         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
12709         and __MACH__ or __powerpc64__.
12710
12711 2004-02-06  Roger Sayle  <roger@eyesopen.com>
12712             Ulrich Weigand  <uweigand@de.ibm.com>
12713
12714         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
12715         of gen_highpart or gen_lowpart when the floating point format is
12716         wider than the result mode.
12717
12718 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
12719
12720         * dwarf2out.c (loclabel_num): Move into #ifdef
12721         DWARF2_DEBUGGING_INFO.
12722
12723 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
12724
12725         * objc/objc-act.c (build_super_template) the 'class' field of
12726         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
12727         (get_super_receiver): Likewise.
12728
12729 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12730
12731         * reload1.c (check_eliminable_occurrences): Optimize the reset
12732         of can_eliminate.
12733         (eliminate_regs_in_insn): Likewise.
12734
12735 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
12736             Josef Zlomek  <zlomekj@suse.cz>
12737
12738         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
12739         at the beginning of function, call dwarf2out_var_location for
12740         NOTE_INSN_VAR_LOCATION note.
12741         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
12742         decl_loc_table): New.
12743         (lookup_decl_loc): New function.
12744         (add_var_loc_to_decl): New function.
12745         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
12746         only if can_use_fbreg.
12747         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
12748         functions.
12749         (loc_descriptor): Likewise. Process VAR_LOCATION.
12750         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
12751         (loc_descriptor_from_tree): Call mem_loc_descriptor with
12752         can_use_fbreg == true.
12753         (add_location_or_const_value_attribute): Added parameter enum
12754         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
12755         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
12756         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
12757         with attr == DW_AT_location.
12758         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
12759         if frame_base_decl is defined and has a location list.
12760         (gen_variable_die): Call add_location_or_const_value_attribute with
12761         attr == DW_AT_location.
12762         (dwarf2out_var_location): New function.
12763         (dwarf2out_begin_function): New function.
12764         (dwarf2out_init): Create decl_loc_table.
12765
12766 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12767
12768         * loop.c (force_movables): Transitively increase the priorities of
12769         all insns forces by an insn, not just the first one.
12770
12771 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
12772             Daniel Berlin <dberlin@dberlin.org>
12773
12774         Josef Zlomek  <zlomekj@suse.cz>
12775         * Makefile.in (var-tracking.o): New.
12776         * common.opt (fvar-tracking): New.
12777         * flags.h (flag_var_tracking): New.
12778         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
12779         * opts.c (common_handle_option): Add OPT_fvar_tracking.
12780         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
12781         * rtl.c (note_insn_name): Likewise.
12782         * rtl.def (VAR_LOCATION): New.
12783         * rtl.h (NOTE_VAR_LOCATION): New.
12784         (NOTE_VAR_LOCATION_DECL): New.
12785         (NOTE_VAR_LOCATION_LOC): New.
12786         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
12787         (variable_tracking_main): New exported function.
12788         * timevar.def (TV_VAR_TRACKING): New.
12789         * toplev.c (enum dump_file_index): Added DFI_vartrack.
12790         (dump_file): "vartrack" was added (-dV).
12791         (flag_var_tracking): New.
12792         (f_options): "var-tracking" was added.
12793         (rest_of_handle_variable_tracking): New function.
12794         (rest_of_compilation): Run variable tracking.
12795         (process_options): If user has not specified flag_var_tracking set it
12796         according to optimize, debug_info_level and debug_hooks.
12797         * tree.h (frame_base_decl): New.
12798         * var-tracking.c: New file.
12799         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
12800         (ia64_override_options): Set flags to run variable tracking in machine
12801         dependent reorg instead of toplev.c.
12802         (ia64_reorg): Run variable tracking if wanted.
12803         * doc/invoke.texi: Mention variable tracking in -dV,
12804         add and -fvar-tracking.
12805         * doc/passes.texi: Added variable tracking pass.
12806
12807         Daniel Berlin <dberlin@dberlin.org>
12808         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
12809         * dbxout.c (dbx_debug_hooks): Likewise.
12810         (xcoff_debug): Likewise.
12811         * debug.c (do_nothing_debug_hooks): Likewise.
12812         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
12813         * dwarfout.c (dwarf_debug_hooks): Likewise.
12814         * sdbout.c (sdb_debug_hooks): Likewise.
12815         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
12816         * final.c (final_scan_insn): Call var_location debug hook for each
12817         NOTE_INSN_VAR_LOCATION.
12818
12819 2004-02-06  Jan Hubicka  <jh@suse.cz>
12820
12821         * flow.c (update_life_info): Allocate reg_deaths when called from
12822         scheudler.
12823         (attempt_auto_inc):  Update life ranges accordingly.
12824
12825 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12826
12827         PR debug/11816
12828         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
12829
12830 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
12831
12832         * cfganal.c (flow_call_edges_add): Never split a libcall block.
12833
12834 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
12835
12836         * dwarf2out.c (output_loc_list): Don't use deltas if we have
12837         a separate line info table in use.
12838         Use the correct size for terminators.
12839         (output_die): Use offset, not delta.
12840
12841 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
12842
12843         * doc/invoke.texi: Remove the pni option from -mfpmath=.
12844
12845 2004-02-06  Jan Hubicka  <jh@suse.cz>
12846
12847         * recog.c (split_all_insns): Do not update reg info.
12848         * regrename.c (regrename_optimize): Likewise.
12849         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
12850         * flow.c (struct propagate_block_info): Add insn_num field.
12851         (reg_deaths): New array.
12852         (life_analysis): Free reg_deaths info.
12853         (allocate_reg_life_data): Allocate reg_deaths array.
12854         (propagate_one_insn): Use new array.
12855         (init_propagate_block): Initialize it.
12856         (free_propagate_block_info): Finish compuation of
12857         REG_LIVE_LENGTH
12858         (attempt_auto_inc): Sanity check that REG_INFO is not
12859         computed at same time.
12860         (mark_used_regs): Update new array.
12861
12862         * reg-stack.c (subst_stack_regs): Unshare clobbers before
12863         substitution.
12864
12865 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12866
12867         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
12868         *extendqisi2_short_displ.
12869
12870 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
12871
12872         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
12873         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
12874         (emit_library_call_value_1): Likewise pass nargs.
12875         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
12876         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
12877         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
12878         parameter instead of scanning TYPE_ARGS_TYPES to count args.
12879         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
12880         prototype.
12881         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
12882         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
12883         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
12884         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
12885         INIT_CUMULATIVE_ARGS.
12886         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
12887         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
12888         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
12889         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
12890         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
12891         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
12892         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
12893         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
12894         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
12895         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
12896         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
12897         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
12898
12899 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12900
12901         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
12902         possible.
12903
12904 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12905
12906         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
12907         note containing (plus (reg) (const_int)), where reg is an
12908         eliminable reg, then perform the register elimination without
12909         depending on eliminate_regs().
12910
12911 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12912
12913         * config/arc/arc.c (arc_return_in_memory): Check the return
12914         value of int_size_in_bytes against -1.  Don't check
12915         TREE_ADDRESSABLE.
12916         * config/avr/avr.c (avr_return_in_memory): Check the return
12917         value of int_size_in_bytes against -1.
12918         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
12919         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
12920         Likewise.
12921         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
12922         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
12923         Likewise.
12924
12925 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12926
12927         * config/frv/frv-protos.h: Remove the prototype for
12928         frv_setup_incoming_varargs.
12929         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
12930         (frv_setup_incoming_varargs): Make it static.
12931         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
12932
12933 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12934
12935         * config/fr30/fr30-protos.h: Remove the prototype for
12936         fr30_setup_incoming_varargs.
12937         Update the prototypes for fr30_num_arg_regs and
12938         fr30_function_arg_partial_nregs.
12939         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
12940         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12941         (fr30_setup_incoming_varargs): Make it static.
12942         Add argument second_time.  Don't do anything when second_time
12943         is nonzero.
12944         (fr30_num_arg_regs): Change the type of the first argument to
12945         enum machine_mode.
12946         (fr30_function_arg_partial_nregs): Change the type of the
12947         second argument to enum machine_mode.
12948         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
12949         (SETUP_INCOMING_VARARGS): Remove.
12950
12951 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
12952
12953         * config/arc/arc-protos.h: Remove the prototype for
12954         arc_setup_incoming_varargs.
12955         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
12956         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
12957         (arc_setup_incoming_varargs): Make it static.
12958         (arc_external_libcall): Likewise.
12959         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
12960         Remove the commented-out definition of
12961         ASM_OUTPUT_EXTERNAL_LIBCALL.
12962
12963 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
12964
12965         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
12966         to $$(slibdir) in the installation commands.
12967
12968 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
12969
12970         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
12971         with inner_regno, not regno.
12972         * rtlanal.c (refers_to_regno_p): Same.
12973
12974 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
12975
12976         * config.gcc: Remove i370 support.
12977
12978 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12979
12980         * doc/install.texi:  Update automake and autoconf version
12981         requirements.  Note where to find gcj automake version.
12982
12983 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12984
12985         * Makefile.in (generate-manpages): Move dependencies to ...
12986         (man): here.
12987         * doc/makefile.texi: Document new targets.
12988         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
12989
12990 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
12991
12992         PR/13485
12993         Makefile.in (srcextra):  Add a level of indirection to ...
12994         (gcc.srcextra): ... here.
12995         (po-generated): Delete.
12996         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
12997         options.c.
12998         (start.encap): Remove superfluous lang.srcextra dependency.
12999         objc/Make-lang.in (po-generated):  Delete.
13000
13001 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13002
13003         * config/ia64/ia64.c (REG_GP): Remove.
13004
13005 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13006
13007         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
13008
13009 2004-02-05  Devang Patel  <dpatel@apple.com>
13010
13011         * dwarf2out.c (force_type_die): Look up input type itself
13012         instead of root_type() of type.
13013
13014 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
13015
13016         * config/s390/s390.md ("*tmqidi_ext"): New insn.
13017         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
13018         pre-reload splitters are transformed to post-reload
13019         define_insn_and_split patterns.
13020         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
13021
13022 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13023
13024         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
13025         TARGET_PROMOTE_PROTOTYPES.
13026
13027 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13028
13029         PR middle-end/13750
13030         Revert:
13031         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
13032         PR pch/13361
13033         * c-typeck.c (constructor_asmspec): Delete.
13034         (struct initializer_stack): Delete field 'asmspec'.
13035         (start_init): Delete saving of asmspec.
13036         (finish_init): Don't update constructor_asmspec.
13037         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
13038         * stmt.c (expand_asm): Duplicate strings from tree.
13039         (expand_asm_operands): Likewise.
13040         * tree.c (tree_size): Update computation of size of STRING_CST.
13041         (make_node): Don't make STRING_CST nodes.
13042         (build_string): Allocate string with tree node.
13043         * tree.def (STRING_CST): Update comment.
13044         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
13045         (tree_string): Place contents of string in tree node.
13046         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
13047         from tree.
13048
13049 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13050
13051         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
13052         msgid.
13053
13054 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
13055
13056         * config/rs6000/altivec.md (*movv4si_internal): At least one
13057         operand must be altivec_register_operand.
13058         (*movv8hi_internal1): Likewise.
13059         (*movv16qi_internal1): Likewise.
13060         (*movv4sf_internal1): Likewise.
13061
13062 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
13063
13064         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
13065         * configure: Regenerate.
13066
13067 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
13068
13069         * doc/install.texi: Update description of --gxx-include-dir to
13070         give correct default value.
13071
13072 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13073
13074         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
13075         8 with MAC_REG.
13076
13077 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13078
13079         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
13080         gen_rtx_PARALLEL.
13081
13082 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
13083
13084         * emit-rtl.c: Update the comment about the file.
13085
13086 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
13087
13088         * sourcebuild.texi (Test Idioms): Update testcase naming
13089         conventions.
13090
13091 2004-02-04  Per Bothner  <per@bothner.com>
13092
13093         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
13094         * c-ppoutput.c (pp_dir_change):  New function.
13095         * c-common.h (pp_dir_change):  New declaration.
13096         * cpplib.h (struct cpp_options):  Remove working_directory field.
13097         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
13098         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
13099         Don't handle -fworking_directory here, but in c_common_post_options.
13100         (read_original_directory): Don't back up when done.
13101         Don't clear no-longer used working_directory flag.
13102         * cpplib.h:  Update declarations to match.
13103         * c-lex.c (cb_dir_change):  Move to c-opts.c.
13104         (init_c_lex):  Don't set dir_change callback here, since we want
13105         to set it even if flag_preprocess_only.
13106         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
13107         (c_common_post_options):  Set dir_change callback.
13108         Call pp_dir_change if approporiate.
13109         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
13110         unneeded parameter and result. Do LC_RENAME for <built-in>.
13111         (c_common_post_options):  Call cpp_read_main_file here instead.
13112         (c_common_init):  Update accordingly.
13113         (push_command_line_include):  Don't cpp_push_main_file.
13114         Do LC_RENAME rather than LC_LEASE to get back to main file.
13115         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
13116         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
13117         files, but call finish_options for all files.
13118         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
13119         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
13120         cpp_find_main_file + cpp_push_main_file.
13121         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
13122         * opts.c (handle_options):  Only set main_input_filename first time.
13123
13124 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
13125
13126         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
13127
13128 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
13129
13130         * reload.c (find_equiv_reg): When checking for register overlap,
13131         don't index hard_regno_nregs with a pseudo-reg.
13132
13133 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13134
13135         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
13136
13137 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
13138
13139         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
13140         against FIRST_PSEUDO_REGISTER.
13141
13142 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13143
13144         * Makefile.in: Move target, host overrides after per-language
13145         fragments.
13146
13147         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
13148         (GNATLIBCFLAGS): Remove -g.
13149
13150 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13151
13152         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
13153         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13154         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13155         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
13156         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
13157         config/sparc/sparc.c, config/vax/vax.c: Revert the
13158         replacements of "FALLTHRU" with "Fall through" done in the
13159         previous patch.
13160
13161 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13162
13163         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
13164         config/arm/arm.c, config/arm/arm.md,
13165         config/cris/cris-protos.h, config/fr30/fr30.c,
13166         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
13167         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
13168         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
13169         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
13170         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
13171         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
13172         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
13173         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
13174         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
13175         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
13176         config/s390/s390.md, config/sparc/netbsd-elf.h,
13177         config/sparc/openbsd.h, config/sparc/sparc.c,
13178         config/xtensa/lib2funcs.S: Fix comment formatting.
13179
13180 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13181
13182         * config/alpha/alpha.c, config/arc/arc.c,
13183         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
13184         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
13185         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
13186         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
13187         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
13188         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
13189         config/iq2000/iq2000.c, config/m32r/m32r.c,
13190         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
13191         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
13192         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
13193         config/rs6000/rs6000.h, config/sparc/sparc.c,
13194         config/vax/vax.c: Fix comment typos.  Follow spelling
13195         conventions.
13196
13197 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13198
13199         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
13200         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
13201         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
13202         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
13203         config/arm/fpa.md, config/arm/iwmmxt.md,
13204         config/arm/netbsd-elf.h, config/arm/netbsd.h,
13205         config/m68hc11/m68hc11.md, config/mips/iris5.h,
13206         config/mn10300/mn10300.md, config/rs6000/altivec.md,
13207         config/sparc/netbsd-elf.h: Update copyright.
13208
13209 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
13210
13211         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
13212         for all modes whose size is greater than 8 bytes if ARCH32.
13213         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
13214         by reference if ARCH32.
13215
13216 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
13217
13218         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
13219
13220 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
13221
13222         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
13223         to before adddi3 insn patterns.
13224         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
13225         "reload_insi"): Move to before addsi3 insn patterns.
13226
13227 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
13228
13229         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
13230         parameter.  Use it instead of current_function_is_thunk.
13231         * function.h (struct function): Update documentation for is_thunk.
13232         * tree.h (CALL_FROM_THUNK_P): New macro.
13233         * config/alpha/alpha.c (alpha_sa_mask): Do not check
13234         no_new_pseudos when testing current_function_is_thunk.
13235         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
13236
13237 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13238
13239         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
13240         TARGET_SETUP_INCOMING_VARARGS.
13241
13242 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13243
13244         * emit-rtl.c (gen_rtx): Remove.
13245         * genattrtab.c: Don't mention gen_rtx in a comment.
13246         * rtl.h: Remove the prototype for gen_rtx.
13247         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
13248
13249 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13250
13251         * config/arc/arc.h, config/fr30/fr30.h
13252         (SETUP_INCOMING_VARARGS): Remove the target-independent
13253         comments.
13254         * doc/tm.texi: Don't mention deprecated target macros.
13255
13256 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13257
13258         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
13259         target-independent comment.
13260
13261 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13262
13263         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
13264         mention deprecated target macros.
13265
13266 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
13267
13268         * config.gcc: Remove obsolete ports and configurations.
13269         * config/linux-aout.h, config/netware.h,
13270         config/t-linux-gnulibc1, config/d30v/abi,
13271         config/d30v/d30v-protos.h, config/d30v/d30v.c,
13272         config/d30v/d30v.h, config/d30v/d30v.md,
13273         config/d30v/libgcc1.asm, config/d30v/t-d30v,
13274         config/dsp16xx/dsp16xx-modes.def,
13275         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
13276         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
13277         config/i370/README, config/i370/i370-c.c,
13278         config/i370/i370-protos.h, config/i370/i370.c,
13279         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
13280         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
13281         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
13282         config/i386/moss.h, config/i386/netware.h,
13283         config/i386/svr3.ifile, config/i386/svr3dbx.h,
13284         config/i386/svr3gas.h, config/i386/svr3z.ifile,
13285         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
13286         config/i960/i960-c.c, config/i960/i960-coff.h,
13287         config/i960/i960-modes.def, config/i960/i960-protos.h,
13288         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
13289         config/i960/rtems.h, config/i960/t-960bare,
13290         config/m68k/hp310.h, config/m68k/hp320.h,
13291         config/m68k/hp320base.h, config/m68k/m68kv4.h,
13292         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
13293         Remove.
13294         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
13295         doc/md.texi: Remove mentions of obsolete ports.
13296
13297 2004-02-04  Jan Hubicka  <jh@suse.cz>
13298
13299         * alias.c (find_base_term, get_addr):  Do not dereference NULL
13300         pointer when all VALUE's locations has been invalidated.
13301         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
13302
13303 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
13304
13305         * doc/invoke.texi (x86 options): Fix spelling/wording.
13306
13307 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
13308
13309         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
13310         put the original string in a comment.
13311         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
13312         * config/mips/mips.c (mips_output_ascii): Likewise.
13313         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
13314
13315 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13316
13317         * system.h (GIV_SORT_CRITERION): Poison.
13318         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
13319         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
13320
13321 2004-02-03  Roger Sayle  <roger@eyesopen.com>
13322
13323         PR target/9348
13324         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
13325         multiplies with a multiplication of the wrong signedness, its the
13326         signedness of the multiplication that we've performed that needs to
13327         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
13328         if expand_mult_highpart_adjust places the result in target.
13329
13330 2004-02-03  Richard Henderson  <rth@redhat.com>
13331
13332         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
13333
13334 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
13335
13336         * config.gcc (sh[234]l): Use little endian fragments.
13337
13338 2004-02-03  Paul Koning  <pkoning@equallogic.com>
13339
13340         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
13341         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
13342         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
13343         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
13344         floating point format.
13345         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
13346         the above functions.
13347         (output_move_quad): Output float values in correct target format.
13348         (legitimate_const_double_p): New function.
13349         * config/pdp11/pdp11.h: Fix typos.
13350         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
13351         (TARGET_FLOAT_FORMAT): Ditto.
13352         (pdp11_f_format, pdp11_d_format): Add external declarations.
13353         (MAX_REGS_PER_ADDRESS): Corrected.
13354         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
13355         (PRINT_OPERAND): Output float literals in target format.
13356
13357 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
13358
13359         PR c++/13975
13360         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
13361         TI_PRIVATE.
13362         (access_public_node): Redefine.
13363         (access_protected_node): Likewise.
13364         (access_private_node): Likewise.
13365         * tree.c (build_common_tree_nodes): Create access_public_node,
13366         access_protected_node, and access_private_node.
13367
13368 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
13369
13370         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
13371         (MASK_INLINE_INT_DIV_THR): Ditto.
13372         (MASK_INLINE_SQRT_LAT): Ditto.
13373         (MASK_INLINE_SQRT_THR): Ditto.
13374         (MASK_DWARF2_ASM): Ditto.
13375         (MASK_EARLY_STOP_BITS): Ditto.
13376
13377 2004-02-02  Paul Brook  <paul@codesourcery.com>
13378
13379         Merge from csl-arm-branch.
13380
13381         2004-01-30  Paul Brook  <paul@codesourcery.com>
13382
13383         * aof.h (REGISTER_NAMES): Add vfp reg names
13384         (ADDITIONAL_REGISTER_NAMES): Ditto.
13385         * aout.h (REGISTER_NAMES): Ditto.
13386         (ADDITIONAL_REGISTER_NAMES): Ditto.
13387         * arm-protos.h: Update/Add Prototypes.
13388         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
13389         Only allow 0.0 for VFP.
13390         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
13391         (values_fp): Rename from values_fpa.  Update Users.
13392         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
13393         Update users.  Only check valid constants for this hardware.
13394         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
13395         Only allow consts for FPA.
13396         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
13397         Only allow consts for FPA.
13398         (use_return_insn): Check for saved VFP regs.
13399         (arm_legitimate_address_p): Handle VFP DFmode addressing.
13400         (arm_legitimize_address): Ditto.
13401         (arm_general_register_operand): New function.
13402         (vfp_mem_operand): New function.
13403         (vfp_compare_operand): New function.
13404         (vfp_secondary_reload_class): New function.
13405         (arm_float_compare_operand): New function.
13406         (vfp_print_multi): New function.
13407         (vfp_output_fstmx): New function.
13408         (vfp_emit_fstm): New function.
13409         (arm_output_epilogue): Output VPF reg restore code.
13410         (arm_expand_prologue): Output VFP reg save code.
13411         (arm_print_operand): Add 'P'.
13412         (arm_hard_regno_mode_ok): Return modes for VFP regs.
13413         (arm_regno_class): Return classes for VFP regs.
13414         (arm_compute_initial_elimination_offset): Include space for VFP regs.
13415         (arm_get_frame_size): Ditto.
13416         * arm.h (FIXED_REGISTERS): Add VFP regs.
13417         (CALL_USED_REGISTERS): Ditto.
13418         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
13419         (FIRST_VFP_REGNUM): Define.
13420         (LAST_VFP_REGNUM): Define.
13421         (IS_VFP_REGNUM): Define.
13422         (FIRST_PSEUDO_REGISTER): Include VFP regs.
13423         (HARD_REGNO_NREGS): Handle VFP regs.
13424         (REG_ALLOC_ORDER): Add VFP regs.
13425         (enum reg_class): Add VFP_REGS.
13426         (REG_CLASS_NAMES): Ditto.
13427         (REG_CLASS_CONTENTS): Ditto.
13428         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
13429         (REG_CLASS_FROM_LETTER): Add 'w'.
13430         (EXTRA_CONSTRAINT_ARM): Add 'U'.
13431         (EXTRA_MEMORY_CONSTRAINT): Define.
13432         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
13433         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
13434         (REGISTER_MOVE_COST): Ditto.
13435         (PREDICATE_CODES): Add arm_general_register_operand,
13436         arm_float_compare_operand and vfp_compare_operand.
13437         * arm.md (various): Rename as above.
13438         (divsf3): Enable when TARGET_VFP.
13439         (divdf3): Ditto.
13440         (movdfcc): Ditto.
13441         (sqrtsf2): Ditto.
13442         (sqrtdf2): Ditto.
13443         (arm_movdi): Disable when TARGET_VFP.
13444         (arm_movsi_insn): Ditto.
13445         (movsi): Only split with general regs.
13446         (cmpsf): Use arm_float_compare_operand.
13447         (push_fp_multi): Restrict to TARGET_FPA.
13448         (vfp.md): Include.
13449         * vfp.md: New file.
13450         * fpa.md (various): Rename as above.
13451         * doc/md.texi: Document ARM w and U constraints.
13452
13453         2004-01-15  Paul Brook  <paul@codesourcery.com>
13454
13455         * config.gcc: Add with_fpu.  Allow with-float=softfp.
13456         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
13457         Break out of loop when we find a float-abi.  Fix typo.
13458         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
13459         Set -mfloat-abi=.
13460         * doc/install.texi: Document --with-fpu.
13461
13462         2003-01-14  Paul Brook  <paul@codesourcery.com>
13463
13464         * config.gcc (with_arch): Add armv6.
13465         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
13466         * config/arm/arm.c (arm_overrride_options): Ditto.
13467
13468         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
13469
13470         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
13471         (FL_ARCH6): Renamed from FL_ARCH6J.
13472         (arm_arch3m): Renamed from arm_fast_multiply.
13473         (arm_arch6): Renamed from arm_arch6j.
13474         * arm.h: Update all uses of above.
13475         * arm-cores.def: Likewise.
13476         * arm.md: Likewise.
13477
13478         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
13479         not arm6j.  Add entry for arch armv6.
13480
13481         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
13482
13483         * arm.c (arm_emit_extendsi): Delete.
13484         * arm-protos.h (arm_emit_extendsi): Delete.
13485         * arm.md (zero_extendhisi2): Also handle zero-extension of
13486         non-subregs.
13487         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
13488         (thumb_zero_extendhisi2): Only match if not v6.
13489         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
13490         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
13491         (thumb_extendqisi2): Likewise.
13492         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
13493         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
13494         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
13495         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
13496         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
13497         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
13498         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
13499         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
13500         (arm_extendqisi2addsi): Likewise.
13501
13502         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
13503
13504         Revert this change:
13505         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13506         + REG addressing modes.
13507
13508         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
13509         + REG addressing modes.
13510
13511         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
13512
13513         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
13514         CONSTANT_P_RTX.
13515
13516         2003-30-12  Paul Brook  <paul@codesourcery.com>
13517
13518         * longlong.h: protect arm inlines with !defined (__thumb__)
13519
13520         2003-30-12  Paul Brook  <paul@codesourcery.com>
13521
13522         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
13523
13524         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
13525
13526         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
13527         change.
13528
13529         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13530
13531         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
13532         to the virtual incoming args pointer for downward stacks.
13533
13534         2003-12-29  Paul Brook  <paul@codesourcery.com>
13535
13536         * config/arm/arm-cores.def: Add cost function.
13537         * config/arm/arm.c (arm_*_rtx_costs): New functions.
13538         (arm_rtx_costs): Remove
13539         (struct processors): Add rtx_costs field.
13540         (all_cores, all_architectures): Ditto.
13541         (arm_override_options): Set targetm.rtx_costs.
13542         (thumb_rtx_costs): New function.
13543         (arm_rtx_costs_1): Remove cases handled elsewhere.
13544         * config/arm/arm.h (processor_type): Add COSTS parameter.
13545
13546         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
13547
13548         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
13549         (arm926ejs.md): Include it.
13550         * config/arm/arm926ejs.md: New pipeline description.
13551
13552         2003-12-24  Paul Brook  <paul@codesourcery.com>
13553
13554         * config/arm/arm.c (arm_arch6j): New variable.
13555         (arm_override_options): Set it.
13556         (arm_emit_extendsi): New function.
13557         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
13558         * config/arm/arm.h (arm_arch6j): Declare.
13559         * config/arm/arm.md: Add sign/zero extend insns.
13560
13561         2003-12-23  Paul Brook  <paul@codesourcery.com>
13562
13563         * config/arm/arm.c (all_architectures): Add armv6.
13564         * doc/invoke.texi: Document it.
13565
13566         2003-12-19  Paul Brook  <paul@codesourcery.com>
13567
13568         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
13569         insn patterns to match.
13570         * config/arm/arm-generic.md: Ditto.
13571         * config/arm/cirrus.md: Ditto.
13572         * config/arm/fpa.md: Ditto.
13573         * config/amm/iwmmxt.md: Ditto.
13574         * config/arm/arm1026ejs.md: Ditto.
13575         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
13576         for 11_loadb.
13577
13578         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
13579
13580         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
13581         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
13582         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
13583         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
13584         arm_no_early_mul_dep): Correctly deal with conditional execution,
13585         parallels and single shift operations.
13586         (arm_no_early_alu_shift_value_dep): Define.
13587         * arm.md (attr type): Replace 'normal' with 'alu',
13588         'alu_shift' and 'alu_shift_reg'.
13589         (attr core_cycles): Adjust.
13590         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
13591         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
13592         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
13593         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
13594         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
13595         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
13596         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
13597         attribute appropriately.
13598         * config/arm/arm1026ejs.md (alu_op): Adjust.
13599         (alu_shift_op, alu_shift_reg_op): New.
13600         * config/arm/arm1136.md: Add better bypasses for early
13601         registers. Remove load[234] and store[234] bypasses.
13602         (11_alu_op): Adjust.
13603         (11_alu_shift_op, 11_alu_shift_reg_op): New.
13604
13605         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
13606
13607         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
13608         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
13609         * config/arm/arm.c (arm_no_early_store_addr_dep,
13610         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
13611         * config/arm/arm1026ejs.md: Add load-store bypass.
13612         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
13613         Add bypasses between instructions.
13614
13615         2003-12-10  Paul Brook  <paul@codesourcery.com>
13616
13617         * config/arm/arm.c (arm_fpu_model): New variable.
13618         (arm_fload_abi): New variable.
13619         (target_fpe_name): Rename from target_fp_name.
13620         (target_fpu_name): New variable.
13621         (arm_is_cirrus): Remove.
13622         (fpu_desc): New struct.
13623         (all_fpus): Define.
13624         (pf_model_for_fpu): Define.
13625         (all_loat_abis): Define.
13626         (arm_override_options): Set fp arch flags based on -mfpu=
13627         and -float-abi=.
13628         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13629         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13630         (*): Use new TARGET_* flags.
13631         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
13632         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
13633         (TARGET_SOFT_FLOAT): Ditto.
13634         (TARGET_SOFT_FLOAT_ABI): New.
13635         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
13636         TARGET_HARD_FLOAT.
13637         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
13638         (TARGET_OPTIONS): Add -mfpu=.
13639         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
13640         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
13641         (arm_pf_model): Define.
13642         (arm_float_abi_type): Define.
13643         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
13644         * config/arm/arm.md: Use new TARGET_* flags.
13645         * config/arm/cirrus.md: Ditto.
13646         * config/arm/fpa.md: Ditto.
13647         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
13648         * config/arm/semi.h (ASM_SPEC): Ditto.
13649         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
13650         (FPUTYPE_DEFAULT): Set to VFP.
13651         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
13652
13653         2003-11-22  Phil Edwards  <phil@codesourcery.com>
13654
13655         PR target/12476
13656         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
13657         'bx' instead of 'b' to avoid branch range restrictions.  Output
13658         the thunk immediately before the thunked-to function.
13659         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
13660         .thumb_func if a thunk is being generated.  Emit .code 16 along
13661         with .thumb_func if a thunk is not being generated.
13662
13663         2003-11-15  Nicolas Pitre <nico@cam.org>
13664
13665         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
13666         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
13667         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
13668         (lshrdi3_iwmmxt): Renamed from lshrdi3.
13669         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
13670
13671         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
13672             Ian Lance Taylor  <ian@wasabisystems.com>
13673
13674         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
13675         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
13676
13677         2003-11-05  Phil Edwards  <phil@codesourcery.com>
13678
13679         * config/arm/arm.md (insn):  Add new V6 instruction names.
13680         (generic_sched):  New attr.
13681         * config/arm/arm-generic.md:  Use generic_sched here.
13682         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
13683         stages of pipeline.  Adjust latency counts accordingly.
13684         * config/arm/arm1136jfs.md:  New file.
13685
13686         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
13687
13688         * config/arm/arm.h (processor_type): New enumeration type.
13689         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
13690         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
13691         (CPP_CPU_ARCH_SPEC): Likewise.
13692         * config/arm/arm.c (arm_tune): New variable.
13693         (all_cores): Use cores.def.
13694         (all_architectures): Add representative processor.
13695         (arm_override_options): Restructure way in which tuning
13696         information is deduced.
13697         * arm.md: Update "insn" and "type" attributes throughout.
13698         (insn): New attribute.
13699         (type): Compute "mult" from "insn" attribute.  Add load2,
13700         load3, load4 alternatives.
13701         (arm automaton): Move to arm-generic.md.
13702         * config/arm/arm-cores.def: New file.
13703         * config/arm/arm-generic.md: Likewise.
13704         * config/arm/arm1026ejs.md: Likewise.
13705
13706 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
13707
13708         * doc/invoke.texi (SPARC options): Remove -mflat and
13709         all -mxxx (xxx:chip) options.
13710         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
13711         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
13712         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
13713         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
13714         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
13715         * config/sparc/sparc.c: Likewise.
13716         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
13717         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
13718         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
13719         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
13720         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
13721         (sparc_flat_must_save_register_p): Likewise.
13722         (sparc_flat_compute_frame_size): Likewise.
13723         (sparc_flat_save_restore): Likewise.
13724         (sparc_flat_function_prologue): Likewise.
13725         (sparc_flat_function_epilogue): Likewise.
13726         (sparc_flat_epilogue_delay_slots): Likewise.
13727         (sparc_flat_eligible_for_epilogue_delay): Likewise.
13728         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
13729         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
13730         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
13731         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
13732         (CONDITIONAL_REGISTER_USAGE): Likewise.
13733         (FRAME_POINTER_REQUIRED): Likewise.
13734         (INITIAL_ELIMINATION_OFFSET): Likewise.
13735         (BASE_RETURN_VALUE_REG): Likewise.
13736         (BASE_OUTGOING_VALUE_REG): Likewise.
13737         (BASE_PASSING_ARG_REG): Likewise.
13738         (BASE_INCOMING_ARG_REG): Likewise.
13739         (INCOMING_REGNO): Likewise.
13740         (OUTGOING_REGNO): Likewise.
13741         (LOCAL_REGNO): Likewise.
13742         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
13743         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
13744         (EPILOGUE_USES): Likewise.
13745         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
13746         ("flat" attribute): Delete.
13747         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
13748         handling.
13749         (call followed by jump define_peephole's): Delete.
13750         (exception_receiver): Likewise.
13751         (builtin_setjmp_receiver): Likewise.
13752         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
13753
13754 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
13755
13756         PR c/11658
13757         PR c/13994
13758         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
13759         on langhooks.h.
13760         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
13761         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
13762         Include langhooks.h.  Replace c_common_truthvalue_conversion
13763         with the truthvalue_conversion language hook throughout.
13764         (expr_no_commas): Call default_conversion before save_expr
13765         for the first term of the production 'x ? : y'.
13766         * c-common.c (c_common_truthvalue_conversion): Remove
13767         obsolete block.  Invoke recursively the hook instead
13768         of this function.
13769         * c-convert.c (convert): handle ERROR_MARK_NODE.
13770         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
13771         returned by the truthvalue_conversion language hook.
13772         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13773         c_objc_common_truthvalue_conversion.
13774         * c-objc-common.c (c_objc_common_truthvalue_conversion):
13775         New function.
13776         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
13777         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
13778         c_objc_common_truthvalue_conversion.
13779
13780 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13781
13782         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
13783         of gen_rtx.
13784         (LIBCALL_VALUE): Likewise.
13785         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
13786         gen_rtx_CC0 instead of gen_rtx.
13787         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
13788         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
13789         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
13790         gen_rtx.
13791         (m68hc11_emit_logical): Likewise.
13792
13793 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13794
13795         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
13796         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
13797         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
13798         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
13799         config/mips/mips.md, config/mmix/mmix.c,
13800         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
13801         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
13802         config/rs6000/altivec.md, config/s390/s390.c,
13803         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
13804         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
13805         Use const0_rtx instead of GEN_INT (0).  Do the same for other
13806         constants that are readily available.
13807
13808 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13809
13810         * doloop.c, optabs.c, regmove.c, sched-deps.c,
13811         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
13812         instead of GEN_INT (0).  Do the same for other constants that
13813         are readily available.
13814
13815 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
13816
13817         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
13818         gen_rtx.
13819         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
13820         instead of gen_rtx.
13821         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
13822         gen_rtx.
13823         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
13824         gen_rtx_ASHIFT instead of gen_rtx.
13825         (udivmodqi4): Likewise.
13826
13827 2004-02-02  Richard Henderson  <rth@redhat.com>
13828
13829         PR target/13789
13830         * expr.c (store_expr): Use force_operand before emit_move_insn.
13831
13832 2004-02-02  Jeff Law  <law@redhat.com>
13833             Roger Sayle  <roger@eyesopen.com>
13834
13835         * tree.c (commutative_tree_code, associative_tree_code): New
13836         functions.
13837         (iterative_hash_expr): Use commutative_tree_code.
13838         * tree.h (commutative_tree_code, associative_tree_code): Declare.
13839         * fold-const.c (operand_equal_p): Use commutative_tree_code
13840         rather than inlining the commutativity check.
13841         (fold): Likewise.
13842
13843 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13844
13845         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
13846         * config/frv/frv-protos.h: Remove the prototype for
13847         frv_function_arg_keep_as_reference.
13848         * config/frv/frv.c (frv_function_arg_keep_as_reference):
13849         Remove.
13850         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
13851         * config/stormy16/stormy16.h: Remove the commented-out
13852         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
13853
13854 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
13855
13856         PR target/13914
13857         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
13858         for retaddr_column.
13859
13860 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13861
13862         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
13863         gen_rtx.
13864
13865 2004-02-02  Eric Christopher  <echristo@redhat.com>
13866             Zack Weinberg  <zack@codesourcery.com>
13867
13868         * c-opts.c (c_common_handle_option): Add -finput-charset.
13869         * c.opt: Ditto.
13870         * cppcharset.c (one_iso88591_to_utf8): Remove.
13871         (convert_iso88591_utf8): Ditto.
13872         (conversion_tab): Remove 8859-1 converter.
13873         (_cpp_input_to_utf8): Remove.
13874         (_cpp_init_iconv_buffer): Ditto.
13875         (_cpp_close_iconv_buffer): Ditto.
13876         (_cpp_convert_input): New function.
13877         (_cpp_default_encoding): Ditto.
13878         * cpphash.h: Add/remove prototypes for above.
13879         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
13880         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
13881         for narrow execution and input character sets.
13882         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
13883         * doc/cppopts.texi: Document -finput-charset.
13884
13885 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
13886
13887         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
13888         against FIRST_PSEUDO_REGISTER.
13889
13890 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13891
13892         * doc/invoke.texi (SPARC options): Further improve.
13893
13894 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13895
13896         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
13897         config/h8300/h8300.c, config/ip2k/ip2k.md,
13898         config/iq2000/iq2000.c, config/mips/mips.c,
13899         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
13900         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
13901         config/v850/v850.md: Fix indentation.
13902
13903 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13904
13905         * config/sparc/sparc.c (function_arg_slotno): Align TImode
13906         arguments on a 16-byte boundary in the parameter array if ARCH64.
13907         Split handling of TFmode.
13908
13909 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
13910
13911         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
13912         Don't test CONSTANT_P (x).
13913         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
13914         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
13915         Fix misindentation.
13916
13917 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
13918
13919         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
13920
13921 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
13922
13923         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
13924         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
13925         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
13926         config/iq2000/iq2000.c, config/m32r/m32r.c,
13927         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
13928         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
13929         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
13930         config/stormy16/stormy16.c, config/v850/v850.md,
13931         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
13932
13933 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
13934
13935         * config/mcore/mcore.c (block_move_sequence): Replace
13936         gen_rtx_CONST_INT with GEN_INT.
13937
13938 2004-02-02  Jan Hubicka  <jh@suse.cz>
13939
13940         * alias.c (record_set): Use hard_regno_nregs.
13941         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
13942         * builtins.c (apply_args_size): Likewise.
13943         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
13944         mark_set_regs, add_stored_regs, mark_referenced_regs,
13945         insert_restore, insert_save, insert_one_insn): Likewise.
13946         * cfgcleanup.c: Include regs.h
13947         (mark_effect, mentions_nonequal_regs): Likewise.
13948         * cfgrtl.c (mark_killed_regs): Likewise
13949         * combine.c (update_table_tick, record_value_for_reg,
13950         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
13951         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
13952         reg_bitfield_target_p, distribute_notes): Likewise.
13953         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
13954         exp_equiv_p, cse_insn): Likewise.
13955         * cselib.c (cselib_lookup): Likewise.
13956         (cselib_invalidate_regno, cselib_record_set): Likewise.
13957         * df.c (df_ref_record): Likewise.
13958         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
13959         Likewise.
13960         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
13961         count_or_remove_death_notes_bb): Likewise.
13962         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
13963         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
13964         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
13965         * integrate.c (mark_stores): Likewise.
13966         * jump.c (delete_prior_computation): Likewise.
13967         * lcm.c (reg_dies, reg_becomes_live): Likewise.
13968         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
13969         * loop.c (LOOP_REGNO_NREGS): Likewise.
13970         * postreload.c (reload_combine, reload_combine_note_store,
13971         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
13972         * ra-colorize.c (combine, color_usable_p, get_free_reg,
13973         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
13974         try_recolor_web, insert_coalesced_conflicts, check_colors,
13975         break_precolored_alias): Likewise.
13976         * ra-debug.c: Include regs.h
13977         (ra_print_rtx_object): Likewise.
13978         * ra-rewrite (choose_spill_colors): Likewise.
13979         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
13980         * ra.c (init_ra): Likewise.
13981         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
13982         peep2_find_free_register): Likewise.
13983         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
13984         * regclass.c (hard_regno_nregs): New array.
13985         (init_reg_modes_once): Initialize it.
13986         (choose_hard_reg_mode): Use it.
13987         (record_reg_classes): Likewise.
13988         * regmove.c (mark_flags_life_zones): Likewise.
13989         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
13990         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
13991         copy_value, maybe_mode_change, find_oldest_value_reg,
13992         copyprop_hardreg_forward_1):
13993         * regs.h (hard_regno_nregs): Declare.
13994         * realod.c (reload_inner_reg_of_subreg): Use it.
13995         (push_reload, combine_reloads, find_dummy_reload,
13996         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
13997         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
13998         reload_adjust_reg_for_mode): Likewise.
13999         * reload1.c (compute_use_by_pseudos, count_pseudo,
14000         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
14001         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
14002         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
14003         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
14004         delete_output_reload): Likewise.
14005         * resource.c (update_live_status, mark_referenced_resources,
14006         mark_set_resources, mark_target_live_regs): Likewise.
14007         * rtlanal.c:  Include regs.h
14008         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
14009         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
14010         subreg_regno_offset, subreg_offset_representable_p,
14011         hoist_test_store): Likewise.
14012         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
14013         * sched-rgn.c (check_live_1, update_live_1): Likewise.
14014         * stmt.c: Include regs.h
14015         (decl_conflicts_with_clobbers_p): Likewise.
14016         * varasm.c (make_decl_rtl): Likewise.
14017         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
14018
14019 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14020
14021         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
14022         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
14023         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
14024         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
14025         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
14026         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
14027         config/iq2000/iq2000.h, config/m32r/m32r.c,
14028         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
14029         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
14030         config/mcore/mcore.c, config/mcore/mcore.h,
14031         config/mcore/mcore.md, config/mips/mips.c,
14032         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
14033         config/rs6000/rs6000.c, config/s390/s390.c,
14034         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
14035         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
14036         "gen_rtx (FOO, " with "gen_rtx_FOO (".
14037
14038 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
14039
14040         * config/h8300/h8300.md (two peephole2's): New.
14041
14042 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
14043
14044         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
14045         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
14046         (ASM_CPU_SPEC): Likewise
14047         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
14048         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
14049
14050 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14051
14052         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
14053         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
14054         (expand_builtin): Always call expand_builtin_pow.
14055
14056 2004-02-01  Roger Sayle  <roger@eyesopen.com>
14057
14058         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
14059         BUILT_IN_SIGNBITL): New GCC builtins.
14060         * builtins.c (expand_builtin_signbit): New function to RTL expand
14061         calls to signbit, signbitf and signbitl as inline intrinsics.
14062         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
14063         (fold_builtin_signbit): New function to perform constant folding
14064         of signbit, signbitf and signbitl.
14065         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
14066
14067         * doc/extend.texi: Document new signbit{,f,l} builtins.
14068
14069 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
14070
14071         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
14072
14073 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
14074
14075         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
14076         "mips_const_double_ok" and "simple_memory_operand", which were
14077         removed from the MIPS port with the mips-3_4-rewrite branch merge.
14078         * config/mips/mips.c (mips16_lay_out_constants): Update comment
14079         for removal of simple_memory_operand.
14080
14081 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14082
14083         * config/c4x/c4x.md: Use GEN_INT instead of
14084         gen_rtx (CONST_INT, ...).
14085
14086 2004-01-31  Richard Henderson  <rth@redhat.com>
14087
14088         * varasm.c (output_constant_pool): Don't zap the pool.
14089
14090 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14091
14092         * genrecog.c (decision_type): Add DT_const_int.
14093         (write_cond) [DT_const_int]: Print a comparison against small
14094         constant.
14095         (write_node): Simplify comparisons against small constants
14096         before printing tests.
14097
14098 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14099
14100         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
14101         instead of gen_rtx_CONST_INT.
14102
14103 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14104
14105         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
14106         instead of gen_rtx_CONST_INT.
14107
14108 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14109
14110         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
14111         hook_bool_CUMULATIVE_ARGS_false.
14112         * targhooks.c (default_strict_argument_naming): Rename to
14113         hook_bool_CUMULATIVE_ARGS_false.
14114         * targhooks.h: Update the prototype for
14115         default_strict_argument_naming.
14116
14117 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14118
14119         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14120         * config/sh/sh.h: Likewise.
14121         * config/sh/sh.md: Likewise.
14122
14123 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
14124
14125         * doc/invoke.texi (SPARC options): Restructure and update.
14126
14127 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14128
14129         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
14130         STRICT_ARGUMENT_NAMING): Poison.
14131         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
14132         hook_bool_tree_false.
14133         * targhooks.c (default_promote_function_args): Remove.
14134         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
14135         Don't check incoming.
14136         (default_strict_argument_naming): Don't use
14137         STRICT_ARGUMENT_NAMING.
14138         * targhooks.h: Remove the prototype for
14139         default_promote_function_args.
14140
14141 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14142
14143         * config/i386/i386-protos.h: Remove the prototype for
14144         ix86_setup_incoming_varargs.
14145         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
14146         (ix86_setup_incoming_varargs): Make it static.
14147         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
14148
14149 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14150
14151         * alloc-pool.c: Fix comment typos.
14152         * builtin-types.def: Likewise.
14153         * builtins.def: Likewise.
14154         * c-pretty-print.c: Likewise.
14155         * df.h: Likewise.
14156         * reload1.c: Likewise.
14157
14158 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14159
14160         * doc/invoke.texi: Follow spelling conventions.
14161         * doc/tm.texi: Likewise.
14162
14163 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14164
14165         * doc/install.texi: Fix typos.
14166         * doc/invoke.texi: Likewise.
14167
14168 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
14169
14170         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
14171         registers as pointers.
14172         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
14173
14174 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
14175
14176         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
14177         and restore it to gen_lowpart_general on exit.
14178         (gen_lowpart_for_combine): Adjust all callers to go through
14179         gen_lowpart.
14180         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
14181         and restore it to gen_lowpart_general on exit.
14182         (gen_lowpart_if_possible): Adjust all callers to go through
14183         gen_lowpart.
14184         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
14185         (gen_lowpart): Declare as pointer to function, initialized to
14186         gen_lowpart_general.
14187         * rtl.h (gen_lowpart): Declare as pointer to function.
14188
14189 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
14190
14191         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
14192         * calls.c: Likewise.
14193         * emit-rtl.c: Likewise.
14194         * function.c: Likewise.
14195         * reload1.c: Likewise.
14196         * config/i386/cygming.h: Likewise.
14197         * config/i386/i386.c: Likewise.
14198         * config/i386/winnt.c: Likewise.
14199
14200 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
14201
14202         PR bootstrap/9249
14203         * doc/install.texi: document --enable-__cxa_atexit option.
14204         * configure.ac: Disable __cxa_atexit if not supported.
14205         * configure: Regenerate.
14206
14207 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
14208
14209         * ggc-zone.c (ggc_free): New function.
14210
14211 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14212
14213         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
14214         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
14215         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
14216         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
14217         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
14218         config/alpha/alpha.c, config/alpha/alpha.h,
14219         config/alpha/alpha.md, config/alpha/unicosmk.h,
14220         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
14221         config/c4x/c4x-protos.h, config/c4x/c4x.md,
14222         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
14223         config/frv/frvend.c, config/i386/cygming.h,
14224         config/i386/djgpp.h, config/i386/emmintrin.h,
14225         config/i386/gthr-win32.c, config/i386/i386-interix.h,
14226         config/i386/i386-protos.h, config/i386/openbsd.h,
14227         config/i386/winnt.c, config/i386/xm-mingw32.h,
14228         config/i386/xmmintrin.h, config/ia64/ia64.md,
14229         config/iq2000/iq2000.md, config/m32r/m32r.md,
14230         config/m68k/m68k.md, config/mcore/mcore-elf.h,
14231         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
14232         config/mips/iris5gas.h, config/mips/iris6.h,
14233         config/mips/iris6gas.h, config/mips/linux.h,
14234         config/mips/mips.md, config/mips/netbsd.h,
14235         config/mips/openbsd.h, config/mips/windiss.h,
14236         config/pa/fptr.c, config/rs6000/aix.h,
14237         config/rs6000/altivec.h, config/rs6000/darwin.h,
14238         config/rs6000/xcoff.h, config/s390/s390-protos.h,
14239         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
14240         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
14241         config/sparc/sol2.h: Update copyright.
14242
14243 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
14244
14245         * Makefile.in (abs_docdir, abs_srcdir): Define.
14246         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
14247
14248 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14249
14250         * genconfig.c (main): Have CC0_P check its operand even on a
14251         target without cc0.
14252
14253 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14254
14255         * config/alpha/alpha.c: Remove mentions of deprecates macros
14256         in comments, remove some target-independent comments about target
14257         macros, and/or add minimal function comments for target hook
14258         implementations.
14259         * config/avr/avr.c: Likewise.
14260         * config/ia64/ia64.h: Likewise.
14261         * config/ip2k/ip2k.c: Likewise.
14262         * config/iq2000/iq2000.c: Likewise.
14263         * config/m32r/m32r.h: Likewise.
14264         * config/m68hc11/m68hc11.c: Likewise.
14265         * config/mcore/mcore.c: Likewise.
14266         * config/mmix/mmix.c: Likewise.
14267         * config/mn10300/mn10300.c: Likewise.
14268         * config/pa/pa.c: Likewise.
14269         * config/pdp11/pdp11.c: Likewise.
14270         * config/rs6000/rs6000.h: Likewise.
14271         * config/sh/sh.c: Likewise.
14272         * config/sh/sh.h: Likewise.
14273         * config/sparc/sparc.c: Likewise.
14274         * config/sparc/sparc.h: Likewise.
14275         * config/stormy16/stormy16.c: Likewise.
14276         * config/xtensa/xtensa.c: Likewise.
14277
14278 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14279
14280         PR optimization/12147
14281         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
14282         RELOAD_FOR_OPADDR_ADDR.
14283         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
14284         might be reused as RELOAD_FOR_OPADDR_ADDR register.
14285
14286 2004-01-30  Jan Hubicka  <jh@suse.cz>
14287
14288         * reload.c (get_secondary_mem): Fix updating of
14289         secondary_memlocs_elim_used.
14290
14291 2004-01-30  Richard Henderson  <rth@redhat.com>
14292
14293         * varasm.c (struct rtx_const, struct pool_constant): Remove.
14294         (MAX_RTX_HASH_TABLE): Remove.
14295         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
14296         (first_pool, last_pool, pool_offset): Remove.
14297         (struct rtx_constant_pool): Split out from ...
14298         (struct varasm_status): ... here.  Reference one via pointer.
14299         (struct constant_descriptor_rtx): Merge struct pool_constant.
14300         (SYMHASH): Remove.
14301         (decode_rtx_const): Remove.
14302         (const_hash_rtx, compare_constant_rtx): Remove.
14303         (record_constant_rtx): Remove.
14304         (const_desc_rtx_hash, const_desc_rtx_eq): New.
14305         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
14306         (const_rtx_hash_1, const_rtx_hash): New.
14307         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
14308         (simplify_subtraction): Use simplify_rtx.
14309         (force_const_mem): Rewrite to use new data structures.
14310         (find_pool_constant): Likewise.
14311         (get_pool_constant, get_pool_constant_mark,
14312         get_pool_constant_for_function, get_pool_mode,
14313         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
14314         (output_constant_pool_2): Split out from output_constant_pool.
14315         (output_constant_pool_1): Likewise.  Use new pool datastructures.
14316         (output_constant_pool): Zap entire pool datastructure.
14317         (mark_constant): Use new pool datastructures.
14318         (mark_constants): Use for_each_rtx.
14319         (mark_constant_pool): Use new pool datastructures.
14320
14321 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
14322
14323         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
14324         Copy operands[1] to pseudo for simplify_gen_subreg.
14325
14326 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14327
14328         * gcse.c (bypass_block): Fix a typo in the previous check-in
14329         to the file.
14330
14331 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
14332
14333         * toplev.c: Include alloc-pool.h.
14334         * Makefile.in (toplev.c): Update dependencies.
14335
14336 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14337
14338         * combine.c (simplify_shift_const, case XOR): Be careful when
14339         commuting XOR with ASHIFTRT.
14340
14341 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
14342             Eric Botcazou  <ebotcazou@libertysurf.fr>
14343
14344         * config/sparc/sparc-protos.h: Remove the prototype for
14345         sparc_builtin_saveregs.
14346         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14347         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14348         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14349         (TARGET_STRUCT_VALUE_RTX): Likewise.
14350         (TARGET_RETURN_IN_MEMORY): Likewise.
14351         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14352         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14353         (sparc_builtin_saveregs): Make it static.
14354         (sparc_promote_prototypes): New.
14355         (sparc_struct_value_rtx): Likewise.
14356         (sparc_return_in_memory): Likewise.
14357         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
14358         (PROMOTE_FUNCTION_RETURN): Likewise.
14359         (RETURN_IN_MEMORY): Likewise.
14360         (STRUCT_VALUE): Likewise.
14361         (STRUCT_VALUE_INCOMING): Likewise.
14362         (EXPAND_BUILTIN_SAVEREGS): Likewise.
14363         (STRICT_ARGUMENT_NAMING): Likewise.
14364         (PROMOTE_PROTOTYPES): Likewise.
14365
14366         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
14367
14368 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14369
14370         PR c/12818
14371         * varasm.c (const_hash_1) <STRING_CST>: Use the
14372         address to compute the hash value if flag_writable_strings.
14373         (compare_constant) <STRING_CST>: Compare the addresses
14374         if flag_writable_strings.
14375         (build_constant_desc): Do not copy the expression for a
14376         STRING_CST if flag_writable_strings.
14377
14378 2004-01-30  Jan Hubicka  <jh@suse.cz>
14379
14380         * alloc-pool.c: Include hashtab.h
14381         (alloc_pool_descriptor): New structure
14382         (alloc_pool_hash): New global variable.
14383         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
14384         (create_alloc_pool): Update statistics.
14385         (free_alloc_pool): Likewise.
14386         (pool_alloc): Likewise.
14387         (output_info): New structure
14388         (print_statistics, dump_alloc_pool_statistics): New function.
14389         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
14390         (dump_alloc_pool_statistics): Declare.
14391         * toplev.c (finalize):  Dump statistics.
14392
14393         * reload.c (secondary_memlocs_elim_used): New static variable.
14394         (get_secondary_mem): Update it.
14395         (find_reloads): Use it.
14396
14397 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
14398
14399         * toplev.c: Fix broken checkin of 2003-12-30, again.
14400
14401 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
14402
14403         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
14404         s390*-*-* targets by specifying a 'nop' insn.
14405         * configure: Regenerate.
14406
14407 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
14408
14409         PR target/11475
14410         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
14411
14412 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14413
14414         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
14415         of addr when creating MEM copy.
14416
14417 2004-01-29  Devang Patel  <dpatel@apple.com>
14418
14419         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
14420
14421 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14422
14423         PR inline-asm/6162
14424         * reload.c (find_reloads): Only support one pair of commutative
14425         operands.
14426
14427 2004-01-29  Roger Sayle  <roger@eyesopen.com>
14428
14429         PR java/13824
14430         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
14431         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
14432         recursion.
14433
14434 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14435
14436         * config/frv/frv.c: Don't mention deprecated macros in
14437         comments.  Remove some target-independent comments about
14438         target macros.
14439         * config/frv/frv.h: Likewise.
14440
14441 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14442
14443         * cfghooks.c (split_block): Set probability and count of the
14444         new edge.
14445
14446 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
14447
14448         * dwarf2out.c (struct die_struct): Added field decl_id.
14449         (decl_die_table): Changed to hash table.
14450         (decl_die_table_allocated): Deleted.
14451         (decl_die_table_in_use): Deleted.
14452         (DECL_DIE_TABLE_INCREMENT): Deleted.
14453         (decl_die_table_hash): New function.
14454         (decl_die_table_eq): New function.
14455         (lookup_decl_die): Lookup in a hash table.
14456         (equate_decl_number_to_die): Insert into a hash table.
14457         (dwarf2out_init): Init hash table decl_die_table.
14458
14459 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
14460
14461         PR optimization/13424
14462         * expr.c (store_constructor): Revert 2003-12-03 change.
14463
14464         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
14465         expected before returning early.  Avoid sharing RTL if they
14466         need to be changed.
14467
14468         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
14469         handling so that memory attributes are preserved.  Don't call
14470         ix86_set_move_mem_attrs.
14471         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
14472         (ix86_expand_clrstr): Rename src argument to
14473         dst.  Rework rep_stos and strset handling so that memory attributes
14474         are preserved.
14475         (ix86_expand_strlen): Pass src argument to
14476         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
14477         memory attributes are preserved.
14478         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
14479         change_address instead of gen_rtx_MEM.
14480         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
14481         expanders.
14482         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
14483         strmovqi, strmovqi_rex64): Remove.
14484         (rep_mov*, strmov*): Prefix insn names with *.
14485         (strset, strset_singleop, rep_stos): New expanders.
14486         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
14487         strsetqi, strsetqi_rex64): Remove.
14488         (rep_stos*, strset*): Prefix insn names with *.
14489         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
14490         to SImode.
14491         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
14492         are preserved.
14493         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
14494         Prefix insn names with *.
14495         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
14496         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
14497         (strlenqi_1): New expander.
14498         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
14499
14500 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
14501
14502         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
14503         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
14504         verify_flow_info): Declaration removed.
14505         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
14506         (debug_bb, debug_bb_n): Add argument to dump_bb call.
14507         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
14508         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
14509         instead of delete_block.
14510         * cfghooks.c: Include timevar.h and toplev.h.
14511         (cfg_hooks): Define here.
14512         (verify_flow_info, dump_bb): Moved from cfg.c.
14513         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14514         split_block, split_block_after_labels, move_block_after,
14515         delete_basic_block, split_edge, create_basic_block,
14516         create_empty_bb, can_merge_blocks_p, merge_blocks,
14517         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14518         New functions.
14519         * cfghooks.h (struct cfg_hooks): Added fields name,
14520         make_forwarder_block, tidy_fallthru_edge and
14521         move_block_after. Changed type of verify_flow_info, dump_bb,
14522         split_block fields. Renamed cfgh_split_edge and delete_block
14523         fields.
14524         (redirect_edge_and_branch, redirect_edge_and_branch_force,
14525         split_block, delete_block, split_edge, create_basic_block,
14526         can_merge_blocks_p, merge_blocks): Macros removed.
14527         (cfg_hooks): Do not export.
14528         (verify_flow_info, dump_bb, redirect_edge_and_branch,
14529         redirect_edge_and_branch_force, split_block, split_block_after_labels,
14530         move_block_after, delete_basic_block, split_edge, create_basic_block,
14531         create_empty_bb, can_merge_blocks_p, merge_blocks,
14532         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
14533         Declare.
14534         (cfg_layout_rtl_cfg_hooks): Declare.
14535         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
14536         New functions.
14537         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
14538         (redirect_edge_with_latch_update): Removed.
14539         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
14540         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
14541         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
14542         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
14543         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
14544         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
14545         cfghooks.c.
14546         (rtl_create_basic_block): Coding style fix.
14547         (rtl_tidy_fallthru_edge, rtl_move_block_after,
14548         rtl_make_forwarder_block): New functions.
14549         (update_cfg_after_block_merging): Removed.
14550         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
14551         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
14552         to dump_bb.
14553         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
14554         find_if_case_2): Don't update dominators.
14555         * timevar.def (TV_CFG_VERIFY): New.
14556         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
14557         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
14558         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
14559         (remove_bbs): Don't call remove_bbs.
14560         (create_preheader): Use make_forwarder_block.
14561         (mfb_keep_just, mfb_update_loops): New static functions.
14562
14563 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
14564
14565         * config/avr/avr.h: Remove target-independent comments about
14566         target macros.
14567
14568 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
14569
14570         * timevar.c (timevar_print): Mention when checking is enabled.
14571
14572 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
14573
14574         * c-lex.c (c_lex): Rename to...
14575         (c_lex_with_flags): Add new parameter to get CPP flags.
14576         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
14577         * c-pragma.h (c_lex_with_flags): Declare.
14578
14579 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14580
14581         * config/mcore/mcore.c (mcore_external_libcall): Add a
14582         comment.
14583         (mcore_return_in_memory): Likewise.
14584
14585 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14586
14587         * config/mcore/mcore-protos.h: Remove the prototype for
14588         mcore_setup_incoming_varargs.
14589         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14590         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
14591         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14592         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14593         (TARGET_STRUCT_VALUE_RTX): Likewise.
14594         (TARGET_RETURN_IN_MEMORY): Likewise.
14595         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14596         (mcore_setup_incoming_varargs): Make it static.  Receive the
14597         first argument by reference.  Add argument second_time.
14598         (mcore_external_libcall): New.
14599         (mcore_return_in_memory): Likewise.
14600         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
14601         (PROMOTE_FUNCTION_RETURN): Likewise.
14602         (STRUCT_VALUE): Likewise.
14603         (RETURN_IN_MEMORY): Likewise.
14604         (SETUP_INCOMING_VARARGS): Likewise.
14605         (PROMOTE_PROTOTYPES): Likewise.
14606         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14607
14608 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14609
14610         * config/m32r/m32r-protos.h: Remove the prototype for
14611         m32r_setup_incoming_varargs.
14612         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
14613         (TARGET_STRUCT_VALUE_RTX): Likewise.
14614         (TARGET_RETURN_IN_MEMORY): Likewise.
14615         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14616         (m32r_return_in_memory): New.
14617         (m32r_setup_incoming_varargs): Make it static.
14618         * config/m32r/m32r.h: Remove #undef of
14619         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
14620         definitions of PROMOTE_FUNCTION_ARGS and
14621         PROMOTE_FUNCTION_RETURN.
14622         (PROMOTE_PROTOTYPES): Remove.
14623         (RETURN_IN_MEMORY): Likewise.
14624         (STRUCT_VALUE): Likewise.
14625
14626 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14627
14628         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
14629         (TARGET_STRUCT_VALUE_RTX): Likewise.
14630         (m68k_struct_value_rtx): Likewise.
14631         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
14632         STRUCT_VALUE_REGNUM.
14633         (PROMOTE_PROTOTYPES): Remove.
14634         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
14635         STRUCT_VALUE_REGNUM.
14636         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
14637         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
14638
14639 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14640
14641         * config/stormy16/stormy16.c
14642         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
14643         TARGET_BUILD_BUILTIN_VA_LIST.
14644
14645 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14646
14647         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
14648         (TARGET_STRUCT_VALUE_RTX): Likewise.
14649         (TARGET_RETURN_IN_MEMORY): Likewise.
14650         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14651         (v850_return_in_memory): Likewise.
14652         (v850_setup_incoming_varargs): Likewise.
14653         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
14654         (SETUP_INCOMING_VARARGS): Likewise.
14655         (RETURN_IN_MEMORY): Likewise.
14656         (STRUCT_VALUE): Likewise.
14657
14658 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14659
14660         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
14661         (fr30_setup_incoming_varargs): Don't use
14662         STRICT_ARGUMENT_NAMING.
14663         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
14664         (STRICT_ARGUMENT_NAMING): Likewise.
14665
14666 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14667
14668         * config/frv/frv-protos.h: Remove the prototype for
14669         frv_expand_builtin_saveregs.
14670         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
14671         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
14672         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
14673         STRUCT_VALUE_REGNUM.
14674         (frv_expand_builtin_saveregs): Make it static.
14675         (frv_struct_value_rtx): New.
14676         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
14677
14678 2004-01-29  Jan Hubicka  <jh@suse.cz>
14679
14680         PR c++/12850
14681         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
14682         initial pointers.
14683         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
14684         for functions that will be only inlined.
14685         (cgraph_mark_function_to_output): Likewise.
14686         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
14687         do not clear function body.
14688         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
14689         (tree_rest_of_compilation): Reorganize the logic releasing function
14690         body to use callgraph datastructure.
14691
14692 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14693
14694         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
14695         to register_operand.
14696
14697 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14698
14699         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
14700         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
14701         match_operand expressions so that all match_dups appear
14702         lexically after their corresponding match_operands.
14703
14704 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14705
14706         * config/h8300/h8300.c (WORD_REG_USED): Use
14707         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
14708         (compute_saved_regs): Likewise.
14709         (h8300_expand_prologue): Likewise.  Allocate locals after
14710         saving registers.
14711         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
14712         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
14713         registers.
14714         (h8300_initial_elimination_offset): Adjust for the new frame
14715         layout, which swaps flips the order of locals and saved
14716         registers.
14717         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
14718         (HARD_FRAME_POINTER_REGNUM): New.
14719         (ELIMINABLE_REGS): Add an elimination rule from
14720         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
14721         (REGISTER_NAMES): Add fp.
14722         * config/h8300/h8300.md (FP_REG): Change to 11.
14723         (HFP_REG): New.
14724
14725 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14726
14727         * genrecog.c (write_node): Remove a useless local variable.
14728
14729 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
14730
14731         * Makefile.in (options.c options.h): Use stamp file s-options to
14732         avoid unnecessary rebuilds.
14733         (options.o): New target listing dependencies.
14734         (gtyp-gen.h): Use stamp file s-gtyp-gen.
14735         (STAGESTUFF): Add s-gtyp-gen.
14736
14737 2004-01-28  Richard Henderson  <rth@redhat.com>
14738
14739         * ggc.h (ggc_free): Declare.
14740         * ggc-common.c (ggc_realloc): Use it.
14741         * ggc-page.c: Remove lots of inline markers.
14742         (globals): Add free_object_list.
14743         (ggc_alloc): Tidy.
14744         (ggc_free, validate_free_objects): New.
14745         (poison_pages): Provide default.
14746         (ggc_collect): Call validate_free_objects; emit markers to
14747         the debug file.
14748
14749 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
14750             Jim Wilson  <wilson@specifixinc.com>
14751
14752         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
14753         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
14754         scratch pointer.
14755         (ia64_secondary_reload_class): Delete case GR_REGS.
14756         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
14757         Do not allocate a scratch register.
14758         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
14759
14760 2004-01-28  Jan Hubicka  <jh@suse.cz>
14761
14762         * gcse.c (bypass_block): Prevent edges to be unified when we are
14763         about to emit compenstation code.
14764
14765 2004-01-28  Nick Clifton  <nickc@redhat.com>
14766
14767         * config/arm/arm.c (arm_expand_builtin): Force second argument of
14768         the setcwx insn into a register.
14769
14770 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
14771
14772         * config/fp-bit.c (pack_d): When using paired doubles to implement
14773         a long double, round the high part separately.
14774         (unpack_d): Fix the case in which the high part is a power of two
14775         and the low part is a nonzero value of the opposite sign.
14776
14777 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14778
14779         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
14780         (TARGET_STRUCT_VALUE_RTX): Likewise.
14781         (c4x_external_libcall): Likewise.
14782         (c4x_struct_value_rtx): Likewise.
14783         * config/c4x/c4x.h: Remove.
14784         (STRUCT_VALUE_REGNUM): Likewise.
14785         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
14786
14787 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
14788
14789         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
14790         (TARGET_STRUCT_VALUE_RTX): Likewise.
14791         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
14792         (STRUCT_VALUE): Likewise.
14793         (PROMOTE_PROTOTYPES): Likewise.
14794
14795 2004-01-27  Roger Sayle  <roger@eyesopen.com>
14796
14797         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
14798         CONST_INT before using INTVAL.
14799
14800 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
14801
14802         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
14803         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
14804         frame if !TARGET_BACKCHAIN.
14805         * config/s390/s390.md ("allocate_stack"): Use pattern only if
14806         TARGET_BACKCHAIN.
14807         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
14808
14809 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14810
14811         * ia64.c (ia64_function_arg): When placing HFAs in integer
14812         registers, do not special case the mode used for complex
14813         types.  Do not advance int_regs until the current register
14814         is full.
14815
14816 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
14817
14818         PR target/7297
14819         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
14820
14821 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14822
14823         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
14824         slow, unaligned loads and stores while debugging.  Fix formatting.
14825
14826 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
14827
14828         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
14829         of computing wmode.
14830         (restore_stack_nonlocal): Same.
14831
14832 2004-01-27  Devang Patel <dpatel@apple.com>
14833
14834         * Makefile.in (dwarf2out.o): Depend on input.h
14835         * dbxout.c (dbx_debug_hooks): Add new empty hook for
14836         imported_module_or_decl.
14837         (xcoff_debug_hooks): Same.
14838         * sdbout.c (sdb_debug_hooks): Same.
14839         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
14840         * debug.c (do_nothing_debug_hooks): Same.
14841         (debug_nothing_tree_tree): New function.
14842         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
14843         * dwarf2out.c: Include input.h.
14844         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
14845         (remove_child_TAG): New function.
14846         (dwarf_tag_name): Handle DW_TAG_imported_module.
14847         (gen_subprogram_die): Equate decl number to declaration die. Do not
14848         remove all children dies while reusing declaration die for definition.
14849         Instead, selectively remove only formal parameters.
14850         (gen_variable_die): Equate variable decl to declaration die.
14851         (gen_field_die): Equate field decl to line number.
14852         (force_namespace_die): Replace it with ...
14853         (force_decl_die): ... this.
14854         (force_type_die): New function.
14855         (setup_namespace_context): Replace use of force_namespace_die() with
14856         force_decl_die().
14857         (gen_namespace_die): Same.
14858         (dwarf2out_imported_module_or_decl): New function.
14859
14860 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
14861
14862         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
14863         on CQImode and CHImode incoming arguments in register a7.
14864         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
14865         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
14866         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
14867         xtensa_copy_incoming_a7 before reload.
14868
14869 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14870
14871         * coverage.c (get_coverage_counts): Give a different message
14872         if flag_guess_branch_prob is set.
14873         * predict.c (counts_to_freqs): Return an int.
14874         (estimate_bb_frequencies): If counts_to_freqs returns zero,
14875         calculate estimates.
14876
14877 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
14878
14879         * config/iq2000/iq2000-protos.h: Remove the prototype for
14880         iq2000_setup_incoming_varargs.
14881         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
14882         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
14883         (TARGET_PROMOTE_PROTOTYPES): Likewise.
14884         (TARGET_STRUCT_VALUE_RTX): Likewise.
14885         (TARGET_RETURN_IN_MEMORY): Likewise.
14886         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
14887         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
14888         (iq2000_return_in_memory): Likewise.
14889         (iq2000_setup_incoming_varargs): Make it static.  Receive the
14890         first argument by reference.
14891         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
14892         (PROMOTE_FUNCTION_RETURN): Likewise.
14893         (PROMOTE_PROTOTYPES): Likewise.
14894         (RETURN_IN_MEMORY): Likewise.
14895         (STRUCT_VALUE): Likewise.
14896         (SETUP_INCOMING_VARARGS): Likewise.
14897         (STRICT_ARGUMENT_NAMING): Likewise.
14898
14899 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
14900
14901         * fixinc/fixinc.c (test_test): Initialize res.
14902         (start_flexer): Initialize pz_cmd_save.
14903
14904 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14905
14906         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
14907         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
14908
14909 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
14910
14911         PR 7198
14912         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
14913         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
14914         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
14915         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
14916         Possibly rename pattern for consistency.
14917         Remove ??? comments suggesting that this be done.
14918         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
14919         New patterns.
14920         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
14921         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
14922         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
14923         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
14924         Update to match.
14925
14926 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
14927
14928         * config/arm/arm.c (output_return_instruction): Only restore IP
14929         into SP if frame_pointer_needed.
14930
14931 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14932
14933         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
14934         for SCmode and DCmode if ARCH32.
14935         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
14936         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
14937         if ARCH32.
14938         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
14939         if ARCH32.
14940         (BASE_OUTGOING_VALUE_REG): Likewise.
14941
14942 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
14943
14944         PR target/10904
14945         PR target/13058
14946         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
14947         Forbid mode changes from SImode for lower FP regs if ARCH64.
14948
14949 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
14950
14951         * Makefile.in (bt-load.o): Depend on except.h.
14952         * bt-load.c (except.h): #include.
14953         (compute_defs_uses_and_gen): If insn at end of BB can throw
14954         within this function, consider registers used by it unavailable for
14955         btr migration.
14956         (move_btr_def): If insn at end of BB can throw, insert before rather
14957         than after.
14958
14959         * flags.h (flag_btr_bb_exclusive): Declare.
14960         * toplev.c (flag_btr_bb_exclusive): New variable.
14961         (f_options): Add btr-bb-exclusive.
14962         * bt-load.c (augment_live_range): Restore old behaviour if
14963         flag_btr_bb_exclusive is set.
14964         * common.opt: Add entry for -fbtr-bb-exclusive.
14965         * opts.c (common_handle_options): Same.
14966         * doc/invoke.texi: Document -fbtr-bb-exclusive.
14967
14968         * bt-load.c (btrs_live_at_end): New variable.
14969         (compute_defs_uses_and_gen): Compute its pointed-to array.
14970         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
14971         (augment_live_range): When augmenting with a new dominator,
14972         use only its btrs_live_at_end set, but also add in the full set
14973         of the old dominator.
14974         (btr_def_live_range): Use btrs_live_at_end.
14975         (move_btr_def): Set other_btr_uses_before_def, and move new set
14976         to the end of the basic block, if appropriate.
14977         (migrate_btr_defs): Allocate and free btrs_live_at_end.
14978
14979         * bt-load.c (basic_block_freq): Remove outdated comment.
14980
14981 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
14982
14983         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
14984         (PREDICATE_CODES): Remove duplicate.
14985         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
14986         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
14987         (MASK_PROFILE_KERNEL): Adjust define.
14988
14989 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
14990
14991         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
14992         of long string literals from 32 bytes to sizeof (void *) when !-Os
14993         and to 1 with -Os.
14994
14995 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
14996
14997         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
14998         constant addresses in the normal mode.
14999
15000 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15001
15002         * system.h (CHAR_BITFIELD): Delete.
15003         (BOOL_BITFIELD): New.
15004         * c-decl.c (c_scope): Use BOOL_BITFIELD.
15005         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
15006
15007 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15008
15009         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15010         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15011         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15012         (TARGET_STRUCT_VALUE_RTX): Likewise.
15013         (TARGET_RETURN_IN_MEMORY): Likewise.
15014         (arc_return_in_memory): Likewise.
15015         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
15016         (PROMOTE_FUNCTION_RETURN): Likewise.
15017         (RETURN_IN_MEMORY): Likewise.
15018         (STRUCT_VALUE): Likewise.
15019
15020 2004-01-26  Richard Henderson  <rth@redhat.com>
15021
15022         * c-parse.in (extension): Use itype.
15023         (SAVE_EXT_FLAGS): Don't allocate a tree.
15024         (RESTORE_EXT_FLAGS): Don't read a tree.
15025
15026 2004-01-26  Jan Hubicka  <jh@suse.cz>
15027
15028         * cselib.c (discard_useless_values):  Clear out value pointer pointing
15029         to datastructure to be recycled.
15030
15031 2004-01-25  Jan Hubicka  <jh@suse.cz>
15032
15033         * genextract.c (main): Do not output the memset when not checking.
15034
15035 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15036
15037         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
15038         switch statement instead of a chain of if statements.
15039
15040 2004-01-26  Jeff Law  <law@redhat.com>
15041
15042         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
15043         acute accents for Petur Runolfsson's entry.
15044
15045 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15046
15047         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
15048         (TARGET_RETURN_IN_MEMORY): Likewise.
15049         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
15050         (RETURN_IN_MEMORY): Likewise.
15051
15052 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15053
15054          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
15055          unaligned load/store into smaller loads and stores.
15056
15057 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15058
15059         * function.c (assign_parms): Do not assign
15060         long long argument to memory in prologue if
15061         is it loaded into register.
15062
15063 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15064
15065          PR middle-end/13779
15066          * expr.c (emit_group_load): split constant
15067          correctly into register components of PARALLEL insn.
15068
15069 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
15070
15071         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
15072         Use adjust_address_nv directly with appropriate mode.
15073         (restore_stack_nonlocal): Ditto.
15074
15075 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15076
15077         * config/xtensa/xtensa-protos.h: Remove the prototype for
15078         xtensa_builtin_saveregs.
15079         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15080         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15081         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15082         (TARGET_STRUCT_VALUE_RTX): Likewise.
15083         (TARGET_RETURN_IN_MEMORY): Likewise.
15084         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15085         (xtensa_builtin_saveregs): Make it static.
15086         (xtensa_return_in_memory): New.
15087         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
15088         (PROMOTE_FUNCTION_RETURN): Likewise.
15089         (PROMOTE_PROTOTYPES): Likewise.
15090         (STRUCT_VALUE): Likewise.
15091         (RETURN_IN_MEMORY): Likewise.
15092         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15093
15094 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15095
15096         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
15097         (arm_setup_incoming_varargs): Likewise.
15098         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
15099
15100 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15101
15102         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
15103         (cris_setup_incoming_varargs): Likewise.
15104         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
15105
15106 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15107
15108         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
15109         (ns32k_struct_value_rtx): Likewise.
15110         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
15111         NS32K_STRUCT_VALUE_REGNUM.
15112
15113 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15114
15115         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15116         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15117         (TARGET_STRUCT_VALUE_RTX): Likewise.
15118         (arm_struct_value_rtx): Likewise.
15119         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
15120         (STRUCT_VALUE): Likewise.
15121         (STRUCT_VALUE_REGNUM): Likewise.
15122         (PROMOTE_PROTOTYPES): Likewise.
15123
15124 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
15125
15126         * config/ia64/ia64-protos.h: Remove the prototype for
15127         ia64_setup_incoming_varargs and ia64_return_in_memory.
15128         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
15129         (TARGET_RETURN_IN_MEMORY): Likewise.
15130         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15131         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15132         (ia64_setup_incoming_varargs): Adjust the arguments to meet
15133         the requirement of TARGET_SETUP_INCOMING_VARARGS.
15134         (ia64_return_in_memory): Make it static.  Change the return
15135         type to bool from int.  Add an argument.
15136         (ia64_struct_value_rtx): New.
15137         * config/ia64/ia64.h: Remove commented-out definitions of
15138         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
15139         PROMOTE_PROTOTYPES.
15140         (RETURN_IN_MEMORY): Remove.
15141         (STRUCT_VALUE_REGNUM): Likewise.
15142         (STRICT_ARGUMENT_NAMING): Likewise.
15143
15144 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
15145
15146         PR target/13666
15147         * config/sparc/sparc.c (function_arg_union_value): New function.
15148         (function_arg): Use it to deal with unions.
15149         (function_value): Likewise.  Define 'regbase' only for ARCH64.
15150         Replace a conditional statement by a simpler one.
15151
15152 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
15153
15154         * config/mips/mips.c (mips16_optimize_gp): Delete.
15155         (mips_reorg): Don't call it.
15156
15157 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15158
15159         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
15160         (floatunsqihf2): Remove operand 6.
15161         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
15162         fix patterns.
15163         (ldi_conditional, ldf_conditional): Validate operands.
15164
15165 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15166
15167         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
15168         (HAVE_GAS_HIDDEN): Undefine as interim measure.
15169
15170 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15171
15172         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
15173         memory references if TARGET_EXPOSE_LDP nonzero.
15174
15175 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15176
15177         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
15178
15179 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15180
15181         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
15182         invalid operand combinations.
15183
15184 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15185
15186         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
15187         c4x_legitimate_address_p.  Fix post_modify check.
15188
15189         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
15190         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
15191
15192 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15193
15194         * config/pa/pa-protos.h: Remove the prototype for
15195         hppa_builtin_saveregs.  Add a prototype for
15196         pa_return_in_memory.
15197         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
15198         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15199         (TARGET_STRUCT_VALUE_RTX): Likewise.
15200         (TARGET_RETURN_IN_MEMORY): Likewise.
15201         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15202         (pa_struct_value_rtx): Likewise.
15203         (pa_return_in_memory): Likewise.
15204         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
15205         PA_STRUCT_VALUE_REGNUM.
15206         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
15207         (EXPAND_BUILTIN_SAVEREGS): Remove.
15208         (PROMOTE_PROTOTYPES): Likewise.
15209         (PROMOTE_FUNCTION_RETURN): Likewise.
15210
15211 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15212
15213         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
15214         (TARGET_STRUCT_VALUE_RTX): Likewise.
15215         (vax_struct_value_rtx): Likewise.
15216         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
15217         VAX_STRUCT_VALUE_REGNUM.
15218         (PROMOTE_PROTOTYPES): Remove.
15219
15220 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
15221
15222         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
15223
15224 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
15225
15226         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
15227         and MIPS64 have HI/LO interlocks.  Update comment.
15228
15229 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15230
15231         * config/stormy16/stormy16-protos.h: Remove the prototype for
15232         xstormy16_setup_incoming_varargs.
15233         * config/stormy16/stormy16.c
15234         (xstormy16_setup_incoming_varargs): Remove.
15235         (xstormy16_return_in_memory): New.
15236         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
15237         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15238         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15239         (TARGET_STRUCT_VALUE_RTX): Likewise.
15240         (TARGET_RETURN_IN_MEMORY): Likewise.
15241         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
15242         (PROMOTE_FUNCTION_RETURN): Likewise
15243         (PROMOTE_PROTOTYPES): Likewise
15244         (RETURN_IN_MEMORY): Likewise
15245         (STRUCT_VALUE): Likewise
15246         (SETUP_INCOMING_VARARGS): Likewise
15247
15248 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15249
15250         * config/mips/mips.c (mips_offset_within_object_p): New function.
15251         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
15252         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
15253         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
15254
15255 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15256
15257         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
15258         (PROMOTE_FUNCTION_RETURN): Likewise.
15259
15260 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15261
15262         * config/mn10300/mn10300-protos.h: Remove the prototype for
15263         mn10300_builtin_saveregs.
15264         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
15265         (TARGET_STRUCT_VALUE_RTX): Likewise.
15266         (TARGET_RETURN_IN_MEMORY): Likewise.
15267         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15268         (mn10300_return_in_memory): Likewise.
15269         (mn10300_builtin_saveregs): Make it static.
15270         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
15271         (RETURN_IN_MEMORY): Likewise.
15272         (STRUCT_VALUE): Likewise.
15273         (EXPAND_BUILTIN_SAVEREGS): Likewise.
15274
15275 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
15276
15277         PR bootstrap/13853
15278         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
15279
15280 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15281
15282         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
15283         using ccr.
15284
15285 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15286
15287         * config/i860/i860-protos.h: Remove the prototype for
15288         i860_saveregs.
15289         * config/i860/i860.c (i860_saveregs): Make it static.
15290         (i860_struct_value_rtx): New.
15291         (TARGET_STRUCT_VALUE_RTX): Likewise.
15292         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
15293         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
15294         I860_STRUCT_VALUE_REGNUM.
15295         (EXPAND_BUILTIN_SAVEREGS): Remove.
15296
15297 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15298
15299         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
15300         (TARGET_RETURN_IN_MEMORY): Likewise.
15301         (m68hc11_struct_value_rtx): Likewise.
15302         (m68hc11_return_in_memory): Likewise.
15303         * config/m68hc11/m68hc11.h: Remove a commented-out definition
15304         of PROMOTE_PROTOTYPES.
15305         (RETURN_IN_MEMORY): Remove.
15306         (STRUCT_VALUE_REGNUM): Likewise.
15307
15308 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15309
15310         * config/mmix/mmix-protos.h: Remove the prototype for
15311         mmix_setup_incoming_varargs.
15312         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15313         (TARGET_STRUCT_VALUE_RTX): Likewise.
15314         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15315         (mmix_setup_incoming_varargs): Make it static.
15316         (mmix_struct_value_rtx): New.
15317         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
15318         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
15319         (STRUCT_VALUE_REGNUM): Remove.
15320         (SETUP_INCOMING_VARARGS): Likewise.
15321
15322 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15323
15324         * config/mips/mips-protos.h: Remove the prototypes for
15325         mips_setup_incoming_varargs and mips_return_in_memory.
15326         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15327         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
15328         (TARGET_PROMOTE_PROTOTYPES): Likewise.
15329         (TARGET_STRUCT_VALUE_RTX): Likewise.
15330         (TARGET_RETURN_IN_MEMORY): Likewise.
15331         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15332         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15333         (mips_setup_incoming_varargs): Match the prototype for
15334         TARGET_SETUP_INCOMING_VARARGS.
15335         (mips_return_in_memory): Make it static.  Add argument fntype.
15336         (mips_strict_argument_naming): New.
15337         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
15338         (PROMOTE_FUNCTION_ARGS): Likewise.
15339         (PROMOTE_FUNCTION_RETURN): Likewise.
15340         (STRUCT_VALUE): Likewise.
15341         (RETURN_IN_MEMORY): Likewise.
15342         (SETUP_INCOMING_VARARGS): Likewise.
15343         (STRICT_ARGUMENT_NAMING): Likewise.
15344
15345 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15346
15347         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
15348         (TARGET_RETURN_IN_MEMORY): Likewise.
15349         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
15350         (ip2k_return_in_memory): Likewise.
15351         (ip2k_setup_incoming_varargs): Likewise.
15352         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
15353         (STRUCT_VALUE): Likewise.
15354         (STRUCT_VALUE_INCOMING): Likewise.
15355         (SETUP_INCOMING_VARARGS): Likewise.
15356
15357 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
15358
15359         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
15360         (TARGET_RETURN_IN_MEMORY): Likewise.
15361         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
15362         (avr_return_in_memory): Remove.
15363         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
15364         (STRUCT_VALUE): Likewise.
15365         (STRUCT_VALUE_INCOMING): Likewise.
15366         (STRICT_ARGUMENT_NAMING): Likewise.
15367
15368 2004-01-25  Jan Hubicka  <jh@suse.cz>
15369
15370         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
15371
15372 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
15373
15374         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
15375         (mips_regno_mode_ok_for_base_p): Declare.
15376         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
15377         (FRAME_POINTER_REGNUM): Renumber to 78.
15378         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
15379         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
15380         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
15381         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
15382         (REG_MODE_OK_FOR_BASE_P): Likewise.
15383         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
15384         entry for 77 to "$arg" and entry for 78 to "$frame".
15385         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
15386         (mips_reg_mode_ok_for_base_p): Remove.
15387         (mips_regno_mode_ok_for_base_p): New function, derived from old
15388         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
15389         restrictions unless we're being strict.
15390         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
15391
15392 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15393
15394         * c-common.h: Fix comment typos.
15395         * c-decl.c: Likewise.
15396         * cgraphunit.c: Likewise.
15397         * combine.c: Likewise.
15398         * et-forest.c: Likewise.
15399         * flow.c: Likewise.
15400         * function.c: Likewise.
15401         * ifcvt.c: Likewise.
15402         * integrate.c: Likewise.
15403         * jump.c: Likewise.
15404         * postreload.c: Likewise.
15405         * varray.c: Likewise.
15406
15407 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15408
15409         * doc/frontends.texi: Update copyright.
15410         * doc/gcov.texi: Likewise.
15411         * doc/gty.texi: Likewise.
15412         * doc/sourcebuild.texi: Likewise.
15413         * doc/standards.texi: Likewise.
15414
15415 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
15416
15417         PR target/12978
15418         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
15419         Remove movstrqi_small because it conflicts with movstrqi_large.
15420
15421 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15422
15423         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
15424         (TARGET_STRUCT_VALUE_RTX): Likewise.
15425         (cris_struct_value_rtx): Likewise.
15426         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
15427         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
15428         STRUCT_VALUE_REGNUM.
15429         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
15430
15431 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
15432
15433         PR bootstrap/13848
15434         * cse.c (cse_cc_succs): Change the mode of the source expression
15435         as soon as decide we need a new mode.  Don't permit changing modes
15436         if we found a match in a successor block.
15437         (cse_condition_code_reg): Save original mode of source expression
15438         so that we know whether we have to change the mode in other
15439         insns.
15440
15441 2004-01-24  Jan Hubicka  <jh@suse.cz>
15442
15443         * emit-rtl.c (change_address, adjust_address_1, offset_address,
15444         widen_memory_access):  Return early when there is nothing to change.
15445
15446 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
15447
15448         * simplify-rtx.c (simplify_relational_operation): Don't
15449         simplify address == constant into address + -constant == 0.
15450
15451 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15452
15453         * gcc.c (process_command): Don't internationalize the
15454         Copyright message.
15455         * mips-tfile.c (main): Likewise.
15456
15457 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
15458
15459         * cse.c: (cse_cc_succs) Fix comparison warning.
15460
15461 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15462
15463         * config/h8300/h8300.md: Remove extraneous USE in expanders.
15464
15465 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15466
15467         * config/h8300/h8300-protos.h: Provide prototypes for
15468         h8300_legitimate_constant_p and h8300_legitimate_address_p.
15469         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
15470         (h8300_rtx_ok_for_base_p): Likewise.
15471         (h8300_legitimate_address_p): Likewise.
15472         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
15473         h8300_legitimate_constant_p.
15474         (RTX_OK_FOR_BASE_P): Remove.
15475         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
15476
15477 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
15478
15479         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
15480         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
15481         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
15482         (REG_OK_FOR_BASE_STRICT_P): Likewise.
15483         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
15484         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
15485         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
15486         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
15487
15488 2004-01-24  Jan Hubicka  <jh@suse.cz>
15489
15490         * cselib.c (remove_useless_values):  Do not access discarded values.
15491
15492 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
15493
15494         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
15495         arrays.
15496
15497 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
15498
15499         * recog.c: Fix a typo in copyright.
15500
15501 2004-01-23  Andrew Pinski  <apinski@apple.com>
15502
15503         * config/rs6000/rs6000.md (call): Fix misappiled patch.
15504         (call_value): Likewise.
15505
15506 2004-01-23  Richard Henderson  <rth@redhat.com>
15507
15508         PR opt/12941
15509         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
15510         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
15511         if SHIFT_COUNT_TRUNCATED is set.
15512
15513 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
15514
15515         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
15516         separate real and imaginary parts.
15517         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
15518
15519 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
15520
15521         PR target/13674
15522         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
15523         loading into GPR.
15524
15525 2004-01-23  Jan Hubicka  <jh@suse.cz>
15526
15527         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
15528         change.
15529
15530         * alloc-pool.c (align_four): Kill.
15531         (create_alloc_pool): Align size to eight.
15532         (free_alloc_pool, free_pool): Invalidate deallocated data.
15533
15534 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
15535
15536         PR gcc/1532
15537         * cse.c (cse_change_cc_mode): New static function.
15538         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
15539         (cse_condition_code_reg): New function.
15540         * rtl.h (cse_condition_code_reg): Declare.
15541         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
15542         * target.h (struct gcc_target): Add fixed_condition_code_regs and
15543         cc_modes_compatible.
15544         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15545         (TARGET_CC_MODES_COMPATIBLE): Define.
15546         (TARGET_INITIALIZER): Add new initializers.
15547         * targhooks.c (default_cc_modes_compatible): New function.
15548         * targhooks.c (default_cc_modes_compatible): Declare.
15549         * hooks.c (hook_bool_intp_intp_false): New function.
15550         * hooks.h (hook_bool_intp_intp_false): Declare.
15551         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
15552         (TARGET_CC_MODES_COMPATIBLE): Define.
15553         (ix86_fixed_condition_code_regs): New static function.
15554         (ix86_cc_modes_compatible): Likewise.
15555         * doc/tm.texi (Condition Code): Document new hooks.
15556
15557 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15558
15559         * fixinc/inclhack.def (bad_lval): Renamed to ...
15560         (alpha_bad_lval): ... this.
15561         Removed file list.
15562         Restrict to alpha*-dec-osf*.
15563         * fixinc/fixincl.x: Regenerate.
15564         * fixinc/tests/base/dirent.h: Remove, moving test ...
15565         * fixinc/tests/base/testing.h: ... here, reflecting new name.
15566
15567 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
15568
15569         PR c/13814
15570         * c-decl.c (diagnose_mismatched_decls): Also discard a
15571         built-in if we encounter an old-style definition with the
15572         same name.
15573
15574 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
15575
15576         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
15577         set to default{32,64}.
15578
15579 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15580
15581         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
15582         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
15583
15584 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
15585             Olivier Hainque  <hainque@act-europe.fr>
15586
15587         * fold-const.c (fold_binary_op_with_conditional_arg): Only
15588         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
15589
15590 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
15591
15592         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
15593         size for minipool references.
15594
15595 2004-01-23  Roger Sayle  <roger@eyesopen.com>
15596
15597         * real.c (real_floor, real_ceil): Tweak to allow input and output
15598         arguments to overlap.
15599         (real_round): New function to implement round(3m) semantics.
15600         * real.h (real_round): Prototype here.
15601         * builtins.c (fold_builtin_round): New function to constant fold
15602         round, roundf and roundl.
15603         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
15604
15605 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
15606
15607         PR optimization/13819
15608         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
15609         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
15610         (sh_handle_sp_switch_attribute): Remove warning.
15611
15612 2003-11-30  Jan Hubicka  <jh@suse.cz>
15613
15614         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
15615
15616 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
15617
15618         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
15619         may or may not return non-NIL.
15620         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
15621         check CANNOT_CHANGE_MODE_CLASS
15622
15623 2004-01-23  Jan Hubicka  <jh@suse.cz>
15624
15625         * basic-block.h (PROP_POSTRELOAD): New macro.
15626         (CLEANUP_LOG_LINKS): New.
15627         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
15628         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
15629
15630         * cselib.c (value_pool): New.
15631         (new_cselib_val): Use pool.
15632         (cselib_init): Initialize value_pool
15633         (cselib_finish): Free pool.
15634
15635 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
15636
15637         * config/sparc/sparc.c (scan_record_type): New function.
15638         (function_arg_slotno): Use it to determine which kinds of
15639         registers the record can be passed in.
15640
15641 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
15642
15643         * config/pa/fptr.c: Fix old-style definition.
15644
15645 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
15646
15647         PR optimization/13724
15648         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
15649         represents the zero bits produced by a ZERO_EXTEND operation.
15650
15651 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15652
15653         PR optimization/13821
15654         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
15655         correctly calculate the lowpart offset of the contracted subreg.
15656
15657 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
15658
15659         * doc/invoke.texi (Optimize Options): Note that --param arguments
15660         are subject to change without notice.
15661
15662 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
15663
15664         * config.gcc (mips-sgi-irix6*o32): Removed.
15665         * config/mips/iris6-o32-as.h: Likewise.
15666         * config/mips/iris6-o32-gas.h: Likewise.
15667         * config/mips/iris6-o32.h: Likewise.
15668
15669 2004-01-22  Jan Hubicka  <jh@suse.cz>
15670
15671         * cfgcleanup.c (first_pass): New static variable.
15672         (try_forward_edges):  Add work limiting check for threading.
15673         (try_crossjump_bb):  Add work limiting check for crossjumping.
15674         (try_optimize_cfg):  Maintain first pass variable.
15675
15676 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
15677
15678         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
15679         handles complex and vector modes.
15680
15681 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15682
15683         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
15684         (REG_OK_FOR_BASE_P_STRICT): Likewise.
15685         (STRICT): Likewise.
15686
15687 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15688
15689         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
15690         (genrtl_for_stmt): Remove emit_nop calls.
15691
15692 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15693
15694         PR target/13713
15695         PR target/13324
15696         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
15697         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
15698         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
15699
15700 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
15701
15702         * config/arm/arm.c: Include "debug.h".
15703         (thumb_pushpop): Take two new arguments.  Add some commentary.
15704         Output frame information when pushing.
15705         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
15706         thumb_pushpop.
15707         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
15708         offset, and pass it to thumb_pushpop.  Output CFI information.
15709         (thumb_expand_prologue): Add some frame-related markers and notes.
15710
15711 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
15712
15713         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
15714         for TARGET_64BIT.
15715         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
15716         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
15717
15718 2004-01-22  Roger Sayle  <roger@eyesopen.com>
15719             Paolo Bonzini  <bonzini@gnu.org>
15720
15721         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
15722         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
15723         * rtl.h (subreg_lsb_1): Prototype here.
15724         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
15725         sign extensions.
15726
15727 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
15728
15729         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
15730         macro need not be defined if jump-tables should contain
15731         relative addresses only when -fPIC or -fPIC is in effect.
15732
15733 2004-01-22  Jan Hubicka  <jh@suse.cz>
15734
15735         * alias.c (reg_base_value): Turn into varray.
15736         (reg_base_value_size): Kill.
15737         (old_reg_base_value): New deletable varray.
15738         (alias_invariant_size): New variable.
15739         (REG_BASE_VALUE): Update to use varray.
15740         (find_base_value): Likewise.
15741         (record_set): Likewise.
15742         (record_base_value): Likewise.
15743         (memrefs_conflict_p): Likewise.
15744         (record_set): Likewise
15745         (record_base_value): Likewise.
15746         (memrefs_conflict_p): Use alias_invariant_size.
15747         (init_alias_analysis): Use varray; set alias_invariant_size;
15748         rescale other arrays to be sized by maxreg.
15749         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
15750
15751 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15752
15753         * config/sparc/sparc.c (function_arg_slotno): Use
15754         FLOAT_TYPE_P to detect FP fields in structures.
15755         (function_arg_record_value_1): Likewise.
15756         (function_arg_record_value_2): Likewise.
15757
15758 2004-01-22  Jan Hubicka  <jh@suse.cz>
15759
15760         * function.c (allocate_struct_function): Do not initialize expr, emit
15761         and varasm.
15762         (prepare_function_start): Do it here.
15763         * c-parse.in (maybe_type_qual): Do not produce line number notes.
15764
15765 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
15766
15767         PR target/13559
15768         * config/sparc/sparc.c (function_arg_record_value_3): Revert
15769         to 'word_mode' once the first slot has been filled.
15770
15771 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
15772
15773         * config/sparc/sparc.c (function_arg_record_value_1): Fix
15774         computation of the number of integer registers required.
15775
15776 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15777
15778         * config/i386/i386.md: Simplify certain comparisons of
15779         const_int.
15780
15781 2004-01-21  Andrew Pinski  <apinski@apple.com>
15782
15783         PR target/13785
15784         * config/rs6000/rs6000.md (call_value): Force operand
15785         1 not operand 0 into a register.
15786
15787 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15788
15789         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
15790         unwind-dw2-fde.h: Update copyright.
15791
15792 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15793
15794         * pa-protos.h: Update copyright.
15795         * pa.h: Likewise.
15796         * pa.md: Likewise.
15797
15798 2004-01-21  Caroline Tice  <ctice@apple.com>
15799
15800         PR target/12308
15801         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
15802         flags register.
15803         (fix_truncdfdi2): Likewise.
15804         (fix_truncsfdi2): Likewise.
15805         (*fix_truncdi_1): Likewise.
15806         (fix_truncxfsi2): Likewise.
15807         (fix_truncdfsi2): Likewise.
15808         (fix_truncsfsi2): Likewise.
15809         (*fix_truncsi_1): Likewise.
15810         (fix_truncxfhi2): Likewise.
15811         (fix_truncdfhi2): Likewise.
15812         (fix_truncsfhi2): Likewise.
15813         (*fix_trunchi_1): Likewise.
15814
15815 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15816
15817         * alias.c, basic-block.h, c-common.c, c-common.h,
15818         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
15819         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
15820         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
15821         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
15822         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
15823         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
15824         genautomata.c, genconditions.c, genemit.c, genflags.c,
15825         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
15826         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
15827         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
15828         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
15829         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
15830         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
15831         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
15832         unwind.h, varray.c, varray.h: Update copyright.
15833
15834 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
15835
15836         * config/h8300/coff.h: Update copyright.
15837         * config/h8300/elf.h: Likewise.
15838         * config/h8300/h8300-protos.h: Likewise.
15839         * config/h8300/h8300.c: Likewise.
15840         * config/h8300/h8300.h: Likewise.
15841         * config/h8300/h8300.md: Likewise.
15842
15843 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15844
15845         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
15846         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
15847         ultrix_unistd): New hacks.
15848         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
15849         ULTRIX_CONST2_CHECK): Add checks.
15850         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
15851         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
15852         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
15853         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
15854         * fixinc/tests/base/locale.h: New file.
15855         * fixinc/fixincl.x: Rebuilt.
15856
15857 2004-01-21  Andreas Jaeger  <aj@suse.de>
15858             Michael Matz  <matz@suse.de>
15859
15860         * doc/extend.texi (Extended Asm): Clarify memory clobber.
15861
15862 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
15863
15864         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
15865         _Jv_RegisterClasses through a function pointer.
15866
15867 2004-01-21  Falk Hueffner  <falk@debian.org>
15868
15869         PR target/12898
15870         * config/alpha/alpha.c (alpha_emit_set_const_1): If
15871         no_new_pseudos, use gen_rtx_SET directly for SImode constants
15872         which need multiple instructions to emit.
15873
15874 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
15875
15876         * config/m32r/m32r.h (CPP_SPEC): Define.
15877
15878 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
15879
15880         * c-decl.c (merge_decls): Kill different_binding_level and
15881         different_tu arguments; simplify throughout.
15882         (duplicate_decls): Likewise.
15883         (pushdecl, merge_translation_unit_decls): Update calls to
15884         duplicate_decls.
15885
15886 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
15887
15888         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
15889         $(SYSTEM_H).
15890         (print-rtl1.o): Depend on $(SYSTEM_H).
15891
15892 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
15893
15894         PR bootstrap/12730
15895         * configure.ac: Delete definition and subsitution of docdir.
15896         Add info, man, srcman and srcinfo to target hooks. Create doc/
15897         directory.
15898         * configure: Regenerate.
15899         * Makefile.in: Don't substitute docdir and delete all references
15900         throughout.
15901         (MAKEINFOFLAGS): Define.
15902         (stmp-docobjdir): Delete.
15903         (INFOFILES, MANFILES): Define.
15904         (info): Call lang.info, srcinfo and lang.srcinfo.
15905         (generated-manpages): Call lang.man, srcman and lang.srcman.
15906         (srcinfo, srcman): New rules to copy back files to source directory.
15907         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
15908         (install-man): Revamp rule.
15909         (clean): Update dvi directory.
15910         (distclean): Delete TAGS from front end directorys.
15911         (maintainer-clean): Delete all document files in source directory.
15912
15913         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
15914         (objc.srcman, objc.srcinfo): Likewise.
15915
15916 2004-01-20  Bruce Korb  <bkorb@gnu.org>
15917
15918         * fixinc/inclhack.def(math_exception): bypass only for glibc.
15919         (matherr_decl): rename & relocate as exception_structure.
15920         This fix must precede the math_exception fix.
15921
15922 2004-01-20  Roger Sayle  <roger@eyesopen.com>
15923
15924         * fold-const.c (fold_convert): Rename to fold_convert_const.
15925         (fold_convert_const): Change arguments to take a tree_code,
15926         a type and the operand/expression to be converted.  Return
15927         NULL_TREE if no simplification is possible.  Add support for
15928         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
15929         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
15930         Adjust call to fold_convert to match new fold_convert_const.
15931         Avoid modifying the tree passed to fold in-place.
15932
15933 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
15934
15935         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
15936         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
15937         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
15938
15939 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
15940
15941         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
15942         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
15943         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
15944         (emit_move_sequence): Check scratch_reg first in various if statements.
15945         Extend source simplification to handle all 64-bit CONST_INTs.
15946         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
15947         frame size.
15948         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
15949         frame offset calculations.
15950         * pa.h (NEW_HP_ASSEMBLER): Add comment.
15951         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
15952         LEGITIMATE_64BIT_CONST_INT_P): Define.
15953         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
15954         any CONST_INT as legitimate during and after reload.
15955         (VAL_32_BITS_P, INT_32_BITS): Define.
15956         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
15957
15958 2004-01-20  Jan Hubicka  <jh@suse.cz>
15959
15960         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
15961         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
15962         containing hard regs are shared.
15963         (gen_hard_reg_clobber): New function.
15964         (hard_reg_clobbers): New array.
15965         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
15966         (copy_rtx): Do not copy clobbers containing hard regs.
15967         * rtl.h (gen_hard_reg_clobber): Declare.
15968
15969 2004-01-20  Jan Hubicka  <jh@suse.cz>
15970
15971         * varray.c:  Include hashtab.h
15972         (varray_descriptor): New structure.
15973         (hash_descriptor, eq_descriptor, varray_descriptor,
15974         print_statistics): New static functions
15975         (varray_init, varray_grow): Update statistics
15976         (dump_varray_statistics): New function.
15977         * varray.h (dump_varray_statistics): Declare.
15978         * toplev.c (finalize): Call it.
15979         * Makefile.in (varray.o): Add dependency.
15980
15981 2004-01-20  Jan Hubicka  <jh@suse.cz>
15982
15983         * cselib.c: Include alloc-pool.h
15984         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
15985         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
15986         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
15987         unchain_one_elt_loc_list_pool, unchain_one_value,
15988         new_cselib_val): Simplify using allocpool.
15989         (cselib_init): Initialize allocpools.
15990         (cselib_finish): Finish allocpools.
15991         * Makefile.in (cselib.o): Depend on alloc-pool.h
15992
15993 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
15994
15995         * config/mips/mips.c (mips_load_call_address): Make the call insn
15996         use $gp if it could be calling a lazy binding stub.
15997
15998 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
15999
16000         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
16001         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
16002         (TARGET_STRUCT_VALUE_RTX): Likewise.
16003         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
16004         (PROMOTE_FUNCTION_RETURN): Remove.
16005         (STRUCT_VALUE): Remove.
16006
16007 2004-01-20  Denis Chertykov  <denisc@overta.ru>
16008
16009         PR bootstrap/13735
16010         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
16011         register as pointer after reload.
16012
16013 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16014
16015         PR optimization/12440
16016         * loop.c: Include ggc.h.
16017         (loop_optimize): Run garbage collector between optimization of loops.
16018         * Makefile.in (loop.o): Add GGC_H dependency.
16019
16020 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
16021
16022         * gcc/config/rs6000/rs6000.c (function_arg) Handle
16023         vector register special in function without prototype.
16024         (function_arg_advance): Vector parameters get always
16025         GPRs allocated for the linux64 target.
16026
16027 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
16028
16029         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
16030         not TARGET_M32RX_MASK.
16031
16032 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
16033
16034         PR target/13557
16035         * config/sparc/sparc.c (function_arg): Reorder the cases.
16036
16037 2004-01-19  Per Bothner  <per@bothner.com>
16038
16039         Move cpp_reader's line_maps field to a shared global.
16040         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
16041         and change the type to a pointer rather than a struct.
16042         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
16043         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
16044         Likewise.
16045         * cppfiles.c (validate_pch):  Likewise.
16046         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
16047         Likewise.
16048         * cpperror.c (print_location):  Likewise.
16049         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
16050         * cppinit.c (cpp_create_reader):  Handle new parameter.
16051         (cpp_destroy):  Don't free line_maps - that's no longer our job.
16052         * input.h (line_table):  New variable.
16053         * toplev.c (line_table):  Declare variable.
16054         (general_init):  Initialize line_table.
16055         * c-opts.c (c_common_init_options):  Pass line_table to
16056         cpp_create_reader.
16057         * fix-header.c (read_scan_file):  New local variable line_table.
16058         Initialize, and pass it to cpp_create_reader.
16059         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
16060         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
16061
16062 2004-01-19  Per Bothner  <per@bothner.com>
16063
16064         Implement a cache for linemap_lookup.
16065         * line-map.h (struct_line_maps):  Add cache field.
16066         * line-map.c (linemap_init):  Zero cache field.
16067         (linemap_add):  Set cache field to offset of newly allocated map.
16068         (linemap_lookup):  Use and set cache field.
16069
16070 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
16071
16072         PR optimization/13567
16073         * cse.c (cse_basic_block): Call cse_insn with a non-null
16074         libcall_insn for the last SET insn of a no-confilict block.
16075
16076 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
16077
16078         * Makefile.in (target_noncanonical, program_transform_name): Use
16079         immediate define instead of deferred.
16080         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
16081         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
16082         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
16083         deferred backquote.
16084
16085 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
16086
16087         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
16088         true unconditionally.
16089         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
16090         Remove.
16091         (build_unary_op, build_modify_expr): Don't handle extended
16092         lvalues.
16093         (build_component_ref, build_conditional_expr): Call non_lvalue
16094         instead of pedantic_non_lvalue.
16095         (build_c_cast): Don't condition use of non_lvalue on pedantic.
16096         * fold-const.c (fold): Don't check pedantic directly for
16097         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
16098         passed to pedantic_non_lvalue.
16099         * doc/extend.texi: Remove documentation of extended lvalues.
16100
16101 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16102
16103         PR optimization/5263
16104         * simplify-rtx.c (associative_constant_p): Delete.
16105         (simplify_associative_operation): Rewrite to linearize terms, and
16106         attempt to simplify new term against both left and right subterms.
16107         (simplify_binary_operation): Call swap_commutative_operands_p on
16108         op0 and op1, not trueop0 and trueop1.  Move the initialization of
16109         trueop0 and trueop1 down to where first needed.
16110         (simplify_relational_operation): Likewise.
16111         * rtlanal.c (commutative_operand_precedence): Also order constant
16112         operands using avoid_constant_pool_reference.
16113
16114 2004-01-19  Richard Henderson  <rth@redhat.com>
16115
16116         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
16117         don't check memory mode.
16118         (unaligned_memory_operand): Likewise.
16119         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
16120         abort for op0 not MEM.
16121
16122         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
16123         is not a reg, copy to a scratch first.
16124         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
16125         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
16126         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
16127         (reload_inqi, reload_inhi): Fix mode of op0.
16128         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
16129         reload_outhi_help): Likewise.  Use define_insn_and_split.
16130
16131         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
16132         as well as $29 dead.
16133
16134 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
16135
16136         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
16137         "tls_object" for thread-local objects.
16138         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
16139         "#tls" for thread-local sections.
16140         * configure.ac (thread-local checks): Specify --fatal-warnings in
16141         every binutils-specific checks.  For sparc*-*-*, test whether the
16142         OS is Solaris and the tools are native and act accordingly.
16143         * configure: Rebuild.
16144
16145 2004-01-19  Jeff Law  <law@redhat.com>
16146
16147         * contrib.texi: Update Paolo Carlini's entry.  New entries for
16148         Jerry Quinn and Petur Runolfsson.
16149
16150 2004-01-19  Roger Sayle  <roger@eyesopen.com>
16151
16152         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
16153         size, don't use the larger zero-extending loads.
16154
16155 2004-01-19  Richard Henderson  <rth@redhat.com>
16156
16157         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
16158         * alpha.md (UNSPEC_NT_LDA): Remove.
16159         (UNSPEC_CVTLQ, cvtlq): New.
16160         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
16161         (extendsidi2_fix): Remove.
16162         (extendsidi2 splitter): Use cvtlq.
16163         (extendsidi2 fp peepholes): Remove.
16164         (cvtql): Use SFmode instead of SImode.
16165         (fix_trunc?fsi): Update to match.
16166         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
16167         (movsi): Rename from movsi_nofix, remove f alternatives.
16168         (movsi_nt_vms): Similarly.
16169         (movsi_fix, movsi_nt_vms_fix): Remove.
16170         (nt_lda): Remove.
16171         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
16172
16173 2004-01-19  Jan Hubicka  <jh@suse.cz>
16174
16175         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
16176         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
16177         list.
16178         (cgraph_remove_unreachable_nodes): New function
16179         (cgraph_decide_inlining_of_small_function): Fix pasto.
16180         (cgraph_decide_inlining_incrementally): Fix pasto.
16181         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
16182
16183 2004-01-19  Steven Bosscher  <stevenb@suse.de>
16184
16185         * gengtype.c (header_file): Make it static.
16186         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
16187         * gengtype.h (header_file): No longer extern.
16188
16189 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16190
16191         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
16192         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
16193         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
16194
16195 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16196
16197         * stmt.c (HAVE_casesi): Define it not already defined.
16198         (HAVE_tablejump): Likewise.
16199         (expand_end_case_type): Resort to the binary tree method if
16200         neither casesi or tablejump is available.
16201
16202 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
16203
16204         * final.c (final_scan_insn): Make non-static again.
16205         * output.h (final_scan_insn): Re-add prototype.
16206         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
16207         to final_scan_insn call.
16208         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
16209         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
16210         * config/pa/pa.c (output_lbranch, output_call): Likewise.
16211         * config/sh/sh.c (print_slot): Likewise.
16212         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
16213         (output_sibcall, sparc_flat_function_epilogue): Likewise.
16214
16215 2004-01-18  Jan Hubicka  <jh@suse.cz>
16216
16217         * basic-block.h (try_redirect_by_replacing_jump): Declare.
16218         * cfgcleanup.c (try_optimize_cfg): Use it.
16219         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
16220         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
16221         Kill hack.
16222         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
16223
16224         Revert:
16225         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16226
16227                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16228                 even after reload, just don't remove the actual jump tables.
16229
16230 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16231
16232         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
16233
16234 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
16235
16236         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
16237         the size of a pointer in bytes.
16238
16239 2004-01-18  Roger Sayle  <roger@eyesopen.com>
16240
16241         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
16242         live "next" variable, which could lead to an infinite loop.
16243
16244 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
16245
16246         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
16247         block.
16248
16249         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16250         Check for NULL in the chain and remove repeated code.
16251
16252 2004-01-18  Jan Hubicka  <jh@suse.cz>
16253
16254         * coverage.c (checksum_string): Rename to ...
16255         (coverage_checksum_string): ... this one, Use crc32_string; recognize
16256         names containing random number and zero the number out in order to get
16257         match.
16258
16259 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16260
16261         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
16262
16263 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16264
16265         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
16266         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
16267         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
16268         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
16269         doc/trouble.texi: Remove trailing whitespace.
16270
16271 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
16272
16273         PR target/7618
16274         * config/mips/mips.c: Include cfglayout.h.
16275         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
16276         (mips_unspec_offset_high): Add temporary register argument.
16277         (mips_load_call_address): New function, split out from...
16278         (mips_expand_call): ...here.
16279         (mips_output_cplocal): New function.
16280         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
16281         (mips_emit_loadgp): New function, split out from...
16282         (mips_expand_prologue): ...here.
16283         (mips_output_mi_thunk): New function.
16284
16285 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
16286
16287         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
16288         mcpu32): Remove redundant checks for implied target predefines.
16289
16290 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
16291
16292         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16293         Return type is unsigned int not int.
16294         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16295         Likewise.
16296
16297 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16298
16299         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
16300         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
16301         "GNU/Linux" and "Microsoft Windows" terminology.
16302
16303 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
16304
16305         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
16306         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
16307         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
16308         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
16309         @smallexample instead of @example.
16310
16311 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
16312
16313         * objc/objc-act.c (build_objc_method_call): Use target
16314         hooks instead of macros to determine if ..._stret
16315         dispatchers should be used (NeXT runtime only).
16316
16317 2004-01-17  Roger Sayle  <roger@eyesopen.com>
16318
16319         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
16320         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
16321
16322 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16323
16324         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
16325         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
16326         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
16327         macros.
16328         * reload1.c (emit_reload_insns): Use them.
16329         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
16330         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
16331         for NULL PATTERN.
16332
16333 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
16334
16335         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
16336         (final_scan_insn): Update to take an additional SEEN argument.  Emit
16337         a line note after the prologue.  Make static.
16338         (line_note_exists): Remove.
16339         (final): Don't initialize line_note_exists.  Update call to
16340         final_scan_insn.
16341         * output.h (final_scan_insn): Remove prologue.
16342         * function.c (set_insn_locators): Update comment.
16343         (thread_prologue_and_epilogue_insns): Add a comment.
16344
16345 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
16346
16347         PR target/10781
16348         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
16349         Prototype.
16350         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
16351         New function.
16352         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
16353         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
16354         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
16355
16356 2004-01-17  Jan Hubicka  <jh@suse.cz>
16357
16358         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
16359         commit.
16360
16361         * toplev.c (HAVE_conditional_execution): Provide default.
16362         (rest_of_handle_reorder_blocks): For conditional_execution target
16363         update liveness once after all transformations
16364         (rest_of_compilation): Do crossjumping before ce3.
16365
16366 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
16367
16368         * alias.c (new_alias_set): Mark last_alias_set for PCH.
16369         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
16370         for PCH.
16371         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
16372         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
16373         (get_TOC_alias_set): Mark 'set' for PCH.
16374
16375 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16376
16377         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
16378         even after reload, just don't remove the actual jump tables.
16379
16380 2004-01-17  J. Brobecker  <brobecker@gnat.com>
16381
16382         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
16383         Remove checks for is_ada() and TREE_UNSIGNED.
16384         (subrange_type_die): Emit a byte_size attribute if the subrange
16385         type size is different from the base type size.
16386         (modified_type_die): Replace call to is_ada_subrange_type() by
16387         call to is_subrange_type().
16388
16389 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
16390
16391         * config/sh/sh.c: Include ggc.h.
16392
16393 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
16394
16395         * Makefile.in (MD5_H): New.
16396         (fold-const.o): Depend on md5.h.
16397         (dwarf2out.o): Likewise.
16398         (cppfiles.o): Likewise.
16399         * cppfiles.c: Include md5.h.
16400         (should_stack_file): Check against list read from PCH file.
16401         (struct pchf_data): New.
16402         (pchf): New variable.
16403         (struct pchf_adder_info): New.
16404         (pchf_adder): New.
16405         (pchf_save_compare): New.
16406         (_cpp_save_file_entries): New.
16407         (_cpp_read_file_entries): New.
16408         (struct pchf_compare_data): New.
16409         (pchf_compare): New.
16410         (check_file_against_entries): New.
16411         * cpphash.h (_cpp_save_file_entries): Prototype.
16412         (_cpp_read_file_entries): Prototype.
16413         * cpppch.c (cpp_write_pch_state): Write the list of headers.
16414         (cpp_read_state): Read the list of headers.
16415
16416 2004-01-17  Jan Hubicka  <jh@suse.cz>
16417
16418         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
16419         builtin_expect specially.
16420         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
16421         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
16422         * invoke.texi (max-inline-insns-single): Set to 100.
16423         (large-function-insns): Set to 3000.
16424
16425 2004-01-16  Eric Christopher  <echristo@redhat.com>
16426             Chandrakala Chavva <cchavva@redhat.com>
16427
16428         * cppcharset.c (one_iso88591_to_utf8): New function.
16429         (convert_iso88591_utf8): Ditto. Use.
16430         (conversion_tab): Use.
16431         (_cpp_input_to_utf8): New function.
16432         (_cpp_init_iconv_buffer): Ditto.
16433         (_cpp_close_iconv_buffer): Ditto.
16434         * cpphash.h: Prototype new functions.
16435         (cpp_buffer): Add input_cset_desc.
16436         * cppinit.c: Add input_charset default.
16437         * cpplib.c (cpp_push_buffer): Support init and
16438         close of iconv.
16439         * cpplib.h (cpp_options): Add input_charset.
16440
16441 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16442
16443         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
16444         * config/alpha/unicosmk.h: Remove a commented-out definition
16445         of ASM_OUTPUT_SECTION_NAME.
16446         * config/stormy16/stormy16.h: Likewise.
16447
16448 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
16449
16450         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
16451         (alpha___extern_prefix_sys_stat): ... this.
16452         Apply to <sys/mount.h>, too.
16453         Tweak to match more variations.
16454         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
16455
16456         * fixinc/inclhack.def (alpha___extern_prefix,
16457         alpha___extern_prefix_standards): New hacks to obey
16458         __PRAGMA_EXTERN_PREFIX.
16459         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
16460         test.
16461         * fixinc/tests/base/standards.h: Likewise.
16462
16463         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
16464         variations.
16465         New testcase.
16466         * fixinc/tests/base/pthread.h: Handle it.
16467
16468         * fixincl/inclhack.def (bad_lval): Sort file list.
16469         Add many missing files up to Tru64 UNIX V5.1B.
16470         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
16471         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
16472         order.
16473
16474         * fixinc/fixincl.x: Regenerate.
16475
16476 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
16477
16478         * version.c (version_string): Change to 3.5.0.
16479         * doc/include/gcc-common.texi (version-GCC): Likewise.
16480
16481 2004-01-16  Jan Hubicka  <jh@suse.cz>
16482
16483         * i386.md (load_tp_di): Fix pasto.
16484
16485         PR opt/13608
16486         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
16487
16488         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
16489         pp_c_character_constant, pp_c_floating_constant,
16490         pp_c_additive_expression, pp_c_shift_expression,
16491         pp_c_equality_expression, pp_c_and_expression,
16492         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
16493         pp_c_logical_and_expression): Remove inline modifier.
16494         * dwarf2out.c (get_AT): Likewise.
16495         * et-forest.c (et_splay): Likewise.
16496         * ra.h (ra_alloc, ra_calloc): Likewise
16497
16498 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16499
16500         * config/frv/frv-protos.h: Fix comment formatting.
16501         * config/frv/frv.c: Likewise.
16502         * config/frv/frv.h: Likewise.
16503         * config/frv/frv.md: Likewise.
16504         * config/frv/frvbegin.c: Likewise.
16505         * config/frv/frvend.c: Likewise.
16506
16507 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
16508
16509         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
16510         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
16511         LINKER_DOES_NOT_WORK_WITH_DWARF2.
16512         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
16513
16514 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
16515
16516         PR 11864
16517         * postreload.c (reload_cse_simplify_operands): Don't remove
16518         implicit extension from LOAD_EXTEND_OP.
16519
16520 2004-01-16  Jan Hubicka  <jh@suse.cz>
16521
16522         PR opt/11350
16523         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
16524         after reload.
16525         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
16526         rtl_try_redirect_by_replacing_branch): Likewise.
16527
16528 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
16529
16530         PR pch/13689
16531         * alias.c (struct alias_set_entry): Mark for GC.
16532         (alias_sets): Make static, mark for GC.
16533         (record_alias_subset): Use GC to allocate alias structures.
16534         * varray.c (element): Make generic varrays GCed.
16535
16536         PR pch/13361
16537         * c-typeck.c (constructor_asmspec): Delete.
16538         (struct initializer_stack): Delete field 'asmspec'.
16539         (start_init): Delete saving of asmspec.
16540         (finish_init): Don't update constructor_asmspec.
16541         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
16542         * stmt.c (expand_asm): Duplicate strings from tree.
16543         (expand_asm_operands): Likewise.
16544         * tree.c (tree_size): Update computation of size of STRING_CST.
16545         (make_node): Don't make STRING_CST nodes.
16546         (build_string): Allocate string with tree node.
16547         * tree.def (STRING_CST): Update comment.
16548         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
16549         (tree_string): Place contents of string in tree node.
16550         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
16551         from tree.
16552
16553         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
16554         altivec operands.
16555
16556 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16557
16558         * c-common.h: Fix comment formatting.
16559         * c-cppbuiltin.c: Likewise.
16560         * c-pragma.c: Likewise.
16561         * calls.c: Likewise.
16562         * collect2.c: Likewise.
16563         * cppcharset.c: Likewise.
16564         * cpptrad.c: Likewise.
16565         * dbxout.c: Likewise.
16566         * defaults.h: Likewise.
16567         * dwarf2out.c: Likewise.
16568         * fold-const.c: Likewise.
16569         * genautomata.c: Likewise.
16570         * genconditions.c: Likewise.
16571         * genflags.c: Likewise.
16572         * gengtype.c: Likewise.
16573         * integrate.c: Likewise.
16574         * loop.c: Likewise.
16575         * predict.c: Likewise.
16576         * sdbout.c: Likewise.
16577
16578 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
16579
16580         * config/ia64/ia64.md (*movti_internal): C output template
16581         extracted to ia64.c.
16582         (*movti_internal_reg): Delete.
16583         (reload_inti, reload_outti): Use the correct mode on operand 2
16584         in the first place, don't fix it up in the output template.
16585         (movtf, reload_ointf, reload_outtf): New expanders.
16586         (*movtf_internal): New define_insn_and_split.
16587         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
16588         make static; do not hand TFmode CONST_DOUBLEs to split_double.
16589         (ia64_split_tmode_move): New function, body mostly pulled
16590         from ia64.md:*movti_internal.
16591         (ia64_function_arg_words): New function, extracted common
16592         logic from ia64_function_arg et seq.
16593         (ia64_function_arg_offset): Likewise.  Handle correctly the
16594         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
16595         (ia64_function_arg, ia64_function_arg_partial_nregs)
16596         (ia64_function_arg_advance): Use ia64_function_arg_words and
16597         ia64_function_arg_offset.
16598         (ia64_function_value): TCmode does not go in float regs.
16599         (ia64_secondary_reload_class): Also handle TFmode.
16600         * config/ia64/ia64-protos.h: Remove prototype for
16601         ia64_split_timode; add prototype for ia64_split_tmode_move.
16602
16603 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16604
16605         * Makefile.in (MAINT): Make it an immediate assignment.
16606
16607 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16608
16609         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
16610
16611 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16612
16613         * config/h8300/coff.h: Replace Hitachi with Renesas.
16614         * config/h8300/elf.h: Likewise.
16615         * config/h8300/h8300-protos.h: Likewise.
16616         * config/h8300/h8300.c: Likewise.
16617         * config/h8300/h8300.h: Likewise.
16618         * config/h8300/h8300.md: Likewise.
16619         * config/h8300/lib1funcs.asm: Likewise.
16620
16621 2004-01-15  Andrew Pinski  <apinski@apple.com>
16622
16623         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
16624         around it.
16625
16626 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16627
16628         * config/h8300/h8300.c (h8300_return_in_memory): New.
16629         (TARGET_STRUCT_VALUE_RTX): Likewise.
16630         (TARGET_RETURN_IN_MEMORY): Likewise.
16631         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
16632         (RETURN_IN_MEMORY): Likewise.
16633
16634 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16635
16636         PR optimization/13375
16637         * gcse.c (handle_avail_expr): Just return if the source is not a
16638         single set.
16639
16640 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
16641             Daniel Jacobowitz  <drow@mvista.com>
16642
16643         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
16644         (EQUIV): Define.
16645         (ARM_FUNC_ALIAS): New macro.
16646         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
16647         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
16648
16649 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
16650
16651         PR optimization/12372
16652         * calls.c (expand_call): Add call_fusage data for stack arguments in
16653         constant calls.
16654
16655 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
16656
16657         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
16658         (rs6000_elf_declare_function_name): Formatting.
16659         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
16660
16661 2004-01-15  Jan Hubicka  <jh@suse.cz>
16662
16663         PR bootstrap/13692
16664         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
16665         previous patch.
16666
16667 2004-01-15  Richard Henderson  <rth@redhat.com>
16668
16669         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
16670         integer regs of the same call-savedness.
16671
16672 2004-01-15  Andreas Schwab  <schwab@suse.de>
16673
16674         PR bootstrap/13562
16675         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
16676         status for NOTB/NOTW/NEGW methods.
16677
16678 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16679
16680         * doc/invoke.texi: Update dump file names.  Fix a typo.
16681
16682 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16683
16684         * builtins.c (expand_builtin_va_end): Don't use
16685         EXPAND_BUILTIN_VA_END.
16686         * system.h (EXPAND_BUILTIN_VA_END): Poison.
16687         * config/d30v/d30v.h: Remove a commented-out definition of
16688         EXPAND_BUILTIN_VA_END.
16689         * config/stormy16/stormy16.h: Likewise.
16690
16691 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
16692
16693         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
16694         * targhooks.c (default_struct_value_rtx): Don't use
16695         STRUCT_VALUE_INCOMING_REGNUM.
16696
16697 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
16698
16699         PR bootstrap/12744
16700         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
16701         GENINSRC and not parsedir.  Define srcextra as a langhook.
16702         * configure: Regenerate.
16703         * Makefile.in: Suppress default .l.c rule.  Don't substitute
16704         parsedir and delete all references throughout.  Conditionally define
16705         rule for srcextra dependent on GENINSRC.
16706         (stmp-docobjdir): Delete.
16707         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
16708         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
16709         and gengtype-yacc.h back to source directory.
16710         (maintainer-clean): Delete all parse files in source directory.
16711         (distclean): Delete generated files.
16712
16713         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
16714         (objc-parse.c, objc-parse.y): Don't use parsedir.
16715         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
16716         directory if requested.
16717         (po-generated): Don't use parsedir.
16718         (objc.maintainer-clean): Delete above files from source directory.
16719
16720 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16721
16722         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
16723
16724 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16725
16726         * doc/tm.texi: Replace RETURN_IN_MEMORY with
16727         TARGET_RETURN_IN_MEMORY.
16728
16729 2004-01-15  Jan Hubicka  <jh@suse.cz>
16730
16731         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
16732         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
16733         functions accepting SSE arguments
16734         (function_arg): Warn only when asked to warn.
16735         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
16736
16737 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
16738
16739         * c-parse.in (stmts_and_decls): Make label at end of compound
16740         statement a hard error.
16741
16742 2004-01-14  Jan Hubicka  <jh@suse.cz>
16743
16744         * cgraph.c (create_edge): Use local.redefined_extern_inline.
16745         * cgraph.h (cgraph_local_info): Sort fields by size; add
16746         redefined_extern_inline
16747         (cgraph_global_info): Sort fields by size.
16748         (cgraph_node): Likewise.
16749         * cgraphunit.c (cgraph_finalize_function): Se
16750         local.redefined_extern_inline on redefinition.
16751         (cgraph_analyze_function): Use it; fix formating.
16752
16753 2004-01-14  Jan Hubicka  <jh@suse.cz>
16754
16755         PR c++/10776
16756         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
16757         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
16758         bitmaps
16759         (cache_size): New variable
16760         (add_dependence): Update use; canonize early memory locations
16761         (sched_analyze_1): Likewise.
16762         (sched_analyze_2): Likewise.
16763         (init_dependency_caches): Initialize bitmaps.
16764         (free_dependency_caches): Free bitmaps
16765
16766 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16767
16768         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
16769         targetm.calls.strict_argument_naming().
16770         * target.h: Likewise.
16771
16772 2004-01-14  Richard Henderson  <rth@redhat.com>
16773
16774         PR debug/13231
16775         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
16776         instructions.
16777
16778 2004-01-14  Richard Henderson  <rth@redhat.com>
16779
16780         PR c++/12491
16781         * except.c (struct eh_region): Add u.fixup.resolved.
16782         (resolve_one_fixup_region): Split out from ...
16783         (resolve_fixup_regions): ... here.
16784
16785 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16786
16787         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
16788
16789 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16790
16791         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
16792         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
16793         (STRUCT_VALUE): Remove.
16794
16795 2004-01-14  Steven Bosscher  <stevenb@suse.de>
16796
16797         * system.h: Poison PROMOTED_MODE
16798         * integrate.c (expand_inline_function): Don't mention the
16799         PROMOTED_MODE.
16800         * loop.c (update_giv_derive): Same.
16801         * tree.h (DECL_RTL): Same.
16802
16803 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
16804
16805         PR target/9365
16806         * sh.c (gen_block_redirect): Add special handling of RETURN.
16807         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
16808         far branch target (i.e. it's a return).
16809
16810 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16811
16812         * regrename.c (find_oldest_value_reg): Fix a warning.
16813
16814 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16815
16816         PR bootstrap/12527
16817         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
16818         Move linux-gas.h and linux-elf.h before aout.h.
16819         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
16820         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
16821
16822 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
16823
16824         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
16825         (CONST_INT, VOIDmode, ...).
16826
16827 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
16828
16829         * regrename.c (find_oldest_value_reg): If the replacement uses
16830         multiple hard registers, check that all of them are in CLASS.
16831
16832 2004-01-14  Jan Hubicka  <jh@suse.cz>
16833
16834         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
16835         impossible.
16836
16837 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
16838
16839         * Makefile.in: Define MAINT from --enable-maintainer-mode.
16840
16841 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
16842
16843         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
16844         Calculate always vrsave_mask if TARGET_ALTIVEC.
16845         (rs6000_emit_prologue): Emit code for vrsave
16846         only if TARGET_ALTIVEC_VRSAVE.
16847         (rs6000_emit_epilogue): Likewise.
16848
16849 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
16850
16851         * config/sparc/sparc.md (tie_add32): Fix pasto.
16852         (tie_add64): Likewise.
16853
16854 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16855
16856         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
16857
16858 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16859
16860         * config/iq2000/iq2000-protos.h: Fix comment formatting.
16861         * config/iq2000/iq2000.c: Likewise.
16862         * config/iq2000/iq2000.md: Likewise.
16863
16864 2004-01-14  J. Brobecker  <brobecker@gnat.com>
16865
16866         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
16867         (subrange_type_die): Add handle for nameless subrange types.
16868
16869 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16870
16871         * config/h8300/h8300-protos.h: Replace do_movsi with
16872         h8300_expand_movsi.
16873         * config/h8300/h8300.c (do_movsi): Change to
16874         h8300_expand_movsi.
16875         * config/h8300/h8300.md (movsi): Replace do_movsi with
16876         h8300_expand_movsi.
16877         (movsf): Likewise.
16878
16879 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16880
16881         * config/h8300/h8300.c (dosize): Change to
16882         h8300_emit_stack_adjustment.  Update callers.
16883
16884 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16885
16886         * config/h8300/h8300.md (movstrictqi): Add an alternative with
16887         the source being post_inc.  Tighten the predicate for the
16888         destination to register_operand.
16889         (movstricthi): Likewise.
16890
16891 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16892
16893         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
16894         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
16895         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
16896
16897 2004-01-14  Jan Hubicka  <jh@suse.cz>
16898
16899         Partial fix PR c++/12850
16900         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
16901         at zero nest level.
16902
16903 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
16904
16905         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
16906         pseudo-register.
16907
16908 2004-01-13  Devang Patel <dpatel@apple.com
16909
16910         PR debug/7078
16911         * dbxout.c (dbxout_symbol_name): Emit mangled names for
16912         NAMESPACE_DECL memebers.
16913
16914 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
16915
16916         PR c++/12709
16917         * c-common.c (finish_fname_decls): Use the chain only if the
16918         tree is an expr_stmt.
16919
16920 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
16921
16922         * rtl.def: Add comment about new option in automata_option.
16923
16924         * genautomata.c (PROGRESS_OPTION): New macro.
16925         (progress_flag): New global variable.
16926         (gen_automata_option): Process `progress'.
16927         (transform_insn_regexps, check_unit_distributions_to_automata,
16928         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
16929         expand_automata, write_automata): Print about the progress only if
16930         progress_flag.  Remove fflush.
16931         (initiate_automaton_gen): Process command line flag `-progress'.
16932
16933         * doc/md.texi: Describe the new option.
16934
16935 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
16936
16937         * cfg.c (dump_bb): Dump entry edges.
16938
16939 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
16940
16941         * arm.c (thumb_legitimate_address_p): Only allow constant pool
16942         references from SImode.
16943         * arm.md (thumb_movhi_insn): Don't allow minipool references.
16944
16945 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
16946
16947         * system.h (TEXT_SECTION): Poison.
16948         * varasm.c (text_section): Don't use TEXT_SECTION.
16949         * config/sh/sh.c (sh_file_start): Fix a comment typo.
16950         * doc/tm.texi (TEXT_SECTION): Remove.
16951
16952 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
16953
16954         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
16955
16956 2004-01-12  James E Wilson  <wilson@specifixinc.com>
16957
16958         * unwind-libunwind.c: Delete.
16959
16960 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16961
16962         PR 13656
16963         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
16964         oldtype is set, set *newtypep or *oldtypep too.  Do not set
16965         them at the very end.
16966         (validate_proto_after_old_defn): Restructure for comprehensibility;
16967         make error messages clearer.
16968
16969 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
16970
16971         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
16972         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
16973         * varray.c: No need to prototype error.
16974         (varray_check_failed): Wrap long string onto two lines.
16975         (varray_underflow): New function.
16976
16977 2004-01-13  Steven Bosscher  <stevenb@suse.de>
16978
16979         PR c++/13376
16980         * function.h (struct function): Kill `name' field.
16981         (current_function_name): Make it an extern function.
16982         * function.c (current_function_name): New function.
16983         * graph.c: Update all uses of current_function_name.
16984         * gcse.c: Likewise.
16985         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
16986         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
16987         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
16988         instead of a strcmp with "main".
16989
16990 2004-01-13  Jan Hubicka  <jh@suse.cz>
16991
16992         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
16993
16994         * cgraphunit.c (cgraph_optimize_function):  Always do
16995         optimize_inline_calls when there is always_inline callee.
16996         (cgraph_decide_inlining): Fix formating.
16997         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
16998         functions.
16999         (expand_call_inline): Likewise.
17000         * toplev.h (sorry): Fix prototype.
17001
17002 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17003
17004         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
17005         conditional jumps that drop through to unconditional jumps or the
17006         end of the sequence.
17007
17008 2004-01-13  Jan Hubicka  <jh@suse.cz>
17009
17010         * alias.c (new_alias_set): Construct the alias_set varray.
17011         (init_alias_once): Don't do it here.
17012
17013 2004-01-12  Marc Espie <espie@openbsd.org>
17014
17015         * system.h: handle YYBYACC like YYBISON.
17016
17017 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
17018
17019         PR target/10847
17020         * config.gcc: No longer includes conflicting header sparc/sol2.h when
17021         building on sparc64-*-openbsd*.
17022
17023 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
17024
17025         PR debug/13539
17026         * dbxout.c (dbxout_type): Protected inheritance is not
17027         private but protected.
17028
17029 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17030
17031         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
17032
17033 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
17034
17035         PR optimization/12508.
17036         * combine.c (try_combine): Remove a dead set in a parallel
17037         even if its destination is a subreg.
17038
17039         Revert:
17040         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
17041         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
17042         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
17043
17044 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
17045
17046         * real.c: Update copyright date.
17047         * emit-rtl.c: Likewise.
17048         * rtl.h: Likewise.
17049         * dwarf2out.c: Likewise.
17050         * config/rs6000/darwin-ldouble.c: Likewise.
17051         * config/rs6000/rs6000.md: Likewise.
17052
17053 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17054
17055         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
17056         TFmode to SImode libfuncs.
17057
17058 2004-01-12  Roger Sayle  <roger@eyesopen.com>
17059
17060         PR middle-end/11397
17061         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
17062
17063 2004-01-12  Jan Hubicka  <jh@suse.cz>
17064
17065         PR opt/12826
17066         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
17067         stored.
17068
17069         PR opt/12863
17070         * cfgcleanup.c (label_is_jump_target_p): Move to...
17071         * rtlanal.c (label_is_jump_target_p): ... here.
17072         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
17073         edges unified with branch edges.
17074
17075 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
17076
17077         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
17078         high word of an integral CONST_DOUBLE.
17079
17080 2004-01-12  Paul Brook  <paul@codesourcery.com>
17081
17082         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
17083
17084 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
17085
17086         PR target/13585
17087         * sh-protos.h (check_use_sfunc_addr): Declare.
17088         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
17089         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
17090
17091 2004-01-12  Jan Hubicka  <jh@suse.cz>
17092
17093         * alias.c:  Invlude varray.h
17094         (alias_sets): Turn into varray.
17095         (get_alias_set_entry): Use VARRAY; mark inline.
17096         (mems_in_disjoint_alias_sets_p): Mark inline.
17097         (record_alias_subset): Use varray.
17098         (init_alias_once): Initialize varray.
17099         (new_alias_set): Grow array.
17100         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
17101
17102 2004-01-12  Jan Hubicka  <jh@suse.cz>
17103
17104         Partial fix for PR opt/10776 II
17105         * cselib.c: Include params.h
17106         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
17107         locations.
17108         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
17109         * Makefile.in (cselib.o): Depend on params.h
17110
17111 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
17112
17113         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
17114         simplify_unary_operation if the operand has a known mode.
17115
17116 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
17117
17118         PR target/13534
17119         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
17120         predicate to handle 'ld' conform addresses.
17121         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
17122         contraint.
17123         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
17124         are memory contraints.
17125         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
17126         New prototype.
17127         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
17128         Change 'o' to 'Y' constraint.
17129         (*movdf_softfloat64): Ditto.
17130
17131 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
17132
17133         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
17134         brace-enclosed syntax in all C output statements.
17135
17136 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
17137
17138         PR target/13401
17139         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
17140         Objective-C language type value is 14.
17141
17142 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
17143
17144         PR c/12148
17145         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
17146         `int' in a number of places to make sure we always have a SImode
17147         and not a HImode.  Add a 'L' suffix to a number of constants.
17148
17149 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17150
17151         * pa.c: Don't include obstack.h.
17152
17153         * pa.md: Correct constraint in pattern for loading PIC label address.
17154
17155 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
17156
17157         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
17158          before defining.
17159
17160 2004-01-11  Steven Bosscher  <stevenb@suse.de>
17161
17162         PR fortran/9972
17163         * toplev.c (rest_of_handle_inline): Also consider functions
17164         for deferral if the language is GNU F77.
17165
17166 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
17167
17168         * c-decl.c (diagnose_arglist_conflict): Add missing space to
17169         diagnostic messages.
17170
17171 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
17172
17173         PR middle-end/13392
17174         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
17175         to drop through label.  Don't fall back to SCC even when conditional
17176         jump has not been found.
17177
17178 2004-01-11  Jan Hubicka  <jh@suse.cz>
17179
17180         * invoke.texi: Fix syntax error in previous patch.
17181
17182         Partial fix for PR opt/10776
17183         * Makefile.in (reload.o): Include param.h
17184         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
17185         * reload.c: Include params.h.
17186         (find_equiv_reg): Work limiting check.
17187         * invoke.texi: Document.
17188
17189 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17190
17191         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
17192         out-of-bounds accesses to string constants.  Simplify mips16
17193         case accordingly.
17194
17195 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
17196
17197         PR optimization/13469
17198         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
17199         reload_cse_regs (-fnon-call-exceptions only).
17200
17201 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
17202
17203         * config/mcore/lib1.asm: Fix comment formatting.
17204         * config/mcore/mcore-elf.h: Likewise.
17205         * config/mcore/mcore.c: Likewise.
17206         * config/mcore/mcore.h: Likewise.
17207         * config/mcore/mcore.md: Likewise.
17208
17209 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17210
17211         * c-decl.c (duplicate_decls): Break apart into...
17212         (diagnose_arglist_conflict, validate_proto_after_old_defn)
17213         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
17214         ... these new functions.  Restructure for comprehensibility.
17215         Remove various archaic special cases.  Always report the
17216         location of the previous declaration when a diagnostic is issued.
17217         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
17218         (match_builtin_function_types): Delete unnecessary forward declaration.
17219
17220 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
17221
17222         * genautomata.c (make_automaton, NDFA_to_DFA):
17223         Print progress bars with '.' characters instead of '*'.
17224         (build_automaton): Change notes to match.
17225
17226 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17227
17228         * config/m32r/m32r.md: Use define_constants for unspec and
17229         unspec_volatile.
17230
17231 2004-01-10  Jan Hubicka  <jh@suse.cz>
17232
17233         PR opt/11635
17234         * expr.c (expand_expr_real):  More curefully expand union casts.
17235
17236 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
17237
17238         * config/m32r/m32r.md (flush_icache): Use 1 for
17239         unspec_volatile.
17240
17241 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
17242             James E Wilson  <wilson@specifixinc.com>
17243
17244         PR debug/12860
17245         * dbxout.c (dbxout_symbol): Remove initialization of
17246         current_sym_code, current_sym_value, and current_sym_addr.
17247         (dbxout_symbol_location): Same.
17248         (dbxout_prepare_symbol): Zero current_sym_code,
17249         current_sym_value, and current_sym_addr.
17250
17251 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
17252
17253         * tree.c (get_unwidened): Reorder conditions so that the null pointer
17254         check is done first.
17255
17256 2004-01-09  Eric Christopher  <echristo@redhat.com>
17257
17258         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
17259         if we're running mark_constant_function.
17260
17261 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
17262
17263         PR target/12561
17264         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
17265
17266 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
17267
17268         PR debug/11231
17269         * dbxout.c (dbxout_type_fields): Return if any item is
17270         error_mark_node or the type is error_mark_node.
17271
17272 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
17273
17274         * config/rs6000/darwin-ldouble.c: Add big comment explaining
17275         exactly what is expected as a 'long double'.
17276         (_xlqadd): When a value to be returned is representable as a
17277         'double', just return it directly, do not construct it using a union.
17278         Also, correct final fixup.
17279         (_xlqmul): Likewise.
17280         (_xlqdiv): Likewise.
17281         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
17282
17283         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
17284
17285 2004-01-09  Richard Henderson  <rth@redhat.com>
17286
17287         * recog.c (constrain_operands): Validate mem operands.
17288
17289 2004-01-09   James E Wilson  <wilson@specifixinc.com>
17290
17291         * gcc.c (init_spec): Remove -lunwind from shared case.
17292         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
17293
17294 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
17295
17296         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
17297         * configure: Regenerate
17298
17299 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
17300
17301         PR c/11234
17302         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
17303         between function and object pointers.
17304         (digest_init): When comparing a pointer to function type to the
17305         target type, only apply TREE_TYPE once to the pointer to function
17306         type.
17307         * except.c (for_each_eh_label_1): Treat data as a pointer to a
17308         function pointer rather than casting it to a function pointer.
17309         (for_each_eh_label): Update caller.
17310         * recog.h (struct insn_data): Use a struct or union for output.
17311         * genoutput.c (output_insn_data): Update.
17312         * final.c (get_insn_template): Update.
17313
17314 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
17315
17316         * expr.h (expand_expr): Make it a macro, not a function.
17317         (expand_expr_real): New function.
17318         * expr.c (store_expr): Adjust logic for deciding whether or not to
17319         copy the value returned by expand_expr.
17320         (expand_expr): Rename to ...
17321         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
17322         calls to language hooks.
17323         * c-common.h (c_expand_expr): Adjust prototype.
17324         * c-common.c (c_expand_expr): Add alt_rtl parameter.
17325         * langhooks-def.h (lhd_expand_expr): Change prototype.
17326         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
17327         * langhooks.h (lang_hooks): Change type of expand_expr.
17328         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
17329         (last_expr_alt_rtl): Likewise.
17330         (expand_expr_stmt_value): Set last_expr_alt_rtl.
17331         (clear_last_expr): Clear it.
17332         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
17333         (expand_end_bindings): Save and restor last_expr_alt_rtl.
17334         * tree.def (RTL_EXPR): Give it an additional operand.
17335         * tree.h (RTL_EXPR_ALT_RTL): New macro.
17336
17337 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17338
17339         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
17340         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
17341
17342 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17343
17344         PR target/13380.
17345         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
17346         or (ne:SI (reg:CC 17) (const_int 0)).
17347         Be specific about modes wherever possible.
17348
17349 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17350
17351         * config/m32r/m32r.c (m32r_expand_block_move): Call
17352         gen_movestrsi_internal with two more arguments.
17353         (m32r_output_block_move): Adjust operand numbers.
17354         Properly update the source and destination pointers.
17355         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
17356         'r+'.  Change the set detinations to match_operand.
17357
17358 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
17359
17360         * final.c (FIRST_INSN_ADDRESS): Remove.
17361         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
17362         * system.h (FIRST_INSN_ADDRESS): Poison.
17363         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
17364         * config/m32r/m32r-protos.h: Remove the prototype for
17365         m32r_first_insn_address.
17366         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
17367         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
17368         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
17369
17370 2004-01-09  J. Brobecker  <brobecker@gnat.com>
17371
17372         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
17373         we just created.
17374         (is_ada_subrange_type): DIEs for enumeration subtypes should be
17375         emitted as subrange types too.
17376         (subrange_type_die): Add handling of enumeration subtypes.
17377
17378 2004-01-08  Richard Henderson  <rth@redhat.com>
17379
17380         PR opt/12441
17381         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
17382         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
17383         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
17384         (ix86_address_cost): Be prepared for SUBREGed registers.
17385         (legitimate_address_p): Accept SUBREGed registers.
17386
17387 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
17388
17389         * Makefile.in: Rename configure.in to configure.ac
17390         * doc/sourcebuild.texi: Likewise.
17391         * configure: Regenerate.
17392         * config.in: Regenerate.
17393
17394 2004-01-08  Stuart Hastings  <stuart@apple.com>
17395
17396         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
17397
17398 2004-01-08  Jan Hubicka  <jh@suse.cz>
17399
17400         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
17401
17402 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
17403
17404         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
17405         (UNSPEC_FIX_TRUNC_TF): New constant.
17406         (movtf_internal): Make splitter active only when insn is active.
17407         (extenddftf2): Rewrite to properly load zero into low part.
17408         (extenddftf2_internal): New.
17409         (extendsftf2): Rewrite.
17410         (truncdftf2): Correct length.
17411         (floatditf2): Delete.
17412         (fix_trunc_helper): New.
17413         (fix_trunctfdi2): Use fix_trunc_helper.
17414         (fix_trunctfsi2): Likewise.fix_trunc
17415         (fix_trunctfsi2_internal): New.
17416
17417         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
17418         addresses are legitimate on Darwin even when flag_pic.
17419         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
17420         non-offsettable addresses for loads of TFmode constants.
17421
17422 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17423
17424         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
17425         variables in the appropriate bss section.
17426
17427 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
17428
17429         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
17430         target_flags has MASK_POWERPC64 when -m64.
17431         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
17432         to 620, 630, power3, power4 and rs64a entries.
17433         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
17434
17435 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
17436
17437         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
17438         floating-point constants.
17439
17440 2004-01-08  J. Brobecker  <brobecker@gnat.com>
17441
17442         * dwarf2out.c (subrange_type_die): Add context_die parameter.
17443         Create the subrange_type DIE using the given context DIE.
17444         (modified_type_die): Update call to subrange_type_die.
17445
17446 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
17447
17448         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
17449         Add multiple-include guard.
17450
17451 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
17452
17453         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
17454         all vector constant loadable by vsplt*.
17455         (output_vec_const_move): Likewise.
17456
17457 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17458
17459         PR c/6024
17460         * c-typeck.c (comptypes): Only treat enumerated types in the same
17461         translation unit as compatible with each other when they are the
17462         same type.
17463         * doc/extend.texi: Update.
17464
17465 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
17466
17467         PR c/12165
17468         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
17469         array type from the array element type.
17470
17471 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
17472
17473         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
17474         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
17475         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
17476         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
17477         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
17478
17479 2004-01-06  Eric Christopher  <echristo@redhat.com>
17480
17481         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
17482         (DWARF2_DEBUGGING_INFO): Define.
17483         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
17484         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
17485         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
17486         for irix as.
17487         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
17488         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
17489         * config/mips/iris5gas.h: Ditto.
17490         (DBX_DEBUGGING_INFO): Remove.
17491         (DWARF2_DEBUGGING_INFO): Ditto.
17492         (MIPS_DEBUGGING_INFO): Ditto.
17493         (PREFERRED_DEBUGGING_TYPE): Ditto.
17494         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
17495         (PREFERRED_DEBUGGING_TYPE): Ditto.
17496         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
17497         * config/mips/elf64.h: Ditto.
17498
17499 2004-01-06  Jan Hubicka  <jh@suse.cz>
17500
17501         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
17502         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
17503
17504 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
17505
17506         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
17507         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
17508         * config/rs6000/darwin-ldouble.c: New.
17509
17510         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
17511         for constants.
17512         (constant_subword): Delete.
17513         * rtl.h (constant_subword): Delete prototype.
17514         (immed_double_const): Is not in varasm.c.
17515         * simplify-rtx.c (simplify_immed_subreg): New.
17516         (simplify_subreg): Use simplify_immed_subreg.
17517
17518         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
17519         than trying to generate RTL directly.
17520         (fix_trunctfsi2): Use expand_fix rather than trying to generate
17521         RTL directly.
17522
17523         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
17524
17525 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
17526
17527         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
17528         function into a separate macro.
17529         (read_only_data_section): Add void argument.
17530         (private_data_section): Same.
17531         (read_only_private_data_section): Same.
17532         (toc_section): Same.
17533
17534 2004-01-06  Jan Hubicka  <jh@suse.cz>
17535
17536         * invoke.texi:  Remove typo in last change.
17537
17538         PR target/10301
17539         * config.gcc: Accept opteron and athlon-64 as variants
17540         of k8.
17541         * i386.c (override_options): Likewise.
17542         * invoke.texi (i386 -mtune): Expand documentation.
17543
17544 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17545
17546         * alias.c: Fix comment typos.
17547         * builtins.c: Likewise.
17548         * cfg.c: Likewise.
17549         * df.c: Likewise.
17550         * dominance.c: Likewise.
17551         * dwarf2out.c: Likewise.
17552         * emit-rtl.c: Likewise.
17553         * expr.c: Likewise.
17554         * final.c: Likewise.
17555         * fold-const.c: Likewise.
17556         * gcse.c: Likewise.
17557         * genattrtab.c: Likewise.
17558         * genrecog.c: Likewise.
17559         * gensupport.c: Likewise.
17560         * ggc-zone.c: Likewise.
17561         * integrate.c: Likewise.
17562         * local-alloc.c: Likewise.
17563         * loop.c: Likewise.
17564         * recog.c: Likewise.
17565         * regmove.c: Likewise.
17566         * reg-stack.c: Likewise.
17567         * reorg.c: Likewise.
17568         * rtlanal.c: Likewise.
17569         * rtl.h: Likewise.
17570         * sched-ebb.c: Likewise.
17571         * simplify-rtx.c: Likewise.
17572         * toplev.c: Likewise.
17573         * varasm.c: Likewise.
17574
17575 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
17576
17577         * doc/install.texi: Fix typos.
17578         * doc/invoke.texi: Likewise.
17579         * doc/md.texi: Likewise.
17580
17581 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
17582
17583         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
17584
17585 2004-01-06  Jan Hubicka  <jh@suse.cz>
17586
17587         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
17588         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
17589         of MMX_REGPARM.
17590         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
17591         add MMX_REGPARM.
17592         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
17593         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
17594         (MMX_REGPARM_MAX): Similarly for -mmmx.
17595
17596 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17597
17598         * config/sh/linux.h: Fix comment formatting.
17599         * config/sh/netbsd-elf.h: Likewise.
17600         * config/sh/sh.c: Likewise.
17601         * config/sh/sh.h: Likewise.
17602         * config/sh/vxworks.h: Likewise.
17603
17604 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17605
17606         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
17607         * toplev.c (output_file_directive): Don't use
17608         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
17609
17610 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
17611
17612         * toplev.c: Fix broken checkin of 2003-12-30.
17613
17614 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
17615
17616         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
17617         (USING_MMAP): We don't support non-mmap.
17618         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
17619         large objects.
17620         (struct page_entry): Remove bytes_free.
17621         (struct page_table_chain): Remove.
17622         (struct globals): Remove page_table member.
17623         (loookup_page_table_entry): Function deleted.
17624         (set_page_table_entry): Ditto.
17625         (ggc_allocated_p): No longer need page table lookups.
17626         (ggc_marked_p): Ditto.
17627         (alloc_small_page): Don't care about bytes_free anymore.
17628         (alloc_large_page): Round up size.
17629         (ggc_alloc_zone_1): Mark large objects as such, and calculate
17630         their size the new way.
17631         Remove page table lookups and setting.
17632         (ggc_get_size): Calculate large object size the new way.
17633         (sweep_pages): Redo to account for fact that we no longer have
17634         bytes_free.
17635         (ggc_collect): No longer need to reincrement bytes_free.
17636         (ggc_pch_alloc_object): Handle new large objects properly.
17637         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
17638
17639 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17640
17641         * doc/invoke.texi: Remove a page break.
17642
17643 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17644
17645         * config/avr/avr.c (avr_output_function_prologue): Remove an
17646         extra pair of curly braces.
17647
17648 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17649
17650         * config/mn10300/mn10300.c: Fix comment formatting.
17651         * config/mn10300/mn10300.h: Likewise.
17652
17653 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17654
17655         * tree.h: Update documentation on nothrow_flag.
17656         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
17657         types.
17658
17659 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
17660
17661         * doc/invoke.texi: Remove traces of dead ports.
17662
17663 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17664
17665         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
17666         option.
17667
17668 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17669
17670         PR target/12945
17671         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
17672         counter labels.
17673         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
17674         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
17675         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
17676         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
17677         (mips_symbol_insns): Don't trust the local/global classification.
17678         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
17679         (override_options): Make -mabicalls -fno-unit-at-a-time imply
17680         -mno-explicit-relocs.
17681         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
17682         between local and global symbols.
17683
17684 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
17685
17686         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
17687         (mips_preferred_reload_class): Declare.
17688         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
17689         (EXTRA_CONSTRAINT): Update accordingly.
17690         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
17691         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
17692         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
17693         mips_dangerous_for_la25_p.
17694         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
17695         if mips_dangerous_for_la25_p.
17696
17697 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
17698
17699         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
17700         warning.
17701
17702 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
17703
17704         * configure.ac: Use AC_PROG_CPP_WERROR.
17705         * configure: Regenerate.
17706
17707 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
17708
17709         * .cvsignore: Add autom4te.cache.
17710
17711 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
17712
17713         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
17714         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
17715         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
17716         then architecture options, then ABI options.  General rewording.
17717
17718 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
17719
17720         PR c/3414
17721         * doc/extend.texi: Clarify definition of malloc attribute.
17722
17723 2004-01-04  Jan Hubicka  <jh@suse.cz>
17724
17725         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
17726         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
17727         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
17728         (cgraph_inline_p): Add extra argument reason.
17729         * cgraphunit.c: Minor formating fixes.
17730         cgraph_first_inlined_callee): New functions.
17731         (record_call_1): Record builtins too.
17732         (cgraph_analyze_function): Update inline_failed messages.
17733         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
17734         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
17735         (cgraph_check_inline_limits): Likewise; Add argument reason.
17736         (cgraph_set_inline_failed): New static function.
17737         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
17738         reasons.
17739         (cgraph_inline_p): Add new argument reason.
17740         * tree-inline.c (expand_call_inline):  Update warning.
17741
17742 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
17743
17744         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
17745         with modern equivalents.
17746         * configure: Regenerate.
17747
17748         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
17749         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
17750         * configure: Regenerate.
17751
17752         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
17753
17754         * configure.in: Rename to configure.ac.
17755         * configure.ac: Renamed from configure.in; make minimum necessary
17756         changes for autoconf 2.5x.
17757         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
17758         * configure: Regenerate with autoconf 2.57.
17759
17760 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
17761
17762         * config/mips/linux.h: Fix comment formatting.
17763         * config/mips/mips.c: Likewise.
17764         * config/mips/mips.h: Likewise.
17765         * config/mips/mips.md: Likewise.
17766         * config/mips/netbsd.h: Likewise.
17767         * config/mips/windiss.h: Likewise.
17768
17769 2004-01-02  Richard Henderson  <rth@redhat.com>
17770
17771         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
17772         for sse and 387; add suppression for mmx.
17773
17774 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
17775
17776         * loop.c (loop_optimize): Free all loops_info's mems.
17777
17778         * c-typeck.c (finish_init): Free spelling_base before
17779         setting it again.
17780
17781         * cfgloop.c (flow_loops_find): Always free the sbitmap
17782         headers.
17783
17784         * predict.c (estimate_probability): Free bbs after being
17785         done with it.
17786
17787 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17788
17789         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
17790         const_8bit_operand and call_address_operand.
17791
17792 2004-01-02  Jan Hubicka  <jh@suse.cz>
17793
17794         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
17795         when there is nothing to inline but warnings are requested.
17796         (cgraph_decide_inlining):  Fix memory leak.
17797
17798 2004-01-02  Jan Hubicka  <jh@suse.cz>
17799
17800         * expr.c (store_constructor):  Fix pasto in previous patch.
17801
17802 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
17803
17804         * config/i386/cygming.h: Fix comment formatting.
17805         * config/i386/djgpp.h: Likewise.
17806         * config/i386/gthr-win32.c: Likewise.
17807         * config/i386/i386-interix.h: Likewise.
17808         * config/i386/i386.c: Likewise.
17809         * config/i386/i386.h: Likewise.
17810         * config/i386/openbsd.h: Likewise.
17811         * config/i386/winnt.c: Likewise.
17812         * config/i386/xm-mingw32.h: Likewise.
17813
17814 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
17815
17816         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
17817         copyright and last modification dates.
17818
17819 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
17820
17821         * doc/install.texi (Specific): Mention x86_64.
17822
17823 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
17824
17825         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
17826         Call force_operand on plus_constant result.
17827
17828 2004-01-01  Jan Hubicka  <jh@suse.cz>
17829
17830         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
17831         * expr.c (store_constructor): Use vec_init pattern.
17832         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
17833         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
17834         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
17835         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
17836         New patterns.
17837         (sse2_unpc?pd): Fix pattern.
17838         (sse2_movlpd): Kill.
17839         (sse2_movsd): Deal with movlpd too.
17840         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
17841         (ix86_expand_vector_init): New.
17842         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
17843         * md.texi (vec_set, vec_extract): Document
17844
17845 2003-12-31  Jan Hubicka  <jh@suse.cz>
17846
17847         PR opt/13473
17848         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
17849         ASM input operands
17850
17851         PR opt/12617
17852         * toplev.c (dump_file_index): Reorder ce3 and bbro.
17853         (dump_file): Likewise.
17854         (rest_of_compilation): Likewise.
17855
17856         PR debug/13367
17857         * cgraph.c (cgraph_function_possibly_inlined):  Even with
17858         flag_really_no_inline we inline always_inline functions.
17859         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
17860         for non-always_inline functions when there is flag_really_no_inline.
17861         (cgraph_decide_inlining): Limit work done when not inlining.
17862         (cgraph_decide_inlining_incrementally): Likewise.
17863         (cgraph_optimize_function): Check whether something got inlined.
17864         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
17865         extern inline functions when not inlining.
17866
17867         * opts.c (decode_options):  Disable crossjumping at -O1
17868         * invoke.texi (-O1): Document change.
17869
17870 See ChangeLog.10 for earlier changes.